TrackingTime MCP Server
Connects AI assistants to the TrackingTime API v4 for managing projects, tasks, and team assignments. Users can start or stop timers, log manual time entries, and organize project workflows using natural language.
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:
durationandaccumulated_timeare in secondsestimated_timeandworked_hoursare 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=trueto auto-stop the current timer - Dates use
YYYY-MM-DD, datetimes useyyyy-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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.