Skip to main content
Glama
APonkratov

Yandex Tracker MCP Server

by APonkratov

Yandex Tracker MCP Server

PyPI - Version Test Workflow Release Workflow

mcp-name: io.github.aikts/yandex-tracker-mcp

A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with Yandex Tracker APIs. This server provides secure, authenticated access to Yandex Tracker issues, queues, comments, worklogs, and search functionality with optional Redis caching for improved performance.

Documentation in Russian is available here / Документация на русском языке доступна здесь.

Features

  • Complete Queue Management: List and access all available Yandex Tracker queues with pagination support, tag retrieval, and detailed metadata

  • User Management: Retrieve user account information, including login details, email addresses, license status, and organizational data

  • Full Issue Lifecycle: Create, read, update, and manage issues with support for custom fields, attachments, and workflow transitions

  • Status Workflow Management: Execute status transitions, close issues with resolutions, and navigate complex workflows

  • Field Management: Access global fields, queue-specific local fields, statuses, issue types, priorities, and resolutions

  • Advanced Query Language: Full Yandex Tracker Query Language support with complex filtering, sorting, and date functions

  • Performance Caching: Optional Redis caching layer for improved response times

  • Security Controls: Configurable queue access restrictions and secure token handling

  • Multiple Transport Options: Support for stdio, SSE (deprecated), and HTTP transports for flexible integration

  • OAuth 2.0 Authentication: Dynamic token-based authentication with automatic refresh support as an alternative to static API tokens

  • Organization Support: Compatible with both standard and cloud organization IDs

Organization ID Configuration

Choose one of the following based on your Yandex organization type:

  • Yandex Cloud Organization: Use TRACKER_CLOUD_ORG_ID env var later for Yandex Cloud-managed organizations

  • Yandex 360 Organization: Use TRACKER_ORG_ID env var later for Yandex 360 organizations

You can find your organization ID in the Yandex Tracker URL or organization settings.

Related MCP server: Yandex Tracker MCP Server

MCP Client Configuration

Installing extension in Claude Desktop

Yandex Tracker MCP Server can be one-click installed in Claude Desktop as and extension.

Installation

  1. Download the *.mcpb file from GitHub Releases.

  2. Double-click the downloaded file to install it in Claude Desktop. img.png

  3. Provide your Yandex Tracker OAuth token when prompted. img.png

  4. Make sure extension is enabled - now you may use this MCP Server.

Manual installation

Prerequisites

  • uv installed globally

  • Valid Yandex Tracker API token with appropriate permissions

The following sections show how to configure the MCP server for different AI clients. You can use either uvx yandex-tracker-mcp@latest or the Docker image ghcr.io/aikts/yandex-tracker-mcp:latest. Both require these environment variables:

  • Authentication (one of the following):

    • TRACKER_TOKEN - Your Yandex Tracker OAuth token

    • TRACKER_IAM_TOKEN - Your IAM token

    • TRACKER_SA_KEY_ID, TRACKER_SA_SERVICE_ACCOUNT_ID, TRACKER_SA_PRIVATE_KEY - Service account credentials

  • TRACKER_CLOUD_ORG_ID or TRACKER_ORG_ID - Your Yandex Cloud (or Yandex 360) organization ID

Configuration file path:

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

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

Using uvx:

{
  "mcpServers": {
    "yandex-tracker": {
      "command": "uvx",
      "args": ["yandex-tracker-mcp@latest"],
      "env": {
        "TRACKER_TOKEN": "your_tracker_token_here",
        "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
        "TRACKER_ORG_ID": "your_org_id_here"
      }
    }
  }
}

Using Docker:

{
  "mcpServers": {
    "yandex-tracker": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "TRACKER_TOKEN",
        "-e", "TRACKER_CLOUD_ORG_ID",
        "-e", "TRACKER_ORG_ID",
        "ghcr.io/aikts/yandex-tracker-mcp:latest"
      ],
      "env": {
        "TRACKER_TOKEN": "your_tracker_token_here",
        "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
        "TRACKER_ORG_ID": "your_org_id_here"
      }
    }
  }
}

Using uvx:

claude mcp add yandex-tracker uvx yandex-tracker-mcp@latest \
  -e TRACKER_TOKEN=your_tracker_token_here \
  -e TRACKER_CLOUD_ORG_ID=your_cloud_org_id_here \
  -e TRACKER_ORG_ID=your_org_id_here \
  -e TRANSPORT=stdio

Using Docker:

claude mcp add yandex-tracker docker "run --rm -i -e TRACKER_TOKEN=your_tracker_token_here -e TRACKER_CLOUD_ORG_ID=your_cloud_org_id_here -e TRACKER_ORG_ID=your_org_id_here -e TRANSPORT=stdio ghcr.io/aikts/yandex-tracker-mcp:latest"

Configuration file path:

  • Project-specific: .cursor/mcp.json in your project directory

  • Global: ~/.cursor/mcp.json

Using uvx:

{
  "mcpServers": {
    "yandex-tracker": {
      "command": "uvx",
      "args": ["yandex-tracker-mcp@latest"],
      "env": {
        "TRACKER_TOKEN": "your_tracker_token_here",
        "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
        "TRACKER_ORG_ID": "your_org_id_here"
      }
    }
  }
}

Using Docker:

{
  "mcpServers": {
    "yandex-tracker": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "TRACKER_TOKEN",
        "-e", "TRACKER_CLOUD_ORG_ID",
        "-e", "TRACKER_ORG_ID",
        "ghcr.io/aikts/yandex-tracker-mcp:latest"
      ],
      "env": {
        "TRACKER_TOKEN": "your_tracker_token_here",
        "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
        "TRACKER_ORG_ID": "your_org_id_here"
      }
    }
  }
}

Configuration file path:

  • ~/.codeium/windsurf/mcp_config.json

Access via: Windsurf Settings → Cascade tab → Model Context Protocol (MCP) Servers → "View raw config"

Using uvx:

{
  "mcpServers": {
    "yandex-tracker": {
      "command": "uvx",
      "args": ["yandex-tracker-mcp@latest"],
      "env": {
        "TRACKER_TOKEN": "your_tracker_token_here",
        "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
        "TRACKER_ORG_ID": "your_org_id_here"
      }
    }
  }
}

Using Docker:

{
  "mcpServers": {
    "yandex-tracker": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "TRACKER_TOKEN",
        "-e", "TRACKER_CLOUD_ORG_ID",
        "-e", "TRACKER_ORG_ID",
        "ghcr.io/aikts/yandex-tracker-mcp:latest"
      ],
      "env": {
        "TRACKER_TOKEN": "your_tracker_token_here",
        "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
        "TRACKER_ORG_ID": "your_org_id_here"
      }
    }
  }
}

Configuration file path:

  • ~/.config/zed/settings.json

Access via: Cmd+, (macOS) or Ctrl+, (Linux/Windows) or command palette: "zed: open settings"

Note: Requires Zed Preview version for MCP support.

Using uvx:

{
  "context_servers": {
    "yandex-tracker": {
      "source": "custom",
      "command": {
        "path": "uvx",
        "args": ["yandex-tracker-mcp@latest"],
        "env": {
          "TRACKER_TOKEN": "your_tracker_token_here",
          "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
          "TRACKER_ORG_ID": "your_org_id_here"
        }
      }
    }
  }
}

Using Docker:

{
  "context_servers": {
    "yandex-tracker": {
      "source": "custom",
      "command": {
        "path": "docker",
        "args": [
          "run", "--rm", "-i",
          "-e", "TRACKER_TOKEN",
          "-e", "TRACKER_CLOUD_ORG_ID",
          "-e", "TRACKER_ORG_ID",
          "ghcr.io/aikts/yandex-tracker-mcp:latest"
        ],
        "env": {
          "TRACKER_TOKEN": "your_tracker_token_here",
          "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
          "TRACKER_ORG_ID": "your_org_id_here"
        }
      }
    }
  }
}

Configuration file path:

  • Workspace: .vscode/mcp.json in your project directory

  • Global: VS Code settings.json

Option 1: Workspace Configuration (Recommended for security)

Create .vscode/mcp.json:

Using uvx:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "tracker-token",
      "description": "Yandex Tracker Token",
      "password": true
    },
    {
      "type": "promptString",
      "id": "cloud-org-id",
      "description": "Yandex Cloud Organization ID"
    },
    {
      "type": "promptString",
      "id": "org-id",
      "description": "Yandex Tracker Organization ID (optional)"
    }
  ],
  "servers": {
    "yandex-tracker": {
      "type": "stdio",
      "command": "uvx",
      "args": ["yandex-tracker-mcp@latest"],
      "env": {
        "TRACKER_TOKEN": "${input:tracker-token}",
        "TRACKER_CLOUD_ORG_ID": "${input:cloud-org-id}",
        "TRACKER_ORG_ID": "${input:org-id}",
        "TRANSPORT": "stdio"
      }
    }
  }
}

Using Docker:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "tracker-token",
      "description": "Yandex Tracker Token",
      "password": true
    },
    {
      "type": "promptString",
      "id": "cloud-org-id",
      "description": "Yandex Cloud Organization ID"
    },
    {
      "type": "promptString",
      "id": "org-id",
      "description": "Yandex Tracker Organization ID (optional)"
    }
  ],
  "servers": {
    "yandex-tracker": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "TRACKER_TOKEN",
        "-e", "TRACKER_CLOUD_ORG_ID",
        "-e", "TRACKER_ORG_ID",
        "ghcr.io/aikts/yandex-tracker-mcp:latest"
      ],
      "env": {
        "TRACKER_TOKEN": "${input:tracker-token}",
        "TRACKER_CLOUD_ORG_ID": "${input:cloud-org-id}",
        "TRACKER_ORG_ID": "${input:org-id}",
        "TRANSPORT": "stdio"
      }
    }
  }
}

Option 2: Global Configuration

Add to VS Code settings.json:

Using uvx:

{
  "github.copilot.chat.mcp.servers": {
    "yandex-tracker": {
      "type": "stdio",
      "command": "uvx",
      "args": ["yandex-tracker-mcp@latest"],
      "env": {
        "TRACKER_TOKEN": "your_tracker_token_here",
        "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
        "TRACKER_ORG_ID": "your_org_id_here"
      }
    }
  }
}

Using Docker:

{
  "github.copilot.chat.mcp.servers": {
    "yandex-tracker": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "TRACKER_TOKEN",
        "-e", "TRACKER_CLOUD_ORG_ID",
        "-e", "TRACKER_ORG_ID",
        "ghcr.io/aikts/yandex-tracker-mcp:latest"
      ],
      "env": {
        "TRACKER_TOKEN": "your_tracker_token_here",
        "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
        "TRACKER_ORG_ID": "your_org_id_here"
      }
    }
  }
}

For other MCP-compatible clients, use the standard MCP server configuration format:

Using uvx:

{
  "mcpServers": {
    "yandex-tracker": {
      "command": "uvx",
      "args": ["yandex-tracker-mcp@latest"],
      "env": {
        "TRACKER_TOKEN": "your_tracker_token_here",
        "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
        "TRACKER_ORG_ID": "your_org_id_here"
      }
    }
  }
}

Using Docker:

{
  "mcpServers": {
    "yandex-tracker": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "TRACKER_TOKEN",
        "-e", "TRACKER_CLOUD_ORG_ID",
        "-e", "TRACKER_ORG_ID",
        "ghcr.io/aikts/yandex-tracker-mcp:latest"
      ],
      "env": {
        "TRACKER_TOKEN": "your_tracker_token_here",
        "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
        "TRACKER_ORG_ID": "your_org_id_here"
      }
    }
  }
}

Important Notes:

  • Replace placeholder values with your actual credentials

  • Restart your AI client after configuration changes

  • Ensure uvx is installed and available in your system PATH

  • For production use, consider using environment variables instead of hardcoding tokens

Available MCP Tools

The server exposes the following tools through the MCP protocol:

  • queues_get_all: List all available Yandex Tracker queues

    • Parameters:

      • fields (optional): Fields to include in the response (e.g., ["key", "name"]). Helps optimize context window usage by selecting only needed fields. If not specified, returns all available fields.

      • page (optional): Page number to return. If not specified, retrieves all pages automatically.

      • per_page (optional): Number of items per page (default: 100)

    • Returns paginated queue information with selective field inclusion

    • Respects TRACKER_LIMIT_QUEUES restrictions

  • queue_get_tags: Get all tags for a specific queue

    • Parameters: queue_id (string, queue key like "SOMEPROJECT")

    • Returns list of available tags in the specified queue

    • Respects TRACKER_LIMIT_QUEUES restrictions

  • queue_get_versions: Get all versions for a specific queue

    • Parameters: queue_id (string, queue key like "SOMEPROJECT")

    • Returns list of available versions in the specified queue with details like name, description, dates, and status

    • Respects TRACKER_LIMIT_QUEUES restrictions

  • queue_create_version: Create a new version in a specific queue

    • Parameters:

      • queue_id (string, required): Queue key like "SOMEPROJECT"

      • name (string, required): Version name

      • description (string, optional): Version description

      • start_date (date, optional): Version start date in YYYY-MM-DD format

      • due_date (date, optional): Version due date in YYYY-MM-DD format

    • Returns the created version with details like name, description, dates, and status

    • Respects TRACKER_LIMIT_QUEUES restrictions

  • queue_get_fields: Get fields for a specific queue

    • Parameters:

      • queue_id (string, required): Queue key like "SOMEPROJECT"

      • include_local_fields (boolean, optional, default: true): Whether to include queue-specific local fields

    • Returns list of global fields and optionally local (queue-specific) fields

    • Makes parallel requests to fetch both field types when include_local_fields is true

    • The schema.required property indicates whether a field is mandatory

    • Use this to find available and required fields before creating an issue with issue_create tool

    • Respects TRACKER_LIMIT_QUEUES restrictions

  • queue_get_metadata: Get detailed metadata about a specific queue

    • Parameters:

      • queue_id (string, required): Queue key like "SOMEPROJECT"

      • expand (array of strings, optional): Fields to expand in the response. Available options: all, projects, components, versions, types, team, workflows, fields, issueTypesConfig

    • Returns queue information including name, description, default type/priority, and optionally expanded data

    • Use expand: ["issueTypesConfig"] to get available resolutions for each issue type (needed for issue_close tool)

    • Respects TRACKER_LIMIT_QUEUES restrictions

These tools use the unified Yandex Tracker Entities API. The entity_type parameter accepts project, portfolio, or goal.

  • entity_get: Get an entity by id or numeric shortId; optionally request additional fields or expand attachments

  • entities_search: Search entities by name substring or arbitrary field filters, with field selection, sorting, root-only filtering, and page-based pagination

  • entity_get_events: Get entity event history with relative cursor navigation (from_id or selected)

  • entity_create: Create an entity; fields.summary is required, and links can be created in the same request

  • entity_update: Update entity fields, links, and add an explanatory comment; collection fields support Tracker operators such as set, add, and remove

  • entity_delete: Delete an entity and optionally its associated board

  • entities_bulk_update: Start one bulk update for multiple entities of the same type

Common field keys include summary, description, lead, teamUsers, clients, followers, start, end, tags, parentEntity, entityStatus, and teamAccess. Dates must use the format expected by the Tracker API.

Write tools are unavailable when TRACKER_READ_ONLY=true.

  • boards_list: List all boards available to the current user

  • board_get: Get board columns and automatic filter settings by board ID

  • board_get_sprints: List all sprints associated with a board

  • sprint_get: Get one sprint with status, archive flag, and planned/actual dates

These tools are read-only. Use the returned sprint ID in issues_find to retrieve the sprint's issues.

  • filter_get: Get a saved issue filter by numeric ID

  • filter_find_issues: Execute a saved filter with page/per-page and response-field controls

  • filter_create: Create a saved filter from either a Tracker query or field-value conditions

  • filter_update: Update a saved filter's name, conditions, displayed fields, sorts, grouping, or folder

filter_create and filter_update are unavailable when TRACKER_READ_ONLY=true. issues_find and issues_count also accept filter_id as an alternative to query.

  • users_get_all: Get information about user accounts registered in the organization

    • Parameters:

      • per_page (optional): Number of users per page (default: 50)

      • page (optional): Page number to return (default: 1)

    • Returns paginated list of users with login, email, license status, and organizational details

    • Includes user metadata such as external status, dismissal status, and notification preferences

  • user_get: Get information about a specific user by login or UID

    • Parameters: user_id (string, user login like "john.doe" or UID like "12345")

    • Returns detailed user information including login, email, license status, and organizational details

    • Supports both user login names and numeric user IDs for flexible identification

  • user_get_current: Get information about the current authenticated user

    • No parameters required

    • Returns detailed information about the user associated with the current authentication token

    • Includes login, email, display name, and organizational details for the authenticated user

  • users_search: Search user based on login, email or real name (first or last name, or both)

    • Parameters: login_or_email_or_name (string, user login, email or real name to search for)

    • Returns either single user or multiple users if several match the query or an empty list if no users matched

    • Uses fuzzy matching for real names with a similarity threshold of 80%

    • Prioritizes exact matches for login and email over fuzzy name matches

  • get_global_fields: Get all global fields available in Yandex Tracker

    • Returns complete list of global fields that can be used in issues

    • Includes field schema, type information, and configuration

  • get_statuses: Get all available issue statuses

    • Returns complete list of issue statuses that can be assigned

    • Includes status IDs, names, and type information

  • get_issue_types: Get all available issue types

    • Returns complete list of issue types for creating/updating issues

    • Includes type IDs, names, and configuration details

  • get_priorities: Get all available issue priorities

    • Returns complete list of priorities that can be assigned to issues

    • Includes priority keys, names, and order information

  • get_resolutions: Get all available issue resolutions

    • Returns complete list of resolutions that can be used when closing issues

    • Includes resolution keys, names, descriptions, and order information

  • issue_get: Retrieve detailed issue information by ID

    • Parameters:

      • issue_id (string, format: "QUEUE-123")

      • include_description (boolean, optional, default: true): Whether to include issue description in the result. Can be large, so use only when needed.

    • Returns complete issue data including status, assignee, description, etc.

  • issue_get_url: Generate web URL for an issue

    • Parameters: issue_id (string)

    • Returns: https://tracker.yandex.ru/{issue_id}

  • issue_get_comments: Fetch all comments for an issue

    • Parameters: issue_id (string)

    • Returns chronological list of comments with metadata

  • issue_add_comment: Add a comment to an issue

    • Parameters:

      • issue_id (string, required, format: "QUEUE-123")

      • text (string, required): Comment text (markdown supported by Tracker)

      • summonees (array of strings, optional): Users to summon (logins or IDs). This is the API way to mention/call users (notifications are triggered by this field, not by @login in text).

      • maillist_summonees (array of strings, optional): Mailing lists to summon (emails)

      • markup_type (string, optional): Use md for YFM (markdown)

      • is_add_to_followers (boolean, optional, default: true): Add comment author to followers

    • Returns created comment object

  • issue_update_comment: Update an existing comment in an issue

    • Parameters:

      • issue_id (string, required, format: "QUEUE-123")

      • comment_id (int, required): Comment ID

      • text (string, required): New comment text (markdown supported by Tracker)

      • summonees (array of strings, optional): Users to summon (logins or IDs)

      • maillist_summonees (array of strings, optional): Mailing lists to summon (emails)

      • markup_type (string, optional): Use md for YFM (markdown)

    • Returns updated comment object

  • issue_delete_comment: Delete a comment from an issue

    • Parameters:

      • issue_id (string, required, format: "QUEUE-123")

      • comment_id (int, required): Comment ID

    • Returns: null (success)

  • issue_add_link: Create a link between an issue and another issue

    • Parameters:

      • issue_id (string, required, format: "QUEUE-123"): The current issue

      • relationship (string, required): Link type describing how issue_id relates to the linked issue. One of: relates, is dependent by, depends on, is subtask for, is parent task for, duplicates, is duplicated by, is epic of, has epic

      • issue (string, required): ID or key of the issue to link to (e.g. "TEST-123")

    • Returns created link object

  • issue_delete_link: Delete a link between an issue and another issue

    • Parameters:

      • issue_id (string, required, format: "QUEUE-123")

      • link_id (int, required): Link ID (as returned by issue_get_links)

    • Returns: null (success)

  • issue_get_links: Get related issue links

    • Parameters: issue_id (string)

    • Returns links to related, blocked, or duplicate issues

  • issue_get_worklogs: Retrieve worklog entries

    • Parameters:

      • issue_ids (array of strings, required)

      • start_date_from (date, optional): Inclusive lower bound for the work start date (YYYY-MM-DD)

      • start_date_to (date, optional): Inclusive upper bound for the work start date (YYYY-MM-DD)

      • timezone (string, optional, default UTC): IANA time zone used when comparing start dates (for example, Europe/Moscow)

    • Retrieves every relative-pagination page for each issue and filters by the worklog start field, not by createdAt

    • Returns ISO 8601 durations exactly as supplied by Tracker. Week-based values must keep Tracker semantics: P6W is 30 working days, not 42 calendar days

  • issue_add_worklog: Add a worklog entry (log spent time) to an issue

    • Parameters:

      • issue_id (string, required, format: "QUEUE-123")

      • duration (string, required): ISO-8601 duration (e.g. PT1H30M)

      • comment (string, optional): Worklog comment

      • start (datetime, optional): Work start datetime (UTC assumed if timezone is not provided)

    • Returns created worklog entry

  • issue_update_worklog: Update a worklog entry (spent time record) in an issue

    • Parameters:

      • issue_id (string, required, format: "QUEUE-123")

      • worklog_id (int, required): Worklog entry ID

      • duration (string, optional): ISO-8601 duration (e.g. PT1H30M)

      • comment (string, optional): Worklog comment

      • start (datetime, optional): Work start datetime (UTC assumed if timezone is not provided)

    • Returns updated worklog entry

  • issue_delete_worklog: Delete a worklog entry (spent time record) from an issue

    • Parameters:

      • issue_id (string, required, format: "QUEUE-123")

      • worklog_id (int, required): Worklog entry ID

    • Returns: null (success)

  • issue_get_attachments: Get attachments for an issue

    • Parameters: issue_id (string, format: "QUEUE-123")

    • Returns list of attachments with metadata for the specified issue

  • issue_download_attachment: Download an attachment as an MCP embedded binary resource

    • Parameters: issue_id, attachment_id, and file_name returned by issue_get_attachments

    • Enforces the TRACKER_MAX_ATTACHMENT_BYTES transfer limit

  • issue_upload_attachment: Upload base64-encoded content as an issue attachment

    • Parameters: issue_id, file_name, content_base64, and optional mime_type

    • Unavailable when TRACKER_READ_ONLY=true

  • issue_delete_attachment: Delete an issue attachment by ID

    • Unavailable when TRACKER_READ_ONLY=true

  • issue_get_checklist: Get checklist items of an issue

    • Parameters: issue_id (string, format: "QUEUE-123")

    • Returns list of checklist items including text, status, assignee, and deadline information

  • issue_get_transitions: Get possible status transitions for an issue

    • Parameters: issue_id (string, format: "QUEUE-123")

    • Returns list of available transitions that can be performed on the issue

    • Each transition includes an ID, display name, and target status information

  • issue_get_changelog: Get the change history (changelog) of an issue

    • Parameters:

      • issue_id (string, required, format: "QUEUE-123"): The issue key

      • per_page (integer, optional, default: 50): Number of entries per page

      • cursor (string, optional): The next_cursor value returned by the previous call; pass it to fetch the next page (cursor pagination)

      • field (string, optional): Filter the changelog by a field key (e.g. status)

      • type (string, optional): Filter by change type (e.g. IssueWorkflow for status transitions)

    • Returns an object with entries (status transitions and field edits — including who changed what fromto and when — plus comment changes and executed triggers) and next_cursor (pass it back as cursor for the next page; null when there are no more pages)

  • issue_execute_transition: Execute a status transition for an issue

    • Parameters:

      • issue_id (string, required, format: "QUEUE-123"): The issue key

      • transition_id (string, required): The transition ID to execute. IMPORTANT: Must be one of the IDs returned by issue_get_transitions tool

      • comment (string, optional): Optional comment to add when executing the transition

      • fields (object, optional): Dictionary of additional fields to set during the transition. Common fields include resolution (e.g., 'fixed', 'wontFix') for closing issues, assignee for reassigning, etc.

    • Returns list of available transitions for the new status after the transition is executed

    • Usage note: You MUST first call issue_get_transitions to retrieve available transitions, then pass one of the returned transition IDs. Do NOT use arbitrary transition IDs.

  • issue_close: Close an issue with a resolution (convenience tool)

    • Parameters:

      • issue_id (string, required, format: "QUEUE-123"): The issue key

      • resolution_id (string, required): The resolution ID to set when closing (e.g., 'fixed', 'wontFix', 'duplicate')

      • comment (string, optional): Optional comment to add when closing the issue

    • Automatically finds a transition to a 'done' status and executes it with the specified resolution

    • Returns list of available transitions for the new (closed) status

    • Usage note: Before closing, you MUST:

      1. Call issue_get to retrieve the issue's type field

      2. Call get_queue_metadata with expand: ["issueTypesConfig"] to get available resolutions

      3. Choose a resolution from the issueTypesConfig entry matching the issue's type - each issue type has its own set of valid resolutions

  • issue_create: Create a new issue in a queue

    • Parameters:

      • queue (string, required): Queue key where to create the issue (e.g., 'MYQUEUE')

      • summary (string, required): Issue title/summary

      • type (int, optional): Issue type ID (from get_issue_types tool)

      • description (string, optional): Issue description

      • assignee (string or int, optional): Assignee login or UID

      • priority (string, optional): Priority key (from get_priorities tool)

      • fields (object, optional): Additional fields to set during issue creation. IMPORTANT: Before creating an issue, you MUST call queue_get_fields to get available fields (it returns both global and local fields by default). Fields with schema.required=true are mandatory. Use the field's id property as the key in this map (e.g., {"fieldId": "value"})

    • Returns the newly created issue object with all standard issue fields

    • Respects TRACKER_LIMIT_QUEUES restrictions

  • issue_update: Update an existing issue

    • Parameters:

      • issue_id (string, required, format: "QUEUE-123"): The issue key to update

      • summary (string, optional): New issue title/summary

      • description (string, optional): New issue description

      • markup_type (string, optional): Markup type for description text (use 'md' for YFM markup)

      • parent (IssueUpdateParent, optional): Parent issue reference with id (string) and/or key (string, e.g., 'QUEUE-123')

      • sprint (array of IssueUpdateSprint, optional): Sprint assignments - array of objects with id (int) field

      • type (IssueUpdateType, optional): Issue type with id (string) and/or key (string, e.g., 'bug', 'task')

      • priority (IssueUpdatePriority, optional): Priority with id (string) and/or key (string, e.g., 'critical', 'normal')

      • followers (array of IssueUpdateFollower, optional): Followers - array of objects with id (string, user ID or login)

      • project (IssueUpdateProject, optional): Project with primary (int, main project shortId) and optional secondary (array of ints)

      • tags (array of strings, optional): Issue tags

      • version (int, optional): Issue version for optimistic locking - changes only made to current version

      • fields (object, optional): Additional fields to update. Use queue_get_fields to discover available fields.

    • Returns the updated issue object with all standard issue fields

    • Only provided fields are updated; omitted fields remain unchanged

    • Respects TRACKER_LIMIT_QUEUES restrictions

  • issue_move: Move an issue to a different queue

    • Parameters:

      • issue_id (string, required, format: "QUEUE-123"): The issue key to move

      • queue (string, required): Target queue key (e.g., 'MYQUEUE')

      • notify (boolean, optional, default true): Notify users referenced in the issue's fields

      • notify_author (boolean, optional, default false): Notify the issue author

      • move_all_fields (boolean, optional, default false): Carry over versions, components and projects when matching ones exist in the target queue; otherwise they are cleared

      • initial_status (boolean, optional, default false): Reset the issue status to the initial value (use when the target queue has a different workflow)

    • Returns the updated issue object with its new key in the target queue (e.g., TASKS-1NEWQUEUE-42)

    • When the MCP client supports elicitation, the user is prompted to confirm the boolean flags before the move is performed; declining or cancelling aborts the move. Clients without elicitation support proceed with the passed-in values

    • Respects TRACKER_LIMIT_QUEUES restrictions

  • issues_find: Search issues using Yandex Tracker Query Language

    • Parameters:

      • query (optional): Query string using Yandex Tracker Query Language syntax

      • filter_id (optional): Saved filter ID; mutually exclusive with query

      • include_description (boolean, optional, default: false): Whether to include issue description in the issues result. Can be large, so use only when needed.

      • fields (list of strings, optional): Fields to include in the response. Helps optimize context window usage by selecting only needed fields. If not specified, returns all available fields.

      • page (optional): Page number for pagination (default: 1)

      • per_page (optional): Number of items per page (default: 100). May be decreased if results exceed context window.

    • Returns up to specified number of issues per page

  • issues_count: Count issues matching a query using Yandex Tracker Query Language

    • Parameters:

      • query (optional): Query string using Yandex Tracker Query Language syntax

      • filter_id (optional): Saved filter ID; mutually exclusive with query

    • Returns the total count of issues matching the specified criteria

    • Supports all query language features: field filtering, date functions, logical operators, and complex expressions

    • Useful for analytics, reporting, and understanding issue distribution without retrieving full issue data

http Transport

The MCP server can also be run in streamable-http mode for web-based integrations or when stdio transport is not suitable.

streamable-http Mode Environment Variables

# Required - Set transport to streamable-http mode
TRANSPORT=streamable-http

# Server Configuration
HOST=0.0.0.0  # Default: 0.0.0.0 (all interfaces)
PORT=8000     # Default: 8000

Starting the streamable-http Server

# Basic streamable-http server startup
TRANSPORT=streamable-http uvx yandex-tracker-mcp@latest

# With custom host and port
TRANSPORT=streamable-http \
HOST=localhost \
PORT=9000 \
uvx yandex-tracker-mcp@latest

# With all environment variables
TRANSPORT=streamable-http \
HOST=0.0.0.0 \
PORT=8000 \
TRACKER_TOKEN=your_token \
TRACKER_CLOUD_ORG_ID=your_org_id \
uvx yandex-tracker-mcp@latest

You may skip configuring TRACKER_CLOUD_ORG_ID or TRACKER_ORG_ID if you are using the following format when connecting to MCP Server (example for Claude Code):

claude mcp add --transport http yandex-tracker "http://localhost:8000/mcp/?cloudOrgId=your_cloud_org_id&"

or

claude mcp add --transport http yandex-tracker "http://localhost:8000/mcp/?orgId=org_id&"

You may also skip configuring global TRACKER_TOKEN environment variable if you choose to use OAuth 2.0 authentication (see below).

OAuth 2.0 Authentication

The Yandex Tracker MCP Server supports OAuth 2.0 authentication as a secure alternative to static API tokens. When configured, the server acts as an OAuth provider, facilitating authentication between your MCP client and Yandex OAuth services.

How OAuth Works

The MCP server implements a standard OAuth 2.0 authorization code flow:

  1. Client Registration: Your MCP client registers with the server to obtain client credentials

  2. Authorization: Users are redirected to Yandex OAuth to authenticate

  3. Token Exchange: The server exchanges authorization codes for access tokens

  4. API Access: Clients use bearer tokens for all API requests

  5. Token Refresh: Expired tokens can be refreshed without re-authentication

MCP Client → MCP Server → Yandex OAuth → User Authentication
    ↑                                           ↓
    └────────── Access Token ←─────────────────┘

OAuth Configuration

To enable OAuth authentication, set the following environment variables:

# Enable OAuth mode
OAUTH_ENABLED=true

# Yandex OAuth Application Credentials (required for OAuth)
OAUTH_CLIENT_ID=your_yandex_oauth_app_id
OAUTH_CLIENT_SECRET=your_yandex_oauth_app_secret

# Public URL of your MCP server (required for OAuth callbacks)
MCP_SERVER_PUBLIC_URL=https://your-mcp-server.example.com

# Optional OAuth settings
OAUTH_SERVER_URL=https://oauth.yandex.ru  # Default Yandex OAuth server

# When OAuth is enabled, TRACKER_TOKEN becomes optional

Setting Up Yandex OAuth Application

  1. Go to Yandex OAuth and create a new application

  2. Set the callback URL to: {MCP_SERVER_PUBLIC_URL}/oauth/yandex/callback

  3. Request the following permissions:

    • tracker:read - Read permissions for Tracker

    • tracker:write - Write permissions for Tracker

  4. Save your Client ID and Client Secret

OAuth vs Static Token Authentication

Feature

OAuth

Static Token

Security

Dynamic tokens with expiration

Long-lived static tokens

User Experience

Interactive login flow

One-time configuration

Token Management

Automatic refresh

Manual rotation

Access Control

Per-user authentication

Shared token

Setup Complexity

Requires OAuth app setup

Simple token configuration

OAuth Mode Limitations

  • Currently, the OAuth mode requires the MCP server to be publicly accessible for callback URLs

  • OAuth mode is best suited for interactive clients that support web-based authentication flows

Using OAuth with MCP Clients

When OAuth is enabled, MCP clients will need to:

  1. Support OAuth 2.0 authorization code flow

  2. Handle token refresh when access tokens expire

  3. Store refresh tokens securely for persistent authentication

Note: Not all MCP clients currently support OAuth authentication. Check your client's documentation for OAuth compatibility.

Example configuration for Claude Code:

claude mcp add --transport http yandex-tracker https://your-mcp-server.example.com/mcp/ -s user

OAuth Data Storage

The MCP server supports two different storage backends for OAuth data (client registrations, access tokens, refresh tokens, and authorization states):

InMemory Store (Default)

The in-memory store keeps all OAuth data in server memory. This is the default option and requires no additional configuration.

Characteristics:

  • Persistence: Data is lost when the server restarts

  • Performance: Very fast access since data is stored in memory

  • Scalability: Limited to single server instance

  • Setup: No additional dependencies required

  • Best for: Development, testing, or single-instance deployments where losing OAuth sessions on restart is acceptable

Configuration:

OAUTH_STORE=memory  # Default value, can be omitted
Redis Store

The Redis store provides persistent storage for OAuth data using a Redis database. This ensures OAuth sessions survive server restarts and enables multi-instance deployments.

Characteristics:

  • Persistence: Data persists across server restarts

  • Performance: Fast access with network overhead

  • Scalability: Supports multiple server instances sharing the same Redis database

  • Setup: Requires Redis server installation and configuration

  • Best for: Production deployments, high availability setups, or when OAuth sessions must persist

Configuration:

# Enable Redis store for OAuth data
OAUTH_STORE=redis

# Redis connection settings (same as used for tools caching)
REDIS_ENDPOINT=localhost                  # Default: localhost
REDIS_PORT=6379                           # Default: 6379
REDIS_DB=0                                # Default: 0
REDIS_PASSWORD=your_redis_password        # Optional: Redis password
REDIS_POOL_MAX_SIZE=10                    # Default: 10

Storage Behavior:

  • Client Information: Stored persistently

  • OAuth States: Stored with TTL (time-to-live) for security

  • Authorization Codes: Stored with TTL and automatically cleaned up after use

  • Access Tokens: Stored with automatic expiration based on token lifetime

  • Refresh Tokens: Stored persistently until revoked

  • Key Namespacing: Uses oauth:* prefixes to avoid conflicts with other Redis data

Token Encryption (Required for Redis Store)

When using Redis store, you must configure encryption to protect OAuth tokens at rest. Token values are encrypted using Fernet (AES-128) and Redis keys use SHA-256 hashes instead of raw tokens, preventing token exposure if Redis is compromised.

Generate an encryption key:

python3 -c "import base64, os; print(base64.b64encode(os.urandom(32)).decode())"

Configuration:

# Single encryption key
OAUTH_ENCRYPTION_KEYS=<base64-encoded-32-byte-key>

# Multiple keys for rotation (first encrypts, all decrypt)
OAUTH_ENCRYPTION_KEYS=<new-key>,<old-key>

Key rotation allows seamless key updates: add the new key first, wait for old tokens to expire, then remove the old key.

Important Notes:

  • Both stores use the same Redis connection settings as the tools caching system

  • When using Redis store, ensure your Redis instance is properly secured and accessible

  • The OAUTH_STORE setting only affects OAuth data storage; tools caching uses TOOLS_CACHE_ENABLED

  • Redis store uses JSON serialization for better cross-language compatibility and debugging

Authentication

Yandex Tracker MCP Server supports multiple authentication methods with a clear priority order. The server will use the first available authentication method based on this hierarchy:

Authentication Priority Order

  1. Dynamic OAuth Token (highest priority)

    • When OAuth is enabled and a user authenticates via OAuth flow

    • Tokens are dynamically obtained and refreshed per user session

    • Supports both standard Yandex OAuth and Yandex Cloud federative OAuth

    • Required env vars: OAUTH_ENABLED=true, OAUTH_CLIENT_ID, OAUTH_CLIENT_SECRET, MCP_SERVER_PUBLIC_URL

    • Additional vars for federative OAuth: OAUTH_SERVER_URL=https://auth.yandex.cloud/oauth, OAUTH_TOKEN_TYPE=Bearer, OAUTH_USE_SCOPES=false

  2. Passthrough Bearer OAuth Token

    • When MCP OAuth middleware does not provide a token, the server can read a Yandex OAuth token from the incoming Authorization: Bearer <token> header

    • Useful behind a trusted reverse proxy or gateway that authenticates users, resolves their stored Yandex OAuth token, and injects it per request

    • The token from MCP OAuth still has priority when OAuth mode is enabled and active

  3. Static OAuth Token

    • Traditional OAuth token provided via environment variable

    • Single token used for all requests

    • Required env var: TRACKER_TOKEN (your OAuth token)

  4. Static IAM Token

    • IAM (Identity and Access Management) token for service-to-service authentication

    • Suitable for automated systems and CI/CD pipelines

    • Required env var: TRACKER_IAM_TOKEN (your IAM token)

  5. Dynamic IAM Token (lowest priority)

    • Automatically retrieved using service account credentials

    • Token is fetched and refreshed automatically

    • Required env vars: TRACKER_SA_KEY_ID, TRACKER_SA_SERVICE_ACCOUNT_ID, TRACKER_SA_PRIVATE_KEY

Authentication Scenarios

# Enable OAuth mode
OAUTH_ENABLED=true
OAUTH_CLIENT_ID=your_oauth_app_id
OAUTH_CLIENT_SECRET=your_oauth_app_secret
MCP_SERVER_PUBLIC_URL=https://your-server.com

# Organization ID (choose one)
TRACKER_CLOUD_ORG_ID=your_cloud_org_id  # or TRACKER_ORG_ID

Scenario 2: Static OAuth Token (Simple Setup)

# OAuth token
TRACKER_TOKEN=your_oauth_token

# Organization ID (choose one)
TRACKER_CLOUD_ORG_ID=your_cloud_org_id  # or TRACKER_ORG_ID

Scenario 3: Passthrough Bearer Token Behind a Reverse Proxy

Use this mode when a trusted gateway handles user authentication, looks up the user's Yandex OAuth token, and forwards the request to the MCP server with that token in the request header:

Authorization: Bearer <user_yandex_oauth_token>
# Organization ID (choose one)
TRACKER_CLOUD_ORG_ID=your_cloud_org_id  # or TRACKER_ORG_ID

This passthrough token is used only when MCP OAuth middleware has not provided an access token for the request. In OAuth-enabled deployments with an active MCP OAuth session, the MCP OAuth token takes priority.

Scenario 4: Static IAM Token

# IAM token
TRACKER_IAM_TOKEN=your_iam_token

# Organization ID (choose one)
TRACKER_CLOUD_ORG_ID=your_cloud_org_id  # or TRACKER_ORG_ID

Scenario 5: Dynamic IAM Token with Service Account

# Service account credentials
TRACKER_SA_KEY_ID=your_key_id
TRACKER_SA_SERVICE_ACCOUNT_ID=your_service_account_id
TRACKER_SA_PRIVATE_KEY=your_private_key

# Organization ID (choose one)
TRACKER_CLOUD_ORG_ID=your_cloud_org_id  # or TRACKER_ORG_ID

Scenario 6: Federative OAuth for OIDC Applications (Advanced)

# Enable OAuth with Yandex Cloud federation
OAUTH_ENABLED=true
OAUTH_SERVER_URL=https://auth.yandex.cloud/oauth
OAUTH_TOKEN_TYPE=Bearer
OAUTH_USE_SCOPES=false
OAUTH_CLIENT_ID=your_oidc_client_id
OAUTH_CLIENT_SECRET=your_oidc_client_secret
MCP_SERVER_PUBLIC_URL=https://your-server.com

# Organization ID (choose one)
TRACKER_CLOUD_ORG_ID=your_cloud_org_id  # or TRACKER_ORG_ID

This configuration enables authentication through Yandex Cloud OIDC applications, which is required for federated accounts in Yandex Cloud. Federated users authenticate through their organization's identity provider (IdP) and use this OAuth flow to access Yandex Tracker APIs.

Important Notes

  • The server checks authentication methods in the order listed above

  • Only one authentication method will be used at a time

  • For production use, dynamic tokens (OAuth or IAM) are recommended for better security

  • IAM tokens have a shorter lifetime than OAuth tokens and may need more frequent renewal

  • When using service accounts, ensure the account has appropriate permissions for Yandex Tracker

Configuration

Environment Variables

# Authentication (use one of the following methods)
# Method 1: OAuth Token
TRACKER_TOKEN=your_yandex_tracker_oauth_token

# Method 2: IAM Token
TRACKER_IAM_TOKEN=your_iam_token

# Method 3: Service Account (for dynamic IAM token)
TRACKER_SA_KEY_ID=your_key_id                    # Service account key ID
TRACKER_SA_SERVICE_ACCOUNT_ID=your_sa_id        # Service account ID
TRACKER_SA_PRIVATE_KEY=your_private_key          # Service account private key

# Organization Configuration (choose one)
TRACKER_CLOUD_ORG_ID=your_cloud_org_id    # For Yandex Cloud organizations
TRACKER_ORG_ID=your_org_id                # For Yandex 360 organizations

# API Configuration (optional)
TRACKER_API_BASE_URL=https://api.tracker.yandex.net  # Default: https://api.tracker.yandex.net
TRACKER_MAX_ATTACHMENT_BYTES=10485760                 # Default: 10 MiB MCP transfer limit

# Security - Restrict access to specific queues (optional)
TRACKER_LIMIT_QUEUES=PROJ1,PROJ2,DEV      # Comma-separated queue keys

# Server Configuration
HOST=0.0.0.0                              # Default: 0.0.0.0
PORT=8000                                 # Default: 8000
TRANSPORT=stdio                           # Options: stdio, streamable-http, sse

# Redis connection settings (used for caching and OAuth store)
REDIS_ENDPOINT=localhost                  # Default: localhost
REDIS_PORT=6379                           # Default: 6379
REDIS_DB=0                                # Default: 0
REDIS_PASSWORD=your_redis_password        # Optional: Redis password
REDIS_POOL_MAX_SIZE=10                    # Default: 10

# Tools caching configuration (optional)
TOOLS_CACHE_ENABLED=true                  # Default: false
TOOLS_CACHE_REDIS_TTL=3600                # Default: 3600 seconds (1 hour)

# OAuth 2.0 Authentication (optional)
OAUTH_ENABLED=true                        # Default: false
OAUTH_STORE=redis                         # Options: memory, redis (default: memory)
OAUTH_SERVER_URL=https://oauth.yandex.ru  # Default: https://oauth.yandex.ru (use https://auth.yandex.cloud/oauth for federation)
OAUTH_TOKEN_TYPE=<Bearer|OAuth|<empty>>   # Default: <empty> (required to be Bearer for Yandex Cloud federation)
OAUTH_USE_SCOPES=true                     # Default: true (set to false for Yandex Cloud federation)
OAUTH_CLIENT_ID=your_oauth_client_id      # Required when OAuth enabled
OAUTH_CLIENT_SECRET=your_oauth_secret     # Required when OAuth enabled
MCP_SERVER_PUBLIC_URL=https://your.server.com  # Required when OAuth enabled
TRACKER_READ_ONLY=true                    # Default: false - Limit OAuth to read-only permissions

Docker Deployment

# Using environment file
docker run --env-file .env -p 8000:8000 ghcr.io/aikts/yandex-tracker-mcp:latest

# With inline environment variables
docker run -e TRACKER_TOKEN=your_token \
           -e TRACKER_CLOUD_ORG_ID=your_org_id \
           -p 8000:8000 \
           ghcr.io/aikts/yandex-tracker-mcp:latest

Building the Image Locally

docker build -t yandex-tracker-mcp .

Docker Compose

Using pre-built image:

version: '3.8'
services:
  mcp-tracker:
    image: ghcr.io/aikts/yandex-tracker-mcp:latest
    ports:
      - "8000:8000"
    environment:
      - TRACKER_TOKEN=${TRACKER_TOKEN}
      - TRACKER_CLOUD_ORG_ID=${TRACKER_CLOUD_ORG_ID}

Building locally:

version: '3.8'
services:
  mcp-tracker:
    build: .
    ports:
      - "8000:8000"
    environment:
      - TRACKER_TOKEN=${TRACKER_TOKEN}
      - TRACKER_CLOUD_ORG_ID=${TRACKER_CLOUD_ORG_ID}

Development Setup

# Clone and setup
git clone https://github.com/aikts/yandex-tracker-mcp
cd yandex-tracker-mcp

# Install development dependencies
uv sync --dev

# Formatting and static checking
task

License

This project is licensed under the terms specified in the LICENSE file.

Support

For issues and questions:

Available Tools

57 tools
board_getGet BoardA
Read-only

Get a Yandex Tracker board with columns and filter settings

ParametersJSON Schema
NameRequiredDescriptionDefault
board_idYesBoard identifier

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
nameYes
selfYes
columnsNo
versionYes
created_atNo
created_byNo
updated_atNo
default_queueNo
auto_filter_settingsNo

TDQS

A3.8/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, so the agent knows this is a safe read operation. The description adds that the board includes columns and filter settings, but provides no additional behavioral context such as permissions, errors, or pagination. It does not contradict annotations.

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

Conciseness5/5

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

The description is a single concise sentence that front-loads the action and resource. There is no redundant information, making it highly efficient.

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

Completeness4/5

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

Given the tool has only one parameter, is marked read-only, and has an output schema, the description adequately conveys the core functionality. It could be improved by noting that it fetches a single board by ID or mentions potential errors, but for its simplicity it is fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 100% with the parameter board_id described as 'Board identifier'. The tool description does not add further meaning to this single parameter, so baseline 3 applies.

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

Purpose5/5

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

The description uses a specific verb ('Get') with a clear resource ('Yandex Tracker board') and specifies the included content ('columns and filter settings'). This distinguishes it from sibling tools like boards_list and board_get_sprints.

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

Usage Guidelines3/5

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

The description implies usage via the verb 'Get' but does not explicitly state when to use this tool versus alternatives such as boards_list for listing or board_get_sprints for sprint details. No exclusions or alternative comparisons are provided.

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

board_get_sprintsGet Board SprintsA
Read-only

Get all sprints associated with a Yandex Tracker board

ParametersJSON Schema
NameRequiredDescriptionDefault
board_idYesBoard identifier

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, covering the safety profile. The description adds the 'all' scope for sprints, which is useful, but it does not disclose pagination, ordering, or error behavior. With annotations covering read-only semantics, this modest addition is acceptable but not rich.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. It immediately states the action and resource, making it appropriately concise for a simple tool.

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

Completeness5/5

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

For a simple read-only list tool with one fully described parameter and an output schema, the description sufficiently conveys the purpose. The output schema eliminates the need to detail return values, and the annotations cover safety, making the description complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

The input schema provides 100% coverage for the single parameter board_id with a description ('Board identifier'). The tool description does not add any further semantic detail about the parameter, so it does not exceed what the schema already provides.

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

Purpose5/5

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

The description clearly states the action ('Get') and resource ('all sprints') with a specific scope ('associated with a Yandex Tracker board'). It distinguishes the tool from siblings like sprint_get, which targets a single sprint, and boards_list/board_get, which retrieve board metadata.

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

Usage Guidelines4/5

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

The description gives clear context that this tool lists sprints for a board, implying the appropriate scenario for use. However, it does not explicitly mention when not to use it or name alternatives like sprint_get for individual sprints, so it falls short of explicit exclusion guidance.

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

boards_listList BoardsA
Read-only

Get all Yandex Tracker issue boards available to the current user

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

The readOnlyHint annotation already covers the safety profile, and the description adds the useful behavioral context that results are scoped to the current user's accessibility. This exceeds the baseline by providing auth-related context beyond the annotation, though it does not discuss pagination or output format (which may be covered by the output schema).

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

Conciseness5/5

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

The description is a single, front-loaded sentence that conveys the essential purpose and scope without any filler. Every word contributes meaning, making it appropriately concise and well-structured.

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

Completeness5/5

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

Given the tool's simplicity (0 parameters, read-only annotation, and an output schema present), the description is complete. It specifies the resource type, the scope (current user), and the action (get all). There is no need to explain return values since the output schema handles that.

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?

With zero parameters and full schema coverage (empty schema), the baseline for parameter semantics is 4. The description does not need to elaborate on parameters, and it adds no parameter-related meaning because there are none. This matches the baseline.

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

Purpose5/5

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

The description uses a specific verb ('Get all') with a clear resource ('Yandex Tracker issue boards') and a scope qualifier ('available to the current user'). This clearly distinguishes it from sibling tools like 'board_get' (which likely retrieves a single board) and 'board_get_sprints' (which retrieves sprints for a board).

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

Usage Guidelines3/5

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

The description implies a use case (list all boards for the current user) but does not explicitly contrast it with alternatives. It does not mention when to use this instead of 'board_get' or other board-related tools. Context is clear but exclusions are absent, so it meets the 'implied usage' level.

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

entities_bulk_updateBulk Update EntitiesB

Start a bulk update for Yandex Tracker projects, portfolios, or goals.

ParametersJSON Schema
NameRequiredDescriptionDefault
linksNoLinks to apply to every selected entity
fieldsNoField-value pairs to apply to every selected entity
commentNoOptional comment to add to every selected entity
entity_idsYesIds of entities to update
entity_typeYesEntity type: project, portfolio, or goal

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
selfYes
statusYes
created_atNo
created_byNo
status_textNo
execution_chunk_percentNo
execution_issue_percentNo

TDQS

B3.2/5.0
Behavior2/5

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

Annotations only indicate readOnlyHint=false, so the description carries the burden of behavioral disclosure. It mentions 'Start a bulk update' but does not clarify whether this is asynchronous, what the response contains, whether changes are reversible, or any side effects. This is a significant 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.

Conciseness5/5

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

The description is a single concise sentence that front-loads the core purpose. There is no fluff or redundant information; every word contributes to understanding what the tool does.

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

Completeness2/5

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

Despite having an output schema and fully covered parameters, the tool is a complex bulk operation with 5 parameters. The description fails to mention asynchronous behavior, return format, or how it relates to single-entity updates. This is insufficient context for an agent to confidently select and invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents each parameter. The description adds minimal value beyond reiterating entity types, but it does reinforce that the update applies to multiple entities. Baseline 3 is appropriate because the schema handles parameter semantics.

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 ('Start a bulk update') with a defined resource ('Yandex Tracker projects, portfolios, or goals'). It clearly conveys the tool's purpose and distinguishes it from single-entity operations like entity_update, though it does not explicitly reference sibling tools.

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 phrase 'bulk update' implies usage when updating multiple entities at once, and the listed entity types give context. However, there is no explicit guidance on when to prefer this over entity_update or entity_create, nor any mention of limitations or alternatives.

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

entity_createCreate EntityA

Create a Yandex Tracker project, portfolio, or goal.

ParametersJSON Schema
NameRequiredDescriptionDefault
linksNoEntity links, each with relationship and entity keys
fieldsYesEntity fields. summary is required. Other common keys include description, lead, teamUsers, clients, followers, start, end, tags, parentEntity, entityStatus, and teamAccess
entity_typeYesEntity type: project, portfolio, or goal
response_fieldsNoAdditional fields to include in the response

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
selfYes
fieldsNo
versionYes
short_idYes
created_atNo
created_byNo
updated_atNo
attachmentsNo
entity_typeYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations include readOnlyHint=false, and the description's 'Create' is consistent with a write operation. The description adds the range of entity types that can be created (project, portfolio, goal), which is not in annotations. However, it does not disclose other behavioral aspects like permission requirements 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.

Conciseness5/5

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

The description is a single, concise sentence that front-loads the key action and resource, with no wasted words.

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

Completeness4/5

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

The schema is rich with parameter descriptions, an output schema is present, and annotations indicate read/write status. The description covers the core purpose, but it lacks usage context or prerequisites. Given the schema richness, the minimal description is adequate.

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 each parameter having a clear description. The tool description does not add parameter-specific meaning beyond the schema, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description uses the specific verb 'Create' and identifies the resource as 'a Yandex Tracker project, portfolio, or goal.' It clearly distinguishes this tool from siblings like entity_update and entity_delete, which modify or remove entities.

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 that it is for new entities only, nor does it reference entity_update or entities_bulk_update as alternatives. No when-to-use or when-not-to-use context is provided.

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

entity_deleteDelete EntityA
Destructive

Delete a Yandex Tracker project, portfolio, or goal.

ParametersJSON Schema
NameRequiredDescriptionDefault
entity_idYesEntity id or numeric shortId
with_boardNoAlso delete the associated board, when applicable
entity_typeYesEntity type: project, portfolio, or goal

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate destructiveHint=true and readOnlyHint=false, so the description does not need to restate that deletion is destructive. It adds the target entity types, but these are also present in the schema enum. No additional behavioral traits like irreversibility or permissions are mentioned, but this is acceptable given the annotations.

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

Conciseness5/5

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

The description is a single, sharply focused sentence with no redundant words or filler. It is appropriately concise for a simple deletion tool.

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

Completeness4/5

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

Given the destructive annotation, the full input schema, and presence of an output schema, the description is sufficient for an agent to understand the tool's purpose. It lacks some extra context like irreversibility, but the annotations cover the key safety aspect.

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%: all three parameters have descriptions. The description does not add meaning beyond the schema, so it stays at the baseline of 3.

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

Purpose5/5

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

The description states the specific action ('Delete') and the resource types ('Yandex Tracker project, portfolio, or goal'), making it clear what the tool does. It distinguishes itself from sibling tools like entity_create and entity_update by focusing solely on deletion.

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 implied by the name and description, but there is no explicit guidance on when to use this tool, prerequisites, or alternatives. The description does not specify when not to use it, though the scope is clear.

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

entity_getGet EntityA
Read-only

Get a Yandex Tracker project, portfolio, or goal by id or shortId.

ParametersJSON Schema
NameRequiredDescriptionDefault
expandNoAdditional data to include; supported value: attachments
fieldsNoAdditional entity fields to include, such as summary, description, lead, entityStatus, parentEntity, issueQueues, or progressPercentage
entity_idYesEntity id or numeric shortId
entity_typeYesEntity type: project, portfolio, or goal

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
selfYes
fieldsNo
versionYes
short_idYes
created_atNo
created_byNo
updated_atNo
attachmentsNo
entity_typeYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds the ability to specify 'expand' for attachments and 'fields' for additional data, which hints at response shaping. However, it doesn't disclose behavior like default fields returned, pagination, or error conditions, but given the annotation, descriptive value is adequate.

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

Conciseness5/5

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

Single sentence front-loads the core action, and the description is appropriately sized for a straightforward getter tool. No redundant fluff; every word earns its place.

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

Completeness4/5

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

Given the tool's complexity (4 params, simple getter), output schema exists, and annotations indicate read-only, the description is nearly complete. It doesn't list return fields, but output schema covers that. Missing a bit: mention that entity_id can be shortId is included, but some usage context (e.g., differences between id types) is minimal. Still sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

Schema description coverage is 100% with detailed descriptions for each parameter (entity_type, entity_id, expand, fields). The description echoes schema for entity_type but adds that id can be numeric shortId, which is valuable. Baseline 3 is raised because the description clarifies shortId usage and explains expand/fields beyond their schema descriptions.

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

Purpose5/5

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

Description states specific verb+resource: 'Get a Yandex Tracker project, portfolio, or goal by id or shortId.' It clearly lists the three entity types, distinguishing from sibling tools like queue_get_metadata or issue_get. The scope is explicit.

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

Usage Guidelines4/5

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

The description implies when to use: when you need a project, portfolio, or goal by ID/shortId. It doesn't explicitly name alternatives or exclusions, but the context with sibling tools (entity_get_events, entity_create) makes usage clear. Some guidance about when not to use (e.g., for issues use issue_get) would elevate it, but it's not misleading.

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

entity_get_eventsGet Entity EventsA
Read-only

Get the event history of a Yandex Tracker project, portfolio, or goal.

ParametersJSON Schema
NameRequiredDescriptionDefault
from_idNoReturn events after this event id; mutually exclusive with selected
per_pageNoThe number of items per page. May be decreased if results exceed context window. If there is a change in per_page argument - retrieval must be started over with page = 1, as the paging could have changed.
selectedNoCenter results around this event id; mutually exclusive with from_id
directionNoPagination direction: forward or backwardforward
entity_idYesEntity id or numeric shortId
entity_typeYesEntity type: project, portfolio, or goal
new_events_on_topNoReverse the default event order

Output Schema

ParametersJSON Schema
NameRequiredDescription
eventsYes

TDQS

A4.1/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, so the agent already knows this is a safe read operation. The description adds that it returns 'event history,' but no additional behavioral details such as ordering or event scope beyond what the schema already provides. With annotations covering safety, this adds minimal extra context, warranting a mid-range score.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that directly states the tool's purpose without filler or redundant information.

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

Completeness5/5

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

The tool has a rich schema with parameter descriptions and an output schema, while annotations confirm read-only behavior. The description, though brief, fully explains what the tool does and for which entity types, making it complete for an agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 100%, and the input schema already contains detailed explanations for each parameter, including mutual exclusivity for from_id and selected, direction, and per_page. The description contributes no parameter-level information, so the baseline of 3 applies.

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

Purpose5/5

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

The description uses the specific action 'Get the event history' and explicitly names the resources: 'Yandex Tracker project, portfolio, or goal.' This clearly distinguishes it from sibling tools like entity_get (which retrieves entity details) and issue_get_changelog (which covers issues).

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

Usage Guidelines4/5

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

The description implies usage for entity event history by naming the three entity types, providing clear context for when to use it. However, it does not explicitly exclude other cases (e.g., issues) or mention alternatives like issue_get_changelog, so no exclusions are stated.

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

entity_updateUpdate EntityB

Update a Yandex Tracker project, portfolio, or goal.

ParametersJSON Schema
NameRequiredDescriptionDefault
linksNoLinks to update, each with relationship and entity keys
expandNoAdditional data to include; supported value: attachments
fieldsNoFields to update. Collection fields accept Tracker operators such as set, add, and remove
commentNoOptional comment explaining the update
entity_idYesEntity id or numeric shortId
entity_typeYesEntity type: project, portfolio, or goal
response_fieldsNoAdditional fields to include in the response

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
selfYes
fieldsNo
versionYes
short_idYes
created_atNo
created_byNo
updated_atNo
attachmentsNo
entity_typeYes

TDQS

B3.3/5.0
Behavior2/5

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

The description adds no behavioral context beyond the annotation. It does not mention whether updates are partial or full, any permission requirements, or effects on unspecified fields. With only readOnlyHint=false in annotations, the agent gains no additional safety or operational insight.

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

Conciseness5/5

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

The description is a single sentence that conveys the essential purpose without extraneous words. It is perfectly concise and front-loaded.

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

Completeness3/5

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

While the schema and output schema are rich, the description does not address usage guidance or behavioral nuances. It is minimally sufficient for purpose identification but leaves gaps in when-to-use context, so it is not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 100%, so the parameters are already fully documented. The description itself adds no parameter-level detail, matching the baseline for full 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 states a specific verb ('Update') and resource ('a Yandex Tracker project, portfolio, or goal'), clearly distinguishing this tool from sibling tools like issue_update. It precisely enumerates the supported entity types, leaving no ambiguity about scope.

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 entity_create, entity_delete, entities_bulk_update, or issue_update. There are no usage scenarios, exclusions, or alternative recommendations.

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

filter_createCreate Saved FilterA

Create a saved Yandex Tracker issue filter using query or field conditions

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSaved filter name
queryNoTracker query language expression; mutually exclusive with filter
sortsNoSaved filter sort definitions
fieldsNoIssue fields shown for this filter in Tracker UI
filterNoField-value conditions; mutually exclusive with query
folderNoOptional destination folder
group_byNoOptional grouping field or object

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
nameYes
selfYes
ownerNo
queryNo
sortsNo
fieldsNo
filterNo
folderNo
favoriteNo
group_byNo
permissionsNo

TDQS

A3.8/5.0
Behavior3/5

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

With readOnlyHint=false in annotations, the mutating nature is already disclosed. The description adds minimal behavioral context beyond the annotation, mainly the two modes of defining conditions, which is also described in the schema. No contradiction exists.

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

Conciseness5/5

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

The description is a single, concise sentence that front-loads the verb and resource. Every word adds value and no unnecessary details are included.

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

Completeness4/5

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

Given the detailed schema and presence of an output schema, the description adequately conveys the tool's purpose. It doesn't need to explain return values. Missing explicit mention of prerequisites or side effects, but those are not critical for a create operation with clear schema 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 parameters are already well-documented. The description's mention of 'query or field conditions' adds little new meaning beyond the schema, which already notes mutual exclusivity. Baseline 3 applies.

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

Purpose5/5

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

The description clearly states the action ('Create') and the resource ('saved Yandex Tracker issue filter'), and mentions the two ways to define it ('using query or field conditions'). It distinguishes from sibling tools like filter_update (which modifies) and filter_get (which retrieves) by focusing on creation.

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

Usage Guidelines3/5

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

The verb 'create' implies this is for new filters, but there is no explicit 'when to use vs alternatives' or mention of filter_update for existing filters. The usage is implied rather than clearly stated, so it meets the 'implied usage' bar but not higher.

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

filter_find_issuesFind Issues by Saved FilterA
Read-only

Execute a saved Yandex Tracker filter and return matching issues

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number to return, default is 1
fieldsNoIssue fields to keep in the response
per_pageNoThe number of items per page. May be decreased if results exceed context window. If there is a change in per_page argument - retrieval must be started over with page = 1, as the paging could have changed.
filter_idYesSaved filter identifier
include_descriptionNoInclude issue descriptions in the response

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

The readOnlyHint=true annotation already covers the safe-read nature of the tool. The description adds no extra behavioral context (e.g., pagination behavior, result limits, or differences from a direct issue search), but it also does not contradict the annotation. With the annotation in place, a midpoint score is appropriate.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that efficiently captures the core action and result. It contains no redundant filler and every word adds value.

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

Completeness4/5

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

Given the rich input schema, the readOnlyHint annotation, and the presence of an output schema, the description is sufficient for basic invocation. It lacks explicit guidance on when to choose this over sibling search tools, but that gap is more about usage guidelines than completeness of the tool's contract.

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?

All five parameters (filter_id, page, per_page, fields, include_description) have descriptions in the input schema, providing 100% coverage. The tool description itself does not elaborate on parameters, but the schema fully documents their 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.

Purpose5/5

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

The description clearly states that the tool executes a saved Yandex Tracker filter and returns matching issues. The verb 'execute' and the resource 'saved filter' make the function explicit, and it is distinguishable from sibling tools like filter_get (which retrieves filter metadata) and issues_find (which searches issues directly).

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 issues_find or filter_get. It only states what the tool does, leaving the agent to infer from the name that a saved filter_id is required. There is no mention of scenarios where this tool is preferred.

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

filter_getGet Saved FilterA
Read-only

Get a saved Yandex Tracker issue filter by id

ParametersJSON Schema
NameRequiredDescriptionDefault
filter_idYesSaved filter identifier

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
nameYes
selfYes
ownerNo
queryNo
sortsNo
fieldsNo
filterNo
folderNo
favoriteNo
group_byNo
permissionsNo

TDQS

A3.6/5.0
Behavior2/5

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

The readOnlyHint annotation already signals a safe read operation. The description adds no additional behavioral context such as permissions, error handling, or return behavior beyond restating the resource and parameter. This does not contradict the annotation, but it offers no extra transparency.

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

Conciseness5/5

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

The description is a single, concise sentence (10 words) that front-loads the action and resource. Every word earns its place with no redundancy.

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

Completeness4/5

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

Given the tool's simplicity, one parameter, an output schema, and a readOnlyHint annotation, the description is largely sufficient. However, it does not offer comparison with sibling tools or mention potential error cases, leaving a minor gap in guidance.

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 parameter (filter_id). The tool description's 'by id' adds no new meaning over the schema's 'Saved filter identifier' and minimum value, so the baseline of 3 applies.

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

Purpose5/5

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

The description uses a specific verb ('Get') with a clear resource ('a saved Yandex Tracker issue filter') and parameter ('by id'). It distinguishes from sibling tools like filter_create, filter_update, and filter_find_issues, which have different purposes.

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

Usage Guidelines3/5

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

The description implies its usage: retrieve a saved filter by its identifier. However, it provides no explicit guidance on when to use this tool versus alternatives (e.g., filter_find_issues for finding issues in a filter), nor does it state exclusions or prerequisites.

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

filter_updateUpdate Saved FilterB

Update a saved Yandex Tracker issue filter

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew filter name
queryNoReplacement query; mutually exclusive with filter
sortsNoReplacement sort definitions
fieldsNoUI issue fields
filterNoReplacement field-value conditions; mutually exclusive with query
folderNoDestination folder
group_byNoGrouping field or object
filter_idYesSaved filter identifier

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
nameYes
selfYes
ownerNo
queryNo
sortsNo
fieldsNo
filterNo
folderNo
favoriteNo
group_byNo
permissionsNo

TDQS

B3.3/5.0
Behavior2/5

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

The annotation readOnlyHint=false already signals a mutation, and the description merely repeats the update action without adding behavioral context. It does not disclose partial-update behavior, whether unspecified fields are preserved, or the effect on the saved filter.

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

Conciseness5/5

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

The description is a single, focused sentence that immediately conveys the operation. It contains no filler or redundancy and is appropriately sized for a simple update tool.

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 rich schema and output schema cover parameter details and return values, so the minimal description is partially sufficient. However, it omits usage context such as whether this replaces the entire filter or only provided fields, and when to prefer sibling filter_create.

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 every parameter has its own description, so the tool description adds no new parameter meaning. The baseline 3 applies because the schema documents parameter roles and constraints thoroughly.

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

Purpose5/5

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

The description clearly states the action ('Update') and the resource ('saved Yandex Tracker issue filter'), distinguishing it from siblings like filter_create and filter_get. The verb and resource are specific and unambiguous.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like filter_create or filter_get. The description relies solely on the word 'Update' and offers no exclusions, prerequisites, or alternative recommendations.

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

get_global_fieldsGet Global FieldsA
Read-only

Get all global fields available in Yandex Tracker that can be used in issues

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

The readOnlyHint annotation already covers the read-only nature. The description adds context that the returned fields are global and usable in issues, which is useful. However, it does not describe pagination, ordering, or other behavioral details, though these are less critical for a simple list endpoint.

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

Conciseness5/5

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

The description is a single, front-loaded sentence without any fluff. Every word contributes to conveying the tool's purpose.

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

Completeness5/5

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

Given the zero-parameter, read-only nature and the presence of an output schema, the description fully covers the tool's purpose. It clearly explains what the tool returns and its scope, with no missing critical information.

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?

With zero parameters, the schema is fully covered. The description adds no parameter-specific semantics, but none are needed. The tool has no input requirements, so the baseline of 4 is appropriate.

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

Purpose5/5

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

The description states 'Get all global fields available in Yandex Tracker that can be used in issues' with a specific verb, resource, and scope. It clearly distinguishes from sibling tools like queue_get_fields by emphasizing 'global' and 'can be used in issues'.

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

Usage Guidelines3/5

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

The description does not explicitly mention when to use this tool versus alternatives. The word 'global' implies a distinction from queue-specific fields, but no direct comparison or exclusion is provided. Usage context is implied rather than stated.

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

get_issue_typesGet Issue TypesA
Read-only

Get all issue types available in Yandex Tracker that can be used when creating or updating issues

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

The annotation readOnlyHint=true already signals a safe read operation. The description adds that the tool retrieves all issue types for create/update operations, but it does not disclose return format, sorting, or edge cases. Since the schema and output schema provide structural details, the description offers modest additional transparency.

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

Conciseness5/5

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

The description is a single sentence that immediately states the action and resource, with no filler or repetition. It is front-loaded and efficiently communicates the tool's purpose.

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

Completeness5/5

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

Given zero parameters, a readOnly annotation, and an output schema, the description fully covers what the tool does and when it is relevant. It explains the data's usage context, making it complete for an agent to decide when to call this tool.

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 the schema coverage is 100% for an empty properties object. Per rubric, zero-parameter tools receive a baseline of 4. The description adds context about the returned data's purpose but there are no parameter semantics to elaborate on.

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

Purpose5/5

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

The description uses the specific verb 'Get' and clearly identifies the resource as 'all issue types available in Yandex Tracker'. It further explains the purpose ('can be used when creating or updating issues'), which distinguishes it from sibling tools 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 Guidelines4/5

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

The description states the context for use ('when creating or updating issues'), which implies when to call this tool. However, it does not explicitly name alternative tools or specify when not to use it, so it lacks full exclusionary guidance.

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

get_prioritiesGet PrioritiesA
Read-only

Get all priorities available in Yandex Tracker that can be used in issues

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

The annotation readOnlyHint=true already communicates that this is a safe read operation. The description adds useful context about the scope ('available in Yandex Tracker' and 'can be used in issues'), which goes beyond the annotation. No additional behavioral traits like pagination or auth are disclosed, but the output schema covers return details.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that states the verb, resource, and scope without any filler or redundant phrasing. It earns its place entirely and has no wasted words.

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

Completeness5/5

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

With no parameters, a readOnlyHint annotation, and an output schema present, the description fully covers what an agent needs to know to select and call this tool. The description's statement of scope completes the picture for a simple metadata-lookup tool.

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, so the schema is complete and there is nothing to explain. The description appropriately focuses on what the tool returns rather than parameter details. Baseline of 4 applies for parameterless tools.

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

Purpose5/5

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

The description uses a specific verb 'Get' and names the resource 'all priorities available in Yandex Tracker', with the functional scope 'can be used in issues'. This clearly distinguishes it from sibling tools like get_statuses or get_issue_types, which target different reference data.

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

Usage Guidelines4/5

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

The description clearly implies the use case: an agent should call this when it needs the list of priorities available for issues in Yandex Tracker. It does not name alternative tools, but for a no-argument lookup there are no obvious competing tools for this specific data.

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

get_resolutionsGet ResolutionsA
Read-only

Get all resolutions available in Yandex Tracker that can be used when closing issues

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the scope ('all resolutions') and the context ('when closing issues') but does not disclose additional behaviors like ordering, filtering, or response format. This is acceptable for a simple list retrieval with annotations present.

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

Conciseness5/5

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

The description is a single, focused sentence that immediately states the action and resource. It is front-loaded with the tool's purpose and contains no unnecessary words or repetition.

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

Completeness5/5

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

Given the tool has no parameters and the output schema exists, the description is sufficient for an agent to understand the tool's role. The context 'when closing issues' and the scope 'all resolutions' provide complete guidance for this low-complexity read operation.

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, so the schema fully covers the input space (100% coverage). Per the rubric, a no-parameter tool gets a baseline of 4. The description does not need to add parameter details, as none exist.

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

Purpose5/5

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

The description clearly identifies the tool's purpose: retrieving all resolutions in Yandex Tracker used when closing issues. It uses a specific verb ('Get') and resource ('resolutions'), and the context 'when closing issues' distinguishes it from sibling tools like get_statuses or get_issue_types.

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

Usage Guidelines4/5

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

The description implies the intended use case ('when closing issues'), which helps the agent select it for issue closure scenarios. However, it does not explicitly mention alternatives or exclusions, though the context is reasonably clear among the many sibling getter tools.

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

get_statusesGet StatusesA
Read-only

Get all statuses available in Yandex Tracker that can be used in issues

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

The readOnlyHint annotation already covers the safety profile. The description adds a contextual detail that only statuses usable in issues are returned, which is mildly informative. It does not describe pagination, return format, or other behavioral traits, but the output schema fills some gaps.

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

Conciseness5/5

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

The description is a single concise sentence that front-loads the action ('Get all statuses') and provides necessary qualifying context without any fluff. Every word earns its place.

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

Completeness5/5

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

For a simple, parameterless, read-only tool with an output schema, the description adequately explains what the tool returns. The context of 'available in Yandex Tracker' and 'usable in issues' is sufficient for the agent to use it correctly, and the output schema covers return structure.

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?

With zero parameters, the schema is empty and schema description coverage is trivially 100%. The baseline for 0 params is 4, and the description does not need to explain any parameters. It appropriately focuses on the tool's purpose.

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

Purpose5/5

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

The description clearly states it gets all statuses available in Yandex Tracker that are usable in issues, with a specific verb and resource. It distinguishes itself from sibling reference-data tools by naming the exact entity (statuses) and scoping to issue-usable statuses.

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 explicit guidance on when to use this tool versus alternatives such as get_issue_types or get_resolutions. It only states what it does, leaving the agent to infer usage from the name. There is no mention of exclusions or alternative tools.

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

issue_add_commentAdd Issue CommentA

Add a comment to a Yandex Tracker issue. IMPORTANT: If you need to mention/call people to the discussion (so they get notifications), do NOT rely on '@login' in the text — use the summonees parameter instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesComment text (markdown supported by Tracker).
issue_idYesIssue ID in the format '<project>-<id>', like 'SOMEPROJECT-1'
summoneesNoOptional list of summoned users (logins or IDs). These users will be invited to the discussion and receive notifications (this is the API way to 'mention/call' someone in Yandex Tracker comments).
markup_typeNoOptional markup type for comment text. Use 'md' for YFM (markdown).
maillist_summoneesNoOptional list of mailing lists to summon (emails). Example: ['team@example.com'].
is_add_to_followersNoWhether to add the comment author to issue followers. Default: true.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
textNo
longIdNo
textHtmlNo
createdAtNo
createdByNo
summoneesNo
transportNo
updatedAtNo
updatedByNo
maillistSummoneesNo

TDQS

A4.4/5.0
Behavior4/5

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

With only readOnlyHint=false, the description adds valuable behavioral context: @login mentions do not trigger notifications, and summonees must be used instead. This goes beyond the annotation but does not disclose other side effects like follower changes (which are covered in the schema).

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

Conciseness5/5

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

Two focused sentences: the first states the tool's purpose, the second delivers the critical usage warning. No fluff, front-loaded, and every sentence earns its place.

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

Completeness4/5

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

For a comment-creation tool with a complete schema and output schema, the description covers the essential purpose and the key gotcha. It lacks details on prerequisites or auth, but those are not necessary given the tool's simplicity and schema coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds extra semantics for the summonees parameter by warning about @login behavior, which is not explicit in the schema. This elevates the parameter meaning beyond the property descriptions.

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

Purpose5/5

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

The description clearly states 'Add a comment to a Yandex Tracker issue' with a specific verb and resource. It distinguishes from siblings like issue_update_comment and issue_delete_comment by the action 'add'.

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

Usage Guidelines4/5

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

The description provides an explicit 'IMPORTANT' guideline: do not rely on '@login' in text to mention people; use the `summonees` parameter instead. This is a clear when-not/alternative instruction, though it does not contrast this tool with sibling comment-editing tools.

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

issue_add_worklogAdd WorklogA

Add a worklog entry (log spent time) to a Yandex Tracker issue

ParametersJSON Schema
NameRequiredDescriptionDefault
startNoOptional start datetime for the worklog. If timezone is not provided, UTC is assumed.
commentNoOptional comment to add to the worklog entry.
durationYesTime spent in ISO-8601 duration format (e.g., 'PT1H30M').
issue_idYesIssue ID in the format '<project>-<id>', like 'SOMEPROJECT-1'

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
issueNo
startNo
commentNo
durationNoRaw Tracker ISO 8601 duration. Week-based values use five working days per week and must not be converted to calendar weeks.
createdAtNo
createdByNo
updatedAtNo
updatedByNo

TDQS

A3.8/5.0
Behavior3/5

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

The annotation readOnlyHint=false already signals this is a write operation, and the description's 'Add' aligns. However, the description adds no additional behavioral context such as whether the worklog is appended, any permission requirements, or that it will be visible via issue_get_worklogs. It does not contradict annotations, but also provides no extra transparency beyond the annotation.

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

Conciseness5/5

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

The description is a single, concise sentence that precisely captures the tool's purpose without unnecessary verbosity. It is front-loaded with the verb and resource, making it easy to scan.

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

Completeness4/5

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

Given the simple nature of the operation, rich parameter schema, and presence of an output schema, the description is adequate for a basic add-worklog tool. It clearly indicates the primary action, though it could have mentioned typical side effects or that worklogs are associated with an issue, but those are already implied by the schema and tool name.

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?

Since the schema description coverage is 100%, the parameters are already fully documented in the schema. The tool description itself adds no additional meaning to parameters, instead relying on the schema's definitions for issue_id, duration, start, and comment. This 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.

Purpose5/5

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

The description clearly states the action ('Add a worklog entry') and the specific resource ('to a Yandex Tracker issue'), with the parenthetical 'log spent time' clarifying intent. It distinguishes from sibling tools like issue_update_worklog and issue_delete_worklog by focusing on the creation aspect.

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

Usage Guidelines3/5

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

The description implies the tool is for logging time on an issue, but provides no explicit guidance on when to use it versus alternatives such as issue_update_worklog or issue_delete_worklog. There are no exclusions or alternative recommendations, leaving usage context implicit.

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

issue_closeClose IssueA

Close a Yandex Tracker issue with a resolution. This is a convenience tool that automatically finds a transition to a 'done' status and executes it with the specified resolution. IMPORTANT: Before closing, you MUST: 1) Call issue_get to retrieve the issue's type field. 2) Call queue_get_metadata with expand=['issueTypesConfig'] to get available resolutions. 3) Choose a resolution from the issueTypesConfig entry matching the issue's type - each issue type has its own set of valid resolutions. Returns a list of transitions available for the issue in its new (closed) status.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoOptional dictionary of additional fields to set during the transition. Common fields include 'resolution' (e.g., 'fixed', 'wontFix') for closing issues, 'assignee' for reassigning, etc.
commentNoOptional comment to add when closing the issue.
issue_idYesIssue ID in the format '<project>-<id>', like 'SOMEPROJECT-1'
resolution_idYesThe resolution ID to set when closing the issue. Must be one of the IDs returned by get_resolutions tool (e.g., 'fixed', 'wontFix', 'duplicate').

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

With annotations only indicating readOnlyHint=false, the description carries the burden of disclosing behavior. It clearly states it automatically finds and executes a transition, requires pre-calls for resolution selection, and returns the list of transitions in the closed status. This provides meaningful context beyond the minimal annotation.

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 appropriately structured: a clear first sentence, a brief explanation of the tool's convenience, then a numbered list of prerequisites, and a final note on return value. Every sentence adds necessary information with no redundancy.

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

Completeness5/5

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

The description is comprehensive for a mutation tool: it explains prerequisites, how to pick a valid resolution, what the tool does automatically, and what it returns. Given the output schema exists, the description covers the necessary workflow without over-explaining details already in structured fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

Schema coverage is 100%, giving a baseline of 3. The description adds valuable context by explaining that resolution_id must be chosen from the issueTypesConfig matching the issue's type, which clarifies the selection process beyond the schema's simple 'must be from get_resolutions' statement.

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 states 'Close a Yandex Tracker issue with a resolution' using a specific verb and resource. It distinguishes itself from siblings by explaining it is a convenience tool that automatically finds a 'done' transition, differentiating it from generic transition execution or update tools.

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

Usage Guidelines4/5

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

The description provides clear context on when to use the tool (closing issues) and gives mandatory pre-steps that must occur before calling. It does not explicitly name alternative tools for other scenarios (like issue_execute_transition), so it falls short of a 5, but the guidance is strong.

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

issue_createCreate IssueA

Create a new issue in a Yandex Tracker queue

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoIssue type id (from get_issue_types tool)
queueYesQueue key where to create the issue (e.g., 'MYQUEUE')
fieldsNoAdditional fields to set during issue creation. IMPORTANT: Before creating an issue, you MUST call `queue_get_fields` to get available fields (it returns both global and local fields by default). Fields with schema.required=true are mandatory and must be provided. Use the field's `id` property as the key in this map (e.g., {'fieldId': 'value'}).
summaryYesIssue title/summary
assigneeNoAssignee login or UID
priorityNoPriority key (from get_priorities tool,)
descriptionNoIssue description

Output Schema

ParametersJSON Schema
NameRequiredDescription
keyNo
epicNo
tagsNo
typeNo
spentNo
startNo
votesNo
parentNo
sprintNo
statusNo
uniqueNo
summaryNo
versionNo
assigneeNo
deadlineNo
priorityNo
createdAtNo
createdByNo
updatedAtNo
updatedByNo
componentsNo
estimationNo
descriptionNo
storyPointsNo
previousStatusNo

TDQS

A3.5/5.0
Behavior2/5

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

The description merely restates the action without additional behavioral context. Annotations already indicate readOnlyHint=false, and the description adds no details about required permissions, side effects, or what happens on success. This is comparable to the update_drive example where mutation tools need more disclosure.

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

Conciseness5/5

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

The description is exactly one short sentence with no filler or redundancy. All words are useful, and it is front-loaded with the primary action.

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

Completeness3/5

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

The description is minimal but combined with a rich schema and output schema, it provides baseline adequacy. However, it lacks a high-level summary of prerequisites (like calling queue_get_fields) that is critical for successful use, leaving the agent to discover it in parameter descriptions.

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 itself adds no parameter-level meaning; all semantic details are provided by the input schema, especially the 'fields' parameter's IMPORTANT note. This is acceptable but not enhanced.

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

Purpose5/5

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

The description clearly states the specific action ('Create a new issue') and target resource ('Yandex Tracker queue'). It distinguishes from sibling tools like issue_update, issue_close, and issue_move by making the creation intent explicit.

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

Usage Guidelines3/5

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

The description implies usage when a new issue needs to be created, but does not explicitly mention when not to use it or alternatives. The important prerequisite about calling queue_get_fields is present only in the parameter schema, not the description, so guidance is limited to implication.

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

issue_delete_attachmentDelete Issue AttachmentB
Destructive

Delete an attachment from a Yandex Tracker issue

ParametersJSON Schema
NameRequiredDescriptionDefault
issue_idYesIssue ID in the format '<project>-<id>', like 'SOMEPROJECT-1'
attachment_idYesAttachment identifier

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds no additional context such as irreversibility, permission requirements, or impacts on related data. It merely restates the action.

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

Conciseness5/5

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

Entry is a single concise sentence, 'Delete an attachment from a Yandex Tracker issue', with no filler, redundancy, or extraneous details.

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

Completeness4/5

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

For a simple delete operation, the description paired with the 100% schema coverage, destructive hint annotation, and output schema is adequately complete. It could benefit from noting permanence, but that is not essential given the annotation.

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 both issue_id and attachment_id described. The description adds no extra parameter semantics beyond identifying the two required identifiers.

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

Purpose5/5

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

Description states 'Delete an attachment from a Yandex Tracker issue' with a specific verb and resource. It clearly distinguishes from sibling tools like issue_upload_attachment or issue_get_attachments.

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. It does not mention prerequisites, permissions, or any conditions under which deletion should be performed. Only the basic action is stated.

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

issue_delete_commentDelete Issue CommentA

Delete a comment from a Yandex Tracker issue

ParametersJSON Schema
NameRequiredDescriptionDefault
issue_idYesIssue ID in the format '<project>-<id>', like 'SOMEPROJECT-1'
comment_idYesComment ID (integer).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

The readOnlyHint annotation (false) already indicates a write operation, and the description's 'Delete' aligns. However, it adds no extra behavioral context such as permanence, permissions, or side effects, which is a gap for a destructive action.

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

Conciseness5/5

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

The description is a single, concise sentence that immediately states the action and resource. No superfluous information.

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

Completeness4/5

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

Given the low complexity, complete schema, and presence of annotation and output schema, the description is sufficient for the agent to understand the tool's purpose and usage. It lacks some deeper behavioral context, but the overall package is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema coverage is 100% with clear descriptions for both issue_id and comment_id. The description adds no parameter detail, but this is acceptable because the schema fully documents the parameters.

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 'Delete a comment from a Yandex Tracker issue' uses a specific verb and resource, clearly distinguishing this tool from siblings like issue_add_comment and issue_update_comment.

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

Usage Guidelines4/5

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

The description clearly states the tool's action and context, making it obvious when to use it. However, it does not explicitly mention alternatives or exclusions, which prevents a 5.

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

issue_delete_worklogDelete WorklogA

Delete a worklog entry (spent time record) from a Yandex Tracker issue

ParametersJSON Schema
NameRequiredDescriptionDefault
issue_idYesIssue ID in the format '<project>-<id>', like 'SOMEPROJECT-1'
worklog_idYesWorklog entry ID (integer).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false, signaling a write operation. The description's 'Delete' verb aligns with this. However, it adds no further behavioral details such as permanence, required permissions, or side effects. Given that annotations cover the basic safety profile and the description is consistent, it provides minimal additional transparency.

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

Conciseness5/5

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

The description is a single sentence with no unnecessary words. It is front-loaded with the verb 'Delete' and the resource, making it easy to scan and understand immediately.

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

Completeness4/5

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

The tool is a simple delete operation with an output schema and annotations, and the schema fully documents parameters. The description provides enough context for an agent to know what the tool does. It lacks explicit mention of irreversibility or permission dependencies, but for a basic deletion action, the information is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 100%, so both parameters (issue_id and worklog_id) are fully documented in the schema itself. The description does not add any extra parameter semantics. Per the rubric, with high schema coverage, the baseline is 3, and the description contributes nothing beyond the schema.

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

Purpose5/5

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

The description uses the specific verb 'Delete' and identifies the resource as 'worklog entry (spent time record)' within a Yandex Tracker issue. This clearly distinguishes it from sibling worklog tools like issue_add_worklog and issue_update_worklog, which perform different operations.

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

Usage Guidelines4/5

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

The description makes the usage context clear: it is for removing spent time records from an issue. However, it does not explicitly mention when to use this tool over alternatives or state exclusions, such as permission limitations or inability to delete certain worklogs. Still, the context is unambiguous for a straightforward delete operation.

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

issue_download_attachmentDownload Issue AttachmentA
Read-only

Download an attached file as an MCP embedded binary resource

ParametersJSON Schema
NameRequiredDescriptionDefault
issue_idYesIssue ID in the format '<project>-<id>', like 'SOMEPROJECT-1'
file_nameYesAttachment file name returned by issue_get_attachments
attachment_idYesAttachment identifier returned by issue_get_attachments

Output Schema

ParametersJSON Schema
NameRequiredDescription
typeYes
_metaNo
resourceYes
annotationsNo

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint: true, so the safety profile is known. The description adds the behavioral detail that the file is returned as an 'MCP embedded binary resource,' which clarifies the output format. It does not discuss authorization, file size limits, or streaming behavior, but these are not expected to be critical given the 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.

Conciseness5/5

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

The description is a single, concise sentence that gets straight to the point. It is well-structured and front-loaded with the action, containing no unnecessary words.

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

Completeness4/5

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

With readOnlyHint annotations, an output schema, and fully described parameters, this simple download tool is adequately specified. The description covers the essential behavior (downloading as a binary resource), and the schema fills in prerequisite details. There is no missing critical context for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 100%, with each parameter (issue_id, attachment_id, file_name) having a clear description. The tool description itself adds no additional parameter semantics, but the baseline of 3 applies when the schema fully documents parameters.

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

Purpose5/5

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

The description uses a specific verb ('Download') and identifies both the resource ('attached file') and the output format ('MCP embedded binary resource'). This clearly distinguishes it from sibling tools like issue_upload_attachment, issue_delete_attachment, and issue_get_attachments (which lists attachments).

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

Usage Guidelines3/5

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

The description itself does not explicitly state when to use this tool versus alternatives. However, the schema parameter descriptions (e.g., 'returned by issue_get_attachments') imply a dependency on first listing attachments, giving implicit sequencing guidance. No exclusions or alternative tool mentions are provided.

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

issue_execute_transitionExecute Issue TransitionA

Execute a status transition for a Yandex Tracker issue. IMPORTANT: You MUST first call issue_get_transitions to retrieve available transitions for the issue. Only pass a transition_id that was returned by issue_get_transitions. Do NOT use arbitrary transition IDs - the API will reject invalid transition IDs. Returns a list of new transitions available for the issue in its new status.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoOptional dictionary of additional fields to set during the transition. Common fields include 'resolution' (e.g., 'fixed', 'wontFix') for closing issues, 'assignee' for reassigning, etc.
commentNoOptional comment to add when executing the transition.
issue_idYesIssue ID in the format '<project>-<id>', like 'SOMEPROJECT-1'
transition_idYesThe transition ID to execute. Must be one of the IDs returned by issue_get_transitions tool.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

The description adds value beyond the readOnlyHint=false annotation by stating that invalid transition IDs will be rejected and that the tool returns a list of new transitions for the new status. This helps the agent understand expected behavior and error cases, though it does not detail every side effect.

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

Conciseness5/5

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

The description is concise and well-structured, with the main purpose first, followed by critical usage guidance and return value information. No filler or redundant phrasing.

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

Completeness4/5

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

Given the presence of an output schema and full parameter descriptions, the description sufficiently covers the core behavior, prerequisite, and return value. It could include example usage or edge cases, but it is complete enough for a well-specified tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema coverage is 100%, so all parameters already have detailed descriptions. The tool description reiterates the constraint on transition_id but does not add significant new semantic information beyond the schema.

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

Purpose5/5

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

The description clearly states the tool's function: executing a status transition for a Yandex Tracker issue. It uses a specific verb ('Execute') and resource ('status transition'), distinguishing it from sibling tools like issue_get_transitions or issue_update.

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

Usage Guidelines5/5

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

The description explicitly instructs users to call issue_get_transitions first and only use transition IDs returned by that tool. It also warns against arbitrary transition IDs, providing clear usage prerequisites and avoiding common pitfalls.

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

issue_getGet IssueB
Read-only

Get a Yandex Tracker issue by its id

ParametersJSON Schema
NameRequiredDescriptionDefault
issue_idYesIssue ID in the format '<project>-<id>', like 'SOMEPROJECT-1'
include_descriptionNoWhether to include issue description in the issues result. It can be large, so use only when needed.

Output Schema

ParametersJSON Schema
NameRequiredDescription
keyNo
epicNo
tagsNo
typeNo
spentNo
startNo
votesNo
parentNo
sprintNo
statusNo
uniqueNo
summaryNo
versionNo
assigneeNo
deadlineNo
priorityNo
createdAtNo
createdByNo
updatedAtNo
updatedByNo
componentsNo
estimationNo
descriptionNo
storyPointsNo
previousStatusNo

TDQS

B3.4/5.0
Behavior3/5

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

The readOnlyHint annotation already declares this as a safe read operation, lowering the burden on the description. The description adds no extra behavioral context beyond the annotation, but it is consistent with it. No contradictions, but no additional disclosure of return behavior or potential large payloads (which is only implicitly covered in the schema).

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

Conciseness5/5

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

The description is a single sentence of nine words, front-loaded with the verb and resource. There is zero waste; every word earns its place.

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

Completeness4/5

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

For a simple read-only getter with full annotations, an output schema, and well-documented parameters, the description is sufficient. It could mention that this is the main issue retrieval versus sub-resource tools, but the output schema and sibling names provide enough context for a capable agent.

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 issue_id and include_description have detailed descriptions. The tool description itself adds no parameter semantics, but per the rubric, with high schema coverage the baseline is 3. The description does not need to compensate.

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

Purpose4/5

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

The description clearly states the action ('Get'), resource ('Yandex Tracker issue'), and lookup method ('by its id'). However, it does not explicitly differentiate this tool from sibling tools like issue_get_comments or issue_get_url, so it is clear but lacks explicit sibling differentiation.

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 exclusions, prerequisites, or alternative tools for related resources such as comments or links. The only usage hint ('use only when needed') appears in the schema for include_description, not in the description itself.

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

issue_get_attachmentsGet Issue AttachmentsA
Read-only

Get attachments of a Yandex Tracker issue by its id

ParametersJSON Schema
NameRequiredDescriptionDefault
issue_idYesIssue ID in the format '<project>-<id>', like 'SOMEPROJECT-1'

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

The readOnlyHint annotation covers the safety profile, but the description adds no behavioral context. It does not disclose whether the tool returns attachment metadata/URLs or file content, which is a critical behavior given the existence of issue_download_attachment. The description merely rephrases the schema parameter.

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

Conciseness5/5

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

The description is a single, focused sentence with no filler. It front-loads the action and resource, making it easy to parse quickly.

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

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 well-documented parameter and an output schema, so the description need not explain return values. However, it omits the important distinction between listing attachment metadata and downloading content, which is a gap in contextual completeness for selecting the right sibling tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema coverage is 100%, and the issue_id parameter has a clear description. The tool description adds nothing beyond 'by its id', so it meets the baseline but does not enrich the parameter semantics.

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

Purpose5/5

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

Description clearly states the action ('Get'), the resource ('attachments of a Yandex Tracker issue'), and the scope ('by its id'). This distinguishes it from sibling tools like issue_get_comments and issue_download_attachment, making the purpose unambiguous.

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

Usage Guidelines3/5

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

The implied usage is clear: use this when you need an issue's attachments. However, it fails to explicitly mention the relationship with issue_download_attachment (which likely downloads actual content) or provide any 'when not to use' guidance, leaving potential ambiguity.

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

issue_get_changelogGet Issue ChangelogA
Read-only

Get the change history (changelog) of a Yandex Tracker issue by its id: status transitions, field edits (who changed what from -> to and when), comment changes and executed triggers. Returns a page of entries plus 'next_cursor'. To fetch the next page, pass 'next_cursor' from the previous result as the 'cursor' argument; when 'next_cursor' is null there are no more pages.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoOptional change type to filter by (e.g. 'IssueWorkflow' for status transitions).
fieldNoOptional field key to filter the changelog by (e.g. 'status' to only see status changes).
cursorNoCursor for the next page: the 'next_cursor' value returned by the previous call. Leave empty for the first page.
issue_idYesIssue ID in the format '<project>-<id>', like 'SOMEPROJECT-1'
per_pageNoThe number of items per page for cursor-paginated endpoints. May be decreased if results exceed the context window.

Output Schema

ParametersJSON Schema
NameRequiredDescription
entriesYes
next_cursorNo

TDQS

A4.7/5.0
Behavior5/5

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

The description explains that results are paginated with a 'next_cursor', how to fetch subsequent pages, and what a null cursor means. This goes beyond the readOnlyHint annotation by revealing the response shape and pagination behavior, without contradicting the annotation.

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

Conciseness5/5

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

Two sentences: the first packs the core purpose and content categories, the second explains pagination clearly. No verbose or redundant language; each clause earns its place.

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

Completeness5/5

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

Given the presence of an output schema and readOnlyHint annotation, the description adequately covers the tool's behavior. It explains pagination, the kinds of changes included, and the stopping condition, making it sufficient for an agent to invoke correctly without additional context.

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?

All five parameters are fully documented in the schema (100% coverage), so the description adds little about individual parameters. However, it reinforces the cursor-based pagination semantics by explaining the next_cursor/cursor relationship, which complements the schema's cursor description.

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

Purpose5/5

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

The description uses a specific verb ('Get') and resource ('change history of a Yandex Tracker issue by its id'), and enumerates the content (status transitions, field edits, comment changes, triggers). This clearly distinguishes it from sibling tools like issue_get_comments or issue_get_transitions.

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

Usage Guidelines4/5

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

The description implies usage for reading an issue's audit trail and provides detailed pagination guidance (how to use next_cursor and cursor, when to stop). It does not explicitly state when to use this tool instead of alternative read tools, but the content list makes the use case clear.

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

issue_get_checklistGet Issue ChecklistA
Read-only

Get checklist items of a Yandex Tracker issue by its id

ParametersJSON Schema
NameRequiredDescriptionDefault
issue_idYesIssue ID in the format '<project>-<id>', like 'SOMEPROJECT-1'

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

The description adds no behavioral context beyond the readOnlyHint annotation. It does not mention pagination, return format, or error behavior. Since annotations already declare the operation safe, the description provides minimal additional transparency.

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

Conciseness5/5

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

The description is a single sentence that front-loads the action and resource, with no extraneous words. It is concise and well-structured.

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

Completeness4/5

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

For a simple read-only tool with one parameter and an output schema, the description is adequate to convey the tool's purpose. It doesn't cover edge cases like absent checklist items, but the output schema and annotations cover most operational context, so this is acceptable.

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 fully documents the single parameter with a clear format example ('SOMEPROJECT-1'). The description's 'by its id' adds no new meaning, so the description does not enhance parameter understanding beyond the schema.

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

Purpose5/5

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

The description uses the specific verb 'Get' followed by the resource 'checklist items of a Yandex Tracker issue' and identifies the input by 'its id'. This clearly states the tool's function and distinguishes it from sibling issue_get_* tools such as issue_get_comments and issue_get_links.

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

Usage Guidelines3/5

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

The description implies usage when checklist items for a specific issue are needed, but it does not explicitly state when to prefer this tool over alternatives or mention any exclusions. Given the sibling tools for various issue aspects, more explicit guidance would improve this dimension.

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

issue_get_commentsGet Issue CommentsA
Read-only

Get comments of a Yandex Tracker issue by its id

ParametersJSON Schema
NameRequiredDescriptionDefault
issue_idYesIssue ID in the format '<project>-<id>', like 'SOMEPROJECT-1'

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, aligning with the 'Get' semantics. The description adds no additional behavioral context beyond the operation itself, such as ordering, pagination, or filtering behavior. With annotations covering the safety profile, this is acceptable but not enriched.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with zero filler. Every word contributes to understanding the tool's purpose and input.

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

Completeness4/5

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

For a simple read-only tool with one parameter and an output schema, the description is sufficient. It clearly states the operation and the key input. It lacks extra guidance like handling of empty results or pagination, but the output schema likely covers the return structure, so this is not a critical gap.

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 fully describes the only parameter (issue_id) with format guidance. The description's 'by its id' adds no new meaning, as the schema already provides the 'SOMEPROJECT-1' format. Since schema coverage is 100%, the baseline of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Get'), a clear resource ('comments of a Yandex Tracker issue'), and a retrieval key ('by its id'). It distinguishes this tool from siblings like issue_get_changelog, issue_get_worklogs, and issue_get_attachments, which target different issue sub-resources.

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

Usage Guidelines4/5

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

The description clearly indicates when to use the tool: to retrieve comments for a specific issue. It does not explicitly list exclusions or alternative tools, but the context is clear enough that an agent can infer when this is the appropriate choice among the many sibling tools.

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

issue_get_transitionsGet Issue TransitionsA
Read-only

Get possible status transitions for a Yandex Tracker issue. Returns list of available transitions that can be performed on the issue.

ParametersJSON Schema
NameRequiredDescriptionDefault
issue_idYesIssue ID in the format '<project>-<id>', like 'SOMEPROJECT-1'

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

The readOnlyHint annotation already establishes that this is a safe read operation. The description adds that it returns a list of available transitions, which is mildly informative but does not disclose additional behavior such as whether the list depends on user permissions or includes all possible transitions.

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

Conciseness5/5

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

The description is two short sentences with no redundant information. It front-loads the purpose and includes the key detail about returning a list of available transitions.

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

Completeness5/5

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

For a simple read-only lookup tool with one well-documented parameter and an output schema, the description fully covers the context needed to select and invoke the tool. No further behavioral or return-value details are necessary.

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 single parameter 'issue_id' is fully described in the schema with format examples, so the description does not need to add parameter details. The description does not go beyond the schema but the schema is sufficient, warranting the baseline score.

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

Purpose5/5

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

The description clearly states the tool gets possible status transitions for a Yandex Tracker issue, using a specific verb and resource. It distinguishes itself from the sibling tool 'issue_execute_transition' by focusing on retrieval rather than execution.

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

Usage Guidelines3/5

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

The description implies the tool is useful for discovering available transitions before performing one, but it does not explicitly state when to use it versus alternatives like issue_execute_transition. No exclusions or alternative tools are mentioned.

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

issue_get_urlGet Issue URLA
Read-only

Get a Yandex Tracker issue url by its id

ParametersJSON Schema
NameRequiredDescriptionDefault
issue_idYesIssue ID in the format '<project>-<id>', like 'SOMEPROJECT-1'

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

The readOnlyHint annotation already indicates this is a safe read operation. The description adds no further behavioral context, such as behavior when the issue ID does not exist, whether the URL is absolute, or if any special permissions are required. The description is essentially a restatement of the tool's name, providing no extra transparency value.

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 clear sentence, front-loaded with the verb and resource, and contains no superfluous words. It is appropriately concise for the tool's simplicity.

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

Completeness4/5

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

For a simple one-parameter tool with an output schema and a readOnlyHint annotation, the description is sufficiently complete. It clearly states what the tool does, and the schema documents the parameter. The presence of the output schema covers return value details, so no further elaboration is necessary.

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 provides 100% coverage of the single parameter, including its description with format example ('SOMEPROJECT-1'). The tool description does not add additional meaning beyond what the schema already provides, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb (Get), names the resource (Yandex Tracker issue url), and specifies the input method (by its id). This clearly distinguishes it from siblings like issue_get (which likely returns full issue details) and other getter tools.

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

Usage Guidelines3/5

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

The description implies usage when an issue URL is needed, but it does not explicitly state when to use this tool versus alternatives. No exclusions or alternative tool names are provided, so the guidance is implicit rather than explicit.

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

issue_get_worklogsGet Issue WorklogsA
Read-only

Get every paginated worklog for Yandex Tracker issues and optionally filter by the work start date. Duration is returned as Tracker's raw ISO 8601 string; PnW means n five-day work weeks.

ParametersJSON Schema
NameRequiredDescriptionDefault
timezoneNoIANA time zone used to convert worklog start before comparing datesUTC
issue_idsYesMultiple Issue IDs. Each issue id is in the format '<project>-<id>', like 'SOMEPROJECT-1'
start_date_toNoInclusive upper bound for the worklog start date (YYYY-MM-DD)
start_date_fromNoInclusive lower bound for the worklog start date (YYYY-MM-DD)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior5/5

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

With readOnlyHint=true already provided, the description adds valuable behavioral context: it discloses automatic pagination ('every paginated worklog') and explains the raw ISO 8601 duration format with the PnW convention. No contradiction with annotations.

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

Conciseness5/5

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

Two sentences, no filler. The first sentence front-loads the core purpose, and the second adds an essential formatting nuance. Every word earns its place.

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

Completeness4/5

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

For a read-only tool with a rich output schema, the description covers the key aspects: purpose, pagination, filtering, and duration format. The timezone parameter is left to the schema, which is acceptable. It is not exhaustive about edge cases, but complete enough for effective use.

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 covers 100% of parameters with detailed descriptions, so the baseline is 3. The description only adds a general note about filtering by work start date, which maps to start_date_from/to but does not add detail beyond the schema.

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

Purpose5/5

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

The description clearly states that the tool retrieves worklogs for Yandex Tracker issues, with the specific verb 'Get' and resource 'worklog'. It also mentions pagination and optional date filtering, which distinguishes it from sibling tools like issue_get_comments or issue_get_links.

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

Usage Guidelines4/5

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

The description clearly implies when to use this tool (when you need worklogs for issues), but it does not explicitly contrast it with related issue getters or worklog mutation tools like issue_add_worklog. It provides clear context without exclusions, earning a 4.

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

issue_moveMove Issue to Another QueueA

Move a Yandex Tracker issue to a different queue. The issue will receive a new key in the target queue (e.g., TASKS-1 → NEWQUEUE-42). Returns the updated issue with its new key and queue.

ParametersJSON Schema
NameRequiredDescriptionDefault
queueYesTarget queue key (e.g., 'MYQUEUE')
notifyNoWhether users referenced in the issue's fields are notified of the change.
issue_idYesIssue ID in the format '<project>-<id>', like 'SOMEPROJECT-1'
notify_authorNoWhether the issue author is notified of the change.
initial_statusNoWhether to reset the issue status to the initial value. Set this to true when moving to a queue with a different workflow.
move_all_fieldsNoWhether to carry over the issue's versions, components and projects when matching ones exist in the target queue. When false, those fields are cleared.

Output Schema

ParametersJSON Schema
NameRequiredDescription
keyNo
epicNo
tagsNo
typeNo
spentNo
startNo
votesNo
parentNo
sprintNo
statusNo
uniqueNo
summaryNo
versionNo
assigneeNo
deadlineNo
priorityNo
createdAtNo
createdByNo
updatedAtNo
updatedByNo
componentsNo
estimationNo
descriptionNo
storyPointsNo
previousStatusNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, establishing this is a mutation. The description goes beyond this by disclosing a key behavioral consequence: the issue receives a new key in the target queue, and the updated issue is returned. This is valuable context—users would otherwise not know the original key becomes obsolete. However, it does not mention side effects like field clearing or notification behavior, though these are covered in parameter descriptions.

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

Conciseness5/5

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

The description is concise and front-loaded: two sentences with no unnecessary words. The first sentence states the primary action, and the second adds a crucial consequence and return value. Every sentence earns its place.

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

Completeness4/5

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

Given the tool's complexity (6 params, output schema, mutation), the description is complete enough for high-level understanding. It covers the primary action, key replacement behavior, and return value. Caveats like workflow differences and field clearing are left to parameter descriptions, which are comprehensive. A warning about the irreversible nature of the key change might add value, but the lack of it does not make the description 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 coverage is 100%, so the baseline is 3. The main description adds no parameter-specific meaning beyond what the schema already provides. The example of key change relates to the queue parameter but does not introduce new syntactic or semantic details. The parameter descriptions themselves are thorough, so the description does not need to compensate.

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

Purpose5/5

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

The description clearly states the action: 'Move a Yandex Tracker issue to a different queue.' The verb 'move' and resource are specific, and the example (TASKS-1 → NEWQUEUE-42) reinforces the core behavior. This distinguishes issue_move from sibling tools like issue_update or issue_close, which modify or transition but do not relocate to a new queue.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives, nor does it mention exclusions. The usage context is implied by the purpose: an agent should use this when an issue needs to be moved to a different queue. The parameter description for initial_status provides partial guidance ('Set this to true when moving to a queue with a different workflow'), but the main description lacks direct alternative comparisons.

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

issues_countCount IssuesA
Read-only

Get the count of Yandex Tracker issues matching a query

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo
filter_idNoSaved Tracker filter id; mutually exclusive with query

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

The description aligns with the readOnlyHint annotation, confirming a safe read operation. However, it adds little beyond the annotation—no details about response format, potential limitations, or behavior differences. With annotations present, the bar is lower, but the description remains minimal.

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

Conciseness5/5

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

The description is a single, clear sentence with no unnecessary words. It is front-loaded with the primary action and resource.

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

Completeness4/5

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

Given the readOnlyHint annotation, the detailed query schema, and the presence of an output schema, the description is sufficient for this simple tool. It covers the core purpose and relies on structured data for details, though it lacks explicit usage guidance.

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 tool description adds no parameter-specific meaning. The query parameter is extensively documented in the schema (covering syntax, functions, and examples), while filter_id has a short description. Schema coverage is 50%, so some parameter information exists, but the description does not compensate further.

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 the count of Yandex Tracker issues matching a query' clearly states the verb (get count), the resource (Yandex Tracker issues), and the scope (matching a query). This distinguishes it from siblings like issues_find, which likely returns the issues themselves.

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

Usage Guidelines3/5

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

The description does not explicitly mention alternatives or when to use this tool versus issues_find. The name and simple statement imply its purpose (for counting rather than listing), but no clear context or exclusions are provided.

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

issues_findFind IssuesB
Read-only

Find Yandex Tracker issues by queue and/or created date

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number to return, default is 1
queryNo
fieldsNoFields to include in the response. In order to not pollute context window - select appropriate fields beforehand. Not specifying fields will return all available.
per_pageNoThe number of items per page. May be decreased if results exceed context window. If there is a change in per_page argument - retrieval must be started over with page = 1, as the paging could have changed.
filter_idNoSaved Tracker filter id; mutually exclusive with query
include_descriptionNoWhether to include issue description in the issues result. It can be large, so use only when needed.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

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

The annotation readOnlyHint=true already informs the agent this is a safe read operation, so the description does not need to restate that. The description adds the scoping constraint of queue and created date (even if incomplete), which is a slight behavioral cue. However, it offers no details on pagination behavior, context window implications, or rate limits, so it earns a mid-range score.

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 that is easy to parse. It avoids unnecessary repetition of the schema. However, the final qualifier 'by queue and/or created date' is not only inaccurate but also occupies space without adding real value for a tool with much broader query capabilities, preventing a 5.

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

Completeness2/5

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

Despite a rich schema and output schema, the tool description is too skeletal. It fails to provide an overview of the query language's power, does not mention the optional fields parameter for context control, and offers no guidance on relationship with sibling tools like filter_find_issues. The agent must rely almost entirely on the schema, making the description inadequate for a tool with this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 83%, so the schema documents most parameters extensively, including the rich query language. The tool description itself adds no parameter-level detail beyond the vague 'by queue and/or created date', which is inaccurate as it implies only those filters are possible. The baseline of 3 is appropriate because the schema carries the burden, but the description does not add meaningful semantic value.

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

Purpose4/5

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

The description clearly states the tool finds Yandex Tracker issues, which is a specific verb+resource. However, the qualifier 'by queue and/or created date' is incomplete and somewhat misleading because the query parameter supports many other fields (assignee, status, author, etc.), as evidenced by the query examples in the schema. This prevents 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 provides no guidance on when to use this tool versus alternatives like filter_find_issues or issues_count. It does not mention conditions for selecting this tool or any exclusions. The one-sentence description lacks any usage context beyond the basic purpose.

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

issue_updateUpdate IssueA

Update an existing Yandex Tracker issue. Only fields that are provided will be updated; omitted fields remain unchanged. Use queue_get_fields to discover available fields before updating.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoIssue tags as array of strings.
typeNoIssue type. Object with 'id' (type ID) and/or 'key' (type key like 'bug', 'task'). Use `queue_get_metadata` tool with expand=['issueTypesConfig'] to get available issue types in this queue.
fieldsNoAdditional fields to update. Use queue_get_fields to discover available fields. Use the field's 'id' property as the key (e.g., {'fieldId': 'value'}).
parentNoParent issue reference. Object with 'id' (parent issue ID) and/or 'key' (parent issue key like 'QUEUE-123').
sprintNoSprint assignments. Array of objects, each with 'id' field containing the sprint ID (integer).
projectNoProject assignment. Object with 'primary' (int, main project shortId) and optional 'secondary' (list of ints, additional project shortIds).
summaryNoNew issue title/summary
versionNoIssue version for optimistic locking. Changes are only made to the current version of the issue. Always try to receive issue's version using issue_get tool first.
issue_idYesIssue ID in the format '<project>-<id>', like 'SOMEPROJECT-1'
priorityNoIssue priority. Object with 'id' (priority ID) and/or 'key' (priority key like 'critical', 'normal'). Use get_priorities to find available priorities.
followersNoIssue followers/watchers. Array of objects, each with 'id' field containing the user ID or login.
descriptionNoNew issue description (use markdown formatting)
markup_typeNoMarkup type for description text. Use 'md' for YFM (markdown) markup.md

Output Schema

ParametersJSON Schema
NameRequiredDescription
keyNo
epicNo
tagsNo
typeNo
spentNo
startNo
votesNo
parentNo
sprintNo
statusNo
uniqueNo
summaryNo
versionNo
assigneeNo
deadlineNo
priorityNo
createdAtNo
createdByNo
updatedAtNo
updatedByNo
componentsNo
estimationNo
descriptionNo
storyPointsNo
previousStatusNo

TDQS

A4.2/5.0
Behavior4/5

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

The description adds a key behavioral detail beyond the readOnlyHint annotation: partial updates ('Only fields that are provided will be updated; omitted fields remain unchanged'). This is important for understanding how the tool behaves and aligns with the write operation implied by readOnlyHint=false.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with the core action, and includes a practical prerequisite. Every sentence earns its place with no redundant phrasing.

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

Completeness4/5

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

Given a complex tool with 13 parameters and a rich input schema, the description covers the essential behavior and a pre-requisite action. It does not repeat details already present in the schema (e.g., version locking), and since an output schema exists, return values need not be explained. The description is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description adds general context that omitted fields remain unchanged, but does not elaborate on individual parameters. This matches the baseline of 3 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 clearly states the action ('Update'), the resource ('existing Yandex Tracker issue'), and the scope ('only fields that are provided will be updated'). This distinguishes it from sibling tools like issue_create and issue_close, which serve different purposes.

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

Usage Guidelines4/5

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

The description provides a concrete usage guideline: 'Use queue_get_fields to discover available fields before updating.' While it does not explicitly mention alternatives or when-not-to-use cases, the context is clear enough for an agent to know this tool is for updating existing issues.

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

issue_update_commentUpdate Issue CommentA

Update an existing comment in a Yandex Tracker issue. IMPORTANT: If you need to mention/call people (notifications), use the summonees parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesNew comment text (markdown supported by Tracker).
issue_idYesIssue ID in the format '<project>-<id>', like 'SOMEPROJECT-1'
summoneesNoOptional list of summoned users (logins or IDs). These users will be invited to the discussion and receive notifications.
comment_idYesComment ID (integer).
markup_typeNoOptional markup type for comment text. Use 'md' for YFM (markdown).
maillist_summoneesNoOptional list of mailing lists to summon (emails). Example: ['team@example.com'].

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
textNo
longIdNo
textHtmlNo
createdAtNo
createdByNo
summoneesNo
transportNo
updatedAtNo
updatedByNo
maillistSummoneesNo

TDQS

A3.7/5.0
Behavior2/5

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

With only readOnlyHint: false in annotations, the description carries the burden of behavioral disclosure. It doesn't mention whether the comment is fully replaced, if permissions are required, or any side effects beyond updates. The summonees tip is more about parameter usage than operational behavior.

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

Conciseness5/5

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

The description is two sentences, immediately stating the purpose and then providing a key usage tip. Every word earns its place with no redundancy.

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?

Although the output schema covers return values, the description provides minimal context for a mutation tool. It doesn't clarify if the update replaces the entire comment, any prerequisites, or potential side effects beyond notifications. It is adequate but leaves 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 coverage is 100%, so the baseline is 3. The description reinforces the summonees parameter's purpose but doesn't add significant new meaning beyond the schema descriptions already present.

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

Purpose5/5

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

The description clearly states 'Update an existing comment in a Yandex Tracker issue', using a specific verb and resource. It distinguishes from siblings like issue_add_comment and issue_delete_comment by focusing on the update action on an existing comment.

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

Usage Guidelines4/5

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

The description gives clear context for when to use the tool (updating an existing comment) and includes the IMPORTANT tip about using the summonees parameter for notifications. It doesn't explicitly mention alternatives, but the context is clear with no exclusions.

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

issue_update_worklogUpdate WorklogA

Update a worklog entry (spent time record) in a Yandex Tracker issue

ParametersJSON Schema
NameRequiredDescriptionDefault
startNoNew start datetime for the worklog. If timezone is not provided, UTC is assumed.
commentNoNew comment for the worklog entry.
durationNoNew time spent in ISO-8601 duration format (e.g., 'PT1H30M').
issue_idYesIssue ID in the format '<project>-<id>', like 'SOMEPROJECT-1'
worklog_idYesWorklog entry ID (integer).

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
issueNo
startNo
commentNo
durationNoRaw Tracker ISO 8601 duration. Week-based values use five working days per week and must not be converted to calendar weeks.
createdAtNo
createdByNo
updatedAtNo
updatedByNo

TDQS

A3.8/5.0
Behavior2/5

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

The annotations only indicate readOnlyHint=false, which already signals a write operation. The description adds no behavioral context about whether the update is partial (only provided fields) or replaces the entire worklog, nor does it mention side effects or permissions. This is a significant 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.

Conciseness5/5

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

The description is a single sentence with no fluff, front-loading the purpose immediately. It earns its place by being perfectly concise.

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

Completeness4/5

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

For a simple update tool with full parameter descriptions, an output schema, and readOnlyHint annotation, the description is adequate. It covers the core purpose, and missing behavioral details are more of a transparency concern. Completeness is strong given the structured information.

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 each parameter (start, comment, duration, issue_id, worklog_id) having a clear description. The tool description itself adds no parameter information beyond the schema, but the schema is sufficient, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Update' and the resource 'worklog entry (spent time record) in a Yandex Tracker issue'. This unambiguously distinguishes it from sibling tools like issue_add_worklog, issue_delete_worklog, and issue_get_worklogs.

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

Usage Guidelines4/5

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

The description provides clear context: updating an existing worklog entry. It does not mention alternatives or exclusions, but the context is unambiguous enough that an agent can infer when to use this tool, especially given the required worklog_id parameter.

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

issue_upload_attachmentUpload Issue AttachmentA

Upload a base64-encoded file and attach it to a Yandex Tracker issue

ParametersJSON Schema
NameRequiredDescriptionDefault
issue_idYesIssue ID in the format '<project>-<id>', like 'SOMEPROJECT-1'
file_nameYesFile name including extension
mime_typeNoOptional MIME type of the file
content_base64YesFile content encoded as standard base64

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
nameYes
sizeNo
contentNo
metadataNo
mimeTypeNo
createdAtNo
createdByNo

TDQS

A3.6/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=false, meaning the operation is mutating. The description adds no extra behavioral context such as permissions, size limits, or whether the attachment replaces existing ones. It only repeats the base64 detail already present in the schema, so the description adds minimal value beyond the annotation.

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?

Description is a single, tightly worded sentence with no redundancy. It states the action, target, and input encoding without unnecessary detail.

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

Completeness4/5

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

Given the simple upload behavior, the description sufficiently covers the core action. The complete parameter schema (100% coverage) and presence of an output schema mean the description does not need to explain return values or parameter details. It could optionally note constraints like size limits, but for a basic upload, the information is adequate.

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 four parameters, including the optional mime_type. The tool description itself does not elaborate on any parameters; it simply states the base64 input, which is already defined in the schema. Thus, the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Upload a base64-encoded file and attach it to a Yandex Tracker issue' — a specific verb (upload/attach), resource (Yandex Tracker issue), and input format (base64). This distinguishes it from sibling tools like issue_download_attachment or issue_get_attachments.

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?

No explicit guidance on when to use this tool versus alternatives; the purpose alone implies usage for attaching files to issues. There is no mention of when not to use it or references to sibling tools, so it only provides implied context.

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

queue_create_versionCreate Queue VersionB

Create a new version in a Yandex Tracker queue.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesVersion name
due_dateNoOptional version due date in YYYY-MM-DD format
queue_idYesQueue (Project ID) to search in, like 'SOMEPROJECT'
start_dateNoOptional version start date in YYYY-MM-DD format
descriptionNoOptional version description

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
nameYes
dueDateNo
versionYes
archivedYes
releasedYes
startDateNo
descriptionNo

TDQS

B3.3/5.0
Behavior2/5

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

The description simply restates the write nature already indicated by annotations (readOnlyHint=false). It adds nothing about side effects, error behavior, idempotency, or confirmation of creation. Given the annotation, the bar is lower, but the description still fails to provide any additional behavioral context beyond what is already known.

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, clear sentence that conveys the essential action and target. There is no redundancy, filler, or unnecessary detail. It is appropriately sized for the tool's straightforward purpose.

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

Completeness3/5

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

The input schema covers all parameters, annotations indicate a write operation, and an output schema exists, so the basic usage is fully documented. However, the description lacks broader context such as how creating a version interacts with other queue data, whether duplicate names are allowed, or when to use this over other version-related tools. It is minimally adequate but not complete in a holistic sense.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Schema description coverage is 100%, so all parameters are already documented with meaningful descriptions. The tool description adds no additional parameter-level insight, but the schema does the heavy lifting. This matches the baseline for full 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 clearly states a specific verb ('Create') and resource ('a new version in a Yandex Tracker queue'), which distinguishes it from sibling tools like queue_get_versions. It is unambiguous and directly conveys the tool's core function.

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 using queue_get_versions to list existing versions or other mutation tools. There is no mention of prerequisites, whether the queue must exist, or when this operation should be preferred over updating an existing version. The description is silent on usage context.

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

queue_get_fieldsGet Queue FieldsA
Read-only

Get fields for a specific Yandex Tracker queue. Returns list of global fields and optionally local (queue-specific) fields. The schema.required property indicates whether a field is mandatory. Use this to find available and required fields before creating an issue with issue_create tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
queue_idYesQueue (Project ID) to search in, like 'SOMEPROJECT'
include_local_fieldsNoWhether to include queue-specific local fields in the response. When True, makes parallel requests to get both global and local fields.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

The annotation declares readOnlyHint=true, and the description adds value by disclosing that include_local_fields triggers parallel requests, and that schema.required indicates mandatory fields. It does not contradict annotations and provides behavioral context beyond the read-only hint.

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 four sentences, each contributing useful information. It is front-loaded with the primary action and avoids fluff, though it could be slightly tightened without losing value.

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

Completeness5/5

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

For a simple read-only tool with high schema coverage, an output schema, and a read-only annotation, the description is complete. It explains the return types, optional behavior, and a concrete use case, leaving no significant gaps for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

The schema already covers 100% of parameters with clear descriptions, so the baseline is 3. The description adds minimal extra meaning by explaining the optional local fields and tying the tool to the issue_create workflow, but it does not significantly go beyond the schema.

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

Purpose5/5

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

The description states the specific verb 'Get' and resource 'fields for a specific Yandex Tracker queue', and distinguishes from siblings by explicitly mentioning global and optional local fields. It also references the schema.required property, making the tool's purpose unambiguous.

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

Usage Guidelines4/5

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

The description provides clear usage context: 'Use this to find available and required fields before creating an issue with issue_create tool.' It does not explicitly name alternative tools or state when not to use it, but the context is strong enough for an agent to make an informed choice.

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

queue_get_metadataGet Queue MetadataA
Read-only

Get detailed metadata about a specific Yandex Tracker queue. Returns queue information including name, description, default type/priority, and optionally expanded data like issue types with their resolutions, workflows, team members, etc. Use expand=['issueTypesConfig'] to get available resolutions for issue_close tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
expandNoOptional list of fields to expand in the response. Available options: 'all', 'projects', 'components', 'versions', 'types', 'team', 'workflows', 'fields', 'issueTypesConfig'. Use 'issueTypesConfig' to get available resolutions for each issue type.
queue_idYesQueue (Project ID) to search in, like 'SOMEPROJECT'

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
keyNo
nameNo
defaultTypeNo
descriptionNo
defaultPriorityNo
issueTypesConfigNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds context by describing the kind of data returned (name, description, default type/priority, and optional expanded data). It also clarifies the practical use of the expand option for issue_close. No contradictions with annotations are present.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with the verb and resource. Every sentence earns its place—the first states the core purpose, the second gives a concrete usage tip. No wasted words.

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

Completeness5/5

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

Given the output schema exists and the annotations mark this as read-only, the description doesn't need to explain return structure or side effects. It covers the tool's core behavior and the key expand option, making it complete for an agent to select and invoke 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?

Schema coverage is 100%, so the baseline is 3. The description goes beyond the schema by explaining the semantic purpose of the 'issueTypesConfig' expand value, specifically its relationship to the issue_close tool. This adds meaningful value to the parameter understanding.

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

Purpose5/5

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

The description clearly states the tool gets 'detailed metadata about a specific Yandex Tracker queue,' using a specific verb and resource. It distinguishes this from sibling tools like queue_get_tags or queue_get_versions, which fetch narrower sub-resources, and queues_get_all, which lists all queues.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool: when you need metadata for a specific queue. It also gives an explicit usage directive: 'Use expand=["issueTypesConfig"] to get available resolutions for issue_close tool.' While it doesn't explicitly list alternatives, the scope is well-defined and the example is actionable.

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

queue_get_tagsGet Queue TagsA
Read-only

Get all tags for a specific Yandex Tracker queue

ParametersJSON Schema
NameRequiredDescriptionDefault
queue_idYesQueue (Project ID) to search in, like 'SOMEPROJECT'

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

The annotation readOnlyHint=true already indicates a safe read operation. The description adds that it returns 'all tags', which specifies the full scope of the resource. However, it does not disclose additional behaviors such as pagination, filtering, or error conditions. The addition is modest, so a score of 3 is appropriate.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that directly states the action and resource. No redundant information, ideal in length.

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

Completeness4/5

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

The tool is a simple read operation with one parameter and an output schema available, so the description is sufficient for an agent to invoke it correctly. It could optionally note that it returns all tags without filtering, but the phrase 'all tags' already implies completeness. No significant 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?

The input schema already provides a complete description of queue_id with an example format. The description only rephrases it as 'specific Yandex Tracker queue', adding no extra meaning. With 100% schema coverage, baseline 3 is warranted.

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

Purpose5/5

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

The description uses the specific verb 'Get' with the resource 'all tags for a specific Yandex Tracker queue', clearly distinguishing it from sibling tools like queue_get_metadata or queue_get_versions. It leaves no ambiguity about what the tool returns.

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 exclusions, prerequisites, or related tools. The only inference is from the name and description that tags are the resource, but no explicit usage context is given.

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

queue_get_versionsGet Queue VersionsA
Read-only

Get all versions for a specific Yandex Tracker queue

ParametersJSON Schema
NameRequiredDescriptionDefault
queue_idYesQueue (Project ID) to search in, like 'SOMEPROJECT'

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

The readOnlyHint annotation already indicates a safe read operation. The description adds the 'all versions' scope, but does not disclose other behavioral aspects such as pagination, ordering, or error cases. No contradiction with annotations.

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

Conciseness5/5

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

A single, front-loaded sentence with no unnecessary words. It communicates the tool's purpose immediately and efficiently.

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

Completeness5/5

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

The tool is simple: one required parameter, read-only annotations, and an output schema present. The description, combined with the schema and annotations, is sufficiently complete for accurate use.

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 fully covers the one parameter queue_id with a descriptive example ('like SOMEPROJECT'). The description merely restates the parameter's purpose without adding further semantic detail.

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

Purpose5/5

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

The description uses a specific verb ('Get') and resource ('all versions for a specific queue'), clearly distinguishing it from siblings like queue_get_metadata or queue_get_tags. The scope is precise (versions, not other queue properties).

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

Usage Guidelines3/5

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

The description implies usage when retrieving queue versions, but does not explicitly mention when to use this tool over alternatives like queue_create_version or queue_get_metadata. No exclusions or context are provided.

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

queues_get_allGet All QueuesA
Read-only

Find all Yandex Tracker queues available to the user (queue is a project in some sense)

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number to return, default is None which means to retrieve all pages. Specify page number to retrieve a specific page when context limit is reached.
fieldsNoFields to include in the response. In order to not pollute context window - select appropriate fields beforehand. Not specifying fields will return all available. Most of the time one needs key and name only.
per_pageNoThe number of items per page. May be decreased if results exceed context window. If there is a change in per_page argument - retrieval must be started over with page = 1, as the paging could have changed.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

The annotation readOnlyHint=true already indicates this is a read-only operation. The description adds that it returns queues 'available to the user', which is useful scope context. However, it does not describe pagination behavior, potential large payloads, or sorting, but the parameter descriptions cover some of this. The description does not contradict the annotation and adds minor value beyond it.

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

Conciseness5/5

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

The description is a single, focused sentence that quickly states the purpose and includes a helpful parenthetical definition of 'queue'. It has no unnecessary words and is structured well for quick comprehension.

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

Completeness4/5

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

The tool is a straightforward read-only list operation. The annotation and output schema cover safety and return shape, and the schema parameter descriptions provide pagination and field-selection guidance. The description explains the concept of a queue. This is sufficient context for the tool's complexity, though it could have briefly mentioned handling large result sets.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

The input schema has 100% coverage with detailed descriptions for all three parameters (page, fields, per_page). The tool description adds no additional parameter semantics, but the schema itself provides strong guidance, including recommendations for using 'fields' to avoid context pollution and clarifying pagination resets. Baseline 3 is appropriate given the 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 clearly states the tool's function: finding all Yandex Tracker queues available to the user. It uses a specific verb ('find') and resource ('queues'), and the parenthetical clarifies what a queue is. This distinguishes it from sibling tools that target individual queues (e.g., queue_get_metadata) or other entities.

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

Usage Guidelines3/5

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

The description implies usage: use this tool to retrieve all queues for the user. It does not explicitly contrast with alternatives like queue_get_metadata or mention when pagination should be used, though the schema provides some guidance. There is no exclusion or alternative named, so the guidance is implied rather than explicit.

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

sprint_getGet SprintA
Read-only

Get a Yandex Tracker sprint with status and date boundaries

ParametersJSON Schema
NameRequiredDescriptionDefault
sprint_idYesSprint identifier

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
nameYes
selfYes
boardYes
issuesNo
statusYes
versionYes
archivedNo
end_dateNo
created_atNo
created_byNo
start_dateNo
end_date_timeNo
start_date_timeNo

TDQS

A3.9/5.0
Behavior4/5

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

The readOnlyHint annotation already indicates a safe read operation, and the description aligns with that. The description adds useful context beyond the annotation by specifying that the response includes 'status and date boundaries,' helping the agent set expectations for returned data without requiring the output schema.

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

Conciseness5/5

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

The description is a single sentence that is front-loaded with the verb and resource, and it contains no redundant information. Every word earns its place, making it highly concise and well-structured.

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

Completeness5/5

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

Given the tool's simplicity (one parameter, read-only annotation, and an output schema), the description is fully adequate. It states what the tool does and what information is returned, leaving no critical gaps for selection or 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 the parameter described as 'Sprint identifier.' The description does not add any additional semantics about the format or origin of sprint_id, so it does not go beyond what the schema already provides. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('Get') and the resource ('a Yandex Tracker sprint'), while also specifying the scope ('with status and date boundaries'). This distinguishes it from sibling tools like board_get_sprints, which likely lists sprints, and entity_get, which is generic.

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 explicit guidance on when to use this tool versus alternatives. It does not mention any prerequisites, exclusions, or alternative tools for related scenarios. The usage is only implied by the parameter name 'sprint_id' in the schema, not by the description itself.

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

user_getGet UserA
Read-only

Get information about a specific user by login or UID

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesUser identifier - can be user login (e.g., 'john.doe') or user UID (e.g., '12345')

Output Schema

ParametersJSON Schema
NameRequiredDescription
uidYes
emailNo
loginYes
displayNo
externalNo
lastNameNo
dismissedNo
firstNameNo

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, and the description's 'Get information' aligns with that. The description adds the scope of lookup by login or UID, but this is more about parameter semantics than additional behavioral disclosure. No extra context about return format, errors, or permissions is provided, but the read-only annotation covers the 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.

Conciseness5/5

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

The description is a single concise sentence that directly communicates the tool's function and scope. Every word earns its place, with no redundancy or filler.

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

Completeness5/5

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

For a simple single-parameter getter with readOnly annotation and an output schema available, the description is sufficient. It clearly identifies what the tool does, and the schema handles parameter details, so no additional context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

The input schema already provides 100% coverage, including a clear description of user_id as accepting either a login or UID with examples. The tool description adds no new parameter information, so it neither enhances nor detracts from the schema 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?

Description uses a specific verb ('Get') and resource ('information about a specific user') with clear identifier scope ('by login or UID'). It distinguishes from sibling tools like users_get_all, users_search, and user_get_current by emphasizing a single specific user lookup.

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

Usage Guidelines4/5

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

The description clearly implies usage when a specific user identifier (login or UID) is known, which guides selection away from search/list tools. However, it does not explicitly mention when not to use it or name alternative tools, so it falls short of full guideline clarity.

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

user_get_currentGet Current UserA
Read-only

Get information about the current authenticated user

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
uidYes
emailNo
loginYes
displayNo
externalNo
lastNameNo
dismissedNo
firstNameNo

TDQS

A4.2/5.0
Behavior3/5

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

The annotation readOnlyHint:true already discloses the read-only nature, and the description 'Get information' aligns with that. However, the description adds no further behavioral context such as authentication requirements or potential error cases. It is consistent with annotations but does not enrich the agent's understanding beyond them.

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

Conciseness5/5

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

The description is a single sentence, front-loaded with the action and resource. There is no wasted wording, and it conveys the essential purpose efficiently.

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

Completeness4/5

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

Given the tool's simplicity (0 parameters, output schema present), the description is sufficient. It does not need to explain return values because the output schema covers that. The only minor gap is not explicitly stating that the user is determined by the authentication context, but 'current authenticated user' already implies this.

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, so there is nothing to document. The baseline is 4 per the rubric since no parameter information is needed. The description correctly implies that no user-specific input is required, as it targets the current authenticated user.

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

Purpose5/5

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

The description clearly states 'Get information about the current authenticated user', identifying the specific action (get) and resource (current user). This distinguishes it from siblings like user_get (which fetches a specific user by ID) and users_get_all (which lists users). The verb and resource are precise and unambiguous.

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

Usage Guidelines4/5

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

The description implies usage context: it is for retrieving the currently authenticated user's info. It does not explicitly mention alternatives or exclusions, but the phrase 'current authenticated user' makes it clear when this tool is appropriate compared to user_get or users_search. A slight gap is the lack of explicit 'use this when...' guidance.

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

users_get_allGet All UsersC
Read-only

Get information about user accounts registered in the organization

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number to return, default is 1
per_pageNoThe number of items per page. May be decreased if results exceed context window. If there is a change in per_page argument - retrieval must be started over with page = 1, as the paging could have changed.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, and the description simply says 'Get information,' which is consistent but adds no behavioral context beyond the annotation. It does not disclose pagination details, response format, or any side effects, though the schema does include a note about per_page affecting paging.

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, efficient sentence that is front-loaded with the key action and resource. It avoids unnecessary detail, though it could have been slightly more specific without losing conciseness.

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

Completeness3/5

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

Given that the tool is relatively simple with only two optional parameters, a good schema, and an output schema present, the minimal description is barely adequate. However, it lacks any mention of paging behavior or how this tool relates to sibling tools, making it less complete for an agent navigating a large toolset.

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 both parameters (page, per_page) are already well-documented in the schema. The description itself adds no parameter-specific information, so the baseline of 3 applies.

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

Purpose4/5

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

The description 'Get information about user accounts registered in the organization' clearly identifies the action (get) and resource (user accounts), and the plural form plus the name 'users_get_all' signal a list operation. However, it doesn't explicitly say 'all' or distinguish it from 'users_search' or 'user_get' in the description text, so it's not a perfect 5.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool vs alternatives like users_search or user_get. The description does not mention any exclusions or alternative conditions, leaving the agent to infer usage solely 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.

  1. 57 tool updatesv0.8.2
    • First observedboard_get
    • First observedboard_get_sprints
    • First observedboards_list
    • First observedentities_bulk_update
    • First observedentities_search
    • First observedentity_create
    • First observedentity_delete
    • First observedentity_get
    • First observedentity_get_events
    • First observedentity_update
    • First observedfilter_create
    • First observedfilter_find_issues
    • First observedfilter_get
    • First observedfilter_update
    • First observedget_global_fields
    • First observedget_issue_types
    • First observedget_priorities
    • First observedget_resolutions
    • First observedget_statuses
    • First observedissue_add_comment
    • First observedissue_add_link
    • First observedissue_add_worklog
    • First observedissue_close
    • First observedissue_create
    • First observedissue_delete_attachment
    • First observedissue_delete_comment
    • First observedissue_delete_link
    • First observedissue_delete_worklog
    • First observedissue_download_attachment
    • First observedissue_execute_transition
    • First observedissue_get
    • First observedissue_get_attachments
    • First observedissue_get_changelog
    • First observedissue_get_checklist
    • First observedissue_get_comments
    • First observedissue_get_links
    • First observedissue_get_transitions
    • First observedissue_get_url
    • First observedissue_get_worklogs
    • First observedissue_move
    • First observedissue_update
    • First observedissue_update_comment
    • First observedissue_update_worklog
    • First observedissue_upload_attachment
    • First observedissues_count
    • First observedissues_find
    • First observedqueue_create_version
    • First observedqueue_get_fields
    • First observedqueue_get_metadata
    • First observedqueue_get_tags
    • First observedqueue_get_versions
    • First observedqueues_get_all
    • First observedsprint_get
    • First observeduser_get
    • First observeduser_get_current
    • First observedusers_get_all
    • First observedusers_search

TDQS

B3.4/5.0

Scored across 57 tools

Disambiguation5/5

Each tool targets a distinct resource and action, with clear descriptions that prevent confusion. Even the overlapping issue_close and issue_execute_transition are clearly distinguished as convenience vs generic transition.

Naming Consistency2/5

Naming is inconsistent: many tools use resource_action (issue_create, queue_get_metadata) but several use action_resource (get_priorities, get_statuses). Also pluralization varies (boards_list vs board_get, queues_get_all vs queue_get_metadata).

Tool Count1/5

With 57 tools, this is far beyond the typical well-scoped MCP server. While the domain is broad, the granularity is excessive, making it unwieldy.

Completeness4/5

The tool surface covers most CRUD operations for issues, comments, worklogs, attachments, links, and entities. Minor gaps include no filter deletion, board/sprint creation/update, and limited issue search options.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A Simple Model Context Protocol server that enables AI assistants to interact with Jira, allowing operations like fetching tickets, adding comments, and updating ticket status.
    1
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Node.js MCP server that enables AI assistants to interact with Yandex Tracker task management system through a standardized protocol, supporting operations like creating, updating, and searching issues.
    433
    3
    ISC
  • A
    license
    Not graded
    quality
    D
    maintenance
    Model Context Protocol server that integrates with Atlassian Confluence and Jira, enabling AI assistants to search, create, and update content in these platforms through natural language interactions.
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A comprehensive Model Context Protocol server that provides AI agents with 44 tools to manage JetBrains YouTrack issues, sprints, and projects via the REST API. It supports full YouTrack query language and works with both Cloud and Server instances for complete project management integration.
    78
    MIT