jira-worktrack-mcp
A zero-dependency MCP server that answers common questions about Jira work, such as what is assigned to me, standup status, sprint health, and more, without returning raw issue JSON.
README
jira-worktrack-mcp
A zero-dependency MCP server that answers the questions people actually ask about work in Jira — what is on my plate, what did I do yesterday, where is the sprint bleeding, which tickets are not ready for development, what has been waiting too long — instead of returning raw issue JSON to sort through.
Jira is the single source of truth; nothing is stored locally except downloaded
attachments. Everything is read-only apart from upload_attachments, which is the single
tool that changes anything — guard it with a permission rule:
{ "permissions": { "ask": ["mcp__jira-worktrack__upload_attachments"] } }
Replace YOUR-ORG below with the account or organisation you host this repo under.
Install
/plugin marketplace add YOUR-ORG/jira-worktrack-mcp
/plugin install jira-worktrack@jira-tools
Or as a standalone MCP server:
curl -fsSL https://raw.githubusercontent.com/YOUR-ORG/jira-worktrack-mcp/main/bootstrap.sh | bash
The installer asks for your Jira site, your Atlassian e-mail and an API token
(create one at https://id.atlassian.com/manage-profile/security/api-tokens). For the site
you can type just the name — acme becomes https://acme.atlassian.net.
Tools
For developers
| Tool | Answers |
|---|---|
my_work |
What is assigned to me, grouped by status, with anything untouched for days flagged. |
standup |
What I moved or closed since yesterday, what I am on now, what I am waiting for — read from the change history, not from memory. |
next_up |
What to pick up next, ranked by started/priority/sprint/age, with the reasoning shown. |
For scrum masters
| Tool | Answers |
|---|---|
sprint_health |
Status split, work in progress per person, unassigned items, items stuck too long, share of the sprint actually done. |
flow_metrics |
Cycle time and lead time (median and p90), where the time goes per status, and the slowest tickets. |
stale_issues |
Two kinds of silence: nobody updated it, and it never left this status. |
workload |
Open issues per person, split by in progress and waiting, with story points when the project uses them. |
For BAs
| Tool | Answers |
|---|---|
intake_check |
Which tickets lack a description, acceptance criteria, an attachment, a customer or an estimate. |
waiting_on_customer |
What is parked outside the team, how long, and who spoke last. |
duplicate_scan |
Tickets whose summaries overlap — the same request arriving twice. |
Attachments
| Tool | Answers |
|---|---|
list_attachments |
What is attached, and which comment each file was posted with. |
download_attachments |
Fetches them; inline: true shows the images straight in the reply. |
render_pdf |
Renders PDF pages to images, plus any annotation text — no poppler needed on macOS. |
extract_attachment_text |
Text out of .xlsx/.docx/.pptx, text files and text-bearing PDFs. |
download_attachments_by_jql |
Every attachment across the issues a query matches. |
upload_attachments |
Attaches local files. The only tool that writes to Jira. |
For everyone
| Tool | Answers |
|---|---|
issue_timeline |
One ticket's life: every status change, how long it stayed, who moved it. |
team_report |
Created versus resolved over a period, throughput per person, breakdown by type. |
whoami |
Verifies the credentials. |
How the numbers are worked out
- Status categories over status names. Workflows differ per project — this site alone
has
in progress,Code_Review,ready_for_testandReady To Release. Anything structural keys off Jira'sstatusCategory(new / indeterminate / done); the name is only used for display and for spotting "waiting" states. - Time in status is rebuilt from each issue's changelog, requested with
expand: changelogon the search itself — one call for a hundred issues rather than a hundred calls. - Cycle time starts at the first move into a status that is neither backlog nor done. A ticket taken straight from the backlog to closed never started, so it has no cycle time and is reported separately instead of being counted as zero.
- Duplicate scan compares normalised summary words (Jaccard). Pairs that share a parent, and story/test pairs, are skipped — those repeat a summary on purpose.
- Caps are reported, never silent: when a tool stops at its issue limit it says so.
Configuration
| Env var | Default | Meaning |
|---|---|---|
JIRA_BASE_URL |
— | e.g. https://your-site.atlassian.net |
JIRA_EMAIL |
— | Atlassian account e-mail |
JIRA_API_TOKEN |
— | Atlassian API token |
JIRA_TIMEOUT_MS |
30000 |
Request timeout |
JIRA_MAX_RETRIES |
3 |
Retries on timeout, 429 and 5xx (honouring Retry-After) |
Custom field ids differ per site, so Story Points, Sprint and the customer field are looked up by name once per session and cached.
Notes
- The API token is stored in
~/.claude.jsonin plain text, like every other MCP env var. - Everything is scoped to what your own Jira account can see.
- The attachment half is shared verbatim with
jira-attachments-mcp, which packages
it on its own. Run one or the other, not both — otherwise the same tool names appear
twice. A fix in
lib/pdf.mjs,lib/extract.mjsorlib/zip.mjsneeds copying across. - Uninstall with
claude mcp remove jira-worktrack --scope user.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.