Skip to main content
Glama
Eliya-56

Jira MCP Server

by Eliya-56

Jira MCP Server

MCP (Model Context Protocol) server for Jira Cloud. Provides AI assistants with tools to read, search, create, update, transition, link, comment, and attach files to Jira issues via the REST API v3. Text fields (descriptions, comments) support Markdown formatting.

Prerequisites

  • Node.js 18+

  • Jira Cloud instance

  • API Token for your Atlassian account (create one here)

Related MCP server: Jira MCP Integration

Setup

npm install
npm run build

Create a .env file (see .env.example):

JIRA_BASE_URL=https://jira.example.com
JIRA_EMAIL=user@example.com
JIRA_API_TOKEN=your-api-token

Running as MCP Server

Add to your Cursor mcp.json:

{
  "mcpServers": {
    "jira": {
      "command": "node",
      "args": ["C:\\repos\\Custom-MCP\\Jira\\dist\\index.js"]
    }
  }
}

Or run directly for development (without building):

npm run dev

Tools

get_my_tasks

Returns active tasks assigned to the current user.

Parameter

Type

Default

Description

max_results

number

10

Max tasks to return (1-50)

JQL: assignee = currentUser() AND status NOT IN (Done, Cancelled) ORDER BY priority DESC

get_task_details

Returns full context for a single issue: summary, description, status, assignee, comments, attachments, and issue links.

Parameter

Type

Description

issue_key

string

Issue key, e.g. PROJ-123

Response includes issueLinks[] with id, linkType, direction, relation, and linked issue details. Use the link id with unlink_issues to remove a link.

search_tasks

Searches issues by text query or raw JQL. Provide either query or jql, not both.

Parameter

Type

Default

Description

query

string

Text to search for (uses text ~ "...")

jql

string

Raw JQL query

max_results

number

5

Max results (1-50)

update_task_status

Transitions an issue to a new status. Fetches available transitions first, matches by name (case-insensitive), then executes.

Parameter

Type

Description

issue_key

string

Issue key, e.g. PROJ-123

transition_name

string

Target transition, e.g. In Progress

create_task

Creates a new Jira issue. Description supports Markdown formatting.

Parameter

Type

Default

Description

project

string

Project key (e.g. PROJ)

summary

string

Issue title

issue_type

string

Task

Issue type (Task, Bug, Story, Epic ...)

description

string

Description (supports Markdown)

parent

string

Parent issue key (e.g. epic key)

update_task

Updates fields on an existing Jira issue. Only provided fields are changed. Description supports Markdown formatting.

Parameter

Type

Description

issue_key

string

Issue key, e.g. PROJ-123

summary

string

New issue title

description

string

New description (supports Markdown)

issue_type

string

New issue type (Story, Bug, Task ...)

parent

string

New parent issue key (e.g. epic key)

Creates a link between two Jira issues. Use get_task_details to see existing links.

Parameter

Type

Description

link_type

string

Link type name (e.g. Blocks, Relates, Duplicate)

outward_issue

string

Issue key that gets the outward relation (e.g. the blocker)

inward_issue

string

Issue key that gets the inward relation (e.g. the blocked)

Common link types: Blocks (blocks / is blocked by), Relates (relates to), Duplicate (duplicates / is duplicated by), Cloners (clones / is cloned by).

Removes a link between two issues by link ID. Get the link ID from get_task_details → issueLinks[].id.

Parameter

Type

Description

link_id

string

Issue link ID to delete

add_comment

Adds a comment to an issue. Supports Markdown formatting.

Parameter

Type

Description

issue_key

string

Issue key, e.g. PROJ-123

comment

string

Comment text (supports Markdown)

attach_file

Uploads a file from disk and attaches it to an issue. Optionally adds a comment in the same call.

Parameter

Type

Required

Description

issue_key

string

yes

Issue key, e.g. PROJ-123

file_path

string

yes

Absolute path to the file on disk

comment

string

no

Optional comment to add after attaching

CLI

A standalone CLI runner is included for manual testing outside of MCP. It uses the same .env config and the same Jira client.

npm run cli -- <tool_name> [json_args]

Examples (key=value — works everywhere)

The recommended way to pass arguments. No quoting issues on any OS or shell.

npm run cli -- --help
npm run cli -- get_my_tasks
npm run cli -- get_my_tasks max_results=5
npm run cli -- get_task_details issue_key=PROJ-123
npm run cli -- search_tasks query="oauth bug" max_results=5
npm run cli -- search_tasks jql="project = PROJ AND status = Open"
npm run cli -- create_task project=PROJ summary="Fix login bug" issue_type=Bug description="**Steps:** ..." parent=PROJ-100
npm run cli -- update_task issue_key=PROJ-123 summary="Updated title" description="New **description**"
npm run cli -- update_task_status issue_key=PROJ-123 transition_name="In Progress"
npm run cli -- add_comment issue_key=PROJ-123 comment="Fixed in PR #42"
npm run cli -- attach_file issue_key=PROJ-123 file_path=C:\path\to\report.pdf
npm run cli -- attach_file issue_key=PROJ-123 file_path=C:\path\to\report.pdf comment="See attached report"
npm run cli -- link_issues link_type=Blocks outward_issue=PROJ-1 inward_issue=PROJ-2
npm run cli -- unlink_issues link_id=12345

Examples (JSON — Bash / macOS / Linux)

JSON is also accepted as a single argument when wrapped in single quotes:

npm run cli -- get_task_details '{"issue_key": "PROJ-123"}'
npm run cli -- search_tasks '{"query": "oauth bug", "max_results": 5}'

Windows note: npm.cmd passes arguments through cmd.exe, which strips double quotes. Use the key=value format on Windows instead of JSON.

Output is formatted JSON printed to stdout. Errors print to stderr with a non-zero exit code.

Project Structure

src/
  index.ts           — MCP server entry point (stdio transport)
  cli.ts             — CLI entry point for manual testing
  config.ts          — .env loader, validates JIRA_BASE_URL / EMAIL / API_TOKEN
  adf.ts             — ADF ↔ Markdown/plain-text conversion
  jira-client.ts     — HTTP wrapper over native fetch with Basic Auth
  response.ts        — successResponse / errorResponse helpers
  tools/
    getMyTasks.ts
    getTaskDetails.ts
    searchTasks.ts
    updateTaskStatus.ts
    addComment.ts
    attachFile.ts
    createTask.ts
    updateTask.ts
    linkIssues.ts
    unlinkIssues.ts
docs/
  markdown-formatting.md  — Supported Markdown syntax reference

Available Tools

10 tools
add_commentA

Add a comment to a Jira issue. Supports Markdown formatting.

ParametersJSON Schema
NameRequiredDescriptionDefault
commentYesComment text (supports Markdown)
issue_keyYesJira issue key (e.g. PROJ-123)

TDQS

A4/5.0
Behavior3/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 indicates the mutation ('Add') and notes Markdown formatting support, but does not disclose side effects beyond the obvious addition, such as permissions required, whether the issue must exist, or what the response contains. This is a moderate gap but acceptable for a straightforward action.

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?

Two short sentences with no filler. The core action is front-loaded, and the Markdown formatting note is a useful addition that earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter mutation tool with complete schema descriptions and no output schema, the description is nearly sufficient. It states the action and formatting capability. Minor omissions like return value or confirmation behavior are not critical for successful invocation.

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 both parameters are fully documented in the schema itself. The description only repeats the Markdown support detail already present in the comment parameter description, adding no new semantic value beyond the schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('Add') and resource ('comment to a Jira issue'), making the tool's purpose immediately obvious. It distinguishes itself from sibling tools, none of which perform comment creation, so there is no ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly defines the context of use: adding a comment to a Jira issue. While it does not explicitly mention when not to use it or name alternatives, no sibling tool overlaps with this functionality, so the usage context is clear and sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

attach_fileA

Upload a file from disk and attach it to a Jira issue.

ParametersJSON Schema
NameRequiredDescriptionDefault
commentNoOptional comment to add after attaching
file_pathYesAbsolute path to the file on disk
issue_keyYesJira issue key (e.g. PROJ-123)

TDQS

A4/5.0
Behavior3/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 accurately states the core behavior — reading a file from disk and attaching it to an issue — and 'attach' implies a write to the Jira issue. However, it does not mention failure modes (file not found, size limits), permission requirements, or that the optional comment is posted as part of the operation. Adequate for a low-risk additive action but adds no depth beyond the bare action.

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?

A single 12-word sentence with the action verb front-loaded and zero filler. Every word earns its place, and it avoids duplicating what the schema already documents.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 3-parameter tool with no output schema and no nested objects, the description plus the fully-covered schema provide enough to call the tool correctly. Minor gaps exist — no annotations and no mention of success/failure responses or side effects — but these are low-risk omissions for such a straightforward additive operation.

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%, with issue_key, file_path, and comment each documented in the schema, so the baseline is 3. The description adds no parameter-specific detail beyond loosely echoing 'file from disk' and 'Jira issue', but it doesn't need to compensate given the complete schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb-resource pair ('upload a file from disk', 'attach it to a Jira issue') that is instantly unambiguous. It also distinguishes itself from every sibling — none of get_my_tasks, get_task_details, search_tasks, update_task_status, add_comment, create_task, update_task, link_issues, or unlink_issues involves file attachment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description conveys its usage context directly: use this when a file on disk needs to be attached to a Jira issue. No sibling tool overlaps with file attachment, so routing is unambiguous without explicit exclusions. It stops short of a 5 because it never names alternatives or states when-not-to-use conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_taskB

Create a new Jira issue. Description supports Markdown formatting (headings, bold, italic, code, lists, links, blockquotes).

ParametersJSON Schema
NameRequiredDescriptionDefault
parentNoParent issue key (e.g. epic key PROJ-100) to link this issue under
projectYesProject key (e.g. PROJ)
summaryYesIssue title / summary
issue_typeNoIssue type name (default: Task). Common values: Task, Bug, Story, EpicTask
descriptionNoIssue description (supports Markdown)

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the full burden of behavioral disclosure. It states the core creating action and notes Markdown support, but does not disclose side effects beyond creation, required permissions, validation behavior, return value, whether the operation is idempotent, or what happens on failure. This is a significant gap for a mutation tool with no annotation support.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences and is front-loaded with the primary purpose. The second sentence provides useful formatting detail for the description parameter, though it partially duplicates the schema field description. It is appropriately compact with no major wasted text.

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?

For a simple creation tool with fully documented parameters, the description covers the core operation and a useful formatting detail. However, with no annotations and no output schema, it leaves out useful context such as what the tool returns (e.g., created issue key), any required permissions, and explicit guidance for distinguishing this from update_task. The definition is adequate but not complete.

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 every parameter. The description adds no new parameter-level meaning; the Markdown note is already present in the schema's description field. With full schema coverage, the baseline of 3 is appropriate, though the description could have added value by clarifying parameter relationships or expected formats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb-resource pair ('Create a new Jira issue') that clearly identifies the operation and resource. The word 'new' distinguishes it from sibling tools like update_task or search_tasks. No ambiguity remains about the tool's core purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The operation 'Create a new Jira issue' implies that this tool should be used when a new issue is needed, rather than when updating or querying existing issues. However, it does not explicitly state when-not-to-use, mention alternatives, or provide routing guidance such as 'use update_task for existing issues.' The guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_my_tasksA

Get active tasks assigned to the current user, ordered by priority descending.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_resultsNoMaximum number of tasks to return (1-50, default 10)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral burden. It does convey useful behavior: filtering to active tasks, scoping to the current user, and returning results by priority. However, it does not disclose the response format, pagination behavior, whether an empty result is possible, or any authentication requirements. The read-only nature is implied by 'Get' but not explicitly confirmed.

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, front-loaded sentence that states the action, scope, and ordering with no redundant words. Every element earns its place, and the most important information appears first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with one fully documented parameter, the description covers the essential invocation context: what is returned, whose tasks, and the ordering. It does not specify the output schema or pagination details, but the tool's complexity is low and no output schema exists, so these are minor gaps rather than critical ones.

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 only parameter, max_results, is fully documented in the schema with a description, default value, minimum, and maximum. Since schema description coverage is 100%, the description does not need to add parameter details. It adds no extra semantic value for parameters, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get'), a specific resource ('active tasks assigned to the current user'), and an ordering constraint ('by priority descending'). This clearly distinguishes it from siblings like search_tasks (broader search) and get_task_details (single task lookup), making the tool's purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: it is for the current user's active tasks, ordered by priority. However, it does not explicitly state when to prefer this tool over alternatives such as search_tasks or get_task_details, nor does it mention when not to use it. The usage guidance is implied by the scope, not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_task_detailsA

Get full context for a Jira issue including description, status, assignee, and comments.

ParametersJSON Schema
NameRequiredDescriptionDefault
issue_keyYesJira issue key (e.g. PROJ-123)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral disclosure burden. It clearly signals a read operation and specifies the returned content, but it does not mention behavior for invalid issue keys, permissions, or whether comments are fully expanded or truncated.

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, concise sentence that front-loads the operation and expected result. Every word contributes value, and there is no filler or redundant restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter retrieval tool with no output schema, listing the returned categories gives the agent enough context to set expectations. It could note the lack of an explicit response shape, but the low complexity and full schema coverage make that a minor gap.

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 single issue_key parameter is fully documented in the schema with a pattern and example, giving 100% schema coverage. The description adds no additional parameter-level meaning, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the specific action 'Get full context for a Jira issue' and enumerates the key fields returned: description, status, assignee, and comments. This clearly distinguishes it from sibling list/search tools like get_my_tasks and search_tasks, which operate at a different granularity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when the agent needs complete details on a single known issue, but it never explicitly names alternatives or states when not to use it. The distinction from get_my_tasks and search_tasks is inferable from sibling names, not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_tasksA

Search Jira issues by text query or raw JQL. Provide either 'query' (text search) or 'jql' (raw JQL), not both.

ParametersJSON Schema
NameRequiredDescriptionDefault
jqlNoRaw JQL query (e.g. 'project = PROJ AND status = "In Progress"')
queryNoText to search for in issues (uses text ~ "...")
max_resultsNoMaximum number of results (1-50, default 5)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description itself must carry behavioral disclosure. It communicates the mutual-exclusivity constraint between 'query' and 'jql', which is not enforced by the schema, and 'Search' implies a read-only operation. It could add more about result shape or pagination behavior, but the core behavioral constraints are present.

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?

A single, front-loaded sentence communicates the core purpose and the key usage constraint. Every part contributes useful information with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a search tool with well-documented parameters, this is nearly complete: it explains the two search modes and the either/or constraint. It does not state what happens if neither 'query' nor 'jql' is supplied, but since the schema marks them optional, that edge case is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are already well documented. The description adds value by stating that 'query' and 'jql' are mutually exclusive and by explaining the semantic split between text search and raw JQL — useful context beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description names a specific verb ('Search'), a specific resource ('Jira issues'), and the two supported search modes ('text query' and 'raw JQL'). This clearly distinguishes search_tasks from sibling tools like get_my_tasks or get_task_details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear parameter-level usage guidance: provide either 'query' or 'jql', not both. However, it does not explicitly contrast with sibling tools or state when to prefer this over get_my_tasks or get_task_details, so usage vs alternatives is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_taskB

Update fields on an existing Jira issue. Only provided fields are changed. Description supports Markdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
parentNoNew parent issue key (e.g. epic key PROJ-100)
summaryNoNew issue title
issue_keyYesJira issue key (e.g. PROJ-123)
issue_typeNoNew issue type (e.g. Story, Bug, Task)
descriptionNoNew description (supports Markdown)

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It usefully discloses partial-update semantics ('Only provided fields are changed') and calls out Markdown support for descriptions. But it omits other behavioral detail such as required permissions, error behavior, reversibility, or what the tool returns, which remains a gap for a mutating tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and front-loaded with the core action and the critical partial-update behavior. The second sentence about Markdown is somewhat redundant with the schema but still adds emphasis. It is appropriately compact overall, though the brevity leaves completeness gaps captured in other dimensions.

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?

The description is not complete enough for an agent to reliably choose among siblings, especially because update_task_status appears nearby and the description never clarifies that status is not a field to update here. There is no output or error information, and no explicit mention of when to prefer this tool over alternatives. Given no annotations and no output schema, more context is needed.

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 every parameter. The description adds one useful nuance—that only provided fields change—and mentions Markdown support, but this largely overlaps with the schema's own parameter descriptions. This is a solid baseline-3 contribution rather than meaningfully richer semantics.

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 (Update), resource (fields on an existing Jira issue), and that it modifies an existing record, distinguishing it from create_task. However it doesn't explicitly differentiate itself from update_task_status, and the phrase 'fields' could be read broadly enough to include status without clarification.

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 gives no scenario guidance and names no alternatives, failing to route the agent between update_task and the nearby sibling update_task_status. The only related hint is 'existing' Jira issue, which implies not for creation, but this is indirect. 'Only provided fields are changed' is more behavioral than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_task_statusB

Transition a Jira issue to a new status using the Jira transitions API.

ParametersJSON Schema
NameRequiredDescriptionDefault
issue_keyYesJira issue key (e.g. PROJ-123)
transition_nameYesTarget transition name (e.g. 'In Progress', 'Done')

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It correctly indicates a state-changing operation but does not disclose error behavior, authorization requirements, or workflow-validity constraints, which are important for a mutation operation.

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, front-loaded sentence with zero wasted words. It communicates the action, resource, and method in a compact form that an agent can 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?

For a state-changing tool with no output schema and no annotations, the description omits critical context: transition validity depends on the issue's current workflow status, and the tool's behavior on invalid transitions is undisclosed. An agent could correctly invoke it for a simple case but would be unprepared for failure modes.

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 coverage is 100% with meaningful descriptions for both parameters, so the schema already does the heavy lifting. The description adds no parameter-specific meaning beyond what the schema provides, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Transition'), a clear resource ('a Jira issue'), and a precise target ('a new status'), and it names the underlying API ('Jira transitions API'). This makes it readily distinguishable from sibling tools like update_task, which implies field-level updates rather than workflow status changes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies the tool is for changing an issue's workflow status, which is a reasonable usage context. However, it does not explicitly contrast with alternatives such as update_task for editing fields, nor does it mention when a transition might be invalid (e.g., not allowed for the current status).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 10 tool updatesv1.0.0
    • First observedadd_comment
    • First observedattach_file
    • First observedcreate_task
    • First observedget_my_tasks
    • First observedget_task_details
    • First observedlink_issues
    • First observedsearch_tasks
    • First observedunlink_issues
    • First observedupdate_task
    • First observedupdate_task_status

TDQS

A3.9/5.0

Scored across 10 tools

Disambiguation5/5

Each tool maps to a distinct resource-action pair, such as retrieving assigned tasks, fetching issue details, searching, updating fields, transitioning status, commenting, attaching, and linking. Even the similar update_task and update_task_status are clearly separated by field updates versus status transitions.

Naming Consistency5/5

All tools follow a consistent verb_noun snake_case pattern like get_task_details, create_task, update_task, and link_issues. The naming is uniform and predictable, with complementary pairs like link_issues/unlink_issues.

Tool Count5/5

Ten tools is well-scoped for a Jira issue management server. The surface covers retrieval, search, creation, updates, comments, attachments, and issue links without feeling bloated or sparse.

Completeness4/5

The tool set covers the core Jira issue lifecycle: create, read, search, update, status transitions, comments, attachments, and linking. Missing operations like deleting issues or explicitly listing available transitions are minor gaps that agents can work around in most workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers