A Model Context Protocol (MCP) server for interacting with Jira's API. Provides tools for managing issues, projects, and workflows.
- Create, update, and delete Jira issues
- List issues with JQL filtering
- Manage issue links and relationships
- Get project metadata (fields, issue types, etc.)
- User account lookup
- Clone this repository
- Install dependencies:
npm install- Create a
.envfile with your Jira credentials:
# Your Jira instance URL (e.g., https://company.atlassian.net)
JIRA_HOST=your-instance.atlassian.net
# Your Jira account email
JIRA_EMAIL=your-email@example.com
# Personal Access Token generated from Atlassian account settings
JIRA_API_TOKEN=your-api-tokenAdd to Cursor MCP settings in ~/.cursor/mcp.json:
{
"mcpServers": {
"jira-mcp": {
"type": "command",
"autoApprove": ["get_issues", "get_assigned_issues", "create_issue"],
"disabled": false,
"timeout": 180,
"command": "node",
"args": ["/Path/To/jira-mcp/build/index.js"],
"env": {
"JIRA_HOST": "You Jira host",
"JIRA_API_TOKEN": "Jira personal access token",
"JIRA_EMAIL": "Your Jira email",
"NODE_ENV": "production"
},
"transportType": "stdio",
"models": ["*"]
}
}
}
For more information on generating an API token, read the PAT documentation in Jira.
Delete a Jira issue or subtask by issue key.
Parameters:
issueKey(string): Key of the issue to delete (e.g., "PROJ-123")
Get all issues and subtasks for a project or rapid view.
Parameters:
projectKey(string): Project key (e.g., "PROJ")- OR
rapidView(number|string): Rapid view ID jql(string, optional): JQL query to filter issues
Get issues assigned to a user, with options to filter by assignment status.
Parameters:
accountId(string): The account ID of the user. Useget_userto find this.status(string, optional): Filter by assignment status:"current"(default),"past", or"all".additionalJql(string, optional): Optional JQL to further filter issues (e.g.,project = "PROJ" AND updated > -1d).
Update fields of an existing Jira issue.
Parameters:
issueKey(string): Key of the issue to updatesummary(string, optional): New summary/titledescription(string, optional): New descriptionassignee(string, optional): Account ID of new assigneestatus(string, optional): New status namepriority(string, optional): New priority name
Create a new Jira issue.
Parameters:
projectKey(string): Project keysummary(string): Issue summary/titleissueType(string): Issue type namedescription(string, optional): Detailed descriptionassignee(string, optional): Account ID of assigneelabels(array, optional): Array of labelscomponents(array, optional): Array of component namespriority(string, optional): Priority name
Create a relationship between two Jira issues.
Parameters:
inwardIssueKey(string): Key of inward issueoutwardIssueKey(string): Key of outward issuelinkType(string): Name of link type
Build the project:
npm run buildRun tests:
npm testStart the server:
npm startUse the MCP Inspector to test the server:
npm run inspector- Uses Model Context Protocol SDK version 1.18.0
- Compatible with Cursor and other MCP-enabled AI assistants
- Built with TypeScript and Node.js