You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
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_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
Event Tags
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
Users & Staff
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
User Groups
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
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
Services
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
Teams (Workspaces)
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
Reports
Tool
Description
tt_get_user_report
Per-user analytics report with charts and breakdowns
Notifications
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
Webhooks
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
Reducing tool count
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.
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.