<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
- Go to Atlassian API Tokens
- Click Create API token
- 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:
- Create an OAuth 2.0 app in the Atlassian Developer Console
- Configure the required scopes:
read:jira-workread:jira-userwrite:jira-workoffline_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_URLincludeshttps://and is your full Jira domain - ✅
JIRA_EMAILmatches your Atlassian account email - ✅
JIRA_API_TOKENis a valid, non-expired token
</details>
<details> <summary><strong>❌ "401 Unauthorised" Error</strong></summary>
Your credentials are invalid or expired.
For Basic Auth:
- Verify your API token at Atlassian API Tokens
- Ensure the token hasn't been revoked
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_issuejira_delete_sprintjira_delete_attachmentjira_delete_filterjira_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.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - 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>











