Jira
Integrates with
Jira
Jira MCP Server
A Model Context Protocol Server for Jira.
Provides integration with Jira through MCP, allowing LLMs to interact with it.
Installation
Manual Installation
Note: Requires Node version to be 22.12.0 or above
-
Create or get Jira Personal Access Token: Guide
-
Add server config to Claude Desktop:
- MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
- Windows: Check this Guide
{
"mcpServers": {
"jira": {
"command": "npx",
"args": ["-y", "@parassolanki/jira-mcp-server@latest"],
"env": {
"JIRA_PERSONAL_ACCESS_TOKEN": "email@example.com:your_personal_jira_access_token",
"JIRA_BASE_URL": "jira_base_url"
}
}
}
}
For Windows:
{
"mcpServers": {
"jira": {
"command": "cmd /c npx",
"args": ["-y", "@parassolanki/jira-mcp-server@latest"],
"env": {
"JIRA_PERSONAL_ACCESS_TOKEN": "email@example.com:your_personal_jira_access_token",
"JIRA_BASE_URL": "jira_base_url"
}
}
}
}
Components
Tools
-
list_projects
: List projects from Jira.- Required inputs:
query
(optional string): A query string used to filter the returned projects.maxResults
(optional number, max: 100): The maximum number of results to return.expand
(optional string): Expand additional information in the response. (comma separateddescription
,lead
,issueTypes
,url
,projectKeys
,permissions
andinsight
).
- Required inputs:
-
list_boards
: List boards from a project.- Required inputs:
projectKeyOrId
(string): Key or Id of the project.name
(optional string): Name of the project.maxResults
(optional number, max: 100): The maximum number of results to return.startAt
(optional number): The starting index of the returned boards.type
(optional string): The type of boards. (can be one ofscrum
orkanban
).
- Required inputs:
-
list_sprints_from_board
: List sprints from a board.- Required inputs:
boardId
(string): The ID of the board.maxResults
(optional number, max: 100): The maximum number of results to return.startAt
(optional number): The starting index of the returned boards.
- Required inputs:
-
list_issues_from_sprint
: List issues from a sprint.- Required inputs:
boardId
(string): The ID of the board.sprintId
(string): The ID of the sprint.maxResults
(optional number, max: 100): The maximum number of results to return.startAt
(optional number): The starting index of the returned boards.expand
(optional string): Expand additional information in the response. (comma separatedschema
andnames
).
- Required inputs:
-
create_issue
: Create an issue in Jira (Only supports Task issue type).- Required inputs:
projectKeyOrId
(string): Key or Id of the project.summary
(string): The summary/title of the issue.description
(string): The description of the issue.
- Required inputs:
Usage examples
Some example prompts you can use to interact with Jira:
- "Show me all Jira projects" → execute the list_projects tool to see all available projects.
- "What Kanban boards exist in the DEV project?" → execute the list_boards tool with the DEV project key and type parameter set to "kanban".
- "Show me all the sprints for board ID 123" → execute the list_sprints_from_board tool to see all sprints associated with board 123.
- "What issues are in sprint 456 on board 123?" → execute the list_issues_from_sprint tool to see all issues in sprint 456 on board 123.
- "Show me the first 50 issues from the current sprint on the Marketing board" → first execute list_boards to find the Marketing board ID, then list_sprints_from_board to find the current sprint, then list_issues_from_sprint with maxResults=50.
Development
- Install dependencies:
pnpm install
- Configure Github Access token in
.env
:
JIRA_PERSONAL_ACCESS_TOKEN=email@example.com:your_personal_jira_access_token
JIRA_BASE_URL=jira_base_url
- Run locally with watch:
pnpm dev
- Build the server:
pnpm build
- Local debugging with inspector:
pnpm inspector
TODOS
- list_projects
- list_boards
- list_sprints_from_board
- list_issues_from_sprint
- get_issue_by_id_or_key
- create_issue (task issue type only)
- create_issue (story, epic, sub-task issue types)
- update_issue
- delete_an_issue
- archieve_an_issue
- list_comments_from_issue
- get_comment_from_issue_by_id
- create_comment_in_issue
- update_comment_of_issue
- delete_comment_of_issue
- list_subtasks_from_issue
- get_user_by_username_or_key