jira-dev-mcp
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., "@jira-dev-mcpsearch for issues about user authentication"
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.
jira-dev-mcp
A local MCP server for Jira Cloud-driven development. Connects Claude Code, OpenCode, Codex, and other MCP clients to your Jira instance — search issues, read task details, parse attachments, and map Jira projects to local repositories.
Features
Search Jira issues with natural language or raw JQL
Read full task details: description, subtasks, changelog, comments, attachments
Download and parse CSV, XLSX, XLS, PDF attachments via Python
Images and binary files passed to AI client as base64
Map Jira project keys to local repository paths
OAuth 2.0 (3LO) browser-based login — no manual token management
Auto-refresh OAuth tokens before expiry
Post comments on Jira issues with clickable URL response
Token-only comment confirmation: confirm pending comments with just the token, no need to re-send body
Edit existing comments with the same confirmation flow
Batch download all attachments from an issue in a single call with optional MIME filter
Auto-retry on transient API errors (429/503) with Retry-After header support
Rich ADF parsing: code blocks, tables, mentions, links, panels, and more
Multi-paragraph and fenced code block support in posted comments
Typed error hierarchy for programmatic error handling
OAuth callback port auto-fallback when default port is busy
Read and write Jira access
Related MCP server: Jira MCP Server
Install
npm install -g jira-dev-mcpAuthentication
Option A: OAuth 2.0 (Recommended)
Just run:
jira-dev loginA browser window opens for Jira authorization. Tokens are saved to ~/.jira-dev/config.json and auto-refreshed. No manual Client ID or Secret required.
Advanced: To use your own OAuth app, set
JIRA_CLIENT_IDandJIRA_CLIENT_SECRETbefore runningjira-dev login.
Option B: API Token (Basic Auth)
export JIRA_BASE_URL="https://your-domain.atlassian.net"
export JIRA_EMAIL="you@example.com"
export JIRA_TOKEN="your-jira-api-token"Optional — store token in macOS Keychain instead of env var:
security add-generic-password -a "$USER" -s "jira-dev-mcp:JIRA_TOKEN" -w "your-token"MCP Client Configuration
Auto-register (easiest)
jira-dev setupThis creates or updates ~/.claude.json (Claude Code) and ~/.opencode/config.json (OpenCode) automatically.
If an existing config file contains invalid JSON, jira-dev setup now fails with an explicit error instead of silently skipping it.
Manual — Claude Code (~/.claude.json)
{
"mcpServers": {
"jira": {
"command": "jira-dev",
"args": ["server"]
}
}
}Manual — OpenCode / Codex
{
"mcpServers": {
"jira": {
"command": "jira-dev",
"args": ["server"]
}
}
}With environment variables
{
"mcpServers": {
"jira": {
"command": "jira-mcp-server",
"env": {
"JIRA_BASE_URL": "https://your-domain.atlassian.net",
"JIRA_EMAIL": "you@example.com",
"JIRA_TOKEN": "your-token"
}
}
}
}Tools
Tool | Description |
| Search by keywords or JQL |
| Read full issue details |
| Download and parse a single attachment |
| Download all attachments in one call; optional MIME filter (e.g. |
| List issues assigned to you |
| Post a comment; confirm with token only (no body re-send needed) |
| Edit an existing comment; same token-only confirm flow |
| Map a Jira project to a local repo path |
| Get the local path for a project |
| Full investigation workflow: reads issue + comments + attachments, selects type-aware template (Bug/Story/Task), and guides step-by-step through explore → plan → implement → post comment |
CLI Commands
jira-dev status # Show current auth mode, token state, and mapped projects
jira-dev doctor # Run environment and config health checks
jira-dev upgrade # Upgrade jira-dev-mcp from npm
jira-dev setup # Register jira-dev into supported MCP clients
jira-dev read AT-123 # Read issue details from the terminal
jira-dev comment AT-123 "Done" # Post a comment directly (bypasses manual mode)
jira-dev download AT-123 # Download all attachments
jira-dev download AT-123 spec.xlsx # Download a single attachment
jira-dev config set-comment-mode manual # Require confirmation before posting commentsDevelopment Workflow
Standard usage with Claude Code
Step 1 — One-time setup: map your project
jira_set_project_path(jiraProject: "AT", localPath: "/path/to/your/repo")Step 2 — Find your task
jira_my_tasks(status: "In Progress")or search by keyword / JQL:
jira_search_issues(query: "login timeout bug")
jira_search_issues(query: "project = AT AND sprint in openSprints()")Step 3 — Read the task
jira_read_task(key: "AT-123", includeComments: true)Returns: description, subtasks, changelog, comments, attachment list, and the local repo path.
Step 4 — Download attachments if needed
jira_download_all_attachments(key: "AT-123")
jira_download_all_attachments(key: "AT-123", mime_filter: "image/")
jira_download_attachment(key: "AT-123", filename: "spec.xlsx")Use jira_download_all_attachments to grab everything in one call, or filter by MIME type. Use jira_download_attachment for a single file. CSV / XLSX / XLS / PDF are parsed and returned as structured text. Images are returned as base64.
Step 5 — AI implements the fix
With the task details and local repo path in context, ask Claude Code to:
Explain the root cause
Propose a plan with impact scope
Implement the fix
Write test cases
Project Path Mapping
Map a Jira project key to a local repo so the AI knows where to look:
jira_set_project_path(jiraProject: "AT", localPath: "/Users/you/projects/my-app")Python Dependency (Attachment Parsing)
Python 3 is required for CSV, XLSX, XLS, and PDF parsing. For XLS and PDF, additional packages are auto-installed on first use, or install manually:
python3 -m pip install -r $(npm root -g)/jira-dev-mcp/scripts/requirements.txtSecurity
OAuth tokens stored at
~/.jira-dev/config.jsonwith600permissionsAPI tokens: prefer env vars or macOS Keychain over config file
Attachment size and MIME type allowlist enforced before download
OAuth client credentials injected at build time — never committed to source
Secrets are never written to logs
Local Development
git clone https://github.com/nianyi778/jira-dev-mcp.git
cd jira-dev-mcp
npm install
npm run generate-defaults # required before first build (uses env vars or empty placeholders)
npm test
npm run buildInspect tools interactively:
npx @modelcontextprotocol/inspector node dist/index.jsLicense
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/nianyi778/jira-dev-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server