Custom ClickUp MCP
This server provides an MCP interface to ClickUp, enabling a wide range of workspace and task management operations.
Search & Discovery
Search the workspace for tasks, spaces, folders, and lists with text queries and pagination.
Find tasks by custom task type or by tag.
Task Management
Create, retrieve, update, and delete individual tasks, including custom fields, priorities, due dates, time estimates, and Markdown descriptions.
Bulk create and update tasks with bounded concurrency and safe confirmation.
Set and remove custom field values with validation.
Comments
View task comments and threaded replies (paginated).
Create new comments (plain text or structured with mentions).
Tags
Add or remove tags from tasks.
Task Relationships
Manage bidirectional task links and dependencies (waiting-on/blocking).
Task Organization
Move tasks between lists.
Add tasks to multiple lists (requires "Tasks in Multiple Lists" ClickApp).
Workspace Hierarchy
Get the full hierarchy (spaces, folders, lists).
Create, update, and retrieve lists and folders.
Members & Assignees
List workspace members and guests.
Find members by name, email, or ID.
Resolve multiple assignees.
Safety & Operations
Destructive actions require a two-step dry-run and confirmation flow.
Configurable tool profiles, API timeouts, rate limits, and feature flags via environment variables.
Structured error responses and retries for read operations.
Provides tools for managing ClickUp workspaces, including tasks, comments, tags, task relationships, lists, folders, workspaces hierarchy, members, and assignee resolution.
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., "@Custom ClickUp MCPShow my tasks tagged 'urgent' in the default workspace."
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.
Custom ClickUp MCP
Local MCP server for the essential ClickUp workflows. It runs over stdio, uses one ClickUp personal API token per process, and exposes a deliberately bounded P0 tool set.
Requirements
Node.js 20 or newer
A ClickUp personal API token
Access to a disposable ClickUp Workspace for smoke tests
Related MCP server: ClickUp MCP Server
Install and build
npm ci
npm run buildSet secrets through the process environment or the MCP client's secret store. Do not commit a real token to an MCP configuration file.
export CLICKUP_API_TOKEN="pk_replace_me"
export CLICKUP_DEFAULT_WORKSPACE_ID="123456"
npm startThe process communicates through standard input/output. Seeing no ordinary output on stdout is expected; operational logs are JSON lines on stderr.
MCP client configuration
Use the absolute path to the built entry point:
{
"mcpServers": {
"clickup": {
"command": "node",
"args": ["/absolute/path/to/custom-clickup-mcp/dist/index.js"],
"env": {
"CLICKUP_API_TOKEN": "<from-your-client-secret-store>",
"CLICKUP_DEFAULT_WORKSPACE_ID": "123456"
}
}
}
}Any client that supports MCP over stdio can launch the same command. The SDK serves the current MCP protocol and negotiates the supported legacy era by default.
Configuration
Variable | Required | Default | Purpose |
| yes | — | Personal ClickUp API token. Never logged or persisted. |
| no | — | Default Workspace when a tool does not receive |
| no |
| Tool catalog: all 40 tools with |
| no |
| Allows confirmed Task/comment deletion, task merging, and Custom Field value removal. |
| no |
| Allows confirmed bulk task writes and multi-field Custom Field writes. |
| no |
| Per-call bulk limit; maximum allowed value is 100. |
| no |
| Default Task pages scanned; maximum allowed value is 20. |
| no |
| Timeout for each upstream API request. |
.env.example documents the same values, but the server intentionally does not load .env files itself.
Tools
The default full profile exposes exactly 40 tools in P0. Set
CLICKUP_TOOL_PROFILE=core to expose only the common search, Task, comment, Tag,
hierarchy, and assignee-resolution workflow. The compact profile contains 14 tools and
reduces the tool-discovery payload without changing any tool's request or response shape.
Search
search_workspacefilter_tasks
search_workspace performs a bounded API sweep over Tasks, Spaces, Folders, and Lists. It does not search Docs. A truncated result includes a continuation cursor and scan counters; it never walks an unbounded Workspace implicitly.
filter_tasks composes tags, statuses, assignees, List/Folder/Space scopes, due and completion date ranges, task types, subtask inclusion, and sorting in one server-side request. Arrays are OR within one dimension and dimensions are ANDed. Like the other searches, each call is bounded by limit and max_pages and returns a continuation cursor when truncated.
Task management
create_taskget_taskupdate_taskset_task_custom_fieldsget_custom_fieldsdelete_taskmerge_taskscreate_bulk_tasksupdate_bulk_tasks
create_task and update_task accept either description for plain text or
markdown_description for formatted Markdown, but not both. The server maps
markdown_description to ClickUp's upstream markdown_content field. The same input
contract applies to items in create_bulk_tasks and update_bulk_tasks.
time_estimate is expressed in minutes; the server converts it to the milliseconds ClickUp
expects. update_task clears an estimate when it receives an explicit null.
priority accepts either a ClickUp label (urgent, high, normal, low) or the matching
wire number (1 through 4). The scale is fixed at those four values in every Workspace.
update_task clears a priority when it receives an explicit null.
create_task and update_task accept task_type as either a custom_item_id such as 7 or
a display name such as Bug, matched case-insensitively against the Workspace task types plus
the built-in Task and Milestone. An unmatched or ambiguous name fails with
TASK_TYPE_NOT_FOUND or TASK_TYPE_AMBIGUOUS, lists the candidates, and writes nothing.
update_task resets a task to the built-in Task type when it receives an explicit null.
Resolution needs a Workspace, so pass workspace_id when CLICKUP_DEFAULT_WORKSPACE_ID is
unset; a bulk call resolves the type list once for every item.
get_custom_fields accepts a Task, List, Folder, Space, or Workspace location and returns
field IDs, types, applicability metadata, and dropdown/label option UUIDs. Task-scoped
discovery automatically resolves the home List and excludes fields that do not apply to
the Task's custom task type.
Attachments
request_attachment_uploadattach_task_filedownload_task_attachment
Uploads use a two-step flow: stage an explicit local file path, a base64 payload, or an
HTTPS URL (optionally with an Authorization header),
then pass the short-lived upload_id to attach_task_file. Staged payloads expire after
ten minutes, are consumed only after a successful multipart upload, and are limited to
25 MiB to keep MCP messages and process memory bounded. Downloads can return ClickUp's
signed URL or write the file to an explicit local path; existing files are preserved unless
overwrite: true is supplied.
Comments
get_task_commentsget_threaded_repliescreate_commentcreate_task_commentupdate_commentdelete_comment
create_comment targets a Task, List, or Chat view, can create a threaded reply with
reply_to_id, and supports user or group assignment. create_task_comment remains as a
compatibility tool for its original Task-only contract.
Tags
add_tag_to_taskremove_tag_from_task
Task relationships
add_task_linkremove_task_linkadd_dependencyremove_dependency
Move and additional Lists
move_task_to_listadd_task_to_listremove_task_from_list
add_task_to_list and remove_task_from_list require the ClickUp Tasks in Multiple Lists ClickApp. The removal tool refuses to remove a Task from its home List.
Workspace hierarchy
get_workspace_hierarchycreate_list_in_spacecreate_list_in_folderget_listupdate_listget_foldercreate_folderupdate_folder
Members and assignees
get_workspace_membersfind_member_by_nameresolve_assignees
Member resolution returns candidates instead of choosing automatically when a name or email is ambiguous.
Safe writes
Task/comment deletion, task merging, Custom Field removals, and multi-item writes use a two-step flow:
Call the tool with
dry_run: trueto receive the exact preview and a short-lived confirmation token.Enable the relevant environment flag and call again with the unchanged payload,
dry_run: false,confirm: true, and the confirmation token.
Confirmation tokens expire after ten minutes, are tied to the exact operation payload, and can only be consumed once. Bulk operations use a maximum concurrency of three, have no implicit rollback, and report the result of every item.
set_task_custom_fields also defaults to preview mode. A single non-destructive field update may be executed with dry_run: false directly; removals and multi-field changes require the corresponding feature flag plus confirmation. Field applicability and value shapes are validated before any write begins.
Errors and limits
Tool failures return a structured error with code, message, retryable, and optional details. Read requests retry transient 408, 429, and 5xx failures up to three attempts. Writes are not automatically repeated after an uncertain failure.
The server observes ClickUp rate-limit headers. Search and bulk calls are intentionally bounded because ClickUp enforces limits per token and Workspace plan.
Development
npm run typecheck
npm run lint
npm test
npm run buildTests use mocked ClickUp responses and in-memory MCP transports. CI must not use a production token. A final manual smoke test should use a sandbox Workspace and disposable Tasks.
Troubleshooting
CONFIG_MISSING: provideCLICKUP_API_TOKENthrough the process environment.WORKSPACE_REQUIRED: configureCLICKUP_DEFAULT_WORKSPACE_IDor passworkspace_idto the tool.WORKSPACE_NOT_AUTHORIZED: reconnect with a token that can access the configured Workspace.CLICKUP_HTTP_429: reduce the search/bulk limits and wait for the reset time.CONFIRMATION_MISMATCH: repeat the preview after changing any delete or bulk payload.Additional-List errors: enable Tasks in Multiple Lists in the ClickUp Workspace.
Architecture
MCP stdio → tool registry and policies → domain tool modules → ClickUpClient → ClickUp API v2/v3
The stdio transport starts immediately; ClickUp credentials and the optional default Workspace are validated lazily before the first tool operation. The API client centralizes timeouts, pagination primitives, rate limiting, retries, error normalization, and redacted telemetry. Hierarchy/member caches and confirmation state exist only in memory and are discarded when the process exits.
Available Tools
32 toolsadd_dependencyAdd DependencyA
Create an explicit waiting-on or blocking dependency between two ClickUp Tasks.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| direction | Yes | ||
| workspace_id | No | ||
| custom_task_ids | No | ||
| related_task_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false (mutation) and destructiveHint=false. The description adds no additional behavioral context such as side effects, failure modes, or idempotency implications. It merely restates the action without revealing any hidden 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 sentence that is concise and front-loaded with the essential information. Every word earns its place, with no filler or redundancy.
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 5-parameter mutation tool with no output schema, the description leaves critical ambiguity: it does not specify which task depends on which for 'waiting_on' vs 'blocking'. It also omits any mention of workspace_id or custom_task_ids. The description is not complete enough to guide correct invocation without additional assumptions.
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?
With 0% schema description coverage, the description partially compensates by explaining the core relationship (task_id and related_task_id) via 'between two ClickUp Tasks' and the direction enum via 'waiting-on or blocking'. However, it does not clarify workspace_id or custom_task_ids, nor does it explain the exact meaning of each direction for parameter selection.
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 uses a specific verb ('Create') and clearly identifies the resource ('explicit waiting-on or blocking dependency between two ClickUp Tasks'). It distinguishes from the sibling remove_dependency by focusing on creation rather than removal.
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 context for use is clear: you use this tool to add a dependency. However, it does not explicitly state when not to use it or name alternatives like remove_dependency. The lack of explicit exclusions keeps it from a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_tag_to_taskAdd Tag to TaskB
Apply an existing ClickUp Tag to a Task.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| tag_name | Yes | ||
| workspace_id | No | ||
| custom_task_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, but the description adds no behavioral context beyond what the title conveys. It does not explain effects of reapplying an existing tag, whether workspace_id is required, or any rate limits or auth needs, so it adds no value beyond annotations.
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 concise sentence with no fluff or repetition. It is front-loaded with the action, and every word is relevant. It demonstrates good conciseness, even though it lacks depth.
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?
With 4 parameters, no output schema, and zero parameter descriptions, the description provides insufficient context. It fails to explain parameter semantics, return values, or edge cases, making it incomplete for an agent to use 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?
Schema description coverage is 0%, so the description must compensate, but it only adds 'existing', which hints that the tag must already exist. It provides no explanation for task_id, workspace_id, or custom_task_ids, leaving the agent to rely solely on parameter names.
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 a specific action: 'Apply an existing ClickUp Tag to a Task.' It distinguishes this from sibling tools like remove_tag_from_task and create_task, and the verb+resource structure ('apply' + tag to task) is unambiguous.
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. The description does not mention preconditions (e.g., tag must exist), exclusions, or related tools, leaving the agent without context for selection among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_task_linkAdd Task LinkA
Create a bidirectional ClickUp Task Link between two different Tasks.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| workspace_id | No | ||
| custom_task_ids | No | ||
| related_task_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, establishing the mutation profile. The description adds the 'bidirectional' behavioral trait, which is useful, but it doesn't disclose potential side effects like overwriting existing links, idempotency behavior (beyond the annotation), or prerequisites for the tasks. It adds some value beyond annotations but not extensive context.
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, focused sentence with no filler. It immediately states the core operation and key characteristics, making it highly efficient and well front-loaded.
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?
Despite the simplicity of the operation, the description omits explanations for optional parameters, output behavior, and explicit comparisons with alternatives. Given no output schema and sparse annotations, an agent would struggle to use the tool correctly without additional knowledge.
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 0%, so the description must compensate. It only implies that task_id and related_task_id correspond to the two tasks, but it doesn't explain the meaning of workspace_id or custom_task_ids, nor their formats or behaviors. This leaves the agent with insufficient information for correct invocation.
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 specifies the action (Create), resource (ClickUp Task Link), and key attributes (bidirectional, between two different Tasks). It distinguishes itself from sibling tools like remove_task_link and add_dependency, which serve different linking purposes.
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—whenever a bidirectional link between tasks is needed—and the sibling context makes the alternative clear. However, it doesn't explicitly state when not to use it or mention add_dependency as the directional alternative, so it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_task_to_listAdd Task to ListA
Add a Task to an additional List while preserving its home List.
| Name | Required | Description | Default |
|---|---|---|---|
| list_id | Yes | ||
| task_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful context beyond the annotations by specifying that the operation preserves the home list, effectively making the task a member of both lists. The annotations already indicate readOnlyHint=false (mutation) and destructiveHint=false, so the description complements rather than contradicts them. However, it does not disclose edge cases like duplicate membership handling, which is a minor gap given the annotations cover the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the primary verb and object, and it includes only the essential distinction about preserving the home List. No wasteful words or redundant 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?
For a simple two-parameter tool with no output schema, the description conveys the core semantics and differentiates from the related move tool. The annotations provide the mutation and non-destructive signals, so the description need not restate them. It could mention return values or duplicate behavior, but the combination of annotations and description is sufficient for typical 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 no parameter descriptions (0% coverage), so the description should compensate. The parameter names task_id and list_id are fairly self-explanatory, and the phrase 'additional List' hints that list_id is the new list to add to. However, the description does not explicitly map parameters or explain any constraints, so it only partially compensates for the missing schema documentation.
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 ('Add a Task to an additional List') and the key behavioral nuance ('preserving its home List'), which distinguishes it from the sibling tool move_task_to_list. The verb and resource are specific, and the scope of the operation is unambiguous.
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 phrase 'additional List' and 'preserving its home List' clearly implies the intended use case: when you want a task to appear in multiple lists rather than relocating it. It does not explicitly name the alternative move_task_to_list, but the sibling context makes the distinction apparent, so the guidance is clear without explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_bulk_tasksCreate tasks in bulkB
Preview or create multiple tasks with bounded concurrency and per-item results.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | ||
| confirm | No | ||
| dry_run | No | ||
| confirmation_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses preview capability (dry run) and per-item results, adding context beyond the annotations. However, it does not mention the confirmation_token flow or that creation may be gated by confirmation, which is a significant behavioral trait for a non-idempotent write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that packs in key capabilities (bulk, preview, concurrency, per-item results) without wasted words. Slightly ahead of average but not perfect due to missing details.
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?
The tool has complex nested parameters, no output schema, and important flow details (confirmation, dry run) that are not explained. The description is too minimal for an agent to fully understand the tool's behavior, especially without output schema or parameter documentation.
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?
With 0% schema description coverage, the description must compensate, but it only hints at dry_run via 'Preview' and items via 'multiple tasks.' It does not explain confirm, confirmation_token, or the structure of items, leaving parameter semantics largely unexplained.
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 the resource ('multiple tasks'), and adds differentiating details like 'Preview' (dry run) and 'bounded concurrency with per-item results.' This distinguishes it from sibling tools like create_task and update_bulk_tasks.
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 use for bulk creation but provides no explicit guidance on when to use this tool versus create_task or update_bulk_tasks. It lacks any when-not-to-use or alternative tool suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_folderCreate FolderB
Create a Folder in a ClickUp Space.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| space_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond what annotations already provide. It simply restates the action ('create') and does not mention permissions, idempotency, error behavior, or side effects. For a write operation without further disclosure, this falls short.
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, front-loaded sentence with no redundant words. It is concise and immediately understandable.
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?
The tool is a simple create operation, but the description lacks essential context such as return value, permission requirements, or failure scenarios. Since there is no output schema, the description should disclose what the tool returns or whether any side effects occur, but it does not.
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?
With zero schema coverage, the description must compensate. It indirectly clarifies that 'space_id' refers to a ClickUp Space and 'name' is the folder name, but it does not explicitly define either parameter or provide format details. This is minimal compensation, so a middle score 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 clearly states the action (create), the resource (folder), and the context (a ClickUp Space). It distinguishes from sibling tools like create_list_in_space and get_folder by specifying the resource is a folder and the location is a space.
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 about when to use this tool versus alternatives such as create_list_in_space or create_list_in_folder. There are no prerequisites, exclusions, or context cues beyond the basic action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_list_in_folderCreate List in FolderC
Create a List inside a ClickUp Folder.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| status | No | ||
| content | No | ||
| assignee | No | ||
| due_date | No | ||
| priority | No | ||
| folder_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose that the operation is readOnlyHint=false and destructiveHint=false, so the description is not required to repeat that. However, it adds no new behavioral context such as side effects, duplicate handling despite idempotentHint=false, or permission requirements. The description is purely a restatement of the title with zero additional transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence, which is certainly concise. However, it merely echoes the tool name and provides no additional information. While not overly verbose, it under-specifies for a tool with 7 parameters, so it is not an efficient use of the available description space.
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?
This is a mutation tool with 7 parameters, no output schema, and no parameter descriptions. The one-sentence description is grossly inadequate for the agent to understand required inputs, optional behaviors, or return values. It fails to provide essential context like what happens after creation or how to set the various fields.
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 0%, and the description mentions no parameter names or meanings. Out of 7 parameters (folder_id, name, status, content, assignee, due_date, priority), the agent gets no help from the description. Even the required folder_id and name are not explained, leaving the agent to guess.
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 List inside a ClickUp Folder' uses a specific verb ('Create') and a specific resource ('List inside a ClickUp Folder'). It clearly distinguishes the tool from siblings like create_list_in_space and create_task, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as create_list_in_space or create_task. The description merely states the action, leaving the agent to infer usage from the tool name. There are no exclusions or situational context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_list_in_spaceCreate List in SpaceA
Create a folderless List in a ClickUp Space.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| status | No | ||
| content | No | ||
| assignee | No | ||
| due_date | No | ||
| priority | No | ||
| space_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a write operation (not read-only, not destructive). The description adds useful context by specifying the list is folderless, which clarifies the creation scope. However, it does not disclose side effects, required permissions, or return values, leaving some 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 a single sentence with no wasted words. It front-loads the main action and context, making it immediately scannable. For its length, 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 tool has 7 parameters (2 required) and no output schema, the description is too sparse to be fully contextual. It lacks any indication of what the tool returns, how to handle errors, or what the optional parameters do. The annotations provide some safety context, but the description does not sufficiently cover the operational details an agent needs.
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 0%, and the description names no parameters. It only hints at the space context through the phrase 'in a ClickUp Space', but does not explain the required 'name' or the optional fields (status, content, assignee, due_date, priority). The description fails to compensate for the 0% 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), the resource (List), and the scope (folderless in a ClickUp Space), which immediately distinguishes it from the sibling tool create_list_in_folder. The specific term 'folderless' leaves no ambiguity about where the list is created.
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 clearly implies the use case: creating a list directly in a Space rather than in a folder. While it does not explicitly name the alternative 'create_list_in_folder', the contrast is inherent in the word 'folderless'. This provides clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_taskCreate taskC
Create a task in a ClickUp List.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| tags | No | ||
| parent | No | ||
| status | No | ||
| list_id | Yes | ||
| due_date | No | ||
| priority | No | ||
| assignees | No | ||
| notify_all | No | ||
| start_date | No | ||
| description | No | ||
| due_date_time | No | ||
| custom_item_id | No | ||
| start_date_time | No | ||
| time_estimate_ms | No | ||
| markdown_description | No | ||
| check_required_custom_fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral detail beyond what the name and annotations already convey. While annotations indicate it is not read-only, the description does not disclose potential side effects, default values, required permissions, or response behavior. For a create operation, more transparency is expected.
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, front-loaded sentence, which is structurally efficient. However, it is under-specified to the point of being unhelpful, so the conciseness does not earn its place by providing sufficient information. It is concise but not substantive.
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?
With 17 parameters, no output schema, and only basic annotations, the description is severely inadequate. It does not explain any parameter semantics, defaults, response format, or the scope of creation. A tool of this complexity requires a much richer description to be usable by 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 0% and the description mentions none of the 17 parameters. It fails to provide any meaning for required fields like list_id and name, let alone optional fields like tags, status, priority, or due_date. The description offers no compensatory value for the high parameter count.
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: creating a task within a ClickUp List. The verb 'create' and resource 'task in a ClickUp List' are specific and distinguish it from siblings like update_task, delete_task, and create_bulk_tasks, though it does not explicitly differentiate from those 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?
No guidance is provided on when to use this tool versus alternatives. It does not mention that it is for single task creation only, nor does it reference create_bulk_tasks for multiple tasks. The description simply states the action without contextual use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_task_commentCreate Task CommentA
Add a plain-text or structured comment, including explicit user-ID mentions, to a Task.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=true. The description adds that comments can be structured with explicit user-ID mentions, which is a behavioral capability beyond the basic safety flags. However, it does not disclose side effects like notifications, return values, or permissions, so it only partially enhances 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, concise, front-loaded sentence that conveys the core purpose and key capability. Every word adds value, and it avoids tautology 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?
The tool has complex input schemas with two distinct modes and several optional parameters, but the description is minimal. It does not mention return values, what happens on success/failure, or when to choose plain text versus structured mode beyond the bare capability. With no output schema and sparse annotations, the agent is left without critical operational context.
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 has two alternatives (plain text or structured comment array) with optional flags. The description helps map 'plain-text or structured' to these alternatives and 'user-ID mentions' to the tag object, adding semantic value. But it does not explain optional parameters like notify_all, workspace_id, or custom_task_ids, which remain undocumented in both schema and 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 uses a specific verb ('Add'), names the resource ('comment'), and the target ('Task'), clearly distinguishing it from sibling tools like get_task_comments. It also specifies the two supported modes ('plain-text or structured') and explicit user-ID mentions, making the tool's purpose unmistakable.
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 clear usage: use this tool to add comments to a task. It doesn't explicitly name alternatives or exclusions, but the purpose is so direct that an agent can infer when to invoke it. No when-not guidance is provided, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_taskDelete taskADestructive
Preview or explicitly confirm permanent deletion of a ClickUp task.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| dry_run | No | ||
| task_id | Yes | ||
| workspace_id | No | ||
| custom_task_ids | No | ||
| confirmation_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (destructiveHint=true), the description adds 'permanent deletion' and 'explicitly confirm', which reveals that the operation is irreversible and requires confirmation. This provides useful behavioral context about the safeguard mechanism, exceeding what annotations alone suggest.
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, front-loaded sentence that captures the essential action and the preview/confirm nuance. Every word contributes value, and it is appropriately sized for the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a destructive operation with strong annotations, but it lacks detail on important parameters like confirmation_token and workspace_id, and the absence of an output schema means the return behavior is not described. The preview/confirm workflow is included, but more context on the confirmation mechanism would improve completeness.
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 zero description coverage, and the tool description does not compensate. It only vaguely hints at the 'preview' and 'confirm' parameters (dry_run and confirm) but does not explain task_id, workspace_id, custom_task_ids, or confirmation_token. An agent would struggle to understand the full parameter semantics from the description alone.
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: permanently deleting a ClickUp task, with a preview option. It uses a specific verb ('delete' implied by 'permanent deletion') and specifies the resource (ClickUp task). It distinguishes from sibling tools as the only task deletion tool.
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 conveys a clear usage workflow: either preview the deletion or explicitly confirm it. This implies that the tool can be used in a dry-run mode before committing to deletion, offering guidance on the intended two-step process. It doesn't explicitly mention alternatives, but the context is clear enough for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_member_by_nameFind Member by NameBRead-onlyIdempotent
Find ClickUp Workspace members by ID, name, or email without guessing ambiguity.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| workspace_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and idempotent behavior, lowering the bar for additional disclosure. However, the description adds only the vague promise of 'without guessing ambiguity' and does not explain return format, matching rules, or any constraints like workspace_id requirements.
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, front-loaded sentence with no redundant words. It efficiently conveys the core purpose and scope, making it easy to parse.
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 output schema and no parameter descriptions, the description is too sparse. It fails to clarify when to prefer this over sibling tools like search_workspace or resolve_assignees and does not indicate what the tool returns, leaving the agent without sufficient context for correct invocation.
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 descriptions are absent (0% coverage), so the description must compensate. It mentions searching by ID/name/email, which maps to the 'query' parameter, but does not clarify expected input format or the optional 'workspace_id' parameter. This is insufficient compensation for the missing schema documentation.
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 identifies the action (Find), the resource (ClickUp Workspace members), and the scope (by ID, name, or email). The phrase 'without guessing ambiguity' distinguishes it from broader search tools, making the purpose explicit and 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?
The description does not explicitly state when to use this tool versus alternatives such as search_workspace or resolve_assignees. It implies a need for unambiguous member lookup but offers no direct comparison or exclusionary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_folderGet FolderBRead-onlyIdempotent
Get a ClickUp Folder and its Lists.
| Name | Required | Description | Default |
|---|---|---|---|
| folder_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is clear. The description adds value by specifying that the response includes the folder and its lists, but does not elaborate on any other behavioral traits like pagination or data volume.
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, compact sentence that is front-loaded with the verb and resource. Every word earns its place, and there is no unnecessary 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?
Given the tool's simplicity (one parameter) and comprehensive annotations, the description is somewhat complete. It states the primary output (Folder and Lists) but omits details about response structure or how to obtain the folder_id. For a read-by-id tool, this is acceptable but not fully complete.
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 only parameter folder_id has zero schema description coverage, and the tool description does not provide additional context about the parameter, such as how to obtain it or expected format. Since the description does not compensate for the schema gap, the parameter semantics are weak.
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 a ClickUp Folder and its Lists' clearly identifies the verb (Get) and resource (Folder and its Lists), and implicitly distinguishes from sibling get_list by including Lists. However, it doesn't explicitly differentiate from get_workspace_hierarchy or search_workspace, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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_list or get_workspace_hierarchy. There is no mention of prerequisites, typical use cases, or when to avoid it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_listGet ListARead-onlyIdempotent
Get the details and settings of one ClickUp List.
| Name | Required | Description | Default |
|---|---|---|---|
| list_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that it retrieves 'details and settings,' which is useful but doesn't disclose any caveats, return format, or auth requirements. It is consistent with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no redundant words. It conveys the core purpose efficiently.
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 one-parameter read-only tool with strong annotations, the description is adequate but leaves gaps. It doesn't describe the return structure or what 'settings' includes, and there's no output schema to cover that. However, the tool's simplicity means the agent can likely infer the 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?
The input schema has 0% description coverage, and the description does not explicitly explain the list_id parameter. However, the parameter name 'list_id' is self-descriptive, and the description implies it identifies the list. This is minimal compensation; it adds no additional meaning beyond the schema.
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 ('details and settings of one ClickUp List'), which is specific and distinguishes from siblings like get_task or update_list. It is not a tautology and includes the scope of 'one' list.
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 usage guidance is provided. There are no mentions of when to use this tool versus alternatives like search_workspace or get_folder, nor any exclusions. The intended use is only implied by the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_taskGet taskARead-onlyIdempotent
Get one ClickUp task by task ID or Custom Task ID.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| workspace_id | No | ||
| custom_task_ids | No | ||
| include_subtasks | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint: false, covering safety. The description adds minimal behavioral context by clarifying it returns a single task ('Get one') and supports both task ID and Custom Task ID. It does not disclose other behaviors like authorization requirements, rate limits, or error handling, but the annotation coverage lowers the burden.
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 concise sentence with no filler. It front-loads the core purpose and does not waste words, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with good annotations and no output schema, the description covers the core use case adequately. However, it omits context around optional parameters like workspace_id and include_subtasks, and does not mention any response shape, leaving some gaps for an agent trying to invoke the tool for edge cases.
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?
With 0% schema description coverage, the description must compensate. It clarifies that task_id can be either a standard task ID or a Custom Task ID, giving meaning to the primary parameter and the custom_task_ids flag. However, it does not explain workspace_id or include_subtasks, leaving these parameters semantically unexplained.
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 uses a specific verb 'Get' with a clear resource 'ClickUp task' and specifies the identification method 'by task ID or Custom Task ID.' This clearly distinguishes it from sibling search tools and mutation tools, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a task ID is already known ('by task ID or Custom Task ID'), which suggests it is for direct retrieval rather than search. However, it does not explicitly state when to use this tool versus alternatives like search_tasks_by_task_type or search_tasks_by_tag, nor does it provide exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_task_commentsGet Task CommentsARead-onlyIdempotent
Get one reverse-chronological page of comments from a ClickUp Task.
| Name | Required | Description | Default |
|---|---|---|---|
| start | No | ||
| task_id | Yes | ||
| start_id | No | ||
| workspace_id | No | ||
| custom_task_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds the behavioral detail that results are one page in reverse-chronological order, which is useful. However, it does not disclose how to navigate pages or what the response structure looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the core purpose without extraneous words. Every word earns its place, making it appropriately concise.
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?
The description gives the essential purpose and useful ordering/pagination information, but lacks details on pagination parameters (start vs start_id), response format, and possible filters. Given the absence of an output schema and zero parameter descriptions, the description leaves meaningful gaps for effective invocation.
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 has zero descriptions for its parameters, and the description only implies task_id via 'from a ClickUp Task'. It does not explain start, start_id, workspace_id, or custom_task_ids, leaving the agent to guess their semantics. This is insufficient compensation for 0% 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 precisely states the action ('get'), resource ('comments'), source ('from a ClickUp Task'), and scope ('one reverse-chronological page'). It differentiates from siblings like create_task_comment and get_threaded_replies by focusing on listing comments with specific ordering and pagination.
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 the tool is used to fetch comments on a task, but it doesn't explicitly state when to prefer this over alternatives like get_threaded_replies or when not to use it. No guidance is provided on pagination or filtering scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_threaded_repliesGet Threaded RepliesARead-onlyIdempotent
Get all replies beneath a ClickUp parent comment.
| Name | Required | Description | Default |
|---|---|---|---|
| comment_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the behavioral context that it retrieves 'all replies' (indicating a list operation) and specifically for 'parent comments' (implying hierarchy). It doesn't contradict annotations and adds value by clarifying the scope of the returned 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, concise sentence that conveys the tool's purpose without unnecessary detail. It's front-loaded with the action verb and resource, and 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?
For a simple read-only tool with one parameter and strong annotations, the description is largely complete. It could benefit from mentioning the return format (e.g., list of reply objects) or any pagination behavior, but the output schema is absent and annotations cover the read-only and idempotent aspects. The description sufficiently explains the core 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 0%, and the only parameter, comment_id, is minimally described by its name and constraints (string, max 256). The description adds value by indicating that comment_id should be a parent comment's ID, but it doesn't elaborate on formatting or how to obtain the ID. With only one parameter, baseline is 4, but the lack of explicit parameter documentation in the description brings it to 3.
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 all replies beneath a ClickUp parent comment' uses a specific verb and resource, and clarifies that it operates on a parent comment. It distinguishes from sibling tools by focusing on threaded replies, which is unique among the listed 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 clearly indicates the tool is for fetching replies under a parent comment, which implies a read-only usage scenario. It doesn't explicitly state when not to use it or name alternatives, but the context of sibling tools (e.g., get_task_comments) makes the use case clear. The 'parent comment' qualifier provides implicit guidance that this is for comment threads, not top-level comments.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workspace_hierarchyGet Workspace HierarchyBRead-onlyIdempotent
Get accessible Spaces, Folders, and Lists in a ClickUp Workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| refresh | No | ||
| workspace_id | No | ||
| include_archived | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it as read-only, idempotent, and non-destructive. The description adds the 'accessible' qualifier and the hierarchy types, but it does not disclose behaviors like refresh semantics, include_archived default behavior, or pagination. This is minimal value beyond annotations.
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 no filler. It is front-loaded and every word contributes meaning, making it highly efficient for its 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 has three parameters, no output schema, and no parameter descriptions, this one-sentence description is insufficient. It omits parameter semantics, return value expectations, and usage guidance, leaving significant gaps for the 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 0%, and the description does not mention any of the three parameters (refresh, workspace_id, include_archived). An agent cannot infer what these parameters do from the description or schema, so the description fails to compensate.
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 uses a specific verb ('Get') and clearly defines the resource ('accessible Spaces, Folders, and Lists in a ClickUp Workspace'). It distinguishes from sibling tools like get_folder or get_list by referring to the full hierarchy scope.
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 this is for retrieving the full workspace hierarchy, but it does not explicitly state when to use it versus alternatives like search_workspace or get_folder. No exclusions or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workspace_membersGet Workspace MembersBRead-onlyIdempotent
List members and guests available in a ClickUp Workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the description adds the fact that the tool returns both members and guests, but it does not disclose additional behavioral traits such as default workspace behavior, permissions, or return format. With annotations covering safety, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence that immediately states the action and resource, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter and no output schema, the description fails to clarify the workspace_id parameter and does not describe the return structure beyond 'List members and guests.' This leaves the agent guessing about required inputs and expected output.
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 only parameter, workspace_id, is not described in the schema or the description, and it is marked optional with no explanation of its role or what happens if omitted. Since schema coverage is 0%, the description's lack of any parameter semantics is a significant gap.
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 uses the specific verb 'List' and identifies the resource as 'members and guests available in a ClickUp Workspace,' clearly distinguishing it from sibling tools like search_workspace or find_member_by_name.
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 does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention exclusions. It merely implies usage for listing workspace members, so it relies on the reader to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_task_to_listMove Task to ListCDestructive
Move a ClickUp Task to a new home List using the v3 API.
| Name | Required | Description | Default |
|---|---|---|---|
| list_id | Yes | ||
| task_id | Yes | ||
| workspace_id | No | ||
| status_mappings | No | ||
| move_custom_fields | No | ||
| custom_fields_to_move | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive behavior (destructiveHint=true), but the description does not elaborate on the consequences of moving a task (e.g., removal from the old list, potential status changes). It adds minimal context beyond the annotations, and no details about status mappings or custom field handling are provided.
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, front-loaded sentence that clearly states the primary action. It avoids fluff, though the phrase 'using the v3 API' is mildly redundant filler. Overall, it is efficiently structured but under-informative.
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?
The tool has six parameters, two required, and no output schema, but the description provides only a one-line summary. It fails to explain the effect on the task's current list, the meaning of status mappings, or the purpose of custom field options. The description is far too minimal for a tool with this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining parameter meaning. It does not mention any of the six parameters or clarify ambiguous ones like 'status_mappings' or 'move_custom_fields.' The description adds no semantic value beyond what the raw schema already exposes.
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 action: 'Move a ClickUp Task to a new home List.' It uses a specific verb (Move) and names the resource (Task) and destination (List). It implicitly distinguishes from sibling 'add_task_to_list' by conveying relocation rather than mere addition.
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 offers no explicit guidance on when to use this tool versus alternatives. It does not mention when moving is preferable to adding, nor any prerequisites or caveats. The phrase 'new home List' hints at the intended scenario, but that is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_dependencyRemove DependencyBDestructive
Remove an explicit waiting-on or blocking dependency between two ClickUp Tasks.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| direction | Yes | ||
| workspace_id | No | ||
| custom_task_ids | No | ||
| related_task_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive and read-only false. The description adds that only explicit dependencies are removed, which is useful context, but does not describe side effects, reversibility, or behavior when the dependency doesn't exist.
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?
One sentence, efficient, front-loaded with verb and object. No unnecessary words.
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?
Despite having 5 parameters and no output schema, the description provides only a single sentence. It omits behavior for missing dependencies, workspace scope, and return values, leaving agents without enough context for a destructive operation.
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 0%, so the description must compensate. It clarifies direction ('waiting-on or blocking') and implies two task IDs, but leaves workspace_id and custom_task_ids unexplained and doesn't clarify which task_id plays which role in the dependency direction.
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?
Clearly states the action (remove), the resource (explicit waiting-on or blocking dependency between two ClickUp Tasks), and distinguishes from siblings like add_dependency. The qualifier 'explicit' adds precision about scope.
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 (e.g., add_dependency, delete_task). It doesn't mention prerequisites, scenarios, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_tag_from_taskRemove Tag from TaskADestructive
Remove a ClickUp Tag from a Task without deleting the Tag itself.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| tag_name | Yes | ||
| workspace_id | No | ||
| custom_task_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful context beyond annotations by specifying that the tag itself is preserved, which is not captured by destructiveHint=true. This is a non-obvious behavioral detail that helps the agent understand side effects. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words. It front-loads the action and resource, then adds a valuable caveat about preserving the tag. 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?
For a simple mutation with annotations present, the description is minimally viable but lacks coverage of optional parameters and any mention of return values or error behavior. It could be more complete for full autonomous use, especially without an 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 0%, so the description must compensate. It implicitly references task_id and tag_name ('Remove a Tag from a Task') but provides no explanation for workspace_id or custom_task_ids. The description does not fully cover the parameter semantics needed for correct invocation.
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 ('Remove'), the resource ('ClickUp Tag from a Task'), and explicitly clarifies that the tag itself is not deleted. This distinguishes it from sibling tools like add_tag_to_task and prevents confusion with tag deletion.
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 when to use the tool (when removing a tag from a task) but provides no explicit guidance on alternatives or exclusions. It does not mention add_tag_to_task as the reverse operation or any conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_task_linkRemove Task LinkBDestructive
Remove the ClickUp Task Link between two different Tasks.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| workspace_id | No | ||
| custom_task_ids | No | ||
| related_task_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds the scoping detail that the link is between two different tasks, which is a mild behavioral constraint. However, it does not disclose side effects, permanence, or whether the tasks themselves are affected, so added value over annotations is limited.
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 sentence that is perfectly front-loaded with the action and resource. Every word earns its place, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, no output schema, and zero schema descriptions, this one-line description is insufficient. It does not explain what a 'Task Link' is, how to obtain task IDs, the role of optional parameters, or any prerequisites. The tool's complexity demands more contextual detail.
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 0%. The description implies that task_id and related_task_id correspond to the two tasks, but it does not explicitly name them or explain workspace_id or custom_task_ids. The description only partially compensates for the lack of parameter documentation.
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 uses the specific verb 'Remove' and identifies the resource as the 'ClickUp Task Link', clearly distinguishing it from sibling tools like add_task_link and remove_dependency. It also clarifies the scope 'between two different Tasks', making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, when not to use, or possible alternatives such as remove_dependency. Usage context is entirely absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_assigneesResolve AssigneesARead-onlyIdempotent
Resolve several proposed assignees to member IDs and expose ambiguous matches.
| Name | Required | Description | Default |
|---|---|---|---|
| assignees | Yes | ||
| workspace_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the bar is lower. The description adds the behavioral detail that ambiguous matches are exposed, which is a meaningful disclosure about how the tool handles multiple possible matches.
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 sentence that is front-loaded with the action verb and avoids redundant phrasing. It conveys the core purpose 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?
For a tool with minimal schema and no output schema, the description leaves key questions unanswered: how ambiguous matches are represented in the response, what constitutes a valid assignee, and the role of workspace_id. Given the tool's 2-parameter complexity and good annotations, more detail would improve completeness, but the core purpose is covered.
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 0%, so the description must compensate, but it doesn't explain the format or semantics of the 'assignees' parameter beyond 'proposed assignees', nor does it mention the optional 'workspace_id' parameter at all. The array items are not described whether they are names, emails, or something else.
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 uses the specific verb 'resolve' with resource 'proposed assignees' to member IDs, which clearly defines the operation. It also mentions exposing ambiguous matches, distinguishing it from simple member lookup tools like find_member_by_name.
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 when there are multiple proposed assignees needing conversion to member IDs, but it doesn't explicitly state when to prefer this over alternatives such as find_member_by_name or get_workspace_members. No exclusion criteria or alternative tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_tasks_by_tagSearch Tasks by TagARead-onlyIdempotent
Retrieve accessible ClickUp Tasks with an exact tag.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | Yes | ||
| limit | No | ||
| cursor | No | ||
| max_pages | No | ||
| workspace_id | No | ||
| include_closed | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds that only 'accessible' tasks are returned and matching is 'exact', which provides useful context. However, it doesn't disclose pagination behavior, return format, or workspace scoping, so it only partially compensates.
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 sentence that directly states the tool's purpose without redundant wording, making it appropriately concise and front-loaded.
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 6 parameters, lack of output schema, and zero schema descriptions, the one-line description is insufficient. It doesn't explain how pagination works, what include_closed does, or what the response structure looks like, leaving substantial ambiguity for the 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 0%, but the description only clarifies the 'tag' parameter (exact match). Other parameters such as limit, cursor, max_pages, workspace_id, and include_closed are left unexplained, requiring the agent to infer from names and constraints.
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 uses the specific verb 'Retrieve' and identifies the resource as 'ClickUp Tasks' with the qualifier 'with an exact tag', clearly distinguishing it from siblings like search_tasks_by_task_type or search_workspace.
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 the tool is for finding tasks by tag, but does not explicitly state when to use it over alternatives like search_tasks_by_task_type or how it relates to other search tools. The context is clear, but no exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_tasks_by_task_typeSearch Tasks by Task TypeARead-onlyIdempotent
Retrieve accessible ClickUp Tasks matching one custom task type.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | ||
| max_pages | No | ||
| task_type | Yes | ||
| workspace_id | No | ||
| include_closed | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds the 'accessible' scope limitation, which is useful, but it does not disclose pagination behavior, rate limits, or consequences of including closed tasks. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It immediately communicates the core function and filter, which is exemplary 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?
With no output schema and six parameters, the description is too sparse. It fails to mention pagination, filtering by workspace, or the include_closed flag, leaving significant operational context missing for a search 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 0%, so the description must compensate. It clarifies 'task_type' by calling it 'custom', but the other five parameters (limit, cursor, max_pages, workspace_id, include_closed) are left entirely unexplained in both schema and 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 clearly states the verb 'Retrieve', the resource 'ClickUp Tasks', and the filter 'matching one custom task type'. It distinctly differentiates from sibling tools like search_tasks_by_tag by specifying the type-based filtering.
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 for retrieving tasks by type but provides no explicit guidance on when to use this tool versus alternatives, nor does it mention exclusions. The phrase 'accessible' hints at scope but does not offer decision-making context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_workspaceSearch WorkspaceARead-onlyIdempotent
Sweep accessible Tasks, Spaces, Folders, and Lists for normalized text matches.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| cursor | No | ||
| max_pages | No | ||
| entity_types | No | ||
| workspace_id | No | ||
| include_closed | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context: it searches only 'accessible' items and applies 'normalized text matches'. However, it does not disclose pagination behavior, what counts as a match, or how limits/cursors work. Given the strong annotations, a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It conveys the action, scope, and nature of the search efficiently.
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 7 parameters, no output schema, and no parameter descriptions, one sentence is not enough. The description fails to mention return values, pagination mechanics, the meaning of 'normalized', or how closed items are treated. Annotations cover safety but not the behavioral details needed for 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 0%, and there are 7 parameters. The description does not explain the meaning or format of most parameters (limit, cursor, max_pages, workspace_id, include_closed). It does imply that 'query' is a text match and that entity_types cover Tasks/Spaces/Folders/Lists, but this is insufficient to compensate for the lack of schema descriptions.
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 uses the specific verb 'Sweep' and clearly identifies the resources searched (Tasks, Spaces, Folders, Lists) and the nature of the search ('normalized text matches'). This strongly differentiates it from sibling tools like search_tasks_by_task_type and search_tasks_by_tag, which are narrower and type-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?
The description implies when to use it: when you need to search across multiple workspace entity types for normalized text. However, it does not explicitly state when not to use it or mention alternative tools such as search_tasks_by_tag. The usage context is reasonably clear but lacks explicit exclusions or comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_task_custom_fieldsSet task custom fieldsBDestructive
Discover, validate, set, or remove custom field values on a task.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | Yes | ||
| confirm | No | ||
| dry_run | No | ||
| task_id | Yes | ||
| workspace_id | No | ||
| custom_task_ids | No | ||
| confirmation_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions 'set, or remove' which aligns with the destructiveHint and readOnlyHint annotations, adding a small amount of context. However, it does not explain the dry_run/confirm workflow or any side effects of removal, missing an opportunity to disclose behavior beyond annotations.
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 sentence and easy to scan. It packs several verbs which could be clearer, but it is appropriately concise without unnecessary filler.
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?
With 7 parameters, including a confirmation workflow and a destructive hint, no output schema, and no parameter descriptions, this description is too sparse to guide correct invocation. It omits critical details about the dry-run/confirm flow and how custom field removal works.
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 0%, so the description needed to compensate by explaining parameters like dry_run, confirm, unset, and fields. It provides only a high-level action list ('Discover, validate, set, or remove') and does not map any parameters to their behavior, leaving the agent to infer from names alone.
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 identifies the tool as working with custom field values on a task, which distinguishes it from general task update tools. However, the verbs 'discover' and 'validate' are ambiguous and not clearly reflected in the input schema, making the purpose slightly less crisp.
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 tool name and title imply it is for custom field operations, but the description itself does not explicitly state when to use it instead of alternatives like update_task. There is no mention of exclusions or prerequisite conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_bulk_tasksUpdate tasks in bulkADestructive
Preview or update multiple tasks with bounded concurrency and per-item results.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | ||
| confirm | No | ||
| dry_run | No | ||
| confirmation_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive/read-only traits. The description adds useful behavioral context: it supports preview mode (dry-run), bounded concurrency, and per-item results. However, it does not describe confirmation flow or failure 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?
A single concise sentence that front-loads the action and packs in three behavioral modifiers (preview, bounded concurrency, per-item results) with no wasted words.
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?
This is a complex bulk tool with no output schema, yet the description omits important context: confirmation flow, default parameter values, return format, and error handling. The one-liner is too sparse for 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 0%, so the description must compensate, but it only hints at 'preview' for the dry_run parameter. The confirm, confirmation_token, and items parameters are not explained beyond their schema names.
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 identifies the action ('preview or update'), the resource ('multiple tasks'), and differentiates from siblings like update_task (single task) and create_bulk_tasks (creation). It is specific and not a tautology.
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 phrase 'multiple tasks' implies batch usage, and 'preview' suggests a dry-run capability, but it does not explicitly state when to use this tool over alternatives or mention exclusions. No sibling tools are named as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_folderUpdate FolderBDestructive
Rename a ClickUp Folder.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| folder_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the annotations. It does not disclose potential side effects, whether the rename is irreversible, or any impact on related resources, despite the destructiveHint being true.
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, front-loaded sentence that is efficient and easily parsed. However, it is slightly under-specified, lacking additional context that could make it more informative without becoming verbose.
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 simplicity of the tool (two parameters, no output schema) and existing annotations, the description provides the core action. However, it lacks details about the operation's effects and return behavior, making it minimally viable but not fully complete.
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?
With 0% schema coverage, the description must compensate by explaining parameter meanings, but it only implies the 'name' parameter through 'Rename' and omits explicit clarification of 'folder_id'. The schema property names are self-explanatory, but the description adds little 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 'Rename a ClickUp Folder' uses a specific verb and resource, clearly distinguishing it from sibling tools like create_folder and get_folder. It accurately reflects the schema, which only includes folder_id and name.
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, nor are any exclusions or prerequisites mentioned. The description offers no contextual signals for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_listUpdate ListCDestructive
Update the supplied settings of a ClickUp List.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| status | No | ||
| content | No | ||
| list_id | Yes | ||
| assignee | No | ||
| due_date | No | ||
| priority | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=true, but the description adds no behavioral context. It does not explain what 'destructive' means here (e.g., whether unspecified fields are cleared, whether existing tasks are affected, or any permission requirements). With no extra disclosure, the description relies entirely on annotations and fails to enrich the agent's mental model.
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, front-loaded sentence with no filler. It is appropriately short for a simple update operation, though the brevity sacrifices some behavioral detail. It earns its place but does not go beyond the bare minimum.
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 7-parameter mutation tool with no output schema and no schema descriptions, this description is severely lacking. It does not explain which settings can be updated, whether fields are optional, the meaning of null values, or what the response contains. The agent is left to guess at critical details for safe invocation.
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 0%, and the description does not enumerate or explain any parameters beyond 'supplied settings.' Although parameter names like status, content, and assignee are somewhat self-explanatory, required list_id, the accepted formats, and the effect of null values are left undocumented. The description adds minimal value over the schema.
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 a clear verb ('Update') and resource ('a ClickUp List'), and specifies that it updates 'supplied settings,' which conveys partial updates. However, it does not differentiate from sibling update tools like update_task or update_folder beyond the resource type, so it stops short of a full 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?
No guidance is given on when to use this tool vs. alternatives. It does not mention that this tool is for modifying an existing list, nor does it contrast with create_list_in_space or update_folder. The intended use is only implicitly clear from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_taskUpdate taskBDestructive
Update only the provided fields of a ClickUp task.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| status | No | ||
| task_id | Yes | ||
| archived | No | ||
| due_date | No | ||
| priority | No | ||
| assignees | No | ||
| start_date | No | ||
| description | No | ||
| workspace_id | No | ||
| due_date_time | No | ||
| custom_task_ids | No | ||
| start_date_time | No | ||
| time_estimate_ms | No | ||
| markdown_description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnly=false and destructiveHint=true. The description adds the partial-update behavior ('only the provided fields'), which clarifies that unspecified fields are preserved. However, it does not disclose side effects such as null handling, status validation, or output behavior. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant content. It is concise and to the point, though it could be more informative without losing 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?
Given the complexity of the schema (15 parameters, nested objects) and the absence of an output schema, the description is insufficient. It only states the core action and partial-update behavior, but does not explain how to use the parameters, when to provide workspace_id, or what the response looks like. The agent would need additional external knowledge to invoke this tool correctly.
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 0%, and the description provides no explanation of any of the 15 parameters, including the nested assignees object, date-time formats, or boolean flags. The description does not compensate at all for the lack of schema descriptions, leaving parameter meanings entirely unclear.
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 'Update', the resource 'ClickUp task', and the scope 'only the provided fields', which distinguishes it from create_task, delete_task, and update_bulk_tasks. This is a specific and useful 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?
No guidance is given on when to use this tool vs alternatives. It does not mention update_bulk_tasks for bulk operations, nor does it describe any prerequisites or exclusions. The description only states what it does, not when to choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a distinct purpose: searches are differentiated by target or filter, task lifecycle operations are separate from list/folder and member operations, and even similar actions (create vs. bulk create, add vs. move) are clearly scoped. No two tools appear to do the same thing.
All tool names follow a consistent verb_noun snake_case pattern (e.g., create_task, get_list, add_tag_to_task, resolve_assignees). Search, find, and resolve variations are still consistent in structure, with no mixing of camelCase or other styles.
With 32 tools, this server is well above the typical 3-15 well-scoped range and even beyond the 16-25 'heavy' threshold. While each tool has a distinct purpose, the sheer number is excessive for an MCP integration and may overwhelm agents.
The toolset covers task CRUD, bulk operations, comments, tags, links, dependencies, list/folder management, and member resolution. Minor gaps exist, such as no delete_list or delete_folder, and no explicit task listing by list, but search and bulk tools fill most needs.
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
ClickUp MCP — wraps the ClickUp REST API v2 (BYO API key)
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Official Todoist MCP server for AI assistants to manage tasks, projects, and workflows.
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Related MCP Servers
- AlicenseBqualityBmaintenanceLightweight ClickUp MCP server for task management with 37 tools and token-optimized responses to reduce API verbosity.37643MIT
- AlicenseBqualityDmaintenanceMCP server for ClickUp task management, enabling task search, creation, update, deletion, workspace info retrieval, and comment management via ClickUp API v2.1565MIT
- AlicenseAqualityAmaintenanceA comprehensive MCP server for the ClickUp API exposing 166 tools to manage Spaces, Folders, Lists, Tasks, Docs, and more, enabling LLMs to read and drive a ClickUp Workspace.1001Apache 2.0
- FlicenseAqualityBmaintenanceMCP server for Personal OS API that enables managing tasks, notes, projects, collections, reviews, and more through typed tools over stdio.66
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/Blackklegend/custom-clickup-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server