jira-delivery-mcp
Provides Confluence search and page retrieval tools to supply project context and documentation for Jira delivery workflows.
Connects to Jira Cloud to search issues, retrieve ticket details, prepare ready-to-build work briefs with readiness, blockers, acceptance criteria, next steps and branch names, verify local branch changes against acceptance criteria and Definition of Done, and generate QA handoffs, release notes, test plans and reviews. Optional write-back can add comments and update issues after approval.
Click on "Deploy 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-delivery-mcpI'm starting ABC-1, get me a ready-to-build brief"
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.
How it works
1 · Start a ticket
"I'm starting ABC-1, get me ready."
Readiness, blockers, acceptance criteria, next steps and a branch name — before you write a line.
2 · Verify before the PR
"Check my branch against ABC-1 before I open the PR."
Your local diff against the acceptance criteria and Definition of Done, with one verdict — ready_for_pr, needs_work or insufficient_evidence — and the files behind each criterion.
3 · Hand off
"Post the QA handoff to ABC-1."
QA handoffs, release notes, test plans and reviews. With write-back on, the agent shows you a preview and waits for your approval.
Related MCP server: Issue Tracker MCP
Install
You need Node.js 22+, your Jira Cloud URL, your Atlassian email and an API token.
/plugin marketplace add teransarathchandra/jira-mcp-server
/plugin install jira-delivery@jira-deliveryIt asks for your site, email and token (the token goes to secure storage). Without the plugin:
claude mcp add jira-delivery \
-e JIRA_BASE_URL=https://your-domain.atlassian.net \
-e JIRA_EMAIL=you@example.com \
-e JIRA_API_TOKEN=your-api-token \
-- npx -y jira-delivery-mcpClick Add to Cursor and replace the three placeholder values, or add the JSON below to ~/.cursor/mcp.json.
Click Install in VS Code (or Insiders). VS Code asks for your site, email and token and stores the token as a secret.
Manually: add to .vscode/mcp.json — VS Code uses servers, not mcpServers:
{
"servers": {
"jira-delivery": {
"type": "stdio",
"command": "npx",
"args": ["-y", "jira-delivery-mcp"],
"env": { "JIRA_BASE_URL": "https://your-domain.atlassian.net", "JIRA_EMAIL": "you@example.com", "JIRA_API_TOKEN": "your-api-token" }
}
}
}Add to the client's MCP config — Windsurf: Settings → MCP Servers; Claude Desktop: claude_desktop_config.json:
{
"mcpServers": {
"jira-delivery": {
"command": "npx",
"args": ["-y", "jira-delivery-mcp"],
"env": { "JIRA_BASE_URL": "https://your-domain.atlassian.net", "JIRA_EMAIL": "you@example.com", "JIRA_API_TOKEN": "your-api-token" }
}
}
}In ~/.codex/config.toml:
[mcp_servers.jira-delivery]
command = "npx"
args = ["-y", "jira-delivery-mcp"]
env = { JIRA_BASE_URL = "https://your-domain.atlassian.net", JIRA_EMAIL = "you@example.com", JIRA_API_TOKEN = "your-api-token" }Check your setup: with the three variables exported, npx jira-delivery-mcp doctor verifies the login and prints the custom-field ids your site needs (acceptance criteria, story points, epic). Other agents can add the jira-delivery skill, also attached to each release.
Tools
Step | Tools |
Start |
|
Verify |
|
Hand off |
|
Context |
|
* Opt-in with JIRA_ENABLE_WRITES=true. Every tool returns typed structuredContent; see the tool reference.
Safe by default
🔒 Local and private — runs on your machine over stdio; talks only to your Atlassian site; no telemetry.
✋ Read-only unless you opt in — and then every write is previewed, waits for your approval, is sent once and audited.
🧱 Ticket text is untrusted — fenced as data, scanned for prompt injection, never turned into instructions.
🗝️ Credentials stay in your environment — never logged; redacted from all output.
Documentation
Usage · Tools · Configuration · Security · Troubleshooting · Migrating from 1.x · Changelog
Contributing
Issues and pull requests are welcome — see CONTRIBUTING.md. Security reports: SECURITY.md.
MIT © Teran Sarathchandra
Available Tools
10 toolsconfluence_get_pageGet a Confluence pageARead-only
Read a Confluence page by ID and return a cleaned, size-bounded summary of its content.
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | Yes | Confluence page ID | |
| maxChars | No | Maximum characters of page body (1000-50000). |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| issueKey | No | |
| markdown | Yes | |
| warnings | Yes | |
| schemaVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, and the description adds the non-obvious behavioral trait that the returned content is cleaned and truncated to a size bound rather than returned raw. It does not mention authentication requirements or what happens at truncation, so it stops short of full 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?
A single sentence with no filler, front-loading the verb, resource, and retrieval key before the output characteristic. Nothing could be removed without losing information.
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?
With an output schema present and both parameters fully documented, the description only needs to convey the operation and its output nature, which it does. The remaining ambiguity is what 'cleaned' means (format, loss of macros/images) and error behavior, which are minor for a simple read tool.
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 coverage is 100%, so both pageId and maxChars are already documented in the schema. The description reinforces the ID-based lookup and the size-bounding concept but adds no format or syntax detail beyond structured fields; baseline 3 applies.
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?
States a specific verb (Read), a specific resource (a Confluence page), and the selection key (by ID), plus what it returns (a cleaned, size-bounded summary). This cleanly separates it from confluence_search, which locates pages rather than fetching one by identifier.
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 phrase 'by ID' implies the precondition for use, but there is no explicit when-to-use guidance, no statement of when to prefer confluence_search, and no note about behavior on missing or inaccessible pages. Usage is inferable but not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confluence_searchSearch Confluence for pages related to a Jira issueARead-only
Find Confluence pages relevant to a Jira issue (specs, designs, runbooks), ranked by relevance and authority.
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | Jira issue key (e.g. PROJ-123) | |
| spaceKeys | No | Restrict to these space keys (default: all configured spaces). | |
| maxResults | No | Maximum search results (1-50). | |
| includeLowRelevance | No | Include low-relevance pages. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| issueKey | No | |
| markdown | Yes | |
| warnings | Yes | |
| schemaVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so safety is covered. The description adds one genuine behavioral trait beyond that — results are 'ranked by relevance and authority' — but says nothing about empty-result behavior, ranking inputs, or how open-world space discovery interacts with the configured space default.
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?
One sentence, front-loaded with the action and resource, and the parenthetical examples earn their place by narrowing scope. Nothing redundant or restated from the title.
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?
An output schema exists and annotations cover the safety profile, so the description does not need to explain return values. Given four fully documented parameters, the definition is sufficient to invoke correctly; only the selection guidance against siblings is thin.
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 issueKey, spaceKeys, maxResults, and includeLowRelevance are all documented in the schema. The description contributes no additional parameter meaning, which is the correct baseline of 3 when the schema carries the full burden.
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?
States a specific verb and resource ('Find Confluence pages') anchored to an input ('relevant to a Jira issue') and gives content-type examples (specs, designs, runbooks) that scope what counts as relevant. An agent can separate it from confluence_get_page (single-page fetch) by inference, though no sibling is named explicitly.
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?
Usage is implied: call it when you hold a Jira issue and want supporting documentation. There is no explicit when-not guidance and no routing to unhinted alternatives such as confluence_get_page for full page bodies or jira_prepare_work_brief for briefing workflows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delivery_check_changesCheck local changes against a Jira issueARead-only
Check work on a Jira issue: does the branch cover the acceptance criteria and meet the Definition of Done? alignment and dod compare the local diff with them — run them before opening a PR. impact predicts the affected areas and works before any code is written, so use checks ["impact"] when planning. Each check runs independently. Returns a verdict (ready_for_pr, needs_work, insufficient_evidence; not_applicable when only impact ran) and per-criterion coverage. Fetches the issue itself.
| Name | Required | Description | Default |
|---|---|---|---|
| checks | No | Which checks to run: alignment, dod, impact (default: all) | |
| issueKey | Yes | Jira issue key (e.g. PROJ-123) | |
| repoPath | No | Path to the git repository | . |
| baseBranch | No | Base branch to diff against | origin/main |
| compareRef | No | Branch or commit to compare | HEAD |
| maxDiffChars | No | Maximum diff characters to analyse | |
| includeConfluence | No | Use Confluence context in the dod and impact checks |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| tool | Yes | |
| issueKey | No | |
| markdown | Yes | |
| warnings | Yes | |
| schemaVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint and openWorldHint, and the description adds substantial context beyond them: checks run independently, the issue is fetched automatically, and the possible verdict values (ready_for_pr, needs_work, insufficient_evidence, not_applicable) plus per-criterion coverage are disclosed. That is exactly the behavioral detail an agent needs.
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 purpose and the pre-PR warning are front-loaded, and the verdict-value preview is placed at the end where it belongs. Density is high but nearly every clause carries new information; the wording is slightly compressed with semicolons and dashes.
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?
An output schema exists, so return values need not be described, yet the verdict summary still helps set expectations. Combined with the check semantics, the PR/planning timing guidance, and the auto-fetch note, nothing an agent needs to call this correctly is missing.
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 coverage is 100% so the baseline is 3, but the description goes further by explaining what the alignment, dod, and impact checks semantically do and when to select the impact-only subset. It doesn't clarify baseBranch/compareRef/maxDiffChars, which the schema already handles.
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?
States a specific verb and resource (check local diff work against a Jira issue) and immediately names the three sub-checks (alignment, dod, impact) plus what each evaluates. An agent can distinguish this from siblings like delivery_traceability_matrix or jira_get_issue without opening the schema.
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?
Gives explicit timing guidance: run alignment/dod before opening a PR, and use checks ["impact"] when planning before code is written. Strong conditional routing, though it names no sibling alternative or when-not-to-use case for the tool as a whole.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delivery_generateGenerate a delivery document for a Jira issueARead-only
Generate a delivery artifact from a Jira issue and the local diff: test_strategy, reviewer_report (needs persona), qa_handoff, release_notes (audience) or task_report (combined sections). Use test_strategy to plan tests and reviewer_report to review a ticket from a persona's point of view. Fetches the issue itself. Returns Markdown; writes no files.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | ||
| persona | No | Required when type is reviewer_report | |
| audience | No | release_notes only | internal |
| issueKey | Yes | Jira issue key (e.g. PROJ-123) | |
| repoPath | No | Path to the git repository | . |
| sections | No | task_report only: sections to include | |
| baseBranch | No | Base branch to diff against | origin/main |
| compareRef | No | Branch or commit to compare | HEAD |
| includePrDiff | No | test_strategy only: include the local diff | |
| includeConfluence | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| issueKey | No | |
| markdown | Yes | |
| warnings | Yes | |
| schemaVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint and openWorldHint; the description adds the meaningful operational facts that it fetches the Jira issue itself, returns Markdown, and writes no files. It does not disclose cost/latency of assembling a report or any auth prerequisite, but the key behavioral profile is covered.
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?
Three tight sentences: artifact list first, selection guidance second, operational facts (fetch behavior, Markdown return, no file writes) last. No filler, and the 'no files written' constraint is placed where an agent will see it.
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?
With an output schema present, return values need no explanation, and the description covers inputs' coupling and side effects. It leaves gaps around how much of the repo/diff is scanned and whether remote Jira/Confluence calls have limits, but nothing blocks correct invocation.
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 80%, so the baseline is 3. The description's notes on persona and audience restate what the schema already says ('Required when type is reviewer_report', 'release_notes only'), adding no syntax or conditional rules beyond the structured fields; includePrDiff's coupling to test_strategy is only hinted at.
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?
Names a specific verb and resource ('Generate a delivery artifact from a Jira issue and the local diff') and enumerates all five artifact types with their distinguishing traits. An agent can distinguish this from delivery_check_changes or delivery_generate_agent_pack without opening the schema.
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?
Gives explicit selection guidance for two of the five types ('Use test_strategy to plan tests and reviewer_report to review a ticket from a persona's point of view') and flags the conditional requirements (persona for reviewer_report, audience for release_notes). It does not say when to prefer this over sibling tools like delivery_generate_agent_pack or how qa_handoff/release_notes/task_report differ in situation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delivery_generate_agent_packWrite an agent workflow pack into the repoADestructiveIdempotent
Write reusable Jira delivery prompts/commands for a coding agent into the repository (claude: .claude/commands and .claude/skills, codex: .codex-prompts/, generic: .mcp-prompts/).
| Name | Required | Description | Default |
|---|---|---|---|
| client | Yes | ||
| repoPath | No | Repository to write the pack into | . |
| overwrite | No | Replace files that already exist |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| issueKey | No | |
| markdown | Yes | |
| warnings | Yes | |
| schemaVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive=true and idempotent=true, so the safety profile is covered. The description adds genuinely useful context by mapping each client enum to its on-disk directory, but it never warns that existing files can be replaced or clarifies how destructive behavior interacts with `overwrite`.
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?
A single sentence with the action front-loaded and the client-to-path mapping in a compact parenthetical. The parenthetical is dense but each clause carries real information, no filler.
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?
An output schema exists, so return values need no explanation, and the three parameters are largely covered by schema plus the description's path mapping. For a small write tool with strong annotations, an agent has enough to invoke it correctly.
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 coverage is 67% and documents `repoPath` and `overwrite`. The description goes further than the schema by spelling out the filesystem destination for every `client` value, which the bare enum does not convey. It still says nothing about what the generated pack contains, but that is outside parameter scope.
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?
States a specific verb and resource ('Write reusable Jira delivery prompts/commands ... into the repository') plus the concrete target directories per client. An agent can tell it produces files, but nothing distinguishes it from the sibling `delivery_generate`, which sounds closely related.
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 when-to-use statement, no prerequisites (e.g. must a work brief exist first?), and no mention of the sibling `delivery_generate` as the alternative. The agent must infer timing 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.
delivery_project_patternsScan, read or clear stored project patternsADestructiveIdempotent
Detect the repository’s conventions (framework, test layout, tooling) and store them so other delivery tools can tailor their output. scan = detect and store, get = read stored patterns, clear = delete them. Storing requires DELIVERY_PATTERN_MEMORY_ENABLED=true in the server environment.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| repoPath | No | Repository to inspect | . |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| issueKey | No | |
| markdown | Yes | |
| warnings | Yes | |
| schemaVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and non-readOnly, and the description is consistent, clarifying that 'clear' is what deletes the stored patterns. It adds a prerequisite the schema cannot express: storing requires DELIVERY_PATTERN_MEMORY_ENABLED=true in the server environment, which is high-value operational context. What's missing is where patterns live (per-repo vs global) or whether a scan overwrites existing entries.
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?
Three tight sentences, front-loaded with the core capability, then the action breakdown, then the environment prerequisite. No filler or repetition.
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?
With an output schema present, return values need no explanation, and the env-var prerequisite plus action semantics cover the main gaps. For a tool that mutates stored state, a note on persistence scope and overwrite behavior would complete it.
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 coverage is 50%, with repoPath documented as 'Repository to inspect'. The description compensates for the bare enum by defining what each action does, which the enum values alone do not convey. It does not note repoPath's default of '.' or that it is ignored for get/clear.
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?
States a specific verb and resource: 'Detect the repository's conventions (framework, test layout, tooling) and store them', plus the subordinate read/delete actions. It is distinguishable from siblings like delivery_generate or delivery_check_changes, though it never explicitly names when to prefer this over them.
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 maps each of the three actions to a concrete effect ('scan = detect and store, get = read stored patterns, clear = delete them'), which is genuine when-to-use guidance for the enum. It stops short of saying when a whole scan is warranted versus falling back to another delivery tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delivery_traceability_matrixBuild a requirement traceability matrixARead-only
Build a requirements traceability matrix: map each requirement and acceptance criterion of a Jira issue to the changed files that implement it, and flag gaps. Fetches the issue itself. For a ready-for-PR verdict use delivery_check_changes.
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | Jira issue key (e.g. PROJ-123) | |
| repoPath | No | Path to the git repository | . |
| baseBranch | No | Base branch to diff against | origin/main |
| compareRef | No | Branch or commit to compare | HEAD |
| includePrDiff | No | Match requirements against the local diff | |
| includeConfluence | No | Include requirements found in Confluence |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| issueKey | No | |
| markdown | Yes | |
| warnings | Yes | |
| schemaVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so safety is covered. The description adds genuinely new behavioral context: it performs its own issue fetch (explaining the open-world hint) and produces gap flags rather than a pass/fail verdict. It doesn't mention that the default includeConfluence=true triggers a second external system, which would have been a useful disclosure.
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?
Two sentences plus a short routing sentence, with the core purpose front-loaded and zero filler. Each clause carries distinct information: what is built, what it maps, that it self-fetches, and which sibling to use instead.
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?
An output schema exists (return values needn't be explained) and annotations cover the safety profile, so the burden is light. The description covers purpose, the self-fetch behavior, and sibling routing; the only missing piece is that Confluence is queried by default, which affects latency and scope for an open-world tool.
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 all six parameters including baseBranch/compareRef/includePrDiff/includeConfluence are already documented. The description only reinforces that the diff comparison and requirement set are the core inputs; it adds no syntax, defaults, or interaction details beyond the schema, so baseline 3 applies.
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?
States a specific verb and artifact ("Build a requirements traceability matrix") plus the exact operation: map each requirement and acceptance criterion of a Jira issue to changed files and flag gaps. It also names a sibling (delivery_check_changes) and contrasts its output, so an agent can distinguish the two without opening either schema.
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?
Explicitly routes the agent: use delivery_check_changes for a ready-for-PR verdict, this one for a gap-flagged matrix. It also clarifies an important prerequisite is handled internally ("Fetches the issue itself"), so the caller doesn't need jira_get_issue first. No explicit when-not conditions beyond that single alternative, so not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_get_issueGet a Jira issueARead-only
Fetch a Jira issue as a developer brief: description, acceptance criteria, comments and attachments. Use depth "full" for parent/epic/linked-issue context and includeConfluence for related documentation. Use this to read a ticket. To start work, check readiness, verify changes or write a report, call jira_prepare_work_brief or the delivery_* tool directly: they fetch the issue themselves.
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | basic = the issue only; full = also parent, epic, linked issues, subtasks and comments | basic |
| issueKey | Yes | Jira issue key (e.g. PROJ-123) | |
| includeConfluence | No | Also search Confluence for related pages and fold them into the result (implies full depth) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| issueKey | No | |
| markdown | Yes | |
| warnings | Yes | |
| schemaVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so safety is covered. The description adds real behavioral context beyond that: what 'full' depth expands to (parent, epic, linked issues, subtasks, comments) and the non-obvious side effect that includeConfluence implies full depth, which an agent could not infer. It omits cost/latency implications of full+Confluence, so it stops short of 5.
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?
Three sentences, front-loaded with the primary capability and payload, then parameter guidance, then routing to alternatives. No filler or restatement of the name/title.
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?
An output schema exists, so return-format explanation is unnecessary. With three documented parameters and read-only annotations already in structured fields, the description covers everything an agent needs to choose this tool and call it correctly.
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 coverage is 100%, so baseline would be 3. The description adds genuine semantics on top: it frames why you would raise depth to 'full' (parent/epic/linked-issue context) and what includeConfluence is for (related documentation), including the implicit depth escalation the schema only hints at.
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?
States a specific verb and resource plus the exact payload shape: 'Fetch a Jira issue as a developer brief: description, acceptance criteria, comments and attachments.' It also names the sibling it is not (jira_prepare_work_brief, delivery_*) so an agent can distinguish read-from-ticket vs. workflow-action tools without opening a schema.
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?
Provides both the when ('Use this to read a ticket') and the when-not with named alternatives ('To start work, check readiness, verify changes or write a report, call jira_prepare_work_brief or the delivery_* tool directly'). It even explains why the alternative is needed there - they fetch the issue themselves - removing the temptation to chain this call first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_prepare_work_briefPrepare a work brief for a Jira issueARead-only
Turn a Jira issue into a ready-to-implement brief for a coding agent: goal, acceptance criteria, constraints and an implementation prompt. Use this when starting work on a ticket, or to check whether it is ready to start (readiness, blockers, missing acceptance criteria). Fetches the issue itself.
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | basic = the issue only; full = also parent, epic, linked issues, subtasks and comments | basic |
| issueKey | Yes | Jira issue key (e.g. PROJ-123) | |
| allowElicitation | No | If the client supports it, ask the user the clarifying questions in a form before answering | |
| includeConfluence | No | Also search Confluence for related pages and fold them into the result (implies full depth) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| tool | Yes | |
| issueKey | No | |
| markdown | Yes | |
| warnings | Yes | |
| schemaVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered; the description adds real value by disclosing what the response contains and that it performs a readiness assessment. It leaves out things like how long deep/cross-space fetches take or whether the brief is cached, so it is informative but not exhaustive.
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?
Front-loaded with the core transformation, then usage, then a short disambiguator. Two dense sentences and one fragment; the parenthetical list of readiness checks is slightly crowded but every clause carries information.
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?
An output schema exists, so return values need no explanation here. The description covers purpose, output composition, triggering scenarios and scope of fetching, which is everything an agent needs before calling a read-only 4-parameter tool.
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% and depth/includeConfluence/allowElicitation are each documented in the schema, so the parameter burden is already met. The prose adds no syntax or format detail beyond the schema, which is the expected baseline-3 case.
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?
States a concrete transformation (Jira issue → ready-to-implement brief) and enumerates the output artifacts: goal, acceptance criteria, constraints, implementation prompt. 'Fetches the issue itself' distinguishes it from the sibling jira_get_issue, so an agent can pick between them without opening schemas.
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?
Gives two explicit triggering situations: starting work on a ticket, and checking readiness (blockers, missing acceptance criteria). It does not name alternatives or say when NOT to use it, e.g. 'for raw field access use jira_get_issue' — that boundary is only hinted at by the closing sentence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_search_issuesSearch Jira issuesARead-only
List open Jira issues assigned to the authenticated user, optionally limited to one project. Use this to find what to work on next. Pass jql to search with your own filter instead (e.g. "type = Bug AND sprint in openSprints() ORDER BY priority DESC"); it is limited to projectKey when given, and to the allowed projects when the strict allowlist is on. When more results exist, data.nextPageToken is set: pass it back as pageToken for the next page.
| Name | Required | Description | Default |
|---|---|---|---|
| jql | No | JQL filter replacing the default "my open issues" query | |
| pageToken | No | nextPageToken from the previous page | |
| maxResults | No | Maximum issues to return (1-50). | |
| projectKey | No | Project key to search (e.g. ENG). Defaults to the configured default project. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| tool | Yes | |
| issueKey | No | |
| markdown | Yes | |
| warnings | Yes | |
| schemaVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds real behavior beyond that: jql is constrained by projectKey and by the strict allowlist, and pagination is disclosed via data.nextPageToken with the pass-back instruction.
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?
Front-loaded with purpose, then alternatives, then pagination — a sensible ordering with no filler. It is dense but every sentence carries information; the embedded JQL example is the only element that inflates length, and it earns its place.
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?
An output schema exists, so return values need not be described, yet the description still covers the one output detail that matters for correct invocation (nextPageToken). Combined with the allowlist caveat, an agent has enough to call this correctly; only the terse default-query behavior under projectKey scoping is left implicit.
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 coverage is 100%, so baseline is 3, but the description adds semantics the schema does not: jql silently gets scoped to projectKey when supplied and further narrowed under the strict allowlist. The pageToken round-trip is also explained in context rather than just as a field name.
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?
Specific verb and resource (list open Jira issues assigned to the authenticated user), with the optional project scope stated up front. An agent can tell this apart from jira_get_issue (single issue) and the confluence/delivery siblings without opening a schema.
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?
Explicitly frames the use case ("find what to work on next") and names the in-tool alternative for custom filtering via jql, including a concrete example. It does not explicitly say when to prefer jira_get_issue for a single known issue, so it stops short of a full when/when-not map.
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.
10 tool updates
v2.0.0- First observed
confluence_get_page - First observed
confluence_search - First observed
delivery_check_changes - First observed
delivery_generate - First observed
delivery_generate_agent_pack - First observed
delivery_project_patterns - First observed
delivery_traceability_matrix - First observed
jira_get_issue - First observed
jira_prepare_work_brief - First observed
jira_search_issues
TDQS
Scored across 10 tools
Most tools target clearly different stages: read (jira_get_issue), brief (jira_prepare_work_brief), verify (delivery_check_changes, delivery_traceability_matrix), and generate artifacts. The main risk is overlap between check_changes and traceability_matrix and between get_issue and prepare_work_brief, but descriptions explicitly steer callers between them.
Consistent snake_case with meaningful domain prefixes (jira_, confluence_, delivery_), and most names are verb_noun. Minor deviations: delivery_project_patterns is a noun-only, multi-action tool (scan/get/clear) that breaks the pattern, and jira_prepare_work_brief sits under jira_ but is a workflow tool rather than a raw Jira verb.
10 tools is squarely in the well-scoped range, with each covering a distinct delivery workflow step (read, search, brief, verify, generate). Nothing appears redundant or padding.
The read/verify/generate side of the lifecycle is well covered, but there are no write-back operations to Jira: no commenting, status transitions, or issue updates, which limits closing the loop after work is verified. Confluence is read-only, which is reasonable, but the missing Jira mutations are a notable gap for a delivery workflow.
Maintenance
Related MCP Connectors
Your team's stories, acceptance criteria, designs and docs, for coding agents. Sign in with OAuth.
1311- iKanbanOAuthcom.i-kanban
Tasks, sprints, releases and docs for engineering teams with AI coding agents.
Assign Linear, Jira or GitHub issues to an AI coding agent team that plans, builds, reviews, tests.
Turn PRDs and product ideas into structured specs so coding agents build your intent, not theirs.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables end-to-end automation of developer workflows from Jira issue tracking to GitHub pull requests through natural language, allowing developers to search issues, create branches, commit changes, and manage PRs directly from their IDE.2MIT
- AlicenseNot gradedqualityDmaintenanceEnables seamless Jira issue and sprint management directly from the terminal or IDE without context switching. Supports full issue lifecycle operations including creation, updates, and search, plus sprint planning, commenting, and project analytics through natural language commands.1 npmMIT
- AlicenseAqualityDmaintenanceEnables AI agents to interact with Jira Cloud and Confluence through natural language, performing JQL searches, issue management, and Confluence page creation.106 npm1MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to manage Jira and Confluence directly, including issue tracking, sprint management, and knowledge base operations through natural language.-