npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

trackingtime-mcp

v1.1.1

Published

MCP server for TrackingTime API v4 — manage projects, tasks, time tracking, staff, and customers via AI assistants

Readme

TrackingTime MCP Server

An MCP (Model Context Protocol) server that connects AI assistants like Claude to the TrackingTime API v4. Manage projects, tasks, time tracking, staff assignments, and customers through natural language.

Quick Start

1. Get your TrackingTime credentials

  • App Password: TrackingTime → Manage → User Settings → Apps & Integrations → create a new App Password
  • Account ID: Visible in your TrackingTime URL when logged in, or in account settings

2. Add to your AI assistant

Claude Code:

claude mcp add trackingtime -e TT_APP_PASSWORD=your-app-password -e TT_ACCOUNT_ID=your-account-id -- npx trackingtime-mcp

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "trackingtime": {
      "command": "npx",
      "args": ["trackingtime-mcp"],
      "env": {
        "TT_APP_PASSWORD": "your-app-password",
        "TT_ACCOUNT_ID": "your-account-id"
      }
    }
  }
}

Restart your assistant after adding.

Alternative: Install from source

If you prefer to clone and build locally:

git clone https://github.com/ficus33/trackingtime-mcp.git
cd trackingtime-mcp
npm install
npm run build
cp .env.example .env   # then edit .env with your credentials

Then point your assistant at the local build:

claude mcp add trackingtime -- node /path/to/trackingtime-mcp/dist/index.js

Tools

Projects

| Tool | Description | |------|-------------| | tt_list_projects | List projects (filter: ACTIVE/ARCHIVED/ALL/FOLLOWING) | | tt_list_project_ids | List only project IDs (lightweight, for batch operations) | | tt_search_projects | Search projects and tasks by keyword | | tt_create_project | Create a new project | | tt_update_project | Edit project name, customer, or service | | tt_update_project_preferences | Set favorite, default view, show closed tasks | | tt_get_project | Get single project with detail flags | | tt_get_project_times | Get accumulated time for multiple projects | | tt_get_project_users | See which staff are on a project | | tt_archive_project | Archive a project (reversible) | | tt_reopen_project | Reopen an archived project | | tt_delete_project | Permanently delete a project | | tt_merge_projects | Merge one project into another |

Tasks

| Tool | Description | |------|-------------| | tt_list_tasks | List tasks (filter: ACTIVE/ARCHIVED/ALL/TRACKING) | | tt_create_task | Create a task with assignees, due date, estimate | | tt_update_task | Edit task or reassign staff | | tt_get_task | Get single task details | | tt_get_task_times | Get accumulated times for multiple tasks | | tt_search_tasks | Search tasks by name within projects | | tt_sort_tasks | Reorder tasks by sort index | | tt_import_tasks | Bulk import tasks with preview mode | | tt_close_task | Mark a task as complete | | tt_reopen_task | Reopen a completed task | | tt_delete_task | Delete a task |

Time Tracking

| Tool | Description | |------|-------------| | tt_start_timer | Start a timer on a task | | tt_stop_timer | Stop a running timer |

Time Entries

| Tool | Description | |------|-------------| | tt_list_time_entries | List entries by user/project/customer/task + date range | | tt_add_time_entry | Add a manual time entry (duration in seconds) | | tt_get_time_entry | Get a single time entry | | tt_update_time_entry | Edit a time entry | | tt_delete_time_entry | Delete a time entry | | tt_get_events_summary | Summary of hours per user per day | | tt_export_time_entries | Export as CSV | | tt_mark_billed | Flag entries as billed | | tt_mark_not_billed | Unflag billed entries |

Users & Staff

| Tool | Description | |------|-------------| | tt_list_users | List all staff (find user IDs) | | tt_get_user | Get single user details | | tt_update_user | Update user profile | | tt_get_user_tasks | List a user's tasks grouped by project | | tt_get_user_tracking | See what a user is currently tracking | | tt_get_user_trackables | All projects and tasks assigned to a user | | tt_get_user_projects | List projects assigned to a user | | tt_assign_user_projects | Assign staff to projects | | tt_remove_user_projects | Remove staff from projects | | tt_archive_user | Deactivate a user (admin only) | | tt_reactivate_user | Reactivate an archived user | | tt_invite_users | Invite people by email |

Customers

| Tool | Description | |------|-------------| | tt_list_customers | List customers (filter: ACTIVE/ARCHIVED/ALL) | | tt_get_customer | Get single customer details | | tt_create_customer | Create a new customer | | tt_update_customer | Edit customer details | | tt_delete_customer | Permanently delete a customer | | tt_archive_customer | Archive a customer (reversible) | | tt_reactivate_customer | Reactivate an archived customer |

Reducing tool count

All 54 tools are active by default. If you find this adds too much context for your AI assistant, you can clone the repo, comment out tools you don't need in src/tools.ts with /* */, and run npm run build to create a slimmer build.

Testing

Use MCP Inspector to test tools interactively:

npx @modelcontextprotocol/inspector npx trackingtime-mcp

API Notes

A few TrackingTime API quirks to be aware of:

  • duration and accumulated_time are in seconds
  • estimated_time and worked_hours are in hours
  • Time entries are called "events" in the API
  • Starting a timer when one is already running returns error 502 — use stop_running_task=true to auto-stop the current timer
  • Dates use YYYY-MM-DD, datetimes use yyyy-MM-dd HH:mm:ss

Auth

This server uses TrackingTime's App Password authentication. Your real password is never stored. The App Password is sent as HTTP Basic auth (API_TOKEN:<app_password>) over SSL.

If an App Password is compromised, revoke it in TrackingTime and create a new one — no need to change your account password.

License

MIT