Jira MCP Server
Provides tools for interacting with Jira, enabling AI assistants to manage issues, projects, sprints, worklogs, and more through the Jira REST API.
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 ServerFind all open bugs in project PROJ"
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 v2.5.0
A complete MCP (Model Context Protocol) server for Jira integration, allowing AI assistants to interact with your Jira instance.
🚀 Installation
Via npx (Recommended)
npx @guhcostan/jira-mcpVia npm global
npm install -g @guhcostan/jira-mcp
jira-mcpLocal Development
git clone https://github.com/guhcostan/jira-mcp.git
cd jira-mcp
npm install
npm run buildRelated MCP server: Jira MCP
🔧 Configuration
1. Set up environment variables
Create a .env file in the project root:
JIRA_URL=https://your-jira-instance.com
JIRA_ACCESS_TOKEN=your-jira-access-tokenNote: This server uses Jira Access Token with Bearer authentication (Jira Data Center/Server). For Jira Cloud, you may need to use Basic Auth.
2. Configure in Claude Desktop or Cursor
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"jira": {
"command": "npx",
"args": ["-y", "@guhcostan/jira-mcp"],
"env": {
"JIRA_URL": "https://your-jira-instance.com",
"JIRA_ACCESS_TOKEN": "your-jira-access-token"
}
}
}
}For local development, use:
{
"mcpServers": {
"jira": {
"command": "node",
"args": ["/path/to/your/jira-mcp/build/index.js"],
"env": {
"JIRA_URL": "https://your-jira-instance.com",
"JIRA_ACCESS_TOKEN": "your-jira-access-token"
}
}
}
}3. Restart Claude Desktop / Cursor
Close and reopen the application completely to load the MCP server.
📚 Features
This MCP server provides 36 tools to interact with Jira:
📖 Read Operations (21 tools)
Issues
jira_get_issue- Get issue detailsjira_search- Search issues with JQLjira_get_project_issues- Get project issuesjira_batch_get_changelogs- Batch get changelogsjira_download_attachments- Get attachment info
Projects
jira_get_all_projects- List all projectsjira_get_project- Get project detailsjira_get_project_versions- Get project versionsjira_search_projects- Search projects by pattern
Metrics & Analytics
jira_get_issue_types- List all issue typesjira_get_metrics_summary- Get consolidated metrics summaryjira_get_metrics_by_project- Get detailed metrics by project
Other
jira_get_worklog- Get issue worklogsjira_get_transitions- Get available transitionsjira_search_fields- Search Jira fieldsjira_get_agile_boards- List agile boardsjira_get_board_issues- Get board issuesjira_get_sprints_from_board- Get board sprintsjira_get_sprint_issues- Get sprint issuesjira_get_issue_link_types- Get link typesjira_get_user_profile- Get user information
✏️ Write Operations (15 tools)
Issues
jira_create_issue- Create issuejira_batch_create_issues- Create multiple issuesjira_update_issue- Update issuejira_delete_issue- Delete issuejira_assign_issue- Assign issue
Other
jira_add_comment- Add commentjira_transition_issue- Change statusjira_add_worklog- Add worklogjira_link_to_epic- Link to epicjira_create_sprint- Create sprintjira_update_sprint- Update sprintjira_create_issue_link- Create issue linkjira_remove_issue_link- Remove linkjira_create_version- Create versionjira_batch_create_versions- Create multiple versions
💡 Usage Examples
Search Issues
// In Claude/Cursor, just ask:
"Find the last 10 open issues in project ABC"
"What are the critical bugs in the current sprint?"Create Issue
"Create a Task issue in project XYZ with title 'Implement authentication'"Manage Sprint
"List all active sprints from board 123"
"Move issue ABC-456 to sprint 789"Advanced JQL
"Search issues with JQL: project = DEV AND status = 'In Progress' AND assignee = currentUser()"Generate Metrics Reports (New in v2.5.0!)
// Search projects
"Find all projects that contain 'mobile' in the name"
// Get metrics summary
"Give me a summary of Tasks, Bugs, and Tech Debts for projects PROJ1, PROJ2, and PROJ3 created since 2024-10-01"
// Get detailed metrics by project
"Show me detailed metrics for each eLoyalty project, including Tasks, Bugs, and Tech Debts"🔍 Tool Reference
jira_get_issue
Get details of a specific issue.
Parameters:
issueKey(required): Issue key (e.g., PROJ-123)fields(optional): Fields to return (e.g., "summary,status,assignee")expand(optional): Expand fields (e.g., "changelog,renderedFields")
jira_search
Search issues using JQL.
Parameters:
jql(required): JQL query (e.g., "project = PROJ AND status = Open")maxResults(optional): Maximum number of results (default: 50)startAt(optional): Starting index for pagination (default: 0)fields(optional): Fields to return
jira_create_issue
Create a new issue.
Parameters:
project(required): Project keysummary(required): Issue titleissueType(required): Type (Task, Bug, Story, etc)description(optional): Descriptionpriority(optional): Priority (High, Medium, Low)assignee(optional): Assignee account IDlabels(optional): Array of labelsparentKey(optional): Parent issue key (for subtasks)
jira_transition_issue
Transition an issue to another status.
Parameters:
issueKey(required): Issue keytransition(required): Transition name or ID
jira_create_sprint
Create a new sprint.
Parameters:
boardId(required): Board IDname(required): Sprint namestartDate(optional): Start date (ISO 8601)endDate(optional): End date (ISO 8601)goal(optional): Sprint goal
jira_get_metrics_summary (New in v2.5.0)
Get consolidated metrics summary across multiple projects.
Parameters:
projectKeys(required): Array of project keys (e.g., ["PROJ1", "PROJ2"])issueTypes(required): Array of issue type names (e.g., ["Task", "Bug"])createdSince(optional): Filter by creation date (YYYY-MM-DD format)
Example:
"Get metrics summary for projects ABC, DEF, and GHI showing Tasks and Bugs created since 2024-01-01"jira_get_metrics_by_project (New in v2.5.0)
Get detailed metrics breakdown by individual project.
Parameters:
projectKeys(required): Array of project keysissueTypes(required): Array of issue type namescreatedSince(optional): Filter by creation date (YYYY-MM-DD format)
Example:
"Show me detailed metrics for each project in the eLoyalty team"🔐 Authentication
Jira Data Center/Server (Access Token)
This server uses Jira Access Token with Bearer authentication by default, ideal for Jira Data Center/Server instances:
Authorization: Bearer YOUR_ACCESS_TOKENJira Cloud (Basic Auth)
If you use Jira Cloud, you may need to modify the authentication to Basic Auth in the code.
How to get a Jira Access Token
Step-by-step guide:
Open your Jira instance (e.g.,
https://your-jira-instance.com)Click on your profile picture (top-right corner)
Select "Profile" from the dropdown menu
Navigate to "Personal Access Tokens" tab
Or go directly to:
https://your-jira-instance.com/secure/ViewProfile.jspa?selectedTab=com.atlassian.pats.pats-plugin:jira-user-personal-access-tokens
Click "Create token"
Fill in the token details:
Name: Give it a meaningful name (e.g., "MCP Server")
Expiration: Choose an expiration date or "Never expire" (if available)
Copy the token immediately (you won't be able to see it again!)
Add the token to your
.envfile asJIRA_ACCESS_TOKEN
Important Notes:
Store the token securely
Don't commit the token to version control
If you lose the token, you'll need to generate a new one
The token inherits your user permissions
🛠️ Development
Project Structure
jira-mcp/
├── src/
│ └── index.ts # Main MCP server
├── build/ # Compiled files
├── package.json
├── tsconfig.json
├── .env # Credentials (don't commit!)
├── .gitignore
└── README.mdAvailable Scripts
npm run build # Compile TypeScript
npm run watch # Compile in watch mode
npm run prepare # Runs automatically on npm installTest Locally
# Compile
npm run build
# Run directly
node build/index.js📝 Important Notes
✅ Supports Jira Data Center/Server with Access Token
✅ 36 complete tools (21 read + 15 write)
✅ JQL support for advanced searches
✅ Batch operations for better performance
✅ Metrics & Analytics tools for generating reports (v2.5.0)
✅ Connection validation on startup - tools only appear if Jira is accessible
✅ Improved error handling with helpful error messages and suggestions
⚠️ Requires appropriate Jira permissions for each operation
⚠️ Rate limiting is applied by Jira
🐛 Troubleshooting
No tools appearing in Claude/Cursor
The server validates the connection on startup. If no tools appear, check the logs:
Connection validation failed - The server couldn't connect to Jira
Check your
JIRA_URLis correctVerify your
JIRA_ACCESS_TOKENis validEnsure Jira is accessible from your network
Look at the server logs for specific error messages:
In Claude Desktop: Check the application logs
The server will show:
✅ Connected to Jira as: [Your Name]or❌ Jira connection failed: [error]
Error 401 - Unauthorized
Check if the access token is correct
Confirm you're using Bearer authentication with access token (not Basic Auth)
Verify the token hasn't expired - tokens can expire, generate a new one if needed
Ensure the token has the necessary permissions
Error 403 - Forbidden
Your token doesn't have permission for this operation
Check your Jira user permissions
Some operations require admin privileges
Error 404 - Not Found
The issue/project/resource doesn't exist
Check the issue key or project key is correct
Verify you have access to view the resource
Connection timeout or network errors
Check your network connection
Verify Jira server is accessible
Check if there's a firewall blocking the connection
Server doesn't appear in Claude/Cursor at all
Check if the path in config is correct
Restart the application completely
Check Claude/Cursor logs for startup errors
Verify Node.js is installed and accessible
📄 License
MIT
👤 Author
Gustavo Neves
🔗 Links
🤝 Contributing
Contributions are welcome! Feel free to open issues or pull requests.
Fork the project
Create your feature branch (
git checkout -b feature/AmazingFeature)Commit your changes (
git commit -m 'Add some AmazingFeature')Push to the branch (
git push origin feature/AmazingFeature)Open a Pull Request
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/guhcostan/jira-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server