About tempo-api-mcp
tempo-api-mcp is an MCP server for managing Tempo worklogs, plans, and timesheet actions from Claude. It adds confirmation safeguards to every write, using prompts where supported or a preview-and-token flow otherwise.
Key features
- 01Create, update, and delete Tempo records
- 02Manage timesheet submission and approval actions
- 03Confirm writes with prompts or preview tokens
- 04Configure confirmation behavior and token lifetime
Use cases
- 01Record or update Tempo worklogs
- 02Review and manage timesheet plans
- 03Submit or approve timesheets with a confirmation step
MCP support
Exposes Tempo API operations to MCP clients, including worklog, plan, and timesheet actions. Writes require confirmation before changes proceed.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y tempo-api-mcpTEMPO_API_TOKENSecretYour Tempo API token (Settings → API integration in your Tempo workspace)Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
48Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| to | string | No | End date (YYYY-MM-DD) |
| from | string | No | Start date (YYYY-MM-DD) |
| view | enum | No | Response shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact strips image/avatar URLs from the response; "full" returns Tempo's payload untouched. No field projection: this server has no verified record of which Tempo fields matter, and inventing one would risk dropping a field a caller needs.compact | full |
| limit | integer | No | Max results (default 50) |
| offset | integer | No | Pagination offset (default 0) |
| issueId | array | No | Filter by issue ids |
| orderBy | enum | No | Sort order (descending)ID | START_DATE_TIME | UPDATED |
| projectId | array | No | Filter by project ids |
| updatedFrom | string | No | Filter by update date/time (YYYY-MM-DD or YYYY-MM-DDTHH:mm:ssZ) |
Details
From the project READMEtempo-api-mcp
Tempo API MCP server for Claude — developed and maintained by AI (Claude Code)
Confirmations
Every write (create/update/delete, and the timesheet submit/approve/reject/reopen/recall actions) asks the user to confirm before it changes anything: a confirmation prompt where the client supports one; otherwise the first call returns a preview of exactly what would be sent plus a confirmToken, and only a repeat call with that token proceeds.
| variable | default | |
|---|---|---|
MCP_CONFIRM_MODE | ask-user | What a write does on a client that cannot show a confirmation prompt (claude.ai, Claude Desktop). ask-user: two steps — the first call does nothing and returns a preview plus a token, and the model must get your approval in chat before calling again with it. auto: the same two steps, but the model may use the token after reviewing the preview itself. refuse: writes are refused on such clients. A client that can show prompts (Claude Code) gets the real prompt unless MCP_CONFIRM_ELICITATION=off. An unrecognised value is treated as refuse. |
MCP_CONFIRM_ELICITATION | on | off never shows a confirmation prompt, so every client gets the MCP_CONFIRM_MODE two-step flow. Set it for opencode v2: it claims to support prompts but never displays them, so writes (including timesheet approvals) hang. Any other value stays on. |
MCP_CONFIRM_TTL_SECONDS | 600 | How long a token stays valid. |
MCP_CONFIRM_SECRET | random per process | Signing key; set it only if tokens must survive a server restart. |
In opencode, set it in the server's environment block:
{
"mcp": {
"servers": {
"tempo": {
"type": "local",
"command": ["npx", "-y", "tempo-api-mcp"],
"environment": { "TEMPO_API_TOKEN": "…", "MCP_CONFIRM_ELICITATION": "off" }
}
}
}
}
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.