Jira Extended MCP Server
Provides tools for Jira issue management, including full CRUD, bulk operations, sprint and release management, issue linking, and rich text support using Jira wiki markup.
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 Extended MCP ServerShow me all high priority issues in the KAN project"
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.
Built by Moobean Team — a lightweight, Jira-only MCP server focused on getting things done with minimal setup.
What Makes This Different
Jira-only, zero bloat — No Confluence, no extra modules. One
uvxcommand and you're running.Wiki markup support — Uses Jira REST API v2, so
*bold*,h2. Title,* bulletjust work. No ADF JSON hassle.Bulk operations — Create up to 50 issues or transition multiple issues in a single call.
Full release lifecycle — Create, update, delete versions and assign issues to releases.
Issue links — Block, relate, duplicate, clone — with create, query, and delete support.
Related MCP server: jira-mcp-server
Comparison
Note: Feature data is based on each project's README and documentation as of March 2026. Features may have changed since then.
Jira Extended | ||||
Scope | Jira only | Jira + Confluence | Jira + Confluence + Compass | Jira only |
Issue CRUD | Read-only | Full CRUD | Full CRUD | Full CRUD |
Bulk Create | - | Supported | Supported | 50 issues/call |
Bulk Transition | - | - | - | Supported |
Parent / Sub-task | - | Supported | Supported | Supported |
fixVersions | - | Supported | Supported | Supported |
startDate / dueDate | - | Supported | Supported | Supported |
Issue Links | - | Supported | - | Supported |
Release Management | - | - | - | 4 tools |
Sprint Management | - | Supported | - | Supported |
Rich Text | - | Markdown → ADF | ADF | Wiki markup (v2 API) |
Setup | npm | pip / Docker | OAuth (cloud-hosted) |
|
Total Jira Tools | 2 | ~30 (Jira portion) | ~25 (Jira portion) | 27 |
Language | TypeScript | Python | Remote (SaaS) | Python |
Use Cases
Just ask your AI agent in natural language:
Issue Management
"Create an epic in the KAN project titled 'User Auth System', start date April 1st, due date April 30th"
"Create 5 stories under KAN-42: Login, Sign Up, Password Reset, Social Login, 2FA"
"Show me all 'In Progress' issues in the KAN project"
Bulk Operations
"Transition all 10 backlog issues in this sprint to 'Done'"
"Show me the issue list included in the v2.0 release"
Releases & Sprints
"Create a v2.1.0 release in KAN project with release date May 15th"
"Move KAN-50 and KAN-51 to the current active sprint"
Issue Links
"Link KAN-10 as blocking KAN-20"
Rich Text (Wiki Markup)
"Create an issue with h2 headings and bullet lists in the description"
Quick Start
Prerequisites
uv(Python package manager — installs Python automatically if needed)
Step 1: Install uv
uv is a Python package manager. If you don't have it:
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"Step 2: Get a Jira API Token
Go to https://id.atlassian.com/manage-profile/security/api-tokens
Click Create API token
Copy the token — you'll need it in the next step
Step 3: Configure your AI client
Choose where to add the config:
Scope | File | Effect |
Global (recommended) |
| Available in all projects |
Project only |
| Only in that project |
Easiest — one command:
# macOS / Linux
claude mcp add jira-extended -s user \
-e JIRA_URL=https://your-instance.atlassian.net \
-e JIRA_EMAIL=your-email@example.com \
-e JIRA_API_TOKEN=your-token \
-- uvx jira-extended-mcp
# Windows — use uvx.exe (not uvx) to avoid .cmd wrapper issues
claude mcp add jira-extended -s user \
-e JIRA_URL=https://your-instance.atlassian.net \
-e JIRA_EMAIL=your-email@example.com \
-e JIRA_API_TOKEN=your-token \
-- uvx.exe jira-extended-mcp
-s userinstalls globally. Omit it for project-only install.
Or edit the config file manually:
Open the file in a text editor:
# macOS / Linux
code ~/.claude.json # or: nano ~/.claude.json
# Windows
notepad %USERPROFILE%\.claude.jsonAdd this content (create the file if it doesn't exist):
{
"mcpServers": {
"jira-extended": {
"command": "uvx",
"args": ["jira-extended-mcp"],
"env": {
"JIRA_URL": "https://your-instance.atlassian.net",
"JIRA_EMAIL": "your-email@example.com",
"JIRA_API_TOKEN": "your-api-token"
}
}
}
}Windows users: Use
"command": "uvx.exe"instead of"command": "uvx". Theuvx.cmdwrapper on Windows breaks the MCP stdio transport.
Open the config file in a text editor:
# macOS
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
# Windows
notepad %APPDATA%\Claude\claude_desktop_config.jsonAdd or merge into the file:
{
"mcpServers": {
"jira-extended": {
"command": "uvx",
"args": ["jira-extended-mcp"],
"env": {
"JIRA_URL": "https://your-instance.atlassian.net",
"JIRA_EMAIL": "your-email@example.com",
"JIRA_API_TOKEN": "your-api-token"
}
}
}
}If the file already has other MCP servers, add the
"jira-extended": {...}block inside the existing"mcpServers"object.Windows users: Use
"command": "uvx.exe"instead of"command": "uvx".
Create .vscode/mcp.json in your project root:
mkdir -p .vscode
code .vscode/mcp.json{
"servers": {
"jira-extended": {
"command": "uvx",
"args": ["jira-extended-mcp"],
"env": {
"JIRA_URL": "https://your-instance.atlassian.net",
"JIRA_EMAIL": "your-email@example.com",
"JIRA_API_TOKEN": "your-api-token"
}
}
}
}Enable MCP: Settings > Chat > MCP must be checked. Works in Agent mode.
Windows users: Use
"command": "uvx.exe"instead of"command": "uvx".
Open the config file:
# macOS / Linux
code ~/.cursor/mcp.json
# Windows
notepad %USERPROFILE%\.cursor\mcp.json{
"mcpServers": {
"jira-extended": {
"command": "uvx",
"args": ["jira-extended-mcp"],
"env": {
"JIRA_URL": "https://your-instance.atlassian.net",
"JIRA_EMAIL": "your-email@example.com",
"JIRA_API_TOKEN": "your-api-token"
}
}
}
}Windows users: Use
"command": "uvx.exe"instead of"command": "uvx".
git clone https://github.com/moobean-team/jira-extended-mcp-server.git
cd jira-extended-mcp-server
uv pip install -e .Then use "command": "jira-extended-mcp" instead of "command": "uvx" in your config.
Step 4: Restart & verify
Restart your AI client, then ask:
"Show my Jira projects"
If you see your project list, you're all set.
Configuration
Environment Variables
Variable | Required | Default | Description |
| Yes | — | Jira Cloud instance URL |
| Yes | — | Atlassian account email |
| Yes | — | |
| No |
| Custom field ID for start date |
Finding Your Start Date Field ID
The start date field ID varies per Jira instance. Use the get_createmeta tool for your project to see available fields, or:
curl -s -u email:token https://your-instance.atlassian.net/rest/api/2/field \
| python -m json.tool | grep -i "start"Rich Text (Wiki Markup)
This server uses Jira REST API v2, which accepts Jira wiki markup strings for description and comment fields. Jira renders them as rich text automatically.
Syntax | Renders as |
| bold |
| italic |
| H2 heading |
| Bullet list |
| Numbered list |
| Code block |
| Hyperlink |
| Table |
Full reference: Jira Wiki Markup
Available Tools
Tool | Description |
| Create issue with full field support — parent, fixVersions, startDate, dueDate, story points, components, custom fields |
| Bulk create up to 50 issues in a single API call |
| Get issue details with formatted output |
| Update any issue field (only changed fields are sent) |
| Delete issue with subtask handling |
| JQL search with pagination and configurable fields |
Tool | Description |
| List available status transitions for an issue |
| Change issue status by name or ID, with optional comment |
| Transition multiple issues at once |
Tool | Description |
| Create link between issues (Blocks, Relates, Duplicate, Cloners) |
| Get all links for an issue with link type details |
| Remove a link by ID |
Tool | Description |
| List project versions/releases |
| Create a new release with start/release dates |
| Update release details, mark as released/archived |
| Delete a release with issue reassignment options |
Tool | Description |
| List sprints for a board (filter by active/future/closed) |
| Move issues to a target sprint |
Tool | Description |
| Add comment to an issue (supports wiki markup) |
| Get issue comments with author and timestamps |
| Log work time with human-friendly format ("2h 30m", "1d") |
Tool | Description |
| List all accessible projects |
| Get project details |
| List boards (scrum/kanban/simple) |
| Get authenticated user info |
| Search users by name/email |
| Get available issue types and fields per project |
Architecture
src/jira_extended_mcp/
├── server.py # FastMCP server + 27 tool definitions
├── client.py # Async Jira REST client (httpx + rate limit retry)
├── adf.py # ADF fallback helpers (v3 response parsing)
└── __init__.pyKey design decisions:
Decision | Why |
REST API v2 for issues/comments | v2 accepts wiki markup strings for rich text. v3 requires ADF JSON which strips formatting |
REST API v3 for metadata | Versions, projects, users don't have text fields — v3 is fine |
Agile API for sprints/boards | Sprint ops are only available via |
FastMCP lifespan |
|
Structured errors | Errors return |
Configurable start date field |
|
Development
git clone https://github.com/moobean-team/jira-extended-mcp-server.git
cd jira-extended-mcp-server
uv pip install -e .
# Run directly
jira-extended-mcp
# Or via module
python -m jira_extended_mcp.serverTroubleshooting
Ensure JIRA_URL, JIRA_EMAIL, and JIRA_API_TOKEN are set in your MCP config's env block. The server checks these on startup.
Jira transitions are workflow-specific. Use get_transitions first to see available transitions for the issue's current status. Transition names are case-insensitive.
Your Jira instance may use a different custom field ID. Use get_createmeta to find the correct field, then set JIRA_START_DATE_FIELD env var.
The server automatically retries up to 3 times using the Retry-After header. For bulk operations with 50+ issues, consider splitting into multiple calls.
This server uses Jira REST API v2 which accepts wiki markup. Use Jira wiki syntax (*bold*, h2. Title, * bullet) instead of Markdown.
License
MIT © Moobean Team
Available Tools
27 toolsadd_commentB
Add a comment to an issue.
Args: issue_key: Issue key (e.g., "KAN-123") body: Comment text (plain text, supports Jira wiki markup for rich text)
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| issue_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it says nothing about permissions, whether watchers get notified, whether the comment can be edited/deleted afterward, or any rate limits. Only the wiki-markup formatting note hints at behavior.
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-line purpose statement followed by a tight two-argument list; no filler, and the purpose is front-loaded before the parameter detail.
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 both parameters are documented. The gap is behavioral: for a mutation tool with zero annotations, side effects like comment notifications or permission requirements are left unstated.
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 0%, so the description must compensate, and it does: it explains issue_key's format with an example ("KAN-123") and clarifies that body is plain text supporting Jira wiki markup. That is meaningful detail the bare string-typed schema lacks.
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 (add) and resource (comment to an issue), which clearly separates it from the sibling get_comments. It stops short of explicitly naming or contrasting with that sibling, but the intent is unambiguous.
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 by the verb — comment on an issue when you have text to attach — but there is no explicit when-to-use framing, no prerequisites, and no mention of get_comments as the read-side alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_worklogB
Add a worklog entry to an issue.
Args: issue_key: Issue key (e.g., "KAN-123") time_spent: Time spent string (e.g., "2h 30m", "1d", "4h") comment: Work description started: Start time in ISO format (e.g., "2026-03-24T09:00:00.000+0000")
| Name | Required | Description | Default |
|---|---|---|---|
| comment | No | ||
| started | No | ||
| issue_key | Yes | ||
| time_spent | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Add' implies a mutation, but the description says nothing about required permissions, whether time can be logged on someone else's behalf, validation/duplicate behavior, or reversibility. For a write operation with zero annotation coverage this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence followed by a compact, well-structured Args block; every line carries parameter information. Slightly terse but no wasted prose.
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?
The output schema exists, so return values need not be explained, and all parameters are documented. The missing pieces are the usage/permission context and side-effect disclosure expected of an un-annotated mutation 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 0%, and the description compensates well: it documents all four parameters with concrete format examples ('KAN-123', '2h 30m', '1d', '4h', ISO timestamp). It stops short of stating accepted time-spent units or what a null comment/started defaults to.
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 ('Add a worklog entry to an issue'), which an agent can clearly distinguish from siblings like add_comment or transition_issue. However, it never explicitly contrasts itself with those siblings or explains what a worklog entry is in this system.
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?
There is no guidance on when to use this tool versus alternatives (e.g., add_comment for non-time-tracking notes), no prerequisites such as whether the user must be assignee or have worklog permission, and no notes on when-not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bulk_transitionC
Transition multiple issues to a new status.
Args: issue_keys: List of issue keys (e.g., ["KAN-1", "KAN-2"]) transition_name: Target transition name (e.g., "Done") comment: Optional comment for all transitions
| Name | Required | Description | Default |
|---|---|---|---|
| comment | No | ||
| issue_keys | Yes | ||
| transition_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full behavioral burden. It describes the operation as a write/mutation but does not state whether transitions are reversible, what happens on partial failure across multiple issues, permission requirements, or rate limits.
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 action, followed by a compact Args block. Efficient and free of filler, though the Args block is somewhat redundant with the JSON schema itself.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a batch mutation tool with no annotations, an output schema, and 0% parameter coverage, the description omits critical details: failure handling per issue, valid transition source, and permission/workspace context. It is insufficient for an agent to call this safely.
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 0% and the description only lightly annotates the three parameters with examples ("KAN-1", "Done"). It does not explain that transition_name must match a valid transition for the issue (cf. get_transitions), nor how comment applies to all transitions, leaving meaningful semantics undocumented.
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+resource: "Transition multiple issues to a new status." Distinguishes from the singular sibling transition_issue via "multiple", but does not explicitly name the sibling or contrast them in the description.
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 guidance, no mention of single-issue alternative (transition_issue), no prerequisites such as needing valid transition names. Usage is only implied by the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_issueB
Create a Jira issue with full field support including parent, fixVersions, dates.
Args: project: Project key (e.g., "KAN") issue_type: Issue type name (e.g., "Task", "Story", "Bug", "Epic") summary: Issue title description: Plain text description (supports Jira wiki markup for rich text) assignee_id: Atlassian account ID of assignee priority: Priority name (e.g., "High", "Medium", "Low") labels: List of label strings parent: Parent issue key for sub-tasks or stories under epics (e.g., "KAN-1") fix_versions: List of version names (e.g., ["v1.0.0"]) components: List of component names start_date: Start date in YYYY-MM-DD format due_date: Due date in YYYY-MM-DD format story_points: Story point estimate custom_fields: Dict of custom field IDs to values
| Name | Required | Description | Default |
|---|---|---|---|
| labels | No | ||
| parent | No | ||
| project | Yes | ||
| summary | Yes | ||
| due_date | No | ||
| priority | No | ||
| components | No | ||
| issue_type | Yes | ||
| start_date | No | ||
| assignee_id | No | ||
| description | No | ||
| fix_versions | No | ||
| story_points | No | ||
| custom_fields | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, yet it discloses nothing about permissions, notification side effects, idempotency, or rate limits. 'Create' implies a mutation, but what it changes and what constraints apply are unstated.
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 sentence is front-loaded, followed by a tight args list where each line adds format or example information. Slightly list-heavy, but nothing is padding.
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 parameters are well covered. However, for a Jira create tool the key operational caveat — that required fields vary by project and issue type and custom field IDs must be discovered via get_createmeta — is missing, which is a meaningful gap given 14 parameters.
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 0%, so the description must compensate, and it does: every one of the 14 parameters is documented with concrete formats and examples ('KAN', 'KAN-1', 'Task'/'Story'/'Bug'/'Epic', YYYY-MM-DD, ['v1.0.0'], wiki markup, and the dict-of-custom-field-IDs shape).
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 ('Create a Jira issue') and enumerates the field coverage, which is clearly distinguishable from read/search siblings. It stops short of explicitly differentiating itself from create_issues_bulk or the update/delete siblings.
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?
There is no when-to-use guidance: nothing says when to prefer this over create_issues_bulk, nor that get_createmeta should be consulted first to discover valid issue types and required custom fields. The description only lists fields, leaving the agent to infer routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_issues_bulkA
Create multiple issues in bulk (max 50 per request).
Args: issues: List of issue objects. Each must have: project, issue_type, summary. Optional: description, assignee_id, priority, labels, parent, fix_versions, components, start_date, due_date, custom_fields.
| Name | Required | Description | Default |
|---|---|---|---|
| issues | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the max-50 limit, but does not describe permissions, atomicity, partial-failure behavior, rate limits, or other operational traits important for a bulk mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and cap, then uses a compact Args section to enumerate field requirements. Every sentence adds useful information with no repetition or 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 not be explained. However, for a bulk mutation with no annotations, the description omits important operational context such as permission needs, validation failure behavior, and whether the batch is atomic.
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 0% and the single issues parameter is an array of free-form objects. The description compensates by naming the required fields (project, issue_type, summary) and listing optional fields, giving the agent actionable parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Create multiple issues in bulk (max 50 per request).' It clearly distinguishes itself from the singular sibling create_issue by emphasizing multiple issues and a 50-item cap.
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 implies usage for bulk creation and gives a concrete capacity limit, but it does not explicitly say when to use this instead of create_issue or what alternatives exist for different batch sizes. No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_versionB
Create a new version/release in a project.
Args: project_key: Project key (e.g., "KAN") name: Version name (e.g., "v1.0.0") description: Version description start_date: Start date (YYYY-MM-DD) release_date: Release date (YYYY-MM-DD)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| start_date | No | ||
| description | No | ||
| project_key | Yes | ||
| release_date | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry all behavioral disclosure. It states that the tool creates a version but omits side effects, required permissions, duplicate-name behavior, idempotency, and error cases. The presence of an output schema is not reflected in the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well structured, with a clear summary followed by a compact Args list. It avoids unnecessary repetition and presents parameter information in an easy-to-scan format. Every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with no annotations, the definition should do more to explain permissions, prerequisites, side effects, and relationship to sibling tools. It also has an output schema but does not describe what is returned. The parameter list is helpful but insufficient for full contextual completeness.
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?
All five parameters are named in the description, with examples for project_key and name plus date formats for start_date and release_date. However, schema description coverage is 0%, and the description does not state required versus optional fields or null/default behavior. The description for 'description' is tautological and adds little semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and first sentence clearly state the action and resource: create a new version/release in a project. Examples for project_key and name make the intent unambiguous. It is easy to distinguish from get_versions, update_version, and delete_version.
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 lists arguments but gives no when-to-use guidance, prerequisites, permissions, or constraints. It also does not explain when to prefer create_version over update_version or how it relates to release workflows. Only the argument list and date format examples are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_issueB
Delete a Jira issue.
Args: issue_key: Issue key (e.g., "KAN-123") delete_subtasks: Also delete subtasks (default: True)
| Name | Required | Description | Default |
|---|---|---|---|
| issue_key | Yes | ||
| delete_subtasks | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must carry the full behavioral burden. 'Delete a Jira issue' implies a destructive, irreversible operation but does not state irreversibility, permission requirements, or side effects (e.g., linked issues). It does note subtasks are also deleted by default, which is one useful behavior, but far from sufficient for a destructive tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two lines, front-loaded verb+resource, then parameter notes. No wasted text. Could be slightly more structured with warnings, but efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations and no output schema explanation, the description omits critical context: irreversibility, required permissions, effect on linked issues, and return value. Incomplete for safe 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 0%, so description should compensate. It explains issue_key with an example and clarifies delete_subtasks default True and meaning. Adds some value, but lacks detail on what happens if delete_subtasks is false (error? orphaned?) and doesn't document the boolean fully. Marginal.
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?
Clear specific verb+resource (delete a Jira issue). Unambiguous against siblings like create_issue, update_issue, get_issue. An agent can confidently select this tool.
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 indication of when to use this vs other operations, nor any warning about irreversibility. Doesn't mention prerequisites (permissions) or guidance about subtasks default behavior. Missing explicit when-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_issue_linkB
Delete an issue link by its ID.
Args: link_id: The link ID (get from get_issue_links)
| Name | Required | Description | Default |
|---|---|---|---|
| link_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden for a mutation tool. It never states whether the deletion is permanent, what permissions are required, or what side effects occur on linked issues, leaving the agent unable to judge risk.
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 imperative sentence states the action and the key, with the sourcing hint immediately after. Nothing is padded or redundant.
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. But for a destructive operation with no annotations, the description omits the risk/permission context an agent needs before invoking it, leaving a notable gap.
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 0% for the single link_id parameter, so the description must compensate. It does identify the origin of the value ('get from get_issue_links') but adds no format or validation detail beyond the schema's string type, which is only partial compensation.
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 (Delete) and resource (issue link) plus the lookup key (ID), which cleanly separates it from sibling get_issue_links and delete_issue. It stops short of naming sibling alternatives, but the action is unambiguous.
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 parenthetical 'get from get_issue_links' is a useful pointer to the sibling that supplies the required input, which is real routing help. However, there is no guidance on when to delete a link versus using link_issues or how this interacts with issue updates, so usage is only partially covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_versionB
Delete a version/release.
Args: version_id: Version ID to delete move_fix_issues_to: Version ID to reassign fix version issues move_affected_issues_to: Version ID to reassign affected version issues
| Name | Required | Description | Default |
|---|---|---|---|
| version_id | Yes | ||
| move_fix_issues_to | No | ||
| move_affected_issues_to | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, yet it never states that deletion is irreversible or what permissions are required. It does implicitly reveal that a version may have attached fix/affected issues that must be reassigned, which is useful behavioral context, but the destructive consequences remain undisclosed.
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-line purpose followed by a tight Args list; front-loaded and free of padding. The arg restatements are terse but not wasteful.
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, but for an unannotated destructive tool the description omits irreversibility, permission requirements, and what happens when issues exist and no reassignment target is supplied. Those gaps matter for 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 0%, so the description must compensate, and it does document all three parameters with their roles. The move_fix_issues_to and move_affected_issues_to explanations ('reassign fix version issues' vs 'reassign affected version issues') add genuine meaning beyond the bare schema types.
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 ('Delete a version/release'), which cleanly distinguishes it from siblings like create_version, update_version, and get_versions. It does not, however, explicitly contrast itself with delete_issue or other destructive siblings.
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?
There is no guidance on when to use this tool, no prerequisites, and no mention of alternatives or recovery paths. The description only enumerates arguments.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_boardsB
List Jira boards.
Args: project_key: Filter by project key board_type: Filter by type: "scrum", "kanban", "simple"
| Name | Required | Description | Default |
|---|---|---|---|
| board_type | No | ||
| project_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'List' implies a read-only, non-destructive operation, but nothing is said about pagination, result limits, permissions, or default filtering behavior, which matters for a listing endpoint that may return many boards.
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 action, followed by a compact args block with no wasted prose. The docstring-style formatting is slightly redundant with the schema but remains readable and short.
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, and both parameters are documented. However, with no annotations and no usage context, the definition leaves gaps around safety profile and result scoping that would help an agent 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 description coverage is 0%, so the description must compensate, and it does: it explains that project_key filters by project and enumerates the valid board_type values (scrum, kanban, simple) that the schema does not restrict. It stops short of stating whether the filters are combinable or what happens if omitted.
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 ('List Jira boards'), which unambiguously identifies the operation. There is no sibling tool for boards, so no differentiation is needed, but the description does not note scope limits such as which boards are returned.
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 never says when to use this tool versus alternatives, nor does it mention prerequisites such as needing a project key to narrow results. Usage is only implied by the filter parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_commentsB
Get comments on an issue.
Args: issue_key: Issue key (e.g., "KAN-123") max_results: Maximum number of comments (default 50)
| Name | Required | Description | Default |
|---|---|---|---|
| issue_key | Yes | ||
| max_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Get' implies a read, but the description does not confirm read-only safety, describe ordering of results, or explain what happens when there are more comments than max_results (pagination/truncation).
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 purpose in the first sentence, followed by a compact per-parameter block. Slightly list-like but no wasted prose.
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-value explanation is not required, and both parameters are covered. However, for a list-style tool with a max_results cap, the absence of any pagination/ordering note leaves an operational gap.
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 0%, so the description must compensate, and it does document both parameters: issue_key with a concrete format example ('KAN-123') and max_results with its default (50). It stops short of explaining pagination or how max_results interacts with the total set.
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 ('Get comments on an issue'), which clearly distinguishes it from the sibling add_comment (write) and get_issue (issue body). It does not explicitly name those siblings, but the read/comment scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus alternatives such as add_comment or get_issue. The description gives no context about prerequisites, permissions, or when fetching comments is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_createmetaA
Get issue creation metadata for a project (available issue types and fields).
Args: project_key: Project key (e.g., "KAN")
| Name | Required | Description | Default |
|---|---|---|---|
| project_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose the returneed content (issue types and fields), but says nothing about permissions, project visibility, or whether invalid project keys error out. For a read tool with an output schema, this is thin but not misleading.
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 purpose followed by an Args block, front-loaded and compact. The Args section is slightly overkill for a single parameter but does not waste much space.
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 needn't be explained, and the description correctly focuses on purpose and the parameter. But it omits any usage context relative to the create_* siblings and offers no behavioral notes for a tool with zero annotations. Adequate but with clear gaps.
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 0%, so the description must compensate and it does partially: it names project_key and provides an example value ("KAN"). It does not clarify case sensitivity, format constraints, or resolution of invalid keys, but the example is meaningful added meaning over the bare schema.
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 ('Get') and resource ('issue creation metadata'), and parenthetically enumerates the payload (available issue types and fields). It is distinguishable from siblings like get_project or create_issue, though it doesn't explicitly name an alternative.
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: it's a pre-creation lookup tool that pairs with create_issue. However, the description never states when to call it, and never points to create_issues_bulk or create_issue as the follow-up. No when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_current_userA
Get the currently authenticated Jira user.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. The verb 'Get' plus 'currently authenticated' implies a safe, session-scoped read with no side effects and no parameters, but it does not state behavior for unauthenticated sessions or error cases. Adequate but thin for a no-annotation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero wasted words, appropriately sized for a trivial no-argument read tool.
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?
The tool is trivial (no params) and an output schema exists, so the description needn't explain return values. The only minor gap is the absence of any note about authentication failure behavior, which keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the input schema confirms an empty object, so there is nothing parameter-related for the description to explain. Baseline 4 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?
The description states a specific verb (Get) and resource (currently authenticated Jira user), which is precise enough to distinguish from sibling search_users. It does not explicitly name a sibling, but the 'currently authenticated' qualifier naturally separates it from user-search tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like search_users, nor any preconditions. Usage is only implied by the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issueB
Get detailed information about a Jira issue.
Args: issue_key: Issue key (e.g., "KAN-123") fields: Comma-separated field names to include (default: all) expand: Comma-separated expansions (e.g., "changelog,transitions")
| Name | Required | Description | Default |
|---|---|---|---|
| expand | No | ||
| fields | No | ||
| issue_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full behavioral burden, yet it only implies a read via the word 'Get'. It says nothing about authentication/permission requirements, behavior when the issue is missing, or rate limits. The presence of an output schema covers return values, but the operational profile is undisclosed.
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 is front-loaded in a single sentence, with parameter notes kept tight and example-driven. There is no redundancy or filler, though the args block is mildly list-like rather than integrated prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter read tool with an output schema, the essentials are present: purpose plus all parameter semantics. The gaps are behavioral (permissions, error/empty cases) and routing versus search_issues, which keeps it at minimum-viable completeness.
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 0%, so the description must document parameters, and it does: issue_key with a concrete example format, fields as a comma-separated list defaulting to all, and expand with sample values. It stops short of enumerating valid field/expansion values, but the added meaning is substantial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Get detailed information about a Jira issue'), which clearly separates it from list-oriented siblings like search_issues. It does not, however, explicitly name any sibling or contrast its scope with 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?
Usage is only implied: fetching one issue by key is obviously a single-record lookup versus search_issues, but the description never states when to prefer this tool or what happens with an invalid key. No exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issue_linksA
Get all links for an issue.
Args: issue_key: Issue key (e.g., "KAN-123")
| Name | Required | Description | Default |
|---|---|---|---|
| issue_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It identifies a read operation but does not disclose pagination behavior, permission requirements, scope (e.g., all link types), or any other trait beyond the basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The purpose is front-loaded, and the parameter example is concise and directly useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with an output schema and a single parameter, the description covers the core purpose and parameter usage. The main gap is behavioral context, but given the low complexity and available output schema, it is largely complete.
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 0%, so the description must compensate. It defines the sole parameter as an issue key and provides a concrete example ('KAN-123'), which adequately documents the single required string input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('all links for an issue'), making clear it retrieves issue links. It implicitly distinguishes itself from siblings like link_issues and delete_issue_link, though it does not name alternatives 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 by the action itself: an agent would call this when it needs to see links for a known issue key. However, the description provides no explicit when-to-use guidance, prerequisites, or comparison to alternatives such as get_issue or search_issues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_projectB
Get detailed information about a project.
Args: project_key: Project key (e.g., "KAN")
| Name | Required | Description | Default |
|---|---|---|---|
| project_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It says nothing about read-only nature, permissions, or error behavior; only the presence of an output schema keeps this from being a total gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in one clean sentence. The 'Args:' block is slightly verbose for a single parameter but is harmless and not padded.
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?
A simple single-parameter read tool with an output schema already defining return values, so the description is close to sufficient. The main missing piece is usage context versus the many sibling tools.
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 0%, so the description must compensate, and it does: it names the parameter and supplies a concrete example format ("KAN"). It does not clarify key-vs-id-vs-name alternatives, but the added meaning is real.
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 (Get) and resource (project) with scope 'detailed information'. Sibling get_projects (plural) exists, and the singular form implies single-project retrieval, but the description never explicitly distinguishes the two.
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 guidance, no alternatives named, no prerequisites. An agent must infer that this is for fetching one project versus get_projects for listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_projectsB
List all accessible Jira projects.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It correctly discloses the access-scoping behavior ('accessible'), implying results are permission-filtered. However, it says nothing about pagination, ordering, or result size limits, which are relevant for a list endpoint that can return unbounded results.
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 eight-word sentence with no filler. Front-loaded with the verb and resource; every word 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 value explanation is unnecessary. The description covers the basic intent, but for a list endpoint with no annotations it omits practical concerns like pagination and default ordering that an agent may need. It is minimally viable rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics to describe. Baseline is 4 for a parameterless tool. The description adds nothing here but has nothing to add.
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 (List) and resource (Jira projects) with a scope qualifier (accessible). This distinguishes it from get_project (singular) in the sibling list, though it doesn't explicitly say 'as opposed to get_project'.
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 guidance, no mention of alternatives like get_project for a single project, no indication of when the returned list is appropriate versus searching. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sprintsB
Get sprints for a board.
Args: board_id: Board ID state: Filter by state: "future", "active", "closed" (default: all)
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | ||
| board_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden, and it discloses nothing beyond the basic fetch. It does not mention permissions, pagination, ordering, or whether the board must exist; an agent learns only that this is a read of sprints, which it could already infer from the name.
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 sentence is front-loaded and the parameter list is terse with no filler. The 'Args:' block is slightly mechanical but every line carries information the schema lacks.
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, and the state filter is well covered. The gap is behavioral: with no annotations and no mention of permissions, pagination, or error conditions, the definition is adequate but not complete for an unannotated 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 description coverage is 0%, so the description must compensate, and it does the important half: it enumerates the valid state values ('future', 'active', 'closed') and the all-states default, which the schema does not encode as an enum. The board_id entry is only a restatement ('Board ID'), leaving a small gap.
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 (Get) and resource (sprints) scoped to a board, so the agent knows exactly what it returns. It does not, however, differentiate itself from any sibling such as get_boards or move_to_sprint, which is the only thing keeping it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance is embedded in the state parameter note listing the accepted filter values and that the default returns all states. There is no explicit when-to-use or when-not-to-use guidance relative to other retrieval or sprint-mutation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transitionsB
Get available status transitions for an issue.
Args: issue_key: Issue key (e.g., "KAN-123")
| Name | Required | Description | Default |
|---|---|---|---|
| issue_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. 'Get' implies a read-only operation, but the description does not state side effects, permissions, or whether it mutates state, leaving key behavioral traits unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise and front-loaded: the purpose appears first, followed by a compact args section. Every sentence earns its place with no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with one parameter and an output schema, the core function is covered. However, the lack of annotations means the description should ideally disclose more behavioral context such as read-only safety or when to call 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 description coverage is 0% for the single required parameter. The description compensates by naming issue_key and providing a concrete example format ('KAN-123'), which adds useful meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: retrieves available status transitions for an issue. It distinguishes the read operation from the sibling transition_issue, which likely performs a transition, but does not explicitly name or contrast with alternatives.
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?
There is no guidance on when to use this tool versus transition_issue, bulk_transition, or get_issue. The implied use case is to discover transitions before applying one, but this is not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_versionsB
Get all versions/releases for a project.
Args: project_key: Project key (e.g., "KAN")
| Name | Required | Description | Default |
|---|---|---|---|
| project_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. 'Get' implies a read-only operation, but it does not disclose any behavioral traits such as pagination, permission requirements, or whether all versions are returned in one call. Minimal transparency beyond the basic operation.
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 standard Args block) with the purpose front-loaded. No redundant or filler language; every part serves to state the operation and clarify the parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (one required parameter) and the existence of an output schema, the description covers the essential purpose and parameter meaning. However, the absence of annotations and any usage guidance leaves some gaps, though the tool is simple enough that these are minor.
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 0%, so the description must compensate. It does by naming the parameter 'project_key' and giving an example format ('KAN'), which adds meaning beyond the schema's bare string type. However, it doesn't elaborate on format constraints beyond the example.
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 'Get' and resource 'all versions/releases for a project', making its function unambiguous. It does not explicitly differentiate itself from siblings like create_version or update_version, but the read-only verb naturally separates it.
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 no guidance on when to use this tool versus alternatives such as get_project or create_version. The only hint is the required project_key parameter, which implies usage for a specific project, but no explicit context or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
link_issuesB
Create a link between two issues.
Args: inward_issue: Inward issue key (e.g., "KAN-1") outward_issue: Outward issue key (e.g., "KAN-2") link_type: Link type name (e.g., "Blocks", "Relates", "Duplicate", "Cloners") comment: Optional comment
| Name | Required | Description | Default |
|---|---|---|---|
| comment | No | ||
| link_type | No | Relates | |
| inward_issue | Yes | ||
| outward_issue | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden for a mutation tool. It does not state whether links are idempotent, whether duplicate links error, what permissions are required, or whether the operation is reversible — significant gaps for a write operation.
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 is front-loaded in one sentence, followed by a compact args list. No padding, though the embedded Args block is a somewhat mechanical format rather than prose tailored to the tool.
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 explained, and parameters are covered. However, for a link-creation mutation with zero annotation coverage, the absence of any permission, idempotency, or failure-mode context leaves the definition only minimally sufficient.
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 0%, so the description is the only source of parameter meaning. It documents all four params and supplies concrete examples, including link_type values ('Blocks', 'Relates', 'Duplicate', 'Cloners'), which effectively conveys the enum domain. It omits that link_type defaults to 'Relates'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Create a link between two issues.' That clearly distinguishes it from siblings like delete_issue_link and get_issue_links by operation, though it never names those siblings 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?
There is no when-to-use guidance, no prerequisites, and no mention of the alternative link operations (delete_issue_link) or how to discover valid link types. The agent must infer usage entirely from the name and arg list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_to_sprintC
Move issues to a sprint.
Args: sprint_id: Target sprint ID issue_keys: List of issue keys to move (e.g., ["KAN-1", "KAN-2"])
| Name | Required | Description | Default |
|---|---|---|---|
| sprint_id | Yes | ||
| issue_keys | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Move issues to a sprint' implies a mutation, but the description does not disclose permissions needed, reversibility, error behavior, or side effects. It adds only the basic action, leaving key behavioral traits undocumented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the action, and structured with an Args section. It contains no filler, though the parameter documentation is minimal rather than maximally informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, the description is missing important context: when to use it, how sprint_id should be obtained, and what happens on success or failure. The output schema covers return values, but the invocation context remains 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 0%, so the description must compensate. It documents both parameters: 'sprint_id: Target sprint ID' and 'issue_keys: List of issue keys to move (e.g., ["KAN-1", "KAN-2"])'. The example for issue_keys is useful, but sprint_id format and constraints remain underspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Move issues to a sprint.' It is clear what the tool does. However, it does not differentiate itself from adjacent mutation tools such as update_issue, transition_issue, or bulk_transition, so it misses the highest bar for sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance about when to use this tool versus alternatives like transition_issue, bulk_transition, or update_issue. It does not state prerequisites, such as whether the sprint must be active or whether issues must belong to the same board/project.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_issuesB
Search Jira issues using JQL.
Args: jql: JQL query string (e.g., 'project = KAN AND status = "To Do"') fields: Comma-separated fields to return max_results: Maximum results (1-100, default 50) next_page_token: Token for next page (from previous response)
| Name | Required | Description | Default |
|---|---|---|---|
| jql | Yes | ||
| fields | No | summary,status,assignee,priority,issuetype,parent,fixVersions,labels | |
| max_results | No | ||
| next_page_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose that the operation is paginated via next_page_token 'from previous response', which is useful context beyond structured data, but it says nothing about auth requirements, rate limits, or whether JQL errors fail the whole call.
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 sentence is front-loaded and zero-waste. The Args block restates parameter names already in the schema, but it adds examples and constraints, so the redundancy is minimal.
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. However, for a paginated search tool with no annotations, the description omits how to know when more pages remain and gives no hint about JQL validation behavior, leaving an agent to guess at the retrieval loop.
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 0%, so the description must compensate, and it largely does: it gives a concrete JQL example, explains fields as comma-separated, states the max_results range and default (matching the schema default of 50), and explains the pagination token's origin.
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 ('Search Jira issues') plus the query language (JQL), so the operation is unambiguous. It does not distinguish itself from siblings like get_issue or get_projects, but the JQL-based search scope is clear from the text alone.
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?
There is no explicit when-to-use guidance and no mention of alternatives such as get_issue for a single known key. Usage is only inferable from the verb 'search'; nothing tells the agent when this tool is the wrong choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_usersC
Search for Jira users by name or email.
Args: query: Search string (name, email, or display name) max_results: Maximum results (default 25)
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| max_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose whether this is a read-only lookup, whether it requires admin scopes, whether it searches across all users or only visible ones, or any result limits beyond max_results. 'Search' implies a safe read but that is never stated.
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 is front-loaded in one sentence, with the parameter list after it. It is appropriately short for a two-parameter lookup, though the 'Args:' block adds little beyond the schema.
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 explained, and this is a simple two-parameter tool. Still, with zero annotation coverage and no usage context, the definition leaves an agent without enough to decide when this tool is the right call.
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 0%, so the description must compensate; it does describe both parameters (query accepts name/email/display name, max_results defaults to 25). However, this only restates what the schema already conveys via types and defaults, adding no syntax, matching-behavior, or pagination detail beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Search for Jira users') and narrows the matching fields to name or email, which clearly separates it from siblings like search_issues or get_current_user. It is not a tautology, though it does not explicitly call out the sibling it substitutes for.
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?
There is no statement of when to use this tool versus alternatives such as get_current_user (which likely returns the authenticated user) or a project-member lookup. The only guidance is implicit in the field list, so an agent must infer the selection criteria itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transition_issueB
Transition an issue to a new status.
Args: issue_key: Issue key (e.g., "KAN-123") transition_name: Transition name (e.g., "In Progress", "Done"). Used to auto-find ID. transition_id: Transition ID (takes priority over name) comment: Optional comment to add during transition resolution: Optional resolution name (e.g., "Done") for closing transitions
| Name | Required | Description | Default |
|---|---|---|---|
| comment | No | ||
| issue_key | Yes | ||
| resolution | No | ||
| transition_id | No | ||
| transition_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses two behavioral rules (transition_id takes priority over transition_name; resolution is for closing transitions), but says nothing about what happens on an invalid/illegal transition, permission requirements, or whether the change is reversible.
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 is front-loaded in one sentence, followed by a tight per-argument list; every line earns its place, especially given the 0% schema description coverage that makes the arg list necessary.
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 explained. The gaps are procedural: no mention of needing valid transitions for the issue's current status, no error-behavior note, and no reference to get_transitions for discovery.
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 0%, so the description must compensate, and it documents all five parameters including examples ('KAN-123', 'In Progress', 'Done') and the priority rule for transition_id. It does not supply the actual allowed values/enums for transition_name or resolution, which remain undiscoverable from the schema.
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+resource ('Transition an issue to a new status'), which is clear and actionable. It does not, however, differentiate itself from siblings like update_issue or bulk_transition, so the agent must infer the boundary from the name alone.
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 or when-not-to-use guidance is given. It never says to call get_transitions first to discover valid names/IDs, nor when to prefer this over update_issue or bulk_transition. The only routing hint is the implicit 'transition_name auto-finds ID'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_issueA
Update an existing Jira issue. Only provided fields are changed.
Args: issue_key: Issue key (e.g., "KAN-123") summary: New summary description: New description (plain text, supports Jira wiki markup for rich text) assignee_id: New assignee account ID priority: New priority name labels: Replace all labels fix_versions: Replace all fix versions (list of version names) components: Replace all components start_date: New start date (YYYY-MM-DD) due_date: New due date (YYYY-MM-DD) parent: New parent issue key story_points: New story point estimate custom_fields: Dict of custom field IDs to values
| Name | Required | Description | Default |
|---|---|---|---|
| labels | No | ||
| parent | No | ||
| summary | No | ||
| due_date | No | ||
| priority | No | ||
| issue_key | Yes | ||
| components | No | ||
| start_date | No | ||
| assignee_id | No | ||
| description | No | ||
| fix_versions | No | ||
| story_points | No | ||
| custom_fields | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose valuable behavior: partial-update semantics and which fields are replaced wholesale ('Replace all labels', 'Replace all fix versions', 'Replace all components'). However, it omits permissions/auth requirements, whether passing null clears a field, error behavior for invalid keys, and other operational traits.
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 core purpose and the key partial-update rule are front-loaded in two short sentences, followed by an organized per-parameter list. The Arg list largely mirrors parameter names but consistently adds value, so little is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter mutation tool with no annotations and an output schema that handles returns, the description covers purpose, per-parameter meaning, and replacement semantics well. Remaining gaps are null-handling behavior, permission requirements, and validation/error expectations.
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 0%, so the description must compensate, and it does: all 13 parameters are documented with meaning beyond their types, including format hints (issue key example 'KAN-123', dates as YYYY-MM-DD), rich-text markup support for description, and explicit replace-vs-set semantics for list fields. Only custom_fields is left somewhat thin ('dict of custom field IDs to values').
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 ('Update an existing Jira issue') and adds the key semantic that only provided fields are changed, which distinguishes it as a partial update. It does not differentiate from siblings like transition_issue or bulk_transition, which also modify issues, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no exclusions, and no mention of alternatives such as transition_issue for status changes or create_issue for new items. The agent must infer everything from the tool name and the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_versionB
Update an existing version/release.
Args: version_id: Version ID (get from get_versions) name: New version name description: New description start_date: New start date (YYYY-MM-DD) release_date: New release date (YYYY-MM-DD) released: Mark as released archived: Mark as archived
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| archived | No | ||
| released | No | ||
| start_date | No | ||
| version_id | Yes | ||
| description | No | ||
| release_date | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears the full behavioral burden. It conveys the field-level intent of each argument but omits auth requirements, whether nulls mean "leave unchanged" (partial vs full update semantics), and whether setting archived/released triggers side effects. For a 7-parameter mutation this is a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A one-line purpose followed by an args list – front-loaded and free of filler. The format is functional rather than elegant, but nothing is wasted.
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 argument list is complete. However, for an unannotated mutation the description should at least signal partial-update behavior and permission expectations to be fully sufficient.
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 0%, so the description must carry the parameters, and it documents all seven, including the YYYY-MM-DD format for start_date and release_date and the source of version_id. It doesn't clarify the null-default semantics, which is the main remaining ambiguity.
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 ("Update an existing version/release") that an agent can map cleanly against siblings create_version, delete_version, and get_versions. It does not explicitly contrast itself with those siblings, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only routing hint is "get from get_versions" for the version_id, which helps with one prerequisite but says nothing about when to update versus create or delete a version. No conditions, exclusions, or permissions are mentioned.
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.
27 tool updates
v0.3.2- First observed
add_comment - First observed
add_worklog - First observed
bulk_transition - First observed
create_issue - First observed
create_issues_bulk - First observed
create_version - First observed
delete_issue - First observed
delete_issue_link - First observed
delete_version - First observed
get_boards - First observed
get_comments - First observed
get_createmeta - First observed
get_current_user - First observed
get_issue - First observed
get_issue_links - First observed
get_project - First observed
get_projects - First observed
get_sprints - First observed
get_transitions - First observed
get_versions - First observed
link_issues - First observed
move_to_sprint - First observed
search_issues - First observed
search_users - First observed
transition_issue - First observed
update_issue - First observed
update_version
TDQS
Scored across 27 tools
Each tool targets a distinct Jira resource or action; single vs. bulk variants (create_issue vs. create_issues_bulk, transition_issue vs. bulk_transition) are clearly distinguished by descriptions. No meaningful overlap would cause misselection.
Names are consistently snake_case and mostly follow a verb_noun pattern. Minor deviations exist: bulk_transition uses a prefix while create_issues_bulk uses a suffix, and get_createmeta compresses a Jira term, but the set remains predictable.
27 tools is heavy for an MCP server and exceeds the typical 3-15 range. However, the breadth is aligned with an 'extended' Jira surface covering issues, versions, sprints, comments, worklogs, projects, and boards, so it is over-scoped rather than redundant.
Core issue lifecycle is well covered (CRUD, search, transitions, bulk operations, links), and versions have full CRUD. Gaps remain in secondary areas: comments only support add/get, worklogs only support add, and sprints/boards lack full lifecycle management.
Maintenance
Related MCP Connectors
Connect to Atlassian Jira, Confluence, Loom, and more to search, create, and manage your work.
Task manager your agent can fully operate: boards, tasks, sprints, roles, worklogs, day planner.
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
AI-native project management + agent memory: tasks, sprints, risk, burnout, knowledge search.
Related MCP Servers
- AlicenseAqualityNot gradedmaintenanceEnables AI assistants to interact with Atlassian Jira Cloud, allowing users to manage projects, issues, comments, and workflows through natural language commands.660 npm3-
- AlicenseBqualityCmaintenanceEnables AI agents to manage Jira projects and issues using natural language, including creating, updating, searching issues, managing sprints, and more via the Jira API.3660 npm1MIT
- AlicenseAqualityDmaintenanceEnables AI agents to interact with Jira Cloud and Confluence through natural language, performing JQL searches, issue management, and Confluence page creation.104 npm1MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Jira Cloud issues, supporting create, read, update, delete, search, and transition operations via natural language.9 npmMIT