Jira MCP Server

The most complete open source Model Context Protocol (MCP) server for Jira & Atlassian. Connect any MCP-compatible AI client to your Jira instance in seconds — manage issues, sprints, comments, transitions, users, and Confluence pages without leaving your AI assistant.
{
"mcpServers": {
"jira": {
"command": "npx",
"args": ["-y", "raalarcon-jira-mcp-server"],
"env": {
"JIRA_HOST": "https://your-domain.atlassian.net",
"JIRA_EMAIL": "your-email@example.com",
"JIRA_API_TOKEN": "your-api-token"
}
}
}
}
Compatible AI Clients

Find This Server On
Features
- ✅ Project Management: List projects and issue types
- ✅ Issue CRUD: Create, read, update and delete issues
- ✅ Comments: Create, read, update and delete comments with enhanced pagination
- ✅ Transitions: Move issues between states
- ✅ Assignments: Assign issues to users
- ✅ User Management: Search and manage users
- ✅ Sprint Management: Complete agile sprint lifecycle management
- ✅ Wiki Integration: Access Confluence pages by URL identifier with HTML to text conversion
- ✅ Rich Text Support: Markdown to ADF conversion for formatted descriptions and comments
- ✅ Validation: Yup schema validation
- ✅ Authentication: Full Jira Cloud support
- ✅ Optimized Responses: Token-efficient field filtering
- ✅ Type Safety: Full TypeScript support
Installation
Option 1: Using npx (Recommended)
The easiest way to use this MCP server is with npx:
- Configure your MCP client (e.g., Claude Desktop) with this configuration:
{
"mcpServers": {
"jira": {
"command": "npx",
"args": ["-y", "raalarcon-jira-mcp-server"],
"env": {
"JIRA_HOST": "https://your-domain.atlassian.net",
"JIRA_EMAIL": "your-email@example.com",
"JIRA_API_TOKEN": "your-api-token"
}
}
}
}
- Get your Jira API token (see instructions below)
That's it! The server will be automatically downloaded and run when needed.
Option 2: Local Development
- Clone the repository:
git clone https://github.com/raalarcon9705/jira-mcp.git
cd jira-mcp
- Install dependencies:
- Build the project:
- Configure your MCP client with the full path to the built server:
{
"mcpServers": {
"jira": {
"command": "node",
"args": ["/full/path/to/jira-mcp/dist/index.js"],
"env": {
"JIRA_HOST": "https://your-domain.atlassian.net",
"JIRA_EMAIL": "your-email@example.com",
"JIRA_API_TOKEN": "your-api-token"
}
}
}
}
Note: Replace /full/path/to/jira-mcp/ with the actual absolute path to your project directory.
Getting API Token
- Go to Atlassian Account Settings
- Click "Create API token"
- Give it a descriptive name
- Copy the generated token
Usage
Using with npx (Recommended)
Once configured in your MCP client, the server will automatically start when needed. No additional setup required!
Rich Text Support with Markdown
The server now supports automatic Markdown to ADF conversion for issue descriptions and comments. Simply use Markdown syntax and it will be automatically converted to Atlassian Document Format (ADF).
Supported Markdown Elements
- Headers:
# H1, ## H2, ### H3
- Text formatting:
**bold**, *italic*
- Code:
`inline code` and code blocks
- Lists:
- bullet lists and 1. numbered lists
- Links:
[text](url)
- Blockquotes:
> quoted text
- Checkboxes:
- [x] completed task
Example Usage
// Create issue with Markdown description
create_issue({
projectKey: 'PROJ',
summary: 'Bug Report',
description: `# Bug Report
## Description
This is a **critical** bug affecting the login system.
## Steps to Reproduce
1. Go to login page
2. Enter invalid credentials
3. Click login button
## Code Example
\`\`\`javascript
function login(username, password) {
return authenticate(username, password);
}
\`\`\`
> **Note**: This bug was reported by multiple users.`,
});
// Create comment with Markdown
create_comment({
issueKey: 'PROJ-123',
body: `## Update
**Status**: Fixed ✅
- [x] Identified root cause
- [x] Implemented fix
- [x] Tested solution
The issue has been resolved.`,
});
Development
Production
Testing with npx
You can also test the server directly with npx:
# Test the server
npx raalarcon-jira-mcp-server
# Or use with MCP Inspector
npx @modelcontextprotocol/inspector
# Then configure: command: "npx", args: ["-y", "raalarcon-jira-mcp-server"]
Available Tools
Projects
get_projects
Retrieves all projects accessible to the authenticated user.
Parameters:
expand (optional): Additional data to include
recent (optional): Number of recent projects (0-20)
Response: Array of projects with essential fields:
[
{
"key": "PROJ",
"name": "Project Name",
"id": "10001",
"projectTypeKey": "software"
}
]
get_issue_types
Gets all available issue types for a specific project.
Parameters:
projectKey (required): Project key
Response: Array of issue types with essential fields:
[
{
"id": "10002",
"name": "Task",
"desc": "A small, independent piece of work",
"subtask": false,
"level": 0
}
]
Issues
create_issue
Creates a new issue in Jira.
Parameters:
projectKey (required): Project key
summary (required): Issue summary
issueType (required): Issue type (Bug, Story, Task, etc.)
description (optional): Issue description
priority (optional): Priority (Highest, High, Medium, Low, Lowest)
assignee (optional): Assignee account ID
labels (optional): Array of labels
components (optional): Array of components
fixVersions (optional): Array of fix versions
customFields (optional): Custom field values
Response: Issue PROJ-123 created successfully
get_issue
Gets details of a specific issue (custom fields removed for token efficiency).
Parameters:
issueKey (required): Issue key (e.g., PROJ-123)
expand (optional): Additional information
fields (optional): Specific fields to return
Response: Complete issue object with custom fields filtered out
update_issue
Updates an existing issue.
Parameters:
issueKey (required): Issue key to update
summary (optional): New summary
description (optional): New description
priority (optional): New priority
assignee (optional): New assignee
labels (optional): New labels
components (optional): New components
fixVersions (optional): New fix versions
customFields (optional): Custom fields
Response: Issue PROJ-123 updated successfully
delete_issue
Deletes an issue.
Parameters:
issueKey (required): Issue key to delete
deleteSubtasks (optional): Delete subtasks too (default: false)
Response: Issue PROJ-123 deleted successfully
Comments
create_comment
Adds a comment to an issue.
Parameters:
issueKey (required): Issue key
body (required): Comment text (supports ADF format)
visibility (optional): Visibility settings
Response: Comment 12345 created successfully
get_comments
Gets all comments for an issue.
Parameters:
issueKey (required): Issue key
startAt (optional): Start index (default: 0)
maxResults (optional): Max comments (1-100, default: 50)
Response: Optimized comment structure: