This Jira MCP Server enables AI assistants to interact with Jira Cloud instances for comprehensive issue management and workflow operations.
Issue Management: Create, retrieve, update, and assign Jira issues with support for custom fields, labels, priorities, and rich formatting using Atlassian Document Format (ADF).
Search & Discovery: Search issues using JQL (Jira Query Language), list all accessible projects, search for users by name or email, and discover required fields, custom fields, and allowed values for creating issues.
Comments: Add comments with rich formatting and retrieve existing comments, with support for mentions.
Workflow Management: Get available status transitions for issues and execute transitions to change issue status with optional comments.
Technical Features: Securely connects using API token authentication (email + API token), automatic account ID lookup from email addresses, and JQL-powered advanced search capabilities.
Enables comprehensive Jira Cloud integration including issue management (create, update, assign), JQL search, comments, workflow transitions, metadata discovery, user search, and project listing with custom field support
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 MCP Servercreate a bug in PROJ for the login button not working"
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 MCP Server
A Model Context Protocol (MCP) server for Jira API integration. This server enables AI assistants like Claude to interact with Jira Cloud instances for issue management, search, comments, workflow transitions, and attachment handling.
Features
Issue Management: Get, create, update, and assign Jira issues with custom field support
JQL Search: Search issues using Jira Query Language
Comments: Add and retrieve comments on issues
Workflow: Get available transitions and change issue status
Metadata Discovery: Get field requirements and allowed values for projects
User Search: Find users by email or name for assignments
Projects: List all accessible projects
Attachments: List, upload, delete attachments and retrieve their content — text files returned as text, images rendered inline via Claude vision
Token Efficient: 5 compound tools instead of 16 flat tools — ~50% fewer tokens per session
Installation
Using npm (Recommended)
npm install -g @nexus2520/jira-mcp-serverFrom Source
Clone the repository:
git clone https://github.com/pdogra1299/jira-mcp-server.git cd jira-mcp-serverInstall dependencies:
pnpm installBuild the project:
pnpm run build
Prerequisites
Node.js >= 16.0.0
A Jira Cloud account with API access
Jira API token (generate from Atlassian Account Settings)
Configuration
Environment Variables
JIRA_EMAIL: Your Atlassian account emailJIRA_API_TOKEN: Your Jira API tokenJIRA_BASE_URL: Your Jira instance URL (e.g.,https://yourcompany.atlassian.net)
Claude Desktop Configuration
Add the following to your Claude Desktop MCP settings file:
Location:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Configuration (if installed via npm):
{
"mcpServers": {
"jira": {
"command": "npx",
"args": [
"-y",
"@nexus2520/jira-mcp-server"
],
"env": {
"JIRA_EMAIL": "your-email@company.com",
"JIRA_API_TOKEN": "your-api-token-here",
"JIRA_BASE_URL": "https://yourcompany.atlassian.net"
}
}
}
}Configuration (if built from source):
{
"mcpServers": {
"jira": {
"command": "node",
"args": [
"/absolute/path/to/jira-mcp-server/build/index.js"
],
"env": {
"JIRA_EMAIL": "your-email@company.com",
"JIRA_API_TOKEN": "your-api-token-here",
"JIRA_BASE_URL": "https://yourcompany.atlassian.net"
}
}
}
}Getting Your Jira API Token
Click "Create API token"
Give it a label (e.g., "Claude MCP")
Copy the generated token
Use it in your configuration
Tool Architecture
This server exposes 5 compound tools — each with an action parameter that selects the operation. This design reduces the token overhead of tool definitions by ~50% compared to 16 flat tools, leaving more context for actual work.
Tool | Actions | Description |
|
| Full issue lifecycle management |
|
| Search and discovery |
|
| Read and write comments |
|
| Status transitions |
|
| File attachments |
Available Tools
jira_issues
Manage the full lifecycle of Jira issues.
Required: action
Action | Description | Required params | Optional params |
| Fetch full issue details |
| — |
| Create a new issue |
|
|
| Edit fields on an existing issue |
|
|
| Set or clear the assignee |
| — |
Tips:
Always call
jira_searchwithaction=create_metadatabefore creating issues to discover required custom fields and allowed values.Pass
assignee: "-1"to unassign an issue.descriptionaccepts plain text or an Atlassian Document Format (ADF) object.customFieldsis a key-value map:{"customfield_10000": "value"}.
Examples:
Get details for PROJ-123
Create a Bug in project PROJ with summary "Login button broken"
Update PROJ-123 priority to High
Assign PROJ-123 to john.doe@company.comjira_search
Search and discover Jira resources.
Required: action
Action | Description | Required params | Optional params |
| Search issues via JQL |
|
|
| List all accessible projects | — |
|
| Find users by name or email |
|
|
| Get field requirements for creating issues |
|
|
Common JQL examples:
project = PROJ AND status = Open
assignee = currentUser() AND status != Done
priority = High AND created >= -7dTips:
Use
create_metadatabeforejira_issuescreateto understand what fields are required for a project/issue type.Use
usersto look up account IDs for assignments — pass the returned account ID or email tojira_issuesassign.
jira_comments
Read and write comments on a Jira issue.
Required: action, issueKey
Action | Description | Required params |
| Fetch all comments on an issue | — |
| Post a new comment |
|
comment accepts plain text or an ADF object.
Examples:
Get all comments on PROJ-123
Add a comment to PROJ-123: "Fixed in PR #456"jira_workflow
Manage issue status transitions.
Required: action, issueKey
Action | Description | Required params | Optional params |
| List available status transitions | — | — |
| Move issue to a new status |
|
|
Tip: Always call get_transitions first — transition IDs vary per project and issue type. The transitionId from the response is what you pass to transition.
Examples:
Get available transitions for PROJ-123
Move PROJ-123 to "In Progress" (use get_transitions first to find the ID)jira_attachments
Manage file attachments on Jira issues.
Required: action
Action | Description | Required params | Optional params |
| List all attachments with metadata |
| — |
| Download and return file content |
|
|
| Attach a local file to an issue |
|
|
| Remove an attachment by ID |
| — |
Content types returned by :
Text files (
text/*,application/json,application/xml): returned as readable textImages (
image/*): returned as base64 — Claude will render them inlineOther types (PDF, zip, etc.): returns file metadata with a descriptive message
Tips:
Use
listfirst to get attachment IDs before callingget_contentordelete.fileNameinuploadoverrides the filename shown in Jira (defaults to the file's basename).
Examples:
List attachments on PROJ-123
Get the content of attachment 136904
Upload /tmp/report.pdf to PROJ-123
Delete attachment 136904API Reference
This server uses the Jira REST API v3.
Troubleshooting
"Error: JIRA_EMAIL and JIRA_API_TOKEN are required"
Make sure you've set the environment variables in your MCP configuration.
Authentication errors
Verify your API token is correct
Ensure your email matches your Atlassian account
Check that your
JIRA_BASE_URLdoesn't have a trailing slash
Permission errors
The API token uses the permissions of the user who created it. Make sure your account has the necessary permissions for the actions you're trying to perform.
License
MIT
Author
Parth Dogra
Contributing
Feel free to open issues or submit pull requests for improvements!
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.