Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
6,000+ web scrapers for your AI agent, start free logo6,000+ web scrapers for your AI agent, start free

Apify gives your agent live web data: 6,000+ prebuilt scrapers and actors, MCP-ready. Sign up free with $5 in usage credits.

Try Apify free
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 48,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

Supercharge your AI assistant with seamless Jira integration. Enables AI assistants like GitHub Copilot and Claude to interact with your Jira Cloud instance.

README.md

<p align="center"> <img src="https://cdn.jsdelivr.net/npm/mcp-jira-cloud@latest/assets/logo.svg" alt="Jira MCP Logo" width="120" height="120"> </p>

<h1 align="center">Jira MCP Server</h1>

<p align="center"> <strong>Supercharge your AI assistant with seamless Jira integration</strong> </p>

<p align="center"> <a href="https://www.npmjs.com/package/mcp-jira-cloud"> <img src="https://img.shields.io/npm/v/mcp-jira-cloud?style=flat-square&color=cb3837&logo=npm" alt="npm version"> </a> <a href="https://www.npmjs.com/package/mcp-jira-cloud"> <img src="https://img.shields.io/npm/dm/mcp-jira-cloud?style=flat-square&color=blue" alt="npm downloads"> </a> <a href="https://github.com/tezaswiraj7222/jira-mcp/blob/master/LICENSE"> <img src="https://img.shields.io/npm/l/mcp-jira-cloud?style=flat-square&color=green" alt="license"> </a> <a href="https://github.com/tezaswiraj7222/jira-mcp"> <img src="https://img.shields.io/github/stars/tezaswiraj7222/jira-mcp?style=flat-square&logo=github" alt="GitHub stars"> </a> </p>

<p align="center"> <a href="https://modelcontextprotocol.io/"> <img src="https://img.shields.io/badge/MCP-Compatible-8A2BE2?style=flat-square" alt="MCP Compatible"> </a> <a href="https://bun.sh/"> <img src="https://img.shields.io/badge/Bun-1.0%2B-fbf0df?style=flat-square&logo=bun&logoColor=black" alt="Bun 1.0+"> </a> <a href="https://nodejs.org/"> <img src="https://img.shields.io/badge/Node.js-18%2B-339933?style=flat-square&logo=node.js&logoColor=white" alt="Node.js 18+"> </a> <a href="https://www.typescriptlang.org/"> <img src="https://img.shields.io/badge/TypeScript-5.0%2B-3178C6?style=flat-square&logo=typescript&logoColor=white" alt="TypeScript 5.0+"> </a> </p>

<p align="center"> <a href="#-quick-start">Quick Start</a> • <a href="#-features">Features</a> • <a href="#%EF%B8%8F-configuration">Configuration</a> • <a href="#-available-tools">Tools</a> • <a href="#-usage-examples">Examples</a> • <a href="#-troubleshooting">Troubleshooting</a> </p>

---

A Model Context Protocol (MCP) server that enables AI assistants like GitHub Copilot and Claude to interact with your Jira Cloud instance. Search issues, manage tickets, log work, and more — all through natural language conversation.

🎯 Why Use This Package?

| Without MCP | With Jira MCP | |-------------|---------------| | Switch between IDE and browser | Stay in your coding environment | | Manual copy-paste of issue details | AI fetches context automatically | | Learn JQL syntax | Natural language queries | | Click through Jira UI | Voice/text commands | | Context switching kills productivity | Seamless workflow integration |

Supported AI Assistants

| Assistant | Status | |-----------|--------| | GitHub Copilot (VS Code) | ✅ Fully Supported | | Claude Desktop | ✅ Fully Supported | | Cursor | ✅ Fully Supported | | Windsurf | ✅ Fully Supported | | Any MCP-compatible client | ✅ Fully Supported |

✨ Features

<table> <tr> <td>

🔐 Authentication

  • Basic Auth (API Token)
  • OAuth 2.0 with auto-refresh
  • Secure credential storage via Keytar

</td> <td>

📋 Issue Management

  • Full CRUD operations
  • Workflow transitions
  • Search with JQL

</td> </tr> <tr> <td>

🏃 Agile/Scrum

  • Sprint management (create, start, complete)
  • Board views (Scrum & Kanban)
  • Backlog & ranking

</td> <td>

🔗 Relationships

  • Issue linking (blocks, relates, duplicates)
  • Watchers & voting
  • Epic management

</td> </tr> <tr> <td>

⏱️ Time Tracking

  • Log work on issues
  • View work logs
  • Query worklogs by user & date range
  • Flexible time formats

</td> <td>

🗄️ Filters & Metadata

  • Create/manage saved filters
  • Field metadata access
  • Component & version management

</td> </tr> <tr> <td>

📊 Bulk Operations

  • Bulk edit issues
  • Bulk watch/unwatch
  • Async operation tracking

</td> <td>

📈 Dashboards & JQL

  • Dashboard management
  • JQL validation & autocomplete
  • Labels management

</td> </tr> </table>

<p align="center"> <strong>91 Tools</strong> for comprehensive Jira management </p>

📋 Prerequisites

Runtime Environment (choose ONE)

<table> <tr> <th width="50%">🥟 Bun (Easier for beginners)</th> <th width="50%">📦 Node.js (Traditional)</th> </tr> <tr> <td>

Simpler installation, faster execution

Install Bun (one command):

Windows (PowerShell as Admin): ``powershell irm bun.sh/install.ps1 | iex ``

macOS / Linux: ``bash curl -fsSL https://bun.sh/install | bash ``

</td> <td>

More widely used, larger ecosystem

Requirements:

  • Node.js ≥18.0.0 (Download)
  • npm ≥8.0.0 (included with Node.js)

</td> </tr> </table>

Jira Requirements

| Requirement | Notes | |-------------|-------| | Jira Cloud | Jira Server/Data Center not supported | | Atlassian Account | With access to your Jira instance | | API Token | Generate here |

MCP-Compatible Client (one of)

  • VS Code with GitHub Copilot extension
  • Claude Desktop app
  • Cursor IDE
  • Windsurf IDE
  • Any other MCP-compatible AI assistant

🚀 Quick Start

Installation

<table> <tr> <th width="50%">🥟 Using Bun (Recommended)</th> <th width="50%">📦 Using npm</th> </tr> <tr> <td>

# Run directly (no install needed)
bunx mcp-jira-cloud@latest

# Or install globally
bun install -g mcp-jira-cloud

</td> <td>

# Run directly (no install needed)
npx -y mcp-jira-cloud@latest

# Or install globally
npm install -g mcp-jira-cloud

</td> </tr> </table>

💡 CLI Help

To see all available options and configuration details:

npx -y mcp-jira-cloud@latest --help

To launch the interactive setup helper (generates MCP config JSON):

npx -y mcp-jira-cloud@latest --config

To verify your Jira connectivity and credentials:

npx -y mcp-jira-cloud@latest --verify

To enable diagnostic logging (logs API traffic to stderr):

npx -y mcp-jira-cloud@latest --verbose

Get Your API Token

  1. Go to Atlassian API Tokens
  2. Click Create API token
  3. Copy the token

---

📘 VS Code (GitHub Copilot)

Create or edit .vscode/mcp.json in your workspace:

<details> <summary><strong>🥟 Using Bun (recommended for beginners)</strong></summary>

{
  "servers": {
    "jira": {
      "type": "stdio",
      "command": "bunx",
      "args": ["mcp-jira-cloud@latest"],
      "env": {
        "JIRA_BASE_URL": "https://your-domain.atlassian.net",
        "JIRA_EMAIL": "your-email@example.com",
        "JIRA_API_TOKEN": "your-api-token"
      }
    }
  }
}

</details>

<details> <summary><strong>📦 Using npx</strong></summary>

{
  "servers": {
    "jira": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mcp-jira-cloud@latest"],
      "env": {
        "JIRA_BASE_URL": "https://your-domain.atlassian.net",
        "JIRA_EMAIL": "your-email@example.com",
        "JIRA_API_TOKEN": "your-api-token"
      }
    }
  }
}

</details>

<details> <summary><strong>⚡ After global install</strong></summary>

{
  "servers": {
    "jira": {
      "type": "stdio",
      "command": "jira-mcp",
      "args": [],
      "env": {
        "JIRA_BASE_URL": "https://your-domain.atlassian.net",
        "JIRA_EMAIL": "your-email@example.com",
        "JIRA_API_TOKEN": "your-api-token"
      }
    }
  }
}

</details>

---

🤖 Claude Desktop

Add to your Claude configuration (claude_desktop_config.json):

<details> <summary><strong>🥟 Using Bun (recommended for beginners)</strong></summary>

{
  "mcpServers": {
    "jira": {
      "command": "bunx",
      "args": ["mcp-jira-cloud@latest"],
      "env": {
        "JIRA_BASE_URL": "https://your-domain.atlassian.net",
        "JIRA_EMAIL": "your-email@example.com",
        "JIRA_API_TOKEN": "your-api-token"
      }
    }
  }
}

</details>

<details> <summary><strong>📦 Using npx</strong></summary>

{
  "mcpServers": {
    "jira": {
      "command": "npx",
      "args": ["-y", "mcp-jira-cloud@latest"],
      "env": {
        "JIRA_BASE_URL": "https://your-domain.atlassian.net",
        "JIRA_EMAIL": "your-email@example.com",
        "JIRA_API_TOKEN": "your-api-token"
      }
    }
  }
}

</details>

---

⚡ Cursor

Create .cursor/mcp.json in your project or home directory:

<details> <summary><strong>🥟 Using Bun (recommended for beginners)</strong></summary>

{
  "mcpServers": {
    "jira": {
      "command": "bunx",
      "args": ["mcp-jira-cloud@latest"],
      "env": {
        "JIRA_BASE_URL": "https://your-domain.atlassian.net",
        "JIRA_EMAIL": "your-email@example.com",
        "JIRA_API_TOKEN": "your-api-token"
      }
    }
  }
}

</details>

<details> <summary><strong>📦 Using npx</strong></summary>

{
  "mcpServers": {
    "jira": {
      "command": "npx",
      "args": ["-y", "mcp-jira-cloud@latest"],
      "env": {
        "JIRA_BASE_URL": "https://your-domain.atlassian.net",
        "JIRA_EMAIL": "your-email@example.com",
        "JIRA_API_TOKEN": "your-api-token"
      }
    }
  }
}

</details>

<details> <summary><strong>⚡ After global install</strong></summary>

{
  "mcpServers": {
    "jira": {
      "command": "jira-mcp",
      "args": [],
      "env": {
        "JIRA_BASE_URL": "https://your-domain.atlassian.net",
        "JIRA_EMAIL": "your-email@example.com",
        "JIRA_API_TOKEN": "your-api-token"
      }
    }
  }
}

</details>

---

🔧 Windsurf

Add to your Windsurf MCP configuration:

<details> <summary><strong>🥟 Using Bun (recommended for beginners)</strong></summary>

{
  "mcpServers": {
    "jira": {
      "command": "bunx",
      "args": ["mcp-jira-cloud@latest"],
      "env": {
        "JIRA_BASE_URL": "https://your-domain.atlassian.net",
        "JIRA_EMAIL": "your-email@example.com",
        "JIRA_API_TOKEN": "your-api-token"
      }
    }
  }
}

</details>

<details> <summary><strong>📦 Using npx</strong></summary>

{
  "mcpServers": {
    "jira": {
      "command": "npx",
      "args": ["-y", "mcp-jira-cloud@latest"],
      "env": {
        "JIRA_BASE_URL": "https://your-domain.atlassian.net",
        "JIRA_EMAIL": "your-email@example.com",
        "JIRA_API_TOKEN": "your-api-token"
      }
    }
  }
}

</details>

<details> <summary><strong>⚡ After global install</strong></summary>

{
  "mcpServers": {
    "jira": {
      "command": "jira-mcp",
      "args": [],
      "env": {
        "JIRA_BASE_URL": "https://your-domain.atlassian.net",
        "JIRA_EMAIL": "your-email@example.com",
        "JIRA_API_TOKEN": "your-api-token"
      }
    }
  }
}

</details>

⚙️ Configuration

Environment Variables

Basic Authentication (Recommended)

| Variable | Description | Required | |----------|-------------|:--------:| | JIRA_BASE_URL | Your Jira instance URL (e.g., https://company.atlassian.net) | ✅ | | JIRA_EMAIL | Your Atlassian account email | ✅ | | JIRA_API_TOKEN | API token from Atlassian | ✅ |

OAuth 2.0 Authentication

<details> <summary>Click to expand OAuth configuration</summary>

For OAuth authentication:

  1. Create an OAuth 2.0 app in the Atlassian Developer Console
  2. Configure the required scopes:
  • read:jira-work
  • read:jira-user
  • write:jira-work
  • offline_access

| Variable | Description | Required | |----------|-------------|:--------:| | JIRA_OAUTH_CLIENT_ID | OAuth Client ID | ✅ | | JIRA_OAUTH_CLIENT_SECRET | OAuth Client Secret | ✅ | | JIRA_OAUTH_ACCESS_TOKEN | Access token | ✅ | | JIRA_OAUTH_REFRESH_TOKEN | Refresh token | ⬜ | | JIRA_CLOUD_ID | Your Jira Cloud ID | ✅ |

</details>

Optional Settings

| Variable | Description | Default | |----------|-------------|---------| | JIRA_ACCEPTANCE_CRITERIA_FIELD | Custom field ID for acceptance criteria | — |

🛠️ Available Tools

91 tools organised into 11 categories

🔐 Authentication (7 tools)

| Tool | Description | |------|-------------| | jira_auth_status | Check current authentication status | | jira_whoami | Get current user's Jira profile | | jira_clear_auth | Clear stored credentials | | jira_oauth_get_auth_url | Generate OAuth authorisation URL | | jira_oauth_exchange_code | Exchange OAuth code for tokens | | jira_oauth_refresh | Manually refresh OAuth token | | jira_oauth_list_sites | List accessible Jira sites |

📝 Issue CRUD (5 tools)

| Tool | Description | |------|-------------| | jira_create_issue | Create a new issue with full field support | | jira_update_issue | Update issue fields (partial update supported) | | jira_assign_issue | Assign or unassign a user | | jira_get_transitions | Get available workflow transitions | | jira_transition_issue | Move issue through workflow states |

🔍 Issue Query (6 tools)

| Tool | Description | |------|-------------| | jira_get_issue | Get full details of a Jira issue (labels, status, priority, assignee, components, …); pass fields to return a specific subset | | jira_get_issue_summary | Get summary, description, and acceptance criteria | | jira_search_issues | Search issues with JQL, returning full field details (pass fields for a specific subset) | | jira_search_issues_summary | Search with minimal fields (key, summary, status) | | jira_get_my_open_issues | Get your open/in-progress issues | | jira_resolve | Smart routing tool for common intents |

💬 Comments & Work Logs (5 tools)

| Tool | Description | |------|-------------| | jira_get_issue_comments | Get comments on an issue | | jira_add_comment | Add a comment to an issue | | jira_add_worklog | Log time spent on an issue | | jira_get_issue_worklogs | Get work logs for an issue | | jira_get_user_worklogs | Get worklogs by user and date range |

⚙️ Configuration & Metadata (9 tools)

| Tool | Description | |------|-------------| | jira_list_projects | List accessible Jira projects | | jira_get_project | Get project details and metadata | | jira_get_issue_types | Get available issue types | | jira_get_priorities | Get priority levels | | jira_get_statuses | Get available statuses | | jira_get_components | Get project components | | jira_get_versions | Get project versions | | jira_search_users | Search for Jira users | | jira_get_changelog | Get issue change history |

<details> <summary><strong>🏃 Agile/Sprint Tools (15 tools)</strong></summary>

| Tool | Description | |------|-------------| | jira_get_boards | List Scrum and Kanban boards | | jira_get_board | Get board details | | jira_get_board_configuration | Get board configuration (columns, estimation) | | jira_get_sprints | Get sprints for a board | | jira_get_sprint | Get sprint details | | jira_create_sprint | Create a new sprint | | jira_update_sprint | Update sprint details | | jira_start_sprint | Start a future sprint | | jira_complete_sprint | Complete an active sprint | | jira_get_sprint_issues | Get issues in a sprint | | jira_move_issues_to_sprint | Move issues to a sprint | | jira_get_backlog_issues | Get backlog issues for a board | | jira_move_issues_to_backlog | Move issues to backlog | | jira_rank_issues | Change issue ranking |

</details>

<details> <summary><strong>🔗 Issue Relationships (9 tools)</strong></summary>

| Tool | Description | |------|-------------| | jira_get_issue_links | Get linked issues | | jira_create_issue_link | Link two issues together | | jira_get_link_types | Get available link types | | jira_get_watchers | Get issue watchers | | jira_add_watcher | Add a watcher to an issue | | jira_remove_watcher | Remove a watcher | | jira_get_votes | Get issue vote count | | jira_add_vote | Vote for an issue | | jira_remove_vote | Remove your vote |

</details>

<details> <summary><strong> Epic Management (4 tools)</strong></summary>

| Tool | Description | |------|-------------| | jira_get_epics | Get epics for a board | | jira_get_epic_issues | Get issues belonging to an epic | | jira_move_issues_to_epic | Move issues to an epic | | jira_remove_issues_from_epic | Remove issues from an epic |

</details>

<details> <summary><strong>🗂️ Field Metadata (3 tools)</strong></summary>

| Tool | Description | |------|-------------| | jira_get_fields | Get all available fields (including custom) | | jira_get_create_metadata | Get metadata for creating issues | | jira_get_edit_metadata | Get metadata for editing issues |

</details>

<details> <summary><strong>🗄️ Filters (6 tools)</strong></summary>

| Tool | Description | |------|-------------| | jira_get_filters | Search saved filters | | jira_get_filter | Get filter details | | jira_create_filter | Create a new saved filter | | jira_update_filter | Update an existing filter | | jira_get_my_filters | Get filters owned by you | | jira_get_favourite_filters | Get favourite filters |

</details>

<details> <summary><strong>⚡ Bulk Operations (4 tools)</strong></summary>

| Tool | Description | |------|-------------| | jira_bulk_edit_issues | Edit multiple issues at once (labels, assignee, priority, etc.) | | jira_bulk_watch_issues | Add watchers to multiple issues | | jira_bulk_unwatch_issues | Remove watchers from multiple issues | | jira_get_bulk_operation_progress | Track async bulk operation progress |

</details>

<details> <summary><strong>📊 Dashboard Management (5 tools)</strong></summary>

| Tool | Description | |------|-------------| | jira_get_dashboards | Get dashboards (filter by favourite/owned) | | jira_search_dashboards | Search dashboards by name, owner, etc. | | jira_get_dashboard | Get dashboard details by ID | | jira_get_dashboard_gadgets | Get all gadgets on a dashboard | | jira_add_dashboard_gadget | Add a gadget to a dashboard |

</details>

<details> <summary><strong>📎 Enhanced Attachments (4 tools)</strong></summary>

| Tool | Description | |------|-------------| | jira_get_attachments | Get issue attachments | | jira_upload_attachment | Upload a file to an issue | | jira_get_attachment_metadata | Get attachment metadata by ID | | jira_get_attachment_content | Get attachment download URL |

</details>

<details> <summary><strong>🏷️ Labels Management (2 tools)</strong></summary>

| Tool | Description | |------|-------------| | jira_get_all_labels | Get all labels in the Jira instance | | jira_add_labels | Add, set, or remove labels on an issue |

</details>

<details> <summary><strong>🔎 JQL Tools (3 tools)</strong></summary>

| Tool | Description | |------|-------------| | jira_autocomplete_jql | Get autocomplete suggestions for JQL fields | | jira_validate_jql | Validate JQL queries for syntax errors | | jira_parse_jql | Parse JQL into abstract syntax tree |

</details>

<details> <summary><strong>⏱️ Time Tracking Reports (4 tools)</strong></summary>

| Tool | Description | |------|-------------| | jira_get_updated_worklog_ids | Get worklog IDs created/updated since a date | | jira_get_worklogs_by_ids | Get full worklog details by IDs (batch up to 1000) | | jira_get_user_worklogs | Get all worklogs for a user in a date range with summary | | jira_get_deleted_worklog_ids | Get IDs of deleted worklogs for audit purposes |

</details>

🛡️ Phase 14: Code Quality & Security

This release underwent a comprehensive audit to ensure best practices and security:

| Category | Status | Details | |----------|:------:|---------| | API Version | ✅ | All 91 tools use Jira REST API v3 (latest) | | Agile API | ✅ | Sprint/Board tools use Jira Agile API v1.0 | | Deprecated APIs | ✅ | All deprecated endpoints migrated to modern alternatives | | Security Vulnerabilities | ✅ | 0 vulnerabilities (axios & qs patched) | | OAuth 2.0 Support | ✅ | Full OAuth 2.0 (3LO) with auto-refresh | | Credential Storage | ✅ | OS-level encryption via Keytar | | Input Validation | ✅ | Zod v4 schema validation on all parameters | | URL Encoding | ✅ | All dynamic path parameters properly encoded | | Error Handling | ✅ | Consistent error handling across all endpoints |

💡 Usage Examples

Once configured, interact with Jira through natural conversation:

Issue Management

👤 "What's the status of PROJ-123?"
🤖 Fetches and displays issue details, status, and assignee

👤 "Create a bug in PROJ for 'Login button not working'"
🤖 Creates a new bug issue and returns the issue key

👤 "Assign PROJ-456 to john@example.com"
🤖 Assigns the issue to the specified user

👤 "Move PROJ-789 to 'In Progress'"
🤖 Transitions the issue to the new status

Sprint & Agile

👤 "Show me the active sprint for board 123"
🤖 Displays current sprint details with dates and goal

👤 "Move PROJ-123 and PROJ-124 to sprint 456"
🤖 Moves the issues to the specified sprint

👤 "What's in the backlog for the PROJ board?"
🤖 Lists all backlog issues with priorities

Time Tracking

👤 "Log 2 hours on PROJ-456 for code review"
🤖 Creates work log entry with description

👤 "How much time has been logged on PROJ-789?"
🤖 Retrieves and summarises work logs

Collaboration

👤 "Link PROJ-123 as blocking PROJ-456"
🤖 Creates a "blocks" relationship between issues

👤 "Add me as a watcher on PROJ-789"
🤖 Adds you to the issue's watch list

👤 "Show all issues in epic PROJ-100"
🤖 Lists all child issues of the epic

🔧 Troubleshooting

<details> <summary><strong>🥟 Bun Installation Issues</strong></summary>

Windows (PowerShell as Administrator): ```powershell

If irm fails, try:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser irm bun.sh/install.ps1 | iex ```

macOS/Linux: ```bash

If curl fails, check your internet connection or try:

brew install oven-sh/bun/bun # macOS with Homebrew ```

Verify Installation: ``bash bun --version # Should show 1.x.x ``

</details>

<details> <summary><strong>❌ "MISSING_AUTH" Error</strong></summary>

Ensure your environment variables are correctly set. Verify with jira_auth_status.

Checklist:

  • JIRA_BASE_URL includes https:// and is your full Jira domain
  • JIRA_EMAIL matches your Atlassian account email
  • JIRA_API_TOKEN is a valid, non-expired token

</details>

<details> <summary><strong>❌ "401 Unauthorised" Error</strong></summary>

Your credentials are invalid or expired.

For Basic Auth:

For OAuth:

  • Try refreshing the token with jira_oauth_refresh
  • Re-authenticate if the refresh token has expired

</details>

<details> <summary><strong>❌ "403 Forbidden" Error</strong></summary>

You don't have permission to access the requested resource.

Solutions:

  • Check your Jira permissions for the project
  • Contact your Jira administrator
  • Verify your OAuth scopes include required permissions

</details>

<details> <summary><strong>❌ "404 Not Found" Error</strong></summary>

The issue or project doesn't exist, or you don't have access to view it.

Solutions:

  • Verify the issue key is correct (e.g., PROJ-123)
  • Check if you have access to the project
  • Ensure the issue hasn't been deleted or moved

</details>

<details> <summary><strong>❌ npx/bunx Using Old Version</strong></summary>

Clear the cache to ensure you get the latest version:

npm: ```bash npx -y --package=mcp-jira-cloud@latest mcp-jira-cloud

or clear cache:

npm cache clean --force ```

Bun: ```bash bunx --bun mcp-jira-cloud@latest

or clear cache:

bun pm cache rm ```

</details>

📦 Package Information

| Attribute | Value | |-----------|-------| | Package name | mcp-jira-cloud | | Latest Version | !npm version | | License | MIT | | Runtime | Bun ≥1.0.0 or Node.js ≥18.0.0 | | TypeScript | ≥5.0.0 | | Module | ES Modules | | Tools | 91 |

Dependencies

| Package | Purpose | |---------|---------| | @modelcontextprotocol/sdk | MCP protocol implementation | | axios | HTTP client for Jira API | | keytar | Secure credential storage | | zod | Schema validation |

🆕 What's New

🐛 v4.3.2 (Latest)

| Fix | Description | |-----|-------------| | 🏷️ Full field passthrough | jira_get_issue & jira_search_issues now return every requested field — labels, status, priority, assignee, components, fixVersions, custom fields, etc. — instead of only key/summary/description (#2) | | 📋 Useful defaults | When fields is omitted, the full-detail tools now return a broad default set; lean summary tools keep their trimmed output | | 🧹 Compact, no fabrication | Nested objects are normalized to friendly values (status→name, assignee→display name, …) and unrequested fields are never invented |

---

🚀 v4.3.0

| Feature | Description | |---------|-------------| | 🧩 Modular Architecture | Tools refactored into modular, organized files (src/tools/) | | 🚀 Expanded Toolset | Now 91 tools, including new Agile, Worklog, and Metadata functions | | 🛡️ Improved Tooling | Standardized authentication (withClient) & annotation presets | | ✅ Test Suite | Integrated Vitest for robust unit testing across the codebase |

---

🥟 v4.2.0

| Feature | Description | |---------|-------------| | 🥟 Bun Support | Run with bunx mcp-jira-cloud@latest - easier for beginners | | 📖 Better Docs | Simplified prerequisites and configuration examples |

---

🔍 v4.1.0

| Feature | Description | |---------|-------------| | 🎯 Improved Tool Descriptions | Better trigger phrases, negative guidance, and cross-references for AI agents | | 📋 Prerequisites Section | Clear requirements documented in README |

---

🚀 v4.0.0

| Change | Description | |--------|-------------| | ⚠️ Breaking | jira_get_worklogs renamed to jira_get_issue_worklogs for clarity | | 🐛 Fix | Removed duplicate tool registration that caused startup errors |

Total tools: 74

---

📦 v3.1.0

| Feature | Description | |---------|-------------| | 🔍 User Worklogs Query | New jira_get_user_worklogs tool to query worklogs by user and date range | | 📊 Time Summary | Returns total time logged with formatted hours/minutes |

---

⚠️ v3.0.0 (Breaking Changes)

<table> <tr><td>

Removed for Safety:

  • jira_delete_issue
  • jira_delete_sprint
  • jira_delete_attachment
  • jira_delete_filter
  • jira_delete_issue_link

</td><td>

Improvements:

  • 🔒 Security patches (axios, qs)
  • 🔄 Deprecated API migration
  • ✅ 0 known vulnerabilities

</td></tr> </table>

---

<details> <summary><strong>📅 v2.x Changelog</strong></summary>

v2.2.0

  • Time Tracking Reports - Get user worklogs for any date range with summaries

v2.1.0

  • Dashboard Management - View and manage Jira dashboards and gadgets
  • Enhanced Attachments - Upload attachments, get metadata and content
  • Labels Management - Get all labels, bulk add/remove/set labels
  • JQL Tools - Autocomplete, validate, and parse JQL queries

v2.0.0

  • Issue CRUD - Create, update issues with full field support
  • Workflow Transitions - Move issues through workflow states
  • Agile/Scrum - Complete sprint and board management (15 tools)
  • Issue Linking - Blocks, relates, duplicates relationships
  • Watchers & Voting - Collaboration features
  • Epic Management - Organise issues under epics
  • Filters - Create and manage saved JQL filters
  • Metadata - Access field configurations and create metadata
  • Bulk Operations - Edit, watch, unwatch multiple issues at once

</details>

🔒 Security

  • Credentials are stored securely via system keychain (Keytar)
  • OAuth tokens auto-refresh before expiration
  • No credentials are logged or exposed in error messages
  • See SECURITY.md for our security policy

🤝 Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 Changelog

See CHANGELOG.md for a list of changes in each version.

📜 License

This project is licensed under the MIT License — see the LICENSE file for details.

🔗 Links

| Resource | Link | |----------|------| | GitHub | github.com/tezaswiraj7222/jira-mcp | | npm | npmjs.com/package/mcp-jira-cloud | | Issues | Report a bug | | MCP Protocol | modelcontextprotocol.io | | Jira API | Jira REST API v3 |

---

<p align="center"> Made with ❤️ by <a href="https://github.com/tezaswiraj7222">Tezaswi Raj (github: tezaswiraj7222)</a> </p>

<p align="center"> <a href="https://github.com/sponsors/tezaswiraj7222"> <img src="https://img.shields.io/badge/Sponsor-❤️-ea4aaa?style=for-the-badge" alt="Sponsor"> </a> </p>

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use Cloud & DevOps servers.