ClickUp MCP Server
The ClickUp MCP Server enables AI-powered task management by interfacing with ClickUp's API, focusing on core workflows while excluding advanced features.
Task Management (CRUD): Create, read, update, and delete tasks with flexible ID support (standard IDs, custom patterns, URLs, hashes)
Task Organization & Navigation: Navigate and manage tasks across spaces, folders, and lists
Task Search & Filtering: Find tasks by text queries or filter by criteria like statuses and assignees
Comments & Collaboration: Read existing and create new comments on tasks
User & Assignment Management: List users, find users by name/email, and manage task assignees
Status Management: Update and track task statuses
Bulk Operations: Update or move multiple tasks simultaneously
Time Tracking: Log time entries and view tracked hours for tasks/users
Task Templates: Create tasks from predefined templates with customization options
Task Chains: Create sequences of dependent tasks
Team Analytics: View workload distribution and completion metrics
Enables interaction with ClickUp's task management API, providing tools for creating, reading, updating, and deleting tasks, managing task organization, searching and filtering tasks, handling assignees and statuses, performing bulk operations, tracking time, and generating team analytics.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ClickUp MCP Servercreate a task for implementing user authentication in the API project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ClickUp MCP Server
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
Quick Start (Recommended)
# Install from GitHub (latest)
uvx --from git+https://github.com/DiversioTeam/clickup-mcp clickup-mcp
# Or from PyPI (when published)
uvx clickup-mcpDevelopment Installation
git clone https://github.com/DiversioTeam/clickup-mcp
cd clickup-mcp
uv sync
uv run clickup-mcpConfiguration
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_keyGetting Your ClickUp API Key
Step-by-step instructions:
Log in to ClickUp at https://app.clickup.com
Navigate to Settings:
Click your avatar/profile picture in the bottom left corner
Select "Settings" from the dropdown menu
Go to Apps section:
In the left sidebar, click "Apps"
Then click "API" (or go directly to https://app.clickup.com/settings/apps)
Generate API Token:
Click the "Generate" button to create a new personal API token
Important: This token will only be shown once!
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:
Option 1: Native VS Code MCP (Recommended)
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:
Open Command Palette (
Ctrl+Shift+P/Cmd+Shift+P)Run "Preferences: Open User Settings (JSON)"
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:
Install "Copilot MCP" from VS Code Marketplace
Search, manage, and install MCP servers directly from VS Code
The extension will help you configure the ClickUp MCP server
Cline (AI Coding Assistant):
Install "Cline" extension for advanced AI coding with MCP support
Configure ClickUp MCP server through Cline's settings
Managing MCP Servers in VS Code
Open Command Palette (
Ctrl+Shift+P/Cmd+Shift+P)Run "MCP: List Servers" to view configured servers
Select ClickUp server to Start/Stop/Restart or view logs
Use "MCP: Show Output" for debugging
Verify VS Code Setup
Ensure your ClickUp API key is configured:
uvx clickup-mcp set-api-key YOUR_KEYIn VS Code, ask GitHub Copilot: "Can you list my ClickUp spaces using MCP tools?"
Check MCP server status with Command Palette β "MCP: List Servers"
Available Tools (28 Tools)
π Task Management
create_task- Create new tasksget_task- Get task details (supports various ID formats)update_task- Update task propertiesdelete_task- Delete taskscreate_task_from_template- Create from predefined templatescreate_task_chain- Create dependent task sequences
π Task Discovery
list_tasks- List tasks with filtering optionssearch_tasks- Search tasks by text and criteriaget_subtasks- Get all subtasks of a parentget_task_comments- Get comments on taskscreate_task_comment- Create comments on tasks
π₯ Assignment & Status
get_task_status- Get current task statusupdate_task_status- Change task statusget_assignees- List task assigneesassign_task- Assign users to tasks
ποΈ Navigation
list_spaces- List all spaces in workspacelist_folders- List folders in a spacelist_lists- List all listsfind_list_by_name- Find lists by name
β‘ Bulk Operations
bulk_update_tasks- Update multiple tasks at oncebulk_move_tasks- Move multiple tasks to different lists
β±οΈ Time Tracking
get_time_tracked- Get time tracked for users/periodslog_time- Log time spent on tasks
π Analytics
get_team_workload- See task distribution across team membersget_task_analytics- Get velocity metrics and completion rates
π€ User Management
list_users- List all users in workspaceget_current_user- Get current authenticated user detailsfind_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_taskCode 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-connectionDebug Mode
# Run with debug logging
uv run clickup-mcp --debugLocal 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
Fork the repository
Create a feature branch (
git checkout -b feature/improvement)Make changes and add tests
Ensure all tests pass (
uv run pytest)Run linting (
uv run ruff check .)Submit a Pull Request
Development Setup
git clone https://github.com/yourusername/clickup-mcp
cd clickup-mcp
uv sync
uv run pytest # Ensure tests passSupport
Issues: GitHub Issues
Discussions: GitHub Discussions
Email: tech@diversio.com
License
MIT License - see LICENSE file for details.
Acknowledgments
Built by Diversio team
Powered by Model Context Protocol
Uses ClickUp API v2
Available Tools
28 toolsassign_taskC
Assign users to a task
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task ID | |
| user_ids | Yes | User IDs to assign |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| task_ids | Yes | List of task IDs to move | |
| target_list_id | Yes | Target list ID |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| task_ids | Yes | List of task IDs to update | |
| updates | Yes | Updates to apply (status, priority, assignees, etc.) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Task title | |
| description | No | Task description | |
| list_name | No | Name of the list to create task in | |
| list_id | No | ID of the list (alternative to list_name) | |
| assignees | No | User IDs to assign | |
| priority | No | Priority (1=urgent, 2=high, 3=normal, 4=low) | |
| due_date | No | Due date (ISO 8601 format) | |
| time_estimate | No | Time estimate (e.g., '2h 30m') |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| tasks | Yes | List of tasks to create in sequence | |
| list_id | Yes | List ID for the tasks | |
| auto_link | No | Automatically link tasks as dependencies |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task ID | |
| comment_text | Yes | Comment text | |
| assignee | No | User ID to assign (optional) | |
| notify_all | No | Notify all assignees (default: true) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| template_name | Yes | Template name | |
| customizations | No | Customizations to apply to template | |
| list_id | Yes | List ID for the new task |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task ID to delete |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | List name to search for | |
| space_id | No | Space ID to search in |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name or email to search for | |
| workspace_id | No | Workspace ID (optional, uses default if not provided) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task ID |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| parent_task_id | Yes | Parent task ID |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task ID, custom ID (e.g., gh-123), or URL | |
| include_subtasks | No | Include subtasks in response |
TDQS
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.
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.
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.
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.
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.
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.)
| Name | Required | Description | Default |
|---|---|---|---|
| space_id | Yes | Space ID | |
| period_days | No | Period in days to analyze |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task ID |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task ID |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| space_id | Yes | Space ID | |
| include_completed | No | Include completed tasks in analysis |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | No | User ID | |
| start_date | No | Start date (ISO 8601) | |
| end_date | No | End date (ISO 8601) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| space_id | Yes | Space ID |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| folder_id | No | Folder ID | |
| space_id | No | Space ID |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| list_id | No | List ID | |
| folder_id | No | Folder ID | |
| space_id | No | Space ID | |
| statuses | No | Filter by statuses | |
| assignees | No | Filter by assignee IDs | |
| include_closed | No | Include closed tasks |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | No | Workspace ID (optional, uses default if not provided) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task ID | |
| duration | Yes | Duration (e.g., '2h 30m') | |
| description | No | Optional description |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Search query | |
| statuses | No | Filter by statuses | |
| assignees | No | Filter by assignee IDs |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task ID | |
| title | No | New title | |
| description | No | New description | |
| status | No | New status | |
| priority | No | New priority | |
| due_date | No | New due date | |
| assignees_add | No | User IDs to add as assignees | |
| assignees_remove | No | User IDs to remove as assignees |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task ID | |
| status | Yes | New status |
TDQS
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.
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.
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.
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.
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.
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 tool update
v1.0.0- Added
get_task_comments
27 tool updates
- First observed
assign_task - First observed
bulk_move_tasks - First observed
bulk_update_tasks - First observed
create_task - First observed
create_task_chain - First observed
create_task_comment - First observed
create_task_from_template - First observed
delete_task - First observed
find_list_by_name - First observed
find_user_by_name - First observed
get_assignees - First observed
get_current_user - First observed
get_subtasks - First observed
get_task - First observed
get_task_analytics - First observed
get_task_status - First observed
get_team_workload - First observed
get_time_tracked - First observed
list_folders - First observed
list_lists - First observed
list_spaces - First observed
list_tasks - First observed
list_users - First observed
log_time - First observed
search_tasks - First observed
update_task - First observed
update_task_status
TDQS
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.
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.
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.
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
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
Manage your ClickUp workspace by creating, updating, and organizing tasks, lists, folders, and tagβ¦
Create and manage MeisterTask projects, tasks, and notes from your AI assistant.
Manage projects, tasks, time tracking, and team collaboration through natural language.
Manage tasks, Focus Zone, notes, projects, and task history from compatible AI assistants.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with ClickUp's project management platform. Supports comprehensive task management, workspace administration, and list operations through natural language commands.-
- AlicenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to interact with ClickUp workspaces through natural language - search tasks, manage workflows, track time, collaborate via comments, and access complete task context including comments and images.-
- FlicenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to interact with ClickUp tasks, analyze workflows, update statuses, manage custom fields, and add comments through the ClickUp API with built-in rate limiting and type safety.40-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact directly with the ClickUp REST API v2 for managing tasks, folders, and lists. It supports full workspace hierarchy management, time tracking, and task operations through natural language.65MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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