loading…
Search for a command to run...
loading…
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, a
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.
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.
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.
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
| 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 |
| 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 |
| Tool | Description |
|---|---|
tt_start_timer |
Start a timer on a task |
tt_stop_timer |
Stop a running timer |
| Tool | Description |
|---|---|
tt_list_time_entries |
List entries by user/project/customer/task + date range |
tt_list_time_entries_min |
Lighter minimal list (billed filter, timeoffs) |
tt_count_time_entries |
Fast count of entries for a filter |
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 |
| Tool | Description |
|---|---|
tt_list_tags |
List all tag definitions |
tt_get_tag |
Get a single tag |
tt_list_tag_values |
List values used for a tag name |
tt_create_tag |
Create a tag definition |
tt_update_tag |
Update a tag |
tt_delete_tag |
Delete a tag definition |
tt_save_event_tag |
Attach/update a tag on a time entry |
tt_delete_event_tag |
Remove a tag from a time entry |
| Tool | Description |
|---|---|
tt_list_users |
List all staff (find user IDs) |
tt_get_user |
Get single user details |
tt_create_user |
Create a user (replaces removed tt_invite_users) |
tt_update_user |
Update user profile |
tt_update_user_permissions |
Set granular edit/view permissions |
tt_update_employee |
Update HR fields (job title, department, dates…) |
tt_resend_invite |
Resend activation email to pending user |
tt_reset_icalendar_token |
Rotate the user's iCal export token |
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 |
| Tool | Description |
|---|---|
tt_list_user_groups |
List groups (filter: ACTIVE/ARCHIVED/ALL) |
tt_get_user_group |
Get a single group |
tt_create_user_group |
Create a group (supervisor + members required) |
tt_update_user_group |
Update a group (archive via status: "ARCHIVED") |
tt_delete_user_group |
Permanently delete a group |
| 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 |
| Tool | Description |
|---|---|
tt_list_services |
List services (work categories) |
tt_get_service |
Get a service |
tt_create_service |
Create a new service |
tt_update_service |
Update a service |
tt_archive_service |
Archive a service (reversible) |
tt_reactivate_service |
Reactivate an archived service |
tt_delete_service |
Permanently delete a service |
| Tool | Description |
|---|---|
tt_list_teams |
List all workspaces the user belongs to |
tt_switch_team |
Switch the active workspace for the session |
tt_update_team_permissions |
Update default member permissions |
| Tool | Description |
|---|---|
tt_get_user_report |
Per-user analytics report with charts and breakdowns |
| Tool | Description |
|---|---|
tt_list_notifications |
List notifications (USER or PROJECT scope) |
tt_mark_notification_read |
Mark one notification as read |
tt_mark_notifications_read |
Mark many notifications as read |
| Tool | Description |
|---|---|
tt_list_webhooks |
List configured webhooks |
tt_get_webhook |
Get a webhook |
tt_enable_webhook |
Enable a webhook |
tt_disable_webhook |
Disable a webhook |
tt_reset_webhook_token |
Rotate a webhook's signing token |
tt_delete_webhook |
Delete a webhook |
All 93 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.
Use MCP Inspector to test tools interactively:
npx @modelcontextprotocol/inspector npx trackingtime-mcp
A few TrackingTime API quirks to be aware of:
duration and accumulated_time are in secondsestimated_time and worked_hours are in hoursstop_running_task=true to auto-stop the current timerYYYY-MM-DD, datetimes use yyyy-MM-dd HH:mm:ssThis 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.
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"trackingtime-mcp-server": {
"command": "npx",
"args": []
}
}
}