Jira MCP Server

A Model Context Protocol Server for Jira.
Provides integration with Jira through MCP, allowing LLMs to interact with it.
Jira REST Api Docs
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](https://gist.github.com/feveromo/7a340d7795fca1ccd535a5802b976e1f)
{
"mcpServers": {
"jira": {
"command": "npx",
"args": ["-y", "@parassolanki/jira-mcp-server@latest"],
"env": {
"JIRA_PERSONAL_ACCESS_TOKEN": "[[email protected]](/cdn-cgi/l/email-protection):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 protected]](/cdn-cgi/l/email-protection):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 separated `description`, `lead`, `issueTypes`, `url`, `projectKeys`, `permissions` and `insight`).
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 of `scrum` or `kanban`).
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.
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 separated `schema` and `names`).
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
:
[[email protected]](/cdn-cgi/l/email-protection):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