Skip to main content
Glama

tempo-mcp

MCP server that lets Claude log, list, and delete Tempo worklogs against Jira issues.

Setup

  1. npm install && npm run build

  2. Copy .env.example to .env and 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.net

    • JIRA_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.js

Or 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 by issueKey, authorAccountId, and date range (from/to).

  • post_worklog — log time against an issue (issueKey, timeSpentHours or timeSpentSeconds, startDate, authorAccountId, optional startTime/description). Defaults to a dry-run preview; pass confirm: true to actually write it.

  • update_worklog — change an existing worklog's time/date/description by tempoWorklogId. Same dry-run/confirm: true behavior.

  • delete_worklog — delete a worklog by tempoWorklogId. Same dry-run/confirm: true behavior (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

  • authorAccountId is allowlisted, not free-form. post_worklog will only attribute a worklog to the credentialed account (from JIRA_EMAIL/whoami) unless AUTHORIZED_AUTHOR_ACCOUNT_IDS in .env explicitly 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, and delete_worklog all preview what they would do and require an explicit confirm: true to 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_worklog call (success or failure) is appended as a JSON line to logs/audit.jsonl (gitignored) — a local record of what was written, independent of Tempo's own history.

  • Keep .env file permissions restricted, especially on a shared machine — it holds both the Tempo API token and Jira Basic-auth credentials in plaintext.

A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    C
    quality
    D
    maintenance
    Connects Jira with Claude, enabling users to search issues, view issue details, update issues, add comments, and retrieve project information through natural language commands.
    1
    98
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants like Claude to interact with Jira for project management tasks, including issue creation, updates, workflow transitions, and bulk operations.
    64
    4
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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