For time tracking through Claude, Cursor or ChatGPT, use an MCP time tracker server: the assistant starts and stops timers, lists entries, and totals hours per client or project from chat, with no app to open.
https://mcp.zovo.one/mcp/time-tracker/t/<token>:{
"mcpServers": {
"time-tracker": {
"url": "https://mcp.zovo.one/mcp/time-tracker/t/<token>"
}
}
}
initialize, tools/list) returns 200 even with a bad token, so a healthy-looking connect proves nothing; only a real tool call does.The time tracker MCP server is hosted at mcp.zovo.one with a free anonymous tier (Pro: $19 single, $39 bundle). Related estate servers: pomodoro, hourly-rate, job-card.
Before blaming the assistant, confirm the server answers a real call. Discovery alone is not proof — initialize and tools/list answer 200 even with a bad token, but this is the exact request shape to start from:
curl -s https://mcp.zovo.one/mcp/time-tracker/t/<token> \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
If this returns a tool list, the token and URL are good and any remaining problem is in the client’s connector settings.
A time tracker server stores dated entries with a client, a task label and a duration, and can total per client or per week. Entry labels are free text, so agree a naming pattern (client, then task) and reuse it; totals grouped by slightly different labels will split one client’s hours across two rows.
If you start a timer in Claude Desktop in the morning and stop it from Cursor in the afternoon, both clients hit the same hosted store, so the entry is consistent — provided both connectors point at the same token URL. Two tokens mean two stores; pick one token per person and put it in every client. When reviewing hours, ask for the raw entry list before the totals: a single mistyped duration of 8.0 instead of 0.8 is invisible in a weekly total but obvious in the list.
The server that does this: Time Tracker — 18 tools, free locally (MIT), $19 one-time for the hosted endpoint. Read the server page · Buy the licence.