Skip to main content
Glama
cosmix

JIRA MCP Server

by cosmix

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

  • 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=bearer

      • Use the PAT as your JIRA_API_TOKEN

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

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"
      }
    }
  }
}

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 test

Watch mode for development:

bun run dev

To rebuild after changes:

bun run build

Available 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 tools
add_attachmentC

Add a file attachment to a JIRA issue

ParametersJSON Schema
NameRequiredDescriptionDefault
issueKeyYesThe key of the issue to add attachment to
fileContentYesBase64 encoded content of the file
filenameYesName of the file to be attached

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdOrKeyYesThe ID or key of the issue to add the comment to
bodyYesThe content of the comment (plain text)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
projectKeyYesThe project key where the issue will be created
issueTypeYesThe type of issue to create (e.g., "Bug", "Story", "Task")
summaryYesThe issue summary/title
descriptionNoThe issue description
fieldsNoAdditional fields to set on the issue

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
epicKeyYesThe key of the epic issue

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdYesThe ID or key of the JIRA issue

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
issueKeyYesThe key of the issue to get transitions for

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
searchStringYesJQL search string

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
issueKeyYesThe key of the issue to transition
transitionIdYesThe ID of the transition to perform
commentNoOptional comment to add with the transition

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
issueKeyYesThe key of the issue to update
fieldsYesFields to update on the issue

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

A3.5/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    64
    63
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    A 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.
    5
    22
    3
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables comprehensive interaction with JIRA through the Model Context Protocol, supporting issue management, search, comments, attachments, workflow transitions, and custom fields with enterprise Kerberos authentication.
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides 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.
    640
    MIT

Latest Blog Posts

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