MCP Jira Server
Provides tools for interacting with self-hosted Jira instances via PAT authentication, enabling AI agents to manage issues (create, read, update, delete), search with JQL, add and view comments, assign issues, transition statuses, and list projects and issue types.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Jira Server get details for issue PROJ-123"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Jira Server for Self-Hosted Jira
A Model Context Protocol (MCP) server for interacting with self-hosted Jira instances using Personal Access Token (PAT) authentication.
Features
✅ Personal Access Token authentication for self-hosted Jira
✅ Create, read, update, and delete Jira issues
✅ Search issues using JQL (Jira Query Language)
✅ Add and view comments
✅ Manage issue assignments
✅ List projects and issue types
✅ Transition issues between statuses
✅ Get current user information
Related MCP server: Jira MCP Server
Prerequisites
Node.js 18 or higher
A self-hosted Jira instance (e.g., https://jira.domain.com)
A Jira Personal Access Token
How to Create a Personal Access Token in Self-Hosted Jira
Log in to your Jira instance (e.g., https://jira.domain.com)
Click on your profile icon in the top right corner
Select "Profile" or "Account Settings"
Navigate to "Personal Access Tokens" or "Security"
Click "Create token"
Give your token a name (e.g., "MCP Server")
Set an expiration date (optional but recommended)
Click "Create"
Copy the token immediately - you won't be able to see it again!
Installation
Option 1: Using npm (Recommended)
Direct usage with npx:
npx mcp-jira-serverOr install globally:
npm install -g mcp-jira-serverOption 2: From Source
Clone the repository:
git clone https://github.com/edrich13/mcp-jira-server.git
cd mcp-jira-serverInstall dependencies:
npm installBuild the server:
npm run buildConfiguration
For Claude Desktop
Add the following to your Claude Desktop configuration file:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Option 1: Using npx (Recommended)
{
"mcpServers": {
"jira": {
"command": "npx",
"args": ["-y", "mcp-jira-server"],
"env": {
"JIRA_BASE_URL": "https://jira.domain.com",
"JIRA_PAT": "your-personal-access-token-here"
}
}
}
}Option 2: Using source build
{
"mcpServers": {
"jira": {
"type": "stdio",
"command": "node",
"args": ["/Users/edrich.rocha/.nvm/versions/node/v22.6.0/bin/mcp-jira-server"],
"env": {
"JIRA_BASE_URL": "https://jira.domain.com",
"JIRA_PAT": "your-personal-access-token-here"
}
}
}
}For VS Code with MCP
Create or update .vscode/mcp.json in your workspace:
Option 1: Using npx (Recommended)
{
"servers": {
"jira": {
"command": "npx",
"args": ["-y", "mcp-jira-server"],
"env": {
"JIRA_BASE_URL": "https://jira.domain.com",
"JIRA_PAT": "your-personal-access-token-here"
}
}
}
}Option 2: Using source build
{
"servers": {
"jira": {
"command": "node",
"args": ["/absolute/path/to/mcp-jira-server/build/index.js"],
"env": {
"JIRA_BASE_URL": "https://jira.domain.com",
"JIRA_PAT": "your-personal-access-token-here"
}
}
}
}Environment Variables
JIRA_BASE_URL: The base URL of your self-hosted Jira instance (e.g.,https://jira.domain.com)JIRA_PAT: Your Personal Access TokenJIRA_USER_AGENT(optional): Custom User-Agent header for Jira instances behind reverse proxies (oauth2-proxy, nginx, etc.) that filter requests by User-Agent. If your API requests get redirected to SSO login despite valid PAT, your reverse proxy may require a specific User-Agent to bypass authentication for API clients.
Available Tools
1. jira_get_issue
Get details of a specific Jira issue by its key.
Parameters:
issueKey(string, required): The Jira issue key (e.g., "PROJ-123")
Example:
Get details for issue PROJ-1232. jira_search_issues
Search for Jira issues using JQL (Jira Query Language).
Parameters:
jql(string, required): JQL query stringmaxResults(number, optional): Maximum number of results (default: 50)
Example:
Search for all open issues in project PROJ assigned to meCommon JQL Examples:
project = PROJ AND status = Openassignee = currentUser() AND status != Donepriority = High AND created >= -7dreporter = john.doe AND status IN (Open, "In Progress")
3. jira_create_issue
Create a new Jira issue.
Parameters:
projectKey(string, required): Project keysummary(string, required): Issue title/summaryissueType(string, required): Issue type (e.g., "Bug", "Task", "Story")description(string, optional): Detailed descriptionpriority(string, optional): Priority level (e.g., "High", "Medium", "Low")assignee(string, optional): Username to assign tolabels(array, optional): Array of labelscomponents(array, optional): Array of component namesCustom fields: Any additional parameters prefixed with
customfield_(e.g.,customfield_10001)
Example:
Create a new bug in project PROJ with summary "Login page not loading" and high priorityCustom Fields Example:
Create a story in PROJ with custom field customfield_10001 set to "Sprint 1"4. jira_update_issue
Update an existing Jira issue.
Parameters:
issueKey(string, required): Issue key to updatesummary(string, optional): New summarydescription(string, optional): New descriptionassignee(string, optional): New assignee usernamepriority(string, optional): New prioritylabels(array, optional): New labels arraystatus(string, optional): New status (e.g., "In Progress", "Done")Custom fields: Any additional parameters prefixed with
customfield_(e.g.,customfield_10002)
Example:
Update issue PROJ-123 to set status to "In Progress" and assign to john.doe5. jira_add_comment
Add a comment to a Jira issue.
Parameters:
issueKey(string, required): Issue keycomment(string, required): Comment text
Example:
Add a comment to PROJ-123 saying "Fixed in latest deployment"6. jira_get_comments
Get all comments from a Jira issue.
Parameters:
issueKey(string, required): Issue key
7. jira_get_projects
List all available Jira projects.
Parameters: None
Example:
List all Jira projects8. jira_get_project
Get details of a specific project.
Parameters:
projectKey(string, required): Project key
9. jira_get_issue_types
Get available issue types for a project.
Parameters:
projectKey(string, required): Project key
10. jira_assign_issue
Assign a Jira issue to a user.
Parameters:
issueKey(string, required): Issue keyassignee(string, required): Username to assign to
11. jira_delete_issue
Delete a Jira issue permanently.
Parameters:
issueKey(string, required): Issue key to delete
⚠️ Warning: This action is permanent and cannot be undone.
12. jira_get_current_user
Get information about the currently authenticated user.
Parameters: None
Development
Build the server
npm run buildWatch mode for development
npm run watchRun in development mode
npm run devTesting the Server
After configuring the server, restart Claude Desktop or VS Code to load the new MCP server.
Quick Test Commands
Test authentication:
Get my current Jira user informationList projects:
Show me all Jira projectsSearch for issues:
Search for all issues assigned to me that are not doneCreate an issue:
Create a new task in project PROJ with summary "Test MCP integration"
Troubleshooting
Server not connecting
Verify the absolute path in your configuration
Ensure the server is built (
npm run build)Check that environment variables are set correctly
Restart Claude Desktop or VS Code after configuration changes
Authentication errors
Verify your Personal Access Token is still valid
Check that the token has not expired
Ensure the token has appropriate permissions
Verify the JIRA_BASE_URL is correct (no trailing slash)
API errors
Check Jira server logs for detailed error messages
Verify the Jira API is accessible from your machine
Ensure your user account has necessary permissions
Try accessing the REST API directly:
https://jira.domain.com/rest/api/2/myself
Common issues
"Cannot find module": Run
npm installandnpm run build"Connection refused": Check if Jira server is accessible and URL is correct
"Unauthorized": Verify your Personal Access Token
"Issue type not found": Use
jira_get_issue_typesto see valid types for the projectAPI requests redirect to SSO login: Your Jira may be behind a reverse proxy (oauth2-proxy, nginx) that filters by User-Agent. Set
JIRA_USER_AGENTenvironment variable to a whitelisted User-Agent string. Contact your system administrator to get the allowed User-Agent value.
Security Best Practices
Never commit your Personal Access Token to version control
Store tokens securely in configuration files with restricted permissions
Use tokens with minimal required permissions
Set expiration dates for tokens
Rotate tokens regularly
Monitor token usage in Jira's audit logs
API Reference
This MCP server uses the Jira REST API v2. For more information about Jira's API:
Jira REST API documentation:
https://your-jira-instance/rest/api/2/JQL syntax guide: Check your Jira instance documentation
License
MIT
Support
For issues related to:
MCP Server: Check the logs in Claude Desktop or VS Code
Jira API: Refer to your self-hosted Jira documentation
Authentication: Contact your Jira administrator
Contributing
Contributions are welcome! Please ensure:
Code follows TypeScript best practices
All tools are properly documented
Error handling is comprehensive
Security best practices are followed
Available Tools
12 toolsjira_add_commentB
Add a comment to a Jira issue
Inputs: comment (required), issueKey (required).
jira_assign_issueB
Assign a Jira issue to a user
Inputs: assignee (required), issueKey (required).
jira_create_issueB
Create a new Jira issue in a specified project
Inputs: summary (required), issueType (required), projectKey (required), labels, +5 more.
jira_delete_issueA
Delete a Jira issue permanently
Inputs: issueKey (required).
jira_get_commentsB
Get all comments from a Jira issue
Inputs: issueKey (required).
jira_get_current_userA
Get information about the currently authenticated user
Inputs: no named parameters.
jira_get_issueA
Get details of a specific Jira issue by its key (e.g., PROJ-123)
Inputs: issueKey (required).
jira_get_issue_typesA
Get available issue types for a project
Inputs: projectKey (required).
jira_get_projectA
Get details of a specific Jira project
Inputs: projectKey (required).
jira_get_projectsA
List all available Jira projects
Inputs: no named parameters.
jira_search_issuesA
Search for Jira issues using JQL (Jira Query Language). Examples: "project = PROJ AND status = Open", "assignee = currentUser() AND status != Done"
Inputs: jql (required), maxResults.
jira_update_issueC
Update an existing Jira issue
Inputs: issueKey (required), labels, status, summary, +4 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 12 tools
Each tool targets a distinct entity or operation: get vs search vs create vs update vs delete for issues, plus separate comment, project, issue type, assignment, and user tools. The singular/plural distinction between get_project and get_projects is clear from context, and no two tools overlap in purpose.
All tools follow a consistent jira_ prefix with a verb_noun snake_case pattern (e.g., get_issue, create_issue, add_comment). The convention is predictable throughout, with no deviations.
12 tools is well-scoped for a Jira server, covering core issue CRUD, comments, projects, issue types, assignment, and user lookup without inflating the surface with redundant operations.
Core issue lifecycle (create, read, update, delete) and comment read/write are covered, but notable gaps exist for workflow transitions (changing status), attachments, issue links, and comment update/delete. These gaps are manageable for basic use but could cause failures for status-change workflows.
Maintenance
Related MCP Connectors
Connect to Atlassian Jira, Confluence, Loom, and more to search, create, and manage your work.
Task manager your agent can fully operate: boards, tasks, sprints, roles, worklogs, day planner.
Track issues, projects and dependencies with your agent in a workspace you control.
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to interact with Jira Cloud instances for comprehensive issue management including creating, updating, searching issues, managing comments, workflow transitions, and project metadata discovery. Supports JQL queries, user search, and custom field operations with secure API token authentication.122,052 npm8MIT
- AlicenseBqualityCmaintenanceEnables comprehensive interaction with self-hosted Jira instances using Personal Access Token authentication, supporting issue management, JQL searches, comments, transitions, projects, and custom fields through 27 specialized tools.2741 npm1MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to interact with self-hosted Jira instances for issue management, search, comments, and workflow transitions.19MIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with self-hosted Jira instances via Personal Access Token, supporting issue management and project operations through natural language.1,650 npmApache 2.0