jira-dev-mcp

jira-dev-mcp

A local MCP server for Jira Cloud-driven development. Connects MCP clients to Jira for searching issues, reading tasks, parsing attachments, and mapping projects to local repos.

Category
Visit Server

README

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.

npm version License: MIT

Other languages: 中文 · 日本語

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

Install

npm install -g jira-dev-mcp

Authentication

Option A: OAuth 2.0 (Recommended)

Just run:

jira-dev login

A 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_ID and JIRA_CLIENT_SECRET before running jira-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 setup

This 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
jira_search_issues Search by keywords or JQL
jira_read_task Read full issue details
jira_download_attachment Download and parse a single attachment
jira_download_all_attachments Download all attachments in one call; optional MIME filter (e.g. image/)
jira_my_tasks List issues assigned to you
jira_add_comment Post a comment; confirm with token only (no body re-send needed)
jira_edit_comment Edit an existing comment; same token-only confirm flow
jira_set_project_path Map a Jira project to a local repo path
jira_get_project_path Get the local path for a project
jira_analyze_task 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 comments

Development 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.txt

Security

  • OAuth tokens stored at ~/.jira-dev/config.json with 600 permissions
  • API 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 build

Inspect tools interactively:

npx @modelcontextprotocol/inspector node dist/index.js

License

MIT

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured