indrajithi/jira-mcp-server
3.2
If you are the rightful owner of jira-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A comprehensive Model Context Protocol (MCP) server for complete Jira project management integration with Claude Code.
Tools
5
Resources
0
Prompts
0
Jira MCP Server
A comprehensive Model Context Protocol (MCP) server for complete Jira project management integration with Claude Code.
⨠Features
šÆ Core Issue Management
- jira_search: Search for Jira issues using JQL or simple filters
- jira_get_issue: Get detailed information about a specific issue
- jira_create_issue: Create new Jira issues
- jira_update_issue: Update existing issues with new information
- jira_delete_issue: Delete issues permanently (with safety confirmation)
- jira_assign_issue: Assign or unassign issues to users
š Workflow Management
- jira_transition_issue: Change issue status through workflow transitions
- jira_get_transitions: Get available transitions for any issue
š¬ Comment Management
- jira_add_comment: Add comments to issues for collaboration
- jira_get_comments: Retrieve all comments from an issue
šāāļø Sprint Management
- jira_create_sprint: Create new sprints on boards
- jira_get_sprints: List all sprints for a board (with state filtering)
- jira_get_sprint_analytics: Get detailed sprint metrics and analytics
š Project Information
- jira_list_projects: List all accessible projects
- jira_get_project_info: Get detailed project information and statistics
Setup
-
Install dependencies:
npm install
-
Configure environment: Copy
.env
and update with your Jira credentials:JIRA_URL=https://your-company.atlassian.net JIRA_USERNAME=your.email@company.com JIRA_API_TOKEN=your_api_token JIRA_PROJECT_KEY=AR
-
Build and run:
npm run build npm start
Or for development:
npm run dev
Claude Code Integration
The server is registered globally with user scope:
claude mcp add --scope user jira-mcp-server /path/to/dist/index.js
š Usage Examples
Core Issue Management
// Search all issues in project
jira_search({ project: "AR" })
// Search with JQL
jira_search({ jql: "status = 'To Do' AND priority = High" })
// Get issue details
jira_get_issue({ issueKey: "AR-1" })
// Create new issue
jira_create_issue({
summary: "Fix login bug",
description: "Users cannot log in with valid credentials",
issueType: "Bug",
priority: "High"
})
// Update existing issue
jira_update_issue({
issueKey: "AR-1",
summary: "Updated summary",
priority: "Critical"
})
// Assign issue
jira_assign_issue({
issueKey: "AR-1",
assignee: "user@company.com"
})
// Delete issue (use with caution!)
jira_delete_issue({
issueKey: "AR-1",
confirm: true,
deleteSubtasks: false
})
Workflow Management
// Get available transitions
jira_get_transitions({ issueKey: "AR-1" })
// Transition issue with comment
jira_transition_issue({
issueKey: "AR-1",
transitionId: "21",
comment: "Moving to In Progress as work has started"
})
Comment Management
// Add comment
jira_add_comment({
issueKey: "AR-1",
comment: "This issue is ready for testing"
})
// Get all comments
jira_get_comments({ issueKey: "AR-1" })
Sprint Management
// Create new sprint
jira_create_sprint({
name: "Sprint 15",
boardId: 5,
goal: "Complete user authentication features",
startDate: "2025-06-18",
endDate: "2025-07-01"
})
// Get all sprints for board
jira_get_sprints({ boardId: 5 })
// Get sprint analytics
jira_get_sprint_analytics({ sprintId: 123 })
Project Information
// List all projects
jira_list_projects({ includeDetails: true })
// Get project details
jira_get_project_info({ projectKey: "AR" })
š Complete Project Management Workflows
Epic to Sprint Workflow
// 1. List projects and get project info
jira_list_projects()
jira_get_project_info({ projectKey: "AR" })
// 2. Create issues for your epic
jira_create_issue({
summary: "User Authentication Epic",
description: "Complete user authentication system",
issueType: "Epic"
})
// 3. Create sprint and add issues
jira_create_sprint({
name: "Authentication Sprint 1",
boardId: 5,
goal: "Implement login functionality"
})
// 4. Move issues through workflow
jira_get_transitions({ issueKey: "AR-5" })
jira_transition_issue({
issueKey: "AR-5",
transitionId: "21",
comment: "Starting development"
})
// 5. Add progress updates
jira_add_comment({
issueKey: "AR-5",
comment: "Backend API implemented, testing in progress"
})
// 6. Monitor sprint progress
jira_get_sprint_analytics({ sprintId: 123 })
Issue Lifecycle Management
// Create ā Assign ā Update ā Transition ā Comment ā Complete
jira_create_issue({ summary: "Fix login validation" })
jira_assign_issue({ issueKey: "AR-6", assignee: "dev@company.com" })
jira_update_issue({ issueKey: "AR-6", priority: "High" })
jira_transition_issue({ issueKey: "AR-6", transitionId: "21" })
jira_add_comment({ issueKey: "AR-6", comment: "Fix deployed to staging" })
jira_transition_issue({ issueKey: "AR-6", transitionId: "31" })
šļø Architecture
src/
āāā index.ts # Main MCP server with all tool handlers
āāā types/jira.ts # Comprehensive TypeScript types and schemas
āāā utils/
ā āāā config.ts # Configuration loading with absolute paths
ā āāā jira-client.ts # Extended Jira API client with agile support
āāā tools/ # Complete MCP tool implementations
āāā jira-search.ts
āāā jira-get-issue.ts
āāā jira-create-issue.ts
āāā jira-update-issue.ts
āāā jira-delete-issue.ts
āāā jira-assign-issue.ts
āāā jira-transition-issue.ts
āāā jira-comments.ts
āāā jira-sprint-management.ts
āāā jira-project-info.ts
Configuration
Variable | Description | Required |
---|---|---|
JIRA_URL | Jira instance URL | Yes |
JIRA_USERNAME | Your email address | Yes |
JIRA_API_TOKEN | API token from Jira | Yes |
JIRA_PROJECT_KEY | Default project (e.g., "AR") | No |
MCP_VERBOSE | Enable verbose logging | No |
API_TIMEOUT | Request timeout in ms | No |
Troubleshooting
- Authentication errors: Verify API token is valid
- Permission errors: Check Jira project permissions
- Connection issues: Verify Jira URL and network access
License
MIT