Skip to main content

timepiece-mcp

An MCP server that lets Claude query OBSS Timepiece Time in Status data for Jira issues.

Ask Claude things like:

  • "How long has PROJ-123 spent in each status?"
  • "Show me time in status for PROJ-1, PROJ-2 and PROJ-3 in hours"
  • "Compare cycle times across this sprint's tickets"

Prerequisites

  • uv — fast Python package manager
  • A Jira instance with Timepiece installed
  • A personal Timepiece API token (see below)

Get your Timepiece API token

  1. In Jira, go to Apps → Timepiece → API Settings
  2. Click Create New Token
  3. Copy the Token ID (a UUID like 5263180f-3f08-43fd-9c77-dbda0d4a937f)

⚠️ Keep this token secret — it grants access to your Jira data through Timepiece.


Installation

For Claude Desktop

Add this to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "timepiece": {
      "command": "uvx",
      "args": ["timepiece-mcp"],
      "env": {
        "TIMEPIECE_TOKEN": "your-token-uuid-here",
        "TIMEPIECE_CALENDAR": "10776"
      }
    }
  }
}

Restart Claude Desktop. You'll see a 🔌 icon confirming the server is connected.

For Claude Code (CLI)

claude mcp add timepiece uvx timepiece-mcp \
  -e TIMEPIECE_TOKEN=your-token-uuid-here \
  -e TIMEPIECE_CALENDAR=10776

Environment variables

Variable Required Default Description
TIMEPIECE_TOKEN ✅ Yes — Your personal Timepiece API token UUID
TIMEPIECE_CALENDAR No — Default calendar ID for business-hours calculations
TIMEPIECE_DEFAULT_DAY_LENGTH No businessDays businessDays or calendarDays
TIMEPIECE_DEFAULT_VIEW_FORMAT No days days, hours, minutes, or seconds

Finding your calendar ID: In Jira go to Apps → Timepiece → Settings → Calendars. The ID is shown next to each calendar (e.g. 10776).


Available tools

timepiece_get_issue

Get time-in-status for a single Jira issue.

How long has PROJ-123 been in each status?
Show PROJ-456 time in status in hours using calendar days

timepiece_get_issues

Get time-in-status for multiple Jira issues in one call.

Show time in status for PROJ-1, PROJ-2 and PROJ-3
Compare these tickets: ['SPRINT-10', 'SPRINT-11', 'SPRINT-12']

timepiece_export_report

Export a time-in-status report for a set of issues as JSON.

Export time in status for PROJ-1 through PROJ-10

Note: The Timepiece file export endpoint is not yet confirmed from the documentation. This tool currently returns structured JSON. Once the export API is verified, a future version will support downloading CSV/Excel files directly.


Local development

git clone https://github.com/yourusername/timepiece-mcp
cd timepiece-mcp

# Copy and fill in your token
cp .env.example .env

# Install dependencies
uv sync

# Run the server (stdio mode — for testing with MCP Inspector)
uv run timepiece-mcp

# Test with MCP Inspector
npx @modelcontextprotocol/inspector uv run timepiece-mcp

Publishing to PyPI

# Build
uv build

# Publish
uv publish

Once published, anyone can run it with:

uvx timepiece-mcp

Sharing with your team

  1. Publish the package to PyPI (or a private registry)
  2. Each team member:
    • Gets their own Timepiece token from Jira → Apps → Timepiece → API Settings
    • Adds the config block above to their Claude Desktop/Code config
    • Uses their own token — tokens are personal and tied to their Jira identity

Troubleshooting

"TIMEPIECE_TOKEN environment variable is not set" → Add TIMEPIECE_TOKEN to the env block in your Claude config and restart.

"Unauthorised — your TIMEPIECE_TOKEN is invalid or expired" → Check the token in Jira → Apps → Timepiece → API Settings. Tokens expire 31 Dec 2026 by default.

"Not found — the issue key does not exist" → Verify the issue key format: it must be PROJECT-NUMBER in uppercase, e.g. PROJ-123.

Issue shows all zeros / missing statuses → Try without the statuses filter first, then narrow down. Status IDs can be found in Timepiece settings.

Metadata

Release files for timepiece-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for timepiece-mcp 0.1.0
File Size Uploaded Provenance Actions
timepiece_mcp-0.1.0.tar.gz 13.6 kB Without provenance Details for timepiece_mcp-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for timepiece-mcp 0.1.0
File Interpreter ABI Platform Actions
timepiece_mcp-0.1.0-py3-none-any.whl Python 3 none any Details for timepiece_mcp-0.1.0-py3-none-any.whl

Total release size: 28.2 kB

Release files / timepiece_mcp-0.1.0.tar.gz

Download URL timepiece_mcp-0.1.0.tar.gz
Size 13.6 kB
Tags Source
SHA-256 checksum
How to use checksums
72fb949d71a97bd53bc68f08ec7e2d73bebd7cee3b891207e6ef655fd65891b7
BLAKE2b-256 checksum
How to use checksums
dacf8ec2076115648b46ec8c9a78b398c07fce081ef7b5c471afd5c37ba47a00
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.10 {"installer":{"name":"uv","version":"0.10.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / timepiece_mcp-0.1.0-py3-none-any.whl

Download URL timepiece_mcp-0.1.0-py3-none-any.whl
Size 14.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9f3f2cfa3e6ee7b0b0a2000ef37b08074b8459e13a84d5f397be5ad9a93a852a
BLAKE2b-256 checksum
How to use checksums
9e519b93c395e8a2709ee48e044863755e0276ddbb63a2cfd9b21f145af0eb4a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.10 {"installer":{"name":"uv","version":"0.10.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for timepiece-mcp 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page