JIRA MCP Server
Provides system time integration with customizable date and time formatting and locale support.
Allows access to Jira issues directly from the IDE, including viewing assigned issues, getting detailed information on specific issues, and converting Jira issues into local tasks.
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 MCP Servershow me my assigned issues due this week"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
๐ฏ JIRA MCP Server
โจ Features
๐ฏ Complete JIRA Integration Suite
Issue Management: Full CRUD operations for JIRA issues with comprehensive field support
Project & Board Discovery: Browse projects, boards, and sprints with advanced filtering
Smart Search: JQL and beginner-friendly search with rich formatting
Comment System: Access and manage issue comments with progressive disclosure
๐๏ธ Enterprise-Grade Architecture (New in v0.5.0)
Modular Design: Feature-based architecture with clear separation of concerns
Robust HTTP Client: Refactored with dedicated utility classes for reliability
Comprehensive Testing: 822+ tests ensuring stability and reliability
Type Safety: Full TypeScript strict mode with enhanced error handling
๐ Powerful Search & Discovery
Search issues using JQL (JIRA Query Language) or beginner-friendly parameters
Project, board, and sprint discovery with metadata and filtering
Rich markdown formatting with issue previews and direct navigation links
Advanced comment retrieval with author filtering and date ranges
๐ Advanced Issue Management
Create, update, and transition issues with comprehensive field support
Time tracking, worklog management, and custom field support
ADF (Atlassian Document Format) parsing for rich content display
Array operations for labels, components, and versions
Related MCP server: JIRA MCP Server
๐ What's New in v0.5.0
๐๏ธ Major Architecture Overhaul
Complete code reorganization with modular, domain-driven architecture
HTTP client refactoring with dedicated utility classes for improved reliability
Critical bug fix for malformed JIRA API URLs that prevented proper communication
๐งช Enhanced Testing & Quality
95+ new tests added for HTTP client utilities and edge cases
822 total tests ensuring comprehensive coverage and stability
Zero linting warnings with enhanced Biome integration
๐ง Technical Improvements
Enhanced error handling with better classification and actionable messages
Improved logging with structured debug information and performance monitoring
Type safety enhancements with strict TypeScript checking throughout
๐ Performance & Reliability
Optimized HTTP requests with better connection management
Enhanced error recovery with improved retry logic and timeout handling
Backward compatibility maintained - seamless upgrade from v0.4.x
๐ Quick Start
Installation
Add this configuration to your MCP client:
{
"mcpServers": {
"JIRA Tools": {
"command": "bunx",
"args": ["-y", "@dsazz/mcp-jira@latest"],
"env": {
"JIRA_HOST": "https://your-domain.atlassian.net",
"JIRA_USERNAME": "your-email@example.com",
"JIRA_API_TOKEN": "your-jira-api-token"
}
}
}
}Development Setup
For local development and testing:
# Clone the repository
git clone https://github.com/Dsazz/mcp-jira.git
cd mcp-jira
# Install dependencies
bun install
# Set up environment variables
cp .env.example .env
# Edit .env with your JIRA credentials
# Build the project
bun run build
# Test with MCP Inspector
bun run inspectConfiguration
Create a .env file with the following variables:
JIRA_HOST=https://your-instance.atlassian.net
JIRA_USERNAME=your-email@example.com
JIRA_API_TOKEN=your-jira-api-token-here๐ Important Note About JIRA API Tokens
A JIRA API token can be generated at Atlassian API Tokens
Tokens may contain special characters, including the
=signPlace the token on a single line in the
.envfileDo not add quotes around the token value
Paste the token exactly as provided by Atlassian
๐งฐ Available Tools
Core JIRA Tools
Tool | Description | Parameters | Returns |
| Retrieves all issues assigned to you | None | Markdown-formatted list of issues |
| Gets detailed information about a specific issue |
| Markdown-formatted issue details |
| Retrieves comments for a specific issue with configurable options | See comment parameters below | Markdown-formatted comments |
| Create new JIRA issues with comprehensive field support | See issue creation parameters | Markdown-formatted creation result |
| Update existing issues with field changes and status transitions | See issue update parameters | Markdown-formatted update result |
| Retrieve and browse JIRA projects with filtering options | See project parameters | Markdown-formatted project list |
| Get JIRA boards (Scrum/Kanban) with advanced filtering | See board parameters | Markdown-formatted board list |
| Retrieve sprint information for agile project management | See sprint parameters | Markdown-formatted sprint list |
| Add time tracking entries to issues | See worklog parameters below | Markdown-formatted worklog result |
| Retrieve worklog entries for issues with date filtering | See worklog parameters below | Markdown-formatted worklog list |
| Update existing worklog entries | See worklog parameters below | Markdown-formatted update result |
| Delete worklog entries from issues | See worklog parameters below | Markdown-formatted deletion result |
| Get current authenticated user information | None | Markdown-formatted user details |
| Search JIRA issues with JQL or helper parameters | See search parameters below | Markdown-formatted search results |
Issue Creation Parameters
The jira_create_issue tool supports comprehensive issue creation:
Required:
projectKey: String - Project key (e.g.,"PROJ")issueType: String - Issue type (e.g.,"Task","Bug","Story")summary: String - Issue title/summary
Optional Fields:
description: String - Detailed description (supports ADF format)priority: String - Priority level ("Highest","High","Medium","Low","Lowest")assignee: String - Assignee username or emailreporter: String - Reporter username or emaillabels: Array - Labels to apply to the issuecomponents: Array - Component namesfixVersions: Array - Fix version namesaffectsVersions: Array - Affected version namestimeEstimate: String - Time estimate in JIRA format (e.g.,"2h","1d 4h")dueDate: String - Due date in ISO formatenvironment: String - Environment descriptioncustomFields: Object - Custom field values
Examples:
# Basic issue creation
jira_create_issue projectKey:"PROJ" issueType:"Task" summary:"Fix login bug"
# Comprehensive issue with all fields
jira_create_issue projectKey:"PROJ" issueType:"Bug" summary:"Critical login issue" description:"Users cannot log in" priority:"High" assignee:"john.doe" labels:["urgent","security"] timeEstimate:"4h"Issue Update Parameters
The jira_update_issue tool supports comprehensive issue updates:
Required:
issueKey: String - Issue key (e.g.,"PROJ-123")
Field Updates (any combination):
summary: String - Update issue titledescription: String - Update descriptionpriority: String - Change priorityassignee: String - Reassign issuereporter: String - Change reportertimeEstimate: String - Update time estimatetimeSpent: String - Log time spentdueDate: String - Update due dateenvironment: String - Update environment
Array Operations (add/remove/set):
labels: Object - Modify labels ({operation: "add|remove|set", values: ["label1", "label2"]})components: Object - Modify componentsfixVersions: Object - Modify fix versionsaffectsVersions: Object - Modify affected versions
Status Transitions:
status: String - Transition to new status (e.g.,"In Progress","Done")
Worklog:
worklog: Object - Add work log entry ({timeSpent: "2h", comment: "Fixed issue"})
Examples:
# Update basic fields
jira_update_issue issueKey:"PROJ-123" summary:"Updated title" priority:"High"
# Add labels and transition status
jira_update_issue issueKey:"PROJ-123" labels:'{operation:"add",values:["urgent"]}' status:"In Progress"
# Log work and add comment
jira_update_issue issueKey:"PROJ-123" worklog:'{timeSpent:"2h",comment:"Completed testing"}'Project Parameters
The jira_get_projects tool supports project discovery:
Optional Parameters:
maxResults: Number (1-100, default: 50) - Limit number of resultsstartAt: Number (default: 0) - Pagination offsetexpand: Array - Additional fields to include (["description", "lead", "issueTypes", "url", "projectKeys"])
Examples:
# Get all projects
jira_get_projects
# Get projects with additional details
jira_get_projects expand:["description","lead","issueTypes"] maxResults:20Board Parameters
The jira_get_boards tool supports board management:
Optional Parameters:
maxResults: Number (1-100, default: 50) - Limit number of resultsstartAt: Number (default: 0) - Pagination offsettype: String - Board type ("scrum","kanban")name: String - Filter by board nameprojectKeyOrId: String - Filter by project
Examples:
# Get all boards
jira_get_boards
# Get Scrum boards for specific project
jira_get_boards type:"scrum" projectKeyOrId:"PROJ"
# Search boards by name
jira_get_boards name:"Sprint Board" maxResults:10Sprint Parameters
The jira_get_sprints tool supports sprint management:
Required:
boardId: Number - Board ID to get sprints from
Optional Parameters:
maxResults: Number (1-100, default: 50) - Limit number of resultsstartAt: Number (default: 0) - Pagination offsetstate: String - Sprint state ("active","closed","future")
Examples:
# Get all sprints for a board
jira_get_sprints boardId:123
# Get only active sprints
jira_get_sprints boardId:123 state:"active"
# Get sprints with pagination
jira_get_sprints boardId:123 maxResults:10 startAt:20Worklog Parameters
The worklog tools support comprehensive time tracking:
jira_add_worklog Parameters:
Required:
issueKey: String - Issue key (e.g.,"PROJ-123")timeSpent: String - Time spent in JIRA format (e.g.,"2h","1d 4h","30m")
Optional:
comment: String - Comment describing the work donestarted: String - When work started (ISO date format, defaults to now)visibility: Object - Visibility settings ({type: "group", value: "jira-developers"})
jira_get_worklogs Parameters:
Required:
issueKey: String - Issue key (e.g.,"PROJ-123")
Optional:
startedAfter: String - Filter worklogs started after this date (ISO format)startedBefore: String - Filter worklogs started before this date (ISO format)
jira_update_worklog Parameters:
Required:
issueKey: String - Issue key (e.g.,"PROJ-123")worklogId: String - Worklog ID to update
Optional (any combination):
timeSpent: String - Update time spentcomment: String - Update commentstarted: String - Update start time
jira_delete_worklog Parameters:
Required:
issueKey: String - Issue key (e.g.,"PROJ-123")worklogId: String - Worklog ID to delete
Examples:
# Add worklog entry
jira_add_worklog issueKey:"PROJ-123" timeSpent:"2h" comment:"Fixed authentication bug"
# Get all worklogs for an issue
jira_get_worklogs issueKey:"PROJ-123"
# Get worklogs from last week
jira_get_worklogs issueKey:"PROJ-123" startedAfter:"2025-05-29T00:00:00.000Z"
# Update worklog
jira_update_worklog issueKey:"PROJ-123" worklogId:"12345" timeSpent:"3h" comment:"Updated work description"
# Delete worklog
jira_delete_worklog issueKey:"PROJ-123" worklogId:"12345"Comment Parameters
The jira_get_issue_comments tool supports progressive disclosure with these parameters:
Required:
issueKey: String - Issue key (e.g.,"PROJ-123")
Basic Options:
maxComments: Number (1-100, default: 10) - Maximum number of comments to retrieveorderBy: String ("created"or"updated", default:"created") - Sort order for comments
Advanced Options:
includeInternal: Boolean (default: false) - Include internal/restricted commentsauthorFilter: String - Filter comments by author name or emaildateRange: Object - Filter by date range:from: String (ISO date) - Start dateto: String (ISO date) - End date
Examples:
# Basic usage - get 10 most recent comments
jira_get_issue_comments PROJ-123
# Get more comments with specific ordering
jira_get_issue_comments PROJ-123 maxComments:25 orderBy:"updated"
# Advanced filtering
jira_get_issue_comments PROJ-123 authorFilter:"john.doe" includeInternal:trueSearch Parameters
The search_jira_issues tool supports two modes:
Expert Mode (JQL):
jql: Direct JQL query string (e.g.,"project = PROJ AND status = Open")
Beginner Mode (Helper Parameters):
assignedToMe: Boolean - Show only issues assigned to current userproject: String - Filter by project keystatus: String or Array - Filter by status(es) (e.g.,"Open"or["Open", "In Progress"])text: String - Search in summary and description fields
Common Options:
maxResults: Number (1-50, default: 25) - Limit number of resultsfields: Array - Specify which fields to retrieve (optional)
๐ ๏ธ Development Tools
Code Quality Tools
The project uses Biome for code formatting and linting, providing:
Fast, unified formatting and linting
TypeScript-first tooling
Zero configuration needed
Consistent code style enforcement
# Format code
bun run format
# Check code for issues
bun run check
# Type check
bun run typecheck
# Run tests
bun testMCP Inspector
The MCP Inspector is a powerful tool for testing and debugging your MCP server.
# Run the inspector (no separate build step needed)
bun run inspectThe inspector automatically:
Loads environment variables from
.envCleans up occupied ports (5175, 3002)
Builds the project when needed
Starts the MCP server with your configuration
Launches the inspector UI
Visit the inspector at http://localhost:5175?proxyPort=3002
If you encounter port conflicts:
bun run cleanup-portsDebugging with the Inspector
The inspector UI allows you to:
View all available MCP capabilities
Execute tools and examine responses
Analyze the JSON communication
Test with different parameters
For more details, see the MCP Inspector GitHub repository.
Integration with Claude Desktop
Test your MCP server directly with Claude:
Build:
bun run build # You must build the project before running itConfigure Claude Desktop:
nano ~/Library/Application\ Support/Claude/claude_desktop_config.jsonAdd the MCP configuration:
{ "mcpServers": { "JIRA Tools": { "command": "node", "args": ["/absolute/path/to/your/project/dist/index.js"], "env": { "JIRA_USERNAME": "your-jira-username", "JIRA_API_TOKEN": "your-jira-api-token", "JIRA_HOST": "your-jira-host.atlassian.net" } } } }Restart Claude Desktop and test with:
Show me my assigned JIRA issues.
๐ Integration with Cursor IDE
โ ๏ธ Important: You must build the project with
bun run buildbefore integrating with Cursor IDE or Claude Desktop.
Add this MCP server to your Cursor IDE's MCP configuration:
{
"mcpServers": {
"JIRA Tools": {
"command": "node",
"args": ["/absolute/path/to/your/project/dist/index.js"],
"env": {
"JIRA_USERNAME": "your-jira-username",
"JIRA_API_TOKEN": "your-jira-api-token",
"JIRA_HOST": "your-jira-host.atlassian.net"
}
}
}
}๐ Project Structure
src/
โโโ core/ # Core functionality and configurations
โ โโโ errors/ # Error handling utilities
โ โโโ logging/ # Logging infrastructure
โ โโโ responses/ # Response formatting
โ โโโ server/ # MCP server implementation
โ โโโ tools/ # Base tool interfaces
โ โโโ utils/ # Core utilities
โโโ features/ # Feature implementations
โ โโโ jira/ # JIRA API integration
โ โโโ api/ # JIRA API client
โ โโโ formatters/ # Response formatters
โ โโโ tools/ # MCP tool implementations
โ โโโ utils/ # JIRA-specific utilities
โโโ test/ # Test utilities and mocks
โโโ mocks/ # Mock factories
โโโ utils/ # Test helpersNPM Scripts
Command | Description |
| Run the server in development mode with hot reload |
| Build the project for production |
| Start the production server |
| Format code using Biome |
| Lint code using Biome |
| Run Biome checks on code |
| Run TypeScript type checking |
| Run tests |
| Start the MCP Inspector for debugging |
| Clean up ports used by the development server |
๐ Contributing
We welcome contributions! Please see our Contributing Guide for details on:
Development workflow
Branching strategy
Commit message format
Pull request process
Code style guidelines
๐ Resources
๐ License
MIT ยฉ Stanislav Stepanenko
Available Tools
14 toolsjira_add_worklogC
Add a worklog entry to track time spent on an issue
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | ||
| timeSpent | Yes | ||
| comment | No | ||
| started | No | ||
| visibility | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool adds a worklog but doesn't cover critical aspects like required permissions, whether it's a write operation (implied but not explicit), potential side effects (e.g., updating issue time estimates), error conditions, or response format. This leaves significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and efficiently communicates the core function, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 5 parameters, 0% schema coverage, no annotations, and no output schema, the description is insufficient. It lacks details on behavior, parameters, usage context, and expected outcomes, leaving too many unknowns for effective tool invocation by an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter descriptions. The description adds no parameter semantics beyond implying 'issueKey' and 'timeSpent' are involved. It doesn't explain what 'timeSpent' format entails, the purpose of 'comment' or 'visibility', or how 'started' relates to the worklog, failing to compensate for the coverage 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?
The description clearly states the action ('add a worklog entry') and resource ('to an issue'), which is specific and unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'jira_update_worklog' or 'jira_delete_worklog', which would require mentioning creation vs. modification/deletion of worklogs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing issue), compare to siblings like 'jira_update_worklog' for editing worklogs, or specify scenarios where adding a worklog is appropriate versus other time-tracking methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_create_issueC
Creates a new JIRA issue with specified parameters
| Name | Required | Description | Default |
|---|---|---|---|
| projectKey | Yes | ||
| summary | Yes | ||
| issueType | Yes | ||
| description | No | ||
| priority | No | ||
| assignee | No | ||
| labels | No | ||
| components | No | ||
| fixVersions | No | ||
| parentIssueKey | No | ||
| timeEstimate | No | ||
| environment | No | ||
| storyPoints | No | ||
| customFields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'creates' which implies a write operation, but provides no information about authentication requirements, rate limits, side effects, error conditions, or what happens upon successful creation. This is inadequate for a mutation tool with 14 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just 7 words. It's front-loaded with the core action and contains no unnecessary words. While it may be too brief for adequate functionality description, it earns full marks for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (14 parameters, no annotations, no output schema, 0% schema description coverage), the description is completely inadequate. It doesn't explain what the tool returns, how to handle errors, what permissions are needed, or provide any context about the parameters. For a creation tool in a complex system like JIRA, this leaves the agent with insufficient information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, meaning none of the 14 parameters have documentation in the schema. The description adds no semantic information about any parameters beyond the generic 'specified parameters' phrase. For a complex tool with many parameters including arrays, objects, and specific patterns, this is a critical 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?
The description clearly states the verb ('creates') and resource ('new JIRA issue'), making the purpose immediately understandable. It distinguishes from siblings like 'jira_update_issue' by specifying creation rather than modification. However, it doesn't explicitly differentiate from other potential creation tools that might exist in a broader context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, when to choose this over other issue management tools, or any contextual constraints. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_delete_worklogC
Delete a worklog entry from an issue
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | ||
| worklogId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'Delete' implies a destructive mutation, the description doesn't specify whether this requires special permissions, if deletions are permanent/reversible, what happens to associated data, or any rate limits/constraints. For a destructive operation with zero annotation coverage, this represents a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core functionality without unnecessary words. It's appropriately sized for a simple operation and front-loads the essential information, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation tool with no annotations, 2 required parameters (0% schema coverage), and no output schema, the description is inadequate. It should explain parameter meanings, permissions required, consequences of deletion, and what to expect upon success/failure. The current description leaves too many critical questions unanswered for safe and effective tool 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%, meaning neither parameter has documentation in the schema. The description provides no information about what 'issueKey' or 'worklogId' represent, their format requirements, or where to obtain these values. For a tool with 2 required parameters and no schema documentation, the description fails to compensate for this 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?
The description clearly states the action ('Delete') and target resource ('a worklog entry from an issue'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'jira_update_worklog' or 'jira_get_worklogs', which would require more specific language about the destructive nature of this operation versus those 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?
The description provides no guidance on when to use this tool versus alternatives like 'jira_update_worklog' for modifying worklogs or 'jira_get_worklogs' for viewing them. There's no mention of prerequisites, permissions required, or scenarios where deletion is appropriate versus modification, leaving the agent with insufficient context for proper tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_get_assigned_issuesB
Retrieves all JIRA issues assigned to the current user
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves issues but lacks details on permissions required, rate limits, pagination behavior, or response format. This is a significant gap for a tool that likely interacts with an external API and returns data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without any fluff or redundancy. It's front-loaded with the core action and resource, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of JIRA API interactions and the lack of annotations and output schema, the description is incomplete. It doesn't cover behavioral aspects like authentication needs, error handling, or what the return data looks like (e.g., issue fields included), leaving gaps for effective tool use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, and the baseline for this scenario is 4, as it avoids unnecessary repetition while being complete for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('retrieves') and resource ('all JIRA issues assigned to the current user'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'jira_get_issue' (which gets a specific issue) or 'search_jira_issues' (which allows broader filtering), missing full 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 provides no guidance on when to use this tool versus alternatives. It doesn't mention when this is appropriate (e.g., for personal task tracking) versus when to use 'search_jira_issues' for more complex queries or 'jira_get_issue' for specific issues, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_get_boardsC
Get all accessible JIRA boards with filtering by type, project, and name
| Name | Required | Description | Default |
|---|---|---|---|
| startAt | No | ||
| maxResults | No | ||
| type | No | ||
| name | No | ||
| projectKeyOrId | No | ||
| accountIdLocation | No | ||
| projectLocation | No | ||
| includePrivate | No | ||
| negateLocationFiltering | No | ||
| orderBy | No | ||
| expand | No | ||
| filterId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves data ('Get'), implying a read-only operation, but lacks details on permissions, rate limits, pagination (implied by parameters like 'startAt' and 'maxResults'), or error handling, which are critical for a tool with 12 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose and key filtering options without unnecessary words. Every part earns its place, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high complexity (12 parameters, no annotations, no output schema), the description is incomplete. It lacks behavioral context, detailed parameter guidance, and output information, making it inadequate for an agent to use the tool effectively without additional inference or trial-and-error.
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 mentions filtering by 'type, project, and name', which covers only 3 of the 12 parameters, leaving others like 'startAt', 'maxResults', 'expand', and 'filterId' unexplained. This partial coverage is insufficient for such a complex parameter 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?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('all accessible JIRA boards'), and mentions filtering capabilities. It distinguishes itself from siblings like 'jira_get_projects' or 'jira_get_sprints' by focusing on boards, though it doesn't explicitly contrast 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?
No guidance is provided on when to use this tool versus alternatives. The description mentions filtering but doesn't specify scenarios, prerequisites, or exclusions, leaving the agent to infer usage from the tool name and context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_get_current_userB
Get current user profile information and permissions
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but lacks details on authentication requirements, rate limits, error handling, or response format. For a tool that likely requires user context, this is insufficient, though it doesn't contradict any annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that directly states the tool's purpose without any fluff. It is front-loaded and efficiently communicates the core function, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 0 parameters, no annotations, and no output schema, the description is minimally adequate by stating what it retrieves. However, it lacks details on the return value structure or behavioral aspects, leaving gaps for an agent to understand full usage. It meets the basic requirement but could be more informative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, earning a baseline of 4 for not adding unnecessary information. It doesn't reach 5 as it could have mentioned implicit context like authentication.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'current user profile information and permissions', making the purpose specific and understandable. It distinguishes from siblings like jira_get_assigned_issues or jira_get_projects by focusing on user-specific data. However, it doesn't explicitly contrast with all siblings, keeping it at 4 instead of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention scenarios like checking user permissions before performing actions with other tools (e.g., jira_create_issue) or prerequisites. This lack of context leaves the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_get_issueC
Retrieves detailed information about a specific JIRA issue
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'retrieves' implies a read-only operation, it doesn't specify authentication requirements, rate limits, error conditions, or what 'detailed information' includes (e.g., fields returned, format). This leaves significant gaps for a tool that likely interacts with an external API.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point with no wasted words. It's appropriately sized for a simple retrieval tool and front-loads the core functionality.
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 tool with no annotations, no output schema, and minimal parameter documentation, the description is insufficient. It doesn't explain what 'detailed information' includes, how results are structured, or any behavioral constraints. Given the complexity of JIRA issues and the lack of structured documentation, this leaves too many unknowns for effective tool use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions 'a specific JIRA issue' which implies the issueKey parameter identifies which issue to retrieve, but doesn't explain the parameter's format or semantics beyond what the schema's pattern already provides. With 0% schema description coverage, the description adds minimal value 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?
The description clearly states the action ('retrieves detailed information') and target resource ('a specific JIRA issue'), making the purpose immediately understandable. It distinguishes this tool from siblings like jira_create_issue (creation) and jira_update_issue (modification), though it doesn't explicitly differentiate from jira_get_issue_comments which retrieves only comments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like jira_get_assigned_issues (for user-specific issues) or search_jira_issues (for broader queries). It simply states what the tool does without context about appropriate use cases or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_get_issue_commentsC
Retrieves comments for a specific JIRA issue with configurable quantity and filtering options
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | ||
| maxComments | No | ||
| includeInternal | No | ||
| orderBy | No | created | |
| authorFilter | No | ||
| dateRange | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'configurable quantity and filtering options,' which hints at customization but doesn't describe what the tool returns (e.g., comment objects, pagination, error handling), authentication needs, rate limits, or side effects. For a read operation with 6 parameters, this leaves significant gaps in understanding how the tool behaves beyond basic functionality.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('retrieves comments for a specific JIRA issue') and adds useful context ('with configurable quantity and filtering options'). There is no wasted verbiage or redundancy, making it highly concise and well-structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 parameters, nested object, no output schema, and no annotations), the description is incomplete. It doesn't explain return values, error conditions, or behavioral details like pagination or authentication. For a tool with rich filtering options and no structured output documentation, this leaves the agent with insufficient context to use it effectively beyond basic 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. It mentions 'configurable quantity and filtering options,' which loosely maps to parameters like maxComments, authorFilter, and dateRange, but doesn't explain what each parameter does, their formats, or constraints. With 6 parameters (including a nested object), this adds minimal value beyond the schema, failing to clarify semantics like what 'includeInternal' means or how 'orderBy' affects results.
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 ('retrieves') and resource ('comments for a specific JIRA issue'), making the purpose immediately understandable. It distinguishes from siblings like jira_get_issue (which gets issue details) and jira_get_worklogs (which gets worklogs). However, it doesn't explicitly contrast with jira_get_assigned_issues or search_jira_issues, which are about issues rather than comments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an issue key), nor does it differentiate from potential overlapping tools like jira_get_issue (which might include comments) or search_jira_issues (which might search comments). Usage is implied by the purpose but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_get_projectsC
Get all accessible JIRA projects with filtering and search capabilities
| Name | Required | Description | Default |
|---|---|---|---|
| expand | No | ||
| recent | No | ||
| properties | No | ||
| maxResults | No | ||
| startAt | No | ||
| typeKey | No | ||
| categoryId | No | ||
| searchQuery | No | ||
| orderBy | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool retrieves projects with filtering/search, but lacks critical details such as authentication requirements, rate limits, pagination behavior (implied by 'maxResults' and 'startAt' but not explained), or what 'accessible' means in terms of permissions. This leaves significant gaps for a tool with 9 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Get all accessible JIRA projects') and adds key capabilities ('with filtering and search capabilities'). There is no wasted verbiage, making it appropriately concise for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, no annotations, no output schema), the description is incomplete. It lacks necessary context such as authentication needs, rate limits, pagination details, error handling, and what 'accessible' entails. Without annotations or output schema, the description should provide more behavioral and operational guidance to be fully helpful.
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 by explaining parameters. It only vaguely mentions 'filtering and search capabilities' without detailing what parameters exist or their purposes (e.g., 'expand' for additional data, 'typeKey' for project types). This fails to add meaningful semantics beyond the bare schema, leaving most parameters 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?
The description clearly states the verb ('Get') and resource ('JIRA projects') with scope ('all accessible'), which provides a specific purpose. However, it doesn't explicitly differentiate from sibling tools like 'jira_get_boards' or 'jira_get_sprints' that also retrieve JIRA data, missing full 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 mentions 'filtering and search capabilities' which implies usage for retrieving projects with specific criteria, but it provides no explicit guidance on when to use this tool versus alternatives like 'jira_get_boards' for board-related data or 'search_jira_issues' for issue searches. No when-not-to-use or prerequisite information is included.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_get_sprintsC
Get all sprints for a specific JIRA board with filtering by state
| Name | Required | Description | Default |
|---|---|---|---|
| boardId | Yes | ||
| startAt | No | ||
| maxResults | No | ||
| state | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions filtering by state, which is useful, but fails to disclose critical behaviors: pagination details (implied by startAt/maxResults but not explained), whether it returns partial/full sprint data, rate limits, authentication needs, or error conditions. For a read operation with 4 parameters, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. Every word earns its placeโno redundancy or fluff. It's appropriately sized for a straightforward retrieval 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?
Given 4 parameters with 0% schema coverage, no annotations, and no output schema, the description is incomplete. It doesn't explain return values (sprint structure), pagination behavior, error handling, or dependencies. For a tool with filtering and pagination, more context is needed to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions filtering by state (mapping to the 'state' parameter) and implies board targeting (mapping to 'boardId'), but doesn't explain the other two parameters (startAt, maxResults) or provide format/constraint details. It adds some meaning but leaves significant gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'all sprints for a specific JIRA board', which is specific and actionable. It distinguishes from siblings like 'jira_get_boards' by focusing on sprints rather than boards, but doesn't explicitly differentiate from other sprint-related tools (none exist in the sibling list).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing board access), exclusions, or relationships to sibling tools like 'jira_get_boards' (which might be needed first to obtain board IDs). Usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_get_worklogsC
Get all worklog entries for a specific issue
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | ||
| startAt | No | ||
| maxResults | No | ||
| startedAfter | No | ||
| startedBefore | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It implies a read-only operation ('Get') but doesn't disclose pagination behavior (via startAt/maxResults), authentication needs, rate limits, error conditions, or return format. For a tool with 5 parameters and no output schema, this is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core purpose, making it easy to parse quickly, though this brevity contributes to gaps in other dimensions.
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 5 parameters, 0% schema coverage, no annotations, and no output schema, the description is incomplete. It covers the basic action but misses critical details like parameter meanings, behavioral traits, and output structure, which are essential for effective tool use in this context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate but adds no parameter information. It mentions 'specific issue' which hints at the 'issueKey' parameter, but ignores the other 4 parameters (startAt, maxResults, startedAfter, startedBefore) that control pagination and date filtering, leaving them 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?
The description clearly states the verb ('Get') and resource ('all worklog entries for a specific issue'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'jira_get_issue' or 'jira_get_issue_comments' which also retrieve issue-related data, missing an opportunity for full 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 provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing issue access), compare to siblings like 'jira_get_issue' (which might include worklogs), or specify use cases like time tracking analysis, leaving the agent with minimal context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_update_issueC
Updates an existing JIRA issue with field changes, status transitions, and worklog entries
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | ||
| summary | No | ||
| description | No | ||
| priority | No | ||
| assignee | No | ||
| labels | No | ||
| components | No | ||
| transition | No | ||
| notifyUsers | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'Updates' which implies mutation, but lacks critical behavioral details: required permissions, whether changes are reversible, error handling, or response format. The mention of 'worklog entries' hints at additional functionality but doesn't explain how it interacts with sibling tools like jira_add_worklog.
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?
Single sentence, front-loaded with core purpose. Efficiently lists three capability areas without redundancy. Could be slightly improved by structuring into bullet points for clarity, but overall well-sized with zero waste.
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?
Incomplete for a complex mutation tool with 9 parameters, nested objects, and no annotations or output schema. The description lacks details on permissions, error cases, return values, and parameter dependencies. Given the rich input schema and sibling tools, it should provide more context to guide proper usage.
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 lists 'field changes, status transitions, and worklog entries' which partially maps to parameters like summary, description, priority, assignee, labels, components, and transition. However, it omits key parameters (issueKey, notifyUsers) and doesn't explain parameter interactions or semantics (e.g., how labels/operations work).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Updates') and resource ('an existing JIRA issue') with specific capabilities ('field changes, status transitions, and worklog entries'). It distinguishes from siblings like jira_create_issue (creates new) and jira_update_worklog (updates only worklogs), though it doesn't explicitly mention these distinctions.
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 tool versus alternatives like jira_update_worklog or jira_create_issue. The description implies usage for updating existing issues but doesn't specify prerequisites (e.g., issue must exist) or exclusions (e.g., cannot create new issues).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_update_worklogC
Update an existing worklog entry
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | ||
| worklogId | Yes | ||
| timeSpent | No | ||
| comment | No | ||
| started | No | ||
| visibility | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states this is an update operation (implying mutation), but doesn't mention required permissions, whether changes are reversible, rate limits, or what happens to unspecified fields. For a mutation tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single clear sentence that front-loads the essential action. There's no wasted language or unnecessary elaboration, making it efficient for quick understanding.
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 6 parameters (including nested objects), 0% schema description coverage, no annotations, and no output schema, the description is inadequate. It doesn't compensate for the missing structured information about behavior, parameters, or return values, leaving the agent with insufficient context for proper tool 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?
With 0% schema description coverage for all 6 parameters, the description provides no additional semantic context about what each parameter means or how they interact. It doesn't explain what 'worklogId' identifies, the format of 'timeSpent', what 'visibility' controls, or which fields are optional versus required beyond the schema's technical requirements.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and resource ('an existing worklog entry'), making the purpose immediately understandable. It distinguishes this from sibling tools like 'jira_add_worklog' (create new) and 'jira_delete_worklog' (remove), but doesn't explicitly mention these distinctions in the description itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., needing an existing worklog), compare it to 'jira_add_worklog' for new entries, or specify appropriate contexts for updating versus other operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_jira_issuesB
Search JIRA issues using JQL queries or helper parameters. Supports both expert JQL and beginner-friendly filters.
| Name | Required | Description | Default |
|---|---|---|---|
| jql | No | ||
| assignedToMe | No | ||
| project | No | ||
| status | No | ||
| text | No | ||
| maxResults | No | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool 'supports both expert JQL and beginner-friendly filters,' which adds some context about flexibility. However, it lacks critical behavioral details such as whether this is a read-only operation, potential rate limits, authentication requirements, pagination behavior (implied by 'maxResults' but not explained), or what the output format looks like.
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 appropriately sized and front-loaded with the core purpose in the first clause. Both sentences earn their place by explaining the search methods and user expertise levels, with zero wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, no annotations, no output schema), the description is incomplete. It fails to explain parameter meanings, output structure, behavioral constraints, or differentiation from siblings. For a search tool with multiple input options and no structured guidance, this leaves significant gaps for an AI agent to understand and use 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 for all 7 parameters. The description only generically mentions 'JQL queries or helper parameters' without explaining what specific parameters are available (e.g., 'assignedToMe', 'project', 'status', 'text', 'maxResults', 'fields') or their semantics. This leaves most parameters undocumented and unclear in purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search JIRA issues using JQL queries or helper parameters.' It specifies the verb ('search'), resource ('JIRA issues'), and two search methods. However, it doesn't explicitly differentiate from sibling tools like 'jira_get_assigned_issues' or 'jira_get_issue', which are more specific retrieval tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by mentioning 'expert JQL and beginner-friendly filters,' suggesting this tool is versatile for different user expertise levels. However, it provides no explicit guidance on when to use this versus alternatives like 'jira_get_assigned_issues' or 'jira_get_issue', nor does it mention prerequisites or exclusions.
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.
14 tool updates
- First observed
jira_add_worklog - First observed
jira_create_issue - First observed
jira_delete_worklog - First observed
jira_get_assigned_issues - First observed
jira_get_boards - First observed
jira_get_current_user - First observed
jira_get_issue - First observed
jira_get_issue_comments - First observed
jira_get_projects - First observed
jira_get_sprints - First observed
jira_get_worklogs - First observed
jira_update_issue - First observed
jira_update_worklog - First observed
search_jira_issues
TDQS
Scored across 14 tools
Every tool has a clearly distinct purpose targeting specific JIRA resources and actions. For example, jira_get_issue retrieves a single issue, jira_get_assigned_issues gets user-assigned issues, and search_jira_issues handles complex queries, with no overlap that would cause confusion. The worklog tools (add, delete, get, update) are similarly well-differentiated.
All tools follow a consistent jira_verb_noun naming pattern throughout, such as jira_create_issue, jira_get_projects, and jira_update_worklog. This uniformity makes the tool set predictable and easy to navigate, with no deviations in style or structure.
With 14 tools, the server is well-scoped for JIRA operations, covering core areas like issues, projects, boards, sprints, worklogs, and user management. Each tool earns its place by addressing a specific need without bloat, typical for a domain-specific server.
The tool set provides strong coverage for JIRA's core workflows, including CRUD for issues and worklogs, project/board/sprint management, and search capabilities. Minor gaps exist, such as no tools for managing comments (only retrieving them) or handling attachments, but agents can work around these with the available tools.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yoโฆ
- JamOAuthdev.jam.mcp
The Jam MCP server provides AI tools with instant bug context without manual prompting, enabling a streamlined workflow from bug identification to ticket creation and pull request generation without switching between tools.
Enable secure connectivity between Sentry issues and debugging data, and LLM clients, using a Model Context Protocol (MCP) server.
The Figma MCP server brings Figma design context directly into your AI workflow.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceModel Context Protocol (MCP) server for Atlassian Cloud products (Confluence and Jira). This integration is designed specifically for Atlassian Cloud instances and does not support Atlassian Server or Data Center deployments.5,917MIT
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables seamless integration between Cursor IDE and JIRA, allowing users to retrieve issues, execute JQL searches, and log work through natural language interactions.-
- AlicenseBqualityCmaintenanceA Model Context Protocol server that provides integration with Jira, allowing Large Language Models to interact with Jira projects, boards, sprints, and issues through natural language.530 npm3MIT
- FlicenseAqualityDmaintenanceA Model Context Protocol (MCP) server that provides tools for interacting with Jira. Enables Cursor and other MCP clients to fetch tickets, manage linked tickets, and update ticket status.3-