Popular servers: Spreadsheet · Server for Invoices — Generate Invoices from Claude · Expense Tracker — Log Expenses from Claude · Recurring Invoices · Word Document Server — Create .docx from Claude · Server for Bill of Sale — Draft and Sign from Claude · Zip · Job Card
A timesheet is not the same thing as a stopwatch. It is a list of hours already attributed to a project and a task, at a rate and in a currency, that your accountant or your client can read as a record. MCP Time Tracker keeps that list so you can grow it by talking rather than by editing a spreadsheet of starter rows.
Say what happened and for whom: "log 2.5 hours yesterday for Acme, design review, at 90 euros an hour". The entry stores project, task, duration, rate and currency together, so a row is self contained. That is the property a timesheet needs: whoever reads it later can tell what the time was for without you narrating.
A timer is still available when the work is happening now. Starting one for a project and task stops any timer already running, and stopping it writes a complete entry. The two paths land in the same list, so a day that starts as a timer and is finished by logging forgotten hours is one consistent timesheet.
"How many hours did I put into Acme this week, grouped by task" returns totals by project, and "give me invoice lines for Acme in August" produces one line per project ready for billing. If you run the invoice server too, the same hours become an MCP Invoice PDF without retyping a figure.
One click, with no JSON. Download time-tracker.mcpb from the
latest release and open it in Claude Desktop. It runs on the
Node runtime Claude Desktop ships with, so your own PATH and node version never come into it.
Or a URL, with nothing installed. /mcp/connect mints a free anonymous token and prints the ready line:
claude mcp add --transport http time-tracker https://mcp.zovo.one/mcp/time-tracker/t/<token>
Or from a clone, for a client with no bundle installer. Build once, then point the client at the built file:
git clone https://github.com/theluckystrike/mcp-servers.git
cd mcp-servers && npm install
npm run build -w packages/mcp-license -w servers/time-tracker
claude mcp add --scope user time-tracker -- node /absolute/path/to/mcp-servers/servers/time-tracker/dist/index.js
Claude Desktop, Cursor, Windsurf and Cline take the same two strings as JSON, in
claude_desktop_config.json or the client's own MCP config file:
{
"mcpServers": {
"time-tracker": {
"command": "node",
"args": ["/absolute/path/to/mcp-servers/servers/time-tracker/dist/index.js"]
}
}
}
The npm packages are not published yet, so the npx form below returns a 404 today. It is
kept because it is what that config becomes the day the publish lands, with nothing else changed;
installing these servers when npx does not work yet
has the whole picture.
claude mcp add time-tracker -- npx -y @theluckystrike/mcp-time-tracker
No. The useful part is the attributed record: project, task, duration, rate and currency on one row. The timer is one way to create those rows; logging hours you forgot is another, and both land in the same timesheet list.
Yes. Currency is per entry and per project. A rate given as words such as 'euros' is stored as that currency, and entries with no explicit currency fall back to the project currency and then to USD.
In plain JSON on your own machine. Nothing is uploaded and there is no account; Pro keys are verified locally, so it works offline.
All MCP servers and prices · All guides · Buy the bundle $39