tempo-mcp
This server lets Claude manage Tempo worklogs in Jira via MCP tools.
Worklogs:
get_worklogslists worklogs filtered by issue key, author account ID, and date range;post_workloglogs time against an issue;update_worklogedits an existing worklog;delete_worklogremoves a worklog by Tempo ID.Safe writes:
post_worklog,update_worklog, anddelete_worklogpreview as dry-runs and only execute withconfirm: true.Lookups:
whoamireturns the credentialed Jira account;search_projectslists/filters projects;search_recent_issuesfinds issues by project, assignee, or text.Safety controls: author account IDs are allowlisted, writes are capped per session, and an audit log is kept locally.
Allows logging, listing, and deleting Tempo worklogs against Jira issues, with automatic resolution of issue keys to Jira issue IDs.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@tempo-mcpLog 2 hours to PROJ-1234 for yesterday's sprint planning"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
tempo-mcp
MCP server that lets Claude log, list, and delete Tempo worklogs against Jira issues.
Setup
npm install && npm run buildCopy
.env.exampleto.envand fill in:TEMPO_API_TOKEN— generated in Jira under Tempo → Settings → API Integration, scoped to Manage Worklogs.JIRA_BASE_URL— e.g.https://your-domain.atlassian.netJIRA_EMAIL/JIRA_API_TOKEN— used to resolve issue keys (e.g.PROJ-1234) to the numeric issue IDs Tempo requires. Generate the token at https://id.atlassian.com/manage-profile/security/api-tokens.
Related MCP server: JIRA MCP Server
Register with Claude Code
claude mcp add tempo-mcp -- node /path/to/tempo-mcp/dist/index.jsOr via .mcp.json, with the env vars above set in the entry's env block.
The server validates both Tempo and Jira credentials on startup and logs a clear pass/fail message to stderr (visible in Claude Code's MCP logs) before it accepts tool calls, rather than failing confusingly on first use.
Tools
Worklogs
get_worklogs— list worklogs, optionally filtered byissueKey,authorAccountId, and date range (from/to).post_worklog— log time against an issue (issueKey,timeSpentHoursortimeSpentSeconds,startDate,authorAccountId, optionalstartTime/description). Defaults to a dry-run preview; passconfirm: trueto actually write it.update_worklog— change an existing worklog's time/date/description bytempoWorklogId. Same dry-run/confirm: truebehavior.delete_worklog— delete a worklog bytempoWorklogId. Same dry-run/confirm: truebehavior (previews the real worklog before deleting it).
Lookups (so Claude doesn't need issue IDs or account IDs handed to it up front)
whoami— the Jira account the configured credentials belong to.search_projects— list/filter visible Jira projects.search_recent_issues— find issues by project, assignee, and/or free text, most recently updated first.
post_worklog requires an authorAccountId. Get your own via whoami; for others, use their Jira admin console profile URL, which shows their accountId. (An earlier find_users tool was removed — it depended on the "Browse users and groups" global permission, which returned an empty result with HTTP 200 rather than an error when missing, confirmed via direct API testing against this org's Jira instance.)
Issue keys are resolved to Tempo's required numeric issue ID automatically (and cached in-process) via the Jira REST API. Auth failures return a plain-English hint (e.g. "check JIRA_EMAIL/JIRA_API_TOKEN/JIRA_BASE_URL") instead of a raw, sometimes localized, HTTP error body.
Safety and abuse controls
authorAccountIdis allowlisted, not free-form.post_worklogwill only attribute a worklog to the credentialed account (fromJIRA_EMAIL/whoami) unlessAUTHORIZED_AUTHOR_ACCOUNT_IDSin.envexplicitly lists other account IDs. This exists specifically so that content Claude reads from a Jira issue or Tempo worklog description can't talk it into logging fabricated time against an arbitrary third party — the allowlist is controlled by you, in.env, not by anything the model reads.Every write is dry-run by default.
post_worklog,update_worklog, anddelete_worklogall preview what they would do and require an explicitconfirm: trueto actually execute.MAX_WRITES_PER_SESSION(default 20) caps how many writes a single running server process will perform before refusing further ones, as a blast-radius limit against a runaway or manipulated conversation. Restart the server to reset the count.Local audit log. Every
post_worklog/update_worklog/delete_worklogcall (success or failure) is appended as a JSON line tologs/audit.jsonl(gitignored) — a local record of what was written, independent of Tempo's own history.Keep
.envfile permissions restricted, especially on a shared machine — it holds both the Tempo API token and Jira Basic-auth credentials in plaintext.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseCqualityDmaintenanceConnects Jira with Claude, enabling users to search issues, view issue details, update issues, add comments, and retrieve project information through natural language commands.1981MIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude AI to interact with JIRA for project management and issue tracking, supporting JQL queries, comprehensive issue details retrieval with subtasks and linked issues, and release planning analysis.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants like Claude to interact with Jira for project management tasks, including issue creation, updates, workflow transitions, and bulk operations.644MIT
- FlicenseBqualityDmaintenanceConnects Claude to Jira, allowing users to query tasks, log work, add comments, and execute JQL queries through conversational AI.22
Related MCP Connectors
WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.
Connect Claude to Fathom meeting recordings, transcripts, and summaries
Persistent context for Claude. Your AI always knows your projects and next actions across sessions.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Magnuskeel/TempoMcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server