Skip to content
TTrackTimer
API documentation

TrackTimer MCP setup for AI agents

View Markdown

Connect TrackTimer to Codex, Claude, Claude Code, Cursor, or VS Code. Copy one setup prompt to track time, review entries, and check earnings from your AI agent.

Your time, in the conversation

One prompt to get connected.

Paste this into an agent that can configure MCP connections. It will set up TrackTimer and guide you through approval. Clients without setup access will give you manual steps.

Read the setup prompt
Connect this agent to TrackTimer's remote MCP server, named tracktimer, at https://www.tracktimer.app/api/mcp using Streamable HTTP and OAuth browser sign-in.

Use this client's supported MCP setup method and inspect its existing configuration first. Preserve all other servers and settings. Reuse an existing matching TrackTimer connection; do not create duplicates or overwrite a different connection. Use user-level configuration when available unless I request project-level setup.

If you cannot configure MCP directly, give me the exact manual steps for this client. Documentation: https://www.tracktimer.app/docs/mcp

Start the client's OAuth authorization flow and let me complete TrackTimer sign-in, select my workspace, and approve permissions in my browser. Never ask me to paste tokens, passwords, or API keys into chat.

After authorization, verify the connection by listing my available clients or reading my active timer. Do not start, stop, or edit any time entries during setup. Tell me whether the connection is verified or what step remains.

Or choose your agent

Use the setup instructions below, then approve the connection in TrackTimer.

Server URL · Streamable HTTP

https://www.tracktimer.app/api/mcp

Sign in with your TrackTimer account and passkey, choose your workspace, and review permissions. No API key is needed. Return to your agent and ask: “List my available clients in TrackTimer.”

Connect TrackTimer to Codex

In a terminal with the Codex CLI installed, run these commands, then complete the browser sign-in. The local Codex app, CLI, and IDE extension share MCP configuration.

codex mcp add tracktimer --url https://www.tracktimer.app/api/mcp
codex mcp login tracktimer

OpenAI setup documentation

Connect TrackTimer to Claude

Add to Claude ↗

In Claude, open Customize → Connectors → Add custom connector. Name it TrackTimer, paste the server URL, and connect. Complete the TrackTimer authorization in your browser, then enable the connector in your conversation. Availability can depend on your plan and organization settings.

Claude connector documentation

Connect TrackTimer to Claude Code

If TrackTimer already appears through your connected Claude account, reuse it. Otherwise, run this command to add TrackTimer for your user account. Open Claude Code, run /mcp, and authenticate the TrackTimer server.

claude mcp add --transport http --scope user tracktimer https://www.tracktimer.app/api/mcp
Claude Code MCP documentation

Connect TrackTimer to Cursor

Add to Cursor ↗

Add the following server to your user configuration at ~/.cursor/mcp.json, preserving existing servers. Open Cursor’s MCP settings and connect TrackTimer to complete OAuth in your browser.

{
  "mcpServers": {
    "tracktimer": {
      "url": "https://www.tracktimer.app/api/mcp"
    }
  }
}
Cursor MCP documentation

Connect TrackTimer to Visual Studio Code

Add to Visual Studio Code ↗

Open the Command Palette and run MCP: Add Server. Choose HTTP, paste the server URL, name it tracktimer, and choose user configuration. Start the server, review its trust prompt, and complete browser authorization. Use it from GitHub Copilot Chat.

VS Code MCP documentation

Setup instructions checked against provider documentation on September 10, 2026. Client interfaces may change. Product names and logos belong to their respective owners.

Using TrackTimer through MCP

What you can ask

  • “Start a billable timer for the website project with the note Homepage revisions.”
  • “Stop my timer and note that I finished the navigation.”
  • “Review my time entries and their correction history.”
  • “Change the note on yesterday's completed entry to Client review, with the reason Clarified the work performed.”
  • “How much have I earned this month? Break it down by project.”

Access stays bound to your user and the workspace you approved. Switching workspaces on the website does not redirect an existing connection. Even workspace owners and administrators see and change only their own time through this server.

Starting a timer stops any timer you currently have running, including in a different workspace. Other workspaces' timer details are not disclosed. Your agent should start or switch work only when you ask it to.

Available tools and permissions

  • list_clients — discover assigned clients; clients:read.
  • list_projects — discover assigned projects for a client; projects:read.
  • get_active_timer, list_time_entries, get_time_entry — inspect your own tracked time; timers:read.
  • get_time_entry_audit — review reasons and before/after changes; timers:read.
  • start_timer, stop_timer — control your timer; timers:write.
  • update_time_entry — correct completed entries; time-entries:write.
  • get_time_summary — calculate monthly time and earned pay; reports:read.

The server does not create clients, projects, invoices, or payments, or administer teammates. Read-only permissions cannot run write tools.

Understand earnings

Monthly summaries use your profile timezone unless you supply an IANA timezone such as America/Denver. You can request a particular month with YYYY-MM. Entries crossing month boundaries contribute only the time inside that month.

Earnings use the pay rate saved on each completed entry, including nonbillable work. Running and voided entries are excluded. These amounts represent earned pay, not invoices sent or money received. Results include duration in seconds, exact decimal-dollar strings, rounded display amounts, and project totals in USD.

Corrections and retries

Timer start and stop require an idempotencyKey. Your agent must create a unique key for each intended action and reuse that key with identical arguments when retrying. A network interruption can happen after an action succeeds, so generating a new key on retry can start another timer.

To correct completed time, first call get_time_entry. Supply its updatedAt value as expectedUpdatedAt together with the requested changes and a reason. If the entry changed, read it again and review the difference before submitting another correction. Changes preserve audit history. Moving an entry to a different assigned project recalculates its saved rates.

Entry and audit lists are paginated. Follow nextCursor until it is null to inspect the complete history. Use get_time_summary for monthly totals; adding up the first page of entries is incomplete.

Disconnect and troubleshooting

Open Settings to disconnect all your agents for the selected workspace. This revokes every agent sharing that workspace authorization. Revoked grants and removed workspace membership are checked on subsequent requests. Reconnecting requires authorization again.

Connections share a limit of 120 requests per minute for your workspace authorization. Respect Retry-After on HTTP 429 responses. HTTP 401 means authorization is needed; HTTP 403 can mean missing permission or unavailable workspace access. Tool errors include a code and request ID without exposing internal database details.

The endpoint supports current MCP and stateless 2025 Streamable HTTP clients. It returns JSON or request-scoped streaming responses and progress for summaries when requested. It does not provide the older separate SSE endpoint or persistent subscriptions. Browser clients must use the TrackTimer origin; hosted and native agents can connect directly.