A Model Context Protocol Server for Jira.
Provides integration with Jira through MCP, allowing LLMs to interact with it.
-
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"],
"env": {
"JIRA_PERSONAL_ACCESS_TOKEN": "email@example.com:your_personal_jira_access_token",
"JIRA_BASE_URL": "jira_base_url"
}
}
}
}
-
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 separatedoperations
,versionedRepresentations
,editmeta
,changelog
andrenderedFields
).
- Required inputs:
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.
- 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