Skip to main content
Glama
DiversioTeam

ClickUp MCP Server

by DiversioTeam

ClickUp MCP Server

CI codecov Python 3.10+ License: MIT

A Model Context Protocol (MCP) server that enables AI assistants to interact with ClickUp's task management API. This server provides comprehensive task management capabilities through natural language, focusing on essential project workflows rather than ClickUp's full feature set.

Built by the Diversio team for streamlined AI-powered task management.

πŸš€ What This Server Provides

βœ… Core Task Management

  • Task CRUD Operations - Create, read, update, and delete tasks

  • Task Organization - Navigate spaces, folders, and lists

  • Task Search & Filtering - Find tasks by various criteria

  • Comments & Collaboration - Read and create comments on tasks

  • User & Assignment Management - List users, find by name/email, assign to tasks

  • Status Management - Update and track task statuses

βœ… Productivity Features

  • Bulk Operations - Update or move multiple tasks at once

  • Time Tracking - Log time and view tracked hours

  • Task Templates - Create tasks from predefined templates (bug report, feature request, code review)

  • Task Chains - Create sequences of dependent tasks

  • Team Analytics - View workload distribution and completion metrics

βœ… Flexible ID Support

  • Standard ClickUp IDs (abc123)

  • Custom ID patterns (gh-123, bug-456)

  • ClickUp URLs (https://app.clickup.com/t/abc123)

  • Hash format (#123)

❌ What's NOT Included

This server focuses on task management essentials. Not supported:

  • ClickUp Docs/Documents

  • Whiteboards

  • Dashboards

  • Automations/Workflows

  • Goals/Targets

  • File/Attachment management

  • Webhook management

  • Advanced custom field operations

  • Calendar views

  • Forms integration

API Coverage: ~30-40% of ClickUp's full API, covering the most common task management workflows.

Related MCP server: ClickUp MCP

Installation

# Install from GitHub (latest)
uvx --from git+https://github.com/DiversioTeam/clickup-mcp clickup-mcp

# Or from PyPI (when published)
uvx clickup-mcp

Development Installation

git clone https://github.com/DiversioTeam/clickup-mcp
cd clickup-mcp
uv sync
uv run clickup-mcp

Configuration

API Key Setup

# Set your ClickUp API key
uvx clickup-mcp set-api-key YOUR_API_KEY_HERE

# Or set environment variable
export CLICKUP_MCP_API_KEY=your_api_key

Getting Your ClickUp API Key

Step-by-step instructions:

  1. Log in to ClickUp at https://app.clickup.com

  2. Navigate to Settings:

    • Click your avatar/profile picture in the bottom left corner

    • Select "Settings" from the dropdown menu

  3. Go to Apps section:

  4. Generate API Token:

    • Click the "Generate" button to create a new personal API token

    • Important: This token will only be shown once!

  5. Copy and Save:

    • Copy the generated token immediately

    • Store it securely (password manager recommended)

    • Configure it using: uvx clickup-mcp set-api-key YOUR_TOKEN_HERE

Important Notes:

  • Personal API tokens have the same permissions as your user account

  • Keep your token secure - treat it like a password

  • If you lose the token, you'll need to regenerate a new one

  • Tokens don't expire but can be revoked in the same settings page

Usage with AI Assistants

Claude Code (CLI)

Add to ~/.config/claude-code/mcp-settings.json:

{
  "servers": {
    "clickup": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/DiversioTeam/clickup-mcp.git", "clickup-mcp"]
    }
  }
}

Claude Desktop

Add to your Claude Desktop config file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json Linux: ~/.config/claude/claude_desktop_config.json

{
  "mcpServers": {
    "clickup": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/DiversioTeam/clickup-mcp.git", "clickup-mcp"]
    }
  }
}

VS Code

VS Code has excellent MCP support through both native integration and extensions. Multiple setup options available:

VS Code now has built-in MCP support with GitHub Copilot and Agent Mode. Add to your workspace:

Create .vscode/mcp.json in your project:

{
  "servers": {
    "clickup": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/DiversioTeam/clickup-mcp.git", "clickup-mcp"]
    }
  }
}

Or add to VS Code User Settings:

  1. Open Command Palette (Ctrl+Shift+P / Cmd+Shift+P)

  2. Run "Preferences: Open User Settings (JSON)"

  3. Add to settings:

{
  "mcp": {
    "servers": {
      "clickup": {
        "command": "uvx",
        "args": ["--from", "git+https://github.com/DiversioTeam/clickup-mcp.git", "clickup-mcp"]
      }
    }
  }
}

Option 2: VS Code Extensions with MCP Support

Copilot MCP Extension:

  1. Install "Copilot MCP" from VS Code Marketplace

  2. Search, manage, and install MCP servers directly from VS Code

  3. The extension will help you configure the ClickUp MCP server

Cline (AI Coding Assistant):

  1. Install "Cline" extension for advanced AI coding with MCP support

  2. Configure ClickUp MCP server through Cline's settings

Managing MCP Servers in VS Code

  1. Open Command Palette (Ctrl+Shift+P / Cmd+Shift+P)

  2. Run "MCP: List Servers" to view configured servers

  3. Select ClickUp server to Start/Stop/Restart or view logs

  4. Use "MCP: Show Output" for debugging

Verify VS Code Setup

  1. Ensure your ClickUp API key is configured: uvx clickup-mcp set-api-key YOUR_KEY

  2. In VS Code, ask GitHub Copilot: "Can you list my ClickUp spaces using MCP tools?"

  3. Check MCP server status with Command Palette β†’ "MCP: List Servers"

Available Tools (28 Tools)

πŸ“ Task Management

  • create_task - Create new tasks

  • get_task - Get task details (supports various ID formats)

  • update_task - Update task properties

  • delete_task - Delete tasks

  • create_task_from_template - Create from predefined templates

  • create_task_chain - Create dependent task sequences

πŸ” Task Discovery

  • list_tasks - List tasks with filtering options

  • search_tasks - Search tasks by text and criteria

  • get_subtasks - Get all subtasks of a parent

  • get_task_comments - Get comments on tasks

  • create_task_comment - Create comments on tasks

πŸ‘₯ Assignment & Status

  • get_task_status - Get current task status

  • update_task_status - Change task status

  • get_assignees - List task assignees

  • assign_task - Assign users to tasks

πŸ—‚οΈ Navigation

  • list_spaces - List all spaces in workspace

  • list_folders - List folders in a space

  • list_lists - List all lists

  • find_list_by_name - Find lists by name

⚑ Bulk Operations

  • bulk_update_tasks - Update multiple tasks at once

  • bulk_move_tasks - Move multiple tasks to different lists

⏱️ Time Tracking

  • get_time_tracked - Get time tracked for users/periods

  • log_time - Log time spent on tasks

πŸ“Š Analytics

  • get_team_workload - See task distribution across team members

  • get_task_analytics - Get velocity metrics and completion rates

πŸ‘€ User Management

  • list_users - List all users in workspace

  • get_current_user - Get current authenticated user details

  • find_user_by_name - Find users by name or email

Example Usage

Natural Language Commands

Ask your AI assistant:

"Create a bug report for login issues in the Development list"
"Show me all high-priority tasks assigned to me"
"Move all completed tasks from Sprint 1 to Archive"
"Log 2 hours on task gh-123 for debugging"
"What's our team's current workload?"
"Create a task chain: Design β†’ Implement β†’ Test β†’ Deploy"
"Add a comment to task GH-3761 saying 'testing complete'"
"Get all comments on the bug report task"
"Comment on task abc123 and assign it to John"

Task Templates

"Create a bug report template for the payment processing issue"
"Use the code review template for PR #456"
"Create a feature request for dark mode"

Analytics Queries

"What's our task completion rate this month?"
"Who has the most tasks assigned?"
"Show me time tracked on the API project"

Development

Running Tests

# Run all tests (62 tests)
uv run pytest

# Run with coverage
uv run pytest --cov=clickup_mcp

# Run specific test
uv run pytest tests/test_client.py::test_create_task

Code Quality

# Check code style
uv run ruff check .

# Format code
uv run ruff format .

# Type checking
uv run mypy src/

Troubleshooting

Check Configuration

# Verify API key is configured
uv run clickup-mcp check-config

# Test API connection
uv run clickup-mcp test-connection

Debug Mode

# Run with debug logging
uv run clickup-mcp --debug

Local Testing with Claude Code

# Add the server for local testing with Claude Code CLI
claude mcp add clickup-local -- uv run clickup-mcp

# Then you can test the functionality immediately
# Example: List spaces, create tasks, add comments, etc.

Technical Limitations

  • Rate Limiting: No built-in rate limiting (ClickUp: 100 req/min)

  • Pagination: Limited pagination support

  • Caching: No response caching implemented

  • Custom Fields: Models exist but limited tool support

  • Error Recovery: Basic error handling without sophisticated retry

Contributing

We welcome contributions! Focus areas:

Priority Improvements

  • Enhanced error handling and retry logic

  • Response caching implementation

  • Better pagination support

  • Expanded custom field support

How to Contribute

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/improvement)

  3. Make changes and add tests

  4. Ensure all tests pass (uv run pytest)

  5. Run linting (uv run ruff check .)

  6. Submit a Pull Request

Development Setup

git clone https://github.com/yourusername/clickup-mcp
cd clickup-mcp
uv sync
uv run pytest  # Ensure tests pass

Support

License

MIT License - see LICENSE file for details.

Acknowledgments

Available Tools

28 tools
assign_taskC

Assign users to a task

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesTask ID
user_idsYesUser IDs to assign

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. It implies a mutation ('assign') but doesn't specify permissions required, whether assignments are additive or replace existing ones, error handling (e.g., invalid user IDs), or side effects. 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 with zero waste. 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?

Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits (e.g., permissions, idempotency), output format, or error cases, which are critical for safe and effective use. The high schema coverage doesn't 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 ('task_id' and 'user_ids') adequately. The description adds no additional meaning beyond what the schema provides, such as format examples or constraints (e.g., user IDs must be valid). 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 ('assign') and resource ('users to a task'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'get_assignees' (which retrieves assignees) or 'update_task' (which might include assignment), so it 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., task must exist), exclusions (e.g., cannot assign to completed tasks), or comparisons to siblings like 'update_task' or 'bulk_update_tasks', 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.

bulk_move_tasksC

Move multiple tasks to a different list

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idsYesList of task IDs to move
target_list_idYesTarget list ID

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 ('Move') but doesn't cover critical aspects like whether this is a destructive operation, permission requirements, rate limits, or what happens to task dependencies. 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 with no wasted words, clearly stating the tool's purpose. It is appropriately sized and front-loaded, making it easy to understand at a glance.

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 traits, error handling, return values, or how it interacts with sibling tools, making it insufficient 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 input schema already documents both parameters ('task_ids' and 'target_list_id') adequately. The description adds no additional semantic context beyond what the schema provides, such as format examples or constraints, meeting 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 ('Move') and resources ('multiple tasks to a different list'), making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'bulk_update_tasks' or 'update_task', which could also involve moving tasks, leaving room for slight ambiguity.

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

Usage 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 'bulk_update_tasks' for moving tasks or individual tools like 'update_task'. It lacks context on prerequisites, limitations, or scenarios where this bulk operation is preferred over others.

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

bulk_update_tasksC

Update multiple tasks at once

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idsYesList of task IDs to update
updatesYesUpdates to apply (status, priority, assignees, etc.)

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 'update' implying mutation but doesn't disclose behavioral traits like permissions required, whether updates are atomic, error handling for invalid IDs, rate limits, or response format. 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 with zero waste. It's front-loaded and appropriately sized for the tool's purpose, making it easy to parse 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 this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral aspects, error cases, or what the tool returns, leaving significant gaps for an AI agent to understand its full context and usage.

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

Parameters3/5

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

Schema description coverage is 100%, with clear parameter descriptions in the schema (e.g., 'List of task IDs to update', 'Updates to apply'). The description adds no additional meaning beyond what the schema provides, such as examples or constraints, so it 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 'Update multiple tasks at once' clearly states the verb ('update') and resource ('tasks'), with 'multiple' and 'at once' indicating bulk operation. It distinguishes from siblings like 'update_task' (singular) and 'bulk_move_tasks' (different operation), but doesn't specify what fields can be updated, which keeps 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?

No explicit guidance on when to use this tool versus alternatives like 'update_task' (for single tasks) or 'bulk_move_tasks' (for moving rather than updating). The description implies bulk scenarios but lacks context on prerequisites, limitations, or comparisons to sibling tools.

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

create_taskC

Create a new task in a specific list

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTask title
descriptionNoTask description
list_nameNoName of the list to create task in
list_idNoID of the list (alternative to list_name)
assigneesNoUser IDs to assign
priorityNoPriority (1=urgent, 2=high, 3=normal, 4=low)
due_dateNoDue date (ISO 8601 format)
time_estimateNoTime estimate (e.g., '2h 30m')

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 'Create a new task' which implies a write/mutation operation, but doesn't disclose behavioral traits like required permissions, whether the task is immediately active, error handling (e.g., if list doesn't exist), or response format. 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 with zero wasteβ€”it directly states the tool's purpose without 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 this is a mutation tool (creating tasks) with no annotations and no output schema, the description is incomplete. It doesn't cover success/error responses, side effects (e.g., notifications to assignees), or constraints (e.g., max tasks per list). For a tool with 8 parameters and complex sibling relationships, 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 8 parameters with clear descriptions (e.g., priority levels explained). The description adds no additional meaning beyond implying 'list_name' or 'list_id' is needed for the 'specific list' context, but this is already covered in schema. 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 task') and target resource ('in a specific list'), which is a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'create_task_from_template' or 'create_task_chain', which also create tasks but with different approaches or contexts.

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_task_from_template' (for templated tasks) or 'bulk_create_tasks' (not listed but implied by bulk operations). It mentions 'in a specific list' but doesn't clarify prerequisites (e.g., list must exist) or exclusions (e.g., not for recurring tasks).

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

create_task_chainC

Create a chain of dependent tasks

ParametersJSON Schema
NameRequiredDescriptionDefault
tasksYesList of tasks to create in sequence
list_idYesList ID for the tasks
auto_linkNoAutomatically link tasks as dependencies

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 mentions creating 'dependent tasks' but doesn't explain how dependencies work, what 'auto_link' does, permissions required, whether creation is atomic, or error handling. 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, efficient sentence that directly states the tool's purpose without redundancy. It's front-loaded and wastes no words, making it easy to parse quickly. 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?

Given the complexity of creating task chains with dependencies, no annotations, and no output schema, the description is insufficient. It doesn't explain behavioral aspects like dependency management, error cases, or return values. For a tool with multiple parameters and mutation behavior, 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 parameters are well-documented in the schema. The description adds no additional meaning beyond implying sequential creation ('in sequence' from schema) and dependency linking. It doesn't clarify parameter interactions or provide examples, meeting 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 ('chain of dependent tasks'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'create_task' or 'create_task_from_template', which also create tasks but with different approaches. The description is specific 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, when to choose it over 'create_task' for single tasks or 'bulk_update_tasks' for modifications, or any context about task dependencies. Usage is implied but not explicitly stated.

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

create_task_commentC

Create a comment on a task

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesTask ID
comment_textYesComment text
assigneeNoUser ID to assign (optional)
notify_allNoNotify all assignees (default: true)

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. 'Create a comment' implies a write/mutation operation, but the description doesn't address permissions needed, whether comments are editable/deletable, notification behavior (despite the 'notify_all' parameter), or what happens on success/failure. 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 extremely concise - a single sentence with no wasted words. It's front-loaded with the core purpose and contains no unnecessary elaboration. This is an example of efficient communication that respects the agent's processing constraints.

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 constitutes a valid comment, how notifications work, what permissions are required, or what the tool returns. Given the complexity of creating a comment (which involves notifications, assignments, and task relationships), more context is needed for proper agent usage.

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

Parameters3/5

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

Schema description coverage is 100%, so all parameters are documented in the schema. The description adds no additional parameter context beyond what's in the schema (task_id, comment_text, optional assignee, notify_all default). 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 'Create a comment on a task' clearly states the action (create) and target resource (comment on a task). It's specific enough to understand the basic function, though it doesn't explicitly differentiate from sibling tools like 'get_task_comments' or explain what makes this operation unique beyond being a creation action.

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 (e.g., needing an existing task), when to choose this over other comment-related operations, or any contextual constraints. The agent must 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_task_from_templateC

Create a task from a template

ParametersJSON Schema
NameRequiredDescriptionDefault
template_nameYesTemplate name
customizationsNoCustomizations to apply to template
list_idYesList ID for the new task

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. It states 'create' which implies a write operation, but doesn't disclose behavioral traits such as permissions needed, whether it's idempotent, error handling, or what the output 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 with zero waste. 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 this is a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what happens after creation, error conditions, or how it differs from similar tools. For a tool that creates tasks, more context is needed to guide 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%, so the schema already documents all three parameters. The description adds no meaning beyond what's in the schemaβ€”it doesn't explain how 'template_name' relates to available templates, what 'customizations' can include, or how 'list_id' is used. 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 'Create a task from a template' clearly states the verb ('create') and resource ('task'), but it's vague about what 'from a template' entails and doesn't distinguish this tool from its sibling 'create_task'. It's better than a tautology but lacks 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?

The description provides no guidance on when to use this tool versus alternatives like 'create_task' or 'create_task_chain'. There's no mention of 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.

delete_taskC

Delete a task

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesTask ID to delete

TDQS

C2/5.0
Behavior1/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. 'Delete a task' implies a destructive, irreversible operation, but the description doesn't clarify whether deletion is permanent, requires specific permissions, affects related data (like subtasks or comments), or has confirmation steps. For a destructive tool with zero annotation coverage, this is critically 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 extremely concise at just three words, with zero wasted language. It's front-loaded with the core action and resource. While this conciseness comes at the cost of completeness, the description itself is structurally efficient with every word serving a purpose.

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

Completeness1/5

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

For a destructive operation tool with no annotations and no output schema, the description is completely inadequate. It doesn't explain what happens when a task is deleted, whether the action can be undone, what permissions are required, or what the response looks like. Given the complexity and risk of a delete operation, this minimal description fails to provide necessary 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?

Schema description coverage is 100%, with the single parameter 'task_id' clearly documented in the schema. The description adds no additional parameter information beyond what the schema provides. According to scoring rules, when schema coverage is high (>80%), the baseline score is 3 even with no parameter details in the description.

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

Purpose2/5

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

The description 'Delete a task' is a tautology that restates the tool name without adding meaningful context. While it clearly indicates the action (delete) and resource (task), it doesn't differentiate this tool from sibling tools like 'bulk_move_tasks' or 'update_task' beyond the basic verb. It lacks specificity about what constitutes a 'task' in this system.

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 no guidance on when to use this tool versus alternatives. With sibling tools like 'bulk_move_tasks', 'update_task', and 'update_task_status' available, there's no indication of when deletion is appropriate versus modification, archiving, or other operations. No prerequisites, constraints, or alternative suggestions are mentioned.

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

find_list_by_nameC

Find a list by name

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesList name to search for
space_idNoSpace ID to search in

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. 'Find a list by name' implies a read-only search operation, but it does not specify whether it returns a single list or multiple matches, error handling for non-existent lists, authentication requirements, or rate limits. This leaves significant gaps in understanding the tool's behavior beyond basic intent.

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 'Find a list by name' is extremely conciseβ€”a single, front-loaded sentence that directly conveys the core action without unnecessary words. It efficiently uses minimal text to state the purpose, earning its place without 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?

Given the tool's complexity (a search operation with 2 parameters), lack of annotations, and no output schema, the description is incomplete. It does not explain what is returned (e.g., list object, error messages), search semantics, or how it differs from sibling tools. This leaves the agent with insufficient context to use the tool effectively beyond basic parameter input.

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 ('List name to search for', 'Space ID to search in'). The tool description does not add any additional semantic context beyond what the schema provides, such as search behavior or format details. With high schema coverage, the baseline score of 3 is appropriate, as the description does not compensate but also does not detract.

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 'Find a list by name' clearly states the verb ('find') and resource ('list'), making the purpose understandable. However, it lacks specificity about what 'find' entails (e.g., exact match, partial search) and does not distinguish it from sibling tools like 'list_lists' or 'find_user_by_name', which follow a similar pattern. This results in a vague but functional purpose statement.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as 'list_lists' (which might list all lists without filtering) or other search-related tools. It does not mention prerequisites, exclusions, or contextual cues for selection, leaving the agent to infer usage based on 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.

find_user_by_nameC

Find a user by name or email

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName or email to search for
workspace_idNoWorkspace ID (optional, uses default if not provided)

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's function but doesn't cover critical aspects like whether it's read-only, its response format, error handling, or performance characteristics (e.g., search precision). This is inadequate for a tool with no annotation support.

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 purpose and appropriately sized for the tool's complexity, earning full marks 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 lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., user object, list, or error), search behavior (e.g., exact match, partial), or usage constraints. For a query tool with no structured support, 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 documents both parameters thoroughly. The description adds no additional meaning beyond what's in the schema, such as search behavior or format details. 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 ('Find') and resource ('user'), and specifies the search criteria ('by name or email'). However, it doesn't differentiate from sibling tools like 'list_users' or 'get_current_user', which prevents 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 like 'list_users' or 'get_current_user'. It lacks context about use cases, exclusions, or prerequisites, leaving the agent with minimal direction.

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

get_assigneesC

Get assignees of a task

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesTask ID

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 a read operation ('Get'), implying it is likely non-destructive, but does not specify permissions required, rate limits, error conditions, or the format of returned data (e.g., list of assignees with details). For a tool with zero annotation coverage, this lack of behavioral context is a significant gap, though not contradictory.

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 with a single sentence, 'Get assignees of a task', which is front-loaded and wastes no words. It directly communicates the core function without unnecessary elaboration, making it efficient and easy to parse for an AI agent.

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

Completeness2/5

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

Given the tool's complexity (a read operation with one parameter), lack of annotations, and no output schema, the description is incomplete. It does not explain what 'assignees' means, the return format, or any behavioral aspects like error handling. This leaves gaps that could hinder the agent's ability to invoke the tool correctly, especially without structured data to compensate.

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 'task_id' documented as 'Task ID'. The description does not add any meaning beyond this, such as format examples or constraints. Given the high schema coverage, the baseline score of 3 is appropriate, as the schema adequately handles parameter semantics without extra description value.

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 assignees of a task' clearly states the verb ('Get') and resource ('assignees of a task'), making the purpose understandable. However, it lacks specificity about what 'assignees' entails (e.g., users, roles, or teams) and does not differentiate from sibling tools like 'get_task' or 'list_users', which might provide overlapping or related information. This results in a vague but functional purpose statement.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With sibling tools such as 'get_task' (which might include assignee details), 'list_users', and 'search_tasks', there is no indication of context, prerequisites, or exclusions. This absence of usage instructions leaves the agent to infer applicability, which is inadequate 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_current_userA

Get details of the currently authenticated user

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It indicates a read operation ('Get details'), which implies non-destructive behavior, but does not specify authentication requirements, rate limits, or return format details. The description adds basic context but lacks depth on behavioral traits.

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

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 without unnecessary words. Every part of the sentence earns its place by specifying the action, resource, and context, 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.

Completeness3/5

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

Given the tool's simplicity (0 parameters, no output schema), the description is adequate but minimal. It covers the basic purpose and context but lacks details on authentication needs, return values, or error handling. For a tool with no annotations or output schema, more completeness would enhance usability.

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

Parameters4/5

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

The input schema has 0 parameters with 100% description coverage, so the schema fully documents the lack of inputs. The description does not add parameter information beyond this, which is acceptable as there are no parameters to explain. A baseline of 4 is appropriate for zero-parameter tools.

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

Purpose5/5

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

The description clearly states the specific action ('Get details') and resource ('currently authenticated user'), distinguishing it from sibling tools like 'find_user_by_name' or 'list_users' which operate on different user scopes. It precisely communicates that this tool retrieves information about the user associated with the current authentication context.

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

Usage Guidelines4/5

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

The description implies usage context by specifying 'currently authenticated user,' suggesting this tool should be used when needing details about the authenticated user rather than other users. However, it does not explicitly state when not to use it or name alternatives like 'list_users' or 'find_user_by_name,' which could provide more comprehensive guidance.

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

get_subtasksC

Get all subtasks of a parent task

ParametersJSON Schema
NameRequiredDescriptionDefault
parent_task_idYesParent task ID

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 a read operation ('Get'), implying it's likely safe, but doesn't cover critical aspects like permissions required, rate limits, pagination, error handling, or return format. For a 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, clear sentence with zero wasteβ€”it directly states the tool's purpose without unnecessary words. It's appropriately sized for a simple retrieval tool and front-loaded with 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 tool's simplicity (1 parameter, 100% schema coverage) but lack of annotations and output schema, the description is incomplete. It doesn't explain what 'subtasks' entail (e.g., structure, fields returned) or behavioral traits like error cases. For a tool with no structured output or safety hints, more context is needed 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 the single parameter 'parent_task_id' fully documented in the schema. The description adds no additional meaning beyond implying the parameter is required to fetch subtasks. This meets the baseline 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 verb ('Get') and resource ('subtasks of a parent task'), making the purpose specific and understandable. It distinguishes from siblings like 'get_task' (single task) and 'list_tasks' (all tasks), though it doesn't explicitly name these alternatives. A 5 would require explicit sibling differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'get_task' or 'list_tasks'. It doesn't mention prerequisites (e.g., needing a valid parent task ID) or exclusions. The minimal context implies usage for retrieving subtasks but offers no decision-making help.

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

get_taskC

Get task details by ID (supports various ID formats including project codes)

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesTask ID, custom ID (e.g., gh-123), or URL
include_subtasksNoInclude subtasks in response

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 it mentions ID format support, it doesn't describe what 'task details' includes, whether authentication is required, error behavior for invalid IDs, rate limits, or response format. For a read operation with no 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 - a single sentence that efficiently communicates the core functionality and an important constraint about ID formats. Every word earns its place with no wasted verbiage 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?

Given no annotations and no output schema, the description is incomplete for this tool's complexity. It doesn't explain what 'task details' includes, the response format, error conditions, or how this differs from other task retrieval tools. For a core read operation in a system with many sibling tools, 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 fully documents both parameters. The description adds marginal value by mentioning 'various ID formats including project codes' which provides context for the task_id parameter, but doesn't add meaningful semantics beyond what the schema provides. 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 tool's purpose: 'Get task details by ID' specifies the verb (get) and resource (task details), and it adds useful context about ID format support. However, it doesn't explicitly differentiate from sibling tools like 'get_subtasks' or 'list_tasks' that also retrieve task information.

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 sibling tools that retrieve task information (get_subtasks, list_tasks, search_tasks, get_task_comments, etc.), there's no indication of when this specific 'get by ID' 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.

get_task_analyticsC

Get analytics for tasks (velocity, completion rate, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idYesSpace ID
period_daysNoPeriod in days to analyze

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 lacks behavioral details. It doesn't disclose whether this is a read-only operation (implied by 'Get'), what permissions are needed, rate limits, or what the analytics output format looks like (e.g., aggregated metrics vs. raw 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 with zero waste. It's front-loaded with the core purpose and includes examples (velocity, completion rate) that add value without verbosity.

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, no output schema, and 2 parameters, the description is incomplete. It doesn't explain what the analytics output contains (e.g., metrics format, timeframes), behavioral constraints, or how it differs from similar sibling tools, leaving significant gaps for an 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 both parameters (space_id, period_days). The description adds no additional meaning about parameters beyond implying analytics are for tasks, which is redundant with the tool name. 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 'Get' and the resource 'analytics for tasks', specifying the type of analytics (velocity, completion rate, etc.). It distinguishes from siblings like get_task (single task) or get_team_workload (team focus), but doesn't explicitly differentiate from all siblings like get_time_tracked (time-specific).

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 is provided. It doesn't mention when to choose this over get_team_workload for team metrics or get_time_tracked for time analytics, nor does it specify prerequisites like needing a space_id for analysis.

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

get_task_commentsC

Get comments on a task

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesTask ID

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. It states 'Get comments' which implies a read-only operation, but doesn't disclose behavioral traits like whether it returns all comments, pagination, error handling, or authentication needs. This leaves significant gaps for an agent.

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

Conciseness5/5

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

The description is extremely concise with a single sentence, 'Get comments on a task', which is front-loaded and wastes no words. It efficiently conveys 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?

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., comment list format, metadata) or any behavioral context, making it inadequate for a tool that likely involves data retrieval with potential complexities.

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 'task_id' clearly documented. The description adds no additional meaning beyond this, such as format examples or constraints. Since schema coverage is high, 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.

Purpose3/5

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

The description 'Get comments on a task' clearly states the action (get) and resource (comments on a task), which is adequate. However, it lacks specificity to distinguish it from siblings like 'create_task_comment' or other comment-related tools that might exist, making it somewhat vague in 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. For example, it doesn't specify if this is for retrieving all comments, recent ones, or how it differs from 'get_task' which might include comments. Without such context, usage is unclear.

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

get_task_statusC

Get current status of a task

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesTask ID

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 'Get' implies a read operation, the description doesn't specify whether this requires authentication, what happens if the task doesn't exist, whether it returns only status or additional metadata, or any rate limits. For a tool with no 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 5 words ('Get current status of a task'), with zero wasted words. It's front-loaded with the core purpose and doesn't include any unnecessary elaboration, making it efficient for quick understanding.

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 insufficiently complete. It doesn't explain what 'status' means in this context (e.g., pending, in-progress, completed), what format the status is returned in, or any error conditions. For a tool in a rich ecosystem with many sibling tools, more context is needed to understand its specific role and behavior.

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

Parameters3/5

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

Schema description coverage is 100%, with the single parameter 'task_id' clearly documented in the schema. The description doesn't add any additional parameter semantics beyond what the schema provides (e.g., format examples, validation rules, or relationship to other parameters). With complete 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.

Purpose3/5

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

The description states the purpose as 'Get current status of a task', which is a clear verb+resource combination. However, it doesn't distinguish this tool from sibling tools like 'get_task' or 'update_task_status', leaving ambiguity about what specifically makes this tool different from other task-related tools.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'get_task' (which might return full task details) and 'update_task_status' (which modifies status), there's no indication of when 'get_task_status' is the appropriate choice or what its specific use case is compared to these alternatives.

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

get_team_workloadC

Get workload distribution across team members

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idYesSpace ID
include_completedNoInclude completed tasks in analysis

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 'Get workload distribution' but doesn't specify what data is returned (e.g., metrics, format), whether it's real-time or cached, or any limitations like rate limits or permissions required, which is inadequate for a tool with potential complexity.

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's front-loaded with the core purpose, making it easy to parse quickly, which is ideal 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 lack of annotations and output schema, the description is incomplete. It doesn't explain what 'workload distribution' entails (e.g., metrics like task counts, hours), how results are structured, or any behavioral traits, which is insufficient for a tool that likely returns complex 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 documents both parameters ('space_id' and 'include_completed'). The description doesn't add any meaning beyond this, such as explaining how these parameters affect the workload analysis, but it doesn't need to compensate for gaps, resulting in a baseline score.

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

Purpose4/5

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

The description clearly states the verb ('Get') and resource ('workload distribution across team members'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_task_analytics' or 'get_assignees', which might also provide related team insights, so it doesn't reach the highest 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. With siblings like 'get_task_analytics' and 'get_assignees' that might overlap in functionality, there's no indication of context, prerequisites, or exclusions, leaving usage ambiguous.

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

get_time_trackedC

Get time tracked for tasks

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idNoUser ID
start_dateNoStart date (ISO 8601)
end_dateNoEnd date (ISO 8601)

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 of behavioral disclosure. It states 'Get time tracked for tasks,' implying a read-only operation, but doesn't specify whether it requires permissions, how data is returned (e.g., format, pagination), or any rate limits. This leaves significant gaps in understanding the tool's behavior 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.

Conciseness4/5

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

The description is a single, efficient sentence ('Get time tracked for tasks') that directly states the purpose without unnecessary words. It's appropriately sized for a simple tool, though it could be slightly more informative without losing conciseness. There's no wasted text, making it front-loaded and clear.

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 moderate complexity (3 parameters, no output schema, and no annotations), the description is incomplete. It lacks details on return values (e.g., format of tracked time data), error handling, or behavioral traits like authentication needs. While the schema covers parameters well, the overall context for effective tool use is insufficient, especially for a read operation with potential data sensitivity.

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 'user_id,' 'start_date,' and 'end_date' with their types and formats. The description adds no additional meaning beyond the schema, such as explaining parameter interactions or default behaviors. Given the high schema coverage, the baseline score of 3 is appropriate, as the schema handles the parameter documentation adequately.

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

Purpose3/5

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

The description 'Get time tracked for tasks' clearly states the verb ('Get') and resource ('time tracked for tasks'), providing a basic understanding of the tool's function. However, it doesn't differentiate from sibling tools like 'log_time' (which tracks time) or 'get_task_analytics' (which might include time data), making it somewhat vague about its specific scope compared to 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. It doesn't mention prerequisites (e.g., needing user authentication), exclusions, or comparisons to siblings like 'log_time' for logging time or 'get_task' for general task details, leaving the agent with no contextual usage information.

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

list_foldersC

List folders in a space

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idYesSpace ID

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 'List folders' but doesn't describe what 'list' means operationallyβ€”e.g., whether it returns all folders, supports pagination, includes metadata, or has access restrictions. For a read operation 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 with zero waste. It's front-loaded and appropriately sized for a simple tool, avoiding unnecessary elaboration. Every word contributes directly to stating 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 the tool's simplicity (1 parameter, 100% schema coverage) but lack of annotations and output schema, the description is incomplete. It doesn't explain what the output looks like (e.g., list format, folder details), potential errors, or behavioral aspects like read-only nature. For a tool with no structured output documentation, more context is needed 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 description implies a 'space' context but doesn't add meaning beyond the input schema, which has 100% coverage and documents the 'space_id' parameter clearly. No additional details about parameter usage or constraints are provided. With high schema coverage, the baseline is 3, 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 'List folders in a space' clearly states the action (list) and resource (folders), with the scope (in a space) implied. It distinguishes from siblings like 'list_tasks' or 'list_lists' by specifying folders, though it doesn't explicitly contrast with them. The purpose is unambiguous but could be more specific about what 'list' entails.

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 a space_id), exclusions, or related tools like 'list_spaces' for context. The description assumes usage without clarifying the tool's role in the broader workflow.

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

list_listsB

List all lists in a folder or space

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_idNoFolder ID
space_idNoSpace ID

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 the action but doesn't disclose behavioral traits like whether it returns all lists at once or paginates, what permissions are required, or how it handles missing folder/space IDs. 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, efficient sentence with zero waste. It's front-loaded with the core purpose and appropriately sized for a simple listing 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?

Given the tool's low complexity (simple listing with 2 optional parameters) and no output schema, the description is minimally complete but lacks details on behavior and usage. It covers the basic purpose but doesn't compensate for the absence of annotations or output schema, leaving 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 already documents both parameters ('folder_id' and 'space_id'). The description adds minimal value by implying these are optional (since it says 'in a folder or space'), but doesn't provide additional syntax, format details, or usage context beyond what the schema provides.

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 lists'), specifying the scope ('in a folder or space'). It distinguishes from siblings like 'list_folders' and 'list_spaces' by focusing on lists, but doesn't explicitly differentiate from 'find_list_by_name' which also deals with lists.

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 when to use 'list_lists' versus 'find_list_by_name' for searching, or whether it should be used before operations like 'create_task' that might require a list context.

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

list_spacesB

List all spaces in workspace

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states it 'List all spaces' but doesn't disclose behavioral traits like whether this is a read-only operation, if it requires permissions, how results are formatted, or if there are limitations (e.g., pagination). This leaves significant gaps 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, efficient sentence with zero waste. It's front-loaded with the core action and resource, making it immediately clear 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 the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate. However, it lacks context about what 'spaces' are or how results are returned, which could be helpful for an agent. It meets the basic requirement but doesn't provide completeness for optimal use.

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

Parameters4/5

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

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate here. A baseline of 4 is given since the schema fully handles the parameter semantics without requiring description compensation.

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') and resource ('spaces in workspace'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'list_folders', 'list_lists', or 'list_tasks' that also list resources, so it doesn't achieve 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. With sibling tools like 'list_folders', 'list_lists', and 'list_tasks' available, there's no indication of what 'spaces' are or when to prefer listing them over other resources.

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

list_tasksC

List tasks in a list, folder, or space

ParametersJSON Schema
NameRequiredDescriptionDefault
list_idNoList ID
folder_idNoFolder ID
space_idNoSpace ID
statusesNoFilter by statuses
assigneesNoFilter by assignee IDs
include_closedNoInclude closed tasks

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 mentions listing tasks but doesn't disclose behavioral traits like pagination, rate limits, authentication requirements, or whether it's a read-only operation. The description is minimal and lacks crucial operational context for a tool with 6 parameters.

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

Conciseness4/5

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

The description is extremely concise - a single sentence with no wasted words. It's front-loaded with the core purpose. However, it may be overly terse given the tool's complexity with 6 parameters and no annotations, potentially sacrificing clarity for brevity.

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

Completeness2/5

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

For a tool with 6 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain return format, pagination, error conditions, or how the multiple container parameters interact. The description should provide more context given the tool's 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%, so the schema already documents all 6 parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema - it doesn't explain relationships between list_id/folder_id/space_id parameters or provide 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 verb 'List' and resource 'tasks', specifying the scope as 'in a list, folder, or space'. It distinguishes from siblings like 'search_tasks' by focusing on listing rather than searching, but doesn't explicitly differentiate from other list tools like 'list_folders' or 'list_lists'.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives like 'search_tasks' or 'get_task'. The description implies usage for listing tasks within specific containers but doesn't provide context on prerequisites, exclusions, or comparison with sibling tools.

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

list_usersC

List all users in the workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
workspace_idNoWorkspace ID (optional, uses default if not provided)

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. It doesn't disclose behavioral traits such as whether this is a read-only operation, if it requires specific permissions, how results are returned (e.g., pagination, format), or any rate limits. This is inadequate for a tool with potential access control implications.

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 without unnecessary words. It earns its place by clearly stating what the tool does, making it appropriately sized and 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 lack of annotations and output schema, the description is incomplete. It doesn't explain what 'list all users' entailsβ€”such as the return format, whether it includes inactive users, or any filtering capabilities. For a user-listing tool in a workspace context, more detail 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?

The input schema has 100% description coverage, documenting the optional 'workspace_id' parameter. The description adds no additional parameter semantics beyond what's in the schema, so it meets the baseline of 3 without compensating 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 verb ('List') and resource ('all users in the workspace'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'find_user_by_name' or 'get_current_user', which would require explicit comparison to earn 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 'find_user_by_name' or 'get_current_user'. It lacks context about use cases, prerequisites, or exclusions, leaving the agent to infer usage from the name alone.

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

log_timeC

Log time spent on a task

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesTask ID
durationYesDuration (e.g., '2h 30m')
descriptionNoOptional description

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. 'Log time' implies a write operation, but the description doesn't specify whether this creates new time entries, updates existing ones, requires specific permissions, or has side effects (e.g., affecting task status). It lacks details on response format, error conditions, or idempotency.

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 purpose, making it easy to parse quickly. Every word earns its place by directly conveying the tool's function.

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

Completeness2/5

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

For a mutation tool (implied by 'log') with no annotations and no output schema, the description is insufficient. It doesn't cover behavioral aspects like permissions, side effects, or return values, nor does it clarify usage relative to siblings. The high schema coverage helps with parameters, but overall context is incomplete 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 input schema has 100% description coverage, with clear parameter documentation (task_id, duration, description). The description adds no additional semantic context beyond the schema, such as explaining duration format constraints beyond 'e.g., '2h 30m'' or how task_id relates to existing tasks. Baseline 3 is appropriate 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 'Log time spent on a task' clearly states the verb ('log') and resource ('time spent on a task'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'get_time_tracked' (which likely retrieves logged time) or explain what 'log' specifically means in this context (e.g., create vs. update).

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., task must exist), when not to use it, or how it relates to siblings like 'get_time_tracked' (for reading logged time) or 'update_task' (which might also handle time tracking).

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

search_tasksB

Search tasks across workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoSearch query
statusesNoFilter by statuses
assigneesNoFilter by assignee IDs

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 'search' but doesn't disclose behavioral traits like whether it's read-only (implied but not explicit), pagination, rate limits, authentication needs, or what happens on no results. For a search 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. It's front-loaded and appropriately sized for a search tool, making it easy for an agent to parse quickly without unnecessary detail.

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

Completeness3/5

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

Given the tool's moderate complexity (search with filters), no annotations, and no output schema, the description is minimally adequate. It covers the basic purpose but lacks details on behavior, output format, or error handling. With schema coverage at 100%, it meets a baseline but doesn't fully compensate for missing annotations and output 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%, with clear descriptions for 'query', 'statuses', and 'assignees'. The description adds no additional parameter semantics beyond what the schema provides, such as query syntax examples or status/assignee formats. 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 'Search tasks across workspace' clearly states the action (search) and resource (tasks) with scope (across workspace). It distinguishes from siblings like 'list_tasks' (which presumably lists without search) and 'get_task' (which retrieves a specific task). However, it doesn't specify what makes this search unique compared to other search-like siblings (none explicitly listed), keeping it 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. It doesn't mention when to prefer this over 'list_tasks' (e.g., for filtered queries) or 'get_task' (for specific IDs), nor does it specify prerequisites or exclusions. This lack of context leaves 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_taskC

Update task properties

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesTask ID
titleNoNew title
descriptionNoNew description
statusNoNew status
priorityNoNew priority
due_dateNoNew due date
assignees_addNoUser IDs to add as assignees
assignees_removeNoUser IDs to remove as assignees

TDQS

C2.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. 'Update task properties' implies a mutation operation but provides no information about permissions required, whether changes are reversible, what happens to unspecified properties, error conditions, or response format. 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.

Conciseness4/5

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

The description is extremely concise with just three words, which is efficient and front-loaded. However, it's arguably too brief given the tool's complexity and the lack of annotations, bordering on under-specification rather than optimal 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?

For a mutation tool with 8 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what happens during updates, what permissions are needed, how errors are handled, or what the tool returns. The description should provide more context given the tool's complexity and the absence 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 8 parameters well-documented in the schema itself. The description adds no additional parameter information beyond what's already in the structured schema. With complete schema coverage, the baseline score of 3 is appropriate since 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.

Purpose2/5

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

The description 'Update task properties' is a tautology that essentially restates the tool name 'update_task' without providing meaningful context. It doesn't specify what kind of properties can be updated or distinguish this tool from sibling tools like 'bulk_update_tasks' or 'update_task_status'.

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 no guidance on when to use this tool versus alternatives. With multiple sibling tools like 'bulk_update_tasks', 'update_task_status', and 'assign_task' that handle related operations, there's no indication of when this specific single-task update tool is appropriate versus those alternatives.

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

update_task_statusC

Update task status

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesTask ID
statusYesNew status

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 full burden for behavioral disclosure. 'Update' implies a mutation operation, but it doesn't specify whether this requires special permissions, what happens on success/failure, if changes are reversible, or any rate limits. 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 extremely concise at just two words, with zero wasted language. While this conciseness comes at the cost of completeness, it's structurally efficient and front-loaded with the core action.

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 severely incomplete. It doesn't explain what status values are valid, what the tool returns, error conditions, or how it differs from similar tools. The agent would need to guess critical behavioral aspects.

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 ('task_id' and 'status') clearly documented in the schema. The description adds no additional parameter information beyond what's already in the structured schema, meeting the baseline expectation when schema does the heavy lifting.

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

Purpose2/5

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

The description 'Update task status' is a tautology that merely restates the tool name without adding meaningful context. It specifies the verb ('update') and resource ('task status'), but doesn't distinguish this tool from its sibling 'update_task' or explain what 'task status' encompasses compared to other task properties.

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 no guidance on when to use this tool versus alternatives like 'update_task' or 'bulk_update_tasks'. There's no mention of prerequisites, constraints, or typical use cases, leaving the agent with no contextual cues for tool selection.

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. 1 tool updatev1.0.0
    • Addedget_task_comments
  2. 27 tool updates
    • First observedassign_task
    • First observedbulk_move_tasks
    • First observedbulk_update_tasks
    • First observedcreate_task
    • First observedcreate_task_chain
    • First observedcreate_task_comment
    • First observedcreate_task_from_template
    • First observeddelete_task
    • First observedfind_list_by_name
    • First observedfind_user_by_name
    • First observedget_assignees
    • First observedget_current_user
    • First observedget_subtasks
    • First observedget_task
    • First observedget_task_analytics
    • First observedget_task_status
    • First observedget_team_workload
    • First observedget_time_tracked
    • First observedlist_folders
    • First observedlist_lists
    • First observedlist_spaces
    • First observedlist_tasks
    • First observedlist_users
    • First observedlog_time
    • First observedsearch_tasks
    • First observedupdate_task
    • First observedupdate_task_status

TDQS

B3/5.0
Disambiguation4/5

Most tools have distinct purposes, but some overlap exists, such as 'update_task' and 'update_task_status' (which could be seen as a subset), and 'list_tasks' and 'search_tasks' (both retrieve tasks but with different scopes). Descriptions help clarify, but agents might occasionally misselect between these pairs.

Naming Consistency5/5

Tool names follow a highly consistent verb_noun pattern throughout, with clear actions like 'create', 'get', 'list', 'update', 'delete', and 'find'. There are no deviations in style, such as mixing camelCase or snake_case, making the set predictable and readable.

Tool Count3/5

With 28 tools, the count is borderline high for a task management server, potentially feeling heavy and overwhelming. While it covers many operations, it might benefit from consolidation or scoping down to avoid complexity, as typical well-scoped servers have 3-15 tools.

Completeness5/5

The tool set provides comprehensive CRUD and lifecycle coverage for the ClickUp domain, including task management (create, get, update, delete, search), user and list operations, analytics, time tracking, and comments. There are no obvious gaps, and agents can handle full workflows without dead ends.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DiversioTeam/clickup-mcp'

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