raalarcon-jira-mcp-server
Provides comprehensive integration with Atlassian's Jira Cloud platform, including authentication, project management, issue tracking, and Confluence wiki access through a unified MCP server.
Provides tools for accessing Confluence pages by URL identifier with HTML to text conversion, enabling AI agents to retrieve and work with Confluence wiki content.
Provides tools for interacting with Jira's API, enabling AI agents to manage projects, issues, comments, transitions, users, sprints, and perform CRUD operations on Jira issues and related data.
Jira MCP Server
The most complete open source Model Context Protocol (MCP) server for Jira & Atlassian. Connect any MCP-compatible AI client to your Jira instance in seconds — manage issues, sprints, comments, transitions, users, and Confluence pages without leaving your AI assistant.
{
"mcpServers": {
"jira": {
"command": "npx",
"args": ["-y", "raalarcon-jira-mcp-server"],
"env": {
"JIRA_HOST": "https://your-domain.atlassian.net",
"JIRA_EMAIL": "your-email@example.com",
"JIRA_API_TOKEN": "your-api-token"
}
}
}
}Compatible AI Clients
Client | Supported |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
Any MCP-compatible client | ✅ |
Find This Server On
MCP Market — MCP server marketplace
MCP Servers — Awesome MCP Servers directory
Claude Marketplaces — Claude plugins & MCP directory
npm —
npx raalarcon-jira-mcp-server
Features
✅ Project Management: List projects and issue types
✅ Issue CRUD: Create, read, update and delete issues
✅ Comments: Create, read, update and delete comments with enhanced pagination
✅ Transitions: Move issues between states
✅ Assignments: Assign issues to users
✅ User Management: Search and manage users
✅ Sprint Management: Complete agile sprint lifecycle management
✅ Wiki Integration: Access Confluence pages by URL identifier with HTML to text conversion
✅ Rich Text Support: Markdown to ADF conversion for formatted descriptions and comments
✅ Validation: Yup schema validation
✅ Authentication: Full Jira Cloud support
✅ Optimized Responses: Token-efficient field filtering
✅ Type Safety: Full TypeScript support
Related MCP server: atlassian-mcp-server
Installation
Option 1: Using npx (Recommended)
The easiest way to use this MCP server is with npx:
Configure your MCP client (e.g., Claude Desktop) with this configuration:
{
"mcpServers": {
"jira": {
"command": "npx",
"args": ["-y", "raalarcon-jira-mcp-server"],
"env": {
"JIRA_HOST": "https://your-domain.atlassian.net",
"JIRA_EMAIL": "your-email@example.com",
"JIRA_API_TOKEN": "your-api-token"
}
}
}
}Get your Jira API token (see instructions below)
That's it! The server will be automatically downloaded and run when needed.
Option 2: Local Development
Clone the repository:
git clone https://github.com/raalarcon9705/jira-mcp.git
cd jira-mcpInstall dependencies:
npm installBuild the project:
npm run buildConfigure your MCP client with the full path to the built server:
{
"mcpServers": {
"jira": {
"command": "node",
"args": ["/full/path/to/jira-mcp/dist/index.js"],
"env": {
"JIRA_HOST": "https://your-domain.atlassian.net",
"JIRA_EMAIL": "your-email@example.com",
"JIRA_API_TOKEN": "your-api-token"
}
}
}
}Note: Replace /full/path/to/jira-mcp/ with the actual absolute path to your project directory.
Getting API Token
Click "Create API token"
Give it a descriptive name
Copy the generated token
Usage
Using with npx (Recommended)
Once configured in your MCP client, the server will automatically start when needed. No additional setup required!
Rich Text Support with Markdown
The server now supports automatic Markdown to ADF conversion for issue descriptions and comments. Simply use Markdown syntax and it will be automatically converted to Atlassian Document Format (ADF).
Supported Markdown Elements
Headers:
# H1,## H2,### H3Text formatting:
**bold**,*italic*Code:
`inline code`andcode blocksLists:
- bullet listsand1. numbered listsLinks:
[text](url)Blockquotes:
> quoted textCheckboxes:
- [x] completed task
Example Usage
// Create issue with Markdown description
create_issue({
projectKey: 'PROJ',
summary: 'Bug Report',
description: `# Bug Report
## Description
This is a **critical** bug affecting the login system.
## Steps to Reproduce
1. Go to login page
2. Enter invalid credentials
3. Click login button
## Code Example
\`\`\`javascript
function login(username, password) {
return authenticate(username, password);
}
\`\`\`
> **Note**: This bug was reported by multiple users.`,
});
// Create comment with Markdown
create_comment({
issueKey: 'PROJ-123',
body: `## Update
**Status**: Fixed ✅
- [x] Identified root cause
- [x] Implemented fix
- [x] Tested solution
The issue has been resolved.`,
});Development
npm run devProduction
npm run build
npm startTesting with npx
You can also test the server directly with npx:
# Test the server
npx raalarcon-jira-mcp-server
# Or use with MCP Inspector
npx @modelcontextprotocol/inspector
# Then configure: command: "npx", args: ["-y", "raalarcon-jira-mcp-server"]Available Tools
Projects
get_projects
Retrieves all projects accessible to the authenticated user.
Parameters:
expand(optional): Additional data to includerecent(optional): Number of recent projects (0-20)
Response: Array of projects with essential fields:
[
{
"key": "PROJ",
"name": "Project Name",
"id": "10001",
"projectTypeKey": "software"
}
]get_issue_types
Gets all available issue types for a specific project.
Parameters:
projectKey(required): Project key
Response: Array of issue types with essential fields:
[
{
"id": "10002",
"name": "Task",
"desc": "A small, independent piece of work",
"subtask": false,
"level": 0
}
]Issues
create_issue
Creates a new issue in Jira.
Parameters:
projectKey(required): Project keysummary(required): Issue summaryissueType(required): Issue type (Bug, Story, Task, etc.)description(optional): Issue descriptionpriority(optional): Priority (Highest, High, Medium, Low, Lowest)assignee(optional): Assignee account IDlabels(optional): Array of labelscomponents(optional): Array of componentsfixVersions(optional): Array of fix versionscustomFields(optional): Custom field values
Response: Issue PROJ-123 created successfully
get_issue
Gets details of a specific issue (custom fields removed for token efficiency).
Parameters:
issueKey(required): Issue key (e.g., PROJ-123)expand(optional): Additional informationfields(optional): Specific fields to return
Response: Complete issue object with custom fields filtered out
update_issue
Updates an existing issue.
Parameters:
issueKey(required): Issue key to updatesummary(optional): New summarydescription(optional): New descriptionpriority(optional): New priorityassignee(optional): New assigneelabels(optional): New labelscomponents(optional): New componentsfixVersions(optional): New fix versionscustomFields(optional): Custom fields
Response: Issue PROJ-123 updated successfully
delete_issue
Deletes an issue.
Parameters:
issueKey(required): Issue key to deletedeleteSubtasks(optional): Delete subtasks too (default: false)
Response: Issue PROJ-123 deleted successfully
Comments
create_comment
Adds a comment to an issue.
Parameters:
issueKey(required): Issue keybody(required): Comment text (supports ADF format)visibility(optional): Visibility settings
Response: Comment 12345 created successfully
get_comments
Gets all comments for an issue.
Parameters:
issueKey(required): Issue keystartAt(optional): Start index (default: 0)maxResults(optional): Max comments (1-100, default: 50)
Response: Optimized comment structure:
{
"total": 5,
"start": 0,
"max": 50,
"items": [
{
"id": "12345",
"author": "John Doe",
"authorId": "account-id",
"created": "2025-01-01T10:00:00.000Z",
"text": "Comment text content"
}
]
}update_comment
Updates an existing comment.
Parameters:
issueKey(required): Issue keycommentId(required): Comment IDbody(required): New comment textvisibility(optional): New visibility settings
Response: Comment 12345 updated successfully
delete_comment
Deletes a comment.
Parameters:
issueKey(required): Issue keycommentId(required): Comment ID
Response: Comment 12345 deleted successfully
Transitions
get_transitions
Gets available transitions for an issue.
Parameters:
issueKey(required): Issue key
Response: Array of transitions with essential fields:
[
{
"id": "21",
"name": "In Progress",
"desc": "The assignee is currently working on this activity",
"toName": "In Progress",
"toId": "3",
"available": true,
"category": "In Progress"
}
]transition_issue
Moves an issue to a different state.
Parameters:
issueKey(required): Issue keytransitionId(required): Transition IDcomment(optional): Comment to add during transitionfields(optional): Additional fields to update
Response: Issue PROJ-123 transitioned successfully
Assignments
assign_issue
Assigns an issue to a user.
Parameters:
issueKey(required): Issue keyassignee(required): User account ID
Response: Issue PROJ-123 assigned successfully
get_users
Searches for users in Jira.
Parameters:
query(optional): Search query by name or emailprojectKey(optional): Filter by project accessmaxResults(optional): Max users (1-100, default: 50)
Response: Array of users with essential fields:
[
{
"id": "account-id",
"name": "John Doe",
"email": "john@example.com",
"active": true,
"type": "atlassian"
}
]get_current_user
Gets information about the current authenticated user.
Response: Current user with essential fields:
{
"id": "account-id",
"name": "Current User",
"email": "user@example.com",
"active": true,
"timezone": "America/New_York",
"type": "atlassian"
}Sprint Management
get_agile_boards
Gets all agile boards available in the Jira instance. Required to find board IDs for sprint operations.
Parameters:
projectKey(optional): Filter boards by projectboardType(optional): Filter by type (scrum, kanban)
Response: Array of boards with essential fields:
[
{
"id": 191,
"name": "DreamStar Board",
"type": "scrum",
"projectKey": "DRMSTR",
"projectName": "DreamStar"
}
]get_sprints
Gets all sprints for a specific board. Returns sprint information including ID, name, state, and dates.
Parameters:
boardId(required): The ID of the board to get sprints fromstate(optional): Filter sprints by state (active, closed, future)
Response: Array of sprints with essential fields:
[
{
"id": 387,
"name": "DRMSTR Sprint 1",
"state": "active",
"startDate": "2025-09-15T14:05:37.511Z",
"endDate": "2025-09-26T05:00:00.000Z",
"goal": ""
}
]create_sprint
Creates a new sprint. Sprint name and origin board ID are required. Start date, end date, and goal are optional.
Parameters:
name(required): Name of the sprint to createoriginBoardId(required): ID of the board where the sprint will be createdstartDate(optional): Start date of the sprint (ISO 8601 format)endDate(optional): End date of the sprint (ISO 8601 format)goal(optional): Goal or objective of the sprint
Response: Created sprint with essential fields:
{
"id": 421,
"name": "DRMSTR Sprint 3",
"state": "future",
"goal": ""
}update_sprint
Updates sprint information (name, dates, goal, state). Only provided fields will be updated. For closed sprints, only name and goal can be updated.
Parameters:
sprintId(required): ID of the sprint to updatename(optional): New name for the sprintstartDate(optional): New start date (ISO 8601 format)endDate(optional): New end date (ISO 8601 format)goal(optional): New goal or objective for the sprintstate(optional): New state (future, active, closed)
Response: Sprint 421 updated successfully
close_sprint
Closes and completes a sprint. This action requires the sprint to be in the "active" state. Once closed, the sprint cannot be reopened.
Parameters:
sprintId(required): ID of the sprint to close
Response: Sprint 421 closed successfully
delete_sprint
Deletes a sprint. Once deleted, all open issues in the sprint will be moved to the backlog. This action is irreversible.
Parameters:
sprintId(required): ID of the sprint to delete
Response: Sprint 421 deleted successfully. All open issues moved to backlog.
move_issue_to_sprint
Moves an issue to a specific sprint. Returns a confirmation message. Issues can only be moved to open or active sprints.
Parameters:
issueKey(required): Key of the issue to move (e.g., "PROJ-123")sprintId(required): ID of the sprint to move the issue to
Response: Issue PROJ-123 moved to sprint 421 successfully
get_sprint_issues
Gets all issues for a given sprint. Returns a list of essential issue details (key, summary, status, assignee, priority).
Parameters:
sprintId(required): ID of the sprintmaxResults(optional): Maximum number of issues to return (1-100, default: 50)
Response: Array of issues with essential fields:
[
{
"key": "DRMSTR-1",
"summary": "Implement user authentication",
"status": "In Progress",
"assignee": "John Doe",
"priority": "High"
}
]Response Optimization
The server is optimized for token efficiency:
Essential Fields Only: Returns only necessary fields for each operation
Custom Fields Filtered: Automatically removes custom fields from issue responses
Short Field Names: Uses abbreviated field names (e.g.,
descinstead ofdescription)Success Messages: Clear, concise success confirmations
Structured Data: Consistent response formats across all tools
Error Handling
The server includes robust error handling with descriptive messages. Common errors include:
Authentication: Invalid or expired credentials
Permissions: Insufficient permissions for the operation
Validation: Invalid input data
Resources: Issues or projects not found
API: Rate limits or Jira server errors
Development
Project Structure
src/
├── index.ts # Main MCP server
├── jira-client.ts # Jira API client
├── schemas/
│ └── index.ts # Yup validation schemas
└── tools/
├── projects.ts # Project tools
├── issues.ts # Issue tools
├── comments.ts # Comment tools
├── transitions.ts # Transition tools
├── assignments.ts # Assignment tools
└── sprints.ts # Sprint management toolsAdding New Features
Create validation schema in
src/schemas/index.tsImplement method in
src/jira-client.tsCreate MCP tool in appropriate file in
src/tools/Register tool in
src/index.ts
Testing
Using MCP Inspector (Recommended)
Install MCP Inspector:
npm install -g @modelcontextprotocol/inspectorBuild the project:
npm run buildStart MCP Inspector:
npx @modelcontextprotocol/inspectorConfigure your server in the inspector interface:
Transport: STDIO (default)
Command:
nodeArgs:
build/index.jsEnvironment: Add your Jira credentials
Alternative Testing Methods
CLI Mode (for automation and scripting):
# List available tools
npx @modelcontextprotocol/inspector --cli node build/index.js --method tools/list
# Call a specific tool
npx @modelcontextprotocol/inspector --cli node build/index.js --method tools/call --tool-name get_projectsConfiguration File (for complex setups):
{
"mcpServers": {
"jira-server": {
"command": "node",
"args": ["build/index.js"],
"env": {
"JIRA_HOST": "https://your-domain.atlassian.net",
"JIRA_EMAIL": "your-email@example.com",
"JIRA_API_TOKEN": "your-api-token"
}
}
}
}Claude Desktop: Configure MCP servers directly in Claude Desktop for real-world testing
Advanced Configuration
Environment Variables (for advanced users):
# Jira configuration
export JIRA_HOST="https://your-domain.atlassian.net"
export JIRA_EMAIL="your-email@example.com"
export JIRA_API_TOKEN="your-api-token"
# Timeout settings
export MCP_SERVER_REQUEST_TIMEOUT=60000
export MCP_REQUEST_TIMEOUT_RESET_ON_PROGRESS=false
# Proxy settings (if using MCP Proxy)
export MCP_PROXY_FULL_ADDRESS=http://localhost:5577
# Auto-open browser
export MCP_AUTO_OPEN_ENABLED=trueQuery Parameters (for direct testing):
http://localhost:6274/?transport=stdio&serverCommand=node&serverArgs=build/index.jsManual Testing
# Build and run the server
npm run build
npm startWiki
query_wiki
Accesses Confluence pages by URL identifier and returns formatted content.
Parameters:
query(required): Page code to search for (like F4CjNw)
Response: Markdown-formatted page content with metadata:
# Page Title
**ID:** 933462039
**Space:** Orderbahn Team (OT)
**URL:** /spaces/OT/pages/933462039/...
**Author:** User Name
**Last Modified:** 2025-09-26T16:35:30.695Z
**Code:** F4CjNw
## Content
[Page content in plain text with preserved line breaks]
## Page Hierarchy
- Parent Page (page)
- Child Page (folder)
- Current Page (page)Features:
Automatic redirect following for short URLs
HTML to plain text conversion preserving structure
Page hierarchy display
Comprehensive error handling
Contributing
We welcome contributions to the Jira MCP Server! Please follow these guidelines to ensure a smooth contribution process.
Getting Started
Fork the repository on GitHub
Clone your fork locally:
git clone https://github.com/raalarcon9705/jira-mcp.git cd jira-mcpInstall dependencies:
npm installCreate a new branch for your feature:
git checkout -b feature/your-feature-name
Development Workflow
Setting Up Your Environment
Install MCP Inspector (official testing tool):
npm install -g @modelcontextprotocol/inspectorBuild the project:
npm run buildTest with MCP Inspector:
npx @modelcontextprotocol/inspectorThen configure your server:
Transport: STDIO
Command:
nodeArgs:
build/index.jsEnvironment: Add your Jira credentials
Code Standards
TypeScript: All code must be written in TypeScript
Type Safety: Avoid
anytypes, use proper Jira.js typesError Handling: Include comprehensive error handling
Validation: Use Yup schemas for input validation
Comments: Add clear comments for complex logic
Formatting: Follow existing code style and formatting
Adding New Features
Create validation schema in
src/schemas/index.ts:export const yourFeatureSchema = yup.object({ // Define your schema });Implement API method in
src/jira-client.ts:async yourFeature(input: YourFeatureInput) { try { // Implementation } catch (error) { throw new Error(`Failed to your feature: ${error.message}`); } }Create MCP tool in appropriate file in
src/tools/:{ name: 'your_tool', description: 'Clear description of what the tool does', inputSchema: { // Define input schema } }Register tool in
src/index.ts:// Add to appropriate handlerOptimize response for token efficiency:
Return only essential fields
Use short field names
Filter out unnecessary data
Testing Your Changes
Build the project:
npm run buildTest with MCP Inspector:
npx @modelcontextprotocol/inspectorConfigure server: STDIO,
node build/index.jsTest all affected tools
Verify responses are optimized
Test with CLI mode (for automation):
# List tools npx @modelcontextprotocol/inspector --cli node build/index.js --method tools/list # Test specific tool npx @modelcontextprotocol/inspector --cli node build/index.js --method tools/call --tool-name get_projectsVerify response optimization:
Check that only essential fields are returned
Ensure field names are shortened
Confirm custom fields are filtered out
Pull Request Process
Before Submitting
Code compiles without TypeScript errors
All tools work as expected
Response optimization is implemented
Error handling is comprehensive
Documentation is updated if needed
No personal data is included in examples
Creating a Pull Request
Commit your changes with clear messages:
git add . git commit -m "Add new feature: brief description"Push to your fork:
git push origin feature/your-feature-nameOpen a Pull Request on GitHub with:
Clear title describing the change
Detailed description of what was added/changed
Testing instructions for reviewers
Screenshots if UI changes are involved
Pull Request Template
## Description
Brief description of the changes
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation update
## Testing
- [ ] All existing tests pass
- [ ] New functionality tested
- [ ] Response optimization verified
## Checklist
- [ ] Code follows project standards
- [ ] Self-review completed
- [ ] Documentation updated
- [ ] No personal data includedCode Review Process
Automated checks will run on your PR
Maintainers will review your code
Address feedback promptly
Make requested changes and update the PR
PR will be merged once approved
Reporting Issues
When reporting bugs or requesting features:
Check existing issues first
Use the issue template provided
Include reproduction steps for bugs
Provide clear description for feature requests
Include relevant logs and error messages
Development Guidelines
Response Optimization
Essential fields only: Return only necessary data
Short field names: Use abbreviated names (e.g.,
descinstead ofdescription)Filter custom fields: Remove
customfield_*from issue responsesConsistent format: Maintain uniform response structure
Error Handling
Descriptive messages: Include context in error messages
Proper error types: Use appropriate error types
Logging: Add console.error for debugging
User-friendly: Make errors understandable for end users
Documentation
Update README: Add new tools to documentation
Include examples: Provide usage examples
Response format: Document response structure
No personal data: Use generic examples only
Community Guidelines
Be respectful and constructive in discussions
Help others learn and contribute
Follow the code of conduct
Ask questions if you need help
Getting Help
GitHub Issues: For bugs and feature requests
Discussions: For questions and general help
Documentation: Check existing docs first
Code examples: Look at existing implementations
Thank you for contributing to the Jira MCP Server! 🚀
🤝 Contributing
We welcome contributions from the community! This project is open source and we value all contributions.
Quick Start for Contributors
Fork the repository on GitHub
Clone your fork:
git clone https://github.com/your-username/jira-mcp.git cd jira-mcpInstall dependencies:
npm installCreate a branch for your feature:
git checkout -b feature/your-feature-nameMake your changes and test them
Submit a pull request
Ways to Contribute
🐛 Report bugs using our bug report template
✨ Request features using our feature request template
💻 Submit code improvements and new features
📚 Improve documentation and examples
🧪 Add tests for better coverage
🌍 Translate documentation to other languages
Development Guidelines
Follow our Contributing Guide
Read our Code of Conduct
Use TypeScript for all new code
Add tests for new functionality
Update documentation as needed
Getting Help
💬 Discussions: Use GitHub Discussions for questions
🐛 Issues: Use GitHub Issues for bugs and feature requests
📖 Documentation: Check the README and CONTRIBUTING.md
Publishing to npm
To publish this MCP server to npm for distribution:
Login to npm:
npm loginRun the publish script:
./publish.shOr publish manually:
npm run build npm publish
The package will be available as raalarcon-jira-mcp-server and users can install it with:
npx raalarcon-jira-mcp-serverLicense
MIT
Support
To report bugs or request features, please open an issue in the repository.
Note: This MCP server is designed to work with Jira Cloud. For Jira Server/Data Center, additional modifications are required for authentication and some endpoints.
Available Tools
24 toolsassign_issueB
Assign a Jira issue to a user
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | The issue key to assign | |
| assignee | Yes | The account ID of the user to assign to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description should disclose behavioral traits. It only states the action without mentioning side effects (e.g., unassigning previous assignee), permissions, or response behavior, leaving the agent underinformed.
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 sentence without extraneous words. It is appropriately sized for a simple tool with two parameters.
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 simple with two required parameters and no output schema. The description provides the essential action but lacks context about prerequisites, effects on other entities, or failure modes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description's addition is minimal. It does not add meaning beyond the parameter names and descriptions already present in the schema, yielding a baseline score.
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 'Assign' and the resource 'Jira issue', making the action unambiguous. It distinguishes from sibling tools like update_issue or transition_issue, but does not elaborate on the scope or effect of assignment.
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. Siblings include update_issue and transition_issue, which could overlap, but the description gives no conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_sprintA
Close and complete a sprint. This action requires the sprint to be in the "active" state. Once closed, the sprint cannot be reopened.
| Name | Required | Description | Default |
|---|---|---|---|
| sprintId | Yes | ID of the sprint to close. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions irreversibility and state requirement, but lacks details on side effects (e.g., impact on issues) and return value. With no annotations, it carries the full burden and leaves 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?
Two concise sentences, first stating the action and second adding constraints. Every sentence is essential and front-loaded.
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 one-parameter tool, the description covers prerequisites but omits output/return value and post-close effects. Without output schema, this context would be valuable.
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 already describes the only parameter (sprintId) with 100% coverage. The tool description does not add further parameter meaning beyond the schema, meeting the baseline.
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 ('close and complete a sprint'), the required state (active), and the irreversible nature. It effectively distinguishes from sibling tools like create_sprint or delete_sprint.
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?
It explicitly requires the sprint to be 'active' and warns about irreversibility. While it doesn't compare to alternatives (e.g., delete_sprint), the context of siblings makes the primary use clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_commentB
Add a comment to a Jira issue. Supports plain text or Markdown for rich formatting (headings, lists, code blocks, links, etc.). Markdown is automatically converted to ADF. For mentions, use format: @[accountId:displayName] (get accountId from get_users tool). Returns comment ID and creation details.
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | Issue key (e.g., "PROJ-123") to add the comment to. | |
| body | Yes | Comment content. Can be plain text or Markdown for rich formatting (headings, lists, code blocks, links, etc.). Markdown will be automatically converted to ADF. For mentions, use format: @[accountId:displayName] (get accountId from get_users tool). | |
| visibility | No | Optional visibility settings to restrict comment access to specific roles or groups. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It discloses Markdown-to-ADF conversion, mention format, and return value (comment ID and creation details). However, missing permission requirements, idempotency, error handling, or behavior for invalid issue keys.
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?
Five sentences, each adding distinct information: purpose, formatting support, conversion, mentions, and return value. Front-loaded with core action. Concise without waste, though could be slightly more 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?
Adequately covers main aspects for creation but lacks explanation of ADF, visibility options, error conditions, or constraints like rate limits. With no output schema, describing return value is helpful. Overall sufficient for simple use but not comprehensive.
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?
Input schema provides 100% coverage with descriptions. The description adds value by specifying mention syntax (@[accountId:displayName]) and confirming Markdown conversion for the body parameter. This extra context enhances usability beyond 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 'Add a comment to a Jira issue', specifying the verb and resource. It differentiates from sibling tools like get_comments, delete_comment, and update_comment by focusing on creation. However, it does not explicitly contrast with these 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?
No explicit guidance on when to use this tool versus alternatives. While it mentions using get_users for account IDs, it lacks prerequisites, context for visibility, or 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.
create_issueA
Create a new Jira issue (Bug, Story, Task, Epic, etc.) or subtask. Returns the created issue key, ID, and URL. Use get_issue_types to find valid issueType values for the project. To create a subtask, specify the parent issue key.
| Name | Required | Description | Default |
|---|---|---|---|
| projectKey | Yes | Project key (e.g., "PROJ") where the issue will be created. Use get_projects to find available keys. | |
| summary | Yes | Issue title/summary (max 255 characters). This is the main identifier shown in issue lists. | |
| description | No | Detailed issue description. Supports plain text, Markdown, or Atlassian Document Format (ADF) for rich formatting. Markdown will be automatically converted to ADF. For mentions, use format: @[accountId:displayName] (get accountId from get_users tool). | |
| issueType | Yes | Issue type name (e.g., "Bug", "Story", "Task", "Epic"). Use get_issue_types to find valid values. | |
| priority | No | Priority level: "Highest", "High", "Medium", "Low", "Lowest". Defaults to project default if not specified. | |
| assignee | No | Account ID of the user to assign the issue to. Use get_users to find account IDs. | |
| parent | No | Issue key of the parent issue (e.g., "PROJ-123"). Required to create a subtask. | |
| labels | No | Array of label names for categorization and filtering (e.g., ["bug", "urgent", "frontend"]). | |
| components | No | Array of component names that this issue affects (e.g., ["API", "Database", "UI"]). | |
| fixVersions | No | Array of version names where this issue will be fixed (e.g., ["v1.2", "v2.0"]). | |
| customFields | No | Custom field values as key-value pairs. Field keys are project-specific. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses return values (issue key, ID, URL) and subtask creation behavior. Lacks discussion of idempotency, permissions, or side effects, but given no annotations, the description provides reasonable transparency for a creation 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?
Four sentences, each adding distinct value: purpose, return, validation hint, and subtask guidance. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 11 parameters with nested objects and no output schema, the description covers the essential behavior, return, and special cases (subtasks). It compensates for missing output schema by stating what is returned.
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 100% schema coverage, the description adds significant value beyond the schema by cross-referencing companion tools (get_issue_types, get_projects, get_users) and explaining Markdown/ADF conversion and mention format. This greatly aids correct parameter usage.
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 creates a new Jira issue, listing specific types (Bug, Story, Task, Epic, subtask). It distinguishes from sibling tools like update_issue or delete_issue by focusing on creation.
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 clear guidance on when to use: to create issues and subtasks. Suggests using get_issue_types and get_projects for valid values, but does not explicitly state when not to use or mention alternatives beyond the context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sprintA
Create a new sprint. Sprint name and origin board ID are required. Start date, end date, and goal are optional.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the sprint to create. | |
| originBoardId | Yes | ID of the board where the sprint will be created. | |
| startDate | No | Start date of the sprint (ISO 8601 format). | |
| endDate | No | End date of the sprint (ISO 8601 format). | |
| goal | No | Goal or objective of the sprint. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It only describes parameters and does not disclose behavioral traits like side effects, authorization needs, or idempotency, which are critical 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?
Two sentences that are front-loaded with the purpose and immediately specify requirements. Every word is necessary; no fluff.
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 description does not specify the return value or possible errors. While the tool is simple, the lack of output schema or result description leaves a gap for an agent to understand what to expect after creation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for each parameter. The description restates the required/optional distinction already captured by the 'required' array in the schema, but adds no additional 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?
Description clearly states the action 'create a new sprint' and identifies the resource. It distinguishes from sibling tools like close_sprint, delete_sprint, and update_sprint by its specific verb and resource.
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 clear context on required vs optional parameters, implying when to use. However, it does not explicitly state when not to use or mention alternatives, but the tool's purpose is unambiguous given sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_commentB
Delete a comment from a Jira issue
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | The issue key containing the comment | |
| commentId | Yes | The ID of the comment to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should provide more behavioral context. It only says 'delete' without indicating if the action is permanent or reversible, or any side effects.
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. It could be slightly more structured, but it is appropriately concise.
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 delete operation with two required parameters and no output schema, the description covers the basics but lacks additional helpful context like where to obtain the commentId or the irreversibility of the action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description adds no additional meaning beyond what the schema provides, earning a baseline 3.
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 'Delete' and the resource 'comment', and it distinguishes this tool from siblings like create_comment or get_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?
No guidance on when to use this tool versus alternatives, or any prerequisites like permissions. The description only states the action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_issueA
Permanently delete a Jira issue. This action cannot be undone. Use with caution. Returns success confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | Issue key (e.g., "PROJ-123") to delete. This is the unique identifier for the issue. | |
| deleteSubtasks | No | Whether to also delete all subtasks of this issue. Defaults to false (subtasks will remain). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses irreversibility ('cannot be undone') and return type (success confirmation). Without annotations, it carries the burden well, though could add permissions needed or impact on linked issues.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, front-loaded with purpose. No unnecessary words; every sentence adds value.
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?
Covers destruction and irreversibility. Lacks guidance on permissions or side effects for a destructive action, but sufficient for a simple deletion 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?
Input schema covers 100% with clear descriptions. The description adds no extra meaning beyond the schema, so baseline 3 is appropriate.
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?
Clearly states it permanently deletes a Jira issue, with explicit verb 'delete' and resource 'issue'. Distinguishes from siblings like update_issue or create_issue.
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?
Cautions about permanence and advises use with caution, but does not specify when to use this tool over alternatives (e.g., closing vs deleting) or mention prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_sprintA
Delete a sprint. Once deleted, all open issues in the sprint will be moved to the backlog. This action is irreversible.
| Name | Required | Description | Default |
|---|---|---|---|
| sprintId | Yes | ID of the sprint to delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the irreversible nature and that open issues move to backlog. However, it omits other behavioral details like auth requirements or effects on sprints with no issues.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: purpose, consequence, and irreversibility. Each sentence adds value with no redundancy or wasted words.
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 tool with one parameter and no output schema, the description covers the essential behavioral outcomes and constraints. Could mention prerequisites like sprint status but 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 coverage is 100% for the single parameter, and the description adds no additional semantics beyond what the schema provides. Baseline score of 3 is appropriate.
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 'Delete a sprint' with a specific verb and resource. It distinguishes from sibling tools like close_sprint by detailing consequences (issues moved to backlog) and irreversibility.
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 explicit guidance on when to use this tool versus alternatives like close_sprint or update_sprint. The description implies permanent deletion but does not provide when-not-to-use or contrast with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agile_boardsA
Get all agile boards available in the Jira instance. Required to find board IDs for sprint operations.
| Name | Required | Description | Default |
|---|---|---|---|
| projectKey | No | Optional project key to filter boards by project. | |
| boardType | No | Filter boards by type: "scrum" for Scrum boards, "kanban" for Kanban boards. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read operation without side effects, but with no annotations, it does not disclose potential limitations like pagination, rate limits, or authentication requirements.
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 (one sentence) and front-loaded with the core purpose. However, it could include a bit more detail without harm.
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 description lacks information about the return format (e.g., board IDs, names) and does not address pagination or error conditions, which is important given no output schema or annotations.
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 100% coverage, so the parameters are already well-documented. The description adds no additional context beyond the schema, meeting baseline expectations.
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 retrieves all agile boards and explains its relevance for finding board IDs needed for sprint operations. It distinguishes from sibling tools like get_sprints or get_projects.
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 explicitly states the tool is required before sprint operations, giving clear usage context. However, it does not mention when to avoid using it or provide alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_commentsA
Get comments for a Jira issue with pagination support. Returns comments with pagination metadata to help navigate through large comment lists.
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | The issue key to get comments for (e.g., "PROJ-123") | |
| startAt | No | Starting index for pagination (0-based). Use this to get the next page of comments. Default: 0 | |
| maxResults | No | Maximum number of comments to return per page (1-100). Use smaller values for faster responses. Default: 50 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It mentions pagination support and returning pagination metadata, which is helpful. However, it lacks details on authentication requirements, rate limits, or the fact that it only reads data (implied but not explicit).
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 with two sentences, front-loading the key information. Every sentence adds value with no redundancy 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?
Given there is no output schema, the description mentions return of comments and pagination metadata but omits details on comment structure (e.g., author, body, date). For a simple retrieval tool, it is adequate but not fully 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 input schema has 100% description coverage, so the description adds little beyond referencing pagination. The baseline is 3 because the schema already explains the parameters well; the description does not introduce new meaning.
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 retrieves comments for a Jira issue with pagination. It uses a specific verb ('Get') and resource ('comments for a Jira issue'). While it distinguishes from siblings like 'get_issue', it does not explicitly differentiate from other comment tools like 'create_comment', but the purpose is still clear.
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 the tool is for reading comments with pagination, but does not provide explicit guidance on when to use it versus alternatives. It does not mention when not to use it or list alternative tools for related tasks.
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 information about the current authenticated user
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It states 'Get information about the current authenticated user', implying a read-only operation with no side effects. However, it does not elaborate on authentication requirements, rate limits, or data sensitivity. The description is minimal 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?
The description is a single sentence, concise and front-loaded. It lacks some specificity (e.g., what 'information' includes), but it is efficient with no wasted words.
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 simplicity (no parameters, no output schema), the description is minimally complete. It conveys the essential purpose but does not describe the return format or contents, which may be needed for full understanding.
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 zero parameters, so description is not required to add parameter details. The baseline for 0 params is 4. The description does not provide additional semantics beyond the schema, but none are needed.
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 'Get' and the resource 'current authenticated user'. It is specific and distinct from sibling tools like 'get_users', which would list all users. No ambiguity.
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. For instance, it does not clarify that 'get_users' returns all users while this returns only the authenticated user, nor does it suggest prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issueA
Retrieve detailed information about a specific Jira issue including status, assignee, description, comments, and workflow data. Use this to get current state before making updates.
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | Issue key (e.g., "PROJ-123") or numeric issue ID. This is the unique identifier for the issue. | |
| expand | No | Comma-separated list of additional data: renderedFields,names,schema,transitions,operations,editmeta,changelog | |
| fields | No | Specific fields to return (e.g., ["summary", "status", "assignee"]). If not specified, returns all fields. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description must cover behavioral traits. It correctly implies read-only via 'retrieve', but lacks explicit statements about side effects, authentication needs, or error handling. Adequate but not comprehensive.
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, front-loaded with the core purpose, followed by actionable guidance. Every word contributes value.
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?
No output schema, but description hints at return content (status, assignee, etc.). Parameters are fully documented. Usage guideline is provided. For a simple read tool, this is nearly complete; could add a note about default field behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains parameters. The description adds minimal new meaning beyond listing example fields, which partially overlaps with the 'fields' parameter. Baseline score of 3 is appropriate.
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?
Description clearly states it retrieves detailed information about a specific Jira issue, listing example fields (status, assignee, etc.). This distinguishes it from mutation tools like create_issue, update_issue, and transition_issue.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises using the tool to get current state before making updates, providing clear context. Could be improved by mentioning when not to use or suggesting alternatives for other operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issue_typesA
Get all available issue types (Bug, Story, Task, Epic, etc.) for a specific project. Returns type names, IDs, descriptions, and workflow information. Required before creating issues to know valid issueType values.
| Name | Required | Description | Default |
|---|---|---|---|
| projectKey | Yes | The project key (e.g., "PROJ") or numeric project ID. Use get_projects to find available project keys. |
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 states 'Returns type names, IDs, descriptions, and workflow information', clearly implying a read-only operation with no side effects. This is sufficiently transparent for a simple retrieval 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 two sentences with no wasted words. The first sentence states the primary purpose, and the second adds return information and usage guidance. It is front-loaded and 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?
Given the tool's simplicity (one parameter, no output schema, no annotations), the description covers purpose, when to use, and what it returns. It is fully adequate for an AI agent to select and invoke the tool 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?
The input schema has 100% coverage, so the baseline is 3. The schema itself already contains a helpful description for projectKey, including an example and cross-reference to get_projects. The tool description adds no additional parameter detail beyond 'for a specific project', which is already implied.
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 'Get all available issue types for a specific project' and mentions typical types (Bug, Story, Task, Epic). It distinguishes from siblings by noting it's required before creating issues, making it clear what the tool does.
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 explicitly says 'Required before creating issues to know valid issueType values', providing clear context for when to use the tool. However, it does not state when not to use it or mention alternatives, which would improve the score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_projectsA
Retrieve all Jira projects accessible to the authenticated user. Returns project keys, names, IDs, and basic metadata. Use this to discover available projects before creating issues or performing other operations.
| Name | Required | Description | Default |
|---|---|---|---|
| expand | No | Comma-separated list of additional data to include: description,lead,issueTypes,url,projectKeys,permissions,insight | |
| recent | No | Return only recently viewed projects (0-20). Useful for quick access to frequently used projects. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description indicates a safe read operation by stating it 'Retrieves' data. With no annotations provided, the description carries the full burden, but it adequately conveys the non-destructive nature and basic behavior. No additional details about auth or rate limits are needed for such a simple read 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 concise sentences that front-load the purpose and immediately provide a usage hint. No unnecessary 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?
With no output schema, the description adequately summarizes what is returned (keys, names, IDs, basic metadata). The tool is simple with no required parameters, so the description is complete given the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already fully explains both parameters (expand and recent). The description does not add any extra semantic value beyond what the schema provides, meeting the baseline expectation.
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?
Description clearly states the tool retrieves Jira projects accessible to the user, and specifies the returned data (keys, names, IDs, basic metadata). The verb 'retrieve' and resource 'projects' are specific, distinguishing it from sibling tools like get_issue or get_agile_boards.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises using this tool 'before creating issues or performing other operations,' providing clear context for when to use it. However, it does not mention when not to use it or alternatives, but among siblings, there is no other project-listing tool, so exclusion is implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sprint_issuesA
Get all issues in a specific sprint. Useful for viewing what tickets are currently in a sprint.
| Name | Required | Description | Default |
|---|---|---|---|
| sprintId | Yes | The ID of the sprint to get issues from. Use get_sprints to find available sprint IDs. | |
| maxResults | No | Maximum number of issues to return (1-100). Defaults to 50. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description claims 'Get all issues' but the schema includes a maxResults parameter with a default of 50, implying pagination. This contradiction is not disclosed, and no other behavioral traits are mentioned.
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 sentences, front-loaded with the core purpose, and contains no unnecessary words.
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 that there is no output schema, the description should provide some indication of the response structure or fields. It does not, and also omits mention of the maxResults limit that affects the result set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds no new parameter-specific information beyond what the schema already provides.
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 'Get all issues in a specific sprint' with a specific verb and resource, and distinguishes it from sibling tools like close_sprint or get_sprints.
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 says 'Useful for viewing what tickets are currently in a sprint,' providing clear context for when to use the tool. It does not explicitly mention alternatives, but the purpose is straightforward.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sprintsA
Get all sprints for a specific board. Returns sprint information including ID, name, state, and dates.
| Name | Required | Description | Default |
|---|---|---|---|
| boardId | Yes | The ID of the board to get sprints from. Use get_agile_boards to find available board IDs. | |
| state | No | Filter sprints by state: "active" for current sprint, "closed" for completed sprints, "future" for upcoming sprints. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It states that the tool returns data, implying a read operation, but does not explicitly declare it as read-only or mention any side effects, permissions, or rate limits. The description is adequate but minimal.
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 sentences, front-loaded with the purpose, and contains no extraneous information. Every word contributes to understanding the tool's function.
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?
Despite the lack of output schema, the description mentions the key return fields (ID, name, state, dates). However, it does not address potential issues like pagination if many sprints exist, and the optional state filter is only inferred from the schema. For a simple retrieval tool, this is largely 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?
The input schema has 100% coverage with descriptions for both parameters, so the description adds no new information about the parameters. The description focuses on the return values rather than enhancing parameter meaning. Baseline 3 is appropriate.
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 it retrieves all sprints for a specific board and lists the return fields. The verb 'Get' combined with the resource 'sprints' is specific, and the tool is easily distinguishable from sibling tools like close_sprint, create_sprint, and get_sprint_issues which perform different operations.
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 a hint in the boardId parameter annotation about using get_agile_boards to find board IDs, but lacks explicit guidance on when to use this tool versus other sprint-related tools. There is no statement about when not to use it or alternative 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 transitions for a Jira issue
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | The issue key to get transitions for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It only states 'Get available transitions' without explicitly confirming it is a read-only operation, required permissions, or output format expectations.
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, concise sentence that front-loads the essential information without any extraneous 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?
For a simple query tool with one parameter and no output schema, the description is adequate but could be improved by mentioning the output (e.g., a list of transitions) and that it is a read operation.
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 100% description coverage for the sole parameter 'issueKey', which already explains its purpose. The description adds no additional meaning beyond 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?
The description clearly states the action ('Get') and the resource ('available transitions for a Jira issue'), effectively distinguishing it from the sibling tool 'transition_issue' which performs the transition.
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 siblings like 'transition_issue'. It does not mention that this is a prerequisite step to check available transitions before performing one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usersC
Search for users in Jira
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Search query for user name or email | |
| projectKey | No | Filter users by project access | |
| maxResults | No | Maximum number of users to return (1-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description only says 'Search'. Missing behavioral details like pagination, partial matches, or read-only nature. The description carries the full burden but 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?
Single sentence, very concise. However, it lacks necessary context. Optimal length but under-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?
With 3 parameters and no output schema, the description is too short. It does not explain return format, query behavior, or limitations. Incomplete for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all three parameters. Description adds no additional meaning beyond schema, baseline 3.
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 'Search for users in Jira', with a specific verb and resource. It distinguishes from sibling tools like get_current_user (single user) and get_issue (non-user), though not 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?
No guidance on when to use this tool versus alternatives. For example, no mention of when to use search vs get_current_user or get_issue.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_issue_to_sprintB
Move an issue to a specific sprint. This is the main function to add tickets to the current sprint.
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | Issue key (e.g., "PROJ-123") to move to the sprint. | |
| sprintId | Yes | The ID of the sprint to move the issue to. Use get_sprints to find available sprint IDs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It does not disclose behavioral traits like whether moving an issue removes it from previous sprints, or if it fails for certain sprint states. The description is too brief to convey important side effects.
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 with no extraneous information. 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?
Given no output schema and moderate complexity, the description misses details like what happens to the issue's previous sprint position. For a mutation tool operating on two key IDs, more context about the effect is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and parameter descriptions are detailed (e.g., issueKey example, sprintId hint to use get_sprints). The description adds no extra meaning beyond restating the action, so baseline 3 is appropriate.
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 ('Move an issue to a specific sprint') and the resource ('issue' and 'sprint'). It distinguishes from siblings like 'assign_issue' (user assignment) but has slight inconsistency between 'specific sprint' and 'current sprint'.
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 explicit guidance on when to use this tool versus alternatives like 'create_issue' or 'transition_issue'. No mention of when not to use it or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_wikiB
Get Confluence page content by specific code (like F4CjNw).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Page code to search for (like F4CjNw) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It merely states 'Get', implying a read operation, but omits details about side effects, authentication requirements, rate limits, or error handling. This leaves significant 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?
Single sentence, front-loaded with key information, no redundant words. Highly 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 simple tool with one parameter and no output schema, the description is minimally adequate. It explains how to use the tool but omits what the response contains (full page, snippet, metadata?) and any limitations. Additional context would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the parameter description in both tool and schema is identical. The description adds the example 'F4CjNw', which aids understanding, but does not elaborate on format, case sensitivity, or behavior when code is invalid. Baseline 3 is appropriate.
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 (Get) and resource (Confluence page content) with a specific identifier (code like F4CjNw). It distinguishes from sibling JIRA tools by its focus on Confluence, though the term 'code' could be interpreted as a page ID or short link.
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, prerequisites, or context. The siblings are all JIRA-related, so the domain difference is evident, but the description does not explicitly address usage scenarios or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transition_issueB
Move a Jira issue to a different status/state
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | The issue key to transition | |
| transitionId | Yes | The ID of the transition to perform (will be converted to string automatically) | |
| comment | No | Optional comment to add during transition | |
| fields | No | Additional fields to update during transition |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only says 'Move' but does not disclose behavioral traits like whether the operation is destructive, requires specific permissions, or what happens on failure. The description lacks transparency 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, direct sentence with no fluff. It is concise but could be slightly expanded for clarity. Still, it earns a high score for efficiency.
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 4 parameters, 2 required, and nested objects, the description is insufficient. It does not mention the need to call get_transitions first, nor does it explain the fields parameter or expected output. Lacks essential context for correct 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 coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond the schema; it does not explain that transitionId must be obtained from get_transitions or that comment is optional. No value added.
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 ('Move') and the resource ('Jira issue') with the specific action ('to a different status/state'), distinguishing it from siblings like get_transitions (which lists transitions) and update_issue (which updates fields without necessarily transitioning status).
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 the tool is for changing issue status but provides no explicit guidance on when to use it versus alternatives like get_transitions or update_issue. There is no mention of prerequisites (e.g., calling get_transitions first) or 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.
update_commentA
Update an existing comment on a Jira issue. Supports plain text or Markdown for rich formatting (headings, lists, code blocks, links, etc.). Markdown is automatically converted to ADF. For mentions, use format: @[accountId:displayName] (get accountId from get_users tool).
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | The issue key containing the comment | |
| commentId | Yes | The ID of the comment to update | |
| body | Yes | The new comment text. Supports plain text or Markdown for rich formatting (headings, lists, code blocks, links, etc.). Markdown will be automatically converted to ADF. For mentions, use format: @[accountId:displayName] (get accountId from get_users tool). | |
| visibility | No | Comment visibility settings |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral information beyond the schema, notably that Markdown is automatically converted to ADF and mentions use a specific format. However, it does not disclose permissions, reversibility, or other side effects, which would be needed given no 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 concise with three sentences, front-loaded with the main purpose, and each sentence adds necessary detail without repetition or fluff.
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 no output schema and a nested parameter, the description covers purpose, formatting, and mentions but does not clarify return values, error conditions, or the visibility parameter in detail. It is adequate but has 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 coverage is 100%, so baseline is 3. The description adds value by explaining ADF conversion for the body parameter and the mention format, which are not in the schema. However, it does not elaborate on the visibility parameter.
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 'Update an existing comment on a Jira issue,' using a specific verb and resource. It distinguishes from sibling tools like create_comment and delete_comment.
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 does not provide guidance on when to use this tool versus alternatives like create_comment or get_comments. It lacks explicit context about usage scenarios or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_issueA
Update fields of an existing Jira issue or convert to subtask. Only provided fields will be updated. Use get_issue first to see current values. Returns success confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | Issue key (e.g., "PROJ-123") to update. This is the unique identifier for the issue. | |
| summary | No | New issue title/summary (max 255 characters). Replaces the existing summary. | |
| description | No | New issue description. Replaces the existing description. Supports plain text, Markdown, or ADF. Markdown will be automatically converted to ADF. For mentions, use format: @[accountId:displayName] (get accountId from get_users tool). | |
| priority | No | New priority: "Highest", "High", "Medium", "Low", "Lowest". Replaces current priority. | |
| assignee | No | Account ID of new assignee. Use get_users to find account IDs. Set to null to unassign. | |
| parent | No | Issue key of the parent issue (e.g., "PROJ-123"). Use to convert issue to subtask or change parent. | |
| labels | No | Complete array of labels (replaces all existing labels). Use empty array to remove all labels. | |
| components | No | Complete array of components (replaces all existing components). Use empty array to remove all components. | |
| fixVersions | No | Complete array of fix versions (replaces all existing versions). Use empty array to remove all versions. | |
| customFields | No | Custom field values as key-value pairs. Only specified fields will be updated. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It states that only provided fields are updated and returns 'success confirmation', but lacks details on permissions, error states, atomicity, or the behavior when the issue key is invalid. The conversion to subtask is mentioned but not elaborated.
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 three sentences, each serving a distinct purpose: main action, update behavior, prerequisite, return value. No unnecessary words, and it is front-loaded with 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?
Given the complexity (10 parameters, no output schema, no annotations), the description is too brief. It lacks details on return format, error handling, idempotency, and edge cases like partial updates. The 'success confirmation' is vague, and the conversion to subtask behavior could be expanded.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description adds minimal value beyond the schema. It reiterates that only provided fields are updated, but does not provide new semantic details for specific parameters. The baseline of 3 is appropriate.
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 updates fields of an existing Jira issue, including conversion to subtask. It uses specific verbs ('update', 'convert') and identifies the resource ('existing Jira issue'). It distinguishes from sibling tools like create_issue, transition_issue, or assign_issue.
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 explicitly advises to use 'get_issue first to see current values', providing a clear prerequisite. It implies usage for field updates and subtask conversion, but does not explicitly exclude using it for transitions or assignments, which are handled by sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_sprintA
Update sprint information (name, dates, goal, state). Only provided fields will be updated. For closed sprints, only name and goal can be updated.
| Name | Required | Description | Default |
|---|---|---|---|
| sprintId | Yes | ID of the sprint to update. | |
| name | No | New name for the sprint. | |
| startDate | No | New start date (ISO 8601 format). | |
| endDate | No | New end date (ISO 8601 format). | |
| goal | No | New goal or objective for the sprint. | |
| state | No | New state: "future" for upcoming, "active" to start, "closed" to complete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses partial update behavior and closed-sprint restrictions. However, it omits return value, auth requirements, or side effects. The disclosed traits are valuable and not contradicted.
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: first lists fields, second adds constraints. No fluff. Front-loaded with action and immediately clear. Every sentence 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?
For a 6-param mutable tool with no output schema or annotations, the description covers key behavioral aspects (partial update, closed-sprint limits). It lacks return value or error info but is fairly complete for its complexity. Could be slightly more detailed.
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 100% coverage, so individual parameters are well-described. The description adds meta-information: only provided fields are updated, and constraints for closed sprints. This goes beyond individual schema descriptions.
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 'Update sprint information' with specific fields (name, dates, goal, state), distinguishing it from sibling tools like create_sprint, delete_sprint, and close_sprint. The verb 'update' and resource 'sprint' are precise.
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 constraints (only provided fields updated; closed sprints limited) but does not explicitly guide when to use this tool versus alternatives like close_sprint or move_issue_to_sprint. The agent must infer from tool names.
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. Dates show when Glama detected each change.
24 tool updates
v1.0.82- First observed
assign_issue - First observed
close_sprint - First observed
create_comment - First observed
create_issue - First observed
create_sprint - First observed
delete_comment - First observed
delete_issue - First observed
delete_sprint - First observed
get_agile_boards - First observed
get_comments - First observed
get_current_user - First observed
get_issue - First observed
get_issue_types - First observed
get_projects - First observed
get_sprint_issues - First observed
get_sprints - First observed
get_transitions - First observed
get_users - First observed
move_issue_to_sprint - First observed
query_wiki - First observed
transition_issue - First observed
update_comment - First observed
update_issue - First observed
update_sprint
TDQS
Each tool targets a distinct action and resource (issues, sprints, comments, boards, users, wiki). There is no overlap; for example, get_issue and get_sprint_issues serve different purposes, and move_issue_to_sprint is clearly different from get_sprint_issues.
All tool names follow a consistent verb_noun pattern with underscores (e.g., assign_issue, close_sprint, create_comment). Even query_wiki fits this pattern. No mixing of styles or vague verbs.
24 tools is reasonable for a Jira server covering issues, sprints, comments, boards, users, and wiki. It is slightly on the higher side but well-scoped for the complexity of Jira operations.
The surface covers core CRUD for issues, comments, and sprints, plus transitions, agile boards, and user search. Minor gaps like issue linking or attachments are absent, but the essential workflows for an agent are well covered.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP server for Jira integration with stdio transport. Enables reading, writing, and managing Jira issues and projects directly from Claude Desktop. Supports issue creation, updates, comments, JQL search, and project management.2358714MIT
- AlicenseBqualityCmaintenanceAn open-source Model Context Protocol (MCP) server for Atlassian Jira and Confluence Cloud, enabling LLMs to search, read, write, and manage issues and pages.222MIT
- AlicenseBqualityCmaintenanceLightweight MCP server for Jira, Confluence, and Bitbucket — read, create, and update from your AI IDE.20MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that connects your AI IDE to Jira. Query your tickets, active sprint, and issue details directly from GitHub Copilot, Cursor, Claude Desktop, or any MCP-compatible client.16ISC
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/raalarcon9705/jira-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server