Provides real-time access to Jira stories with tools for viewing, querying, filtering by status, searching by keywords, and retrieving story details including descriptions, comments, and metadata from Jira projects.
Jira MCP Server
A Model Context Protocol (MCP) server that provides comprehensive integration with Jira. This server enables AI assistants to interact with Jira through a standardized interface, allowing them to search, create, update, and manage Jira issues programmatically.
Features
This MCP server provides the following tools for Jira integration:
š Search Issues - Search for issues using JQL (Jira Query Language)
š Get Issue Details - Retrieve detailed information about specific issues
ā Create Issues - Create new issues in any project
āļø Update Issues - Modify existing issue fields
š¬ Add Comments - Add comments to issues
š Get Transitions - View available status transitions
ā” Transition Issues - Change issue status/workflow state
š¤ Assign Issues - Assign issues to users
š List Projects - Get all accessible projects
š Search Users - Find users by name or email
š Get Comments - Retrieve all comments from an issue
š Get Boards - List all accessible Scrum and Kanban boards
š Get Board Issues - Retrieve issues from a specific board
Prerequisites
Before you begin, ensure you have:
Node.js 18 or higher installed
A Jira account (Cloud or Data Center)
Jira API credentials (email and API token)
Claude Desktop or another MCP-compatible client
Installation
1. Clone or Download
Or if you're starting from scratch in this directory, the files are already created.
2. Install Dependencies
This will install:
@modelcontextprotocol/sdk- MCP SDK for building serversaxios- HTTP client for Jira API callsdotenv- Environment variable managementTypeScript and Node.js type definitions
3. Build the Project
This compiles the TypeScript code to JavaScript in the build/ directory.
Configuration
Step 1: Get Your Jira API Token
Log in to your Jira account at
https://your-domain.atlassian.netGo to Account Settings ā Security ā API tokens
Click Create API token
Give it a label (e.g., "MCP Server") and click Create
Copy the token immediately (you won't be able to see it again)
Step 2: Create Environment File
Create a .env file in the root directory:
Important Notes:
JIRA_HOSTshould be just the domain withouthttps://Use the email associated with your Jira account
Keep your API token secure and never commit it to version control
Step 3: Configure Claude Desktop
Add the server to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Replace /ABSOLUTE/PATH/TO/jira-mcp with the actual absolute path to your project directory.
Step 4: Restart Claude Desktop
Completely quit and restart Claude Desktop for the changes to take effect.
Usage
Once configured, you can ask Claude to interact with Jira using natural language. Here are some examples:
Example Queries
Search for Issues
Behind the scenes, Claude will use JQL like:
project = PROJ AND type = Bug AND status = Openassignee = currentUser() AND status = "In Progress"created >= -1w AND priority = High
Get Issue Details
Create New Issues
Update Issues
Add Comments
Transition Issues
For transitions, Claude will first get available transitions using jira_get_transitions, then execute the appropriate one.
Assign Issues
You'll need the user's account ID, which Claude can find using jira_search_users.
List Projects
Search Users
Get Boards
Get Board Issues
Available Tools Reference
jira_search_issues
Search for issues using JQL.
Parameters:
jql(required): JQL query stringmaxResults(optional): Maximum results (default: 50)startAt(optional): Starting index (default: 0)
Example:
jira_get_issue
Get detailed information about an issue.
Parameters:
issueKey(required): Issue key (e.g., "PROJ-123")
Example:
jira_create_issue
Create a new issue.
Parameters:
projectKey(required): Project keysummary(required): Issue summaryissueType(required): Issue type (Bug, Task, Story, etc.)description(optional): Issue descriptionpriority(optional): Priority (High, Medium, Low, etc.)
Example:
jira_update_issue
Update an existing issue.
Parameters:
issueKey(required): Issue keysummary(optional): Updated summarydescription(optional): Updated descriptionpriority(optional): Updated priority
Example:
jira_add_comment
Add a comment to an issue.
Parameters:
issueKey(required): Issue keycomment(required): Comment text
Example:
jira_get_transitions
Get available transitions for an issue.
Parameters:
issueKey(required): Issue key
Example:
jira_transition_issue
Transition an issue to a new status.
Parameters:
issueKey(required): Issue keytransitionId(required): Transition ID (from get_transitions)
Example:
jira_assign_issue
Assign an issue to a user.
Parameters:
issueKey(required): Issue keyaccountId(required): User account ID (use null to unassign)
Example:
jira_get_projects
Get all accessible projects. No parameters required.
jira_search_users
Search for users.
Parameters:
query(required): Search query (name or email)
Example:
jira_get_comments
Get all comments from an issue.
Parameters:
issueKey(required): Issue key
Example:
jira_get_boards
Get a list of all accessible Jira boards (Scrum and Kanban).
Parameters:
startAt(optional): Starting index (default: 0)maxResults(optional): Maximum results (default: 50)
Example:
jira_get_board_issues
Get issues from a specific Jira board. Useful for retrieving stories, tasks, and bugs from a board.
Parameters:
boardId(required): Board ID numberstartAt(optional): Starting index (default: 0)maxResults(optional): Maximum results (default: 50)jql(optional): JQL filter to apply to board issues
Example:
Development
Project Structure
Available Scripts
npm run build- Compile TypeScript to JavaScriptnpm run watch- Watch mode for developmentnpm run dev- Run with Node.js debugger
Making Changes
Edit TypeScript files in
src/Run
npm run buildto compileRestart Claude Desktop to test changes
Troubleshooting
Server Not Appearing in Claude
Check that the path in
claude_desktop_config.jsonis absolute and correctVerify the
build/index.jsfile exists (runnpm run build)Completely quit and restart Claude Desktop (not just close the window)
Check Claude Desktop logs for errors
Authentication Errors
Verify your
JIRA_HOSTdoesn't includehttps://Confirm your API token is valid and hasn't expired
Ensure the email matches your Jira account
Check that your account has permission to access the Jira instance
API Errors
Check that project keys and issue keys are correct (case-sensitive)
Verify you have permission to perform the operation
Some operations may require specific Jira permissions
Review the error message returned by the tool
JQL Query Issues
Test your JQL in Jira's search interface first
Ensure field names are correct and quoted if they contain spaces
Use proper JQL operators (=, !=, IN, NOT IN, etc.)
Common fields:
project,status,assignee,priority,type,created,updated
Security Notes
Never commit your
.envfile or API tokensAPI tokens have the same permissions as your user account
Consider creating a dedicated service account for automation
Regularly rotate your API tokens
Use environment variables for all sensitive data
JQL Reference
Common JQL examples:
API Rate Limits
Jira Cloud has rate limits:
10 requests per second per user
Consider implementing delays for bulk operations
The server handles individual requests; batch operations may hit limits
License
MIT
Support
For issues and questions:
Check the troubleshooting section above
Review Jira API documentation: https://developer.atlassian.com/cloud/jira/platform/rest/v3/
Review MCP documentation: https://modelcontextprotocol.io
Contributing
Contributions are welcome! Please:
Fork the repository
Create a feature branch
Make your changes
Submit a pull request
Note: This is an unofficial tool and is not affiliated with or endorsed by Atlassian.