Skip to main content
Glama
disrex-group

Plane MCP Server

by disrex-group

Plane MCP Server

npm version Quality License: MIT Node.js CI TypeScript Plane.so MCP

A Model Context Protocol (MCP) server that enables LLMs to interact with Plane.so, allowing them to manage projects and issues through Plane's API. Using this server, LLMs like Claude can directly interact with your project management workflows while maintaining user control and security.

⚠️ Important: This MCP server is designed specifically for Plane Cloud instances. It only works with workspaces hosted on https://app.plane.so/workspace-slug. If you're using a self-hosted Plane installation, this server will not be compatible.

Note: This is an enhanced fork of the original kelvin6365/plane-mcp-server, extended with comprehensive Plane API functionality including states, modules (sprints), cycles, labels, team management, comments, links, attachments, time tracking, and issue types.

Features

Pagination Support

  • Cursor-based pagination for all list operations (projects, issues, modules, cycles, labels)

  • Configurable page sizes up to 100 items per page

  • Navigation through large datasets with next/previous cursors

  • Consistent pagination across all list tools

Project Management

  • List all projects in your Plane workspace with pagination

  • Get detailed information about specific projects

Issue Management

  • Create new issues with customizable properties

  • List and filter issues from projects

  • Get detailed information about specific issues

  • Update existing issues with new information

State Management

  • List all states in a project

  • Get detailed information about specific states

  • Create new states with customizable properties

  • Update existing states

  • Delete states from projects

Module (Sprint) Management

  • List all modules (sprints) in a project

  • Get detailed information about specific modules

  • Create new modules with customizable properties

  • Update existing modules

  • Delete modules from projects

  • List issues assigned to specific modules

  • Add/remove issues to/from modules

Cycle Management

  • List all cycles in a project

  • Get detailed information about specific cycles

  • Create new cycles with customizable properties

  • Update existing cycles

  • Delete cycles from projects

  • List issues assigned to specific cycles

  • Add/remove issues to/from cycles

Label Management

  • List all labels in a project

  • Get detailed information about specific labels

  • Create new labels with customizable properties

  • Update existing labels

  • Delete labels from projects

Team & Workspace Management

  • List all members in the workspace

  • List members assigned to specific projects

Issue Comments & Communication

  • List, create, update, and delete comments on issues

  • Track discussion history and collaboration

  • Attach external links to issues (documentation, PRs, etc.)

  • Manage and update issue-related URLs

File Attachments

  • List file attachments for issues

  • Generate upload URLs for new attachments

Issue Activity & History

  • View complete activity history for issues

  • Track all changes and updates

Time Tracking (Worklogs)

  • Log time spent on specific issues

  • View project-wide time tracking summaries

  • Update and manage worklog entries

Custom Issue Types

  • Create and manage custom issue types

  • Define project-specific issue categories

Intake Issues (Triage)

  • Handle intake/inbox issues for triage

  • Manage issue submissions before project assignment

Custom Issue Properties

  • Create and manage custom properties for issue types

  • Support for various property types (text, number, date, options, boolean)

  • Configure dropdown options for select properties

  • Set required fields and validation rules

Sub-issues & Relations

  • Create hierarchical issue structures with parent-child relationships

  • Convert existing issues to sub-issues

  • List and manage sub-issue trees

  • Convert sub-issues back to regular issues

Issue Transfer Operations

  • Transfer issues between cycles for better sprint management

  • Bulk move issues to different project phases

Related MCP server: Plane MCP Server

Prerequisites

  • Node.js 22.x or higher

  • A Plane.so API key

  • A Plane.so workspace

Installation

The quickest way to get started is to use the published npm package:

{
  "mcpServers": {
    "plane": {
      "command": "npx",
      "args": [
        "-y",
        "@disrex/plane-mcp-server"
      ],
      "env": {
        "PLANE_API_KEY": "your_plane_api_key_here",
        "PLANE_WORKSPACE_SLUG": "your_workspace_slug_here"
      }
    }
  }
}

Add this configuration to your Claude for Desktop config file:

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

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

Option 2: Manual Setup

If you prefer to set up the server manually, follow these steps:

  1. Clone this repository:

git clone https://github.com/disrex-group/plane-mcp-server.git
cd plane-mcp-server
  1. Install dependencies:

npm install
  1. Build the server:

npm run build

Getting Your Plane API Credentials

To use this MCP server, you'll need:

  1. Plane API Key: Generate one from your personal settings (not workspace settings) in Plane

  2. Workspace Slug: Found in your Plane workspace URL (e.g., https://app.plane.so/workspace-slug/)

After obtaining these credentials, use them in your Claude configuration as shown in the installation options above.

Available Tools

Note: Tool names use hyphens (e.g., list-projects), not underscores. The server will automatically convert underscores to hyphens for compatibility.

list-projects

Lists all projects in your Plane workspace with pagination support.

Parameters:

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

  • cursor (optional): Pagination cursor in format 'value:offset:is_prev'

Example:

{
  "per_page": 50
}

Example with pagination:

{
  "per_page": 25,
  "cursor": "project_name:25:false"
}

get-project

Gets detailed information about a specific project.

Parameters:

  • project_id: ID of the project to retrieve

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef"
}

create-issue

Creates a new issue in a specified project.

Parameters:

  • project_id: ID of the project where the issue should be created

  • name: Title of the issue

  • description_html: HTML description of the issue (required by Plane API)

  • priority (optional): Priority of the issue ("urgent", "high", "medium", "low", "none")

  • state_id (optional): ID of the state for this issue

  • assignees (optional): Array of user IDs to assign to this issue

  • labels (optional): Array of label IDs to assign to this issue

Note: The assignees and labels parameters must be arrays of ID strings. Common errors include providing a dictionary/object instead of an array, or accidentally nesting the entire issue data inside these fields. The server will attempt to handle these cases, but it's best to use the correct format.

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "name": "Implement new feature",
  "description_html": "<p>We need to implement the new reporting feature</p>",
  "priority": "high",
  "assignees": ["user-id-1", "user-id-2"],
  "labels": ["446cf3ad-446e-4b7a-8706-14121a0338d7", "ab0c39d4-dcae-4ccd-971a-f4c66d1e7db7"]
}

list-issues

Lists issues from a specified project with optional filtering and pagination.

Parameters:

  • project_id: ID of the project to get issues from

  • state_id (optional): Filter by state ID

  • priority (optional): Filter by priority

  • assignee_id (optional): Filter by assignee ID

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

  • cursor (optional): Pagination cursor in format 'value:offset:is_prev'

Examples:

Basic filtering:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "priority": "high",
  "per_page": 20
}

With pagination (first page):

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "per_page": 20
}

With pagination (next page using cursor from previous response):

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "per_page": 20,
  "cursor": "20:1:0"
}

get-issue

Gets detailed information about a specific issue.

Parameters:

  • project_id: ID of the project containing the issue

  • issue_id: ID of the issue to retrieve

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "issue_id": "01def456-7890-12gh-3456-789ijklmnopq"
}

update-issue

Updates an existing issue in a project.

Parameters:

  • project_id: ID of the project containing the issue

  • issue_id: ID of the issue to update

  • name (optional): Updated title of the issue

  • description_html (optional): HTML description of the issue (required by Plane API)

  • priority (optional): Updated priority of the issue

  • state_id (optional): Updated state ID of the issue

  • assignees (optional): Updated array of user IDs to assign to this issue

  • labels (optional): Updated array of label IDs to assign to this issue

Note: The assignees and labels parameters must be arrays of ID strings, following the same format guidelines as the create-issue tool.

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "priority": "urgent",
  "description_html": "<p>Updated description with <strong>more details</strong></p>",
  "labels": ["446cf3ad-446e-4b7a-8706-14121a0338d7", "7de2b3d1-ae1a-4651-a3df-717629d70c1a"]
}

State Management Tools

list-states

Lists all states in a project.

Parameters:

  • project_id: ID of the project to get states from

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef"
}

get-state

Gets detailed information about a specific state.

Parameters:

  • project_id: ID of the project containing the state

  • state_id: ID of the state to retrieve

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "state_id": "01def456-7890-12gh-3456-789ijklmnopq"
}

create-state

Creates a new state in a project.

Parameters:

  • project_id: ID of the project where the state should be created

  • name: Name of the state

  • group: State group ("unstarted", "started", "completed", "cancelled")

  • description (optional): Description of the state

  • color (optional): Color code for the state (e.g., "#ff0000")

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "name": "In Review",
  "group": "started",
  "description": "Issues currently under review",
  "color": "#ffaa00"
}

update-state

Updates an existing state in a project.

Parameters:

  • project_id: ID of the project containing the state

  • state_id: ID of the state to update

  • name (optional): Updated name of the state

  • description (optional): Updated description of the state

  • color (optional): Updated color code for the state

  • group (optional): Updated state group

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "state_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "name": "Code Review",
  "color": "#00ff00"
}

delete-state

Deletes a state from a project.

Parameters:

  • project_id: ID of the project containing the state

  • state_id: ID of the state to delete

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "state_id": "01def456-7890-12gh-3456-789ijklmnopq"
}

Module (Sprint) Management Tools

list-modules

Lists all modules (sprints) in a project with pagination support.

Parameters:

  • project_id: ID of the project to get modules from

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

  • cursor (optional): Pagination cursor in format 'value:offset:is_prev'

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "per_page": 50
}

Example with pagination:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "per_page": 25,
  "cursor": "module_name:25:false"
}

get-module

Gets detailed information about a specific module.

Parameters:

  • project_id: ID of the project containing the module

  • module_id: ID of the module to retrieve

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "module_id": "01def456-7890-12gh-3456-789ijklmnopq"
}

create-module

Creates a new module (sprint) in a project.

Parameters:

  • project_id: ID of the project where the module should be created

  • name: Name of the module

  • description (optional): Description of the module

  • start_date (optional): Start date of the module (YYYY-MM-DD format)

  • target_date (optional): Target end date of the module (YYYY-MM-DD format)

  • status (optional): Status of the module ("planned", "in-progress", "paused", "completed", "cancelled")

  • lead (optional): User ID of the module lead

  • members (optional): Array of user IDs to assign as module members

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "name": "Sprint 1 - Core Features",
  "description": "Initial sprint focusing on core functionality",
  "start_date": "2024-01-01",
  "target_date": "2024-01-14",
  "status": "planned",
  "lead": "user-id-1",
  "members": ["user-id-1", "user-id-2"]
}

update-module

Updates an existing module in a project.

Parameters:

  • project_id: ID of the project containing the module

  • module_id: ID of the module to update

  • name (optional): Updated name of the module

  • description (optional): Updated description of the module

  • start_date (optional): Updated start date of the module

  • target_date (optional): Updated target end date of the module

  • status (optional): Updated status of the module

  • lead (optional): Updated user ID of the module lead

  • members (optional): Updated array of user IDs for module members

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "module_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "status": "in-progress",
  "target_date": "2024-01-21"
}

delete-module

Deletes a module from a project.

Parameters:

  • project_id: ID of the project containing the module

  • module_id: ID of the module to delete

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "module_id": "01def456-7890-12gh-3456-789ijklmnopq"
}

list-module-issues

Lists all issues in a specific module.

Parameters:

  • project_id: ID of the project containing the module

  • module_id: ID of the module to get issues from

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "module_id": "01def456-7890-12gh-3456-789ijklmnopq"
}

add-issues-to-module

Adds issues to a module.

Parameters:

  • project_id: ID of the project containing the module

  • module_id: ID of the module to add issues to

  • issues: Array of issue IDs to add to the module

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "module_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "issues": ["issue-id-1", "issue-id-2", "issue-id-3"]
}

remove-issue-from-module

Removes an issue from a module.

Parameters:

  • project_id: ID of the project containing the module

  • module_id: ID of the module to remove issue from

  • issue_id: ID of the issue to remove from the module

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "module_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "issue_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw"
}

Cycle Management Tools

list-cycles

Lists all cycles in a project with pagination support.

Parameters:

  • project_id: ID of the project to get cycles from

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

  • cursor (optional): Pagination cursor in format 'value:offset:is_prev'

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "per_page": 50
}

Example with pagination:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "per_page": 25,
  "cursor": "cycle_name:25:false"
}

get-cycle

Gets detailed information about a specific cycle.

Parameters:

  • project_id: ID of the project containing the cycle

  • cycle_id: ID of the cycle to retrieve

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "cycle_id": "01def456-7890-12gh-3456-789ijklmnopq"
}

create-cycle

Creates a new cycle in a project.

Parameters:

  • project_id: ID of the project where the cycle should be created

  • name: Name of the cycle

  • owned_by: ID of the user who will own this cycle

  • description (optional): Description of the cycle

  • start_date (optional): Start date of the cycle (YYYY-MM-DD format)

  • end_date (optional): End date of the cycle (YYYY-MM-DD format)

Example:

{
  "project_id": "12345678-1234-5678-9abc-123456789def",
  "name": "Q1 2024 Development Cycle",
  "owned_by": "87654321-4321-8765-cba9-987654321fed",
  "description": "First quarter development cycle",
  "start_date": "2024-01-01",
  "end_date": "2024-03-31"
}

update-cycle

Updates an existing cycle in a project.

Parameters:

  • project_id: ID of the project containing the cycle

  • cycle_id: ID of the cycle to update

  • name (optional): Updated name of the cycle

  • description (optional): Updated description of the cycle

  • start_date (optional): Updated start date of the cycle (YYYY-MM-DD format)

  • end_date (optional): Updated end date of the cycle (YYYY-MM-DD format)

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "cycle_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "name": "Q1 2024 Development Cycle - Updated",
  "end_date": "2024-04-15"
}

delete-cycle

Deletes a cycle from a project.

Parameters:

  • project_id: ID of the project containing the cycle

  • cycle_id: ID of the cycle to delete

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "cycle_id": "01def456-7890-12gh-3456-789ijklmnopq"
}

list-cycle-issues

Lists all issues in a specific cycle.

Parameters:

  • project_id: ID of the project containing the cycle

  • cycle_id: ID of the cycle to get issues from

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "cycle_id": "01def456-7890-12gh-3456-789ijklmnopq"
}

add-issues-to-cycle

Adds issues to a cycle.

Parameters:

  • project_id: ID of the project containing the cycle

  • cycle_id: ID of the cycle to add issues to

  • issues: Array of issue IDs to add to the cycle

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "cycle_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "issues": ["issue-id-1", "issue-id-2", "issue-id-3"]
}

remove-issue-from-cycle

Removes an issue from a cycle.

Parameters:

  • project_id: ID of the project containing the cycle

  • cycle_id: ID of the cycle to remove issue from

  • issue_id: ID of the issue to remove from the cycle

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "cycle_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "issue_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw"
}

Label Management Tools

list-labels

Lists all labels in a project with pagination support.

Parameters:

  • project_id: ID of the project to get labels from

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

  • cursor (optional): Pagination cursor in format 'value:offset:is_prev'

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "per_page": 50
}

Example with pagination:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "per_page": 25,
  "cursor": "label_name:25:false"
}

get-label

Gets detailed information about a specific label.

Parameters:

  • project_id: ID of the project containing the label

  • label_id: ID of the label to retrieve

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "label_id": "01def456-7890-12gh-3456-789ijklmnopq"
}

create-label

Creates a new label in a project.

Parameters:

  • project_id: ID of the project where the label should be created

  • name: Name of the label

  • description (optional): Description of the label

  • color (optional): Color code for the label (e.g., "#ff0000")

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "name": "Bug",
  "description": "Issues related to bugs",
  "color": "#ff0000"
}

update-label

Updates an existing label in a project.

Parameters:

  • project_id: ID of the project containing the label

  • label_id: ID of the label to update

  • name (optional): Updated name of the label

  • description (optional): Updated description of the label

  • color (optional): Updated color code for the label (e.g., "#ff0000")

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "label_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "name": "Critical Bug",
  "color": "#ff0000",
  "description": "Issues that require immediate attention"
}

delete-label

Deletes a label from a project.

Parameters:

  • project_id: ID of the project containing the label

  • label_id: ID of the label to delete

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "label_id": "01def456-7890-12gh-3456-789ijklmnopq"
}

Team & Workspace Management Tools

list-workspace-members

Lists all members in the workspace.

Parameters: None

Example:

{}

list-project-members

Lists all members in a specific project.

Parameters:

  • project_id: ID of the project to get members from

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef"
}

Issue Comments Tools

list-issue-comments

Lists all comments on a specific issue.

Parameters:

  • project_id: ID of the project containing the issue

  • issue_id: ID of the issue to get comments from

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "issue_id": "01def456-7890-12gh-3456-789ijklmnopq"
}

get-issue-comment

Gets detailed information about a specific comment.

Parameters:

  • project_id: ID of the project containing the issue

  • issue_id: ID of the issue containing the comment

  • comment_id: ID of the comment to retrieve

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "comment_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw"
}

create-issue-comment

Creates a new comment on an issue.

Parameters:

  • project_id: ID of the project containing the issue

  • issue_id: ID of the issue to comment on

  • comment: The comment text

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "comment": "This looks good, but we need to add unit tests before merging."
}

update-issue-comment

Updates an existing comment on an issue.

Parameters:

  • project_id: ID of the project containing the issue

  • issue_id: ID of the issue containing the comment

  • comment_id: ID of the comment to update

  • comment: The updated comment text

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "comment_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw",
  "comment": "Updated: This looks good after the latest changes, ready to merge."
}

delete-issue-comment

Deletes a comment from an issue.

Parameters:

  • project_id: ID of the project containing the issue

  • issue_id: ID of the issue containing the comment

  • comment_id: ID of the comment to delete

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "comment_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw"
}

Lists all external links attached to an issue.

Parameters:

  • project_id: ID of the project containing the issue

  • issue_id: ID of the issue to get links from

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "issue_id": "01def456-7890-12gh-3456-789ijklmnopq"
}

Gets detailed information about a specific issue link.

Parameters:

  • project_id: ID of the project containing the issue

  • issue_id: ID of the issue containing the link

  • link_id: ID of the link to retrieve

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "link_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw"
}

Creates a new external link for an issue.

Parameters:

  • project_id: ID of the project containing the issue

  • issue_id: ID of the issue to add link to

  • title: Title/name for the link

  • url: The URL to link to

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "title": "Related Pull Request",
  "url": "https://github.com/company/repo/pull/123"
}

Updates an existing issue link.

Parameters:

  • project_id: ID of the project containing the issue

  • issue_id: ID of the issue containing the link

  • link_id: ID of the link to update

  • title (optional): Updated title/name for the link

  • url (optional): Updated URL

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "link_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw",
  "title": "Updated Documentation Link",
  "url": "https://docs.example.com/updated-section"
}

Deletes an external link from an issue.

Parameters:

  • project_id: ID of the project containing the issue

  • issue_id: ID of the issue containing the link

  • link_id: ID of the link to delete

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "link_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw"
}

Issue Attachments Tools

list-issue-attachments

Lists all file attachments for an issue.

Parameters:

  • project_id: ID of the project containing the issue

  • issue_id: ID of the issue to get attachments from

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "issue_id": "01def456-7890-12gh-3456-789ijklmnopq"
}

get-issue-attachment-upload-url

Gets a pre-signed URL for uploading file attachments to an issue.

Parameters:

  • project_id: ID of the project containing the issue

  • issue_id: ID of the issue to attach file to

  • file_name: Name of the file to upload

  • file_size: Size of the file in bytes

  • content_type: MIME type of the file (e.g., 'image/png', 'application/pdf')

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "file_name": "screenshot.png",
  "file_size": 1024000,
  "content_type": "image/png"
}

Issue Activities Tools

list-issue-activities

Lists all activities/history for an issue.

Parameters:

  • project_id: ID of the project containing the issue

  • issue_id: ID of the issue to get activities from

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "issue_id": "01def456-7890-12gh-3456-789ijklmnopq"
}

get-issue-activity

Gets detailed information about a specific issue activity.

Parameters:

  • project_id: ID of the project containing the issue

  • issue_id: ID of the issue containing the activity

  • activity_id: ID of the activity to retrieve

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "activity_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw"
}

Worklogs (Time Tracking) Tools

list-issue-worklogs

Lists all time logs for a specific issue.

Parameters:

  • project_id: ID of the project containing the issue

  • issue_id: ID of the issue to get worklogs from

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "issue_id": "01def456-7890-12gh-3456-789ijklmnopq"
}

get-project-total-worklogs

Gets total time logged across all issues in a project.

Parameters:

  • project_id: ID of the project to get total worklogs from

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef"
}

create-issue-worklog

Creates a new time log entry for an issue.

Parameters:

  • project_id: ID of the project containing the issue

  • issue_id: ID of the issue to log time for

  • duration: Time logged in hours (e.g., 2.5 for 2 hours 30 minutes)

  • description (optional): Description of the work done

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "duration": 3.5,
  "description": "Fixed the authentication bug and added unit tests"
}

update-issue-worklog

Updates an existing worklog entry.

Parameters:

  • project_id: ID of the project containing the issue

  • issue_id: ID of the issue containing the worklog

  • worklog_id: ID of the worklog to update

  • duration (optional): Updated time logged in hours

  • description (optional): Updated description of the work done

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "worklog_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw",
  "duration": 4.0,
  "description": "Fixed critical bug and updated documentation"
}

delete-issue-worklog

Deletes a worklog entry from an issue.

Parameters:

  • project_id: ID of the project containing the issue

  • issue_id: ID of the issue containing the worklog

  • worklog_id: ID of the worklog to delete

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "worklog_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw"
}

Issue Types Tools

list-issue-types

Lists all custom issue types in a project.

Parameters:

  • project_id: ID of the project to get issue types from

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef"
}

get-issue-type

Gets detailed information about a specific issue type.

Parameters:

  • project_id: ID of the project containing the issue type

  • type_id: ID of the issue type to retrieve

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "type_id": "01def456-7890-12gh-3456-789ijklmnopq"
}

create-issue-type

Creates a new custom issue type in a project.

Parameters:

  • project_id: ID of the project to create issue type in

  • name: Name of the issue type

  • description (optional): Description of the issue type

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "name": "Epic",
  "description": "Large feature that spans multiple sprints"
}

update-issue-type

Updates an existing issue type.

Parameters:

  • project_id: ID of the project containing the issue type

  • type_id: ID of the issue type to update

  • name (optional): Updated name of the issue type

  • description (optional): Updated description

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "type_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "name": "Major Epic",
  "description": "Large feature spanning multiple quarters"
}

delete-issue-type

Deletes an issue type from a project.

Parameters:

  • project_id: ID of the project containing the issue type

  • type_id: ID of the issue type to delete

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "type_id": "01def456-7890-12gh-3456-789ijklmnopq"
}

Intake Issues Tools

list-intake-issues

Lists all intake/inbox issues in a project.

Parameters:

  • project_id: ID of the project to get intake issues from

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef"
}

get-intake-issue

Gets detailed information about a specific intake issue.

Parameters:

  • project_id: ID of the project containing the intake issue

  • issue_id: ID of the intake issue to retrieve

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "issue_id": "01def456-7890-12gh-3456-789ijklmnopq"
}

create-intake-issue

Creates a new intake/inbox issue.

Parameters:

  • project_id: ID of the project to create intake issue in

  • name: Title of the intake issue

  • description_html (optional): HTML description of the issue

  • priority (optional): Priority of the issue ("urgent", "high", "medium", "low", "none")

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "name": "User reports login issues on mobile app",
  "description_html": "<p>Multiple users experiencing login failures on iOS app version 2.1.3</p>",
  "priority": "high"
}

update-intake-issue

Updates an existing intake issue.

Parameters:

  • project_id: ID of the project containing the intake issue

  • issue_id: ID of the intake issue to update

  • name (optional): Updated title

  • description_html (optional): Updated HTML description

  • priority (optional): Updated priority

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "name": "Updated: Multiple users experiencing login issues on mobile app",
  "priority": "urgent",
  "description_html": "<p>Updated: Now affecting Android users as well as iOS. Version 2.1.3 and 2.1.4</p>"
}

delete-intake-issue

Deletes an intake issue.

Parameters:

  • project_id: ID of the project containing the intake issue

  • issue_id: ID of the intake issue to delete

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "issue_id": "01def456-7890-12gh-3456-789ijklmnopq"
}

list-issue-properties

Lists all custom properties for a specific issue type.

Parameters:

  • project_id: ID of the project

  • type_id: ID of the issue type to get properties for

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "type_id": "01def456-7890-12gh-3456-789ijklmnopq"
}

get-issue-property

Gets details of a specific issue property.

Parameters:

  • project_id: ID of the project

  • type_id: ID of the issue type

  • property_id: ID of the property to retrieve

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "type_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "property_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw"
}

create-issue-property

Creates a new custom property for an issue type.

Parameters:

  • project_id: ID of the project

  • type_id: ID of the issue type

  • name: Internal name for the property

  • display_name: Display name for the property

  • property_type: Type of property (TEXT, NUMBER, DATE, OPTION, MULTI_OPTION, BOOLEAN)

  • description: Description of the property (optional)

  • is_required: Whether this property is required (optional)

  • is_multi: Whether multiple values are allowed (optional)

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "type_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "name": "severity",
  "display_name": "Bug Severity",
  "property_type": "OPTION",
  "description": "Severity level of the bug",
  "is_required": true,
  "is_multi": false
}

update-issue-property

Updates an existing issue property.

Parameters:

  • project_id: ID of the project

  • type_id: ID of the issue type

  • property_id: ID of the property to update

  • name: Internal name for the property (optional)

  • display_name: Display name for the property (optional)

  • description: Description of the property (optional)

  • is_required: Whether this property is required (optional)

  • is_multi: Whether multiple values are allowed (optional)

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "type_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "property_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw",
  "display_name": "Bug Severity Level",
  "description": "Updated severity level description"
}

delete-issue-property

Deletes an issue property.

Parameters:

  • project_id: ID of the project

  • type_id: ID of the issue type

  • property_id: ID of the property to delete

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "type_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "property_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw"
}

list-issue-property-options

Lists all options for a dropdown/select issue property.

Parameters:

  • project_id: ID of the project

  • property_id: ID of the property to get options for

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "property_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw"
}

create-issue-property-option

Creates a new option for a dropdown/select issue property.

Parameters:

  • project_id: ID of the project

  • property_id: ID of the property to add option to

  • name: Name of the option

  • description: Description of the option (optional)

  • sort_order: Sort order for the option (optional)

  • is_default: Whether this is the default option (optional)

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "property_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw",
  "name": "Critical",
  "description": "Critical severity level",
  "sort_order": 1,
  "is_default": false
}

update-issue-property-option

Updates an option for a dropdown/select issue property.

Parameters:

  • project_id: ID of the project

  • property_id: ID of the property

  • option_id: ID of the option to update

  • name: Name of the option (optional)

  • description: Description of the option (optional)

  • sort_order: Sort order for the option (optional)

  • is_default: Whether this is the default option (optional)

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "property_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw",
  "option_id": "01jkl012-3456-78mn-9012-opqrstuvwxyz",
  "name": "High Priority",
  "description": "High priority severity level"
}

list-sub-issues

Lists all sub-issues of a parent issue.

Parameters:

  • project_id: ID of the project

  • parent_issue_id: ID of the parent issue to get sub-issues for

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "parent_issue_id": "01def456-7890-12gh-3456-789ijklmnopq"
}

create-sub-issue

Creates a new sub-issue under a parent issue.

Parameters:

  • project_id: ID of the project

  • parent_issue_id: ID of the parent issue

  • name: Title of the sub-issue

  • description_html: HTML description of the sub-issue (optional)

  • priority: Priority of the sub-issue (urgent, high, medium, low, none) (optional)

  • state_id: ID of the state for this sub-issue (optional)

  • assignees: Array of user IDs to assign to this sub-issue (optional)

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "parent_issue_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "name": "Fix validation bug",
  "description_html": "<p>Fix the email validation issue in the login form</p>",
  "priority": "high"
}

convert-to-sub-issue

Converts an existing issue to a sub-issue of another issue.

Parameters:

  • project_id: ID of the project

  • issue_id: ID of the issue to convert to sub-issue

  • parent_issue_id: ID of the parent issue

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "issue_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw",
  "parent_issue_id": "01def456-7890-12gh-3456-789ijklmnopq"
}

convert-to-issue

Converts a sub-issue back to a regular issue (removes parent relationship).

Parameters:

  • project_id: ID of the project

  • issue_id: ID of the sub-issue to convert to regular issue

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "issue_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw"
}

transfer-issues

Transfers issues from one cycle to another.

Parameters:

  • project_id: ID of the project

  • cycle_id: ID of the source cycle to transfer issues from

  • new_cycle_id: ID of the target cycle to transfer issues to

Example:

{
  "project_id": "01abc123-4567-89de-0123-456789abcdef",
  "cycle_id": "01def456-7890-12gh-3456-789ijklmnopq",
  "new_cycle_id": "01ghi789-0123-45jk-6789-lmnopqrstuvw"
}

Development

  1. Install development dependencies:

npm install --save-dev typescript @types/node
  1. Start the server in development mode:

npm run dev

Testing

You can test the server using the MCP Inspector:

npx @modelcontextprotocol/inspector node dist/index.js

Examples

Here are some example interactions you can try with Claude after setting up the Plane MCP server:

Basic Project & Issue Management

  1. "Can you list all the projects in my Plane workspace?"

  2. "Please create a new high-priority issue in the Marketing project titled 'Update social media strategy'"

  3. "What are all the high-priority issues in the Development project?"

  4. "Update issue #123 in the QA project to change its priority to urgent"

Sprint/Module Management

  1. "Create a new sprint called 'Q1 2024 Features' in the Development project with a 2-week duration"

  2. "Show me all the issues in the current sprint for the Backend project"

  3. "Add issues #456 and #789 to the 'API Development' module"

  4. "What sprints are currently active in the project?"

Workflow & State Management

  1. "List all the workflow states available in the Frontend project"

  2. "Create a new state called 'Code Review' for the Backend project"

  3. "Move issue #123 to the 'In Progress' state"

Cycle & Planning Management

  1. "Create a development cycle for Q1 2024 from January 1st to March 31st"

  2. "Show me all issues assigned to the current development cycle"

  3. "Add the high-priority issues to the 'Release Preparation' cycle"

Label & Organization

  1. "List all available labels in the project and create a new 'Security' label"

  2. "Apply the 'Bug' and 'High Priority' labels to issue #789"

Team & Member Management

  1. "Who are all the members in this workspace?"

  2. "Show me the team members assigned to the Backend project"

  3. "List all issues assigned to John in the current sprint"

Advanced Workflows

  1. "Create a new sprint, add 5 specific issues to it, and set it to start next Monday"

  2. "Show me all overdue issues across all projects and their current states"

  3. "Create a comprehensive project status report with issues, sprints, and team assignments"

Claude will use the appropriate tools to interact with Plane while asking for your approval before creating or modifying any data.

Security Considerations

  • The API key requires proper Plane permissions to function

  • All operations that modify data require explicit user approval

  • Environment variables should be properly secured

  • API keys should never be committed to version control

Contributing

  1. Fork the repository from disrex-group/plane-mcp-server

  2. Create your feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add some amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

Badges

This project uses several badges to provide quick information about status, quality, and compatibility:

Available Badges

  • NPM Version: Shows the latest published version on npm

    [![npm version](https://badge.fury.io/js/@disrex%2Fplane-mcp-server.svg)](https://badge.fury.io/js/@disrex%2Fplane-mcp-server)
  • MCP Catalog Quality: Quality score from the Archestra.ai MCP catalog

    [![Quality](https://www.archestra.ai/mcp-catalog/api/badge/quality/disrex-group/plane-mcp-server)](https://www.archestra.ai/mcp-catalog/server/plane-mcp-server)
  • License: MIT License badge

    [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
  • CI Status: GitHub Actions workflow status

    [![Node.js CI](https://github.com/disrex-group/plane-mcp-server/actions/workflows/nodejs-ci.yml/badge.svg)](https://github.com/disrex-group/plane-mcp-server/actions/workflows/nodejs-ci.yml)
  • TypeScript: Technology badge

    [![TypeScript](https://img.shields.io/badge/%3C%2F%3E-TypeScript-%230074c1.svg)](https://www.typescriptlang.org/)
  • Plane.so Compatibility: Custom compatibility badge

    [![Plane.so](https://img.shields.io/badge/Plane.so-Compatible-blue)](https://plane.so)
  • MCP Protocol: Model Context Protocol badge

    [![MCP](https://img.shields.io/badge/MCP-Model%20Context%20Protocol-green)](https://modelcontextprotocol.io)

Creating Custom Badges

You can create custom badges using Shields.io:

  1. Basic Format: https://img.shields.io/badge/{label}-{message}-{color}

  2. Dynamic Badges: Use endpoints for live data (npm downloads, GitHub stars, etc.)

  3. Style Options: Add ?style=flat-square, ?style=for-the-badge, etc.

Example custom badge:

[![Custom Badge](https://img.shields.io/badge/Custom-Message-brightgreen)](https://your-link.com)

Badge Services

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

If you encounter any issues or have questions:

  1. Check the GitHub Issues section

  2. Consult the MCP documentation at modelcontextprotocol.io

  3. Open a new issue with detailed reproduction steps

Repository History

This enhanced fork builds upon the excellent foundation of the original kelvin6365/plane-mcp-server, adding comprehensive project management capabilities.

Star History

Star History Chart

Available Tools

76 tools
add-issues-to-cycleC

Add issues to a cycle

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the cycle
cycle_idYesID of the cycle to add issues to
issuesYesArray of issue IDs to add to the cycle

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. 'Add issues to a cycle' implies a mutation operation but provides no information about permissions required, whether this is idempotent, what happens if issues are already in the cycle, error conditions, or what the response looks like. For a mutation tool with zero annotation coverage, this is inadequate behavioral 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 extremely concise at just four words with no wasted language. It's front-loaded with the core action and doesn't contain any unnecessary elaboration. While it's arguably too brief for adequate tool documentation, it scores perfectly on the conciseness dimension as defined.

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

Completeness2/5

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

Given this is a mutation tool with no annotations, no output schema, and sibling tools that perform related operations, the description is insufficiently complete. It doesn't explain what happens after issues are added, whether there are constraints on which issues can be added, or how this interacts with other cycle operations. For a tool that modifies data, more 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 schema description coverage is 100%, with all three parameters clearly documented in the schema. The description adds no additional parameter information beyond what's already in the schema. According to scoring rules, when schema_description_coverage is high (>80%), the baseline is 3 even with no param info in the description, which applies here.

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

Purpose2/5

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

The description 'Add issues to a cycle' is a tautology that essentially restates the tool name. While it identifies the verb ('add') and resource ('issues to a cycle'), it lacks specificity about what this operation entails and doesn't differentiate from sibling tools like 'remove-issue-from-cycle' or 'list-cycle-issues'. It's minimally informative but doesn't provide meaningful context beyond the obvious.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'remove-issue-from-cycle', 'list-cycle-issues', and 'create-cycle', there's no indication of when this specific add operation is appropriate versus other cycle-related operations. There's no mention of prerequisites, constraints, or typical use cases.

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

add-issues-to-moduleC

Add issues to a module

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the module
module_idYesID of the module to add issues to
issuesYesArray of issue IDs to add to the module

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. 'Add issues to a module' implies a write/mutation operation but doesn't specify permissions needed, whether this is idempotent, what happens if issues are already in the module, error conditions, or response format. For a mutation tool with zero annotation coverage, this leaves significant behavioral 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 extremely concise at just four words: 'Add issues to a module'. It's front-loaded with the core action and target, with zero wasted words. While it may be too brief for completeness, it earns full marks for conciseness as every word contributes directly to the purpose statement.

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

Completeness2/5

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

Given this is a mutation tool with no annotations and no output schema, the description is inadequate. It doesn't explain what happens after adding issues, what the return value looks like, error conditions, or permissions required. The 100% schema coverage helps with parameters, but for a tool that modifies data, the description should provide more behavioral context than it does.

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

Parameters3/5

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

The input schema has 100% description coverage, with all three parameters (project_id, module_id, issues) clearly documented in the schema. The description doesn't add any meaningful parameter information beyond what's already in the schema. According to scoring rules, when schema_description_coverage is high (>80%), the baseline is 3 even with no param info in the description.

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

Purpose3/5

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

The description 'Add issues to a module' clearly states the action (add) and target (issues to a module), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'add-issues-to-cycle' or 'remove-issue-from-module', which perform similar operations on different resources. The description is specific enough to understand the basic function but lacks 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. There are multiple related tools (add-issues-to-cycle, remove-issue-from-module, create-module, list-module-issues) that handle modules and issues, but the description offers no context about when this specific tool is appropriate versus those alternatives. No prerequisites or exclusions are mentioned.

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

convert-to-issueB

Convert a sub-issue back to a regular issue (remove parent relationship)

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project
issue_idYesID of the sub-issue to convert to regular issue

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It indicates a mutation ('convert') but does not specify permissions needed, whether the change is reversible, side effects (e.g., impact on linked issues), or error conditions. This is a significant gap for a mutation tool with zero annotation coverage.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core action and outcome without unnecessary words. Every part of the sentence contributes directly to understanding the tool's purpose, 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.

Completeness2/5

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

Given the tool's complexity (a mutation operation with no annotations and no output schema), the description is incomplete. It lacks details on behavioral aspects like permissions, side effects, and response format, which are crucial for an agent to invoke it correctly. The high schema coverage helps with parameters but does not compensate for these gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters (project_id and issue_id) adequately. The description does not add any parameter-specific details beyond what the schema provides, such as format examples or constraints, resulting in a baseline score 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 clearly states the specific action ('convert'), the resource ('sub-issue'), and the outcome ('back to a regular issue (remove parent relationship)'). It distinguishes from sibling tools like 'convert-to-sub-issue' by specifying the reverse operation, making the purpose explicit and differentiated.

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 context by specifying 'convert a sub-issue back to a regular issue,' suggesting it should be used when removing a parent relationship. However, it does not explicitly state when to use this tool versus alternatives (e.g., when not to use it, or prerequisites like issue status), leaving some ambiguity for the agent.

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

convert-to-sub-issueC

Convert an existing issue to a sub-issue of another issue

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project
issue_idYesID of the issue to convert to sub-issue
parent_issue_idYesID of the parent issue

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('convert') but doesn't describe what happens during conversion, such as whether it's reversible, if it affects issue properties, or what permissions are required. This is a significant gap for a mutation tool with zero annotation coverage.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It is appropriately sized and front-loaded, making it easy for an agent to parse quickly.

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

Completeness2/5

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

Given the tool's complexity as a mutation operation with no annotations and no output schema, the description is incomplete. It lacks details on behavioral aspects like side effects, error conditions, or return values, which are crucial for an agent to use the tool correctly in context.

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 description coverage is 100%, so the schema already documents all three parameters (project_id, issue_id, parent_issue_id) with clear descriptions. The description adds no additional meaning or context beyond what the schema provides, such as explaining relationships between parameters, resulting in the baseline score of 3.

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

Purpose4/5

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

The description clearly states the tool's purpose with a specific verb ('convert') and resource ('existing issue'), specifying the transformation to a 'sub-issue of another issue'. It distinguishes from sibling tools like 'create-sub-issue' by focusing on conversion rather than creation, though it doesn't explicitly mention all relevant siblings like 'convert-to-issue'.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as whether the issues must exist or be in a specific state, or compare it to siblings like 'create-sub-issue' or 'convert-to-issue', leaving the agent to infer usage context.

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

create-cycleC

Create a new cycle in a project

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project where the cycle should be created
nameYesName of the cycle
descriptionNoDescription of the cycle (optional)
start_dateNoStart date of the cycle (YYYY-MM-DD format, optional)
end_dateNoEnd date of the cycle (YYYY-MM-DD format, optional)
owned_byYesID of the user who will own this cycle

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a creation operation but doesn't mention permissions required, whether cycles have unique constraints, what happens on success/failure, or any side effects. For a mutation tool with zero annotation coverage, this is insufficient.

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

Conciseness5/5

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

The description is a single, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized for a straightforward creation tool and gets directly to the point.

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

Completeness2/5

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

For a mutation tool with no annotations and no output schema, the description is inadequate. It doesn't explain what a 'cycle' is in this context, what happens after creation, error conditions, or relationship to sibling tools like 'update-cycle' and 'delete-cycle'. The agent lacks crucial context for proper tool selection and 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%, so all parameters are documented in the schema. The description adds no parameter-specific information beyond what's in the schema, but doesn't need to since the schema is comprehensive. This meets the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the action ('Create') and resource ('a new cycle in a project'), making the purpose immediately understandable. It doesn't explicitly differentiate from siblings like 'update-cycle' or 'list-cycles', but the verb 'Create' distinguishes it from read/update/delete operations.

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 'update-cycle' or 'list-cycles'. The description doesn't mention prerequisites, constraints, or typical use cases, leaving the agent to infer usage from the tool name alone.

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

create-intake-issueC

Create a new intake/inbox issue

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project to create intake issue in
nameYesTitle of the intake issue
description_htmlNoHTML description of the issue (optional)
priorityNoPriority of the issue (urgent, high, medium, low, none)

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states 'Create a new intake/inbox issue', which implies a write/mutation operation, but doesn't disclose behavioral traits such as required permissions, whether it's idempotent, error handling, or what happens on success/failure. For a creation tool with zero annotation coverage, this is a significant gap in transparency.

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

Conciseness4/5

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

The description is a single, efficient sentence: 'Create a new intake/inbox issue'. It's front-loaded and wastes no words, though it could be more specific to improve clarity without sacrificing conciseness.

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

Completeness2/5

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

Given the complexity of a creation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what an 'intake/inbox issue' is, how it differs from other issues, what the tool returns, or any behavioral context. This leaves the agent with insufficient information to use the tool effectively.

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

Parameters3/5

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

The input schema has 100% description coverage, providing clear details for all 4 parameters (e.g., project_id, name, description_html, priority with enum values). The description adds no additional parameter information beyond what's in the schema, so it meets the baseline of 3 where the schema does the heavy lifting.

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

Purpose3/5

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

The description 'Create a new intake/inbox issue' clearly states the action (create) and resource (intake/inbox issue), but it's vague about what distinguishes an 'intake/inbox issue' from a regular issue. It doesn't differentiate from sibling tools like 'create-issue' or 'create-sub-issue', leaving ambiguity about the specific type of issue being created.

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 'create-issue' or 'create-sub-issue'. The description implies it's for creating a specific type of issue (intake/inbox), but without context on what that means or when it's appropriate, the agent lacks clear usage instructions.

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

create-issueC

Create a new issue in a project

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project where the issue should be created
nameYesTitle of the issue
description_htmlNoHTML description of the issue (required by Plane API)
priorityNoPriority of the issue (urgent, high, medium, low, none)
state_idNoID of the state for this issue (optional)
assigneesNoArray of user IDs to assign to this issue (optional)
labelsNoArray of label IDs to assign to this issue (optional)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. While 'create' implies a write/mutation operation, the description doesn't mention authentication requirements, permission levels needed, whether the operation is idempotent, what happens on failure, or what the API response looks like. For a creation tool with zero annotation coverage, this is a significant gap.

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

Conciseness5/5

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

The description is a single, efficient sentence that states the core purpose without any wasted words. It's appropriately sized and front-loaded with the essential information.

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

Completeness2/5

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

For a creation tool with 7 parameters, no annotations, and no output schema, the description is insufficient. It doesn't address behavioral aspects like authentication needs, error handling, or response format. Given the complexity of the operation and lack of structured metadata, the description should provide more context about how the tool behaves and what to expect.

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 description coverage is 100%, so the schema already documents all 7 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema. According to the scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description.

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

Purpose4/5

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

The description clearly states the verb ('create') and resource ('new issue in a project'), making the purpose unambiguous. However, it doesn't distinguish this from sibling tools like 'create-intake-issue' or 'create-sub-issue', which would require more specific 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 like 'create-intake-issue' or 'create-sub-issue'. It also doesn't mention prerequisites, dependencies, or any context about when this tool is appropriate versus other creation tools in the sibling list.

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

create-issue-commentC

Create a new comment on an issue

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the issue
issue_idYesID of the issue to comment on
commentYesThe comment text (will be converted to HTML)
accessNoComment visibility: INTERNAL (default) or EXTERNAL

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states the tool creates a comment, implying a write operation, but does not disclose behavioral traits like required permissions, rate limits, or whether the comment is editable. This leaves significant gaps 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, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and wastes no space, 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.

Completeness2/5

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

Given no annotations and no output schema, the description is incomplete for a mutation tool. It lacks details on behavioral aspects like side effects, error handling, or response format, which are critical for proper tool invocation in this context.

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 all parameters. The description adds no additional meaning beyond the schema, such as explaining parameter interactions or constraints. Baseline score of 3 is appropriate as the schema handles parameter documentation.

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 ('Create a new comment') and target resource ('on an issue'), which is specific and unambiguous. However, it does not distinguish this tool from its sibling 'update-issue-comment' or other comment-related tools, missing explicit 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 like 'update-issue-comment' or 'get-issue-comment', nor does it mention prerequisites such as needing an existing issue. It lacks context for tool selection among siblings.

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

create-issue-propertyB

Create a new custom property for an issue type

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project
type_idYesID of the issue type
nameYesInternal name for the property
display_nameYesDisplay name for the property
descriptionNoDescription of the property
property_typeYesType of property (TEXT, NUMBER, DATE, OPTION, etc.)
is_requiredNoWhether this property is required
is_multiNoWhether multiple values are allowed (for OPTION type)

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. While 'Create' implies a write operation, it doesn't specify required permissions, whether the property becomes immediately available, potential rate limits, or what happens on failure. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its 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, efficient sentence that directly states the tool's purpose without any unnecessary words. It's appropriately sized and front-loaded with the essential information.

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

Completeness3/5

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

For a tool with 8 parameters, 100% schema coverage, and no output schema, the description is minimally adequate. It states what the tool does but doesn't provide context about the creation process, success/failure conditions, or how it fits within the broader workflow. The lack of annotations means more behavioral context would be helpful.

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 description coverage is 100%, meaning all parameters are well-documented in the schema itself. The description doesn't add any additional parameter information beyond what's already in the schema (like explaining relationships between parameters or providing examples). This meets the baseline expectation when schema coverage is complete.

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 ('Create') and resource ('new custom property for an issue type'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from its sibling 'create-issue-property-option' or explain how it differs from 'update-issue-property' and 'delete-issue-property', which would be needed for a perfect score.

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 doesn't mention prerequisites (e.g., needing an existing project and issue type), when not to use it, or how it relates to sibling tools like 'create-issue-property-option' or 'update-issue-property'.

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

create-issue-property-optionB

Create a new option for a dropdown/select issue property

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project
property_idYesID of the property to add option to
nameYesName of the option
descriptionNoDescription of the option
sort_orderNoSort order for the option
is_defaultNoWhether this is the default option

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. While 'Create' implies a write/mutation operation, the description doesn't specify permissions required, whether the operation is idempotent, what happens on duplicate option names, or what the response looks like. For a creation tool with zero annotation coverage, this leaves significant behavioral 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, efficient sentence that states the core purpose without any wasted words. It's appropriately sized for a tool with good schema documentation and gets straight to the point with zero fluff.

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

Completeness3/5

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

For a creation tool with 6 parameters and no annotations or output schema, the description is minimally adequate. The purpose is clear and the schema provides parameter details, but the lack of behavioral context (permissions, side effects, response format) and usage guidance relative to sibling tools leaves room for improvement.

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

Parameters3/5

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

The input schema has 100% description coverage, with all 6 parameters clearly documented in the schema itself. The description adds no additional parameter information beyond what's already in the schema descriptions, so it meets the baseline of 3 where the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('Create a new option') and the target resource ('for a dropdown/select issue property'), making the purpose immediately understandable. It doesn't differentiate from sibling tools like 'create-issue-property' or 'update-issue-property-option', but the verb+resource combination is specific enough for basic understanding.

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 'create-issue-property' (which creates the property itself) or 'update-issue-property-option' (which modifies existing options). There's no mention of prerequisites, dependencies, or contextual constraints, leaving the agent to infer usage from the tool name alone.

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

create-issue-typeC

Create a new custom issue type in a project

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project to create issue type in
nameYesName of the issue type
descriptionNoDescription of the issue type (optional)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'Create' implies a write/mutation operation, the description doesn't address important behavioral aspects: whether this requires admin permissions, if there are limits on custom issue types per project, what happens on duplicate names, or what the response contains. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.

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, efficient sentence that gets straight to the point with no wasted words. It's appropriately sized for a straightforward creation tool and follows good front-loading principles by stating the core action immediately.

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

Completeness2/5

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

For a mutation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what happens after creation (e.g., returns the new issue type ID), doesn't mention potential error conditions or constraints, and provides no context about how this fits into the broader issue management workflow. The combination of mutation nature plus lack of structured metadata requires more descriptive context.

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 description mentions creating 'in a project' which aligns with the project_id parameter, and 'custom issue type' which relates to the name parameter. However, with 100% schema description coverage, all parameters are already documented in the schema. The description adds minimal value beyond what the structured schema already provides, meeting the baseline expectation but not enhancing parameter understanding significantly.

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 ('Create') and resource ('new custom issue type in a project'), making the purpose immediately understandable. However, it doesn't differentiate this tool from similar creation tools like 'create-issue' or 'create-state', which would require mentioning it's specifically for issue type metadata rather than actual issues or other project elements.

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. With sibling tools like 'create-issue' (for actual issues) and 'update-issue-type' (for modifying existing issue types), there's no indication of when this creation tool is appropriate versus those other operations. No prerequisites, constraints, or alternative scenarios are mentioned.

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

create-issue-worklogC

Create a new time log entry for an issue

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the issue
issue_idYesID of the issue to log time for
durationYesTime logged in hours (e.g., 2.5 for 2 hours 30 minutes)
descriptionNoDescription of the work done (optional)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states 'Create' which implies a write/mutation operation, but doesn't disclose any behavioral traits like authentication requirements, whether it's idempotent, what happens on duplicate entries, error conditions, or the format of the response. For a mutation tool with zero annotation coverage, this is a significant gap.

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

Conciseness5/5

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

The description is a single, clear sentence with zero waste. It's appropriately sized for a straightforward create operation and front-loads the essential information. Every word earns its place.

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

Completeness2/5

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

For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what happens after creation (e.g., returns a worklog ID, affects issue time tracking), doesn't mention error cases or permissions, and provides no context about the worklog system. Given the complexity of creating a time entry and the lack of structured coverage, the description should do more.

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 description coverage is 100%, so all parameters are documented in the schema. The description adds no additional parameter semantics beyond what's already in the schema (e.g., it doesn't explain relationships between project_id and issue_id, or provide examples beyond the schema's duration example). Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('Create a new time log entry') and the target resource ('for an issue'), which is specific and unambiguous. It distinguishes from siblings like 'create-issue' or 'update-issue-worklog' by focusing on time logging. However, it doesn't explicitly differentiate from 'list-issue-worklogs' or 'delete-issue-worklog' in the description text itself.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing issue), when not to use it (e.g., for updating existing worklogs), or refer to sibling tools like 'update-issue-worklog' or 'list-issue-worklogs' for related operations.

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

create-labelC

Create a new label in a project

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project where the label should be created
nameYesName of the label
descriptionNoDescription of the label (optional)
colorNoColor code for the label (optional, e.g., #ff0000)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool creates something, implying a write operation, but doesn't mention required permissions, whether the operation is idempotent, what happens on duplicate names, or what the return value looks like. For a creation tool with zero annotation coverage, this leaves significant behavioral 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, clear sentence with zero wasted words. It's front-loaded with the core action and resource, making it immediately understandable. Every word earns its place without redundancy or unnecessary elaboration.

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

Completeness2/5

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

For a creation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what happens after creation (e.g., returns the new label object), error conditions, or behavioral nuances. The agent lacks critical context needed to use this tool effectively beyond the basic action.

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

Parameters3/5

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

Schema description coverage is 100%, so all parameters are documented in the schema itself. The description adds no additional parameter information beyond what's in the schema (like format examples for 'color' beyond '#ff0000' or constraints on 'name'). The baseline score of 3 reflects adequate coverage through the schema alone.

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 ('create') and resource ('new label in a project'), making the purpose immediately understandable. It distinguishes from sibling tools like 'update-label' or 'delete-label' by specifying creation, but doesn't explicitly differentiate from other creation tools like 'create-issue' or 'create-cycle' beyond the resource type.

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 doesn't mention prerequisites (like needing an existing project), when not to use it, or how it relates to sibling tools like 'update-label' or 'get-label'. The agent must infer usage from the name and context alone.

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

create-moduleC

Create a new module (sprint) in a project

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project where the module should be created
nameYesName of the module
descriptionNoDescription of the module (optional)
start_dateNoStart date of the module (YYYY-MM-DD format, optional)
target_dateNoTarget end date of the module (YYYY-MM-DD format, optional)
statusNoStatus of the module
leadNoUser ID of the module lead (optional)
membersNoArray of user IDs to assign as module members (optional)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. While 'create' implies a write operation, it doesn't mention permission requirements, whether creation is idempotent, what happens on failure, or what the response contains. For a mutation tool with zero annotation coverage, this leaves significant behavioral 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, efficient sentence that communicates the core purpose without any wasted words. It's appropriately sized for a creation tool and front-loads the essential information.

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

Completeness2/5

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

For a creation tool with 8 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what a 'module' or 'sprint' represents in this context, doesn't mention typical workflows, and provides no information about the return value or creation outcomes.

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

Parameters3/5

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

The input schema has 100% description coverage, providing detailed documentation for all 8 parameters including formats, enums, and optionality. The description adds no parameter information beyond what's already in the schema, so it meets the baseline of 3 where the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('create') and resource ('new module (sprint) in a project'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'create-cycle' or 'update-module', but the verb+resource combination is specific enough for basic understanding.

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 'create-cycle' or 'update-module', nor does it mention prerequisites, dependencies, or typical use cases. It simply states what the tool does without contextual usage information.

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

create-stateC

Create a new state in a project

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project where the state should be created
nameYesName of the state
descriptionNoDescription of the state (optional)
colorNoColor code for the state (optional, e.g., #ff0000)
groupYesState group (unstarted, started, completed, cancelled)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. While 'Create' implies a write/mutation operation, the description doesn't mention permission requirements, whether this operation is idempotent, what happens on duplicate names, or what the response contains. For a creation tool with zero annotation coverage, this leaves significant behavioral 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, efficient sentence that communicates the core purpose without unnecessary words. It's appropriately sized for a tool with good schema documentation and gets straight to the point with zero waste.

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

Completeness2/5

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

For a creation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what a 'state' represents in this system, what happens after creation, or provide any context about the broader workflow. With many sibling tools available, more contextual information would help the agent understand when and why to use this specific 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?

The schema description coverage is 100%, providing complete parameter documentation in the structured schema. The description adds no additional parameter information beyond what's already in the schema. With comprehensive schema coverage, the baseline score of 3 is appropriate as the description doesn't need to compensate for schema gaps.

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 ('Create a new state') and resource ('in a project'), making the purpose immediately understandable. However, it doesn't distinguish this tool from sibling tools like 'create-cycle' or 'create-module' that also create project entities, missing explicit 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. With many sibling tools available (like 'create-cycle', 'create-module', 'create-issue'), there's no indication of what a 'state' represents in this context or when it's appropriate to create one versus other project entities.

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

create-sub-issueC

Create a new sub-issue under a parent issue

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project
parent_issue_idYesID of the parent issue
nameYesTitle of the sub-issue
description_htmlNoHTML description of the sub-issue
priorityNoPriority of the sub-issue (urgent, high, medium, low, none)
state_idNoID of the state for this sub-issue (optional)
assigneesNoArray of user IDs to assign to this sub-issue (optional)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states it's a creation operation, implying mutation, but doesn't mention permissions needed, whether it's idempotent, rate limits, or what happens on success/failure. For a mutation tool with zero annotation coverage, this is a significant gap.

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

Conciseness5/5

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

The description is a single, clear sentence with zero waste. It's appropriately sized for the tool's purpose and front-loaded with the essential information.

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

Completeness2/5

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

For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns, error conditions, or behavioral nuances. Given the complexity of creating hierarchical issues, more 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?

Schema description coverage is 100%, so the schema already documents all 7 parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema, such as explaining relationships between parameters or usage examples. Baseline 3 is appropriate when schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('Create a new sub-issue') and the resource ('under a parent issue'), which is specific and unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'create-issue' or 'convert-to-sub-issue', which would be needed for a perfect score.

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 'create-issue' or 'convert-to-sub-issue'. It doesn't mention prerequisites, constraints, or typical scenarios for creating sub-issues versus standalone issues.

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

delete-cycleC

Delete a cycle from a project

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the cycle
cycle_idYesID of the cycle to delete

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action is 'Delete,' implying a destructive mutation, but fails to specify critical details such as whether deletion is permanent, requires specific permissions, affects related issues, or provides confirmation. This leaves significant gaps for safe agent operation.

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

Conciseness5/5

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

The description is a single, direct sentence with no wasted words, making it easy to parse and front-loaded with the core action. Every part of the sentence contributes to understanding the tool's purpose efficiently.

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

Completeness2/5

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

Given the complexity of a destructive operation with no annotations and no output schema, the description is insufficient. It lacks details on behavioral aspects like irreversibility, permissions, or side effects, and doesn't explain what happens upon success or failure, leaving the agent with incomplete context for reliable 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 description coverage is 100%, with clear descriptions for both parameters ('project_id' and 'cycle_id'). The description adds no additional meaning beyond the schema, such as explaining how to obtain these IDs or their format. Since the schema does the heavy lifting, the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action ('Delete') and resource ('a cycle from a project'), making the purpose evident. However, it doesn't distinguish this tool from other deletion tools like 'delete-intake-issue' or 'delete-module' by specifying what makes a cycle unique or the consequences of deletion.

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. For example, it doesn't mention prerequisites like needing to list cycles first or warn against using it if issues are attached, nor does it reference sibling tools like 'list-cycles' for selection or 'update-cycle' for modification instead.

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

delete-intake-issueC

Delete an intake issue

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the intake issue
issue_idYesID of the intake issue to delete

TDQS

C2.3/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. 'Delete an intake issue' implies a destructive, irreversible operation, but the description doesn't state whether this is permanent, requires specific permissions, what happens to related data, or if there are confirmation steps. For a destructive operation with zero annotation coverage, this is dangerously inadequate.

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 maximally concise - a single four-word phrase that communicates the core purpose without any wasted words. It's front-loaded with the essential information and contains no unnecessary elaboration or redundant phrasing.

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

Completeness2/5

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

For a destructive deletion tool with no annotations and no output schema, the description is severely incomplete. It doesn't address critical questions: Is deletion permanent? What permissions are required? What happens to associated data? What does success/failure look like? The description fails to provide the necessary context for safe and informed tool usage.

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

Parameters3/5

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

The input schema has 100% description coverage, with both parameters ('project_id' and 'issue_id') clearly documented in the schema itself. The description adds no additional parameter information beyond what's already in the schema. According to scoring rules, when schema_description_coverage is high (>80%), the baseline is 3 even with no param info in the description.

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

Purpose3/5

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

The description 'Delete an intake issue' clearly states the action (delete) and resource (intake issue), which is better than a tautology. However, it doesn't distinguish this tool from other deletion tools like 'delete-cycle', 'delete-issue-comment', or 'delete-state' - it merely restates the tool name without clarifying what makes an 'intake issue' different from other 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 Guidelines1/5

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

The description provides absolutely no guidance on when to use this tool versus alternatives. There are multiple sibling tools for managing issues (create-intake-issue, update-intake-issue, get-intake-issue, convert-to-issue) but no indication of when deletion is appropriate versus conversion or other operations. No prerequisites, warnings, or alternatives are mentioned.

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

delete-issue-commentC

Delete a comment from an issue

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the issue
issue_idYesID of the issue containing the comment
comment_idYesID of the comment to delete

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'Delete' implies a destructive operation, the description doesn't specify whether this action is reversible, what permissions are required, whether it triggers notifications, or what happens to the response (success/failure indicators). For a mutation tool with zero annotation coverage, this is a significant gap.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a simple deletion operation and gets straight to the point without unnecessary elaboration.

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

Completeness2/5

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

For a destructive mutation tool with no annotations and no output schema, the description is inadequate. It doesn't explain what happens after deletion (success confirmation, error conditions), doesn't mention permissions or side effects, and provides no context about the deletion's impact on the issue or related data. The tool needs more behavioral context given its complexity and lack of structured metadata.

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 all three parameters clearly documented in the schema itself. The description doesn't add any parameter semantics beyond what's already in the schema (project_id, issue_id, comment_id relationships). This meets the baseline of 3 when schema coverage is high.

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 ('Delete') and target ('a comment from an issue'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from similar deletion tools like 'delete-issue-worklog' or 'delete-intake-issue', which reduces its score from a perfect 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites (like needing comment_id from get-issue-comment), no indication of when deletion is appropriate versus updating, and no reference to sibling tools like 'update-issue-comment' or 'get-issue-comment' that might be relevant alternatives.

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

delete-issue-propertyC

Delete an issue property

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project
type_idYesID of the issue type
property_idYesID of the property to delete

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. 'Delete' implies a destructive mutation, but the description doesn't disclose behavioral traits like whether deletion is permanent, requires specific permissions, affects related data, or has side effects. For a destructive tool with zero annotation coverage, this is a significant gap in transparency.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero waste—'Delete an issue property' directly conveys the core action. It's appropriately sized and front-loaded, making it easy to parse quickly without unnecessary elaboration.

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

Completeness2/5

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

Given the tool's complexity (destructive mutation with 3 required parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects (e.g., irreversibility, permissions), usage context, or what happens post-deletion. For a delete operation, this minimal description leaves critical gaps for safe and correct tool 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 all three parameters (project_id, type_id, property_id) documented in the schema. The description adds no additional meaning about parameters beyond what's in the schema (e.g., format examples, relationships between IDs). With high schema coverage, the baseline score of 3 is appropriate as the schema does the heavy lifting.

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

Purpose3/5

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

The description 'Delete an issue property' clearly states the verb ('Delete') and resource ('issue property'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'delete-issue-property-option' or 'delete-issue-type', which could cause confusion about what specific resource is being deleted. It's adequate but lacks 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 doesn't mention prerequisites (e.g., needing an existing property), exclusions, or related tools like 'get-issue-property' or 'list-issue-properties' for verification. Without any usage context, the agent must infer everything from the tool name and schema alone.

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

delete-issue-typeC

Delete an issue type from a project

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the issue type
type_idYesID of the issue type to delete

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. 'Delete' implies a destructive mutation, but the description doesn't specify whether this operation is reversible, requires special permissions, has side effects (e.g., cascading deletions), or returns confirmation data. For a destructive tool with zero annotation coverage, this is a significant gap in transparency.

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

Conciseness5/5

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

The description is a single, efficient sentence that states the core functionality without unnecessary words. It's appropriately sized for a simple deletion operation and front-loads the essential information. Every word earns its place with zero waste.

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

Completeness2/5

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

For a destructive mutation tool with no annotations and no output schema, the description is inadequate. It doesn't address critical context like success/failure responses, error conditions, permissions required, or system behavior post-deletion. The agent lacks sufficient information to use this tool safely and effectively in complex scenarios.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters ('project_id' and 'type_id') clearly documented in the schema. The description doesn't add any parameter-specific information beyond what's already in the schema (e.g., format examples, relationship between parameters). With complete schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but doesn't need to.

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 ('Delete') and resource ('an issue type from a project'), making the purpose unambiguous. It distinguishes itself from siblings like 'delete-cycle' or 'delete-label' by specifying the resource type. However, it doesn't explicitly differentiate from 'delete-state' or other deletion tools beyond the resource name.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether the issue type must be unused), consequences (e.g., what happens to existing issues of that type), or alternatives (e.g., updating instead of deleting). Without annotations, this leaves the agent guessing about appropriate usage contexts.

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

delete-issue-worklogC

Delete a worklog entry from an issue

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the issue
issue_idYesID of the issue containing the worklog
worklog_idYesID of the worklog to delete

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool deletes a worklog, implying a destructive mutation, but fails to mention critical details like whether deletion is permanent, requires specific permissions, affects related data, or has side effects. This leaves significant gaps in understanding the tool's 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, direct sentence that efficiently conveys the core action without unnecessary words. It is front-loaded with the verb 'Delete' and avoids redundancy, making it highly concise and well-structured for quick comprehension.

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

Completeness2/5

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

Given the tool's destructive nature (deletion), lack of annotations, and absence of an output schema, the description is insufficient. It does not address behavioral risks, permission requirements, or what happens post-deletion (e.g., confirmation, error handling). For a mutation tool with no structured safety hints, more context is needed to ensure safe and correct usage.

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

Parameters3/5

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

The input schema has 100% description coverage, clearly documenting all three required parameters (project_id, issue_id, worklog_id) with their purposes. The description does not add any additional semantic context beyond what the schema provides, such as format examples or relationships between parameters, so it meets the baseline score for high schema coverage.

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

Purpose4/5

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

The description clearly states the action ('Delete') and resource ('a worklog entry from an issue'), making the purpose specific and understandable. However, it does not explicitly differentiate from sibling tools like 'delete-issue-comment' or 'delete-issue-link', which have similar deletion patterns but target different resources.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as 'update-issue-worklog' for modification or other deletion tools for different resources. It lacks context about prerequisites, permissions, or scenarios where deletion is appropriate, offering only basic functional information.

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

delete-labelC

Delete a label from a project

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the label
label_idYesID of the label to delete

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action is deletion but lacks critical details: whether this is irreversible, requires specific permissions, affects associated data (e.g., issues using the label), or returns confirmation. For a destructive operation, this is a significant gap in transparency.

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

Conciseness5/5

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

The description is a single, direct sentence with zero wasted words, front-loading the key action and resource. It efficiently communicates the core purpose without unnecessary elaboration, making it easy for an agent to parse quickly.

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

Completeness2/5

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

Given the tool's destructive nature, lack of annotations, and no output schema, the description is incomplete. It doesn't address safety concerns, return values, or error conditions, leaving the agent under-informed for a mutation tool in a context with many sibling operations.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters ('project_id', 'label_id') clearly documented in the schema. The description adds no additional meaning beyond implying these IDs are needed, so it meets the baseline of 3 where the schema does the heavy lifting without extra value from the description.

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 ('Delete') and resource ('a label from a project'), making the purpose immediately understandable. It distinguishes itself from siblings like 'create-label' and 'update-label' by specifying deletion, though it doesn't explicitly contrast with other deletion tools (e.g., 'delete-cycle', 'delete-module').

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 doesn't mention prerequisites (e.g., needing an existing label), exclusions, or comparisons to similar tools like 'delete-issue-property' or 'delete-state', leaving the agent to infer usage from context alone.

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

delete-moduleC

Delete a module from a project

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the module
module_idYesID of the module to delete

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states 'Delete' which implies a destructive mutation, but doesn't disclose critical behavioral traits such as whether deletion is permanent, requires specific permissions, affects associated issues, or provides confirmation. This is a significant gap for a destructive operation with zero annotation coverage.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero waste—it directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.

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

Completeness2/5

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

Given the complexity of a destructive deletion tool with no annotations and no output schema, the description is incomplete. It lacks information on behavioral risks, success/failure responses, or dependencies, which are crucial for safe and effective use by an AI agent in this context.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters ('project_id' and 'module_id') clearly documented in the schema. The description adds no additional meaning beyond the schema (e.g., format examples or relationships), so it meets the baseline of 3 where the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('Delete') and target ('a module from a project'), which is specific and unambiguous. However, it does not distinguish this tool from other deletion tools like 'delete-cycle' or 'delete-state', which follow a similar pattern, so it doesn't fully differentiate from siblings.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., module must exist), exclusions (e.g., cannot delete if module has issues), or sibling tools (e.g., 'delete-cycle' for cycles instead of modules), leaving the agent to infer usage from context alone.

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

delete-stateC

Delete a state from a project

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the state
state_idYesID of the state to delete

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'delete' implies a destructive mutation, the description doesn't specify whether this action is reversible, what permissions are required, or how it affects related entities (e.g., issues in that state). For a destructive operation with zero annotation coverage, this leaves critical behavioral traits undisclosed.

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, efficient sentence that front-loads the core action and target. There is no wasted verbiage or redundant information, making it easy to parse quickly. Every word earns its place by specifying the verb, resource, and context.

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

Completeness2/5

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

Given that this is a destructive mutation tool with no annotations and no output schema, the description is incomplete. It lacks critical context such as success/error responses, side effects (e.g., cascading deletions), or safety warnings. The high schema coverage doesn't compensate for the missing behavioral and output information needed for safe invocation.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters ('project_id' and 'state_id') clearly documented in the schema. The description doesn't add any semantic context beyond what the schema provides (e.g., format examples or relationships between parameters). With high schema coverage, the baseline score of 3 is appropriate—the description neither compensates nor detracts.

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 'Delete a state from a project' clearly states the action (delete) and target resource (state from a project), making the purpose immediately understandable. It distinguishes this tool from siblings like 'delete-cycle' or 'delete-module' by specifying 'state' as the resource. However, it doesn't fully differentiate from 'update-state' in terms of when deletion vs. modification is appropriate.

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 doesn't mention prerequisites (e.g., whether the state must be empty of issues), consequences (e.g., what happens to associated data), or when to choose deletion over updating a state. With siblings like 'update-state' and 'create-state', the lack of usage context is a significant gap.

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

get-cycleB

Get detailed information about a specific cycle

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the cycle
cycle_idYesID of the cycle to retrieve

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. While 'Get detailed information' implies a read-only operation, it doesn't specify what 'detailed information' includes, whether authentication is required, potential error conditions, or response format. This leaves significant behavioral aspects undocumented.

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 efficiently communicates the core purpose without unnecessary words. It's appropriately sized for a simple retrieval tool and front-loads the essential information ('Get detailed information').

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

Completeness3/5

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

For a simple read operation with 2 parameters and 100% schema coverage, the description is minimally adequate but lacks important context. Without annotations or output schema, it should ideally specify what 'detailed information' includes or mention authentication requirements. The completeness is borderline given the tool's straightforward nature.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already fully documents both parameters (project_id and cycle_id). The description doesn't add any parameter-specific information beyond what's in the schema, such as format examples or relationships between parameters. This meets the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the action ('Get detailed information') and resource ('about a specific cycle'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'list-cycles' or 'list-cycle-issues', which would require mentioning this retrieves a single cycle by ID rather than listing multiple cycles.

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 doesn't mention sibling tools like 'list-cycles' for listing multiple cycles or 'list-cycle-issues' for getting cycle-related issues, nor does it specify prerequisites like needing both project_id and cycle_id to retrieve a specific cycle.

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

get-intake-issueC

Get detailed information about a specific intake issue

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the intake issue
issue_idYesID of the intake issue to retrieve

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states 'Get detailed information' but doesn't disclose behavioral traits like whether this is a read-only operation, what 'detailed' includes (e.g., fields returned), error conditions, or rate limits. This leaves significant gaps for an agent to understand the tool's 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, efficient sentence that front-loads the core action ('Get detailed information'). There's no wasted verbiage, making it easy for an agent to parse quickly.

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

Completeness2/5

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

Given no annotations and no output schema, the description is incomplete. It doesn't explain what 'detailed information' includes in the return values, nor does it cover behavioral aspects like safety or errors. For a retrieval tool in a complex system with many siblings, this lacks sufficient context.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters clearly documented in the schema. The description adds no additional meaning beyond implying retrieval of a 'specific' issue, which aligns with the required IDs. Baseline 3 is appropriate as the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the verb ('Get') and resource ('detailed information about a specific intake issue'), making the purpose unambiguous. However, it doesn't differentiate from sibling tools like 'get-issue' or 'list-intake-issues', which would require more specificity about what makes an 'intake issue' distinct.

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 'get-issue' or 'list-intake-issues'. It mentions retrieving a 'specific' issue but doesn't clarify prerequisites, such as needing both project and issue IDs, or when this is preferred over other retrieval methods.

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

get-issueC

Get detailed information about a specific issue

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the issue
issue_idYesID of the issue to retrieve

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states 'Get detailed information,' implying a read-only operation, but does not disclose behavioral traits such as authentication needs, rate limits, error conditions, or what 'detailed information' includes (e.g., fields, format). This is inadequate for a tool with no 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, efficient sentence with no wasted words. It is front-loaded with the core purpose, making it easy to parse quickly, though it lacks depth due to its brevity.

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

Completeness2/5

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

Given no annotations and no output schema, the description is incomplete. It does not explain what 'detailed information' entails, potential return values, or error handling. For a read operation with rich sibling tools, more context is needed to guide the agent effectively.

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 clear descriptions for 'project_id' and 'issue_id' in the input schema. The description adds no additional meaning beyond the schema, such as parameter interactions or examples. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the verb ('Get') and resource ('detailed information about a specific issue'), making the purpose understandable. However, it does not explicitly differentiate from sibling tools like 'get-intake-issue' or 'get-issue-activity', which also retrieve issue-related information, leaving some 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?

The description provides no guidance on when to use this tool versus alternatives. With many sibling tools like 'list-issues' for multiple issues or 'get-intake-issue' for specific types, there is no indication of context, prerequisites, or exclusions, leaving the agent to infer usage.

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

get-issue-activityC

Get detailed information about a specific issue activity

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the issue
issue_idYesID of the issue containing the activity
activity_idYesID of the activity to retrieve

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states it 'gets detailed information', lacking behavioral details like whether it's read-only, requires permissions, returns structured data, or has rate limits. It doesn't disclose what 'detailed information' entails or any operational constraints.

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, efficient sentence that is front-loaded with the core action. There is no wasted verbiage, making it appropriately sized for the tool's purpose.

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

Completeness2/5

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

Given no annotations and no output schema, the description is incomplete for a tool with three required parameters. It fails to explain what 'detailed information' includes, return formats, or error conditions, leaving significant gaps for an AI agent to understand the tool's behavior fully.

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 three parameters. The description adds no additional meaning beyond implying retrieval of a specific activity, which aligns with the parameters but doesn't provide extra context like format examples or relationships between IDs.

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

Purpose4/5

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

The description clearly states the verb ('Get') and resource ('detailed information about a specific issue activity'), making the purpose understandable. It distinguishes from siblings like 'get-issue' or 'list-issue-activities' by specifying retrieval of a single activity, though it doesn't explicitly name these alternatives.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'list-issue-activities' or 'get-issue'. The description implies it's for retrieving a specific activity, but lacks explicit context, prerequisites, or exclusions.

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

get-issue-attachment-upload-urlC

Get a pre-signed URL for uploading file attachments to an issue

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the issue
issue_idYesID of the issue to attach file to
file_nameYesName of the file to upload
file_sizeYesSize of the file in bytes
content_typeYesMIME type of the file (e.g., 'image/png', 'application/pdf')

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool gets a URL but doesn't describe what happens next (e.g., the URL is time-limited, requires a separate HTTP PUT, or what permissions are needed). For a tool that enables file uploads, this lack of operational context is a significant gap.

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

Conciseness5/5

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

The description is a single, efficient sentence that states the core purpose without any wasted words. It's appropriately sized for a straightforward tool and front-loads the key information.

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

Completeness2/5

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

For a tool that enables file uploads with 5 required parameters and no annotations or output schema, the description is incomplete. It doesn't explain the workflow (e.g., this returns a URL that must be used separately), behavioral constraints (e.g., URL expiration), or what the output looks like. The agent would struggle to use this effectively without additional context.

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 5 parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't explain why all parameters are required or how they interact). The baseline of 3 is appropriate when the schema does all the work.

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

Purpose4/5

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

The description clearly states the verb ('Get') and resource ('pre-signed URL for uploading file attachments to an issue'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'list-issue-attachments' or explain how this tool fits into a multi-step upload workflow, which prevents a perfect score.

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 doesn't mention prerequisites (e.g., needing an existing issue), workflow context (e.g., this is step 1 of a 2-step upload process), or when other tools might be more appropriate (e.g., 'list-issue-attachments' for viewing existing attachments).

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

get-issue-commentB

Get detailed information about a specific comment

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the issue
issue_idYesID of the issue containing the comment
comment_idYesID of the comment to retrieve

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states the action without behavioral details. It doesn't disclose if this is a read-only operation, requires specific permissions, includes rate limits, or what 'detailed information' entails (e.g., fields returned, error handling). This leaves significant gaps for agent understanding.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero waste, front-loading the core action. It's appropriately sized for a simple retrieval tool, 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?

Given no annotations and no output schema, the description is minimal but adequate for a basic read operation. It covers the purpose but lacks details on behavior, output format, or error cases, which could hinder agent effectiveness in complex scenarios. It meets minimum viability with clear gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are well-documented in the schema. The description adds no additional meaning beyond implying retrieval of a 'specific comment,' which aligns with the schema but doesn't enhance parameter understanding. Baseline 3 is appropriate as the schema handles the heavy lifting.

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

Purpose4/5

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

The description clearly states the verb ('Get') and resource ('detailed information about a specific comment'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'list-issue-comments' or 'get-issue-activity', which reduces specificity.

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 'list-issue-comments' for multiple comments or 'get-issue-activity' for broader issue history. The description implies usage for retrieving a single comment but lacks explicit context or exclusions.

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

get-issue-propertyC

Get details of a specific issue property

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project
type_idYesID of the issue type
property_idYesID of the property to retrieve

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states this is a 'Get' operation, implying read-only behavior, but doesn't clarify permissions, error handling, or response format. For a tool with no annotations, this leaves significant gaps in understanding how it behaves beyond basic retrieval.

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, direct sentence with no wasted words. It's front-loaded with the core action ('Get details'), making it easy to parse quickly. This efficiency is ideal for a simple retrieval tool, though it could benefit from more context.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'details' are returned (e.g., property values, metadata), error cases, or dependencies on other tools. For a retrieval tool with three required parameters, more context is needed to ensure the agent can use it effectively.

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

Parameters3/5

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

The input schema has 100% description coverage, with clear parameter descriptions (e.g., 'ID of the project'). The description adds no additional parameter semantics beyond what the schema provides, such as explaining relationships between project_id, type_id, and property_id. With high schema coverage, a baseline score of 3 is appropriate.

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

Purpose3/5

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

The description 'Get details of a specific issue property' clearly states the verb ('Get') and resource ('issue property'), making the purpose understandable. However, it lacks specificity about what 'details' include and doesn't differentiate from sibling tools like 'get-issue' or 'list-issue-properties', which is a missed opportunity for clarity.

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 doesn't mention sibling tools like 'get-issue' (for broader issue details) or 'list-issue-properties' (for listing properties), leaving the agent to infer usage from the name alone, which is insufficient for effective tool selection.

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

get-issue-typeC

Get detailed information about a specific issue type

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the issue type
type_idYesID of the issue type to retrieve

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states it 'gets detailed information' without disclosing behavioral traits like authentication needs, rate limits, error conditions, or what 'detailed information' entails. It lacks context on permissions, response format, or potential side effects.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to understand quickly.

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

Completeness2/5

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

For a tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'detailed information' includes, how errors are handled, or other contextual details needed for effective use, leaving significant gaps despite the simple input schema.

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 both parameters (project_id and type_id) adequately. The description adds no additional meaning beyond implying retrieval requires these IDs, matching the baseline for high schema coverage without extra param details.

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

Purpose4/5

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

The description clearly states the verb 'Get' and resource 'detailed information about a specific issue type', making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get-issue' or 'list-issue-types', which would require more specific language about what makes this retrieval unique.

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 'get-issue' or 'list-issue-types'. The description implies retrieval of a specific issue type but doesn't clarify prerequisites, context, or exclusions for usage.

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

get-labelC

Get detailed information about a specific label

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the label
label_idYesID of the label to retrieve

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Get' implies a read operation, the description doesn't address important behavioral aspects like authentication requirements, rate limits, error conditions, or what 'detailed information' specifically includes. For a tool with zero annotation coverage, this is a significant gap.

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

Conciseness5/5

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

The description is extremely concise - a single sentence that directly states the tool's purpose with zero wasted words. It's appropriately sized for a simple retrieval tool and front-loads the essential information.

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

Completeness2/5

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

Given that there are no annotations and no output schema, the description is incomplete for a tool that presumably returns structured data. 'Detailed information' is vague, and there's no indication of what fields are returned, what format the response takes, or any error handling. For a retrieval tool with rich sibling tools, this leaves 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?

Schema description coverage is 100%, so the schema already fully documents both parameters (project_id and label_id). The description doesn't add any meaningful parameter semantics beyond what's in the schema, such as format examples or contextual usage of these IDs. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('detailed information about a specific label'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'list-labels' or 'create-label', which would be needed for a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There's no mention of when to use 'get-label' versus 'list-labels' or other sibling tools, nor any context about prerequisites or appropriate situations for its use.

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

get-moduleB

Get detailed information about a specific module

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the module
module_idYesID of the module to retrieve

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states this is a read operation ('get'), implying it's non-destructive, but doesn't disclose behavioral traits like authentication requirements, rate limits, error conditions, or what 'detailed information' includes. For a tool with zero annotation coverage, this is a significant gap.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, with zero wasted content.

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

Completeness3/5

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

Given the tool's low complexity (simple retrieval with 2 required parameters) and 100% schema coverage, the description is minimally adequate. However, with no annotations and no output schema, it lacks context about what 'detailed information' returns or behavioral constraints, leaving gaps for the 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%, with both parameters clearly documented in the schema. The description adds no additional parameter semantics beyond what's in the schema, so it meets the baseline of 3 where the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the verb ('get') and resource ('detailed information about a specific module'), making the purpose understandable. However, it doesn't distinguish this tool from similar siblings like 'get-project' or 'get-cycle', which follow the same pattern for different resources.

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. The description doesn't mention prerequisites like needing a project context or differentiate from other 'get' tools for related resources, leaving the agent to infer usage from the parameter names alone.

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

get-projectC

Get detailed information about a specific project

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project to retrieve

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves information, implying a read-only operation, but doesn't clarify aspects like authentication requirements, rate limits, error handling, or what 'detailed information' entails in the response. This is inadequate for a tool with zero annotation coverage.

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

Conciseness5/5

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

The description is a single, clear sentence that efficiently conveys the core purpose without unnecessary words. It is front-loaded with the essential action and resource, making it easy for an agent to parse quickly. There is no wasted verbiage or structural complexity.

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

Completeness2/5

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

For a read operation with no annotations and no output schema, the description is insufficient. It doesn't explain what 'detailed information' includes in the response, potential error conditions, or any behavioral constraints. Given the tool's simplicity (one parameter), it could be minimally adequate, but the lack of output details and behavioral context leaves 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 schema description coverage is 100%, with the single parameter 'project_id' fully documented in the schema as 'ID of the project to retrieve'. The description doesn't add any additional semantic context beyond this, such as format examples or sourcing instructions. Given the high schema coverage, a baseline score of 3 is appropriate.

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

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 detailed information') and the resource ('about a specific project'), making the purpose immediately understandable. It distinguishes from siblings like 'list-projects' by specifying retrieval of a single project rather than listing multiple. However, it doesn't specify what 'detailed information' includes, which prevents a perfect score.

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 doesn't mention sibling tools like 'list-projects' for browsing or 'get-project-total-worklogs' for specific metrics, nor does it specify prerequisites such as needing a project ID. This leaves the agent without contextual usage instructions.

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

get-project-total-worklogsB

Get total time logged across all issues in a project

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project to get total worklogs from

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states this is a read operation ('Get'), but doesn't disclose behavioral traits like authentication requirements, rate limits, whether it returns cached or real-time data, error conditions, or output format. For a tool with zero annotation coverage, this leaves significant gaps.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core purpose. Every word earns its place with no redundancy or unnecessary elaboration. It's appropriately sized for this simple 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?

For a simple read operation with one well-documented parameter, the description is minimally adequate. However, with no annotations and no output schema, it should ideally provide more behavioral context about what 'total time logged' means (e.g., time units, aggregation method) and what the return value looks like. The current description leaves the agent guessing about output format.

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 single parameter 'project_id' well-documented in the schema. The description adds no additional parameter semantics beyond what the schema provides. With high schema coverage, the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('total time logged across all issues in a project'). It distinguishes from siblings like 'list-issue-worklogs' by focusing on aggregated totals rather than individual worklog listings. However, it doesn't explicitly contrast with other project-related tools like 'get-project'.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites, timing considerations, or compare it to similar tools like 'list-issue-worklogs' or 'get-project'. The agent must infer usage from the purpose alone.

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

get-stateC

Get detailed information about a specific state

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the state
state_idYesID of the state to retrieve

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves 'detailed information,' which implies a read-only operation, but doesn't specify aspects like authentication needs, rate limits, error conditions, or what 'detailed information' entails (e.g., format, fields). This leaves significant gaps for a tool with no 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, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse quickly. Every part of the sentence earns its place by conveying essential information.

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

Completeness2/5

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

Given the complexity of retrieving state details in a project management context, the description is incomplete. No annotations are provided to clarify safety or behavior, and there's no output schema to describe the return values. The description alone doesn't adequately prepare an agent for effective use, especially compared to more detailed sibling tools.

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

Parameters3/5

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

The input schema has 100% description coverage, with clear documentation for both parameters ('project_id' and 'state_id'). The description adds no additional meaning beyond what the schema provides, such as explaining relationships between parameters or usage examples. With high schema coverage, the baseline score of 3 is appropriate as the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('detailed information about a specific state'), making it easy to understand what the tool does. However, it doesn't distinguish this tool from other 'get' siblings like 'get-cycle' or 'get-issue', which follow a similar pattern, so it doesn't fully differentiate from siblings.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, context, or comparison with other tools like 'list-states' or 'get-project', leaving the agent to infer usage based on the name alone.

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

list-cycle-issuesC

List all issues in a specific cycle

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the cycle
cycle_idYesID of the cycle to get issues from

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. While 'List all issues' implies a read-only operation, it doesn't disclose important behavioral traits like pagination, sorting, filtering capabilities, rate limits, authentication requirements, or what 'all' means in practice (e.g., archived issues included?). The description is minimal and leaves key operational questions unanswered.

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, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a simple listing operation and front-loads the essential information.

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

Completeness2/5

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

For a tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what format the issues are returned in, whether there are limitations on the listing, or how to handle potentially large result sets. Given the lack of structured metadata, the description should provide more operational context.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters clearly documented in the schema. The description adds no additional parameter information beyond what's already in the schema (project_id and cycle_id are self-explanatory from the schema descriptions). This meets the baseline of 3 when schema coverage is high.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('issues in a specific cycle'), making the purpose immediately understandable. However, it doesn't differentiate from similar sibling tools like 'list-issues' or 'list-module-issues', which would require mentioning the specific cycle context as a distinguishing factor.

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. With multiple list-related sibling tools (list-issues, list-module-issues, list-sub-issues, etc.), there's no indication of when this specific cycle-focused listing is appropriate versus broader listing tools.

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

list-cyclesC

List all cycles in a project with optional pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project to get cycles from
per_pageNoNumber of items per page (default: 100, max: 100)
cursorNoPagination cursor in format 'value:offset:is_prev' (optional)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only mentions optional pagination without detailing behavioral traits like read-only nature, rate limits, authentication needs, or response format. It fails to disclose critical operational aspects beyond the basic 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, efficient sentence that front-loads the core purpose ('List all cycles in a project') and includes a key feature ('with optional pagination') without any wasted words. It's appropriately sized for its complexity.

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

Completeness2/5

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

Given no annotations and no output schema, the description is incomplete for a list tool with pagination. It lacks details on response format, error handling, or behavioral constraints, leaving significant gaps in understanding how to effectively use 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 all parameters. The description adds no additional meaning beyond implying pagination support, which is already covered in the schema. This meets the baseline score when schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('List all cycles') and resource ('in a project'), which is specific and unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get-cycle' (which retrieves a single cycle) or 'list-cycle-issues' (which lists issues within a cycle), missing full sibling distinction.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'get-cycle' for a single cycle or 'list-cycle-issues' for cycle-specific issues. It lacks context about prerequisites or exclusions, offering only basic functional information.

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

list-intake-issuesC

List all intake/inbox issues in a project

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project to get intake issues from

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('List') but doesn't describe return format, pagination, sorting, error conditions, or whether it's a read-only operation. For a list tool with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized for a simple list operation and front-loads the essential information.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete for a list operation. It doesn't explain what 'intake/inbox issues' means, how results are structured, or any limitations (e.g., maximum items returned). For a tool with no structured behavioral data, the description should provide more context about the operation.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents the single parameter 'project_id'. The description adds no additional parameter information beyond what's in the schema, but since the schema is complete, the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('all intake/inbox issues in a project'), making the purpose specific and understandable. However, it doesn't explicitly distinguish this tool from sibling tools like 'list-issues' or 'get-intake-issue', which could cause confusion about scope or filtering differences.

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 'list-issues' or 'get-intake-issue'. It doesn't mention prerequisites, exclusions, or specific contexts where this tool is preferred, leaving the agent to infer usage from the name alone.

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

list-issue-activitiesB

List all activities/history for an issue

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the issue
issue_idYesID of the issue to get activities from

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states it's a list operation, implying read-only behavior, but doesn't disclose pagination, sorting, rate limits, permissions, or what 'activities/history' includes (e.g., comments, status changes). This leaves significant behavioral gaps for an agent.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero waste—it directly states the action and target. It's appropriately sized and front-loaded, 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?

Given no annotations and no output schema, the description is minimal but covers the basic purpose. For a simple list tool with full schema coverage, it's adequate but lacks depth on behavior (e.g., output format, constraints). It meets minimum viability but has clear gaps in context.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters clearly documented in the schema. The description doesn't add any meaning beyond the schema (e.g., format examples, relationships between project_id and issue_id). Baseline 3 is appropriate as the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('activities/history for an issue'), making the purpose immediately understandable. It doesn't explicitly distinguish from siblings like 'get-issue-activity' (singular vs. plural), but the verb+resource combination is specific enough for basic understanding.

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 'get-issue-activity' (singular) or 'list-issue-comments' (related but different resource). The description assumes the need is obvious, but no explicit context or exclusions are mentioned.

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

list-issue-attachmentsC

List all file attachments for an issue

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the issue
issue_idYesID of the issue to get attachments from

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it's a list operation, implying read-only behavior, but doesn't cover critical aspects like pagination, rate limits, authentication needs, error handling, or the format of returned attachments. This leaves significant gaps for a tool that interacts with data.

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, efficient sentence that directly states the tool's purpose without any fluff or redundancy. It's appropriately sized and front-loaded, making it easy to parse quickly.

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

Completeness2/5

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

Given the complexity of listing attachments (which may involve multiple files, formats, or metadata), no annotations, and no output schema, the description is insufficient. It doesn't explain what information is returned (e.g., file names, sizes, URLs), how results are structured, or any limitations, leaving the agent with incomplete operational context.

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

Parameters3/5

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

The input schema has 100% description coverage, clearly documenting both parameters ('project_id' and 'issue_id'). The description adds no additional semantic context beyond implying these are needed to identify the issue, so it meets the baseline of 3 where the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('file attachments for an issue'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'get-issue-attachment-upload-url' or 'list-issues', which might also involve attachments or issues, so it lacks full sibling distinction.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing issue), exclusions, or comparisons to siblings like 'list-issues' or 'get-issue', leaving the agent to infer usage context.

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

list-issue-commentsC

List all comments on a specific issue

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the issue
issue_idYesID of the issue to get comments from

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral insight. It states it's a list operation (implied read-only), but doesn't disclose critical traits like whether it returns all comments at once or paginates, what format comments are in (e.g., text, timestamps, authors), error conditions (e.g., invalid IDs), or rate limits. This leaves significant gaps for a tool that interacts with issue data.

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, efficient sentence that front-loads the core action ('List all comments') and target ('on a specific issue'). There's zero wasted text, making it easy to parse quickly. It appropriately sized for a straightforward list tool.

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

Completeness2/5

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

Given no annotations and no output schema, the description is incomplete for a tool with two required parameters. It lacks information on behavioral traits (e.g., pagination, error handling), output format, and usage context. While the purpose is clear, the agent would struggle to use this effectively without guessing about its behavior or relying on external knowledge.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters ('project_id', 'issue_id') clearly documented in the schema. The description adds no additional parameter semantics beyond implying these are required to identify the issue. This meets the baseline of 3 when the schema does the heavy lifting, but the description doesn't enhance understanding (e.g., explaining ID formats or relationships).

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('all comments on a specific issue'), making the purpose immediately understandable. It distinguishes itself from sibling tools like 'get-issue-comment' (singular) and 'create-issue-comment', but doesn't explicitly differentiate from other list operations like 'list-issues' or 'list-issue-activities' beyond the resource name.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing valid project/issue IDs), compare with similar tools like 'get-issue-comment' for single comments, or indicate any constraints (e.g., permissions, pagination). The agent must infer usage from the name and schema alone.

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

list-issue-propertiesB

List all custom properties for a specific issue type

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project
type_idYesID of the issue type to get properties for

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'List all' suggests a read-only operation that returns multiple items, it doesn't specify whether this requires authentication, what format the results come in, whether there's pagination, or any rate limits. For a tool with zero annotation coverage, this leaves significant behavioral questions unanswered.

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, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a simple list operation and front-loads the essential information without unnecessary elaboration.

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

Completeness3/5

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

For a read-only list operation with 2 documented parameters and no output schema, the description provides the basic purpose but lacks important context. It doesn't explain what format the properties are returned in, whether there are any constraints or prerequisites, or how this differs from similar property-related tools. The absence of annotations and output schema means more contextual information would be helpful.

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?

With 100% schema description coverage, both parameters are already documented in the schema. The description mentions 'specific issue type' which aligns with the 'type_id' parameter, but doesn't add meaningful semantic context beyond what the schema already provides. The baseline score of 3 reflects adequate but minimal value addition.

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 ('List all custom properties') and target resource ('for a specific issue type'), making the purpose immediately understandable. However, it doesn't differentiate itself from similar sibling tools like 'get-issue-property' or 'list-issue-property-options', which reduces its score from a perfect 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'get-issue-property' (singular) and 'list-issue-property-options' available, there's no indication of when this list operation is preferred over those other property-related operations.

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

list-issue-property-optionsB

List all options for a dropdown/select issue property

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project
property_idYesID of the property to get options for

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'List' implies a read operation, the description doesn't address potential side effects, authentication requirements, rate limits, or the format/structure of returned options. This leaves significant gaps for a tool that likely interacts with issue tracking data.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized for a straightforward list operation and front-loads the essential information.

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

Completeness3/5

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

For a read-only list tool with full schema coverage but no annotations or output schema, the description is minimally adequate. It clarifies the resource type but lacks details about return format, pagination, error conditions, or how it differs from similar sibling tools. The context signals suggest moderate complexity that warrants more 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%, with both parameters clearly documented in the input schema. The description adds no additional parameter information beyond what's already in the schema (e.g., it doesn't clarify what constitutes a 'dropdown/select' property or provide examples). This meets the baseline expectation when schema coverage is complete.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('options for a dropdown/select issue property'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'list-issue-properties' or 'get-issue-property', which could cause confusion about when to use this tool versus those alternatives.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'list-issue-properties' and 'get-issue-property' available, the agent lacks explicit direction on whether this tool is for enumerating property values versus property metadata, or any prerequisites for its use.

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

list-issuesB

List issues from a project

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project to get issues from
state_idNoFilter by state ID (optional)
priorityNoFilter by priority (optional)
assignee_idNoFilter by assignee ID (optional)
per_pageNoNumber of items per page (default: 100, max: 100)
cursorNoPagination cursor in format 'value:offset:is_prev' (optional)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states 'List issues' but does not disclose behavioral traits such as pagination behavior (implied by 'cursor' and 'per_page' parameters), rate limits, authentication needs, or whether it's read-only (likely, but not confirmed). The description adds minimal context beyond the basic 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, efficient sentence with zero waste. It is appropriately sized and front-loaded, directly stating the tool's purpose without unnecessary elaboration.

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

Completeness3/5

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

Given no annotations, no output schema, and 6 parameters with full schema coverage, the description is minimally adequate. It covers the basic purpose but lacks details on usage context, behavioral traits, or output format, leaving gaps for a list operation with filtering and pagination parameters.

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 all 6 parameters. The description adds no additional meaning beyond implying filtering (via 'from a project'), which is already covered by the schema. Baseline score of 3 is appropriate as the schema does the heavy lifting.

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

Purpose4/5

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

The description 'List issues from a project' clearly states the verb ('List') and resource ('issues'), specifying the scope ('from a project'). It distinguishes from siblings like 'get-issue' (singular) or 'list-sub-issues', but could be more specific about filtering capabilities versus other list tools (e.g., 'list-cycle-issues').

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'list-cycle-issues' or 'list-module-issues' is provided. The description implies usage for listing project issues but lacks explicit context, prerequisites, or exclusions, leaving the agent to infer based on parameter names alone.

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

list-issue-typesC

List all custom issue types in a project

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project to get issue types from

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states it's a listing operation but doesn't disclose behavioral traits like pagination, sorting, filtering capabilities, rate limits, authentication requirements, or what 'custom' specifically means versus standard issue types. This leaves significant gaps for an agent to understand how the tool behaves.

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, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a simple listing tool and front-loads the essential information.

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

Completeness2/5

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

Given no annotations, no output schema, and a simple but potentially nuanced operation (listing 'custom' issue types), the description is incomplete. It doesn't explain what constitutes 'custom' versus standard, the return format, or any behavioral constraints, leaving the agent with insufficient context to use the tool effectively.

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 the single 'project_id' parameter completely. The description adds no additional parameter information beyond what's in the schema, maintaining the baseline score of 3 for adequate but not enhanced parameter documentation.

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 ('List all') and resource ('custom issue types in a project'), providing a specific verb+resource combination. However, it doesn't explicitly distinguish this tool from similar siblings like 'list-issues' or 'get-issue-type', which reduces clarity in a crowded toolset.

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. With many sibling tools like 'get-issue-type' (singular) and 'list-issues', the description offers no context about when this specific listing tool is appropriate versus other retrieval methods.

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

list-issue-worklogsC

List all time logs for a specific issue

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the issue
issue_idYesID of the issue to get worklogs from

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states 'List all time logs' which implies a read-only operation, but doesn't disclose behavioral traits such as authentication requirements, rate limits, pagination (if any), error conditions, or the format of returned data. For a list operation with zero annotation coverage, this is a significant gap in transparency.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core action ('List all time logs') and target ('for a specific issue'). There is zero waste or redundancy, making it easy to parse quickly. Every word earns its place, adhering perfectly to conciseness standards.

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

Completeness2/5

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

Given the complexity (a list operation with 2 required parameters), no annotations, and no output schema, the description is incomplete. It doesn't explain what a 'time log' entails (e.g., fields like duration, user), how results are structured, or any limitations (e.g., max items). For a tool with no structured output information, the description should provide more context to be fully helpful.

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 description coverage is 100%, with both parameters ('project_id' and 'issue_id') clearly documented in the schema. The description adds no additional meaning beyond implying these are required for scoping, which is already covered. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('time logs for a specific issue'), making the purpose immediately understandable. It distinguishes from siblings like 'get-issue-worklog' (singular) or 'get-project-total-worklogs' (aggregate), though it doesn't explicitly mention these distinctions. However, it lacks specificity about scope (e.g., 'all' is implied but not stated) and doesn't fully differentiate from potential overlaps like 'list-issue-activities' which might include worklogs.

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 doesn't mention prerequisites (e.g., needing issue access), exclusions (e.g., not for aggregated data), or direct siblings like 'get-issue-worklog' for a single worklog. The context is implied ('for a specific issue'), but no explicit usage rules are given, leaving the agent to infer from the name and parameters alone.

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

list-labelsB

List all labels in a project with optional pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project to get labels from
per_pageNoNumber of items per page (default: 100, max: 100)
cursorNoPagination cursor in format 'value:offset:is_prev' (optional)

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only mentions optional pagination. It doesn't disclose whether this is a read-only operation, potential rate limits, authentication requirements, error conditions, or the format of returned data (e.g., list structure, label fields). For a list tool with zero annotation coverage, this leaves significant behavioral 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, efficient sentence that front-loads the core purpose ('List all labels in a project') and adds a useful detail ('with optional pagination'). There is zero waste or redundancy, making it appropriately sized for its function.

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

Completeness3/5

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

Given the tool's low complexity (list operation), 100% schema coverage, and no output schema, the description is minimally adequate but incomplete. It lacks behavioral details (e.g., read-only nature, data format) and usage context, which are important for an agent to use it correctly despite the good schema support.

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 all three parameters. The description adds no additional meaning beyond mentioning 'optional pagination', which is already covered by the 'cursor' parameter description. This meets the baseline of 3 when schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('all labels in a project'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'get-label' (singular) or 'list-issues' (different resource), which would be needed for a perfect score.

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 'get-label' for a single label or 'list-issues' for issues with labels. It mentions optional pagination but doesn't explain when pagination is needed or how it relates to other list tools in the context.

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

list-module-issuesB

List all issues in a specific module

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the module
module_idYesID of the module to get issues from

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'List all issues' implies a read-only operation, it doesn't specify whether this requires authentication, has rate limits, returns paginated results, or what format/issues are included. For a tool with zero annotation coverage, this leaves significant behavioral 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, efficient sentence that communicates the core purpose without unnecessary words. It's appropriately sized for a simple listing tool and front-loads the essential information ('List all issues').

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

Completeness3/5

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

For a simple read operation with 2 parameters and no output schema, the description is minimally adequate but lacks important context. It doesn't explain what constitutes an 'issue' in this system, whether results are filtered/sorted, or what authentication is required. With no annotations and no output schema, the description should provide more behavioral context.

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 description doesn't add any parameter information beyond what's already in the schema (which has 100% coverage). It mentions 'specific module' which aligns with module_id, but provides no additional context about parameter relationships, valid values, or usage patterns. With complete schema coverage, baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action ('List all issues') and target resource ('in a specific module'), providing a specific verb+resource combination. It distinguishes itself from generic 'list-issues' by specifying module scope, though it doesn't explicitly differentiate from 'list-cycle-issues' which has similar structure but different 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?

The description provides no guidance on when to use this tool versus alternatives like 'list-issues' (general listing) or 'list-cycle-issues' (cycle-specific listing). It doesn't mention prerequisites, context, or exclusions, leaving the agent to infer usage from the tool name alone.

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

list-modulesC

List all modules (sprints) in a project with optional pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project to get modules from
per_pageNoNumber of items per page (default: 100, max: 100)
cursorNoPagination cursor in format 'value:offset:is_prev' (optional)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'optional pagination', which adds some context about handling large result sets, but fails to describe key behaviors like rate limits, authentication needs, error conditions, or the format of returned data. For a list operation with no annotation coverage, this leaves significant gaps in understanding how the tool behaves.

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, efficient sentence that front-loads the core purpose ('List all modules in a project') and adds a useful detail ('with optional pagination') without any wasted words. Every part 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.

Completeness2/5

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

Given the complexity of a list operation with pagination, no annotations, and no output schema, the description is incomplete. It doesn't explain the return format, error handling, or behavioral constraints like rate limits. While the schema covers parameters well, the overall context for safe and effective use is lacking, especially compared to sibling tools that may have similar listing functions.

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%, meaning all parameters are documented in the input schema. The description adds minimal value beyond this by mentioning 'optional pagination', which loosely relates to the 'cursor' and 'per_page' parameters but doesn't provide additional semantic context. This meets the baseline score of 3 when the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('List all modules') and resource ('in a project'), making the purpose evident. It distinguishes modules as 'sprints' in parentheses, adding specificity. However, it doesn't explicitly differentiate from sibling tools like 'list-cycles' or 'list-module-issues', which is why it doesn't reach a score of 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, such as 'list-cycles' or 'get-module'. It mentions optional pagination, which hints at usage for large datasets, but lacks explicit when-to-use or when-not-to-use instructions, leaving the agent to infer context from sibling tool names alone.

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

list-project-membersC

List all members in a specific project

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project to get members from

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral insight. It implies a read operation but doesn't disclose critical details like pagination, sorting, rate limits, authentication requirements, or what data is returned (e.g., member roles, status). For a list tool with zero annotation coverage, this leaves significant gaps.

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

Conciseness5/5

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

The description is a single, efficient sentence that gets straight to the point with zero waste. It's appropriately sized for a simple list operation and front-loads the essential information without unnecessary elaboration.

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

Completeness2/5

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

For a list tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'members' entails (e.g., users, roles, permissions), return format, or behavioral constraints. While the schema covers the input well, the overall context for agent usage remains inadequate.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already fully documents the single parameter 'project_id'. The description adds no additional meaning beyond what's in the schema (e.g., format examples, validation rules, or how it relates to the operation). Baseline 3 is appropriate when schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('all members in a specific project'), making the purpose immediately understandable. It distinguishes from siblings like 'list-workspace-members' by specifying project scope, though it doesn't explicitly contrast with other list tools like 'list-issues' or 'list-projects'.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing project access), exclusions, or compare it to similar tools like 'list-workspace-members' or 'get-project' which might provide overlapping information.

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

list-projectsC

List all projects in the workspace with optional pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
per_pageNoNumber of items per page (default: 100, max: 100)
cursorNoPagination cursor in format 'value:offset:is_prev' (optional)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'optional pagination' which is useful, but doesn't describe authentication requirements, rate limits, error conditions, or what the output looks like (e.g., format, fields). For a list operation with zero annotation coverage, this is insufficient.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core purpose ('List all projects in the workspace') and adds the key behavioral note ('with optional pagination'). There's zero wasted verbiage.

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

Completeness2/5

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

For a list tool with no annotations and no output schema, the description is incomplete. It doesn't explain what fields are returned, whether results are sorted/filtered, or any workspace context. The mention of pagination helps, but more behavioral context is needed given the lack of structured metadata.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already fully documents both parameters (per_page with defaults/limits, cursor with format). The description adds no additional parameter semantics beyond mentioning 'optional pagination', which is already implied by the cursor parameter in the schema.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('projects in the workspace'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get-project' or 'list-project-members', which would require 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 'get-project' (for single project details) or 'list-project-members' (for project-specific members). There's no mention of prerequisites, context, or exclusions.

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

list-statesC

List all states in a project

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project to get states from

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the basic action without behavioral details. It doesn't disclose whether this is a read-only operation, if it requires authentication, what the output format looks like (list of states with fields), pagination behavior, or error conditions. For a tool with zero annotation coverage, this is insufficient.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action and resource, making it immediately scannable and appropriately sized for a simple list operation.

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

Completeness2/5

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

For a tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'states' are in this context (e.g., issue states like 'todo', 'in progress'), what fields are returned, or behavioral aspects like pagination. Given the complexity implied by sibling tools (state management), more 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 has 100% description coverage, with the single parameter 'project_id' clearly documented. The description adds no additional parameter semantics beyond implying the tool operates within a project context, which is already covered by the schema. This meets the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the verb 'list' and resource 'states in a project', making the purpose immediately understandable. It distinguishes from siblings like 'get-state' (singular) and 'create-state' (write operation), but doesn't explicitly contrast with other list operations like 'list-issues' or 'list-modules', keeping it from a perfect score.

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 doesn't mention prerequisites (e.g., needing a valid project_id), when not to use it, or how it differs from similar list operations in the sibling set, leaving the agent to infer usage context.

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

list-sub-issuesB

List all sub-issues of a parent issue

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project
parent_issue_idYesID of the parent issue to get sub-issues for

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states it's a list operation, implying read-only behavior, but doesn't disclose key traits like pagination, sorting, rate limits, authentication needs, or what happens if the parent issue has no sub-issues. This leaves gaps for an agent to understand execution nuances.

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 waste. It efficiently conveys the core purpose without unnecessary words, making it easy for an agent 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?

Given no annotations and no output schema, the description is minimal but adequate for a simple list tool. It covers the basic action but lacks details on behavior, output format, or error handling. For a tool with 2 parameters and 100% schema coverage, it's passable but not comprehensive.

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 clear parameter descriptions in the schema. The description adds no additional meaning beyond implying the tool uses a parent issue ID, which is already covered. This meets the baseline of 3 since the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('all sub-issues of a parent issue'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'list-issues' or 'get-issue', which might also retrieve issue data but with different scopes or filters.

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. For example, it doesn't clarify if this should be used instead of 'list-issues' with a parent filter or 'get-issue' for detailed parent data. The description lacks context about prerequisites or exclusions.

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

list-workspace-membersB

List all members in the workspace

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose behavioral traits like pagination, sorting, filtering, rate limits, authentication needs, or what data fields are returned. For a list operation with zero annotation coverage, this is inadequate.

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, efficient sentence that gets straight to the point with zero wasted words. It's perfectly front-loaded and appropriately sized for a simple list operation.

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

Completeness2/5

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

Given no annotations, no output schema, and multiple similar sibling tools, the description is insufficient. It doesn't explain what 'members' means in this context, how results are structured, or differentiate from project-level membership tools, leaving significant gaps for an AI agent.

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 0 parameters with 100% schema description coverage, so no parameter documentation is needed. The description appropriately doesn't mention parameters, earning a baseline score of 4 for not adding unnecessary information.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('all members in the workspace'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'list-project-members', which could cause confusion 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 like 'list-project-members' or other list tools. The description lacks context about workspace vs. project membership, prerequisites, or exclusions.

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

remove-issue-from-cycleC

Remove an issue from a cycle

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the cycle
cycle_idYesID of the cycle to remove issue from
issue_idYesID of the issue to remove from the cycle

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states the action ('Remove') which implies a mutation, but doesn't disclose behavioral traits like whether this requires specific permissions, if the removal is reversible, what happens to issue data (e.g., moved to backlog), or error conditions (e.g., if issue isn't in the cycle).

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, efficient sentence with zero waste. It's front-loaded with the core action and target, making it immediately understandable without unnecessary elaboration.

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

Completeness2/5

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

For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't cover behavioral aspects (permissions, reversibility, side effects) or return values, leaving significant gaps for an AI agent to understand the tool's full context and implications.

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 all three parameters clearly documented in the schema. The description adds no additional meaning about parameters beyond what the schema provides (e.g., format of IDs, relationships between project/cycle/issue). Baseline 3 is appropriate when schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('Remove') and target ('an issue from a cycle'), providing specific verb+resource. It distinguishes from sibling 'remove-issue-from-module' by specifying 'cycle' instead of 'module', but doesn't explicitly differentiate from other deletion tools like 'delete-cycle' or 'delete-issue'.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., issue must be in a cycle first), when-not scenarios (e.g., if issue is blocked), or direct alternatives like 'delete-cycle' for removing entire cycles versus just issues from them.

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

remove-issue-from-moduleC

Remove an issue from a module

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the module
module_idYesID of the module to remove issue from
issue_idYesID of the issue to remove from the module

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states a removal action but doesn't disclose critical behavioral traits: whether this is a destructive deletion or a reversible disassociation, what permissions are required, if there are side effects (e.g., affecting linked data), or what the response looks like. For a mutation tool with zero annotation coverage, this is inadequate.

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, direct sentence with zero wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place without redundancy.

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

Completeness2/5

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

For a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral outcomes (e.g., success/failure indicators, error conditions), side effects, or usage context relative to siblings. Given the complexity of issue-module relationships, more guidance is needed for effective agent 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?

Schema description coverage is 100%, with all three parameters clearly documented in the schema (project_id, module_id, issue_id). The description adds no additional semantic context beyond what the schema provides, such as format examples or relationships between parameters. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('Remove') and the target ('an issue from a module'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'remove-issue-from-cycle' or 'delete-module', but the verb+resource combination is specific enough to infer its 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?

The description provides no guidance on when to use this tool versus alternatives like 'delete-issue' or 'remove-issue-from-cycle'. It lacks context about prerequisites, such as whether the issue must already be in the module, or what happens to the issue after removal (e.g., deletion vs. disassociation).

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

transfer-issuesC

Transfer issues from one cycle to another

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project
cycle_idYesID of the source cycle to transfer issues from
new_cycle_idYesID of the target cycle to transfer issues to

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. 'Transfer issues' implies a mutation operation, but it doesn't specify whether this requires special permissions, if the transfer is reversible, what happens to the source cycle (e.g., are issues removed or copied), or any rate limits. This leaves significant behavioral gaps for a tool that modifies data.

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, efficient sentence that states the core functionality without unnecessary words. It's front-loaded with the key action and resources, making it easy to parse quickly.

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

Completeness2/5

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

For a mutation tool with no annotations and no output schema, the description is insufficient. It lacks details on behavioral aspects (e.g., permissions, reversibility), output format, error conditions, or how it interacts with sibling tools. Given the complexity of transferring issues between cycles, more context is needed 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?

Schema description coverage is 100%, with all three parameters clearly documented in the schema itself. The description doesn't add any parameter details beyond what the schema provides, such as explaining relationships between cycles or project context. This meets the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the action ('transfer issues') and resources involved ('from one cycle to another'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'add-issues-to-cycle' or 'remove-issue-from-cycle', which also involve cycle-issue relationships, so it doesn't achieve full distinction.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, what happens to issues in the source cycle after transfer, or how it differs from tools like 'add-issues-to-cycle' or 'remove-issue-from-cycle' in the sibling list, leaving the agent with no usage context.

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

update-cycleC

Update an existing cycle in a project

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the cycle
cycle_idYesID of the cycle to update
nameNoUpdated name of the cycle (optional)
descriptionNoUpdated description of the cycle (optional)
start_dateNoUpdated start date of the cycle (YYYY-MM-DD format, optional)
end_dateNoUpdated end date of the cycle (YYYY-MM-DD format, optional)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Update an existing cycle' which implies a mutation operation, but doesn't describe what happens during the update (e.g., partial vs. full updates, validation rules, permission requirements, or what the response contains). For a mutation tool with zero annotation coverage, this is insufficient behavioral context.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, with every word earning its place. No structural issues or wasted space.

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

Completeness2/5

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

Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't address behavioral aspects like what happens on update failure, whether changes are reversible, or what the tool returns. For a 6-parameter update operation in a system with many sibling tools, more context is needed to help the agent use 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 description coverage is 100%, with all 6 parameters clearly documented in the input schema. The description adds no additional parameter information beyond what the schema already provides (e.g., it doesn't explain parameter relationships or constraints). According to the rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description.

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 ('Update') and resource ('an existing cycle in a project'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'update-issue' or 'update-module', which would require a 5. The purpose is unambiguous but lacks sibling distinction.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing cycle), exclusions, or comparisons to sibling tools like 'create-cycle' or 'delete-cycle'. This leaves the agent without contextual usage instructions.

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

update-intake-issueC

Update an existing intake issue

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the intake issue
issue_idYesID of the intake issue to update
nameNoUpdated title (optional)
description_htmlNoUpdated HTML description (optional)
priorityNoUpdated priority (optional)

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the action ('update') without disclosing behavioral traits such as required permissions, whether updates are reversible, side effects on related data, or error handling. It lacks crucial context 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, efficient sentence with zero wasted words. It's front-loaded and appropriately sized for the tool's complexity, making it easy to parse quickly.

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

Completeness2/5

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

For a mutation tool with 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects like permissions or side effects, and while the schema covers parameters well, the overall context for safe and effective use is lacking.

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 all 5 parameters with descriptions and an enum for priority. The description adds no additional meaning beyond implying optional updates, which is already clear from the schema's optional fields. Baseline 3 is appropriate as the schema does the heavy lifting.

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

Purpose3/5

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

The description 'Update an existing intake issue' clearly states the action (update) and resource (intake issue), but it's vague about what specific fields can be updated and doesn't differentiate from sibling tools like 'update-issue' or 'update-intake-issue' (which appears to be itself). It provides basic purpose but lacks specificity 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 on when to use this tool versus alternatives like 'update-issue' or 'convert-to-issue' is provided. The description doesn't mention prerequisites, exclusions, or contextual cues for selection among the many update-related siblings in the list.

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

update-issueC

Update an existing issue in a project, delete just update the issue title with 'delete' or 'remove'

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the issue
issue_idYesID of the issue to update
nameNoUpdated title of the issue (optional)
description_htmlNoHTML description of the issue (required by Plane API)
priorityNoUpdated priority of the issue (optional)
state_idNoUpdated state ID of the issue (optional)
assigneesNoUpdated array of user IDs to assign to this issue (optional)
labelsNoUpdated array of label IDs to assign to this issue (optional)

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions that updating the title with 'delete' or 'remove' triggers deletion, which is a critical behavioral trait. However, it fails to disclose other important behaviors: whether this is a mutation (implied but not stated), what permissions are needed, how partial updates work, or what the response looks like. The deletion hint adds some value but is insufficient for a mutation tool.

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

Conciseness2/5

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

The description is a single run-on sentence that mixes update instructions with a cryptic deletion hint, lacking clear structure. It's not front-loaded with essential information, and the deletion advice feels tacked on without proper context. While brief, it's inefficient and could be better organized for clarity.

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

Completeness2/5

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

Given the complexity (8 parameters, mutation tool) and lack of annotations or output schema, the description is incomplete. It hints at deletion behavior but misses critical context: no explanation of what 'update' entails beyond the title, no error handling, no response format, and no integration with sibling tools. For a tool with this scope, more guidance is needed.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all 8 parameters. The description adds no meaningful semantic information beyond what's in the schema—it doesn't explain parameter interactions, defaults, or constraints. The mention of title updates for deletion is confusing and doesn't clarify the 'name' parameter's role. Baseline 3 is appropriate as the schema does the heavy lifting.

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

Purpose3/5

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

The description states the action ('Update an existing issue') and resource ('in a project'), which provides a basic purpose. However, it's vague about what fields can be updated beyond the title, and the mention of deletion via title update is confusing rather than clarifying. It doesn't clearly distinguish from sibling tools like 'update-intake-issue' or 'update-issue-comment'.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing issue), exclusions, or comparisons to sibling tools like 'create-issue' for new issues or other update tools for specific issue components. The deletion hint is misleading rather than helpful for usage decisions.

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

update-issue-commentC

Update an existing comment on an issue

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the issue
issue_idYesID of the issue containing the comment
comment_idYesID of the comment to update
commentYesThe updated comment text (will be converted to HTML)
accessNoComment visibility: INTERNAL (default) or EXTERNAL

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Update' implies a mutation, the description doesn't address critical behaviors: whether it requires specific permissions, if it overwrites or merges with existing content, what happens to the HTML conversion mentioned in the schema, or if there are rate limits. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.

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 zero wasted words. It's front-loaded with the core action and target, making it immediately understandable. Every word earns its place by conveying essential information without redundancy or fluff, which is ideal for tool selection.

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

Completeness2/5

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

Given the complexity of a mutation tool with 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects like permissions, side effects, or response format, nor does it provide usage guidance. While the schema handles parameters well, the description fails to compensate for the lack of annotations and output schema, leaving the agent with insufficient context for safe and 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 description adds no parameter semantics beyond what the input schema provides. With 100% schema description coverage, the schema already documents all 5 parameters thoroughly, including their purposes, required status, and the enum for 'access'. The description doesn't explain relationships between parameters (e.g., that 'project_id', 'issue_id', and 'comment_id' form a hierarchy) or provide usage examples, so it meets the baseline but adds no extra 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 action ('Update') and target ('an existing comment on an issue'), making the purpose immediately understandable. It distinguishes from sibling tools like 'create-issue-comment' and 'delete-issue-comment' by specifying it's for updating existing comments. However, it doesn't explicitly differentiate from other update tools like 'update-issue' or 'update-issue-worklog' beyond the comment focus.

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 doesn't mention prerequisites (e.g., needing existing comment IDs), compare to 'create-issue-comment' for new comments, or specify scenarios where updating is appropriate versus deleting and recreating. Without this context, an agent might struggle to choose between this and sibling tools.

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

update-issue-propertyC

Update an existing issue property

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project
type_idYesID of the issue type
property_idYesID of the property to update
nameNoInternal name for the property
display_nameNoDisplay name for the property
descriptionNoDescription of the property
is_requiredNoWhether this property is required
is_multiNoWhether multiple values are allowed

TDQS

C2.3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is an update operation, implying mutation, but fails to describe any behavioral traits: it doesn't mention permission requirements, whether changes are reversible, potential side effects (e.g., on existing data), rate limits, or what the response might contain. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.

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

Conciseness5/5

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

The description is extremely concise—a single sentence with no wasted words. It's front-loaded with the core action ('Update an existing issue property'), though this brevity comes at the cost of completeness. Every word serves a purpose, even if that purpose is minimal.

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

Completeness2/5

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

Given the tool's complexity (8 parameters, mutation operation, no output schema, and no annotations), the description is incomplete. It doesn't explain what an 'issue property' is, how updates affect related data, what values are returned, or any error conditions. For a tool that modifies properties with multiple inputs, this minimal description leaves critical gaps for an agent to operate effectively.

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 all 8 parameters clearly documented in the schema itself (e.g., 'project_id' as 'ID of the project'). The description adds no parameter-specific information beyond what the schema provides. According to the rules, when schema coverage is high (>80%), the baseline score is 3 even with no param info in the description, which applies here.

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

Purpose2/5

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

The description 'Update an existing issue property' is essentially a tautology that restates the tool name 'update-issue-property' with minimal elaboration. It specifies the verb ('update') and resource ('issue property'), but provides no additional context about what an 'issue property' entails or how this differs from similar tools like 'update-issue' or 'create-issue-property'. This is a basic restatement rather than a helpful clarification.

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

Usage Guidelines1/5

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

The description provides absolutely no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (like needing an existing property), contrast with sibling tools (e.g., 'create-issue-property' for new properties, 'delete-issue-property' for removal, or 'update-issue' for broader issue modifications), or specify any contextual constraints. This leaves the agent with no usage direction.

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

update-issue-property-optionC

Update an option for a dropdown/select issue property

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project
property_idYesID of the property
option_idYesID of the option to update
nameNoName of the option
descriptionNoDescription of the option
sort_orderNoSort order for the option
is_defaultNoWhether this is the default option

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Update' implies a mutation, but doesn't cover critical aspects like required permissions, whether changes are reversible, error handling (e.g., invalid IDs), or response format. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, with zero waste, making it easy for an agent to parse quickly.

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

Completeness2/5

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

Given the tool's complexity (mutation with 7 parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't address behavioral traits, usage context, or output expectations, leaving significant gaps for the agent to navigate this update operation safely and effectively.

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 description coverage is 100%, with all 7 parameters well-documented in the schema itself (e.g., 'project_id' as 'ID of the project'). The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline of 3 where the schema does the heavy lifting without compensating for gaps.

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 ('Update') and the resource ('an option for a dropdown/select issue property'), which is specific and understandable. However, it doesn't explicitly differentiate this tool from sibling tools like 'update-issue-property' or 'create-issue-property-option', which handle related but distinct operations on issue properties.

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 doesn't mention prerequisites (e.g., existing property/option), exclusions, or compare it to siblings like 'create-issue-property-option' (for new options) or 'update-issue-property' (for property-level changes), leaving the agent to infer usage from context alone.

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

update-issue-typeC

Update an existing issue type

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the issue type
type_idYesID of the issue type to update
nameNoUpdated name of the issue type (optional)
descriptionNoUpdated description (optional)

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. While 'update' implies a mutation operation, the description doesn't disclose important behavioral traits: whether this requires specific permissions, what happens to existing data not mentioned in parameters, whether changes are reversible, error conditions, or rate limits. This is a significant gap for a mutation tool with zero annotation coverage.

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

Conciseness5/5

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

The description is extremely concise at just four words, with zero wasted language. It's front-loaded with the essential action and resource, making it immediately understandable. Every word earns its place in conveying the core purpose without unnecessary elaboration.

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

Completeness2/5

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

For a mutation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't address behavioral aspects like permissions needed, side effects, error handling, or what constitutes a successful update. The agent would need to guess about important operational context that should be disclosed for a tool that modifies data.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already fully documents all four parameters (project_id, type_id, name, description) with their types and optional/required status. The description adds no additional parameter semantics beyond what's in the schema, so the baseline score of 3 is appropriate when the schema does all the parameter documentation work.

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

Purpose3/5

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

The description 'Update an existing issue type' clearly states the verb ('update') and resource ('issue type'), making the purpose understandable. However, it doesn't differentiate this tool from other update tools in the sibling list (like update-issue, update-cycle, etc.), leaving ambiguity about what specifically distinguishes issue type updates from other entity updates.

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. With multiple update tools in the sibling list (update-issue, update-cycle, update-state, etc.), there's no indication of when issue type updates are appropriate versus other entity updates, nor any mention of prerequisites or constraints for using this tool.

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

update-issue-worklogC

Update an existing worklog entry

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the issue
issue_idYesID of the issue containing the worklog
worklog_idYesID of the worklog to update
durationNoUpdated time logged in hours (optional)
descriptionNoUpdated description of the work done (optional)

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the basic action without disclosing behavioral traits like required permissions, whether updates are reversible, rate limits, or what happens to unspecified fields. It mentions 'update' which implies mutation but lacks details on side effects or response format, leaving significant gaps for an agent.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero waste—it directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly, though this conciseness comes at the cost of detail.

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

Completeness2/5

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

Given no annotations, no output schema, and a mutation tool with 5 parameters, the description is incomplete. It lacks information on behavioral context, error handling, return values, and usage guidelines, making it inadequate for an agent to fully understand how to invoke this tool correctly in complex scenarios.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all 5 parameters. The description adds no meaning beyond the schema, as it doesn't explain parameter relationships or usage nuances. Baseline score of 3 is appropriate since the schema does the heavy lifting, but the description doesn't compensate with additional insights.

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

Purpose3/5

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

The description 'Update an existing worklog entry' clearly states the action (update) and resource (worklog entry), but it's vague about scope and doesn't distinguish from siblings like 'update-issue' or 'update-issue-comment'. It specifies the type of resource but lacks detail about what a worklog entry represents in this context.

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 'create-issue-worklog' or 'delete-issue-worklog', nor does it mention prerequisites such as needing existing project, issue, and worklog IDs. The description implies usage for updates but offers no context on appropriate scenarios or exclusions.

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

update-labelC

Update an existing label in a project

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the label
label_idYesID of the label to update
nameNoUpdated name of the label (optional)
descriptionNoUpdated description of the label (optional)
colorNoUpdated color code for the label (optional)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It states the tool updates a label but fails to mention critical aspects like required permissions, whether changes are reversible, rate limits, or error conditions. This leaves significant gaps in understanding the tool's 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, direct sentence with no wasted words. It is front-loaded and efficiently conveys the core action, making it easy to parse quickly.

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

Completeness2/5

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

Given the tool's complexity as a mutation operation with no annotations and no output schema, the description is insufficient. It lacks details on behavior, error handling, or return values, making it incomplete for safe and effective use by an AI 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%, so the schema already documents all parameters. The description does not add any meaning beyond the schema, such as explaining parameter interactions or constraints. However, with high schema coverage, a baseline score of 3 is appropriate as the schema carries the burden.

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 ('Update') and resource ('an existing label in a project'), making the purpose evident. However, it does not differentiate from sibling tools like 'create-label' or 'delete-label' beyond the verb, nor does it specify what aspects of the label can be updated, which prevents a perfect score.

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. The description lacks context such as prerequisites (e.g., needing an existing label), exclusions, or comparisons to siblings like 'create-label' or 'delete-label', leaving the agent without usage direction.

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

update-moduleC

Update an existing module in a project

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the module
module_idYesID of the module to update
nameNoUpdated name of the module (optional)
descriptionNoUpdated description of the module (optional)
start_dateNoUpdated start date of the module (YYYY-MM-DD format, optional)
target_dateNoUpdated target end date of the module (YYYY-MM-DD format, optional)
statusNoUpdated status of the module (optional)
leadNoUpdated user ID of the module lead (optional)
membersNoUpdated array of user IDs for module members (optional)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Update an existing module' which implies a mutation operation, but it doesn't cover critical aspects like required permissions, whether changes are reversible, error handling, or what the response looks like. This is inadequate for a mutation tool with zero annotation coverage.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core action ('Update an existing module') without any wasted words. It's appropriately sized for the tool's complexity, earning a perfect score for conciseness.

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

Completeness2/5

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

Given the tool's complexity (9 parameters, mutation operation) and lack of annotations and output schema, the description is insufficient. It doesn't explain behavioral traits, usage context, or return values, leaving significant gaps for the agent to operate effectively with this 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?

The schema description coverage is 100%, with all parameters well-documented in the input schema (e.g., optional fields like 'name', 'description', and 'status' with enum values). The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline score of 3 for high schema coverage.

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

Purpose4/5

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

The description clearly states the verb ('Update') and resource ('an existing module in a project'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'update-cycle' or 'update-issue', which follow the same pattern, so it lacks sibling differentiation for a perfect score.

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 doesn't mention prerequisites (e.g., needing an existing module), exclusions, or comparisons to sibling tools like 'create-module' or 'delete-module', leaving the agent to infer usage from context alone.

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

update-stateC

Update an existing state in a project

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project containing the state
state_idYesID of the state to update
nameNoUpdated name of the state (optional)
descriptionNoUpdated description of the state (optional)
colorNoUpdated color code for the state (optional)
groupNoUpdated state group (optional)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. 'Update an existing state' implies a mutation operation, but the description doesn't specify permission requirements, whether changes are reversible, error conditions (e.g., invalid state_id), or what happens to unspecified fields (partial vs. full updates). For a mutation tool with zero annotation coverage, this leaves significant behavioral 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, efficient sentence with zero wasted words. It's front-loaded with the core action ('Update an existing state') and includes just enough context ('in a project'). There's no unnecessary elaboration or repetition.

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

Completeness2/5

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

For a mutation tool with 6 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what 'updating a state' means in this context (workflow state? project state?), doesn't mention behavioral aspects like permissions or side effects, and provides no guidance on usage. The schema handles parameter documentation well, but the description fails to compensate for missing behavioral and contextual 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%, providing clear documentation for all 6 parameters including optional fields and enum values for 'group'. The description adds no parameter-specific information beyond what's in the schema (it doesn't mention any parameters at all). With complete schema coverage, the baseline score of 3 is appropriate as the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the verb ('Update') and resource ('an existing state in a project'), making the purpose immediately understandable. It distinguishes itself from sibling tools like 'create-state' and 'delete-state' by specifying it updates existing states rather than creating or deleting them. However, it doesn't specify what aspects of the state can be updated beyond the generic term.

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. While it's clear this updates states (unlike 'create-state' or 'delete-state'), there's no mention of prerequisites (e.g., needing an existing state ID), constraints, or comparison to similar update tools like 'update-issue' or 'update-label'. The agent must infer usage from the name alone.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 76 tool updates
    • First observedadd-issues-to-cycle
    • First observedadd-issues-to-module
    • First observedconvert-to-issue
    • First observedconvert-to-sub-issue
    • First observedcreate-cycle
    • First observedcreate-intake-issue
    • First observedcreate-issue
    • First observedcreate-issue-comment
    • First observedcreate-issue-link
    • First observedcreate-issue-property
    • First observedcreate-issue-property-option
    • First observedcreate-issue-type
    • First observedcreate-issue-worklog
    • First observedcreate-label
    • First observedcreate-module
    • First observedcreate-state
    • First observedcreate-sub-issue
    • First observeddelete-cycle
    • First observeddelete-intake-issue
    • First observeddelete-issue-comment
    • First observeddelete-issue-link
    • First observeddelete-issue-property
    • First observeddelete-issue-type
    • First observeddelete-issue-worklog
    • First observeddelete-label
    • First observeddelete-module
    • First observeddelete-state
    • First observedget-cycle
    • First observedget-intake-issue
    • First observedget-issue
    • First observedget-issue-activity
    • First observedget-issue-attachment-upload-url
    • First observedget-issue-comment
    • First observedget-issue-link
    • First observedget-issue-property
    • First observedget-issue-type
    • First observedget-label
    • First observedget-module
    • First observedget-project
    • First observedget-project-total-worklogs
    • First observedget-state
    • First observedlist-cycle-issues
    • First observedlist-cycles
    • First observedlist-intake-issues
    • First observedlist-issue-activities
    • First observedlist-issue-attachments
    • First observedlist-issue-comments
    • First observedlist-issue-links
    • First observedlist-issue-properties
    • First observedlist-issue-property-options
    • First observedlist-issue-types
    • First observedlist-issue-worklogs
    • First observedlist-issues
    • First observedlist-labels
    • First observedlist-module-issues
    • First observedlist-modules
    • First observedlist-project-members
    • First observedlist-projects
    • First observedlist-states
    • First observedlist-sub-issues
    • First observedlist-workspace-members
    • First observedremove-issue-from-cycle
    • First observedremove-issue-from-module
    • First observedtransfer-issues
    • First observedupdate-cycle
    • First observedupdate-intake-issue
    • First observedupdate-issue
    • First observedupdate-issue-comment
    • First observedupdate-issue-link
    • First observedupdate-issue-property
    • First observedupdate-issue-property-option
    • First observedupdate-issue-type
    • First observedupdate-issue-worklog
    • First observedupdate-label
    • First observedupdate-module
    • First observedupdate-state

TDQS

B3.2/5.0
Disambiguation5/5

Every tool has a clearly distinct purpose targeting specific resources and actions, with no ambiguity. For example, tools like 'add-issues-to-cycle' and 'remove-issue-from-cycle' are complementary but distinct, and operations like 'create-issue' versus 'create-sub-issue' are well-defined.

Naming Consistency5/5

Tool names follow a highly consistent verb-noun pattern with hyphens throughout (e.g., create-issue, list-issues, update-cycle). All tools adhere to this convention, making them predictable and readable without any mixing of styles.

Tool Count2/5

With 76 tools, the count is excessive for most agent use cases, likely causing cognitive overload and inefficiency. While the domain is comprehensive, this many tools feels heavy and could overwhelm users or agents trying to navigate the API surface.

Completeness5/5

The tool set provides complete CRUD/lifecycle coverage for the project management domain, including issues, cycles, modules, states, labels, and more. There are no obvious gaps; every major operation (create, read, update, delete, list) is covered for all key resources.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    A
    maintenance
    A Model Context Protocol server that enables AI interfaces to seamlessly interact with Plane's project management system, allowing management of projects, issues, states, and other work items through a standardized API.
    46
    121
    306
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server and automation watcher for Plane project management, enabling Claude to interact with Plane via 40+ tools and auto-trigger on labeled issues.
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/disrex-group/plane-mcp-server'

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