Jira Integration
STDIOModel Context Protocol server providing access to JIRA data with relationship tracking.
Model Context Protocol server providing access to JIRA data with relationship tracking.
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
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.
JIRA_API_TOKEN=your_api_token JIRA_BASE_URL=your_jira_instance_url # e.g., https://your-domain.atlassian.net JIRA_USER_EMAIL=your_email JIRA_TYPE=cloud # or 'server' for Jira Server/Data Center (optional, defaults to 'cloud')
git clone [repository-url] cd jira-mcp
bun install bun run build
Edit the appropriate configuration file:
macOS:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
~/Library/Application Support/Claude/claude_desktop_config.json
Windows:
%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
%APPDATA%\Claude Desktop\claude_desktop_config.json
Linux:
~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
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" } } } }
Within Cline's MCP settings, restart the MCP server. Restart Claude Desktop to load the new MCP server.
Run tests:
bun test
Watch mode for development:
bun run dev
To rebuild after changes:
bun run build
Search JIRA issues using JQL. Returns up to 50 results per request.
Input Schema:
{ searchString: string; // JQL search string }
Get all child issues in an epic including their comments and relationship data. Limited to 100 issues per request.
Input Schema:
{ epicKey: string; // The key of the epic issue }
Get detailed information about a specific JIRA issue including comments and all relationships.
Input Schema:
{ issueId: string; // The ID or key of the JIRA issue }
Create a new JIRA issue with specified fields.
Input Schema:
{ projectKey: string, // The project key where the issue will be created issueType: string, // The type of issue (e.g., "Bug", "Story", "Task") summary: string, // The issue summary/title description?: string, // Optional issue description fields?: { // Optional additional fields [key: string]: any } }
Update fields of an existing JIRA issue.
Input Schema:
{ issueKey: string, // The key of the issue to update fields: { // Fields to update [key: string]: any } }
Add a file attachment to a JIRA issue.
Input Schema:
{ issueKey: string, // The key of the issue fileContent: string, // Base64 encoded file content filename: string // Name of the file to be attached }
Add a comment to a JIRA issue. Accepts plain text and converts it to the required Atlassian Document Format internally.
Input Schema:
{ issueIdOrKey: string, // The ID or key of the issue to add the comment to body: string // The content of the comment (plain text) }
The server implements a comprehensive error handling strategy:
This project is licensed under the MIT License - see the LICENCE file for details.