Access Jira Cloud and Data Center for managing issues, epics, and attachments.
JIRA MCP Server
A Model Context Protocol (MCP) server implementation that provides access to JIRA data with relationship tracking, optimized data payloads, and data cleaning for AI context windows.
ℹ️ There is a separate MCP server for Confluence
Jira Cloud & Jira Server (Data Center) Support
This MCP server supports both Jira Cloud and Jira Server (Data Center) instances. You can select which type to use by setting the JIRA_TYPE environment variable:
cloud(default): For Jira Cloud (Atlassian-hosted)server: For Jira Server/Data Center (self-hosted)
The server will automatically use the correct API version and authentication method for the selected type.
Features
- Search JIRA issues using JQL (maximum 50 results per request)
- Retrieve epic children with comment history and optimized payloads (maximum 100 issues per request)
- Get detailed issue information including comments and related issues
- Create, update, and manage JIRA issues
- Add comments to issues
- Extract issue mentions from Atlassian Document Format
- Track issue relationships (mentions, links, parent/child, epics)
- Clean and transform rich JIRA content for AI context efficiency
- Support for file attachments with secure multipart upload handling
- Supports both Jira Cloud and Jira Server (Data Center) APIs
- Dual transport modes: STDIO (default) and Streamable HTTP (MCP 2025-03-26) for tools like Postman and MCP Inspector
Prerequisites
- Bun (v1.0.0 or higher)
- JIRA account with API access
Environment Variables
JIRA_API_TOKEN=your_api_token # API token for Cloud, PAT or password for Server/DC
JIRA_BASE_URL=your_jira_instance_url # e.g., https://your-domain.atlassian.net
JIRA_USER_EMAIL=your_email # Your Jira account email
JIRA_TYPE=cloud # 'cloud' or 'server' (optional, defaults to 'cloud')
JIRA_AUTH_TYPE=basic # 'basic' or 'bearer' (optional, defaults to 'basic')
TRANSPORT_MODE=stdio # 'stdio' or 'http' (optional, defaults to 'stdio')
HTTP_PORT=3000 # Port for HTTP transport (optional, defaults to 3000)
Authentication Methods
Jira Cloud: Use API tokens with Basic authentication
- Create an API token at: https://id.atlassian.com/manage-profile/security/api-tokens
- Set
JIRA_AUTH_TYPE=basic(default)
Jira Server/Data Center:
- Basic Auth: Use username/password or API tokens
- Set
JIRA_AUTH_TYPE=basic(default)
- Set
- Bearer Auth: Use Personal Access Tokens (PATs) - available in Data Center 8.14.0+
- Create a PAT in your profile settings
- Set
JIRA_AUTH_TYPE=bearer - Use the PAT as your
JIRA_API_TOKEN
- Basic Auth: Use username/password or API tokens
Installation & Setup
1. Clone the repository
git clone [repository-url]
cd jira-mcp
2. Install dependencies and build
bun install
bun run build
3. Configure the MCP server
The server supports two transport modes: STDIO (default, for Claude Desktop/Cline) and HTTP (for Postman and other HTTP-based clients).
Option A: STDIO Transport (Default - Claude Desktop/Cline)
Edit the appropriate configuration file:
macOS:
- Cline:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json - Claude Desktop:
~/Library/Application Support/Claude/claude_desktop_config.json
Windows:
- Cline:
%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json - Claude Desktop:
%APPDATA%\Claude Desktop\claude_desktop_config.json
Linux:
- Cline:
~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json - Claude Desktop: sadly doesn't exist yet
Add the following configuration under the mcpServers object:
{
"mcpServers": {
"jira": {
"command": "node",
"args": ["/absolute/path/to/jira-mcp/build/index.js"],
"env": {
"JIRA_API_TOKEN": "your_api_token",
"JIRA_BASE_URL": "your_jira_instance_url",
"JIRA_USER_EMAIL": "your_email",
"JIRA_TYPE": "cloud",
"JIRA_AUTH_TYPE": "basic"
}
}
}
}
Option B: Streamable HTTP Transport (MCP Inspector & Postman)
- Start the server in HTTP mode:
# Set environment variables
export JIRA_API_TOKEN="your_api_token"
export JIRA_BASE_URL="your_jira_instance_url"
export JIRA_USER_EMAIL="your_email"
export TRANSPORT_MODE="http"
export HTTP_PORT="3000" # optional, defaults to 3000
# Run the server
bun run build/index.js
Or use a .env file:
# .env
JIRA_API_TOKEN=your_api_token
JIRA_BASE_URL=your_jira_instance_url
JIRA_USER_EMAIL=your_email
JIRA_TYPE=cloud
JIRA_AUTH_TYPE=basic
TRANSPORT_MODE=http
HTTP_PORT=3000
- The server will start with Streamable HTTP endpoint:
╔══════════════════════════════════════
Tools (5)
search_issuesSearch JIRA issues using JQL queries.get_epic_childrenRetrieve children issues of a specific epic with comment history.get_issueGet detailed information for a specific issue including comments and relationships.create_issueCreate a new issue in JIRA.add_commentAdd a comment to an existing JIRA issue.Environment Variables
JIRA_API_TOKENrequiredAPI token for Cloud, PAT or password for Server/DCJIRA_BASE_URLrequiredThe URL of your Jira instanceJIRA_USER_EMAILrequiredYour Jira account emailJIRA_TYPEType of Jira instance: 'cloud' or 'server'JIRA_AUTH_TYPEAuthentication method: 'basic' or 'bearer'TRANSPORT_MODETransport mode: 'stdio' or 'http'HTTP_PORTPort for HTTP transportConfiguration
{"mcpServers": {"jira": {"command": "node", "args": ["/absolute/path/to/jira-mcp/build/index.js"], "env": {"JIRA_API_TOKEN": "your_api_token", "JIRA_BASE_URL": "your_jira_instance_url", "JIRA_USER_EMAIL": "your_email", "JIRA_TYPE": "cloud", "JIRA_AUTH_TYPE": "basic"}}}}