Skip to main content
Glama
pascalhubacher

Jira Cloud MCP Server

Jira Cloud MCP Server

A Model Context Protocol (MCP) server that exposes the Jira Cloud REST API v3 to any MCP-compatible AI assistant. The server exposes a curated set of 62 tools covering the full lifecycle of stories, epics, bugs, and sprints — including search, create/edit/delete, transitions, comments, worklogs, issue links, watchers, bulk operations, changelogs, and more.

Note: The full Jira OpenAPI spec contains 619 operations. Most MCP clients (including Claude Code) enforce a tool limit that prevents registering that many tools. The server therefore uses an allowlist to expose only the most useful operations. You can extend the allowlist in src/jira_mcp/tools.py if needed.


Table of Contents


Related MCP server: Jira MCP Server

Prerequisites

  • Python 3.11+

  • uv package manager

  • A Jira Cloud account with API access

  • A Jira API token (see Authentication)


Installation

1. Install uv (if not already installed)

curl -LsSf https://astral.sh/uv/install.sh | sh
source ~/.bashrc   # or restart your terminal

2. Clone the repository

git clone https://github.com/yourorg/jira-mcp.git
cd jira-mcp

3. Install dependencies

uv sync

This creates a virtual environment in .venv/ and installs all required packages automatically.


Configuration

Copy the example environment file and fill in your credentials:

cp .env.example .env

Edit .env:

# Your Jira Cloud instance URL (no trailing slash)
JIRA_BASE_URL=https://yourcompany.atlassian.net

# Email address associated with your Jira account
JIRA_EMAIL=you@example.com

# Jira API token
# Generate one at: https://id.atlassian.com/manage-profile/security/api-tokens
JIRA_API_TOKEN=your_api_token_here

# Optional: max tool calls per second (default: 10)
# JIRA_MCP_RATE_LIMIT=10

Generating a Jira API Token

  1. Log in to Atlassian Account Settings

  2. Click Create API token

  3. Give it a label (e.g. jira-mcp)

  4. Copy the token and paste it into .env

Security note: Never commit your .env file. It is already in .gitignore.


Running the Server

The server uses stdio transport (standard input/output), which is the standard for MCP servers used by desktop and CLI tools.

uv run jira-mcp

The server will start and wait for MCP messages on stdin/stdout. You don't run it directly — your AI tool launches it automatically based on your configuration.


Adding to Your AI Tool

Claude Code

Add the server to Claude Code using the claude mcp add command:

claude mcp add jira \
  --env JIRA_BASE_URL=https://yourcompany.atlassian.net \
  --env JIRA_EMAIL=you@example.com \
  --env JIRA_API_TOKEN=your_api_token_here \
  -- uv --directory /absolute/path/to/jira-mcp run jira-mcp

Or add it manually to your Claude Code MCP config file (~/.claude/claude_code_config.json or via claude mcp edit):

{
  "mcpServers": {
    "jira": {
      "command": "uv",
      "args": ["--directory", "/absolute/path/to/jira-mcp", "run", "jira-mcp"],
      "env": {
        "JIRA_BASE_URL": "https://yourcompany.atlassian.net",
        "JIRA_EMAIL": "you@example.com",
        "JIRA_API_TOKEN": "your_api_token_here"
      }
    }
  }
}

Verify it's loaded:

claude mcp list

Claude Desktop

Edit your Claude Desktop config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "jira": {
      "command": "uv",
      "args": ["--directory", "/absolute/path/to/jira-mcp", "run", "jira-mcp"],
      "env": {
        "JIRA_BASE_URL": "https://yourcompany.atlassian.net",
        "JIRA_EMAIL": "you@example.com",
        "JIRA_API_TOKEN": "your_api_token_here"
      }
    }
  }
}

Restart Claude Desktop after editing the config. You should see a hammer icon in the chat indicating tools are available.


Gemini CLI

Gemini CLI supports MCP servers via its configuration file. Edit ~/.gemini/settings.json:

{
  "mcpServers": {
    "jira": {
      "command": "uv",
      "args": ["--directory", "/absolute/path/to/jira-mcp", "run", "jira-mcp"],
      "env": {
        "JIRA_BASE_URL": "https://yourcompany.atlassian.net",
        "JIRA_EMAIL": "you@example.com",
        "JIRA_API_TOKEN": "your_api_token_here"
      }
    }
  }
}

Restart Gemini CLI after updating the config. You can verify the tools are available by asking:

"What Jira tools do you have access to?"


OpenCode

Edit your OpenCode configuration file (~/.config/opencode/config.json or the project-level .opencode/config.json):

{
  "mcp": {
    "servers": {
      "jira": {
        "type": "local",
        "command": ["uv", "--directory", "/absolute/path/to/jira-mcp", "run", "jira-mcp"],
        "env": {
          "JIRA_BASE_URL": "https://yourcompany.atlassian.net",
          "JIRA_EMAIL": "you@example.com",
          "JIRA_API_TOKEN": "your_api_token_here"
        }
      }
    }
  }
}

GitHub Copilot (VS Code)

VS Code with the GitHub Copilot extension supports MCP servers. Edit your VS Code settings.json:

{
  "github.copilot.chat.mcp.servers": {
    "jira": {
      "command": "uv",
      "args": ["--directory", "/absolute/path/to/jira-mcp", "run", "jira-mcp"],
      "env": {
        "JIRA_BASE_URL": "https://yourcompany.atlassian.net",
        "JIRA_EMAIL": "you@example.com",
        "JIRA_API_TOKEN": "your_api_token_here"
      }
    }
  }
}

After saving, reload VS Code. In Copilot Chat, switch to Agent mode to access the Jira tools.


Tool Allowlist

Most MCP clients enforce a hard limit on the number of tools a server may register. Claude Code, for example, will silently drop the server if it advertises too many tools. Because the Jira OpenAPI spec contains 619 operations, the server filters them down to a practical allowlist defined in src/jira_mcp/tools.py (_ALLOWED_OPERATION_IDS).

Currently enabled tools (62)

Tool name (snake_case)

Purpose

search_and_reconsile_issues_using_jql_post

Search issues via JQL (POST, supports large queries)

get_issue

Retrieve a single issue by key or ID

bulk_fetch_issues

Fetch multiple issues by key or ID in one request

create_issue

Create a new issue (story, bug, epic, task, etc.)

create_issues

Bulk-create multiple issues in one request

edit_issue

Update fields on an existing issue

delete_issue

Delete an issue

assign_issue

Assign or unassign an issue to a user

get_transitions

List available workflow transitions for an issue

do_transition

Move an issue to a new status via a workflow transition

submit_bulk_edit

Edit multiple issues simultaneously

submit_bulk_delete

Delete multiple issues at once

submit_bulk_move

Move issues between projects

submit_bulk_transition

Transition multiple issues to a new status

get_comments

List comments on an issue

get_comment

Retrieve a single comment

add_comment

Add a comment to an issue

update_comment

Edit a comment

delete_comment

Delete a comment

link_issues

Link two issues (blocks, duplicates, relates to, etc.)

get_issue_link

Get an issue link by ID

get_issue_link_types

List all available link types

delete_issue_link

Remove a link between issues

get_remote_issue_links

List all remote links on an issue

create_or_update_remote_issue_link

Create or update a remote link (e.g. Confluence page)

get_remote_issue_link_by_id

Get a specific remote link

delete_remote_issue_link_by_id

Delete a remote link by ID

get_issue_worklog

List all worklogs on an issue

add_worklog

Log time spent on an issue

get_worklog

Get a specific worklog entry

update_worklog

Update a worklog entry

delete_worklog

Delete a worklog entry

get_issue_watchers

Get all users watching an issue

add_watcher

Add a user as a watcher

remove_watcher

Remove a watcher

get_votes

Get voters for an issue

add_vote

Vote for an issue

remove_vote

Remove your vote

get_change_logs

Get the full history of changes for an issue

get_change_logs_by_ids

Fetch changelogs for specific IDs

get_issue_property

Get a custom property value on an issue

set_issue_property

Set a custom property on an issue

delete_issue_property

Delete an issue property

add_attachment

Upload a file attachment to an issue

get_attachment

Retrieve attachment metadata

get_all_projects

List all visible projects

search_projects

Search/filter projects

get_project

Retrieve a single project

get_project_versions

List all versions (releases) in a project

create_version

Create a project version

get_project_components

List all components in a project

create_component

Create a project component

get_user

Retrieve a user by account ID

find_users

Find users by display name or email

find_users_assignable_to_issues

Find users assignable to a specific issue

find_bulk_assignable_users

Find assignable users across multiple projects

get_create_issue_meta

Get fields available when creating an issue

get_edit_issue_meta

Get fields available when editing an issue

get_fields

List all fields (system + custom)

get_issue_types_for_project

List issue types available in a project

get_priorities

List all issue priorities

get_statuses

List all issue statuses

get_all_labels

List all labels used across Jira

get_issues_for_sprint

List issues in a sprint

get_all_sprints

List all sprints for a board

get_board

Get a Jira Software board by ID

get_all_boards

List all Jira Software boards

Adding more tools

To expose additional Jira API operations, add their operationId (from the OpenAPI spec) to _ALLOWED_OPERATION_IDS in src/jira_mcp/tools.py:

_ALLOWED_OPERATION_IDS: frozenset[str] = frozenset({
    ...
    "getWorkflowTransitionProperties",   # example: expose workflow transition properties
})

Restart the MCP server after any change. Keep the total well below your client's tool limit (Claude Code: ~128 tools).


Functionality Reference

This section documents the full Jira Cloud REST API v3. Operations not in the whitelist are still listed here for reference — add their operationId to _ALLOWED_OPERATION_IDS to enable them.


Issues

The core of Jira — full CRUD and lifecycle management for issues.

Tool

Description

get_issue

Get a single issue by ID or key, with optional field filtering

create_issue

Create a new issue in any project

edit_issue

Update issue fields (summary, description, assignee, status, etc.)

delete_issue

Permanently delete an issue

assign_issue

Assign or unassign an issue to a user

bulk_create_issue

Create multiple issues in a single request

bulk_fetch_issues

Fetch multiple issues by ID or key

get_create_issue_metadata

Get required fields and allowed values for issue creation

get_create_metadata_issue_types_for_a_project

Get issue type metadata for a project

get_create_field_metadata_for_a_project_and_issue_type_id

Get field metadata for a specific project/issue type

get_edit_issue_metadata

Get editable fields and their allowed values for an issue

get_changelogs

Get the full history of changes for an issue

get_changelogs_by_i_ds

Fetch changelogs for specific IDs

bulk_fetch_changelogs

Bulk-fetch changelogs across multiple issues

get_transitions

Get available workflow transitions for an issue

transition_issue

Move an issue to a new status via a workflow transition

send_notification_for_issue

Send an email notification about an issue

get_events

Get all Jira event types

archive_issue_s_by_jql

Archive issues matching a JQL query

archive_issue_s_by_issue_id_key

Archive issues by ID or key

unarchive_issue_s_by_issue_keys_id

Unarchive issues

export_archived_issue_s

Export archived issues

get_issue_limit_report

Get report on issues approaching field limits


Find issues using Jira Query Language (JQL).

Tool

Description

search_for_issues_using_jql_enhanced_search

Search using JQL with enhanced pagination (GET)

search_for_issues_using_jql_enhanced_search_post

Search using JQL with enhanced pagination (POST, for long JQL)

count_issues_using_jql

Count total issues matching a JQL filter

check_issues_against_jql

Validate whether issues match a JQL query

get_issue_picker_suggestions

Autocomplete suggestions for the issue picker


Issue Comments

Tool

Description

get_comments

List all comments on an issue

add_comment

Add a new comment to an issue

get_comment

Get a specific comment by ID

update_comment

Update the text of an existing comment

delete_comment

Delete a comment

get_comments_by_i_ds

Fetch multiple comments by their IDs


Issue Worklogs

Tool

Description

get_issue_worklogs

List all worklogs on an issue

add_worklog

Log time spent on an issue

get_worklog

Get a specific worklog entry

update_worklog

Update a worklog entry

delete_worklog

Delete a worklog entry

bulk_delete_worklogs

Delete multiple worklogs at once

bulk_move_worklogs

Move worklogs to a different issue

get_worklogs

Fetch worklogs by their IDs

get_i_ds_of_deleted_worklogs

Get IDs of worklogs deleted since a timestamp

get_i_ds_of_updated_worklogs

Get IDs of worklogs updated since a timestamp


Issue Attachments

Tool

Description

add_attachment

Upload a file attachment to an issue

get_attachment_metadata

Get metadata for an attachment

delete_attachment

Delete an attachment

get_attachment_content

Download attachment content

get_attachment_thumbnail

Get attachment thumbnail image

get_all_metadata_for_an_expanded_attachment

Get archive contents metadata

get_contents_metadata_for_an_expanded_attachment

Get individual archive entry metadata

get_jira_attachment_settings

Get global attachment settings (size limits, enabled state)


Tool

Description

create_issue_link

Link two issues together (blocks, duplicates, relates to, etc.)

get_issue_link

Get an issue link by ID

delete_issue_link

Remove a link between issues


Link issues to external resources (URLs, Confluence pages, etc.).

Tool

Description

get_remote_issue_links

List all remote links on an issue

create_or_update_remote_issue_link

Create or update a remote link

delete_remote_issue_link_by_global_id

Delete a remote link by its global ID

get_remote_issue_link_by_id

Get a specific remote link

update_remote_issue_link_by_id

Update a remote link

delete_remote_issue_link_by_id

Delete a remote link by ID


Issue Votes & Watchers

Tool

Description

get_votes

Get the number of votes and voters for an issue

add_vote

Vote for an issue

delete_vote

Remove your vote from an issue

get_issue_watchers

Get all users watching an issue

add_watcher

Add a user as a watcher

delete_watcher

Remove a watcher from an issue

get_is_watching_issue_bulk

Check if the current user watches multiple issues


Issue Bulk Operations

Tool

Description

bulk_edit_issues

Edit multiple issues simultaneously

bulk_delete_issues

Delete multiple issues at once

bulk_move_issues

Move issues between projects

bulk_transition_issue_statuses

Transition multiple issues to a new status

bulk_watch_issues

Watch multiple issues at once

bulk_unwatch_issues

Stop watching multiple issues at once

get_bulk_editable_fields

Get fields editable in a bulk operation

get_available_transitions

Get available transitions for a bulk move

get_bulk_issue_operation_progress

Poll the progress of a running bulk operation


Issue Properties

Key-value metadata attached to issues (for use by apps and integrations).

Tool

Description

get_issue_property_keys

List all property keys on an issue

get_issue_property

Get a single issue property value

set_issue_property

Set an issue property

delete_issue_property

Delete an issue property

bulk_set_issues_properties_by_list

Set a property on multiple issues

bulk_set_issue_properties_by_issue

Set multiple properties on a single issue

bulk_set_issue_property

Bulk-set a property across many issues

bulk_delete_issue_property

Bulk-delete a property from many issues


Projects

Tool

Description

get_all_projects

List all projects (simple, for dropdowns)

create_project

Create a new Jira project

get_projects_paginated

Search and page through projects

get_recent_projects

Get recently viewed projects

get_project

Get a project by ID or key

update_project

Update project settings (name, lead, category, etc.)

delete_project

Delete a project

archive_project

Archive a project

restore_deleted_or_archived_project

Restore an archived or deleted project

delete_project_asynchronously

Delete a project in the background

get_all_statuses_for_project

Get all available statuses for a project

get_project_issue_type_hierarchy

Get the issue type hierarchy for a project

get_project_notification_scheme

Get the notification scheme assigned to a project


Project Components

Tool

Description

create_component

Create a project component

get_component

Get a component by ID

update_component

Update a component

delete_component

Delete a component

get_component_issues_count

Get count of issues in a component

get_project_components

List all components in a project

get_project_components_paginated

Page through project components

find_components_for_projects

Find components across projects


Project Versions

Manage fix versions and release milestones.

Tool

Description

create_version

Create a project version (release)

get_version

Get a version by ID

update_version

Update version details

delete_version

Delete a version

get_project_versions

List all versions in a project

get_project_versions_paginated

Page through project versions

merge_versions

Merge two versions

move_version

Reorder a version

delete_and_replace_version

Delete a version and remap issues to another

get_version_s_related_issues_count

Get issue counts by status for a version

get_version_s_unresolved_issues_count

Get count of unresolved issues in a version

get_related_work

Get related work items linked to a version

create_related_work

Add a related work link to a version

update_related_work

Update a related work link

delete_related_work

Remove a related work link


Project Roles & Actors

Tool

Description

get_project_roles_for_project

List all roles in a project

get_project_role_for_project

Get a specific role in a project

get_all_project_roles

List all roles defined globally

create_project_role

Create a new project role

get_project_role_by_id

Get a project role by ID

fully_update_project_role

Fully replace a project role definition

partial_update_project_role

Partially update a project role

delete_project_role

Delete a project role

get_project_role_details

Get role details including actor information

add_actors_to_project_role

Add users or groups to a project role

set_actors_for_project_role

Replace all actors in a project role

delete_actors_from_project_role

Remove actors from a project role

get_default_actors_for_project_role

Get default actors for a global role

add_default_actors_to_project_role

Add default actors to a global role

delete_default_actors_from_project_role

Remove default actors from a global role


Project Properties

Tool

Description

get_project_property_keys

List property keys for a project

get_project_property

Get a project property value

set_project_property

Set a project property

delete_project_property

Delete a project property


Project Avatars

Tool

Description

get_all_project_avatars

Get all avatars for a project

load_project_avatar

Upload a custom project avatar

set_project_avatar

Set the active avatar for a project

delete_project_avatar

Delete a custom project avatar


Project Categories

Tool

Description

get_all_project_categories

List all project categories

create_project_category

Create a new project category

get_project_category_by_id

Get a category by ID

update_project_category

Update a project category

delete_project_category

Delete a project category


Project Types

Tool

Description

get_all_project_types

List all available project types

get_licensed_project_types

List project types available for your license

get_project_type_by_key

Get a project type by key

get_accessible_project_type_by_key

Get an accessible project type by key


Project Templates

Tool

Description

create_custom_project

Create a project from a custom template

save_a_custom_project_template

Save a project configuration as a template

gets_a_custom_project_template

Retrieve a saved project template

edit_a_custom_project_template

Update a project template

deletes_a_custom_project_template

Delete a project template


Project Email & Features

Tool

Description

get_project_s_sender_email

Get the sender email for a project

set_project_s_sender_email

Set the sender email for a project

get_project_features

List features enabled on a project

set_project_feature_state

Enable or disable a project feature


Project Classification Levels

Tool

Description

get_the_classification_configuration_for_a_project

Get classification settings for a project

get_the_default_data_classification_level_of_a_project

Get the default classification level

update_the_default_data_classification_level_of_a_project

Set the default classification level

remove_the_default_data_classification_level_from_a_project

Remove the default classification level


Project Permission Schemes

Tool

Description

get_assigned_permission_scheme

Get the permission scheme assigned to a project

assign_permission_scheme

Assign a permission scheme to a project

get_project_issue_security_scheme

Get the security scheme for a project

get_project_issue_security_levels

Get the security levels available in a project


Workflows

Tool

Description

get_all_workflows

List all workflows

create_workflow

Create a new workflow

get_workflows_paginated

Search and page through workflows

delete_inactive_workflow

Delete a workflow that is not in use

bulk_get_workflows

Fetch multiple workflows by ID

bulk_create_workflows

Create multiple workflows in one request

bulk_update_workflows

Update multiple workflows at once

validate_create_workflows

Validate workflow definitions before creating

validate_update_workflows

Validate workflow changes before applying

get_available_workflow_capabilities

Get all available workflow rules and conditions

preview_workflow

Preview what a workflow will look like

search_workflows

Search workflows by name or other criteria

get_projects_using_a_given_workflow

List projects using a specific workflow

get_workflow_schemes_which_are_using_a_given_workflow

List schemes using a workflow

get_issue_types_in_a_project_that_are_using_a_given_workflow

Get issue types linked to a workflow

read_workflow_version_from_history

Retrieve a past version of a workflow

list_workflow_history_entries

Get the change history of a workflow

get_the_user_s_default_workflow_editor

Get the user's preferred workflow editor


Workflow Schemes

Tool

Description

get_all_workflow_schemes

List all workflow schemes

create_workflow_scheme

Create a new workflow scheme

bulk_get_workflow_schemes

Fetch multiple workflow schemes by ID

update_workflow_scheme

Update a workflow scheme (modern API)

classic_update_workflow_scheme

Update a workflow scheme (classic API)

delete_workflow_scheme

Delete a workflow scheme

switch_workflow_scheme_for_project

Change the active workflow scheme for a project

get_workflow_scheme

Get a workflow scheme by ID

get_default_workflow

Get the default workflow for a scheme

update_default_workflow

Set the default workflow for a scheme

delete_default_workflow

Remove the default workflow from a scheme

get_workflow_for_issue_type_in_workflow_scheme

Get the workflow assigned to an issue type

set_workflow_for_issue_type_in_workflow_scheme

Assign a workflow to an issue type

delete_workflow_for_issue_type_in_workflow_scheme

Remove a workflow-to-issue-type mapping

get_issue_types_for_workflows_in_workflow_scheme

List issue type-to-workflow mappings

set_issue_types_for_workflow_in_workflow_scheme

Set issue type mappings for a workflow

delete_issue_types_for_workflow_in_workflow_scheme

Remove issue type mappings from a workflow

get_projects_which_are_using_a_given_workflow_scheme

List projects using a workflow scheme

get_required_status_mappings_for_workflow_scheme_update

Get required status mappings before updating

get_workflow_scheme_project_associations

Get project-to-scheme associations

assign_workflow_scheme_to_project

Assign a workflow scheme to a project


Workflow Scheme Drafts

Manage draft versions of workflow schemes before publishing.

Tool

Description

create_draft_workflow_scheme

Create a draft of a workflow scheme

get_draft_workflow_scheme

Get the draft of a workflow scheme

update_draft_workflow_scheme

Update the draft

delete_draft_workflow_scheme

Discard the draft

publish_draft_workflow_scheme

Publish the draft (replaces the live scheme)

get_draft_default_workflow

Get the default workflow in the draft

update_draft_default_workflow

Change the default workflow in the draft

delete_draft_default_workflow

Remove the default workflow from the draft

get_workflow_for_issue_type_in_draft_workflow_scheme

Get workflow mapping in draft

set_workflow_for_issue_type_in_draft_workflow_scheme

Set workflow mapping in draft

delete_workflow_for_issue_type_in_draft_workflow_scheme

Remove mapping from draft

get_issue_types_for_workflows_in_draft_workflow_scheme

Get all draft mappings

set_issue_types_for_workflow_in_workflow_scheme_1

Set issue type mappings in draft

delete_issue_types_for_workflow_in_draft_workflow_scheme

Delete issue type mappings in draft


Workflow Status Categories

Tool

Description

get_all_status_categories

List all status categories (To Do, In Progress, Done)

get_status_category

Get a status category by ID


Workflow Statuses

Tool

Description

get_all_statuses

List all issue statuses

get_status

Get a specific status by ID


Workflow Transition Rules & Properties

Tool

Description

get_workflow_transition_rule_configurations

Get validator/condition rules for transitions

update_workflow_transition_rule_configurations

Update transition rules

delete_workflow_transition_rule_configurations

Remove transition rules

get_workflow_transition_properties

Get properties on a workflow transition

create_workflow_transition_property

Add a property to a transition

update_workflow_transition_property

Update a transition property

delete_workflow_transition_property

Remove a transition property


Filters

Save and manage JQL-based issue filters.

Tool

Description

create_filter

Create a saved filter

get_filter

Get a filter by ID

update_filter

Update a saved filter

delete_filter

Delete a saved filter

search_for_filters

Search for filters by name or owner

get_my_filters

Get the current user's filters

get_favourite_filters

Get the current user's favourite filters

get_columns

Get the columns configured for a filter

set_columns

Set columns for a filter

reset_columns

Reset filter columns to defaults

add_filter_as_favourite

Mark a filter as a favourite

remove_filter_as_favourite

Remove a filter from favourites

change_filter_owner

Transfer ownership of a filter


Filter Sharing

Tool

Description

get_share_permissions

List who a filter is shared with

add_share_permission

Share a filter with a user, group, or project

get_share_permission

Get a specific share permission

delete_share_permission

Remove a share permission

get_default_share_scope

Get the default scope for new filter shares

set_default_share_scope

Set the default scope for new filter shares


Dashboards

Tool

Description

get_all_dashboards

List all dashboards

create_dashboard

Create a new dashboard

get_dashboard

Get a dashboard by ID

update_dashboard

Update dashboard settings

delete_dashboard

Delete a dashboard

copy_dashboard

Duplicate a dashboard

search_for_dashboards

Search dashboards by name

bulk_edit_dashboards

Update settings on multiple dashboards

get_gadgets

List gadgets on a dashboard

add_gadget_to_dashboard

Add a gadget to a dashboard

update_gadget_on_dashboard

Update a dashboard gadget

remove_gadget_from_dashboard

Remove a gadget from a dashboard

get_available_gadgets

List all available gadget types

get_dashboard_item_property_keys

Get property keys for a dashboard item

get_dashboard_item_property

Get a dashboard item property

set_dashboard_item_property

Set a dashboard item property

delete_dashboard_item_property

Delete a dashboard item property


Users

Tool

Description

get_user

Get a user by account ID

create_user

Create a new user account

delete_user

Delete a user account

bulk_get_users

Fetch multiple users by account ID

get_account_i_ds_for_users

Look up account IDs for usernames

get_user_default_columns

Get default columns for a user

set_user_default_columns

Set default issue navigator columns for a user

reset_user_default_columns

Reset user columns to defaults

get_user_email

Get a user's email address

get_user_email_bulk

Get email addresses for multiple users

get_user_groups

Get groups a user belongs to

get_all_users

List all users (paginated)

get_all_users_default

List all users (uses default pagination)


Tool

Description

find_users

Find users by display name or email

find_users_assignable_to_projects

Find users who can be assigned in specific projects

find_users_assignable_to_issues

Find users assignable to a specific issue

find_users_with_permissions

Find users who have specific permissions

find_users_with_browse_permission

Find users with browse permission on an issue

find_users_for_picker

Search users for the user picker UI

find_users_by_query

Find users using a structured query

find_user_keys_by_query

Find user keys using a query

find_users_and_groups

Combined user and group search


User Properties

Tool

Description

get_user_property_keys

List all property keys for a user

get_user_property

Get a user property value

set_user_property

Set a user property

delete_user_property

Delete a user property


Groups

Tool

Description

create_group

Create a new group

get_group

Get a group by name

delete_group

Delete a group

bulk_get_groups

Fetch multiple groups by ID

get_users_from_group

List members of a group

add_user_to_group

Add a user to a group

remove_user_from_group

Remove a user from a group

find_groups

Search for groups by name


Permissions & Permission Schemes

Tool

Description

get_my_permissions

Check what permissions the current user has

get_all_permissions

List all possible Jira permissions

get_bulk_permissions

Check permissions for specific users/projects

get_permitted_projects

Get projects where the user has a given permission

get_all_permission_schemes

List all permission schemes

create_permission_scheme

Create a permission scheme

get_permission_scheme

Get a permission scheme by ID

update_permission_scheme

Update a permission scheme

delete_permission_scheme

Delete a permission scheme

get_permission_scheme_grants

List all grants in a permission scheme

create_permission_grant

Add a grant to a permission scheme

get_permission_scheme_grant

Get a specific grant

delete_permission_scheme_grant

Remove a grant from a permission scheme


Issue Types

Tool

Description

get_all_issue_types_for_user

List all issue types available to the current user

create_issue_type

Create a new issue type

get_issue_type

Get an issue type by ID

update_issue_type

Update an issue type

delete_issue_type

Delete an issue type

get_issue_types_for_project

List issue types available in a project

get_alternative_issue_types

Get issue types the current type can be converted to

load_issue_type_avatar

Upload an avatar for an issue type


Issue Type Schemes

Group issue types into schemes assigned to projects.

Tool

Description

get_all_issue_type_schemes

List all issue type schemes

create_issue_type_scheme

Create a new issue type scheme

update_issue_type_scheme

Update a scheme

delete_issue_type_scheme

Delete a scheme

get_issue_type_scheme_items

Get issue types in a scheme

get_issue_type_schemes_for_projects

Get schemes for specific projects

assign_issue_type_scheme_to_project

Assign a scheme to a project

add_issue_types_to_issue_type_scheme

Add issue types to a scheme

change_order_of_issue_types

Reorder issue types in a scheme

remove_issue_type_from_issue_type_scheme

Remove an issue type from a scheme


Issue Type Screen Schemes

Map issue types to screen schemes.

Tool

Description

get_issue_type_screen_schemes

List all issue type screen schemes

create_issue_type_screen_scheme

Create a new scheme

update_issue_type_screen_scheme

Update a scheme

delete_issue_type_screen_scheme

Delete a scheme

get_issue_type_screen_scheme_items

Get mappings in a scheme

get_issue_type_screen_schemes_for_projects

Get schemes for specific projects

assign_issue_type_screen_scheme_to_project

Assign a scheme to a project

append_mappings_to_issue_type_screen_scheme

Add issue type-to-screen mappings

update_issue_type_screen_scheme_default_screen_scheme

Set the default screen scheme

remove_mappings_from_issue_type_screen_scheme

Remove issue type mappings

get_issue_type_screen_scheme_projects

List projects using a scheme


Issue Priorities

Tool

Description

get_priorities

List all priorities

create_priority

Create a new priority

get_priority

Get a priority by ID

update_priority

Update a priority

delete_priority

Delete a priority

set_default_priority

Set the default priority

move_priorities

Reorder priorities

search_priorities

Search priorities by name


Priority Schemes

Tool

Description

get_priority_schemes

List all priority schemes

create_priority_scheme

Create a priority scheme

update_priority_scheme

Update a priority scheme

delete_priority_scheme

Delete a priority scheme

get_priorities_by_priority_scheme

Get priorities in a scheme

get_available_priorities_by_priority_scheme

Get priorities available to add to a scheme

get_projects_by_priority_scheme

Get projects using a scheme

suggested_priorities_for_mappings

Get suggested priority mappings


Issue Resolutions

Tool

Description

get_resolutions

List all resolutions

create_resolution

Create a new resolution

get_resolution

Get a resolution by ID

update_resolution

Update a resolution

delete_resolution

Delete a resolution

set_default_resolution

Set the default resolution

move_resolutions

Reorder resolutions

search_resolutions

Search resolutions by name


Issue Fields

Tool

Description

get_fields

List all fields (system + custom)

create_custom_field

Create a new custom field

get_fields_paginated

Page through fields

get_fields_in_trash_paginated

List custom fields in the trash

update_custom_field

Update a custom field definition

delete_custom_field

Permanently delete a custom field

restore_custom_field_from_trash

Restore a trashed custom field

move_custom_field_to_trash

Move a custom field to the trash

get_contexts_for_a_field

List all contexts for a custom field

get_fields_for_projects

Get fields available in specific projects


Issue Field Configurations

Tool

Description

get_all_field_configurations

List all field configurations

create_field_configuration

Create a field configuration

update_field_configuration

Update a field configuration

delete_field_configuration

Delete a field configuration

get_field_configuration_items

Get fields in a configuration

update_field_configuration_items

Update field settings within a configuration

get_all_field_configuration_schemes

List all field configuration schemes

create_field_configuration_scheme

Create a field configuration scheme

update_field_configuration_scheme

Update a scheme

delete_field_configuration_scheme

Delete a scheme

get_field_configuration_issue_type_items

Get issue type-to-field config mappings

get_field_configuration_schemes_for_projects

Get schemes for specific projects

assign_field_configuration_scheme_to_project

Assign a scheme to a project

assign_issue_types_to_field_configurations

Map issue types to field configurations

remove_issue_types_from_field_configuration_scheme

Remove issue type mappings


Field Schemes

Tool

Description

get_field_schemes

List all field schemes

create_field_scheme

Create a field scheme

get_field_scheme

Get a field scheme by ID

update_field_scheme

Update a field scheme

delete_a_field_scheme

Delete a field scheme

clone_field_scheme

Clone an existing field scheme

get_projects_with_field_schemes

Get projects using a field scheme

associate_projects_to_field_schemes

Associate projects with a field scheme

search_field_scheme_fields

Search for fields in a scheme

get_field_parameters

Get parameters for a field in a scheme

update_field_parameters

Update field parameters

remove_field_parameters

Remove field parameters

search_field_scheme_projects

Search projects in a field scheme

get_fields_associated_with_field_schemes

Get fields associated with a scheme

remove_fields_associated_with_field_schemes

Remove field associations


Issue Custom Field Contexts

Tool

Description

get_custom_field_contexts

List all contexts for a custom field

create_custom_field_context

Create a context for a custom field

update_custom_field_context

Update a context

delete_custom_field_context

Delete a context

get_custom_field_contexts_default_values

Get default values for contexts

set_custom_field_contexts_default_values

Set default values for contexts

get_issue_types_for_custom_field_context

Get issue type-context mappings

get_custom_field_contexts_for_projects_and_issue_types

Get contexts by project/issue type

get_project_mappings_for_custom_field_context

Get project mappings for a context

add_issue_types_to_context

Add issue types to a context

remove_issue_types_from_context

Remove issue types from a context

assign_custom_field_context_to_projects

Assign a context to projects

remove_custom_field_context_from_projects

Remove a context from projects


Issue Custom Field Options

Tool

Description

get_custom_field_option

Get a specific custom field option

get_custom_field_options_context

List options for a custom field context

create_custom_field_options_context

Create new options

update_custom_field_options_context

Update existing options

reorder_custom_field_options_context

Reorder options

delete_custom_field_options_context

Delete options

replace_custom_field_options

Replace one option with another across issues


Issue Custom Field Values

Tool

Description

update_custom_fields

Update custom field values on issues (POST)

update_custom_field_value

Update a custom field value (PUT)

update_multiple_custom_field_values

Bulk update multiple custom field values


Issue Custom Field Configurations (Apps)

For Forge/Connect apps that manage custom field configurations.

Tool

Description

get_custom_fields_configurations

Bulk get custom field configurations

get_custom_field_configuration

Get configurations for a specific field

update_custom_field_configuration

Update custom field configurations


Issue Custom Field Options (Apps)

For Forge/Connect apps managing select field options.

Tool

Description

get_all_issue_field_options

List all options for an app-managed field

create_issue_field_option

Create a new field option

get_issue_field_option

Get a specific field option

update_issue_field_option

Update a field option

delete_issue_field_option

Delete a field option

replace_issue_field_option

Replace one option with another

get_selectable_issue_field_options

Get options visible in the issue create screen

get_visible_issue_field_options

Get options visible to the current user


Issue Custom Field Associations

Tool

Description

create_associations

Associate custom fields with contexts

remove_associations

Remove custom field associations


Screens

Tool

Description

get_screens

List all screens

create_screen

Create a new screen

update_screen

Update a screen

delete_screen

Delete a screen

get_screens_for_a_field

Get screens where a field appears

add_field_to_default_screen

Add a field to the default screen

get_available_screen_fields

Get fields available to add to a screen


Screen Tabs & Fields

Tool

Description

get_all_screen_tabs

List all tabs on a screen

create_screen_tab

Create a screen tab

update_screen_tab

Update a screen tab

delete_screen_tab

Delete a screen tab

move_screen_tab

Reorder screen tabs

get_bulk_screen_tabs

Get tabs across multiple screens

get_all_screen_tab_fields

List fields on a screen tab

add_screen_tab_field

Add a field to a screen tab

remove_screen_tab_field

Remove a field from a screen tab

move_screen_tab_field

Reorder fields within a screen tab


Screen Schemes

Tool

Description

get_screen_schemes

List all screen schemes

create_screen_scheme

Create a screen scheme

update_screen_scheme

Update a screen scheme

delete_screen_scheme

Delete a screen scheme


Status

Tool

Description

bulk_get_statuses

Fetch multiple statuses by ID

bulk_create_statuses

Create multiple statuses at once

bulk_update_statuses

Update multiple statuses

bulk_delete_statuses

Delete multiple statuses

bulk_get_statuses_by_name

Fetch statuses by name

search_statuses_paginated

Search and page through statuses

get_issue_type_usages_by_status_and_project

Find issue types using a status

get_project_usages_by_status

Find projects using a status

get_workflow_usages_by_status

Find workflows using a status


JQL

Tool

Description

get_field_reference_data

Get field metadata for JQL autocompletion (GET)

get_field_reference_data_post

Get field metadata for JQL autocompletion (POST)

get_field_auto_complete_suggestions

Get autocomplete suggestions for JQL fields

parse_jql_query

Parse and validate a JQL query

convert_user_identifiers_to_account_i_ds_in_jql_queries

Convert legacy usernames to account IDs

sanitize_jql_queries

Sanitize JQL queries for safe execution


Jira Expressions

Tool

Description

analyse_jira_expression

Analyse and validate a Jira expression

evaluate_jira_expression_using_enhanced_search_api

Evaluate a Jira expression


Avatars

Tool

Description

get_system_avatars_by_type

Get system-provided avatars (user, project, etc.)

get_avatars

Get avatars for a specific entity

load_avatar

Upload a new avatar

delete_avatar

Delete an avatar

get_avatar_image_by_type

Get a system avatar image

get_avatar_image_by_id

Get an avatar image by ID

get_avatar_image_by_owner

Get the avatar image for an entity


Audit Records

Tool

Description

get_audit_records

Get the Jira audit log with filtering by date and keyword


Webhooks

Tool

Description

get_dynamic_webhooks_for_app

List all dynamic webhooks for the app

register_dynamic_webhooks

Register new webhooks

delete_webhooks_by_id

Delete webhooks by ID

get_failed_webhooks

Get webhooks that failed to deliver

extend_webhook_life

Extend the expiry of registered webhooks


Myself

Tools for the currently authenticated user.

Tool

Description

get_current_user

Get the current user's profile

get_preference

Get a user preference setting

set_preference

Set a user preference

delete_preference

Delete a user preference

get_locale

Get the current user's locale

set_locale

Set the current user's locale


Server Info & Jira Settings

Tool

Description

get_jira_instance_info

Get the Jira instance version and server time

get_application_property

Get an application property

get_advanced_settings

Get all advanced configuration properties

set_application_property

Update an application property

get_global_settings

Get global Jira settings


Time Tracking

Tool

Description

get_all_time_tracking_providers

List all available time tracking providers

get_selected_time_tracking_provider

Get the currently active provider

select_time_tracking_provider

Switch the active time tracking provider

get_time_tracking_settings

Get time tracking format settings

set_time_tracking_settings

Update time tracking format settings


Labels

Tool

Description

get_all_labels

List all labels used across Jira


Plans & Teams in Plan

For Jira Advanced Planning (formerly Portfolio).

Tool

Description

get_plans_paginated

List all plans

create_plan

Create a new plan

get_plan

Get a plan by ID

update_plan

Update a plan

archive_plan

Archive a plan

duplicate_plan

Duplicate a plan

trash_plan

Move a plan to the trash

get_teams_in_plan_paginated

List all teams in a plan

add_atlassian_team_to_plan

Add an Atlassian team to a plan

get_atlassian_team_in_plan

Get a team in a plan

update_atlassian_team_in_plan

Update a team in a plan

remove_atlassian_team_from_plan

Remove a team from a plan

create_plan_only_team

Create a team that only exists in a plan

get_plan_only_team

Get a plan-only team

update_plan_only_team

Update a plan-only team

delete_plan_only_team

Delete a plan-only team


License Metrics

Tool

Description

get_license

Get license information

get_approximate_license_count

Get approximate total user count

get_approximate_application_license_count

Get user count per application


Issue Security Schemes & Levels

Tool

Description

get_issue_security_schemes

List all issue security schemes

create_issue_security_scheme

Create a security scheme

get_issue_security_scheme

Get a scheme by ID

update_issue_security_scheme

Update a security scheme

delete_issue_security_scheme

Delete a security scheme

get_issue_security_levels

List all security levels in a scheme

set_default_issue_security_levels

Set default security levels

add_issue_security_levels

Add security levels to a scheme

update_issue_security_level

Update a security level

remove_issue_security_level

Remove a security level

get_issue_security_level_members

Get members of a security level

add_issue_security_level_members

Add members to a security level

remove_member_from_issue_security_level

Remove a member from a security level

search_issue_security_schemes

Search security schemes

get_projects_using_issue_security_schemes

Get projects using a security scheme

associate_security_scheme_to_project

Assign a security scheme to a project

get_issue_security_level_members_by_issue_security_scheme

Get members by scheme

get_issue_security_level

Get a specific security level


Issue Notification Schemes

Tool

Description

get_notification_schemes_paginated

List all notification schemes

create_notification_scheme

Create a notification scheme

get_notification_scheme

Get a scheme by ID

update_notification_scheme

Update a notification scheme

delete_notification_scheme

Delete a notification scheme

add_notifications_to_notification_scheme

Add notification rules to a scheme

remove_notification_from_notification_scheme

Remove a notification rule

get_projects_using_notification_schemes_paginated

Get projects using a scheme


Tool

Description

get_issue_link_types

List all issue link types (blocks, clones, etc.)

create_issue_link_type

Create a new link type

get_issue_link_type

Get a link type by ID

update_issue_link_type

Update a link type

delete_issue_link_type

Delete a link type


Issue Navigator Settings

Tool

Description

get_issue_navigator_default_columns

Get the default columns for the issue navigator

set_issue_navigator_default_columns

Set the default columns


Application Roles

Tool

Description

get_all_application_roles

List all application roles

get_application_role

Get a specific application role by key


Announcement Banner

Tool

Description

get_banner

Get the current announcement banner configuration

set_banner

Update the announcement banner


Tasks

Long-running background tasks in Jira.

Tool

Description

get_task

Get the status and result of a background task

cancel_task

Cancel a running background task


App Properties & Dynamic Modules

Tool

Description

get_app_properties

List all properties for an app

get_app_property

Get a specific app property

set_app_property

Set an app property

delete_app_property

Delete an app property

get_modules

List dynamically registered modules

register_modules

Register new dynamic modules

remove_modules

Remove dynamic modules


Classification Levels

Tool

Description

get_all_classification_levels

Get all data classification levels defined for the workspace


Authentication

This server uses HTTP Basic Authentication with your Jira email address and a Jira API token. Credentials are transmitted securely over HTTPS.

Env Variable

Required

Description

JIRA_BASE_URL

Yes

Your Jira Cloud URL, e.g. https://yourcompany.atlassian.net

JIRA_EMAIL

Yes

The email address of your Jira account

JIRA_API_TOKEN

Yes

An API token generated in your Atlassian account settings

JIRA_MCP_RATE_LIMIT

No

Max tool calls per second (default: 10)

To generate an API token:

  1. Go to https://id.atlassian.com/manage-profile/security/api-tokens

  2. Click Create API token

  3. Copy the token value and add it to your .env file

Your Jira permissions determine what each tool can access. The server will return Jira's native 403 Forbidden or 404 Not Found errors if you lack the necessary permissions for a given operation.


Security

This server is fully compliant with the MCP specification security requirements:

  • Input validation — all tool arguments are validated against their JSON Schema before execution (via jsonschema.validate before dispatching to the Jira API).

  • Rate limiting — a token-bucket rate limiter (default: 10 calls/sec) protects against runaway tool invocations. Tune with JIRA_MCP_RATE_LIMIT.

  • Output sanitization — every Jira API response is recursively scanned before being returned. Values for sensitive keys (password, token, secret, apikey, authorization, credential, etc.) are replaced with [REDACTED]. Strings longer than 10,000 characters are truncated.

  • Structured output validation — tools that have a defined response schema (outputSchema) have their structured results validated by the SDK before they reach the client.

  • Credentials never logged — authentication details are read from environment variables at startup and never written to logs or stdout.

  • Error isolation — tool execution errors (HTTP failures, invalid inputs) are returned as isError: true results, not as protocol-level JSON-RPC errors, so the client always receives a clean, usable response.


Troubleshooting

Server does not start

  • Ensure uv is installed: ~/.local/bin/uv --version

  • Ensure dependencies are installed: ~/.local/bin/uv sync

  • Check that your .env file exists and has all three required variables

Authentication errors (401 Unauthorized)

  • Verify JIRA_EMAIL matches the email on your Atlassian account exactly

  • Ensure the API token is valid and hasn't been revoked

  • Confirm JIRA_BASE_URL has no trailing slash

403 Forbidden on operations

  • Your Jira account may lack the required permissions

  • Contact your Jira administrator to grant the necessary access

404 Not Found

  • Check that the issue key, project key, or ID you are using is correct

  • Ensure you are pointing at the right Jira instance (JIRA_BASE_URL)

Tool not found / server not listed in AI tool

  • Confirm the --directory path in your MCP config points to the correct location

  • Restart your AI tool after updating the MCP configuration

  • On Claude Code, run claude mcp list to verify the server is registered

Available Tools

62 tools
add_attachmentD

Add attachment

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesRequest body (JSON object)
issueIdOrKeyYesThe ID or key of the issue that attachments are added to.

TDQS

D1.9/5.0
Behavior1/5

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

With no annotations, the description carries the full burden of behavioral disclosure, but it only says 'Add attachment.' It does not mention that this is a write operation, what side effects occur, whether authentication or permissions are needed, or any constraints around attachment content or size.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short, but it earns no place because it merely repeats the tool name. This is under-specification rather than concise helpful writing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter tool with no output schema, the description and even the schema leave critical gaps: the body is only described as 'Request body (JSON object)' with generic object items, and there is no indication of required attachment payload structure or how the endpoint behaves. An agent cannot confidently invoke this tool correctly from this definition.

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 documents issueIdOrKey and body. The description adds no parameter meaning beyond what the schema provides, which keeps this at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Add attachment' restates the tool name almost verbatim and adds no scope. It names a verb and resource, so it minimally separates add_attachment from get_attachment, but it does not clarify what kind of attachment, where it is added, or how it is supplied.

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 given about when to use this tool versus alternatives such as add_comment, add_worklog, or get_attachment. There are no exclusions, prerequisites, or context signals to help an agent choose it correctly.

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

add_commentD

Add comment

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesRequest body (JSON object)
expandNoUse [expand](#expansion) to include additional information about comments in the response. This parameter accepts `rende
issueIdOrKeyYesThe ID or key of the issue.

TDQS

D1.9/5.0
Behavior1/5

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

No annotations are supplied, so the description carries the full burden of behavioral disclosureand two words carry none of it. It never mentions that this is a mutating operation on an issue, whether it is reversible, whether permissions are required, or what the response looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two words is underspecification, not conciseness. There is no front-loaded key constraint and no explanatory structure; every useful fact an agent needs is absent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutating tool with a nested request object, required issueIdOrKey, no output schema, and many comment-related siblings, this description is severely incomplete. It omits the target resource, behavior, and response information entirely.

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 even though the description adds nothing about parameters. However, the body parameter's schema is misleading for a request object—it lists response-style fields like id, author, created, and self—and its description 'Request body (JSON object)' is unhelpful; the tool description does nothing to clarify the expected payload.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Add comment' restates the tool name with no additional information. It supplies a verb and resource but never names the target (an issue), and nothing distinguishes it from siblings like update_comment, delete_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 is provided at all. The description gives no context for when to choose add_comment over update_comment, delete_comment, or get_comments, and states no conditions or prerequisites.

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

add_voteD

Add vote

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdOrKeyYesThe ID or key of the issue.

TDQS

D1.9/5.0
Behavior1/5

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

There are no annotations, so the description must carry the behavioral disclosure burden. 'Add vote' reveals only the basic action and adds no information about permissions, reversibility, idempotency, side effects, or response behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is terse, but it is under-specified rather than helpfully concise. It restates the tool name and offers no structured information that would help an agent invoke or select the tool correctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, this description is not complete enough. It omits the target resource, the expected effect beyond 'vote', and any relationship to related vote/watcher tools, so an agent cannot confidently understand the tool's full 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% and the parameter issueIdOrKey is already described as 'The ID or key of the issue.' The description adds no additional parameter semantics, which is acceptable given full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Add vote' is essentially the tool name repeated, so it provides no independent clarification of what the tool does. It does not explicitly state that a vote is added to an issue, even though the only parameter is issueIdOrKey.

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 given about when to use add_vote versus the related siblings remove_vote or get_votes. The description does not mention whether the vote is for the current user, whether prior votes matter, or any condition that would favor this tool.

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

add_watcherC

Add watcher

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesThe account ID of the user. Note that username cannot be used due to privacy changes.
issueIdOrKeyYesThe ID or key of the issue.

TDQS

C2.2/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden of behavioral disclosure. It only states the core action and says nothing about permission requirements, duplicate watcher handling, whether existing watchers are overwritten, or what happens on failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short, but this is under-specification rather than effective conciseness. It provides no contextual structure or front-loaded details that help the agent understand the operation.

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?

For a mutating tool with no annotations and no output schema, the description should clarify scope, effects, and usage context. 'Add watcher' is not sufficient for an agent to confidently invoke the tool, especially given the large set of sibling tools.

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 both 'body' and 'issueIdOrKey' already documented. The description itself adds no parameter meaning beyond what the schema provides, 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.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Add watcher' is a near-verbatim restatement of the tool name 'add_watcher', making it essentially tautological. It identifies the general action and resource but does not specify the target (e.g., an issue) or differentiate itself meaningfully from related tools beyond the obvious.

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 usage guidance is provided. The description does not state when to use this tool instead of remove_watcher, get_issue_watchers, or add_vote, nor does it mention any prerequisites or conditions.

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

add_worklogD

Add worklog

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesRequest body (JSON object)
expandNoUse [expand](#expansion) to include additional information about work logs in the response. This parameter accepts `prop
reduceByNoThe amount to reduce the issue's remaining estimate by, as days (\#d), hours (\#h), or minutes (\#m). For example, *2d*.
newEstimateNoThe value to set as the issue's remaining time estimate, as days (\#d), hours (\#h), or minutes (\#m or \#). For example
notifyUsersNoWhether users watching the issue are notified by email.
issueIdOrKeyYesThe ID or key the issue.
adjustEstimateNoDefines how to update the issue's time estimate, the options are: * `new` Sets the estimate to a specific value, defiauto
overrideEditableFlagNoWhether the worklog entry should be added to the issue even if the issue is not editable, because jira.issue.editable se

TDQS

D1.9/5.0
Behavior1/5

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

With no annotations provided, the description carries full responsibility for behavioral disclosure. It states no side effects, permissions, notification behavior, estimate-adjustment implications, or response semantics. The only behavioral signal is the verb 'Add', which is already obvious from the tool name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short, but this is under-specification rather than effective conciseness. Every other dimension suffers from the absence of detail, and the two-word description does not earn its place by conveying any useful information beyond the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 8 parameters, a nested body object, no annotations, no output schema, and many closely related siblings, this description is completely inadequate. An agent cannot determine the required body format, the meaning of worklog fields, or how the operation affects the issue's time estimate from this definition.

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 even though the description adds no parameter information. The schema provides descriptions for most top-level parameters, though some are truncated and the nested 'body' object's fields lack individual descriptions. The tool description itself adds no semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Add worklog' simply restates the tool name 'add_worklog' without explaining what a worklog is, what it records, or how it relates to an issue. It is a tautology rather than a meaningful definition, and it provides no distinction from sibling worklog tools like update_worklog or get_issue_worklog.

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 such as add_comment, update_worklog, or get_issue_worklog. There is no mention of prerequisites, required issue context, or typical use cases, leaving the agent to infer entirely from the tool name and schema.

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

assign_issueD

Assign issue

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesThe request object with the user that the issue is assigned to.
issueIdOrKeyYesThe ID or key of the issue to be assigned.

TDQS

D1.9/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 the full burden of behavioral disclosure. The description only repeats the tool name and fails to explain what the operation does, whether it replaces the current assignee, what permissions are required, or what the response contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short but this is under-specification rather than efficient conciseness. Two words cannot provide the information an agent needs to invoke the tool correctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, and a nested body object, the definition needs meaningful behavioral and contextual detail. The description is completely inadequate: it omits what assigning means, what the response looks like, and how the body object should be populated.

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 both parameters described in the schema: issueIdOrKey identifies the issue and body holds the user object. The tool description itself adds nothing about the parameters, but the schema already documents them sufficiently, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Assign issue' is a tautology that simply restates the tool name. It gives no detail about what assignment means (e.g., setting an assignee on an issue) and does nothing to distinguish this tool from its many issue-related siblings.

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 edit_issue or do_transition. There is no mention of prerequisites, typical use cases, or exclusions.

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

bulk_fetch_issuesC

Bulk fetch issues

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesA JSON object containing the information about which issues and fields to fetch.

TDQS

C2.4/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. 'Fetch' weakly implies a read-only operation, but the description does not mention response format, error behavior, handling of missing issues, rate limits, or any other important runtime behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, but this is under-specification rather than effective conciseness. It provides no additional structure or useful detail beyond what the tool name already communicates.

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 a nested body schema, optional controls, no output schema, and no annotations, so the description should provide more operational context. It neither explains return values nor clarifies the purpose of the optional parameters, leaving an agent to infer too much from the schema alone.

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 reported as 100%, so the baseline is 3. The description itself adds no parameter detail, though the body description does say the object contains information about which issues and fields to fetch. Optional parameters like expand, fields, properties, and fieldsByKeys remain semantically unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('fetch issues'), and 'bulk' weakly distinguishes it from single-issue tools like get_issue. However, it is almost a restatement of the tool name and does not clarify what 'bulk' means, what issue identifiers are accepted, or what distinguishes this from search-based issue retrieval.

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?

There is no guidance on when to use this tool versus alternatives such as get_issue or JQL search tools. The schema implies issueIdsOrKeys, but the description provides no conditions, exclusions, or reasons to prefer this tool.

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

create_componentC

Create component

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesRequest body (JSON object)

TDQS

C2.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full disclosure burden, and 'Create component' only signals a mutating operation — information already carried by the name itself. It says nothing about permissions, side effects, idempotency, or what happens on duplicate names. Slightly more informative than a bare noun but far short of what an unannotated mutation tool requires.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two words with no redundancy, but this is under-pecification rather than conciseness. A tool with a 16-field nested request body and no output schema cannot be usefully described in a single phrase. There are no sentences earning their place because there is effectively no content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Completely inadequate for the tool's complexity: no output schema, no annotations, a nested object parameter, and 60+ siblings to disambiguate from. An agent has no way to know what a component is, which fields matter, what the response contains, or how this differs from create_version or create_issue. Nothing necesary for correct invocation is conveyed.

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% at the top level, meeting the >80% threshold, so the baseline of 3 applies even though the description adds nothing about parameters. The body description 'Request body (JSON object)' is generic, and none of the 16 nested fields are documented in the description, but the rule grants baseline credit for the covered schema. The description itself contributes zero semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Create component' is a near-verbatim restatement of the tool name 'create_component', making it a tautology. It fails to specify what kind of component (Jira project component, implied by the sibling set) or how it differs from the many other creation tools. No resource scope, context, or differentiating detail is provided.

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?

There is zero guidance on when to invoke this tool versus alternatives like create_version, create_issue, or get_project_component. No context, conditions, exclusions, or alternative routing is offered anywhere in the description.

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

create_issueD

Create issue

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesRequest body (JSON object)
updateHistoryNoWhether the project in which the issue is created is added to the user's **Recently viewed** project list, as shown unde

TDQS

D1.9/5.0
Behavior1/5

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

No annotations are provided and the description discloses no behavioral traits. It does not mention side effects, required fields, permissions, or result handling. The description carries almost no information beyond the tool name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short but under-specified rather than appropriately concise. A two-word description is not sufficient for a nested-parameter creation operation and leaves nearly all meaning to the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with nested objects, no output schema, no annotations, and a large sibling set, the description is severely incomplete. An agent cannot determine how to construct a valid issue body, what the API expects, or what success looks like.

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. However, the schema descriptions are weak: body is only described as 'Request body (JSON object)' and updateHistory's description is truncated. The tool description itself adds no parameter-level meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Create issue' simply restates the tool name and provides a generic verb+resource pair. It does not explain what kind of issue, what system is involved, or how this differs from create_issues or edit_issue.

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?

There is no guidance about when to use this tool versus alternatives such as create_issues, submit_bulk_create, or edit_issue. No conditions, exclusions, or prefered scenarios are given.

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

create_issuesB

Bulk create issue

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesRequest body (JSON object)

TDQS

B3/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. 'Bulk create issue' only indicates a write operation and bulk behavior; it does not mention failure modes, partial success, limits, authentication needs, or 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, but it is under-specified rather than efficiently complete. There is no structure or additional context to help an agent understand the bulk creation semantics or request format.

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, no annotations, and a nested input body, the tool needs more contextual detail. The description does not explain how issueUpdates should be formed, what constraints exist, or what the bulk operation returns.

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% for the single body parameter, so the baseline is 3 even though the description itself adds no parameter-level meaning. The schema describes body as 'Request body (JSON object)' but does not explain the issueUpdates items; however, per the rubric, high coverage keeps this at 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 'Bulk create issue' clearly states the verb (create), the resource (issue), and the bulk qualifier, which distinguishes it from the sibling tool create_issue. This is specific enough for an agent to identify the tool's core purpose.

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?

There is no guidance about when to use this tool versus alternatives such as create_issue, submit_bulk_edit, or bulk_fetch_issues. The description does not mention any conditions, exclusions, or preferred contexts.

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

create_versionD

Create version

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesRequest body (JSON object)

TDQS

D1.9/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 the full burden of behavioral disclosure. It only states the action 'create' with no information about side effects, required context, permissions, validation, or consequences. This is no more informative than the tool name itself.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two words is under-specification rather than effective conciseness. The description is minimal but fails to communicate anything beyond the name, so it does not earn its place as a useful explanatory sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a nested body schema with many properties, no annotations, and no output schema, a two-word description is entirely inadequate. An agent cannot determine what a 'version' is, what response to expect, or how to construct a correct request.

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 even though the description adds no parameter-level meaning. The schema documents 'body' as a request object with many properties, but the description gives no hints about which fields matter or how to construct a valid version.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Create version' is essentially a verbatim restatement of the tool name 'create_version'. It names the action and resource but adds no detail, and it does not distinguish this operation from sibling create tools like create_component 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 Guidelines2/5

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

There is no guidance about when to use this tool versus alternatives. No context is provided about prerequisites, when creating a version is appropriate, or how it differs from related project/version operations.

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

delete_commentC

Delete comment

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe ID of the comment.
issueIdOrKeyYesThe ID or key of the issue.

TDQS

C2.2/5.0
Behavior2/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, but it only says 'Delete'. It does not reveal that deletion is permanent, whether special permissions are required, any cascading effects, or what happens to associated data. The minimal phrase offers no transparency beyond the obvious destructive intent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two words, but this is under-specification rather than true conciseness. It omits necessary context that could help an agent use or select the tool correctly. Every sentence should earn its place, and here the lone phrase contributes little beyond what the name already says.

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?

For a destructive operation with no annotations and no output schema, the description is far too sparse. It fails to mention irreversibility, required issue/comment context, or any behavioral notes. An agent on the edge between delete_comment and update_comment or get_comment gets no guidance on the consequences of the call.

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%: both required parameters (id and issueIdOrKey) have clear descriptions in the input schema. The tool description itself adds no parameter context, but per the baseline for full schema coverage, this is acceptable. No enum or nested object complexities exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Delete comment' is essentially a restatement of the tool name 'delete_comment'. It states a verb and resource but adds no specificity or differentiation beyond what the name already conveys. There is no mention of which comment, what context, or how it differs from sibling comment tools.

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 such as update_comment, get_comment, or add_comment. There is no mention of prerequisites, use cases, or exclusions, leaving the agent to infer usage from the name alone.

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

delete_issueD

Delete issue

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdOrKeyYesThe ID or key of the issue.
deleteSubtasksNoWhether the issue's subtasks are deleted when the issue is deleted.false

TDQS

D1.9/5.0
Behavior1/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 disclosing destructive behavior and side effects. It merely says 'Delete issue' and does not state that deletion is permanent, may cascade to subtasks, or may require specific permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

At two words, the description is minimal, but this is under-specification rather than effective conciseness. It lacks front-loaded behavioral or usage context, so it fails to earn a higher score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a destructive mutation tool with no annotations, no output schema, and a very sparse description. Critical context such as irreversibility, subtask behavior, permission requirements, and how the deleteSubtasks parameter affects the operation is completely absent.

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 schema documents both parameters including the enum and default for deleteSubtasks. The description adds no parameter-level meaning, but the baseline of 3 applies because the schema already does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Delete issue' simply restates the tool name, which is a tautology. It identifies the general action and resource but provides no differentiation from sibling tools like submit_bulk_delete, delete_issue_link, or delete_issue_property.

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?

There is no guidance on when to use this tool versus alternatives such as submit_bulk_delete for bulk operations or delete_issue_link for removing links. The description does not mislead, but it offers no contextual usage direction.

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

delete_issue_propertyC

Delete issue property

ParametersJSON Schema
NameRequiredDescriptionDefault
propertyKeyYesThe key of the property.
issueIdOrKeyYesThe key or ID of the issue.

TDQS

C2.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 carries the full burden of behavioral disclosure. 'Delete issue property' signals a destructive action but does not explain whether deletion is permanent, whether it fails for missing properties, or whether any related data or history is affected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short—only three words—and contains no unnecessary text. However, this is under-specification rather than effective conciseness, since it omits even brief context about effects, usage, or prerequisites.

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?

For a destructive operation with no annotations and no output schema, the description is incomplete. It does not address failure modes, irreversibility, permission requirements, or how the response is structured, leaving an agent without enough context to invoke the tool confidently in an operational scenario.

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 both parameters are adequately described in the schema itself. The description adds no additional parameter meaning, but given the high schema coverage, 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (delete) and a specific resource (issue property), which clearly differentiates it from siblings like get_issue_property and set_issue_property. However, it does not define what an issue property is or clarify its relationship to issues, leaving some ambiguity for an agent encountering the term for the first time.

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?

There is no guidance about when to use this tool versus alternatives such as set_issue_property or get_issue_property. The description does not mention prerequisites, side effects, or conditions that would make deletion appropriate.

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

delete_worklogC

Delete worklog

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe ID of the worklog.
increaseByNoThe amount to increase the issue's remaining estimate by, as days (\#d), hours (\#h), or minutes (\#m or \#). For exampl
newEstimateNoThe value to set as the issue's remaining time estimate, as days (\#d), hours (\#h), or minutes (\#m or \#). For example
notifyUsersNoWhether users watching the issue are notified by email.
issueIdOrKeyYesThe ID or key of the issue.
adjustEstimateNoDefines how to update the issue's time estimate, the options are: * `new` Sets the estimate to a specific value, defiauto
overrideEditableFlagNoWhether the work log entry should be added to the issue even if the issue is not editable, because jira.issue.editable s

TDQS

C2.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 that the tool deletes a worklog, without mentioning whether the deletion is permanent, how it affects issue time estimates, notifications, or any other 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short but under-specified rather than genuinely concise. It has no structured content, no sentence that earns its place beyond restating the tool name, and omits important context that could be conveyed in minimal additional text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive operation with seven parameters, no output schema, and no annotations, the description is severely incomplete. It does not explain required inputs, behavior, return value, or side effects, leaving an agent without enough information to invoke the tool correctly and 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%, and the schema already documents all seven parameters. The description adds no parameter-level meaning, but since the schema carries the burden, 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.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Delete worklog' is a direct restatement of the tool name delete_worklog. It names the action and resource but adds no additional specificity about scope, target, or effect, so it qualifies as a tautology rather than a substantive purpose statement.

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?

There is no guidance about when to use this tool versus alternatives. Sibling tools such as update_worklog, add_worklog, and get_worklog exist, but the description does not clarify when deletion is appropriate or how it differs from these related operations.

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

do_transitionC

Transition issue

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesRequest body (JSON object)
issueIdOrKeyYesThe ID or key of the issue.

TDQS

C2.3/5.0
Behavior2/5

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

There are no annotations, so the description bears the full burden of disclosing side effects. 'Transition issue' implies a state-changing workflow operation but says nothing about permissions, reversibility, validation errors, or the fact that the body must specify a valid transition.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two words is concise but crosses into under-specification. There is no fluff, but the description is too short to serve as a useful guide for a tool with a nested request body and several sibling variants.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, no annotations, and a nested body schema, the description is far too incomplete. An agent cannot tell what transition values are acceptable or what the result of a successful transition will look like.

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?

Parameter schema coverage is 100%, so the schema already documents issueIdOrKey and gives the body shape. The description adds no semantic detail about what should go in 'transition' or 'fields', but it does not need to compensate much because the schema is present.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The phrase 'Transition issue' states a clear verb and resource: the tool changes an issue's workflow status. However, it is too vague to distinguish do_transition from nearby siblings such as submit_bulk_transition or get_transitions, and it does not explain what a transition involves.

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 given about when to use this tool versus alternatives. An agent must infer from the name that it applies to a single-issue workflow transition, and it is not told to call get_transitions first or to use submit_bulk_transition for multiple issues.

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

edit_issueD

Edit issue

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesRequest body (JSON object)
expandNoThe Get issue API expand parameter to use in the response if the `returnIssue` parameter is `true`.
notifyUsersNoWhether a notification email about the issue update is sent to all watchers. To disable the notification, administer Jir
returnIssueNoWhether the response should contain the issue with fields edited in this request. The returned issue will have the same
issueIdOrKeyYesThe ID or key of the issue.
overrideEditableFlagNoWhether screen security is overridden to enable uneditable fields to be edited. Available to Connect and Forge app users
overrideScreenSecurityNoWhether screen security is overridden to enable hidden fields to be edited. Available to Connect and Forge app users wit

TDQS

D1.4/5.0
Behavior1/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, but it reveals nothing beyond the fact that an edit occurs. It fails to mention notification behavior, screen security overrides, whether the issue is returned, or any side effects, making it nearly useless for predicting tool behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short, but this is under-specification rather than conciseness. 'Edit issue' earns no space because it merely repeats the tool name without conveying any useful, non-redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a complex tool with seven parameters, a nested request body, and many related sibling tools, yet the description provides no context about how to structure an edit, what the response contains, or how this differs from other issue-modification tools. The absence of an output schema and annotations makes this even more inadequate.

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 of 3 applies. The description itself adds no parameter semantics, but the input schema already documents all seven parameters, including the nested body object, issueIdOrKey, expand, notifyUsers, returnIssue, and override flags.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Edit issue' is a tautology that restates the tool name without adding any information about what editing an issue entails. It does not distinguish this tool from siblings like do_transition, assign_issue, or submit_bulk_edit, which also modify issues in some way.

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

Usage Guidelines1/5

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

There is no guidance about when to use this tool versus alternatives. The description does not mention that it edits fields, applies transitions, or when to prefer do_transition or submit_bulk_edit instead, leaving the agent without routing information.

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

find_bulk_assignable_usersC

Find users assignable to projects

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoA query string that is matched against user attributes, such as `displayName` and `emailAddress`, to find relevant users
startAtNoThe index of the first item to return in a page of results (page offset).
usernameNoThis parameter is no longer available. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/
accountIdNoA query string that is matched exactly against user `accountId`. Required, unless `query` is specified.
maxResultsNoThe maximum number of items to return per page.
projectKeysYesA list of project keys (case sensitive). This parameter accepts a comma-separated list.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden of explaining behavior. It only states the read-oriented purpose and does not disclose pagination, default result limits, the deprecated username parameter, or the query/accountId mutual-exclusivity. This is a minimal disclosure for a search/list tool with no explicit behavior beyond 'find'.

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 six words and front-loads the core action and resource, with no filler. It earns its place as a title-like summary. However, the extreme brevity leaves useful usage and behavioral context for other dimensions rather than this one.

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?

This is a 6-parameter tool with one required key, no annotations, no output schema, and a close sibling find_users; the single-sentence description is not enough to select or invoke it confidently. Important operational details such as query/accountId exclusivity, pagination defaults, and distinction from find_users are absent. The description covers purpose only, so the overall definition is incomplete for correct invocation.

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 documents all six parameters with 100% coverage, so the baseline is 3. The description adds no parameter-specific meaning beyond framing projectKeys in the context of assignability. It does not clarify the relationship between query and accountId or the paging parameters.

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 uses a specific verb ('Find'), names the resource ('users'), and qualifies the scope ('assignable to projects'), which distinguishes it from generic siblings like find_users. It is concise and leaves little ambiguity about the action. It does not explicitly mention 'bulk' or contrast with sibling search tools, so it falls just short of top marks.

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 for when to use this tool rather than find_users or other user-related tools. There are no stated exclusions, prerequisites, or alternative conditions. The only implied usage is from the purpose phrase itself, so an agent must infer when this variant applies.

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

find_usersD

Find users

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoA query string that is matched against user attributes ( `displayName`, and `emailAddress`) to find relevant users. The
startAtNoThe index of the first item to return in a page of filtered results (page offset).
propertyNoA query string used to search properties. Property keys are specified by path, so property keys containing dot (.) or eq
usernameNo(query parameter)
accountIdNoA query string that is matched exactly against a user `accountId`. Required, unless `query` or `property` is specified.
maxResultsNoThe maximum number of items to return per page.

TDQS

D1.9/5.0
Behavior1/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 disclosing behavior, but 'Find users' discloses nothing: no mention of search semantics, pagination, result format, or idempotency. It neither confirms nor denies any behavioral traits, but it fails to provide the transparency the agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short and front-loaded, but it is under-specified rather than efficiently concise. It consists of a tautological two-word phrase and provides no structured or scoped information that would help an agent invoke the tool correctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given six parameters, zero required fields, no annotations, and no output schema, the description is far too incomplete. The agent is left unable to determine key invocation details such as which parameters are mutually exclusive, how paging works, or what the return value will be.

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 alreadily documents the parameters, including the conditional requirement on accountId. The description adds no additional meaning beyond what the schema provides, 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.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Find users' simply restates the tool name and provides no additional specification about which users are found, how matching works, or what scope the search covers. It does not differentiate this tool from related siblings like get_user or find_bulk_assignable_users.

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?

There is no guidance about when to use this tool versus alternatives such as get_user or find_bulk_assignable_users. The description offers no context, prerequisites, or exclusions, leaving the agent to infer usage from the parameter schema alone.

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

get_all_labelsA

Get all labels

ParametersJSON Schema
NameRequiredDescriptionDefault
startAtNoThe index of the first item to return in a page of results (page offset).
maxResultsNoThe maximum number of items to return per page.

TDQS

A3.5/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 behavioral disclosure. 'Get all labels' implies a complete retrieval, but the pagination parameters suggest this tool returns only one page; the description does not disclose that fact or explain how to obtain all labels.

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 words long, with no filler, and every word contributes meaning. It is a model of concise, front-loaded clarity.

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 read tool with optional pagination parameters, the description is minimally viable for a basic call. However, it lacks context about pagination behavior and return format, which matters when the agent needs to retrieve all labels beyond the default page size.

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 parameters 'startAt' and 'maxResults' are already fully documented in the schema. The description adds no additional meaning beyond what the schema provides, matching the baseline for high schema coverage.

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 'Get all labels' uses a specific verb ('Get') and a clearly identified resource ('all labels'), and there are no sibling tools with a similar or overlapping purpose, so an agent can unambiguously tell what this 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 Guidelines3/5

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

The name makes the intended use implicit: call this when labels need to be retrieved. However, the description gives no explicit guidance about when to prefer this tool, whether pagination should be iterated to truly get 'all' labels, or any exclusions/alternatives.

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

get_all_projectsC

Get all projects

ParametersJSON Schema
NameRequiredDescriptionDefault
expandNoUse [expand](#expansion) to include additional information in the response. This parameter accepts a comma-separated lis
recentNoReturns the user's most recently accessed projects. You may specify the number of results to return up to a maximum of 2
propertiesNoA list of project properties to return for the project. This parameter accepts a comma-separated list.

TDQS

C2.9/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 says 'Get all projects' and does not mention pagination, authorization scope, response size, or other behavioral traits.

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 extremely concise and front-loaded with no filler. It is slightly under-specified for the tool's context, but as a single-sentence definition it is efficient.

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 three optional parameters and no output schema, the description does not explain the return shape or usage context. An agent can infer the basic operation but not enough to confidently distinguish and invoke this tool over siblings.

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 parameters are already documented in the input schema. The tool description adds no parameter-specific meaning, but the schema covers the need.

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 states a clear verb ('Get') and resource ('all projects'), so an agent understands the basic operation. It does not distinguish itself from sibling tools like search_projects or get_project, preventing a 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 gives no guidance on when to use this tool versus alternatives such as search_projects or get_project. It provides no context, exclusions, or routing information despite many nearby sibling tools.

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

get_attachmentB

Get attachment metadata

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe ID of the attachment.

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. The word 'metadata' usefully signals that the tool returns attachment metadata rather than the binary attachment content, implying a read-only operation. However, it does not disclose authentication requirements, error behavior, or the shape of the returned metadata.

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, concise phrase with no filler. It earns its place by stating the core action and resource, though it lacks additional context that could make it more helpful.

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 read tool, the description plus schema is minimally sufficient: the agent knows what to call, what parameter to provide, and that the result is metadata. However, without an output schema or annotations, the description does not clarify what fields of metadata are returned or any special cases like missing or invalid attachment IDs.

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 schema already defines 'id' as 'The ID of the attachment.' The description adds no parameter-specific detail beyond that, but the schema fully covers the single parameter, 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the action ('Get') and the resource ('attachment metadata'), which is specific enough to distinguish it from siblings like add_attachment and get_issue. It stops short of a 5 because it does not explicitly differentiate itself from potential related tools or define what 'metadata' includes relative to the attachment content.

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 usage guidance is provided. The description does not state when to use this tool, when not to use it, or mention any alternative such as add_attachment for uploading or other issue-related retrieval tools.

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

get_change_logsD

Get changelogs

ParametersJSON Schema
NameRequiredDescriptionDefault
startAtNoThe index of the first item to return in a page of results (page offset).
maxResultsNoThe maximum number of items to return per page.
issueIdOrKeyYesThe ID or key of the issue.

TDQS

D1.9/5.0
Behavior1/5

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

With no annotations at all, the description carries the full burden for behavioral disclosure. It merely restates the action 'get' with no mention of what happens, what is returned, pagination behavior, ordering, or any side effects. This is a complete absence of behavioral information.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short, but this is under-specification rather than effective conciseness. Two words provide no meaningful structure or front-loaded context for the agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is inadequate for a 3-parameter tool with no output schema and no annotations. It leaves the agent unsure whether changelogs are for the issue specified by issueIdOrKey, how pagination works, or how this tool differs from get_change_logs_by_ids.

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 fully documents issueIdOrKey, startAt, and maxResults. The description adds no parameter-level detail, which meets the baseline but does not exceed it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get changelogs' is a direct paraphrase of the tool name and adds no new information. It fails to specify that these are issue changelogs or to distinguish this tool from the sibling get_change_logs_by_ids.

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 get_change_logs_by_ids. The description offers no context about scope, prerequisites, or selection criteria.

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

get_change_logs_by_idsC

Get changelogs by IDs

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesRequest body (JSON object)
issueIdOrKeyYesThe ID or key of the issue.

TDQS

C2.5/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 says 'Get', implying a read-only operation, but reveals nothing about required permissions, behavior with invalid changelog IDs, ordering of results, or error handling. The description is too minimal to give an agent confidence in side effects or limitations.

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?

The description is extremely terse and front-loaded with the verb, containing no filler words. However, it is a grammatical fragment rather than a clear sentence, and the brevity comes at the cost of important context. It is concise, but not ideally structured for comprehension.

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 no annotations, no output schema, and a nested parameter object, the description is under-specified. It does not mention that the tool requires an issue identifier plus a list of changelog IDs, nor does it describe what is returned or how invalid IDs are handled. An agent would need to inspect the schema and infer behavior from the sibling tool names, which is insufficient for a reliable invocation.

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 marked as 100%, so the schema already explains issueIdOrKey and the body structure. The description's 'by IDs' roughly maps to the changelogIds array but adds little beyond what the parameter names and schema already convey. It does not clarify that the IDs are changelog IDs or how they relate to the issueIdOrKey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a verb and resource ('Get changelogs') but the modifier 'by IDs' is ambiguous — it does not specify that these are changelog IDs for a specific issue. It does not clearly distinguish this tool from the sibling 'get_change_logs' (which likely returns all changelogs for an issue). The tool name hints at the meaning, but the description itself lacks precision.

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. The sibling tool list includes 'get_change_logs', which probably returns all changelogs for an issue, but no distinction or selection criteria is given. An agent would have to infer usage from the schema and tool name.

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

get_commentC

Get comment

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe ID of the comment.
expandNoUse [expand](#expansion) to include additional information about comments in the response. This parameter accepts `rende
issueIdOrKeyYesThe ID or key of the issue.

TDQS

C2.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 behavioral disclosure, but it only says 'Get comment'. It does not confirm read-only behavior, mention permissions, or explain the effect of the expand parameter. Minimal insight beyond the name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two words, which is under-specification rather than effective conciseness. It is front-loaded, but it omits essential context and does not earn its place as a useful description.

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?

For a tool with no output schema and no annotations, the description is too thin. It does not explain how to retrieve a comment, what the response looks like, or how this differs from get_comments or get_issue. An agent would struggle to choose this tool correctly from the large sibling list.

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 no parameter detail, but the schema already documents all three parameters clearly. The description neither helps nor hurts.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially a tautology: 'Get comment' merely restates the tool name without specifying what a comment is, what resource it operates on, or how it differs from get_comments. It provides a verb and resource but no distinguishing detail.

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?

There is no guidance on when to use this tool versus alternatives like get_comments, update_comment, or delete_comment. No context is given about required issue context or relationship to sibling tools.

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

get_commentsD

Get comments

ParametersJSON Schema
NameRequiredDescriptionDefault
expandNoUse [expand](#expansion) to include additional information about comments in the response. This parameter accepts `rende
orderByNo[Order](#ordering) the results by a field. Accepts *created* to sort comments by their created date.
startAtNoThe index of the first item to return in a page of results (page offset).
maxResultsNoThe maximum number of items to return per page.
issueIdOrKeyYesThe ID or key of the issue.

TDQS

D1.9/5.0
Behavior1/5

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

With no annotations, the description carries the full burden of behavioral disclosure, but 'Get comments' reveals nothing beyond the action itself. It does not mention read-only behavior, ordering, pagination defaults, or any other observable behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely terse, but this is under-specification rather than effective conciseness. There is no front-loaded context, alternatives, or behavioral detail; every meaningful piece of information is missing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has five parameters, no annotations, no output schema, and there are closely related siblings. A two-word description leaves out essential context such as what resource is being queried, how pagination works, and when to choose this over get_comment.

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 documents all five parameters. The description adds no parameter-level meaning, but the baseline of 3 applies because the schema handles the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is 'Get comments', which essentially restates the tool name and adds no new information. It does not specify that comments belong to an issue, nor does it differentiate this plural tool from the sibling 'get_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 provides no guidance on when to use this tool versus alternatives. It does not mention issue context, pagination use cases, or how this differs from 'get_comment' or 'add_comment'.

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

get_create_issue_metaC

Get create issue metadata

ParametersJSON Schema
NameRequiredDescriptionDefault
expandNoUse [expand](#expansion) to include additional information about issue metadata in the response. This parameter accepts
projectIdsNoList of project IDs. This parameter accepts a comma-separated list. Multiple project IDs can also be provided using an a
projectKeysNoList of project keys. This parameter accepts a comma-separated list. Multiple project keys can also be provided using an
issuetypeIdsNoList of issue type IDs. This parameter accepts a comma-separated list. Multiple issue type IDs can also be provided usin
issuetypeNamesNoList of issue type names. This parameter accepts a comma-separated list. Multiple issue type names can also be provided

TDQS

C2.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. The verb 'Get' implies a read-only operation, but the description does not state authentication requirements, response characteristics, filtering behavior, 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only one short sentence and is technically concise, but it is under-specified to the point of tautology. It provides no structured, usable content beyond repeating the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 5 optional parameters, no output schema, no annotations, and a large sibling tool set, the description is far too sparse. It does not explain what 'create issue metadata' includes, how the parameters constrain the result, or how this tool relates to create_issue and get_edit_issue_meta.

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 5 parameters, so the baseline of 3 applies. The description itself adds no parameter-level meaning, but the schema already documents each parameter sufficiently.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a near-verbatim restatement of the tool name ('Get create issue metadata'), adding no new information about what the metadata actually contains or its scope. It does not meaningfully differentiate from siblings like get_edit_issue_meta beyond the word 'create'.

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?

There is no guidance on when to use this tool versus alternatives such as get_edit_issue_meta, get_fields, or create_issue. The description does not mention that this is useful before creating an issue or how it differs from related metadata endpoints.

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

get_edit_issue_metaC

Get edit issue metadata

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdOrKeyYesThe ID or key of the issue.
overrideEditableFlagNoWhether non-editable fields are returned. Available to Connect and Forge app users with *Administer Jira* [global permis
overrideScreenSecurityNoWhether hidden fields are returned. Available to Connect and Forge app users with *Administer Jira* [global permission](

TDQS

C2.3/5.0
Behavior2/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, yet 'Get edit issue metadata' adds nothing beyond the name. The 'Get' verb weakly implies a read-only operation, but the description says nothing about what the response contains, authentication requirements, or how overrideEditableFlag and overrideScreenSecurity alter returned data. No contradiction with annotations exists because there are none.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four words with zero waste, but this is under-specification rather than genuine conciseness. The description is essentially a restatement of the tool name and omits definitional content that should come before any behavioral detail. Nothing is front-loaded because there is nothing to front-load.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and a param surface that includes two permission-gated boolean toggles, the description is the sole source of operational context — and it explains none of it. An agent cannot determine what the tool returns, when to call it, or what the override flags do, making reliable selection and invocation impossible from the description alone.

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 of 3 applies. The description itself contributes no parameter information, but the schema descriptions are serviceable: issueIdOrKey is self-explanatory, and the two booleans convey their purpose (returning non-editable/hidden fields) with permission caveats, though the permission strings appear truncated mid-sentence.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get') and resource ('edit issue metadata'), which on its face distinguishes it from edit_issue (the mutation itself) and get_create_issue_meta (the creation counterpart). However, it never defines what 'edit issue metadata' actually is — editable fields, field types, allowed values, screens — so an agent must infer the return semantic from the name alone. With roughly 70 siblings, the description does no explicit differentiation work.

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?

There is no guidance on when to invoke this tool versus the closely related get_create_issue_meta, edit_issue, or get_issue. The natural pre-edit workflow is only implied by the name ('get edit issue meta'), never stated. Neither exclusions nor alternatives are mentioned.

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

get_fieldsC

Get fields

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.1/5.0
Behavior1/5

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

No annotations are provided and the description only says 'Get fields.' It does not disclose whether the operation is read-only, what it returns, whether authentication is required, or any side effects. The description carries the full burden of behavioral disclosure and provides none.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single two-word phrase is extremely brief, but this is under-specification rather than effective conciseness. It lacks the content needed to be useful, so it does not earn high marks for structure.

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 no output schema, no annotations, and an empty parameter schema, the description is the only source of information. 'Get fields' does not specify the domain (which fields), expected output, or relationship to sibling tools. The tool may be simple, but the description is inadequate for confident invocation.

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 properties, so there are no parameters to describe. The baseline for 0-parameter tools is 4, and the description's lack of parameter information is acceptable since no parameters exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get fields' is essentially a tautology of the tool name. It does not specify which fields (issue fields, custom fields, project fields) or provide any resource context, and it does not distinguish the tool from siblings like get_statuses or get_priorities.

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. There are no conditions, prerequisites, or exclusions mentioned, leaving an agent unable to decide when this tool is appropriate.

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

get_issueD

Get issue

ParametersJSON Schema
NameRequiredDescriptionDefault
expandNoUse [expand](#expansion) to include additional information about the issues in the response. This parameter accepts a co
fieldsNoA list of fields to return for the issue. This parameter accepts a comma-separated list. Use it to retrieve a subset of
failFastNoWhether to fail the request quickly in case of an error while loading fields for an issue. For `failFast=true`, if one f
propertiesNoA list of issue properties to return for the issue. This parameter accepts a comma-separated list. Allowed values: *
fieldsByKeysNoWhether fields in `fields` are referenced by keys rather than IDs. This parameter is useful where fields have been added
issueIdOrKeyYesThe ID or key of the issue.
updateHistoryNoWhether the project in which the issue is created is added to the user's **Recently viewed** project list, as shown unde

TDQS

D1.9/5.0
Behavior1/5

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

With no annotations and no description of behavior, the tool's effects and constraints are entirely undisclosed. The description does not state what is returned, whether it mutates state, or whether any special permissions are needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

While extremely short, this is under-specification rather than effective conciseness. The description fails to convey essential information and is not front-loaded with useful content because there is no useful content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, no annotations, 7 parameters, and a two-word description, the tool definition is completely inadequate for an agent to invoke it correctly. Critical context such as required parameters, return shape, and relationship to siblings is missing.

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 documents all 7 parameters. The description itself adds no parameter-level meaning, but the high schema coverage justifies the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get issue' is a tautology that restates the tool name without adding any specificity. It does not distinguish this tool from sibling retrieval tools like get_issue_watchers, get_comment, or get_attachment.

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?

There is no guidance about when to use this tool versus alternatives. The description provides no context, prerequisites, or exclusions, leaving the agent to guess which tool is appropriate.

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

get_issue_propertyC

Get issue property

ParametersJSON Schema
NameRequiredDescriptionDefault
propertyKeyYesThe key of the property.
issueIdOrKeyYesThe key or ID of the issue.

TDQS

C2.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 carries the full burden of behavioral disclosure. 'Get' implies a read operation, but the description does not disclose response format, permissions, error behavior, or side effects. It is accurate but minimally informative.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and free of filler, but it is under-specified rather than appropriately concise. Three words do not provide enough context to justify the description's existence beyond the tool name. This is under-specification, not effective conciseness.

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 no output schema, no annotations, and a description that only restates the name. While parameter semantics are covered by the schema, the description does not explain what an issue property is, what the caller receives, or how this differs from related issue endpoints. The context is insufficient for confident tool selection and expectation setting.

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 both parameters have clear descriptions in the input schema. The tool description itself adds no parameter-level detail, but the schema already provides sufficient meaning, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get issue property' is essentially a rewording of the tool name and adds no detail about what an issue property is or what the operation entails. It fails to distinguish the tool from related property operations like set_issue_property or delete_issue_property. This is closer to a tautology than a functional explanation.

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 such as get_issue, set_issue_property, or delete_issue_property. There are no exclusions, prerequisites, or context hints. The agent is left to infer usage entirely from the tool name and sibling list.

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

get_issue_types_for_projectC

Get issue types for project

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNoThe level of the issue type to filter by. Use: * `-1` for Subtask. * `0` for Base. * `1` for Epic.
projectIdYesThe ID of the project.

TDQS

C2.5/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 behavioral burden, but it only says 'Get' and does not describe auth requirements, return shape, potential errors, or any side-effect guarantees beyond the implication of a read operation. This is too thin for a tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, but that reflects under-specification rather than effective conciseness. It contains one sentence that merely restates the tool name and provides no useful structure or additional substance.

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 operation is simple and all parameters are documented in the schema, so the tool is minimally callable. However, with no output schema and no usage or behavioral context, the description is only barely complete for a straightforward metadata lookup.

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 schema itself provides useful parameter detail, especially the level filter with allowed values -1/0/1. The description adds no parameter-level meaning, so it earns the baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get issue types for project' is essentially a word-for-word paraphrase of the tool name and adds no new information. It states a general action but does not distinguish issue types from related metadata endpoints like get_fields, get_statuses, or get_create_issue_meta.

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?

Usage is only implied by the action and object: call it when you need issue types for a project. There is no explicit when-to-use, when-not-to-use, or guidance about more specific sibling alternatives.

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

get_issue_watchersC

Get issue watchers

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdOrKeyYesThe ID or key of the issue.

TDQS

C2.9/5.0
Behavior2/5

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

Annotations are absent, so the description must disclose behavior. It only confirms the operation is a retrieval ('Get') but does not mention return format, pagination, permissions, or failure modes, which is a significant gap for a tool with no annotation safety profile.

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?

The description is extremely short and front-loaded, with no wasted words. However, it adds little beyond the tool name and is under-specified; a middle score is appropriate for conciseness without substantive content.

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 one fully-described parameter, but there is no output schema or annotation coverage. The description fails to hint at the return structure (e.g., a list of watchers), leaving a modest gap for an agent expecting to handle the result.

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 documents the single parameter (issueIdOrKey with description), so the description adds no new meaning. Baseline 3 applies because schema description coverage is 100%.

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 states a specific action ('Get') and target ('issue watchers'), making the purpose clear. It does not explicitly differentiate from sibling tools like add_watcher/remove_watcher, but the resource is unambiguous enough for basic selection.

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 usage guidance is provided. The description does not indicate when to use this tool vs. alternatives, nor any prerequisites or typical scenarios, leaving the agent to infer context from the name alone.

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

get_issue_worklogC

Get issue worklogs

ParametersJSON Schema
NameRequiredDescriptionDefault
expandNoUse [expand](#expansion) to include additional information about worklogs in the response. This parameter accepts`proper
startAtNoThe index of the first item to return in a page of results (page offset).
maxResultsNoThe maximum number of items to return per page.
issueIdOrKeyYesThe ID or key of the issue.
startedAfterNoThe worklog start date and time, as a UNIX timestamp in milliseconds, after which worklogs are returned.
startedBeforeNoThe worklog start date and time, as a UNIX timestamp in milliseconds, before which worklogs are returned.

TDQS

C2.8/5.0
Behavior2/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 only restates the operation and omits important behavior like pagination, expand behavior, date filtering, and response shape. The verb 'Get' at least implies a read-only operation, but that is minimal disclosure.

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?

The description is extremely short and concise, with no filler. However, it borders on tautology by simply restating the tool name, so it earns limited credit for efficiency while providing almost no additional content.

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?

There is no output schema or annotations, so the description needs to compensate by explaining that the tool returns worklogs for an issue, likely paginated and filterable by start time. The current description is too sparse for a tool with 6 parameters and pagination semantics.

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 schema already explains pagination, expand, and date range parameters. The description adds no meaning beyond what the schema provides, which is acceptable given high schema coverage.

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 states a clear verb and resource: 'Get issue worklogs' makes the operation specific to retrieving worklogs for an issue. It also distinguishes itself from sibling write tools like add_worklog, update_worklog, and delete_worklog, though it does not clarify whether this returns a list or a single worklog compared to get_worklog.

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 given for when to use this tool versus alternatives, such as get_worklog. The description only states the action without specifying conditions, prerequisites, or exclusions, leaving the agent to infer when this is the appropriate choice.

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

get_prioritiesD

Get priorities

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

D1.8/5.0
Behavior1/5

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

With no annotations and no behavioral detail, the description fails to disclose whether this operation is read-only, whether it requires authentication, what data it returns, or whether it depends on a selected issue/project. The full burden falls on the description, and it provides nothing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short, but this is under-specification rather than effective conciseness. It provides no distinguishing or actionable content, so the brevity does not serve the agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no annotations and no output schema, and the description gives no indication of what 'priorities' refers to or what the response will contain. Given the large sibling set, this is not enough contextual information for an agent to know when or how to invoke the tool correctly.

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 there is no parameter documentation burden for the description. The schema is trivially complete, and the description cannot be faulted for omitting parameter details that do not exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get priorities' is a tautology that simply restates the tool name. It does not identify the resource type, scope, or what distinguishes it from sibling tools like get_statuses or get_fields.

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?

There is no guidance about when to use this tool versus alternatives, no context about the current entity or project, and no exclusions or prerequisites. An agent is left with no direction.

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

get_projectC

Get project

ParametersJSON Schema
NameRequiredDescriptionDefault
expandNoUse [expand](#expansion) to include additional information in the response. This parameter accepts a comma-separated lis
propertiesNoA list of project properties to return for the project. This parameter accepts a comma-separated list.
projectIdOrKeyYesThe project ID or project key (case sensitive).

TDQS

C2.2/5.0
Behavior2/5

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

No annotations are provided, and the description only says 'Get project,' which implies a read operation but discloses nothing about return format, error behavior, or the role of the expand/properties parameters. For an unannotated tool, this is a significant transparency gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is under-specified rather than genuinely concise. At two words, it restates the tool name and provides no structure or prioritized information, so it does not earn its place as a helpful definition.

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 no output schema and no annotations, the description should indicate what a caller receives and how optional parameters affect the response. 'Get project' leaves all of that implicit, so an agent is under-informed despite the schema's parameter coverage.

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 three parameters are already documented in the input schema. The description adds no parameter-level meaning, but the high schema coverage satisfies the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get project' simply restates the tool name, replacing the underscore with a space. It adds no new information about what kind of project, whether it is by ID or key, or how it differs from sibling tools like get_all_projects or search_projects.

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?

There is no guidance about when to use this tool versus alternatives such as get_all_projects, search_projects, or get_project_components. An agent must rely solely on the tool name and schema to infer appropriate usage.

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

get_project_componentsC

Get project components

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdOrKeyYesThe project ID or project key (case sensitive).
componentSourceNoThe source of the components to return. Can be `jira` (default), `compass` or `auto`. When `auto` is specified, the API jira

TDQS

C2.7/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 behavioral disclosure burden. It only states 'Get', implying read-only retrieval, but it does not mention auth needs, pagination, behavior differences between component sources, or what happens when the project has no components.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short but not usefully concise: it essentially restates the tool name and provides no additional context. The single sentence does not earn its place beyond what the name already communicates.

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?

There is no output schema, so the description should compensate by explaining what a 'project component' is and what the response looks like. It does neither, and it leaves the meaning of compass/auto sources unexplained despite the truncated schema hint.

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 parameter docs already carry the semantic weight. The tool description adds nothing about projectIdOrKey or componentSource, but it is not required to duplicate 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 states a clear verb and resource: 'Get project components.' Though it repeats the tool name almost exactly, it identifies a distinct resource and can be visually separated from sibling tools like get_project, get_project_versions, or create_component.

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 such as get_project_versions or create_component. It also does not explain when to choose jira vs compass vs auto for the componentSource parameter.

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

get_project_versionsC

Get project versions

ParametersJSON Schema
NameRequiredDescriptionDefault
expandNoUse [expand](#expansion) to include additional information in the response. This parameter accepts `operations`, which r
projectIdOrKeyYesThe project ID or project key (case sensitive).

TDQS

C2.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 carries the full burden of behavioral disclosure. It does not state return format, pagination, permissions, or side effects; the fact that it is a 'get' operation is implied by the verb 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is very concise, one sentence with no waste. However, it is under-specified: it lacks any structuring elements like scope or caveats, so the brevity is more a sign of missing content than effective conciseness.

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 no output schema, no annotations, and a minimal description, an agent lacks essential context about what a 'project version' is, what the response looks like, or when to call this tool. The parameter schema is complete, but the tool-level description is insufficient for confident invocation.

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 descriptions for both expand and projectIdOrKey. The description adds no parameter detail, but with the schema already documenting the 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.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get project versions' essentially restates the tool name without clarifying what 'versions' means in a Jira context (e.g., releases, milestones). It does not distinguish itself from sibling tools like get_project or create_version.

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?

There is no guidance on when to use this tool versus alternatives. No mention of situations where project versions are needed, or any exclusions or prerequisites.

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

get_statusesC

Get all statuses

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must carry the full behavioral disclosure burden. It simply says 'Get all statuses', which implies a read-only operation, but gives no information about permissions, response format, pagination, or whether statuses are project-scoped or global. This is minimal beyond what the verb 'get' already suggests.

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 brief sentence, front-loaded with the core operation. No wasted words or redundant information.

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?

For a simple tool with no annotations and no output schema, the description is the sole source of context. It tells the agent that all statuses are returned, but not what a status represents, how the response is structured, or if any scoping applies. This is minimal and leaves important gaps for autonomous decision-making.

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 tool has zero parameters and an empty input schema, so there are no parameter semantics to document. Per the baseline for tools with no params, this 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 states a specific verb and resource: 'Get all statuses'. It is clearly distinct from sibling tools like get_transitions and get_priorities, but it does not clarify whether these are issue statuses, workflow statuses, or something else, leaving slight ambiguity.

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

Usage Guidelines1/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. There is no mention of scenarios, exclusions, or related getters. The description only states what the tool does, not when it should be selected.

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

get_transitionsD

Get transitions

ParametersJSON Schema
NameRequiredDescriptionDefault
expandNoUse [expand](#expansion) to include additional information about transitions in the response. This parameter accepts `tr
issueIdOrKeyYesThe ID or key of the issue.
transitionIdNoThe ID of the transition.
sortByOpsBarAndStatusNoWhether the transitions are sorted by ops-bar sequence value first then category order (Todo, In Progress, Done) or only
skipRemoteOnlyConditionNoWhether transitions with the condition *Hide From User Condition* are included in the response. Available to Connect and
includeUnavailableTransitionsNoWhether details of transitions that fail a condition are included in the response

TDQS

D1.9/5.0
Behavior1/5

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

With no annotations and no descriptive detail, the description leaves all behavioral traits undisclosed. It does not mention whether operations are read-only, what conditions may hide transitions, or what response behavior to expect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely brief but this is under-specification rather than effective conciseness. It does not add information beyond the name, so it fails to earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With six parameters, no output schema, and no annotations, the two-word description is far from sufficient. An agent has no context about return values, transition availability, or how to distinguish this from transition-related siblings.

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 parameters are already described in the input schema. The description adds no extra meaning beyond what the schema provides, so it meets the baseline but does not go further.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get transitions' simply restates the tool name and does not specify what kind of transitions (e.g., issue workflow transitions) or how this differs from siblings like do_transition. It is a tautology rather than an informative definition.

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 given for when to call this tool versus alternatives such as do_transition or get_statuses. The description provides zero context about 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.

get_userD

Get user

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNoThis parameter is no longer available. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/
expandNoUse [expand](#expansion) to include additional information about users in the response. This parameter accepts a comma-s
usernameNoThis parameter is no longer available. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/
accountIdNoThe account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e0

TDQS

D1.9/5.0
Behavior1/5

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

No annotations are present, so the description carries the full burden of behavioral disclosure. It provides none beyond the verb 'Get', which merely repeats the tool name; it does not mention outdated parameters, authentication needs, response shape, or side-effect safety.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is technically short, but this is under-specification rather than efficient conciseness. The two words 'Get user' do not earn their place because they add no information beyond the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With four parameters, two of them deprecated, no required parameters, and no output schema, this description is far from complete. An agent cannot tell how to identify the user, what optional behaviors expand accepts, or what the response will look like.

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 documents all four parameters, including deprecation notes and the meaning of accountId. The description itself adds no parameter-level meaning, but the baseline of 3 applies because the structured schema is sufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get user' is a near-verbatim restatement of the tool name and provides no additional specificity. It does not indicate what kind of user data is returned, how the user is identified, or how this differs from sibling tools like find_users.

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?

There is no guidance on when to choose get_user over find_users, find_bulk_assignable_users, or get_issue_watchers. The description contains no context, prerequisites, or exclusions, so an agent receives no help in routing between alternatives.

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

get_votesC

Get votes

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdOrKeyYesThe ID or key of the issue.

TDQS

C2/5.0
Behavior1/5

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

With no annotations, the description carries the full burden of behavioral disclosure. 'Get votes' only implies a read operation and does not state what is returned, whether permissions are required, or whether the result is a count or list of voters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is short but under-specified. The terse phrase 'Get votes' does not earn conciseness credit because it omits essential context rather than efficiently conveying it.

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 single parameter is documented, but there is no output schema and no description of the return value, so an agent cannot predict what the tool will produce. The sibling list shows related vote operations, yet the description does not clarify this tool's role among them.

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 issueIdOrKey described as 'The ID or key of the issue.' The description adds no parameter-level meaning, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is exactly the tool name, 'Get votes', with no elaboration on what resource is being retrieved or for which entity. It identifies a verb and a resource but is tautological and indistinguishable from a generic votes endpoint.

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 related siblings such as add_vote or remove_vote. There is no mention of preconditions, alternatives, or the issue-level context implied by the issueIdOrKey parameter.

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

get_worklogD

Get worklog

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe ID of the worklog.
expandNoUse [expand](#expansion) to include additional information about work logs in the response. This parameter accepts `pro
issueIdOrKeyYesThe ID or key of the issue.

TDQS

D1.7/5.0
Behavior1/5

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

There are no annotations and the description reveals nothing beyond the verb 'Get'. It does not disclose response format, error behavior, permission requirements, or whether this is a safe read operation. The tool description carries full behavioral burden and fails entirely.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two words and contains no usable information. This is under-specification rather than efficient conciseness, as it does not earn its place by adding value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With three parameters, no output schema, no annotations, and a large sibling list, this description is completely inadequate. An agent would have no idea what the tool returns, when to invoke it, or how it differs from get_issue_worklog.

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 input schema already documents all three parameters. The tool description adds no additional meaning beyond what the schema states, matching the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get worklog' merely restates the tool name without specifying what this operation does. It does not clarify that this retrieves a single worklog by ID, nor does it distinguish itself from siblings like get_issue_worklog.

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

Usage Guidelines1/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 get_issue_worklog, add_worklog, or update_worklog. With many worklog-related siblings, the absence of any selection criteria leaves the agent to guess.

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

remove_voteC

Delete vote

ParametersJSON Schema
NameRequiredDescriptionDefault
issueIdOrKeyYesThe ID or key of the issue.

TDQS

C2/5.0
Behavior1/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 of behavioral disclosure. It only restates the action and reveals nothing about irreversibility, permissions, idempotency, whether a prior vote is required, or what happens after deletion.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two words, making it concise but under-specified rather than properly structured. It omits the issue target, vote owner, and any usage context that would make the short length effective.

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?

For a destructive one-parameter tool with no annotations and no output schema, this description is insufficient. An agent would not know whose vote is deleted, whether the voter must be the current user, or what the expected outcome is.

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%: issueIdOrKey is clearly documented as the ID or key of the issue. The description adds no parameter meaning, but the schema already provides adequate semantic coverage, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Delete vote" simply restates the tool name remove_vote with synonyms. It does not specify whose vote is deleted, that it targets an issue, or how it differs from siblings like add_vote and get_votes beyond the verb.

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 gives no guidance on when to use this tool versus alternatives, no prerequisites, and no conditions. The sibling list includes add_vote and get_votes, but the description does not help an agent decide which operation is appropriate.

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

remove_watcherC

Delete watcher

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNoThis parameter is no longer available. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/
accountIdNoThe account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e0
issueIdOrKeyYesThe ID or key of the issue.

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are provided, so the description alone must communicate behavioral traits. The verb "Delete" implies a destructive mutation, but the description does not disclose side effects, permission requirements, idempotence, or the expected response on success.

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?

The description is extremely concise and contains no filler, but it is almost a restatement of the tool name and is too terse to convey the necessary context. It is not bloated, yet it sacrifices informativeness for brevity.

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 no output schema and no annotations, the definition relies entirely on this brief description and the parameter schema. It omits the issue scope implied by issueIdOrKey, any usage context, and what happens after removal, making the tool definition incomplete for confident invocation.

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 schema clearly documents issueIdOrKey, accountId, and the deprecation of username. The description adds no parameter-level information, but the schema already covers this dimension adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Delete watcher" states a clear action and object, and the verb loosely distinguishes it from add_watcher and get_issue_watchers. However, it does not specify that the watcher is removed from an issue and adds almost no information beyond the tool name itself.

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 about when to use remove_watcher instead of add_watcher or get_issue_watchers. There is no mention of prerequisites, alternatives, or the deprecated username parameter.

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

search_and_reconsile_issues_using_jql_postC

Search for issues using JQL enhanced search (POST)

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesRequest body (JSON object)

TDQS

C2.8/5.0
Behavior2/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 hints at a read-only search but does not explicitly state that issues are not modified, does not mention pagination ('nextPageToken'), and fails to explain the 'reconcileIssues' behavior suggested by the tool name.

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, front-loaded sentence with no redundant words. It is concise, but the vague 'enhanced search' and the missing reconcile aspect keep it from being fully effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a nested request body, no output schema, and no annotations, a one-sentence description is severely inadequate. It omits how the body should be structured, what results look like, how pagination works, and the purpose of the 'reconcileIssues' array.

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% at the top level, so the baseline is 3. The tool description adds a hint that 'jql' is a JQL query, but the nested body fields such as 'reconcileIssues', 'nextPageToken', and 'fieldsByKeys' remain unexplained in both the description and the schema, so no added meaning is provided beyond the baseline.

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 action ('Search') and resource ('issues') with JQL, and the POST method is stated. However, the tool name references 'reconsile_issues' which is absent from the description, and the phrase 'enhanced search' is vague, so it does not fully distinguish itself from sibling search tools.

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?

There is no guidance about when to use this tool over alternatives, no conditions, and no exclusions. The description simply states what it does, leaving the agent to infer suitability from the name alone.

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

search_projectsC

Get projects paginated

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoThe project IDs to filter the results by. To include multiple IDs, provide an ampersand-separated list. For example, `id
keysNoThe project keys to filter the results by. To include multiple keys, provide an ampersand-separated list. For example, `
queryNoFilter the results using a literal string. Projects with a matching `key` or `name` are returned (case insensitive).
actionNoFilter results by projects for which the user can: * `view` the project, meaning that they have one of the following view
expandNoUse [expand](#expansion) to include additional information in the response. This parameter accepts a comma-separated lis
statusNoEXPERIMENTAL. Filter results by project status: * `live` Search live projects. * `archived` Search archived project
orderByNo[Order](#ordering) the results by a field. * `category` Sorts by project category. A complete list of category IDs iskey
startAtNoThe index of the first item to return in a page of results (page offset).
typeKeyNoOrders results by the [project type](https://confluence.atlassian.com/x/GwiiLQ#Jiraapplicationsoverview-Productfeaturesa
categoryIdNoThe ID of the project's category. A complete list of category IDs is found using the [Get all project categories](#api-r
maxResultsNoThe maximum number of items to return per page. Must be less than or equal to 100. If a value greater than 100 is provid
propertiesNoEXPERIMENTAL. A list of project properties to return for the project. This parameter accepts a comma-separated list.
propertyQueryNoEXPERIMENTAL. A query string used to search properties. The query string cannot be specified using a JSON object. For ex

TDQS

C2.8/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 behavioral disclosure, but it only says 'paginated'. It does not clarify read-only behavior, return value shape, default/max limits, experimental status of some parameters, 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise and front-loaded, but it is so terse that it omits the core search/filter purpose and any context. It earns brevity at the cost of useful content for a 13-parameter tool.

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 no annotations, no output schema, and a rich 13-parameter input, the one-phrase description is insufficient. The schema covers individual parameters, but the description fails to communicate the tool's overall search/filter role, pagination behavior, or relationship to sibling project tools.

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 schema already documents all 13 parameters and their meanings, so the description need not compensate. The description adds no parameter-level meaning beyond the word 'paginated', which is also reflected in startAt/maxResults descriptions.

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 states a clear action and resource ('Get projects') with a useful qualifier ('paginated'), so an agent knows it returns project data in pages. However, it does not distinguish this from the sibling get_all_projects or get_project, and it omits the search/filtering nature that the name and parameters imply.

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 search_projects versus alternatives such as get_all_projects or get_project. The description gives no conditions, exclusions, or hints about which sibling to prefer in which situation.

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

set_issue_propertyC

Set issue property

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesThe value of the property. The value has to be a valid, non-empty [JSON](https://tools.ietf.org/html/rfc4627) value. The maximum length of the property value is 32768 bytes.
propertyKeyYesThe key of the issue property. The maximum length is 255 characters.
issueIdOrKeyYesThe ID or key of the issue.

TDQS

C2/5.0
Behavior1/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 merely says 'Set issue property' and does not state whether the property is created or overwritten, whether permissions are required, whether the operation is idempotent, or what side effects occur. This is effectively no behavioral information.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only three words and entirely restates the tool name. This is under-specification rather than genuine concciseness; every word is wasted because it adds no information beyond the name.

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?

For a mutation tool with no annotations and no output schema, the description is far too minimal. While the schema fully documents parameters, the agent is left without any understanding of when this tool is appropriate or what behavior to expect, making the definition incomplete for safe invocation.

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 schema documents all three parameters including constraints such as the property value being valid JSON up to 32768 bytes and the key max length of 255 characters. The description adds nothing beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Set issue property' is a direct restatement of the tool name with no additional detail. It identifies the verb and resource but fails to distinguish this tool from siblings like get_issue_property, delete_issue_property, or edit_issue.

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?

There is no guidance about when to use this tool versus the many related sibling tools. Siblings like get_issue_property, delete_issue_property, and edit_issue are present but the description gives no context for choosing among them.

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

submit_bulk_deleteC

Bulk delete issues

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesThe request body containing the issues to be deleted.

TDQS

C2.9/5.0
Behavior2/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. "Bulk delete" conveys destructiveness but says nothing about whether deletion is permanent, whether notifications are sent, what permissions are required, or what response is returned.

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 extremely concise and front-loaded with the core action. It does not waste words, but it is so terse that it leaves out behavioral and usage context.

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?

For a destructive bulk operation with no annotations and no output schema, a three-word description is not enough. It lacks details on effects, prerequisites, response behavior, and how it differs from related tools.

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% for the body parameter, so the schema already explains the request body. The tool description itself adds no parameter-level meaning, but the nested property names like selectedIssueIdsOrKeys and sendBulkNotification are reasonably self-explanatory.

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?

"Bulk delete issues" clearly states the verb and resource. It distinguishes itself from sibling bulk operations like submit_bulk_move or submit_bulk_edit, though it does not explicitly contrast with the single-issue delete_issue tool.

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 gives no guidance on when to use this tool versus alternatives. It does not mention that delete_issue might handle single deletions or that bulk operations are for multiple issues, leaving the agent to infer usage context.

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

submit_bulk_editC

Bulk edit issues

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesThe request body containing the issues to be edited and the new field values.

TDQS

C2.6/5.0
Behavior2/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, but it only states the action. It does not mention that this is a mutating bulk operation affecting many issues, that sendBulkNotification can be configured, or whether the edit is reversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

At three words, there is no redundancy, but this reads as under-specification rather than effective conciseness. A tool with a nested required body needs more structured detail to support correct invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a bulk mutation tool with three required inner fields, no annotations, and no output schema, yet the description supplies no selection context, usage constraints, or side-effect warnings. The definition is far too thin for an agent to call this 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 effectively high because the body property is described, so the baseline is 3. The tool description adds no parameter meaning: it does not explain editedFieldsInput format, valid selectedActions values, or how issue IDs/keys are referenced.

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 'Bulk edit issues' supplies a clear verb and resource, so an agent can see this operates on multiple issues at once. However, it does not distinguish it from sibling bulk tools like submit_bulk_move, submit_bulk_delete, or submit_bulk_transition, nor from edit_issue.

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?

There is no guidance about when to use this tool versus the other bulk operations or edit_issue. No alternatives, exclusions, or conditions are mentioned, so the agent must infer usage entirely from the tool name.

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

submit_bulk_moveD

Bulk move issues

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesRequest body (JSON object)

TDQS

D1.9/5.0
Behavior1/5

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

No annotations exist, so the description carries the full burden of behavioral disclosure. It only names a mutation without revealing that it is a bulk write, whether it is asynchronous, whether partial failures can happen, what permissions are required, or what the response contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, but it is under-specified rather than usefully concise. A three-word phrase for a tool with a nested request body and bulk semantics does not provide enough structure or front-loaded guidance for an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a complex bulk operation with nested parameters, no output schema, and no annotations, yet the description provides almost no context. It omits mapping semantics, notification behavior, error handling, and permission requirements, making it inadequate for safe invocation.

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 reported as 100%, so the baseline applies even though the tool description adds nothing about parameters. The schema exposes body fields like sendBulkNotification and targetToSourcesMapping, but the description does not explain their meaning or resolve the schema inconsistency where required targetToMultipleSourceMapping is not defined in properties.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Bulk move issues' essentially restates the tool name 'submit_bulk_move' without adding operational detail. It does not specify the effect of the move, what distinguishes it from siblings like edit_issue or transition_issue, or what 'submit' implies.

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 given about when to use this tool versus the many related issue-manipulation tools. The description does not mention prerequisites, alternatives, or the scenario in which a bulk move is the correct operation.

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

submit_bulk_transitionB

Bulk transition issue statuses

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesThe request body containing the issues to be transitioned.

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. 'Bulk transition' only conveys a status change; it does not disclose side effects like notifications, permission requirements, batch atomicity, or reversibility — a significant omission for a bulk write operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only four words, contains no fluff, and front-loads the core action. It loses a point because it is a terse fragment rather than a structured statement and omits qualifiers that would materially help the agent.

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?

For a bulk side-effecting operation with no annotations and no output schema, this description is too sparse: an agent cannot determine how to express a transition (issue keys? transition IDs? notification settings?) or what the result will be. The schema provides structure, but the description does not fill the remaining gaps.

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 high since the body parameter already has a description about containing issues to be transitioned, so the baseline is 3. The tool description adds no further semantic detail about what each string in bulkTransitionInputs represents or how sendBulkNotification behaves.

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 states a clear operation — bulk transition — and identifies the resource being affected (issue statuses), which distinguishes it from sibling bulk move/delete/edit tools. It does not explicitly contrast with the singular do_transition or mention the target statuses, so it stops just short of a 5.

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

Usage Guidelines3/5

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

Use for bulk status transitions is implied by the word 'bulk', which weakly separates it from the singular do_transition sibling. However, there is no explicit guidance about prerequisites, when not to use it, or how it relates to get_transitions/do_transition.

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

update_commentD

Update comment

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe ID of the comment.
bodyYesRequest body (JSON object)
expandNoUse [expand](#expansion) to include additional information about comments in the response. This parameter accepts `rende
notifyUsersNoWhether users are notified when a comment is updated.
issueIdOrKeyYesThe ID or key of the issue.
overrideEditableFlagNoWhether screen security is overridden to enable uneditable fields to be edited. Available to Connect app users with the

TDQS

D1.9/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 the full burden of behavioral disclosure. It discloses nothing: no permission requirements, no side effects like notifications, no mention that existing content is replaced, and no indication of what the response contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but it is under-specified rather than efficiently concise. For a tool with six parameters and a nested request body, a two-word restatement of the tool name does not earn its place as a meaningful description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has six parameters, a nested body object, no output schema, and no annotations. A single phrase 'Update comment' provides essentially no operational context. An agent would have to infer even the basic workflow of locating an issue and replacing its comment body.

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 documents all parameters. The description adds no parameter semantics, but it does not need to compensate for schema gaps. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is 'Update comment', which simply restates the tool name. It does identify the verb and resource, but it provides no additional context such as the issue association, the required body field, or how this differs from add_comment/get_comment beyond the name.

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?

There is no guidance on when to use this tool versus alternatives. Sibling tools like add_comment, get_comment, get_comments, and delete_comment exist, but the description gives no conditions, prerequisites, or exclusions to help an agent choose correctly.

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

update_worklogC

Update worklog

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe ID of the worklog.
bodyYesRequest body (JSON object)
expandNoUse [expand](#expansion) to include additional information about worklogs in the response. This parameter accepts `prope
newEstimateNoThe value to set as the issue's remaining time estimate, as days (\#d), hours (\#h), or minutes (\#m or \#). For example
notifyUsersNoWhether users watching the issue are notified by email.
issueIdOrKeyYesThe ID or key the issue.
adjustEstimateNoDefines how to update the issue's time estimate, the options are: * `new` Sets the estimate to a specific value, defiauto
overrideEditableFlagNoWhether the worklog should be added to the issue even if the issue is not editable. For example, because the issue is cl

TDQS

C2.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 carries the full burden of behavioral disclosure. 'Update worklog' conveys mutation but does not disclose side effects such as changing issue time estimates, notifying watchers, overwriting fields, or respecting editability flags. This is a significant transparency gap 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two words, which is concise, but this is under-specification rather than effective conciseness. It restates the tool name and contributes no additional information that would help an agent select or invoke the tool. The definition does not earn its place beyond being a label.

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?

For a complex 8-parameter mutation tool with no annotations and no output schema, the description is far too sparse. It omits what the request body should contain, how time estimate adjustment works, and what response behavior to expect. The rich schema covers parameter formats, but the overall tool context is incomplete.

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 schema documents all eight parameters including the nested body object and the adjustEstimate enum. The description itself adds no parameter-level meaning, so the baseline score of 3 is appropriate 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 states a specific verb and resource: 'Update worklog'. It clearly indicates the operation is modifying an existing worklog, which distinguishes it from sibling tools like add_worklog, delete_worklog, and get_worklog. However, it provides no details about what aspects of the worklog can be updated, so it stops short of the richest possible purpose statement.

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 gives no guidance on when to use this tool versus alternatives. It does not mention that it is for existing worklogs only, nor does it reference add_worklog for creating worklogs or delete_worklog for removing them. Usage context is left entirely to inference from the tool name.

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. 62 tool updatesv0.1.0
    • First observedadd_attachment
    • First observedadd_comment
    • First observedadd_vote
    • First observedadd_watcher
    • First observedadd_worklog
    • First observedassign_issue
    • First observedbulk_fetch_issues
    • First observedcreate_component
    • First observedcreate_issue
    • First observedcreate_issues
    • First observedcreate_or_update_remote_issue_link
    • First observedcreate_version
    • First observeddelete_comment
    • First observeddelete_issue
    • First observeddelete_issue_link
    • First observeddelete_issue_property
    • First observeddelete_remote_issue_link_by_id
    • First observeddelete_worklog
    • First observeddo_transition
    • First observededit_issue
    • First observedfind_bulk_assignable_users
    • First observedfind_users
    • First observedget_all_labels
    • First observedget_all_projects
    • First observedget_attachment
    • First observedget_change_logs
    • First observedget_change_logs_by_ids
    • First observedget_comment
    • First observedget_comments
    • First observedget_create_issue_meta
    • First observedget_edit_issue_meta
    • First observedget_fields
    • First observedget_issue
    • First observedget_issue_link
    • First observedget_issue_link_types
    • First observedget_issue_property
    • First observedget_issue_types_for_project
    • First observedget_issue_watchers
    • First observedget_issue_worklog
    • First observedget_priorities
    • First observedget_project
    • First observedget_project_components
    • First observedget_project_versions
    • First observedget_remote_issue_link_by_id
    • First observedget_remote_issue_links
    • First observedget_statuses
    • First observedget_transitions
    • First observedget_user
    • First observedget_votes
    • First observedget_worklog
    • First observedlink_issues
    • First observedremove_vote
    • First observedremove_watcher
    • First observedsearch_and_reconsile_issues_using_jql_post
    • First observedsearch_projects
    • First observedset_issue_property
    • First observedsubmit_bulk_delete
    • First observedsubmit_bulk_edit
    • First observedsubmit_bulk_move
    • First observedsubmit_bulk_transition
    • First observedupdate_comment
    • First observedupdate_worklog

TDQS

C2.2/5.0
Disambiguation3/5

Most tools map to a distinct resource and action, but a few pairs blur together: get_issue_worklog/get_worklog, bulk_fetch_issues/search_and_reconsile_issues_using_jql_post, and get_all_projects/search_projects. The one-line descriptions are too terse to fully clarify these boundaries.

Naming Consistency3/5

There is a strong base of verb_noun names like get_issue, create_issue, update_comment, and delete_worklog, but conventions drift with submit_bulk_*, create_issues vs bulk_fetch_issues, do_transition, and the outlier search_and_reconsile_issues_using_jql_post. Overall the names remain readable but are not consistently patterned.

Tool Count1/5

With 62 tools, this far exceeds the 25+ 'too many' threshold and reaches the 50+ extreme-mismatch range. Even for a broad platform like Jira, the number of bulk, metadata, and subresource variants makes the surface overwhelming for an agent.

Completeness4/5

The server covers the core issue lifecycle thoroughly: create/edit/get/delete, transitions, comments, worklogs, watchers, votes, attachments, issue links, properties, remote links, search, projects, and users. Minor gaps like attachment download/delete and update/delete for components/versions are workable and do not create dead ends in the main workflow.

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

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to manage Jira Cloud instances, including creating and updating issues, managing sprints and projects, adding comments, tracking worklogs, and searching with presets.
    17
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables AI agents to manage Jira projects and issues using natural language, including creating, updating, searching issues, managing sprints, and more via the Jira API.
    36
    98
    1
    MIT

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/pascalhubacher/jira'

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