Jira MCP Server
Provides tools for interacting with Jira Cloud and Jira Data Center/Server, enabling users to retrieve assigned tickets, inspect issue details, update fields, complete or transition tickets through workflows, add comments, run JQL searches, and inspect authenticated user information.
Click on "Deploy 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 MCP Server show me my open Jira tickets"
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 Model Context Protocol (MCP) Server
A zero-dependency Model Context Protocol (MCP) server providing rich two-way integration with Jira Cloud and Jira Data Center / Server.
Designed for Google Antigravity, Cursor, Claude Desktop, Windsurf, and any MCP-compatible AI assistant or agent.
๐ Features
๐ Retrieve My Tickets (
get_my_jira_tickets): Automatically queries Jira for assigned, reported, or mentioned tickets with status filters (open,in_progress,completed,all) and project filters.๐ Inspect Issue Details (
get_jira_ticket): View summary, status, priority, issue type, assignee, reporter, subtasks, attachments, comments, and description (with ADF to Markdown conversion).โ Complete Tickets (
complete_jira_ticket): Smart transition resolver that discovers the workflow's target "Done" / "Resolved" transition and executes it with optional resolution notes.โ๏ธ Edit Issue Fields (
update_jira_ticket): Update issue summaries, descriptions, priority, labels, or assignee.๐ Workflow Transitions (
list_ticket_transitions&transition_jira_ticket): Inspect all available transitions for an issue and move it through any custom workflow state.๐ฌ Add Comments (
add_jira_comment): Post internal notes or user-facing comments directly to issues.๐ JQL Search (
search_jira_tickets): Run custom, complex Jira Query Language (JQL) expressions with custom field selection and pagination.๐ค User Profile & Diagnostics (
get_jira_user_info): Inspect the currently authenticated Jira account and permissions.โก Zero External Dependencies: Built entirely using Python's standard library (
urllib,json,ssl).
Related MCP server: Jira MCP Server
๐ ๏ธ Available MCP Tools
Tool | Description | Key Parameters |
| Retrieve tickets for the authenticated user or specified username |
|
| Get full details, markdown description, and comments for an issue |
|
| Update summary, description, priority, labels, or assignee |
|
| Automatically transition an issue to Done/Completed |
|
| List all available valid workflow transitions for an issue |
|
| Transition an issue to a specific workflow status ID or name |
|
| Add a comment to a Jira issue |
|
| Execute arbitrary JQL queries |
|
| Get details about the currently authenticated user | (none) |
โ๏ธ Quickstart & Installation
Prerequisites
Python 3.8 or higher.
A Jira Cloud or Jira Data Center / Server instance.
An Atlassian API Token (for Jira Cloud).
1. Clone the Repository
git clone https://github.com/your-username/jira-mcp-server.git
cd jira-mcp-server2. Configure Credentials
Create a .env file from the provided example:
cp .env.example .envEdit .env with your Jira credentials:
JIRA_URL=https://your-domain.atlassian.net
JIRA_EMAIL=your-email@example.com
JIRA_API_TOKEN=your_api_token_here
JIRA_DEFAULT_USER=How to generate an Atlassian API Token:
Log in to https://id.atlassian.com/manage-profile/security/api-tokens.
Click Create API token.
Give it a label (e.g.,
jira-mcp) and copy the generated token.
3. Test Connection
Verify your configuration and test authentication:
python3 setup_config.py --testOr configure directly via CLI flags:
python3 setup_config.py --url https://your-domain.atlassian.net --email your-email@example.com --token YOUR_API_TOKEN --test๐ Connecting to AI Clients
1. Google Antigravity / Gemini CLI (mcp_config.json)
Add to ~/.gemini/config/mcp_config.json (or mcp_servers block):
{
"mcpServers": {
"jira": {
"command": "python3",
"args": ["/path/to/jira-mcp-server/server.py"],
"env": {
"JIRA_URL": "https://your-domain.atlassian.net",
"JIRA_EMAIL": "your-email@example.com",
"JIRA_API_TOKEN": "your_api_token_here"
}
}
}
}2. Claude Desktop (claude_desktop_config.json)
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"jira": {
"command": "python3",
"args": ["/path/to/jira-mcp-server/server.py"],
"env": {
"JIRA_URL": "https://your-domain.atlassian.net",
"JIRA_EMAIL": "your-email@example.com",
"JIRA_API_TOKEN": "your_api_token_here"
}
}
}
}3. Cursor (.cursor/mcp.json)
{
"mcpServers": {
"jira": {
"command": "python3",
"args": ["/path/to/jira-mcp-server/server.py"],
"env": {
"JIRA_URL": "https://your-domain.atlassian.net",
"JIRA_EMAIL": "your-email@example.com",
"JIRA_API_TOKEN": "your_api_token_here"
}
}
}
}๐งช Testing
Run the included unit test suite:
python3 test_server.py๐ Security & Privacy
No telemetry or data logging: All communication occurs directly between your local machine and your Jira instance via standard HTTPS.
Credential Storage: Credentials can be passed via environment variables, a local
.envfile, or standard MCP client configuration. The.envfile is ignored by git by default.
๐ License
This project is licensed under the MIT License.
Available Tools
9 toolsadd_jira_commentC
Add a new comment to a Jira ticket.
Inputs: comment (required), issue_key (required).
complete_jira_ticketA
Mark a Jira ticket as completed / done. Automatically identifies and executes the 'Done' or 'Resolved' workflow transition, with an optional resolution comment.
Inputs: issue_key (required), comment, transition_name.
get_jira_ticketA
Get detailed information about a specific Jira issue by key (e.g. PROJ-123), including summary, description, priority, status, assignee, and comments.
Inputs: issue_key (required).
get_jira_user_infoA
Fetch the currently authenticated Jira user profile details (name, email, account ID, timezone).
Inputs: no named parameters.
get_my_jira_ticketsA
Retrieve all Jira tickets associated with the authenticated user (assigned, reported, or mentioned). Supports filtering by status, project, and custom username.
Inputs: status, project, username, max_results.
list_ticket_transitionsA
List all available workflow transitions for a Jira ticket to check allowable state changes.
Inputs: issue_key (required).
search_jira_ticketsC
Search Jira issues using a custom JQL (Jira Query Language) string.
Inputs: jql (required), max_results.
transition_jira_ticketC
Move a Jira ticket to any workflow state by transition name or ID (e.g. 'In Progress', 'In Review', 'Done').
Inputs: issue_key (required), transition (required), comment.
update_jira_ticketC
Edit fields on an existing Jira issue (summary, description, priority, labels, assignee) and optionally post a comment.
Inputs: issue_key (required), labels, comment, summary, +3 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogโฆ
TDQS
Scored across 9 tools
There is clear overlap between complete_jira_ticket and transition_jira_ticket, since the former is a specialized version of the latter that targets Done/Resolved states. Additionally, update_jira_ticket optionally posts a comment while add_jira_comment is a dedicated comment tool, creating a minor ambiguity. The other tools (get_my_jira_tickets, search_jira_tickets, get_jira_ticket) are reasonably distinct, but these overlaps could lead to misselection.
All tool names use snake_case and follow a verb_noun pattern (get_, search_, update_, complete_, list_, transition_, add_). The only minor deviation is that list_ticket_transitions lacks the 'jira_' prefix present in most other names, but overall the convention is highly consistent.
With 9 tools, the set is well-scoped for a Jira integration. It covers read, search, update, workflow transitions, and comments without excessive bloat, and each tool earns its place.
The surface covers reading, searching, updating, transitioning, and commenting on tickets, but it is missing a create_jira_ticket operation, which is a core CRUD gap for a Jira server. Other potentially important operations like worklogs or attachments are also absent, but the missing create is the most notable deficiency.
Related MCP Connectors
Connect to Atlassian Jira, Confluence, Loom, and more to search, create, and manage your work.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yoโฆ
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to search, view, create, and update JIRA issues using natural language commands and JQL queries.1,650 npmApache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Jira instances via the Model Context Protocol, providing 36 tools for reading and writing issues, projects, sprints, metrics, and more.60 npm2MIT
- AlicenseAqualityDmaintenanceEnables AI agents to interact with Jira Cloud and Confluence through natural language, performing JQL searches, issue management, and Confluence page creation.105 npm1MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Jira Cloud issues, supporting create, read, update, delete, search, and transition operations via natural language.10 npmMIT