JIRA MCP Server
The JIRA MCP Server provides access to JIRA data with relationship tracking, optimized payloads, and data cleaning for AI contexts. It supports both Jira Cloud and Jira Server (Data Center) instances.
Key capabilities:
Search JIRA issues using JQL (max 50 results per request)
Retrieve epic children including comments and relationships (max 100 issues per request)
Get detailed issue information with comments and relationships
Create new JIRA issues with specified fields
Update existing JIRA issue fields
Add file attachments to JIRA issues (using Base64 encoded content)
Add comments to JIRA issues (converting plain text to Atlassian Document Format)
Get available status transitions for a JIRA issue
Change the status of a JIRA issue by performing a transition
Clean and transform JIRA content for AI efficiency
Track issue relationships (mentions, links, parent/child, epics)
Provides access to JIRA data including searching issues, retrieving epic children, getting detailed issue information, creating and updating issues, extracting issue mentions, tracking issue relationships, handling file attachments, and transforming JIRA content for AI context windows
Click on "Install 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., "@JIRA MCP Serversearch for open bugs in project ABC assigned to me"
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.
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.
Related MCP server: Jira MCP Server
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
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')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)
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=bearerUse the PAT as your
JIRA_API_TOKEN
Installation & Setup
1. Clone the repository
git clone [repository-url]
cd jira-mcp2. Install dependencies and build
bun install
bun run build3. Configure the MCP server
Edit the appropriate configuration file:
macOS:
Cline:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.jsonClaude Desktop:
~/Library/Application Support/Claude/claude_desktop_config.json
Windows:
Cline:
%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.jsonClaude Desktop:
%APPDATA%\Claude Desktop\claude_desktop_config.json
Linux:
Cline:
~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.jsonClaude 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"
}
}
}
}4. Restart the MCP server
Within Cline's MCP settings, restart the MCP server. Restart Claude Desktop to load the new MCP server.
Development
Run tests:
bun testWatch mode for development:
bun run devTo rebuild after changes:
bun run buildAvailable MCP Tools
search_issues
Search JIRA issues using JQL. Returns up to 50 results per request.
Input Schema:
{
searchString: string; // JQL search string
}get_epic_children
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_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_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_issue
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_attachment
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_comment
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)
}Data Cleaning Features
Extracts text from Atlassian Document Format
Tracks issue mentions in descriptions and comments
Maintains formal issue links with relationship types
Preserves parent/child relationships
Tracks epic associations
Includes comment history with author information
Removes unnecessary metadata from responses
Recursively processes content nodes for mentions
Deduplicates issue mentions
Technical Details
Built with TypeScript in strict mode
Uses Bun runtime for improved performance
Vite for optimized builds
Uses JIRA REST API v3 (Cloud) or v2 (Server/Data Center)
Supports multiple authentication methods:
Basic authentication with API tokens or username/password
Bearer authentication with Personal Access Tokens (PATs)
Batched API requests for related data
Optimized response payloads for AI context windows
Efficient transformation of complex Atlassian structures
Robust error handling
Rate limiting considerations
Maximum limits:
Search results: 50 issues per request
Epic children: 100 issues per request
Support for multipart form data for secure file attachments
Automatic content type detection and validation
Error Handling
The server implements a comprehensive error handling strategy:
Network error detection and appropriate messaging
HTTP status code handling (especially 404 for issues)
Detailed error messages with status codes
Error details logging to console
Input validation for all parameters
Safe error propagation through MCP protocol
Specialized handling for common JIRA API errors
Base64 validation for attachments
Multipart request failure handling
Rate limit detection
Attachment parameter validation
LICENCE
This project is licensed under the MIT License - see the LICENCE file for details.
Available Tools
9 toolsadd_attachmentC
Add a file attachment to a JIRA issue
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | The key of the issue to add attachment to | |
| fileContent | Yes | Base64 encoded content of the file | |
| filename | Yes | Name of the file to be attached |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure but only states the basic action. It doesn't cover important aspects like required permissions, file size limits, supported file types, whether the operation is idempotent, or what happens on failure (e.g., if issue doesn't exist). For a mutation tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a straightforward tool and front-loads the essential information without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., attachment ID, success confirmation), error conditions, or behavioral constraints. The agent would need to guess about important operational aspects beyond the basic action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage, with all three parameters clearly documented in the schema itself. The description adds no additional parameter information beyond what's already in the schema, so it meets the baseline for adequate but not exceptional parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add') and resource ('file attachment to a JIRA issue'), making the tool's purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'update_issue' or 'add_comment' that might also modify issues, missing an opportunity for clearer distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., issue must exist), exclusions (e.g., cannot attach to epics), or related tools like 'update_issue' for other modifications, leaving the agent without contextual usage information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_commentC
Add a comment to a JIRA issue
| Name | Required | Description | Default |
|---|---|---|---|
| issueIdOrKey | Yes | The ID or key of the issue to add the comment to | |
| body | Yes | The content of the comment (plain text) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure but offers minimal information. It states the tool adds a comment but doesn't cover permissions needed, whether comments are editable/deletable after creation, rate limits, error conditions, or what happens on success (e.g., returns comment ID). This leaves significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with zero wasted words. It's front-loaded with the core action and resource, making it highly efficient and easy to parse at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain behavioral aspects like authentication needs, error handling, or return values, leaving the agent with insufficient context to use the tool effectively beyond basic parameter passing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema (e.g., format examples for issueIdOrKey, body content constraints). This meets the baseline for high schema coverage but doesn't enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add a comment') and target resource ('to a JIRA issue'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'update_issue' which might also allow comment modifications, or specify if this is for creating new comments only versus editing existing ones.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing issue access), exclusions (e.g., not for editing comments), or comparisons to sibling tools like 'update_issue' that might offer overlapping functionality for comment management.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_issueC
Create a new JIRA issue
| Name | Required | Description | Default |
|---|---|---|---|
| projectKey | Yes | The project key where the issue will be created | |
| issueType | Yes | The type of issue to create (e.g., "Bug", "Story", "Task") | |
| summary | Yes | The issue summary/title | |
| description | No | The issue description | |
| fields | No | Additional fields to set on the issue |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'Create a new JIRA issue' implies a write operation but reveals nothing about authentication requirements, rate limits, side effects, error conditions, or what happens on success. For a mutation tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized for a straightforward creation tool and gets directly to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 5 parameters, no annotations, and no output schema, the description is inadequate. It doesn't address what the tool returns, error handling, or behavioral characteristics. The agent would need to guess about important operational aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter information beyond what's already in the schema (which has 100% coverage). It doesn't explain relationships between parameters, provide examples, or clarify the 'fields' object's purpose. With complete schema documentation, the baseline is 3, but the description contributes no additional value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Create') and resource ('new JIRA issue'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'update_issue' or explain how creation differs from modification, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'update_issue' or 'search_issues'. There's no mention of prerequisites, constraints, or typical use cases, leaving the agent to infer usage context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_epic_childrenB
Get all child issues in an epic including their comments
| Name | Required | Description | Default |
|---|---|---|---|
| epicKey | Yes | The key of the epic issue |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves data ('Get'), implying a read-only operation, but does not specify whether it requires authentication, has rate limits, returns paginated results, or handles errors. For a tool with no annotations, this leaves significant gaps in understanding its behavior and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence: 'Get all child issues in an epic including their comments.' It is front-loaded with the core purpose, avoids redundancy, and uses minimal words to convey essential information. Every part of the sentence earns its place by specifying what is retrieved and what is included.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (retrieving nested data with comments), lack of annotations, and no output schema, the description is minimally adequate. It states what the tool does but does not cover behavioral aspects like response format, error handling, or performance considerations. For a read operation with no structured output, more context would be helpful, but it meets the basic threshold.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'epicKey' documented as 'The key of the epic issue.' The description does not add any additional meaning beyond this, such as format examples or validation rules. According to the rules, when schema coverage is high (>80%), the baseline score is 3, as the schema adequately handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get all child issues in an epic including their comments.' It specifies the verb ('Get'), resource ('child issues in an epic'), and scope ('including their comments'), which is specific and actionable. However, it does not explicitly distinguish this tool from sibling tools like 'get_issue' or 'search_issues,' which could also retrieve issue-related data, preventing a score of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, such as needing an epic key, or compare it to siblings like 'get_issue' (for single issues) or 'search_issues' (for broader queries). Without any context on usage scenarios or exclusions, the agent must infer when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issueC
Get detailed information about a specific JIRA issue including comments
| Name | Required | Description | Default |
|---|---|---|---|
| issueId | Yes | The ID or key of the JIRA issue |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions retrieving 'detailed information' and 'comments', but fails to specify critical behaviors like whether this is a read-only operation, if it requires authentication, rate limits, error handling, or the format of returned data. This leaves significant gaps for an AI agent to understand how to invoke it safely and effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a JIRA issue retrieval tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits, error cases, and the structure of returned data (e.g., what 'detailed information' includes beyond comments), which are essential for effective tool use in this context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'issueId' clearly documented as 'The ID or key of the JIRA issue'. The description adds no additional semantic context beyond this, such as examples or constraints, so it meets the baseline score of 3 where the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'detailed information about a specific JIRA issue including comments', making the purpose understandable. However, it doesn't explicitly differentiate this tool from sibling tools like 'search_issues' or 'get_epic_children', which might also retrieve issue information in different contexts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as 'search_issues' (for multiple issues) or 'get_epic_children' (for related issues). It lacks explicit instructions on prerequisites, context, or exclusions, leaving usage unclear relative to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transitionsC
Get available status transitions for a JIRA issue
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | The key of the issue to get transitions for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but doesn't describe how it behaves—such as whether it requires authentication, has rate limits, returns paginated results, or what format the transitions are in. This leaves significant gaps in understanding the tool's operational characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It's front-loaded with the core purpose and efficiently communicates the essential action, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete for a tool that likely returns structured data about transitions. It doesn't explain what information is returned (e.g., transition IDs, names, conditions), leaving the agent without necessary context for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the single parameter 'issueKey' fully documented in the schema. The description doesn't add any additional meaning beyond what the schema provides, such as examples or constraints, so it meets the baseline score for high schema coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'available status transitions for a JIRA issue', making the purpose specific and understandable. However, it doesn't explicitly distinguish this tool from sibling tools like 'get_issue' or 'transition_issue', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, when it's appropriate compared to 'get_issue' or 'transition_issue', or any contextual limitations, leaving the agent with minimal usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_issuesC
Search JIRA issues using JQL
| Name | Required | Description | Default |
|---|---|---|---|
| searchString | Yes | JQL search string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but offers minimal information. It states the search method (JQL) but doesn't describe what the tool returns (e.g., issue list format, pagination, error handling), rate limits, or authentication requirements. For a search tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single, clear sentence that directly states the tool's function without any fluff. It's front-loaded with the core action and resource, making it efficient and easy to parse. Every word earns its place, achieving optimal brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a search operation, lack of annotations, and no output schema, the description is incomplete. It doesn't explain return values, error conditions, or behavioral nuances (e.g., search limits). While concise, it fails to provide enough context for an agent to use the tool effectively beyond the basic input parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter-specific information beyond what the schema provides. Since schema description coverage is 100% (the single parameter 'searchString' is documented as 'JQL search string'), the baseline score of 3 is appropriate. The description doesn't elaborate on JQL syntax or examples, but the schema already covers the essential meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Search') and target resource ('JIRA issues') with the method ('using JQL'), making the purpose immediately understandable. It distinguishes from siblings like 'get_issue' by specifying search functionality rather than direct retrieval. However, it doesn't explicitly contrast with all siblings (e.g., 'get_epic_children' which also retrieves issues), keeping it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention scenarios where search is preferred over direct retrieval (e.g., 'get_issue' for single issues) or filtering options, nor does it specify prerequisites like authentication or JQL knowledge. This leaves the agent with minimal context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transition_issueB
Change the status of a JIRA issue by performing a transition
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | The key of the issue to transition | |
| transitionId | Yes | The ID of the transition to perform | |
| comment | No | Optional comment to add with the transition |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the basic action. It doesn't disclose behavioral traits like required permissions, whether the transition is reversible, side effects (e.g., notifications), rate limits, or what happens on success/failure. 'Change the status' implies mutation but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded with the core purpose and appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a mutation tool with no annotations and no output schema, the description is minimally adequate but incomplete. It covers the basic purpose but lacks crucial context like behavioral details, usage guidelines, and output expectations, leaving gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents parameters (issueKey, transitionId, comment). The description adds no meaning beyond this, as it doesn't explain parameter relationships (e.g., transitionId must be valid for the issue) or usage context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Change the status') and resource ('a JIRA issue') with the specific mechanism ('by performing a transition'). It distinguishes from siblings like 'update_issue' which might handle other fields, but doesn't explicitly contrast with 'get_transitions' which likely provides available transitions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing to know valid transition IDs from 'get_transitions'), exclusions, or contextual triggers for status changes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_issueC
Update an existing JIRA issue
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | The key of the issue to update | |
| fields | Yes | Fields to update on the issue |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 'Update' implies mutation, but it doesn't specify whether this requires specific permissions, what happens to unchanged fields, if changes are reversible, or any rate limits/error conditions. For a mutation tool with zero annotation coverage, this is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a simple tool and front-loads the essential information immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, no output schema, and multiple sibling tools that also modify issues, the description is incomplete. It doesn't address behavioral risks, output expectations, or differentiation from alternatives, leaving significant gaps for an agent to operate safely and effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('issueKey' and 'fields'). The description adds no additional meaning about parameter usage, format expectations, or examples beyond what the schema provides. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and the resource ('an existing JIRA issue'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its sibling 'transition_issue' which also modifies issues, or explain what specific aspects can be updated versus other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'transition_issue' or 'add_comment'. It doesn't mention prerequisites (e.g., needing an existing issue key) or contextual constraints, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose targeting specific JIRA operations: create, get, update, search, transition, add attachments/comments, and get epic children. There is no overlap or ambiguity between tools like 'get_issue' and 'search_issues' or 'update_issue' and 'transition_issue', making misselection unlikely.
All tools follow a consistent verb_noun naming pattern with snake_case throughout (e.g., create_issue, get_issue, update_issue). The verbs are appropriate and predictable, with no mixing of conventions or styles, ensuring readability and coherence.
With 9 tools, the server is well-scoped for JIRA operations, covering core workflows like issue management, searching, and status transitions. Each tool earns its place without being overly sparse or bloated, fitting typical server sizes of 3-15 tools.
The tool set provides strong coverage for JIRA issue lifecycle, including CRUD operations (create, get, update), searching, transitions, and attachments/comments. A minor gap exists with no delete_issue tool, but agents can work around this, and other operations like epic handling are partially covered.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Intelligent context infrastructure for AI teams: knowledge graph, sessions, tasks, documents.
Connect to Atlassian Jira, Confluence, and Compass to search, create, and manage your work.
Individual-analyst context layer: recall, remember, and reconcile your data and engineering context.
Shared, versioned context that humans and AI agents can publish, review, annotate, and continue.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables natural language interaction with Jira for managing projects, issues, tasks, and workflows through the Model Context Protocol, allowing users to delegate PM tasks through Claude Desktop.6463MIT
- AlicenseBqualityCmaintenanceA Model Context Protocol server that provides integration with Jira, allowing Large Language Models to interact with Jira projects, boards, sprints, and issues through natural language.5223MIT
- FlicenseNot gradedqualityDmaintenanceEnables comprehensive interaction with JIRA through the Model Context Protocol, supporting issue management, search, comments, attachments, workflow transitions, and custom fields with enterprise Kerberos authentication.
- AlicenseNot gradedqualityBmaintenanceProvides comprehensive access to Jira Cloud and Data Center instances for managing issues, epics, and attachments with AI-optimized data cleaning. It supports relationship tracking and dual transport modes via STDIO and Streamable HTTP.640MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/cosmix/jira-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server