search_issuesLABSCO SUMMARY
Covers the full issue loop — search, read, create, update, comment — and keeps the payloads small enough to reason over.
The interesting work is on the way back: JIRA returns descriptions and comments as nested Atlassian Document Format, and this flattens them to text while keeping the relationships — mentions, links, parents, epics — as structured data. The two ceilings are worth planning around: 50 issues per JQL search and 100 children per epic, so a large board needs more than one call.
What it is
A TypeScript server for JIRA that runs JQL, reads issues with their comments and relationships, and creates or updates them — trimming Atlassian Document Format down to plain text on the way out.
What you get
- search_issues — any JQL query, up to 50 results per request
- get_issue — one issue with its comments and all of its relationships
- get_epic_children — every child of an epic with comment history, up to 100 issues per request
- create_issue — a new issue from project key, issue type, summary, and optional description and fields
- update_issue — fields changed on an existing issue
- add_comment — plain text in, converted to Atlassian Document Format for you
- add_attachment — a file uploaded to an issue as base64 content with a filename
- Issue mentions extracted out of descriptions and comments, deduplicated, and returned alongside formal links, parent/child ties and epic associations
Requirements
A JIRA account with API access, and four environment variables: JIRA_API_TOKEN, JIRA_BASE_URL, JIRA_USER_EMAIL and optionally JIRA_TYPE for cloud or server. Built and run with Bun v1.0.0 or higher. Jira Cloud uses REST API v3 with an API token; Jira Server and Data Center use v2, and Data Center 8.14.0 and later can use a Personal Access Token with JIRA_AUTH_TYPE=bearer.
Setup effort
Build from source — git clone https://github.com/cosmix/jira-mcp.git
USE CASES
Working out what is actually in an epic
Pull the children with their comment history in one call, instead of clicking through the board issue by issue.
Answering a question that starts with a JQL query
Run the JQL you would type into JIRA and get back trimmed issues rather than a wall of Atlassian JSON.
Filing the bug you just finished diagnosing
Create the issue with project key, type and summary, then add the write-up as a comment in plain text.
Attaching the log or screenshot that proves it
Upload the file to the issue as base64 content with a filename, in the same conversation where you found the problem.
Tracing how issues reference each other
Read one issue and get its mentions, formal links, parent/child ties and epic association together, deduplicated.
7 tools
Listed in project docs. Your client may show a different list.
get_epic_childrenget_issuecreate_issueupdate_issueadd_attachmentadd_commentBEFORE YOU INSTALL
What to know first
Tools you get
7 tools named in the project's documentation.
Requires
- Bun v1.0.0 or higher
- JIRA_API_TOKEN in your environment
- JIRA_BASE_URL in your environment
- JIRA_USER_EMAIL in your environment
Where it runs
Both documented clients run the server on your machine.
INSTALLATION
Connect your client
You clone and build this one yourself.
Server setup
git clone https://github.com/cosmix/jira-mcp.git
cd jira-mcp
bun install
bun run buildMCP Clients
Claude Desktop, Cline
{
"mcpServers": {
"jira": {
"command": "node",
"args": [
"<YOUR_PATH_TO_JIRA_MCP>/build/index.js"
],
"env": {
"JIRA_API_TOKEN": "<YOUR_JIRA_API_TOKEN>",
"JIRA_BASE_URL": "<YOUR_JIRA_BASE_URL>",
"JIRA_USER_EMAIL": "<YOUR_JIRA_USER_EMAIL>",
"JIRA_TYPE": "cloud",
"JIRA_AUTH_TYPE": "basic"
}
}
}
}