Skip to main content
Glama
raalarcon9705

raalarcon-jira-mcp-server

Jira MCP Server

npm version License: MIT TypeScript Node.js MCP CI/CD

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

Claude Desktop

Claude Code

Cursor

Windsurf

Cline

Continue

Any MCP-compatible client

Open Source Love PRs Welcome Contributors Stars

Find This Server On

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

The easiest way to use this MCP server is with npx:

  1. 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"
      }
    }
  }
}
  1. 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

  1. Clone the repository:

git clone https://github.com/raalarcon9705/jira-mcp.git
cd jira-mcp
  1. Install dependencies:

npm install
  1. Build the project:

npm run build
  1. Configure 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

  1. Go to Atlassian Account Settings

  2. Click "Create API token"

  3. Give it a descriptive name

  4. Copy the generated token

Usage

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, ### H3

  • Text formatting: **bold**, *italic*

  • Code: `inline code` and code blocks

  • Lists: - bullet lists and 1. numbered lists

  • Links: [text](url)

  • Blockquotes: > quoted text

  • Checkboxes: - [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 dev

Production

npm run build
npm start

Testing 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 include

  • recent (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 key

  • summary (required): Issue summary

  • issueType (required): Issue type (Bug, Story, Task, etc.)

  • description (optional): Issue description

  • priority (optional): Priority (Highest, High, Medium, Low, Lowest)

  • assignee (optional): Assignee account ID

  • labels (optional): Array of labels

  • components (optional): Array of components

  • fixVersions (optional): Array of fix versions

  • customFields (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 information

  • fields (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 update

  • summary (optional): New summary

  • description (optional): New description

  • priority (optional): New priority

  • assignee (optional): New assignee

  • labels (optional): New labels

  • components (optional): New components

  • fixVersions (optional): New fix versions

  • customFields (optional): Custom fields

Response: Issue PROJ-123 updated successfully

delete_issue

Deletes an issue.

Parameters:

  • issueKey (required): Issue key to delete

  • deleteSubtasks (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 key

  • body (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 key

  • startAt (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 key

  • commentId (required): Comment ID

  • body (required): New comment text

  • visibility (optional): New visibility settings

Response: Comment 12345 updated successfully

delete_comment

Deletes a comment.

Parameters:

  • issueKey (required): Issue key

  • commentId (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 key

  • transitionId (required): Transition ID

  • comment (optional): Comment to add during transition

  • fields (optional): Additional fields to update

Response: Issue PROJ-123 transitioned successfully

Assignments

assign_issue

Assigns an issue to a user.

Parameters:

  • issueKey (required): Issue key

  • assignee (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 email

  • projectKey (optional): Filter by project access

  • maxResults (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 project

  • boardType (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 from

  • state (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 create

  • originBoardId (required): ID of the board where the sprint will be created

  • startDate (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 update

  • name (optional): New name for the sprint

  • startDate (optional): New start date (ISO 8601 format)

  • endDate (optional): New end date (ISO 8601 format)

  • goal (optional): New goal or objective for the sprint

  • state (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 sprint

  • maxResults (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., desc instead of description)

  • 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 tools

Adding New Features

  1. Create validation schema in src/schemas/index.ts

  2. Implement method in src/jira-client.ts

  3. Create MCP tool in appropriate file in src/tools/

  4. Register tool in src/index.ts

Testing

  1. Install MCP Inspector:

    npm install -g @modelcontextprotocol/inspector
  2. Build the project:

    npm run build
  3. Start MCP Inspector:

    npx @modelcontextprotocol/inspector
  4. Configure your server in the inspector interface:

    • Transport: STDIO (default)

    • Command: node

    • Args: build/index.js

    • Environment: 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_projects

Configuration 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=true

Query Parameters (for direct testing):

http://localhost:6274/?transport=stdio&serverCommand=node&serverArgs=build/index.js

Manual Testing

# Build and run the server
npm run build
npm start

Wiki

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

  1. Fork the repository on GitHub

  2. Clone your fork locally:

    git clone https://github.com/raalarcon9705/jira-mcp.git
    cd jira-mcp
  3. Install dependencies:

    npm install
  4. Create a new branch for your feature:

    git checkout -b feature/your-feature-name

Development Workflow

Setting Up Your Environment

  1. Install MCP Inspector (official testing tool):

    npm install -g @modelcontextprotocol/inspector
  2. Build the project:

    npm run build
  3. Test with MCP Inspector:

    npx @modelcontextprotocol/inspector

    Then configure your server:

    • Transport: STDIO

    • Command: node

    • Args: build/index.js

    • Environment: Add your Jira credentials

Code Standards

  • TypeScript: All code must be written in TypeScript

  • Type Safety: Avoid any types, use proper Jira.js types

  • Error 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

  1. Create validation schema in src/schemas/index.ts:

    export const yourFeatureSchema = yup.object({
      // Define your schema
    });
  2. 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}`);
      }
    }
  3. Create MCP tool in appropriate file in src/tools/:

    {
      name: 'your_tool',
      description: 'Clear description of what the tool does',
      inputSchema: {
        // Define input schema
      }
    }
  4. Register tool in src/index.ts:

    // Add to appropriate handler
  5. Optimize response for token efficiency:

    • Return only essential fields

    • Use short field names

    • Filter out unnecessary data

Testing Your Changes

  1. Build the project:

    npm run build
  2. Test with MCP Inspector:

    npx @modelcontextprotocol/inspector
    • Configure server: STDIO, node build/index.js

    • Test all affected tools

    • Verify responses are optimized

  3. 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_projects
  4. Verify 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

  1. Commit your changes with clear messages:

    git add .
    git commit -m "Add new feature: brief description"
  2. Push to your fork:

    git push origin feature/your-feature-name
  3. Open 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 included

Code Review Process

  1. Automated checks will run on your PR

  2. Maintainers will review your code

  3. Address feedback promptly

  4. Make requested changes and update the PR

  5. PR will be merged once approved

Reporting Issues

When reporting bugs or requesting features:

  1. Check existing issues first

  2. Use the issue template provided

  3. Include reproduction steps for bugs

  4. Provide clear description for feature requests

  5. 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., desc instead of description)

  • Filter custom fields: Remove customfield_* from issue responses

  • Consistent 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

  1. Fork the repository on GitHub

  2. Clone your fork:

    git clone https://github.com/your-username/jira-mcp.git
    cd jira-mcp
  3. Install dependencies:

    npm install
  4. Create a branch for your feature:

    git checkout -b feature/your-feature-name
  5. Make your changes and test them

  6. 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

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:

  1. Login to npm:

    npm login
  2. Run the publish script:

    ./publish.sh
  3. Or 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-server

License

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 tools
assign_issueB

Assign a Jira issue to a user

ParametersJSON Schema
NameRequiredDescriptionDefault
issueKeyYesThe issue key to assign
assigneeYesThe account ID of the user to assign to

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sprintIdYesID of the sprint to close.

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
issueKeyYesIssue key (e.g., "PROJ-123") to add the comment to.
bodyYesComment 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).
visibilityNoOptional visibility settings to restrict comment access to specific roles or groups.

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectKeyYesProject key (e.g., "PROJ") where the issue will be created. Use get_projects to find available keys.
summaryYesIssue title/summary (max 255 characters). This is the main identifier shown in issue lists.
descriptionNoDetailed 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).
issueTypeYesIssue type name (e.g., "Bug", "Story", "Task", "Epic"). Use get_issue_types to find valid values.
priorityNoPriority level: "Highest", "High", "Medium", "Low", "Lowest". Defaults to project default if not specified.
assigneeNoAccount ID of the user to assign the issue to. Use get_users to find account IDs.
parentNoIssue key of the parent issue (e.g., "PROJ-123"). Required to create a subtask.
labelsNoArray of label names for categorization and filtering (e.g., ["bug", "urgent", "frontend"]).
componentsNoArray of component names that this issue affects (e.g., ["API", "Database", "UI"]).
fixVersionsNoArray of version names where this issue will be fixed (e.g., ["v1.2", "v2.0"]).
customFieldsNoCustom field values as key-value pairs. Field keys are project-specific.

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the sprint to create.
originBoardIdYesID of the board where the sprint will be created.
startDateNoStart date of the sprint (ISO 8601 format).
endDateNoEnd date of the sprint (ISO 8601 format).
goalNoGoal or objective of the sprint.

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. 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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
issueKeyYesThe issue key containing the comment
commentIdYesThe ID of the comment to delete

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
issueKeyYesIssue key (e.g., "PROJ-123") to delete. This is the unique identifier for the issue.
deleteSubtasksNoWhether to also delete all subtasks of this issue. Defaults to false (subtasks will remain).

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sprintIdYesID of the sprint to delete.

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectKeyNoOptional project key to filter boards by project.
boardTypeNoFilter boards by type: "scrum" for Scrum boards, "kanban" for Kanban boards.

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
issueKeyYesThe issue key to get comments for (e.g., "PROJ-123")
startAtNoStarting index for pagination (0-based). Use this to get the next page of comments. Default: 0
maxResultsNoMaximum number of comments to return per page (1-100). Use smaller values for faster responses. Default: 50

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
issueKeyYesIssue key (e.g., "PROJ-123") or numeric issue ID. This is the unique identifier for the issue.
expandNoComma-separated list of additional data: renderedFields,names,schema,transitions,operations,editmeta,changelog
fieldsNoSpecific fields to return (e.g., ["summary", "status", "assignee"]). If not specified, returns all fields.

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already 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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectKeyYesThe project key (e.g., "PROJ") or numeric project ID. Use get_projects to find available project keys.

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. 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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
expandNoComma-separated list of additional data to include: description,lead,issueTypes,url,projectKeys,permissions,insight
recentNoReturn only recently viewed projects (0-20). Useful for quick access to frequently used projects.

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sprintIdYesThe ID of the sprint to get issues from. Use get_sprints to find available sprint IDs.
maxResultsNoMaximum number of issues to return (1-100). Defaults to 50.

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
boardIdYesThe ID of the board to get sprints from. Use get_agile_boards to find available board IDs.
stateNoFilter sprints by state: "active" for current sprint, "closed" for completed sprints, "future" for upcoming sprints.

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
issueKeyYesThe issue key to get transitions for

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. 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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoSearch query for user name or email
projectKeyNoFilter users by project access
maxResultsNoMaximum number of users to return (1-100)

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
issueKeyYesIssue key (e.g., "PROJ-123") to move to the sprint.
sprintIdYesThe ID of the sprint to move the issue to. Use get_sprints to find available sprint IDs.

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesPage code to search for (like F4CjNw)

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
issueKeyYesThe issue key to transition
transitionIdYesThe ID of the transition to perform (will be converted to string automatically)
commentNoOptional comment to add during transition
fieldsNoAdditional fields to update during transition

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
issueKeyYesThe issue key containing the comment
commentIdYesThe ID of the comment to update
bodyYesThe 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).
visibilityNoComment visibility settings

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
issueKeyYesIssue key (e.g., "PROJ-123") to update. This is the unique identifier for the issue.
summaryNoNew issue title/summary (max 255 characters). Replaces the existing summary.
descriptionNoNew 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).
priorityNoNew priority: "Highest", "High", "Medium", "Low", "Lowest". Replaces current priority.
assigneeNoAccount ID of new assignee. Use get_users to find account IDs. Set to null to unassign.
parentNoIssue key of the parent issue (e.g., "PROJ-123"). Use to convert issue to subtask or change parent.
labelsNoComplete array of labels (replaces all existing labels). Use empty array to remove all labels.
componentsNoComplete array of components (replaces all existing components). Use empty array to remove all components.
fixVersionsNoComplete array of fix versions (replaces all existing versions). Use empty array to remove all versions.
customFieldsNoCustom field values as key-value pairs. Only specified fields will be updated.

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sprintIdYesID of the sprint to update.
nameNoNew name for the sprint.
startDateNoNew start date (ISO 8601 format).
endDateNoNew end date (ISO 8601 format).
goalNoNew goal or objective for the sprint.
stateNoNew state: "future" for upcoming, "active" to start, "closed" to complete.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 24 tool updatesv1.0.82
    • First observedassign_issue
    • First observedclose_sprint
    • First observedcreate_comment
    • First observedcreate_issue
    • First observedcreate_sprint
    • First observeddelete_comment
    • First observeddelete_issue
    • First observeddelete_sprint
    • First observedget_agile_boards
    • First observedget_comments
    • First observedget_current_user
    • First observedget_issue
    • First observedget_issue_types
    • First observedget_projects
    • First observedget_sprint_issues
    • First observedget_sprints
    • First observedget_transitions
    • First observedget_users
    • First observedmove_issue_to_sprint
    • First observedquery_wiki
    • First observedtransition_issue
    • First observedupdate_comment
    • First observedupdate_issue
    • First observedupdate_sprint

TDQS

A3.7/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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