Skip to main content
Glama
jl-0

JIRA MCP Server

by jl-0

JIRA MCP Server

A Model Context Protocol (MCP) server that provides read-only access to JIRA REST API, enabling LLMs to query and retrieve information from JIRA instances.

Features

Issue Operations

  • Search Issues - Execute JQL queries to find issues

  • Get Issue Details - Retrieve comprehensive information about specific issues

  • Get Issue Comments - Fetch comments for issues

  • Get Issue Transitions - View available workflow transitions

Project Operations

  • List Projects - Get all accessible projects

  • Get Project Details - Retrieve detailed project information

  • Search Projects - Find projects by various criteria

User Operations

  • Get Current User - Retrieve authenticated user information

  • Get User - Get details about specific users

  • Search Users - Find users by query

Field Discovery Operations

  • Get Issue Types - Get all issue types for a project

  • Get Issue Type Fields - Get all fields available for a specific issue type

  • Get Issue Field Names - Get all field IDs and names for a specific issue

  • Search Issue Fields - Search for fields by name in a specific issue with partial matching

Related MCP server: Jira MCP Integration

Architecture

This MCP server follows a modular architecture designed for maintainability and extensibility:

Project Structure

JIRA-API-MCP/
├── src/
│   ├── index.ts              # MCP server entry point
│   ├── server.ts             # Server initialization and tool registration
│   ├── client/
│   │   ├── JiraClient.ts     # JIRA API client wrapper with axios
│   │   └── types.ts          # TypeScript interfaces for JIRA data models
│   ├── tools/
│   │   ├── issues.ts         # Issue-related MCP tool implementations
│   │   ├── projects.ts       # Project-related MCP tool implementations
│   │   ├── users.ts          # User-related MCP tool implementations
│   │   └── fields.ts         # Field discovery MCP tool implementations
│   └── __tests__/
│       ├── tools-direct.test.ts    # Integration tests for tool handlers
│       ├── jira.test.ts           # Direct JIRA API tests
│       └── generate-mcp-docs.ts   # Documentation generation utility
├── dist/                     # Compiled JavaScript output
├── __tool_response_logs__/   # Test response captures
└── docs/
    ├── CLAUDE.md            # Instructions for AI assistants
    ├── INSPECTOR_GUIDE.md   # MCP Inspector usage guide
    ├── MCP_TOOL_DOCUMENTATION.md  # Detailed tool specifications
    └── TEST_SUMMARY.md      # Testing documentation

Key Components

  1. MCP Server Layer (server.ts)

    • Implements Model Context Protocol specification

    • Registers all available tools with the MCP SDK

    • Handles tool dispatch and response formatting

  2. JIRA Client (client/JiraClient.ts)

    • Axios-based HTTP client for JIRA REST API v2

    • Handles authentication via Bearer tokens

    • Implements retry logic and error handling

    • Manages request/response transformations

  3. Tool Modules (tools/*.ts)

    • Each module exports tool definitions with:

      • Zod schemas for input validation

      • Handler functions that call the JIRA client

      • Consistent error handling and response formatting

    • Tools return standardized {success, data/error} structure

  4. Type System (client/types.ts)

    • Comprehensive TypeScript interfaces for JIRA entities

    • Ensures type safety across the application

    • Documents expected data structures

Data Flow

  1. Request Flow:

    MCP Client → MCP Server → Tool Handler → JIRA Client → JIRA API
  2. Response Flow:

    JIRA API → JIRA Client → Tool Handler → MCP Server → MCP Client

Design Principles

  • Modularity: Each tool is self-contained with its own validation and logic

  • Type Safety: Full TypeScript coverage with strict typing

  • Error Resilience: Graceful error handling at each layer

  • Testability: Comprehensive test suite with response capture

  • Documentation: Auto-generated docs from actual API responses

Installation

From NPM

npm install @mcp/jira-server

From Source

git clone https://github.com/jl-0/JIRA-API-MCP.git
cd JIRA-API-MCP
npm install
npm run build

Configuration

The server requires JIRA authentication credentials. You can provide these via environment variables or a .env file:

# Required
# For Server/Data Center: https://your-server.com/jira
# For Cloud: https://your-domain.atlassian.net (not currently supported)
JIRA_BASE_URL=https://your-server.com/jira

# For Server/Data Center: Personal Access Token (PAT)
JIRA_API_TOKEN=your-personal-access-token

# Optional
JIRA_MAX_RESULTS=50  # Default max results per request
JIRA_TIMEOUT=30000   # Request timeout in milliseconds

JIRA Server/Data Center Support

This MCP server is designed for JIRA Server and Data Center installations using:

  • REST API v2 endpoints

  • Personal Access Token (PAT) authentication with Bearer tokens

  • Compatible with JIRA Server 8.14+ and JIRA Service Management 4.15+

Getting a Personal Access Token (PAT)

For JIRA Server/Data Center:

  1. Log in to your JIRA instance

  2. Navigate to your Profile → Personal Access Tokens

  3. Click "Create token"

  4. Give it a descriptive name and set expiration

  5. Copy the token immediately (it won't be shown again)

  6. Use this token as JIRA_API_TOKEN in your configuration

The server uses Bearer token authentication: Authorization: Bearer <token>

Note: JIRA Cloud uses a different authentication mechanism (API tokens with Basic auth) which is not currently supported by this server.

Usage

With Claude Desktop

Add the server to your Claude Desktop configuration:

{
  "mcpServers": {
    "jira": {
      "command": "npx",
      "args": ["@jl-0/jira-server"],
      "env": {
        "JIRA_BASE_URL": "https://your-domain.atlassian.net",
        "JIRA_API_TOKEN": "your-api-token"
      }
    }
  }
}

As a Standalone Server

# Using environment variables
export JIRA_BASE_URL=https://your-domain.atlassian.net
export JIRA_API_TOKEN=your-api-token
npm start

# Or using a .env file
npm start

Testing & Development

Interactive Testing with MCP Inspector

The MCP Inspector provides an interactive web interface for testing all server capabilities:

# Launch inspector with TypeScript source (development)
npm run inspect

# Build and inspect with compiled JavaScript
npm run inspect:built

The inspector will open at http://localhost:6274 and allow you to:

  • Test all available tools with custom parameters

  • View real-time server responses

  • Debug authentication and connectivity issues

  • Monitor server logs and notifications

See INSPECTOR_GUIDE.md for detailed usage instructions.

Automated Testing

Run the comprehensive test suite:

# Run all tests
npm test

# Run direct tool integration tests
npm run test:direct

# Generate documentation from test responses
npm run test:generate-docs

Test outputs are saved to __tool_response_logs__/ for analysis.

See TEST_SUMMARY.md for test documentation.

Available Tools

jira_search_issues

Search for issues using JQL (JIRA Query Language).

Parameters:

  • jql (required): JQL query string

  • maxResults: Maximum results to return (default: 50)

  • fields: Array of fields to include

  • expand: Array of data to expand

  • startAt: Starting index for pagination

Example:

{
  "jql": "project = PROJ AND status = 'In Progress'",
  "maxResults": 10
}

jira_get_issue

Get detailed information about a specific issue.

Parameters:

  • issueIdOrKey (required): Issue ID or key (e.g., PROJ-123)

  • fields: Array of fields to include

  • expand: Array of data to expand

jira_get_issue_comments

Get comments for a specific issue.

Parameters:

  • issueIdOrKey (required): Issue ID or key

  • maxResults: Maximum results (default: 50)

  • startAt: Starting index for pagination

jira_get_issue_transitions

Get available transitions for an issue.

Parameters:

  • issueIdOrKey (required): Issue ID or key

  • includeUnavailable: Include unavailable transitions (default: false)

jira_list_projects

List all accessible projects.

Parameters:

  • expand: Array of additional data to expand

  • recent: Return only most recent projects

jira_get_project

Get detailed project information.

Parameters:

  • projectIdOrKey (required): Project ID or key

  • expand: Array of additional data to expand

jira_search_projects

Search for projects.

Parameters:

  • query: Search query string

  • maxResults: Maximum results (default: 50)

  • startAt: Starting index

  • orderBy: Sort order field

  • typeKey: Project type key

  • categoryId: Project category ID

  • action: Filter by permission (view/browse/edit)

jira_get_current_user

Get information about the authenticated user.

Parameters:

  • expand: Additional data to expand

jira_search_users

Search for users.

Parameters:

  • query: Search query matching display name and email

  • accountId: Find user by account ID

  • maxResults: Maximum results (default: 50)

  • startAt: Starting index

jira_get_issue_types

Get all issue types available for a specific project.

Parameters:

  • projectIdOrKey (required): Project ID or key

  • maxResults: Maximum results (default: 50)

  • startAt: Starting index

jira_get_issue_type_fields

Get all fields available for a specific issue type in a project.

Parameters:

  • projectIdOrKey (required): Project ID or key

  • issueTypeId (required): Issue type ID

  • maxResults: Maximum results (default: 50)

  • startAt: Starting index

jira_get_issue_field_names

Get all field IDs and names for a specific JIRA issue.

Parameters:

  • issueIdOrKey (required): Issue ID or key

Example:

{
  "issueIdOrKey": "IDS-10314"
}

jira_search_issue_fields

Search for specific fields by name in a JIRA issue.

Parameters:

  • issueIdOrKey (required): Issue ID or key

  • searchTerms (required): Array of search terms to match against field names

Example:

{
  "issueIdOrKey": "IDS-10314",
  "searchTerms": ["test", "procedure", "story points"]
}

JQL Examples

Common JQL queries you can use with jira_search_issues:

-- Find all open issues assigned to me
assignee = currentUser() AND resolution = Unresolved

-- Find high priority bugs
priority = High AND issuetype = Bug

-- Issues updated in the last week
updated >= -1w

-- Issues in specific projects
project in (PROJ1, PROJ2) AND status = "To Do"

-- Issues with specific labels
labels in ("backend", "api")

-- Issues created this month
created >= startOfMonth()

-- Find issues by reporter
reporter = "john.doe@example.com"

-- Complex query
project = PROJ AND (
  (priority = High AND status = "In Progress") OR
  (priority = Critical AND status != Done)
) ORDER BY created DESC

Development

# Install dependencies
npm install

# Build TypeScript
npm run build

# Run in development mode
npm run dev

# Run tests
npm test

# Lint code
npm run lint

# Format code
npm run format

Publishing to npm

First-time Setup

  1. Ensure you have an npm account at npmjs.com

  2. Login to npm from your terminal:

    npm login

Publishing Process

  1. Update the version in package.json following semantic versioning:

    npm version patch  # for bug fixes (0.1.0 -> 0.1.1)
    npm version minor  # for new features (0.1.0 -> 0.2.0)
    npm version major  # for breaking changes (0.1.0 -> 1.0.0)
  2. Build the project:

    npm run clean
    npm run build
  3. Test locally (optional but recommended):

    npm link
    # In another project:
    npm link @mcp/jira-server
  4. Publish to npm:

    npm publish --access public
  5. Create a git tag and push:

    git push origin main
    git push origin --tags

Package Information

Error Handling

The server provides detailed error messages for common issues:

  • Authentication failures - Check your API token and email

  • Permission errors - Ensure your account has access to the requested resources

  • Rate limiting - The server implements retry logic for rate limits

  • Network issues - Check your internet connection and JIRA instance URL

Security

  • API tokens are never logged or exposed

  • All communication with JIRA uses HTTPS

  • Uses Bearer token authentication for secure API access

  • Credentials should be stored securely using environment variables

  • The server provides read-only access by default

Limitations

  • This is a read-only implementation (no issue creation/updates)

  • Rate limits are determined by your JIRA instance

  • Some JIRA Cloud features may not be available on JIRA Server/Data Center

  • Field discovery tools use the editmeta endpoint which returns fields available for editing

Future Enhancements

Planned features for future releases:

  • Issue creation and updates

  • Attachment handling

  • Webhook support

  • Advanced filtering and field customization

  • Bulk operations

  • Sprint and board operations (JIRA Software)

  • Service desk operations (JIRA Service Management)

Documentation

This project maintains comprehensive documentation:

Documentation Maintenance

When making changes to the codebase:

  1. Update README.md when adding features or changing configuration

  2. Run tests to capture new response formats: npm run test:direct

  3. Generate documentation from test outputs: npm run test:generate-docs

  4. Update tool documentation if parameters or responses change

  5. Follow guidelines in CLAUDE.md for consistent documentation

Contributing

Contributions are welcome! Please:

  1. Read CLAUDE.md for development guidelines

  2. Update documentation when making changes

  3. Add tests for new functionality

  4. Ensure all tests pass: npm test

  5. Run linting: npm run lint

  6. Submit a Pull Request with clear description

License

MIT

Support

For issues and questions, please use the GitHub Issues page.

Available Tools

14 tools
jira_get_current_userA

Get information about the currently authenticated JIRA user

ParametersJSON Schema
NameRequiredDescriptionDefault
expandNoAdditional data to expand (groups, applicationRoles)

TDQS

A4/5.0
Behavior3/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 is accurate but minimal, not disclosing additional behavioral traits such as authentication requirements, response format, or side effects. However, for a simple read operation, it is not misleading and gives a basic understanding.

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, front-loaded sentence with no unnecessary words. It efficiently communicates the core purpose without any fluff.

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?

Given the tool's low complexity (one optional parameter, no output schema), the description is reasonably complete. It clearly identifies the target entity but could be enhanced by specifying the type of information returned. However, the simplicity of the tool makes this 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 covers 100% of the parameters with a clear description for 'expand'. The tool description adds no extra information about parameters beyond what the schema already provides, so the baseline of 3 applies.

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's function with a specific verb ('Get') and resource ('currently authenticated JIRA user'). It distinguishes itself from siblings like jira_get_user by specifying the user is the currently authenticated one, which is a unique scope.

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 gives clear context on when to use this tool: to retrieve information about the currently authenticated user. While it doesn't explicitly mention alternatives or exclusions, the phrasing implies that this is for the current user, contrasting with sibling tools that target specific users.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jira_get_issueA

Get detailed information about a specific JIRA issue by its key (e.g., "IDS-10194"). Returns comprehensive issue details including summary, description, status, assignee, and custom fields. CRITICAL: Always use the fields parameter to request only specific fields needed - requesting all fields or omitting this parameter returns excessive data and may fail. For custom fields, use field discovery workflow first: (1) Get issue type with fields: ["issuetype", "project"], (2) Use jira_get_issue_type_fields to find field names/IDs, (3) Request only needed fields by name or customfield_XXXX ID. Example: fields: ["summary", "customfield_10001", "status"].

ParametersJSON Schema
NameRequiredDescriptionDefault
expandNoOptional array of additional data to expand. Example: ["changelog", "transitions", "renderedFields"]. Warning: Some expand options may significantly increase response size
fieldsNoOptional array of specific fields to return. Example: ["summary", "status", "description", "assignee", "reporter", "priority"]. If omitted, returns common fields: summary, status, priority, assignee, reporter, created, updated, description, issuetype, project, resolution, resolutiondate, duedate, labels, components, fixVersions, versions
propertiesNoOptional array of issue properties to include. Example: ["prop1", "prop2"]. Use "*all" to include all properties
issueIdOrKeyYesThe JIRA issue ID or key to retrieve. Example: "IDS-10194" or "PROJ-123"
updateHistoryNoWhether to update the issue's history of views

TDQS

A4.7/5.0
Behavior4/5

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

With no annotations, the description carries the transparency burden. It discloses that omitting the fields parameter returns excessive data and may fail, and lists the return categories (summary, status, assignee, custom fields). It could add failure behavior for invalid issue keys, but the warning and return detail are meaningful and help set 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 front-loaded with the core purpose and example, followed by a critical warning and a numbered workflow. It is dense but every sentence carries operational value; there is no filler or repetition of schema details.

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?

Given 5 parameters with 100% schema coverage and no output schema, the description sufficiently covers the main usage pattern, critical performance guidance, and custom-field handling. It does not explain expand/properties/updateHistory behavior, but those are already described in the schema, so the description is complete enough for a tool of this complexity.

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?

While the input schema already covers all 5 parameters with examples (100% coverage), the description adds critical semantics beyond the schema: always use fields to limit payload, omitting it can cause failure, and custom fields require a structured discovery workflow. This is substantial added value for parameter use.

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 uses a specific verb ('Get') and resource ('specific JIRA issue by its key'), with an example key format. It clearly distinguishes this tool from siblings like jira_search_issues (searching) and jira_get_issue_comments (comments) by focusing on retrieving detailed single-issue data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit, actionable guidance: always pass only needed fields, warns that omitting fields returns excessive data and may fail, and prescribes a step-by-step custom-field discovery workflow using jira_get_issue_type_fields. This gives clear when-to-use and how-to-use context beyond the schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jira_get_issue_commentsA

Get all comments for a specific JIRA issue by its key (e.g., "IDS-10194"). Returns a paginated list of comments with author and timestamp information.

ParametersJSON Schema
NameRequiredDescriptionDefault
startAtNoStarting index for pagination as a number (default: 0). Must be a number, not a string.
maxResultsNoMaximum number of comments to return as a number (default: 50). Must be a number, not a string.
issueIdOrKeyYesThe JIRA issue ID or key to get comments for. Example: "IDS-10194"

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden of conveying behavior. It effectively signals a read-only operation through the verb 'Get,' and adds useful detail about the return format (paginated list, author, timestamp). It does not explicitly state that no modifications occur, but the word 'Get' strongly implies a safe read, and the pagination caveat is a meaningful behavioral disclosure.

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 consists of two concise sentences. The first sentence front-loads the core purpose, and the second provides essential return information. There is no filler or redundant repetition of schema details, making it an efficiently structured, appropriately sized description.

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?

Given the simple 3-parameter tool and full schema coverage, the description is nearly complete. It includes the return format and the key example, though it could optionally elaborate on how pagination behaves (e.g., how to retrieve all pages using startAt/maxResults). In the absence of an output schema, the description suffices for an agent to understand 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 covers 100% of the parameters with clear descriptions, so the description adds little beyond what the schema already provides. The description's mention of 'by its key' mirrors the schema's example, and the pagination implications are already described in startAt/maxResults. Thus, the 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 the tool's function with a specific verb ('Get'), a specific resource ('comments for a specific JIRA issue'), and the required identifier (issue key, with an example). This unambiguously distinguishes it from sibling tools like jira_get_issue or jira_get_issue_transitions.

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 clearly establishes when to use the tool (when you need all comments for a given issue) without explicitly naming alternatives or exclusions. The context is unambiguous, but it stops short of explicitly stating 'use this instead of jira_get_issue for comments' or noting cases where it might be inappropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jira_get_issue_field_namesA

Get all field IDs and their corresponding names for a specific JIRA issue. This tool retrieves the editmeta for an issue and returns a simplified list of field IDs (like "customfield_25931") mapped to their human-readable names (like "Target start"). Use this when you need to discover what fields are available for a specific issue.

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdOrKeyYesThe JIRA issue ID or key to get field names for. Example: "IDS-10194" or "PROJ-123"

TDQS

A4/5.0
Behavior3/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 adds context about retrieving editmeta and returning a simplified mapping, but does not state whether the operation is read-only, any permission requirements, or error behavior. Adequate but not rich.

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 action and followed by usage guidance. Every word earns its place, no repetition or fluff.

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 one-parameter tool without output schema, the description covers what it returns (simplified field ID/name mapping), how it works (via editmeta), and when to use it. Minor gaps around error behavior, but overall 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 schema already fully describes the parameter with an example, and the description adds no extra semantics beyond referencing field IDs and names. With 100% schema coverage, the 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 'Get all field IDs and their corresponding names for a specific JIRA issue', specifying the exact resource and scope. It distinguishes itself from sibling field-related tools by emphasizing the issue-specific context.

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 a clear usage scenario ('Use this when you need to discover what fields are available for a specific issue'), but does not explicitly mention alternatives or when not to use it. This is close to explicit but lacks exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jira_get_issue_transitionsA

Get available workflow transitions for a JIRA issue by its key (e.g., "IDS-10194"). Shows what status changes are possible for the issue (e.g., Open -> In Progress, In Progress -> Resolved).

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdOrKeyYesThe JIRA issue ID or key to get transitions for. Example: "IDS-10194"
includeUnavailableNoWhether to include transitions that are not available to the current user (default: false)

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. It uses 'Get' implying a read-only operation and describes the output format with examples, but it does not mention permissions, error behavior, or default filtering beyond what the schema already states.

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 long, front-loaded with the action and resource, and contains no filler. Every word contributes to understanding the tool's purpose and output.

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?

Given the tool's simplicity, full schema coverage, and example output, the description is complete enough for an agent to know what the tool does and when to call it. It could be more explicit about usage versus siblings, but that is not essential for this straightforward getter.

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?

Both parameters have good descriptions in the schema (100% coverage), so the description adds no additional meaning. The example key 'IDS-10194' is already present in the schema's parameter description.

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 uses a specific verb 'Get' with a clear resource 'workflow transitions for a JIRA issue' and provides examples of output (Open -> In Progress). It is clearly distinguishable from sibling tools such as jira_get_issue or jira_get_issue_comments.

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 implies use when needing to see possible status changes for an issue, with example transitions provided. However, it does not explicitly mention alternatives or when not to use this tool, so it stops short of full usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jira_get_issue_type_fieldsA

Get all fields available for a specific issue type in a project. Returns detailed field metadata including which fields are required, their types, allowed values, and default values. Use this to understand what fields can be queried or set for a specific issue type.

ParametersJSON Schema
NameRequiredDescriptionDefault
startAtNoStarting index for pagination as a number (default: 0). Must be a number, not a string.
maxResultsNoMaximum number of results to return as a number (default: 50). Must be a number, not a string.
issueTypeIdYesThe issue type ID to get fields for. Example: "10001"
projectIdOrKeyYesThe JIRA project ID or key. Example: "IDS" or "10000"

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It usefully explains the return content (required fields, types, allowed values, defaults), but it omits the pagination behavior implied by startAt/maxResults parameters and does not explicitly state that this is a read-only operation. The phrase 'all fields' slightly conflicts with pagination semantics.

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 (two sentences), front-loaded with the action and resource, and every sentence adds value. There is no redundancy or fluff.

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?

Given no output schema, the description helpfully outlines the return value details. It covers the core purpose, but a more complete description would mention pagination limitations and perhaps the relationship to other field-related tools. Overall, it provides sufficient context for an agent to select and invoke the 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 description coverage is 100%, so the baseline is 3. The description adds little beyond the schema, only indirectly referencing the project/issue type parameters. It does not provide additional context like how the pagination parameters interact or default behaviors.

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 uses a specific verb ('Get') and resource ('all fields available for a specific issue type in a project'), clearly distinguishing it from sibling tools like jira_get_issue_field_names and jira_search_issue_fields. It also states what metadata is returned, making the purpose unambiguous.

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 a clear usage context: 'Use this to understand what fields can be queried or set for a specific issue type.' While it doesn't explicitly mention alternatives or when not to use the tool, the intended scenario is well conveyed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jira_get_issue_typesA

Get all issue types available for a specific project. Returns issue type metadata including IDs and names. Use this to discover what issue types exist in a project before querying for their specific fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
startAtNoStarting index for pagination as a number (default: 0). Must be a number, not a string.
maxResultsNoMaximum number of results to return as a number (default: 50). Must be a number, not a string.
projectIdOrKeyYesThe JIRA project ID or key to get issue types for. Example: "IDS" or "10000"

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description must carry the full burden of behavioral disclosure. It states that it 'Returns issue type metadata including IDs and names', which gives some insight into output. However, it does not mention pagination behavior, errors, or read-only safety, leaving gaps in transparency.

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 and well-structured, with two sentences that front-load the core purpose and then add a usage note. Every word earns its place, and there is no redundancy with the schema.

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?

Given the tool's low complexity and presence of a detailed schema, the description is mostly complete. It explains the return value (metadata with IDs and names) and the discovery use case. The lack of an output schema is compensated by this brief description, though it could mention pagination defaults.

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 schema provides 100% coverage with descriptions for all 3 parameters, so the baseline is 3. The description does not add additional meaning to the parameters beyond indicating that projectIdOrKey is the scope for 'a specific project'. It relies on the schema for parameter details.

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 'Get' applied to 'all issue types available for a specific project'. It also distinguishes itself from the sibling tool 'jira_get_issue_type_fields' by explicitly mentioning 'before querying for their specific fields', clarifying this is a discovery action.

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 explicit guidance on when to use: 'Use this to discover what issue types exist in a project before querying for their specific fields.' It gives a clear context but does not mention when not to use or name alternatives beyond the implicit reference to fields.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jira_get_projectB

Get detailed information about a specific JIRA project

ParametersJSON Schema
NameRequiredDescriptionDefault
expandNoOptional array of additional data to expand. Example: ["description", "lead", "issueTypes", "components", "versions"]
projectIdOrKeyYesThe JIRA project ID or key to retrieve. Example: "IDS" or "10000"

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 carries the full burden of behavioral disclosure. It only states the read operation ('Get') and gives no information about permissions, response format, error handling, or expand behavior. The description adds no meaningful behavioral context beyond the purpose.

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, front-loaded sentence with no filler or redundant information. Every word contributes to the purpose.

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 and the schema covers all parameters, but the description lacks detail on what 'detailed information' includes and how the expand parameter affects the response. With no output schema and no annotations, the description leaves some gaps, but the core purpose is clear enough for a basic GET 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?

Schema coverage is 100%; both parameters have detailed descriptions in the schema, including examples for projectIdOrKey and expand. The description itself adds no parameter-specific information, so it earns the baseline score of 3 for not detracting from the 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 'Get detailed information about a specific JIRA project' clearly states the verb (get), resource (JIRA project), and scope (specific), effectively distinguishing it from siblings like jira_list_projects and jira_get_issue. However, it does not explicitly mention alternatives, so it stops short of a perfect 5.

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 jira_list_projects, jira_search_projects, or other siblings. It neither states the intended use case nor mentions any exclusions, leaving the agent to infer usage from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jira_get_userB

Get information about a specific JIRA user by account ID

ParametersJSON Schema
NameRequiredDescriptionDefault
expandNoAdditional data to expand
accountIdYesThe account ID of the user

TDQS

B3.2/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 disclose behavioral traits. It only states that information is retrieved, with no mention of error handling, permissions, expand behavior, or return details. This leaves significant gaps for an agent.

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, focused sentence that conveys the core purpose without redundancy.

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?

Despite low complexity, the description is under-specified: it lacks usage guidance, behavioral details, and does not explain the expand parameter's effect. The absence of annotations and output schema further reduces completeness.

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 schema already provides 100% description coverage for both parameters. The description adds no additional parameter context beyond what the schema states, so a 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 the action ('Get information'), the resource ('specific JIRA user'), and the identifier ('by account ID'), distinguishing it from sibling tools like jira_search_users and jira_get_current_user.

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 about when to use this tool versus alternatives such as jira_search_users or jira_get_current_user. The description lacks context on prerequisites or use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jira_list_projectsA

List all JIRA projects accessible to the authenticated user

ParametersJSON Schema
NameRequiredDescriptionDefault
expandNoOptional array of additional data to expand. Example: ["description", "lead", "url", "projectKeys"]. Commonly used values: description, lead, url, projectKeys
recentNoOptional number to return only the N most recent projects. Must be a number, not a string. Example: 10 to get the 10 most recent projects

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It adds context about authentication ('accessible to the authenticated user'), which is useful. However, it does not mention pagination, output format, or potential large response sizes, which are relevant for a 'list all' operation.

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, front-loaded sentence with no filler. Every word adds meaning, and it communicates the core purpose efficiently.

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 list tool with no output schema, the description states the action and scope but lacks return-value details and pagination behavior. The parameter schema is complete, but the 'all' semantics might require clarification. Overall, it is adequate but with room for improvement.

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 detailed descriptions for both parameters ('expand' and 'recent'), including examples and type clarifications. The description adds no extra parameter information, so 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 uses a specific verb ('List'), identifies the resource ('JIRA projects'), and scopes the action ('accessible to the authenticated user'). This clearly distinguishes it from sibling tools like jira_get_project (single project) and jira_search_projects (search/filter).

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 implies usage for retrieving all accessible projects, which is a clear context. It does not explicitly mention alternatives or when not to use it, but the scope ('all') contrasts with sibling tool names. No exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jira_search_issue_fieldsA

Search for specific fields by name in a JIRA issue. Provide an issue key and one or more search terms, and this tool will return matching field IDs and names. Supports partial/fuzzy matching - for example, searching for "test" will match "Task Test Procedure". Use this when you need to find the field ID for a specific field name.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchTermsYesArray of search terms to match against field names. Example: ["test", "story points"]. Partial matches are supported.
issueIdOrKeyYesThe JIRA issue ID or key to search fields for. Example: "IDS-10194" or "PROJ-123"

TDQS

A4.3/5.0
Behavior4/5

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

The description discloses the partial/fuzzy matching behavior with an example, which is valuable information beyond the schema. It also indicates that the tool returns both IDs and names, and its non-destructive search/return nature is implicit. No annotations are provided, so this behavioral disclosure partially fills that gap.

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 at two sentences, with the purpose stated upfront and a helpful example woven in. Every sentence contributes to understanding the tool's function and usage.

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?

The tool is simple and the description covers its core purpose, parameters, and expected output (field IDs and names). The presence of both parameters in the schema and the absence of complex return structures make this description 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 schema descriptions already cover both parameters fully, including the partial-match behavior and example values. The description reiterates the same information without adding new semantics, so it adds minimal value 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 tool searches for specific fields by name in a JIRA issue and returns matching field IDs and names. It provides a concrete example of partial/fuzzy matching, making the purpose unmistakable. While it doesn't explicitly contrast with sibling tools like jira_get_issue_field_names, the search-specific scope and mention of returning IDs and names differentiate it effectively.

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 instructs users to use the tool when they need to find the field ID for a specific field name, which provides clear context for its intended use. It does not mention alternatives or when-not-to-use cases, but the guidance is sufficient for a targeted search tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jira_search_issuesA

Search for JIRA issues using JQL (JIRA Query Language). Use this to find issues based on various criteria like project, status, assignee, text content, etc. Returns a summary of matching issues.

ParametersJSON Schema
NameRequiredDescriptionDefault
jqlYesJQL query string to search for issues. Examples: "project = IDS", "assignee = currentUser() AND status = Open", "key = IDS-10314". IMPORTANT: Use "key = ISSUE-123" to query a specific issue, NOT "text ~ ISSUE-123" which performs unnecessary full-text search.
expandNoOptional array of entities to expand. Example: ["changelog", "transitions"]. Common values: changelog, renderedFields, transitions
fieldsNoOptional array of field names to include. Example: ["summary", "status", "assignee"]. Strongly recommended to specify only needed fields to reduce data transfer. If omitted, returns common fields: summary, status, priority, assignee, reporter, created, updated, issuetype, project, labels, components
startAtNoStarting index for pagination as a number (default: 0). Use for fetching additional pages of results. Must be a number, not a string.
maxResultsNoMaximum number of results to return as a number (default: 50, max: 100). Must be a number, not a string.
propertiesNoOptional array of issue properties to include. Example: ["prop1", "prop2"]. Use "*all" to include all properties

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It states that it 'Returns a summary of matching issues', which clarifies the output nature. However, it does not elaborate on read-only safety, pagination, or other side effects, though the schema covers some parameter behaviors. This is adequate but not rich.

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 short sentences that immediately state the search action, usage context, and return type. Every sentence earns its place with no redundancy or fluff, making it ideal for quick agent comprehension.

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?

The tool has 6 parameters with a rich schema, no output schema, and no annotations. The description gives a general sense of return ('summary of matching issues') but doesn't specify pagination or result format details, though the schema covers parameters. It is complete enough for a search tool but could be more explicit about pagination 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%, with detailed descriptions, examples, and important notes for each parameter (e.g., jql examples, pagination defaults, field recommendations). The description adds no additional parameter meaning beyond the schema, so the 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 the tool searches for JIRA issues using JQL, naming the action (search), resource (JIRA issues), and query method (JQL). It distinguishes from siblings like jira_get_issue (single issue retrieval) and jira_search_projects (project search) by focusing on issue search.

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 'Use this to find issues based on various criteria like project, status, assignee, text content, etc.', providing clear context for when to use the tool. It does not explicitly mention alternatives or exclusions, but the purpose is specific enough to differentiate from sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jira_search_projectsC

Search for JIRA projects based on various criteria

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoSearch query string
actionNoFilter by permissionbrowse
orderByNoOrder results by fieldkey
startAtNoStarting index for pagination as a number (default: 0). Must be a number, not a string.
typeKeyNoProject type key
categoryIdNoProject category ID as a number. Must be a number, not a string.
maxResultsNoMaximum number of results as a number (default: 50). Must be a number, not a string.

TDQS

C2.7/5.0
Behavior1/5

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

No annotations are provided, so the description carries full responsibility for disclosing behavioral traits. It merely says 'Search' without stating whether the operation is read-only, what permissions are needed, how pagination behaves, or what the return value looks like. Empty disclosure.

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 with no wasted words, and it front-loads the action. However, it is so minimal that it borders on under-specification, which slightly reduces the score below a perfect 5.

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 tool has 7 optional parameters, no output schema, and no annotations. The description does not explain what the search results look like, how the 'query' parameter interacts with project fields, or what pagination defaults mean. This is insufficient for an agent to invoke the tool confidently.

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 all parameters are already documented in the schema. The tool description adds no additional meaning to the parameters; it only says 'various criteria' without specifying any. Baseline of 3 applies because the schema does the heavy lifting.

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 identifies the verb ('Search') and resource ('JIRA projects'), and adds 'based on various criteria' to indicate filtering. However, it does not differentiate from sibling tools like jira_list_projects, which likely also returns projects, so it lacks explicit distinction.

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. Sibling tools like jira_list_projects and jira_search_issues exist, but no when-to-use or when-not-to-use information is given. The description is entirely silent on selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jira_search_usersB

Search for JIRA users by query string

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoSearch query matching display name and email
startAtNoStarting index for pagination as a number (default: 0). Must be a number, not a string.
accountIdNoFind user by account ID
maxResultsNoMaximum number of results as a number (default: 50). Must be a number, not a string.

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 carries the full burden of disclosing behavior, but it only states 'Search for JIRA users by query string.' It does not mention pagination, result limits, matching behavior, or any side effects. The schema fills in some parameter details, but the description itself adds little beyond the core action.

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, front-loaded sentence with no filler. It is concise and immediately communicates the core function.

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 tool has 4 optional parameters, no output schema, and no annotations. The description is minimal and does not cover pagination behavior, alternate lookup modes, or what the response contains. While the schema covers parameter semantics, the description lacks the contextual guidance needed to use the tool effectively in more complex scenarios.

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 marginal meaning by tying the 'query' parameter to a query string, but it does not elaborate on startAt, maxResults, or accountId beyond what the schema already provides. The schema's parameter descriptions are adequate, so a middle score 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 uses a specific verb ('Search') and resource ('JIRA users') with a clear method ('by query string'). It distinguishes from sibling tools like jira_get_user (which fetches a single user), so the purpose is unambiguous.

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 offers no guidance on when to use this tool versus alternatives (e.g., jira_get_user for a specific account ID). It does not mention that accountId can be used instead of query, nor any prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.6/5.0
Disambiguation4/5

Each tool targets a clear resource and action, but the three field-discovery tools (jira_get_issue_type_fields, jira_get_issue_field_names, jira_search_issue_fields) have overlapping purposes for discovering field IDs, which could cause confusion. However, their descriptions differentiate them sufficiently by scope (issue type vs issue vs search).

Naming Consistency5/5

All tools follow a consistent jira_<verb>_<noun> pattern with verbs limited to get, list, and search. Naming is uniform, predictable, and easy to navigate.

Tool Count5/5

At 14 tools, the count is appropriate for a JIRA server covering projects, issues, comments, transitions, users, and field metadata. Each tool has a clear role, though the set is somewhat read-heavy.

Completeness2/5

The server lacks any create, update, or transition operations, so agents cannot modify issues, add comments, or change statuses. It provides broad read capabilities but is severely incomplete for a JIRA MCP server that would normally support issue lifecycle management.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with Jira Cloud through the REST API, supporting project management, issue operations (create, read, update, delete), JQL search, task assignments, and status transitions.
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables LLMs to interact with Atlassian Jira Data Center through natural language queries for semantic search and automated workflow execution. It provides secure tools to discover, inspect, and execute Jira API operations using production-ready authentication methods.
    33

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/jl-0/JIRA-API-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server