The ClickUp connector enables secure, real-time interaction between AI agents like Claude and your ClickUp workspace. Unlock powerful AI-driven automation by connecting your favorite AI tools directly to ClickUp tasks, docs, Chat, and more.
Protocol
MCP 2026-07-28
Server version
stable-20260924-7d4dcdf
Supports
Tools
Logging
Overall score
A
Overall quality score: 90 out of 10090/100
Server metadata
4 of 8 fields50/1005 / 10 pts
Identity, discovery, and usage metadata advertised during the MCP handshake.
When you mention a ClickUp task, write it as an inline markdown link with the task name as the anchor text, e.g. [Design landing page](https://app.clickup.com/t/abc123). Never output a bare task URL, a URL on its own line, or a list of URLs — hosts render those as broken link cards. Beyond the dedicated clickup_* tools, this server exposes a catalog of ClickUp operations: clickup_get_operators lists the operations enabled here with their input schemas, clickup_execute_operator runs one of them, and clickup_get_schema describes how the underlying entities relate. Use a dedicated clickup_* tool when one covers the whole request in a single call. When no dedicated tool does, or when a request spans many objects (for example several tasks to change, create or read), call clickup_get_operators first and run the matching operation with clickup_execute_operator. Do not call a single-object tool once per object (for example clickup_update_task for every task in a list) until clickup_get_operators has shown no operation that covers them all. The enabled set differs between servers and grows over time: answer any question about what this server can do from clickup_get_operators, never from tool names or descriptions.
Protocol
Pass100/10020 / 20 pts
Connection, authentication, and protocol compatibility.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description76/100
Attach file to task. Requires task_id. File sources: 1) base64 + filename (small files under ~200KB only), 2) URL (http/https). For files on the local machine, use request_attachment_upload instead.
The description explains the capability, when to use it, and what to expect.
Inputs83/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
task_id
Task ID (supports custom IDs like 'DEV-1234')
Clear enough to supply this argument.
file_name
Name of the file to be attached (include the extension). Required when using file_data.
Clear enough to supply this argument.
file_data
Base64-encoded content of the file (without the data URL prefix).
Clear enough to supply this argument.
file_url
URL to download the file from (must start with http:// or https://).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
auth_header
Authorization header to use when downloading from the web URL.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description95/100
Get short-lived, structured upload details (upload URL, ticket, HTTP method, and multipart field name) to attach a LOCAL file (any size) to a task; follow the returned instructions to upload it with a native HTTP client. For small base64 payloads or web URLs, use attach_task_file instead.
The description explains the capability, when to use it, and what to expect.
Inputs92/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
task_id
Task ID (supports custom IDs like 'DEV-1234')
Clear enough to supply this argument.
file_name
Optional file name override (include the extension). Defaults to the local file's own name.
Clear enough to supply this argument.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"task_id",
"upload_url",
"upload_ticket",
"http_method",
"multipart_field",
"expires_at",
"instructions"
],
"properties": {
"success": {
"type": "boolean"
},
"task_id": {
"type": "string",
"description": "Resolved task ID the upload is bound to."
},
"file_name": {
"type": "string",
"description": "Filename to give the uploaded attachment. When present, set it as the filename of the multipart \"attachment\" part; otherwise the local file's own name is used."
},
"expires_at": {
"type": "string",
"description": "ISO 8601 expiry of the upload ticket."
},
"upload_url": {
"type": "string",
"description": "URL the file must be POSTed to."
},
"http_method": {
"type": "string",
"description": "HTTP method for the upload request (always POST)."
},
"instructions": {
"type": "string",
"description": "How to complete the upload."
},
"upload_ticket": {
"type": "string",
"description": "Upload ticket. Send it in the X-Upload-Ticket request header."
},
"multipart_field": {
"type": "string",
"description": "multipart/form-data field name for the file (always \"attachment\")."
}
},
"additionalProperties": false
}
Original tool metadata
{
"name": "clickup_request_attachment_upload",
"description": "Get short-lived, structured upload details (upload URL, ticket, HTTP method, and multipart field name) to attach a LOCAL file (any size) to a task; follow the returned instructions to upload it with a native HTTP client. For small base64 payloads or web URLs, use attach_task_file instead.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"task_id"
],
"properties": {
"task_id": {
"type": "string",
"description": "Task ID (supports custom IDs like 'DEV-1234')"
},
"file_name": {
"type": "string",
"description": "Optional file name override (include the extension). Defaults to the local file's own name."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"task_id",
"upload_url",
"upload_ticket",
"http_method",
"multipart_field",
"expires_at",
"instructions"
],
"properties": {
"success": {
"type": "boolean"
},
"task_id": {
"type": "string",
"description": "Resolved task ID the upload is bound to."
},
"file_name": {
"type": "string",
"description": "Filename to give the uploaded attachment. When present, set it as the filename of the multipart \"attachment\" part; otherwise the local file's own name is used."
},
"expires_at": {
"type": "string",
"description": "ISO 8601 expiry of the upload ticket."
},
"upload_url": {
"type": "string",
"description": "URL the file must be POSTed to."
},
"http_method": {
"type": "string",
"description": "HTTP method for the upload request (always POST)."
},
"instructions": {
"type": "string",
"description": "How to complete the upload."
},
"upload_ticket": {
"type": "string",
"description": "Upload ticket. Send it in the X-Upload-Ticket request header."
},
"multipart_field": {
"type": "string",
"description": "multipart/form-data field name for the file (always \"attachment\")."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Request Attachment Upload",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description96/100
Download a ClickUp task attachment (get attachment IDs from clickup_get_task with include: ["attachments"]). Returns a short-lived download URL plus attachment metadata. IMPORTANT: the URL is short-lived and, on workspaces with private attachments enabled, single-use — it expires within ~5 minutes. Fetch it immediately and exactly once; do not preview, HEAD-request, retry, or store it. If a download fails or the URL expired, call this tool again for a fresh URL.
The description explains the capability, when to use it, and what to expect.
Inputs92/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
task_id
Task ID (supports custom IDs like 'DEV-1234')
Clear enough to supply this argument.
attachment_id
Attachment ID. List a task's attachments with clickup_get_task using include: ["attachments"].
Clear enough to supply this argument.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"task_id",
"attachment_id",
"title",
"url",
"url_notice"
],
"properties": {
"url": {
"type": "string",
"description": "Download URL. Short-lived, and single-use on workspaces with private attachments enabled (~5 minute expiry). Fetch it immediately and exactly once; do not preview, HEAD-request, retry, or store it. If the download fails or the URL expired, call clickup_download_task_attachment again for a fresh URL."
},
"size": {
"type": "number",
"description": "File size in bytes. Absent when the upstream API does not report one (e.g. legacy or link attachments)."
},
"title": {
"type": "string"
},
"success": {
"type": "boolean"
},
"task_id": {
"type": "string",
"description": "Resolved task ID."
},
"mimetype": {
"type": "string",
"description": "MIME type. Absent when the upstream API does not report one (e.g. legacy attachments)."
},
"custom_id": {
"type": [
"string",
"null"
],
"description": "Custom task ID (e.g., 'DEV-1234') if the workspace has custom IDs enabled, otherwise null."
},
"extension": {
"type": "string",
"description": "File extension. Absent when the attachment has none (e.g. extension-less files)."
},
"url_notice": {
"type": "string",
"description": "Handling instructions for the download URL."
},
"attachment_id": {
"type": "string"
}
},
"additionalProperties": false
}
Original tool metadata
{
"name": "clickup_download_task_attachment",
"description": "Download a ClickUp task attachment (get attachment IDs from clickup_get_task with include: [\"attachments\"]). Returns a short-lived download URL plus attachment metadata. IMPORTANT: the URL is short-lived and, on workspaces with private attachments enabled, single-use — it expires within ~5 minutes. Fetch it immediately and exactly once; do not preview, HEAD-request, retry, or store it. If a download fails or the URL expired, call this tool again for a fresh URL.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"task_id",
"attachment_id"
],
"properties": {
"task_id": {
"type": "string",
"description": "Task ID (supports custom IDs like 'DEV-1234')"
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
},
"attachment_id": {
"type": "string",
"description": "Attachment ID. List a task's attachments with clickup_get_task using include: [\"attachments\"]."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"task_id",
"attachment_id",
"title",
"url",
"url_notice"
],
"properties": {
"url": {
"type": "string",
"description": "Download URL. Short-lived, and single-use on workspaces with private attachments enabled (~5 minute expiry). Fetch it immediately and exactly once; do not preview, HEAD-request, retry, or store it. If the download fails or the URL expired, call clickup_download_task_attachment again for a fresh URL."
},
"size": {
"type": "number",
"description": "File size in bytes. Absent when the upstream API does not report one (e.g. legacy or link attachments)."
},
"title": {
"type": "string"
},
"success": {
"type": "boolean"
},
"task_id": {
"type": "string",
"description": "Resolved task ID."
},
"mimetype": {
"type": "string",
"description": "MIME type. Absent when the upstream API does not report one (e.g. legacy attachments)."
},
"custom_id": {
"type": [
"string",
"null"
],
"description": "Custom task ID (e.g., 'DEV-1234') if the workspace has custom IDs enabled, otherwise null."
},
"extension": {
"type": "string",
"description": "File extension. Absent when the attachment has none (e.g. extension-less files)."
},
"url_notice": {
"type": "string",
"description": "Handling instructions for the download URL."
},
"attachment_id": {
"type": "string"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Download Task Attachment",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description70/100
Send a message or threaded reply to a chat channel. Provide parent_message_id for threaded replies. Supports markdown and post types.
The description explains the capability, when to use it, and what to expect.
Inputs86/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
channel_id
ID of the chat channel to send the message to. Ignored when parent_message_id is set — a reply's channel is derived from its parent message.
Clear enough to supply this argument.
content
Message content to send (supports markdown).
Clear enough to supply this argument.
parent_message_id
ID of the parent message to reply to. When provided, the message is sent as a threaded reply instead of a top-level channel message. Use clickup_get_chat_channel_messages to find the message ID.
Clear enough to supply this argument.
type
Type of message to send.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
content_format
Format of the message content.
Explain the meaning of this value, not just its name.
assignee
User ID to assign the message to. Use clickup_resolve_assignees to convert email, username, or "me" to user ID if needed.
Clear enough to supply this argument.
group_assignee
Group ID to assign the message to.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
followers
Array of user IDs to add as followers of the message. Use clickup_resolve_assignees to convert emails, usernames, or "me" to user IDs if needed.
Clear enough to supply this argument.
post_title
Title for the post (required if type is 'post').
Clear enough to supply this argument.
post_type
Kind of post (required if type is 'post'). Resolved to the workspace's post subtype.
Clear enough to supply this argument.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"name": "clickup_send_chat_message",
"description": "Send a message or threaded reply to a chat channel. Provide parent_message_id for threaded replies. Supports markdown and post types.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"channel_id",
"content"
],
"properties": {
"type": {
"enum": [
"message",
"post"
],
"type": "string",
"default": "message",
"description": "Type of message to send."
},
"content": {
"type": "string",
"description": "Message content to send (supports markdown)."
},
"assignee": {
"type": "string",
"description": "User ID to assign the message to. Use clickup_resolve_assignees to convert email, username, or \"me\" to user ID if needed."
},
"followers": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of user IDs to add as followers of the message. Use clickup_resolve_assignees to convert emails, usernames, or \"me\" to user IDs if needed."
},
"post_type": {
"enum": [
"Update",
"Announcement",
"Idea",
"Discussion"
],
"type": "string",
"description": "Kind of post (required if type is 'post'). Resolved to the workspace's post subtype."
},
"channel_id": {
"type": "string",
"description": "ID of the chat channel to send the message to. Ignored when parent_message_id is set — a reply's channel is derived from its parent message."
},
"post_title": {
"type": "string",
"description": "Title for the post (required if type is 'post')."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
},
"content_format": {
"enum": [
"text/md",
"text/plain"
],
"type": "string",
"default": "text/md",
"description": "Format of the message content."
},
"group_assignee": {
"type": "string",
"description": "Group ID to assign the message to."
},
"parent_message_id": {
"type": "string",
"description": "ID of the parent message to reply to. When provided, the message is sent as a threaded reply instead of a top-level channel message. Use clickup_get_chat_channel_messages to find the message ID."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"message_id",
"channel_id"
],
"properties": {
"success": {
"type": "boolean"
},
"post_type": {
"type": "string"
},
"channel_id": {
"type": "string"
},
"message_id": {
"type": "string"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Send Chat Message",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description78/100
Get messages for a chat channel. Messages with has_replies=true have threads fetchable via clickup_get_chat_message_replies. Supports pagination. Channel URLs look like /<ws>/v/cn/<channel_id> or /<ws>/chat/r/<channel_id>.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
channel_id
ID of the chat channel to get messages from.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
cursor
Cursor for pagination. Use the next_cursor value from the previous response to fetch the next page of results.
Clear enough to supply this argument.
limit
Maximum number of messages to return (1-100).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
content_format
Response content format.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description89/100
Get threaded replies for a chat message by message_id. Supports pagination. Chat thread URLs (/<ws>/v/cn/<channel_id>/t/<id> or /<ws>/chat/r/<channel_id>/t/<id>) end in a chat message id — pass it here, not to clickup_get_task. That id is usually the thread root but can be a reply inside the thread; if no replies come back, find the thread root via clickup_get_chat_channel_messages on the channel.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
message_id
ID of the chat message to get replies from.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
cursor
Cursor for pagination. Use the next_cursor value from the previous response to fetch the next page of results.
Clear enough to supply this argument.
limit
Maximum number of replies to return (1-100).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
content_format
Response content format.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description85/100
Get task comments with reply_count per comment. Use clickup_get_threaded_comments for replies when reply_count > 0. Supports pagination via start/start_id.
The description explains the capability, when to use it, and what to expect.
Inputs81/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
task_id
Task ID (supports custom IDs like 'DEV-1234')
Clear enough to supply this argument.
start
Timestamp (in milliseconds) to start retrieving comments from. Used for pagination.
Clear enough to supply this argument.
start_id
Comment ID to start from. Used together with start for pagination.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description71/100
Create a comment or threaded reply on a task, list, or view. Supports Markdown (headings, bold, code blocks, tables). Use entity_type + entity_id for the target entity. Provide reply_to_id for a threaded reply.
The description explains the capability, when to use it, and what to expect.
Inputs82/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
entity_type
Entity type to comment on. Use with entity_id.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
entity_id
ID of the entity to comment on.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
comment_text
Comment content. Supports Markdown formatting. To @mention a user, write a markdown link [@Name](#user_mention#user_id) inline, e.g. 'Hey [@Jane](#user_mention#81344), please review' — user_id MUST be a numeric ClickUp user id from clickup_resolve_assignees (the display name is resolved server-side).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
reply_to_id
ID of a parent comment to reply to. When provided, the comment is posted as a threaded reply instead of a top-level comment.
Clear enough to supply this argument.
notify_all
Whether to notify all assignees. Default is false.
Clear enough to supply this argument.
assignee
User ID to assign the comment to. Use clickup_resolve_assignees to convert email, username, or "me" to user ID if needed.
Clear enough to supply this argument.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"name": "clickup_create_comment",
"description": "Create a comment or threaded reply on a task, list, or view. Supports Markdown (headings, bold, code blocks, tables). Use entity_type + entity_id for the target entity. Provide reply_to_id for a threaded reply.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"comment_text"
],
"properties": {
"assignee": {
"type": "number",
"description": "User ID to assign the comment to. Use clickup_resolve_assignees to convert email, username, or \"me\" to user ID if needed."
},
"entity_id": {
"type": "string",
"description": "ID of the entity to comment on."
},
"notify_all": {
"type": "boolean",
"description": "Whether to notify all assignees. Default is false."
},
"entity_type": {
"enum": [
"task",
"list",
"view"
],
"type": "string",
"default": "task",
"description": "Entity type to comment on. Use with entity_id."
},
"reply_to_id": {
"type": "string",
"description": "ID of a parent comment to reply to. When provided, the comment is posted as a threaded reply instead of a top-level comment."
},
"comment_text": {
"type": "string",
"maxLength": 40000,
"description": "Comment content. Supports Markdown formatting. To @mention a user, write a markdown link [@Name](#user_mention#user_id) inline, e.g. 'Hey [@Jane](#user_mention#81344), please review' — user_id MUST be a numeric ClickUp user id from clickup_resolve_assignees (the display name is resolved server-side)."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"comment_id"
],
"properties": {
"success": {
"type": "boolean"
},
"comment_id": {
"type": "string"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Create Comment",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
Shorten the title to an action and subject; move usage details into the description.
Description76/100
[DEPRECATED → clickup_create_comment] Legacy name for creating a task comment, kept for clients with stale tool listings. Prefer the replacement tool; it takes entity_id instead of task_id.
The description explains the capability, when to use it, and what to expect.
Inputs93/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
task_id
Task ID (supports custom IDs like 'DEV-1234')
Clear enough to supply this argument.
comment_text
Comment content. Supports Markdown formatting.
Clear enough to supply this argument.
notify_all
Whether to notify all assignees. Default is false.
Clear enough to supply this argument.
assignee
User ID to assign the comment to. Use clickup_resolve_assignees to convert email, username, or "me" to user ID if needed.
Clear enough to supply this argument.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description84/100
Edit an existing comment in place by comment_id. Replaces the comment text (supports Markdown), and can mark it resolved or reassign it. Use clickup_get_task_comments or clickup_get_threaded_comments to find the comment ID.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs90/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
comment_id
ID of the comment to update. Use clickup_get_task_comments or clickup_get_threaded_comments to find the comment ID.
Clear enough to supply this argument.
comment_text
New comment content that replaces the existing text. Supports Markdown formatting. To @mention a user, write [@Name](#user_mention#user_id) inline — user_id MUST be a numeric ClickUp user id from clickup_resolve_assignees.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
resolved
Mark the comment as resolved (true) or unresolved (false).
Clear enough to supply this argument.
assignee
User ID to assign the comment to. Use clickup_resolve_assignees to convert email, username, or "me" to user ID if needed.
Clear enough to supply this argument.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"name": "clickup_update_comment",
"description": "Edit an existing comment in place by comment_id. Replaces the comment text (supports Markdown), and can mark it resolved or reassign it. Use clickup_get_task_comments or clickup_get_threaded_comments to find the comment ID.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"comment_id"
],
"properties": {
"assignee": {
"type": "number",
"description": "User ID to assign the comment to. Use clickup_resolve_assignees to convert email, username, or \"me\" to user ID if needed."
},
"resolved": {
"type": "boolean",
"description": "Mark the comment as resolved (true) or unresolved (false)."
},
"comment_id": {
"type": "string",
"minLength": 1,
"description": "ID of the comment to update. Use clickup_get_task_comments or clickup_get_threaded_comments to find the comment ID."
},
"comment_text": {
"type": "string",
"maxLength": 40000,
"description": "New comment content that replaces the existing text. Supports Markdown formatting. To @mention a user, write [@Name](#user_mention#user_id) inline — user_id MUST be a numeric ClickUp user id from clickup_resolve_assignees."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"comment_id"
],
"properties": {
"success": {
"type": "boolean"
},
"comment_id": {
"type": "string"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Update Comment",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description97/100
Get custom field definitions at any hierarchy level (list, folder, space, or workspace). Returns field IDs, types, and options for dropdowns/labels. Use this to discover available custom fields before setting values on tasks. Multiple scopes can be queried in a single call.
The description explains the capability, when to use it, and what to expect.
Inputs70/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
list_id
List ID. Returns custom fields defined on this list.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
folder_id
Folder ID. Returns custom fields defined on this folder.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
space_id
Space ID. Returns custom fields defined on this space.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
include_workspace
If true, returns workspace-level custom fields.
Clear enough to supply this argument.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description80/100
List page names and structure of a document (no content). Use get_document_pages to fetch full page content by page ID.
Describe the returned information so the agent knows whether it will answer the request.
Inputs83/100
Explain what happens when this optional value is omitted.
document_id
ID of the document (e.g. 'ad-909705'). In ClickUp doc URLs the path is either /{workspace_id}/docs/{document_id} or /{workspace_id}/v/dc/{document_id}. The document_id is always the first ID after /docs/ or /v/dc/.
Clear enough to supply this argument.
max_page_depth
Maximum depth of pages to retrieve (-1 for unlimited)
Explain what happens when this optional value is omitted.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"name": "clickup_list_document_pages",
"description": "List page names and structure of a document (no content). Use get_document_pages to fetch full page content by page ID.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"document_id"
],
"properties": {
"document_id": {
"type": "string",
"description": "ID of the document (e.g. 'ad-909705'). In ClickUp doc URLs the path is either /{workspace_id}/docs/{document_id} or /{workspace_id}/v/dc/{document_id}. The document_id is always the first ID after /docs/ or /v/dc/."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
},
"max_page_depth": {
"type": "number",
"description": "Maximum depth of pages to retrieve (-1 for unlimited)"
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"pages"
],
"properties": {
"pages": {
"type": "array",
"items": {},
"description": "Document page listing"
}
},
"additionalProperties": false
},
"annotations": {
"title": "List Document Pages",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description81/100
Get the full content of specific pages by page ID. Use list_document_pages first to discover available page IDs.
Describe the returned information so the agent knows whether it will answer the request.
Inputs81/100
Explain the meaning of this value, not just its name.
document_id
ID of the document (e.g. 'ad-909705'). In ClickUp doc URLs the path is either /{workspace_id}/docs/{document_id}/{page_id} or /{workspace_id}/v/dc/{document_id}/{page_id}. The document_id is always the first ID after /docs/ or /v/dc/.
Clear enough to supply this argument.
page_ids
Array of page IDs to retrieve (e.g. ['ad-2675877']). In ClickUp doc URLs, the page_id is the second ID after /docs/ or /v/dc/. If the URL contains only one ID (e.g. /{workspace_id}/docs/{document_id}), that is the document_id — use list_document_pages to discover page IDs.
Clear enough to supply this argument.
content_format
Response content format.
Explain the meaning of this value, not just its name.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"name": "clickup_get_document_pages",
"description": "Get the full content of specific pages by page ID. Use list_document_pages first to discover available page IDs.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"document_id",
"page_ids"
],
"properties": {
"page_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of page IDs to retrieve (e.g. ['ad-2675877']). In ClickUp doc URLs, the page_id is the second ID after /docs/ or /v/dc/. If the URL contains only one ID (e.g. /{workspace_id}/docs/{document_id}), that is the document_id — use list_document_pages to discover page IDs."
},
"document_id": {
"type": "string",
"description": "ID of the document (e.g. 'ad-909705'). In ClickUp doc URLs the path is either /{workspace_id}/docs/{document_id}/{page_id} or /{workspace_id}/v/dc/{document_id}/{page_id}. The document_id is always the first ID after /docs/ or /v/dc/."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
},
"content_format": {
"enum": [
"text/plain",
"text/md"
],
"type": "string",
"default": "text/plain",
"description": "Response content format."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"pages"
],
"properties": {
"pages": {
"type": "array",
"items": {},
"description": "Document page contents"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Get Document Pages",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description83/100
Update a page in a ClickUp document. Use content_edit_mode to control how content is applied: append/prepend merge with the existing page server-side and preserve it exactly — no need to read the page first. The default is 'replace', which overwrites the whole page. If appended content should start on its own line, include a leading newline; if prepended content should end on its own line, include a trailing newline.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs75/100
Explain the meaning of this value, not just its name.
document_id
ID of the document containing the page (e.g. 'ad-909705'). In ClickUp doc URLs, the document_id is always the first ID after /docs/ or /v/dc/.
Clear enough to supply this argument.
page_id
ID of the page to update (e.g. 'ad-2675877'). In ClickUp doc URLs, this is the second ID after /docs/ or /v/dc/.
Clear enough to supply this argument.
name
New name for the page
Explain the meaning of this value, not just its name.
sub_title
New subtitle for the page
Explain the meaning of this value, not just its name.
content
New content for the page (must be non-empty; clearing a page is not supported). By default this REPLACES the entire existing page content — set content_edit_mode to 'append' or 'prepend' to add to the page instead of overwriting it.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
content_edit_mode
How to apply `content`: 'append' adds it at the end of the existing page, 'prepend' inserts it before the existing content, 'replace' (default) OVERWRITES the entire page — existing content is lost. Ignored when `content` is not provided.
Clear enough to supply this argument.
content_format
The format of the page content
Explain the meaning of this value, not just its name.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"name": "clickup_update_document_page",
"description": "Update a page in a ClickUp document. Use content_edit_mode to control how content is applied: append/prepend merge with the existing page server-side and preserve it exactly — no need to read the page first. The default is 'replace', which overwrites the whole page. If appended content should start on its own line, include a leading newline; if prepended content should end on its own line, include a trailing newline.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"document_id",
"page_id"
],
"properties": {
"name": {
"type": "string",
"description": "New name for the page"
},
"content": {
"type": "string",
"minLength": 1,
"description": "New content for the page (must be non-empty; clearing a page is not supported). By default this REPLACES the entire existing page content — set content_edit_mode to 'append' or 'prepend' to add to the page instead of overwriting it."
},
"page_id": {
"type": "string",
"description": "ID of the page to update (e.g. 'ad-2675877'). In ClickUp doc URLs, this is the second ID after /docs/ or /v/dc/."
},
"sub_title": {
"type": "string",
"description": "New subtitle for the page"
},
"document_id": {
"type": "string",
"description": "ID of the document containing the page (e.g. 'ad-909705'). In ClickUp doc URLs, the document_id is always the first ID after /docs/ or /v/dc/."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
},
"content_format": {
"enum": [
"text/md",
"text/plain"
],
"type": "string",
"default": "text/md",
"description": "The format of the page content"
},
"content_edit_mode": {
"enum": [
"replace",
"append",
"prepend"
],
"type": "string",
"default": "replace",
"description": "How to apply `content`: 'append' adds it at the end of the existing page, 'prepend' inserts it before the existing content, 'replace' (default) OVERWRITES the entire page — existing content is lost. Ignored when `content` is not provided."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"page_id"
],
"properties": {
"page_id": {
"type": "string"
},
"success": {
"type": "boolean"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Update Document Page",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description77/100
List metadata for files attached to a ClickUp doc page (images and files embedded in the page content).
Describe the returned information so the agent knows whether it will answer the request.
Inputs88/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
page_id
ID of the doc page (e.g. 'ad-2675877'). In ClickUp doc URLs, the page_id is the second ID after /docs/ or /v/dc/. Use list_document_pages to discover page IDs.
Clear enough to supply this argument.
cursor
Cursor from a previous response to fetch the next page of results.
Clear enough to supply this argument.
limit
Maximum number of attachments to return (1-100, default 50).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"attachments"
],
"properties": {
"attachments": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"title"
],
"properties": {
"id": {
"type": "string",
"description": "The ID of the attachment."
},
"size": {
"type": "number",
"description": "File size in bytes. Absent when the upstream API does not report one."
},
"title": {
"type": "string",
"description": "The attachment file name."
},
"extension": {
"type": "string",
"description": "File extension. Absent when the attachment has none."
},
"mime_type": {
"type": "string",
"description": "MIME type. Absent when the upstream API does not report one."
}
},
"additionalProperties": false
},
"description": "Attachments embedded on the page (metadata only, no download URLs)."
},
"next_cursor": {
"type": "string",
"description": "Cursor for fetching the next page of results. Absent when there are no more results."
}
},
"additionalProperties": false
}
Original tool metadata
{
"name": "clickup_list_document_page_attachments",
"description": "List metadata for files attached to a ClickUp doc page (images and files embedded in the page content).",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"page_id"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Maximum number of attachments to return (1-100, default 50)."
},
"cursor": {
"type": "string",
"description": "Cursor from a previous response to fetch the next page of results."
},
"page_id": {
"type": "string",
"description": "ID of the doc page (e.g. 'ad-2675877'). In ClickUp doc URLs, the page_id is the second ID after /docs/ or /v/dc/. Use list_document_pages to discover page IDs."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"attachments"
],
"properties": {
"attachments": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"title"
],
"properties": {
"id": {
"type": "string",
"description": "The ID of the attachment."
},
"size": {
"type": "number",
"description": "File size in bytes. Absent when the upstream API does not report one."
},
"title": {
"type": "string",
"description": "The attachment file name."
},
"extension": {
"type": "string",
"description": "File extension. Absent when the attachment has none."
},
"mime_type": {
"type": "string",
"description": "MIME type. Absent when the upstream API does not report one."
}
},
"additionalProperties": false
},
"description": "Attachments embedded on the page (metadata only, no download URLs)."
},
"next_cursor": {
"type": "string",
"description": "Cursor for fetching the next page of results. Absent when there are no more results."
}
},
"additionalProperties": false
},
"annotations": {
"title": "List Document Page Attachments",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description97/100
Download a ClickUp doc page attachment (get attachment IDs from clickup_list_document_page_attachments). Returns a short-lived download URL plus attachment metadata. IMPORTANT: the URL is short-lived and, on workspaces with private attachments enabled, single-use — it expires within ~5 minutes. Fetch it immediately and exactly once; do not preview, HEAD-request, retry, or store it. If a download fails or the URL expired, call this tool again for a fresh URL.
The description explains the capability, when to use it, and what to expect.
Inputs92/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
page_id
ID of the doc page (e.g. 'ad-2675877'). In ClickUp doc URLs, the page_id is the second ID after /docs/ or /v/dc/. Use list_document_pages to discover page IDs.
Clear enough to supply this argument.
attachment_id
Attachment ID — the `id` field returned by clickup_list_document_page_attachments for the page.
Clear enough to supply this argument.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"page_id",
"attachment_id",
"title",
"url",
"url_notice"
],
"properties": {
"url": {
"type": "string",
"description": "Download URL. Short-lived, and single-use on workspaces with private attachments enabled (~5 minute expiry). Fetch it immediately and exactly once; do not preview, HEAD-request, retry, or store it. If the download fails or the URL expired, call clickup_download_document_page_attachment again for a fresh URL."
},
"size": {
"type": "number",
"description": "File size in bytes. Absent when the upstream API does not report one."
},
"title": {
"type": "string"
},
"page_id": {
"type": "string",
"description": "ID of the doc page the attachment belongs to."
},
"success": {
"type": "boolean"
},
"extension": {
"type": "string",
"description": "File extension. Absent when the attachment has none."
},
"mime_type": {
"type": "string",
"description": "MIME type. Absent when the upstream API does not report one."
},
"url_notice": {
"type": "string",
"description": "Handling instructions for the download URL."
},
"attachment_id": {
"type": "string"
}
},
"additionalProperties": false
}
Original tool metadata
{
"name": "clickup_download_document_page_attachment",
"description": "Download a ClickUp doc page attachment (get attachment IDs from clickup_list_document_page_attachments). Returns a short-lived download URL plus attachment metadata. IMPORTANT: the URL is short-lived and, on workspaces with private attachments enabled, single-use — it expires within ~5 minutes. Fetch it immediately and exactly once; do not preview, HEAD-request, retry, or store it. If a download fails or the URL expired, call this tool again for a fresh URL.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"page_id",
"attachment_id"
],
"properties": {
"page_id": {
"type": "string",
"description": "ID of the doc page (e.g. 'ad-2675877'). In ClickUp doc URLs, the page_id is the second ID after /docs/ or /v/dc/. Use list_document_pages to discover page IDs."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
},
"attachment_id": {
"type": "string",
"description": "Attachment ID — the `id` field returned by clickup_list_document_page_attachments for the page."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"page_id",
"attachment_id",
"title",
"url",
"url_notice"
],
"properties": {
"url": {
"type": "string",
"description": "Download URL. Short-lived, and single-use on workspaces with private attachments enabled (~5 minute expiry). Fetch it immediately and exactly once; do not preview, HEAD-request, retry, or store it. If the download fails or the URL expired, call clickup_download_document_page_attachment again for a fresh URL."
},
"size": {
"type": "number",
"description": "File size in bytes. Absent when the upstream API does not report one."
},
"title": {
"type": "string"
},
"page_id": {
"type": "string",
"description": "ID of the doc page the attachment belongs to."
},
"success": {
"type": "boolean"
},
"extension": {
"type": "string",
"description": "File extension. Absent when the attachment has none."
},
"mime_type": {
"type": "string",
"description": "MIME type. Absent when the upstream API does not report one."
},
"url_notice": {
"type": "string",
"description": "Handling instructions for the download URL."
},
"attachment_id": {
"type": "string"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Download Document Page Attachment",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description73/100
Create folder in ClickUp space. Use space_id (preferred) or space_name + folder name. Supports override_statuses for folder-specific statuses. Use clickup_create_list_in_folder to add lists after creation.
Describe the returned information so the agent knows whether it will answer the request.
Inputs85/100
Explain the meaning of this value, not just its name.
name
Name of the folder.
Clear enough to supply this argument.
space_id
ID of the space to create the folder in (preferred). Provide this instead of space_name if you already have it.
Clear enough to supply this argument.
space_name
Name of the space to create the folder in. Use this when space_id is not available.
Clear enough to supply this argument.
override_statuses
Whether to override space statuses with folder-specific statuses.
Explain the meaning of this value, not just its name.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"name": "clickup_create_folder",
"description": "Create folder in ClickUp space. Use space_id (preferred) or space_name + folder name. Supports override_statuses for folder-specific statuses. Use clickup_create_list_in_folder to add lists after creation.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Name of the folder."
},
"space_id": {
"type": "string",
"description": "ID of the space to create the folder in (preferred). Provide this instead of space_name if you already have it."
},
"space_name": {
"type": "string",
"description": "Name of the space to create the folder in. Use this when space_id is not available."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
},
"override_statuses": {
"type": "boolean",
"description": "Whether to override space statuses with folder-specific statuses."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"folder_id"
],
"properties": {
"success": {
"type": "boolean"
},
"folder_id": {
"type": "string"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Create Folder",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description86/100
Update a ClickUp folder. Requires folder_id + at least one update field (name/override_statuses). Only specified fields updated. Changes apply to all lists in folder. If you need to get a folder ID from a folder name, use clickup_get_folder first.
The description explains the capability, when to use it, and what to expect.
Inputs81/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
folder_id
ID of the folder to update.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
name
New name for the folder.
Clear enough to supply this argument.
override_statuses
Whether to override space statuses with folder-specific statuses.
Clear enough to supply this argument.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"name": "clickup_update_folder",
"description": "Update a ClickUp folder. Requires folder_id + at least one update field (name/override_statuses). Only specified fields updated. Changes apply to all lists in folder. If you need to get a folder ID from a folder name, use clickup_get_folder first.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"folder_id"
],
"properties": {
"name": {
"type": "string",
"description": "New name for the folder."
},
"folder_id": {
"type": "string",
"description": "ID of the folder to update."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
},
"override_statuses": {
"type": "boolean",
"description": "Whether to override space statuses with folder-specific statuses."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"folder_id"
],
"properties": {
"success": {
"type": "boolean"
},
"folder_id": {
"type": "string"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Update Folder",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}
}
{
"name": "clickup_create_list",
"description": "Create a list in a ClickUp space. Requires name and space_name or space_id. For lists in folders, use clickup_create_list_in_folder.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Name of the list."
},
"status": {
"type": "string",
"description": "Status of the list."
},
"content": {
"type": "string",
"description": "Description or content of the list."
},
"assignee": {
"type": "number",
"description": "User ID to assign the list to. Use clickup_resolve_assignees to convert email, username, or \"me\" to user ID if needed."
},
"due_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2})?$",
"description": "Due date in YYYY-MM-DD format or date-time in YYYY-MM-DD HH:MM format"
},
"priority": {
"enum": [
"urgent",
"high",
"normal",
"low"
],
"type": "string",
"description": "Priority value: 'urgent', 'high', 'normal', or 'low'."
},
"space_id": {
"type": "string",
"description": "ID of the space to create the list in. Provide this instead of space_name if you already have the ID."
},
"space_name": {
"type": "string",
"description": "Name of the space to create the list in. Alternative to space_id; one of them must be provided."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"list_id",
"list_url"
],
"properties": {
"list_id": {
"type": "string"
},
"success": {
"type": "boolean"
},
"list_url": {
"type": "string"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Create List",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description72/100
Create a list in a ClickUp folder. Requires folder_id and list name. Supports content and status. If you need to get a folder ID from a folder name, use clickup_get_folder first.
Describe the returned information so the agent knows whether it will answer the request.
Inputs65/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
name
Name of the list.
Clear enough to supply this argument.
folder_id
ID of the folder to create the list in.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
content
Description or content of the list.
Explain the meaning of this value, not just its name.
status
Status of the list (uses folder default if not specified).
Explain the meaning of this value, not just its name.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations100/100
All four behavior hints are declared.
{
"title": "Create List in Folder",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
Output schema59/100
Describe the returned fields so an agent can interpret the result.
{
"name": "clickup_create_list_in_folder",
"description": "Create a list in a ClickUp folder. Requires folder_id and list name. Supports content and status. If you need to get a folder ID from a folder name, use clickup_get_folder first.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name",
"folder_id"
],
"properties": {
"name": {
"type": "string",
"description": "Name of the list."
},
"status": {
"type": "string",
"description": "Status of the list (uses folder default if not specified)."
},
"content": {
"type": "string",
"description": "Description or content of the list."
},
"folder_id": {
"type": "string",
"description": "ID of the folder to create the list in."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"list_id",
"list_url"
],
"properties": {
"list_id": {
"type": "string"
},
"success": {
"type": "boolean"
},
"list_url": {
"type": "string"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Create List in Folder",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description77/100
Update a ClickUp list. Requires list_id + at least one update field (name/content/status). Only specified fields updated. If you need to get a list ID from a list name, use clickup_get_list first.
Describe the returned information so the agent knows whether it will answer the request.
Inputs75/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
list_id
ID of the list to update.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
name
New name for the list.
Clear enough to supply this argument.
content
New description or content for the list.
Clear enough to supply this argument.
status
New status for the list.
Explain the meaning of this value, not just its name.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"name": "clickup_update_list",
"description": "Update a ClickUp list. Requires list_id + at least one update field (name/content/status). Only specified fields updated. If you need to get a list ID from a list name, use clickup_get_list first.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"list_id"
],
"properties": {
"name": {
"type": "string",
"description": "New name for the list."
},
"status": {
"type": "string",
"description": "New status for the list."
},
"content": {
"type": "string",
"description": "New description or content for the list."
},
"list_id": {
"type": "string",
"description": "ID of the list to update."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"list_id"
],
"properties": {
"list_id": {
"type": "string"
},
"success": {
"type": "boolean"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Update List",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description80/100
Convert names, emails, or "me" to numeric ClickUp user IDs. Use when you need IDs for filters (e.g., search, filter_tasks). Most task tools resolve assignees automatically.
Describe the returned information so the agent knows whether it will answer the request.
Inputs88/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
assignees
Array of assignee names, emails, or "me" to resolve. Use "me" to refer to the currently authenticated user.
Clear enough to supply this argument.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"reminder_id"
],
"properties": {
"success": {
"type": "boolean",
"description": "Whether the reminder was created successfully"
},
"reminder_id": {
"type": "string",
"description": "Unique identifier for the created reminder"
}
},
"additionalProperties": false
}
Original tool metadata
{
"name": "clickup_create_reminder",
"description": "Create a personal reminder in your ClickUp workspace. Requires title and due_date (YYYY-MM-DD or YYYY-MM-DD HH:MM format, uses your timezone).",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"title",
"due_date"
],
"properties": {
"title": {
"type": "string",
"description": "Title for the reminder. Ask the user what they want to be reminded about."
},
"due_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2})?$",
"description": "Due date in YYYY-MM-DD format or date-time in YYYY-MM-DD HH:MM format (e.g., '2025-12-31' or '2025-12-31 14:30'). Uses your user timezone."
},
"description": {
"type": "string",
"description": "Optional description with additional details for the reminder."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"reminder_id"
],
"properties": {
"success": {
"type": "boolean",
"description": "Whether the reminder was created successfully"
},
"reminder_id": {
"type": "string",
"description": "Unique identifier for the created reminder"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Create Reminder",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description74/100
Search and list your reminders. Supports filtering by type, status, completion, and since date. Date filters use YYYY-MM-DD or YYYY-MM-DD HH:MM format (e.g., '2025-01-01') in your timezone. Paginated via cursor.
Describe the returned information so the agent knows whether it will answer the request.
Inputs72/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
due_date_status
Filter reminders by due date status (TODO, LATER, DELETED)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
reminder_type
Filter by type of reminder (ASSIGNED_COMMENT, UNANSWERED_MENTION, APPROVAL, SAVED, REMINDER)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
is_overdue
Filter to show only overdue reminders
Clear enough to supply this argument.
is_completed
Filter to show only completed or incomplete reminders
Resolve the mismatch between this description and its schema constraints.
limit
Maximum number of reminders to return per page (default: 25, max: 100)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
cursor
Cursor for pagination. Use the next_cursor value from the previous response to fetch the next page of results
Clear enough to supply this argument.
since
Filter reminders updated since this date in YYYY-MM-DD format or date-time in YYYY-MM-DD HH:MM format (e.g., '2025-01-01' or '2025-01-01 09:00')
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"reminder_id"
],
"properties": {
"success": {
"type": "boolean",
"description": "Whether the reminder was updated successfully"
},
"reminder_id": {
"type": "string",
"description": "Unique identifier of the updated reminder"
}
},
"additionalProperties": false
}
Original tool metadata
{
"name": "clickup_update_reminder",
"description": "Update a reminder by reminder_id. Supports title, description, due_date (YYYY-MM-DD or YYYY-MM-DD HH:MM, e.g. '2025-12-31'), and is_completed.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"reminder_id"
],
"properties": {
"title": {
"type": "string",
"description": "New title for the reminder."
},
"due_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2})?$",
"description": "New due date in YYYY-MM-DD format or date-time in YYYY-MM-DD HH:MM format (e.g., '2025-12-31' or '2025-12-31 14:30'). Uses your user timezone."
},
"description": {
"type": "string",
"description": "New description for the reminder."
},
"reminder_id": {
"type": "string",
"pattern": "^[0-9A-Za-z]{27}$",
"description": "The unique identifier (KSUID) of the reminder to update."
},
"is_completed": {
"type": "boolean",
"description": "Set to true to mark the reminder as completed, false to mark as incomplete."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"reminder_id"
],
"properties": {
"success": {
"type": "boolean",
"description": "Whether the reminder was updated successfully"
},
"reminder_id": {
"type": "string",
"description": "Unique identifier of the updated reminder"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Update Reminder",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
{
"name": "clickup_add_tag_to_task",
"description": "Add existing tag to task. Tag must exist in space. Note: Will fail if tag doesn't exist.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"task_id",
"tag_name"
],
"properties": {
"task_id": {
"type": "string",
"description": "ID of task. Works with both regular task IDs and custom IDs (like 'DEV-1234'). Use clickup_search to find task ID by name if needed."
},
"tag_name": {
"type": "string",
"description": "Name of the tag to add to the task. The tag must already exist in the space."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"task_id",
"tag_name"
],
"properties": {
"success": {
"type": "boolean"
},
"task_id": {
"type": "string"
},
"tag_name": {
"type": "string"
},
"custom_id": {
"type": [
"string",
"null"
],
"description": "Custom task ID (e.g., 'DEV-1234') if the workspace has custom IDs enabled, otherwise null."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Add Tag to Task",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description83/100
Set a directional dependency where one task blocks the other. Use 'waiting_on' when task_id cannot start until depends_on is done, or 'blocking' when task_id is blocking depends_on. For non-blocking associations, use add_task_link instead.
The description explains the capability, when to use it, and what to expect.
Inputs88/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
task_id
ID of the task to set the dependency on. Works with regular and custom IDs (like 'DEV-1234'). Use clickup_search to find task ID by name if needed.
Clear enough to supply this argument.
depends_on
ID of the task that task_id depends on or is blocking. Works with regular and custom IDs.
Clear enough to supply this argument.
type
Type of dependency to add: 'waiting_on' or 'blocking'.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"name": "clickup_add_task_dependency",
"description": "Set a directional dependency where one task blocks the other. Use 'waiting_on' when task_id cannot start until depends_on is done, or 'blocking' when task_id is blocking depends_on. For non-blocking associations, use add_task_link instead.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"task_id",
"depends_on",
"type"
],
"properties": {
"type": {
"enum": [
"waiting_on",
"blocking"
],
"type": "string",
"description": "Type of dependency to add: 'waiting_on' or 'blocking'."
},
"task_id": {
"type": "string",
"description": "ID of the task to set the dependency on. Works with regular and custom IDs (like 'DEV-1234'). Use clickup_search to find task ID by name if needed."
},
"depends_on": {
"type": "string",
"description": "ID of the task that task_id depends on or is blocking. Works with regular and custom IDs."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Add Task Dependency",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description66/100
Remove a dependency between two tasks.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs88/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
task_id
ID of the task to remove the dependency from. Works with both regular task IDs and custom IDs (like 'DEV-1234'). Use clickup_search to find task ID by name if needed.
Clear enough to supply this argument.
depends_on
ID of the task that was in the dependency relationship. Works with both regular task IDs and custom IDs (like 'DEV-1234').
Clear enough to supply this argument.
type
Type of dependency to remove: 'waiting_on' or 'blocking'.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"name": "clickup_remove_task_dependency",
"description": "Remove a dependency between two tasks.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"task_id",
"depends_on",
"type"
],
"properties": {
"type": {
"enum": [
"waiting_on",
"blocking"
],
"type": "string",
"description": "Type of dependency to remove: 'waiting_on' or 'blocking'."
},
"task_id": {
"type": "string",
"description": "ID of the task to remove the dependency from. Works with both regular task IDs and custom IDs (like 'DEV-1234'). Use clickup_search to find task ID by name if needed."
},
"depends_on": {
"type": "string",
"description": "ID of the task that was in the dependency relationship. Works with both regular task IDs and custom IDs (like 'DEV-1234')."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Remove Task Dependency",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Link two tasks together. Creates a bidirectional association with no ordering or blocking. For blocking/dependency relationships, use add_task_dependency instead.
The description explains the capability, when to use it, and what to expect.
Inputs92/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
task_id
ID of the task to link from. Works with regular and custom IDs (like 'DEV-1234').
Clear enough to supply this argument.
links_to
ID of the task to link to. Works with regular and custom IDs.
Clear enough to supply this argument.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"name": "clickup_add_task_link",
"description": "Link two tasks together. Creates a bidirectional association with no ordering or blocking. For blocking/dependency relationships, use add_task_dependency instead.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"task_id",
"links_to"
],
"properties": {
"task_id": {
"type": "string",
"description": "ID of the task to link from. Works with regular and custom IDs (like 'DEV-1234')."
},
"links_to": {
"type": "string",
"description": "ID of the task to link to. Works with regular and custom IDs."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Add Task Link",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description67/100
Remove a link between two tasks.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs92/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
task_id
ID of the task to remove the link from. Works with both regular task IDs and custom IDs (like 'DEV-1234'). Use clickup_search to find task ID by name if needed.
Clear enough to supply this argument.
links_to
ID of the task that was linked to. Works with both regular task IDs and custom IDs (like 'DEV-1234').
Clear enough to supply this argument.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"name": "clickup_remove_task_link",
"description": "Remove a link between two tasks.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"task_id",
"links_to"
],
"properties": {
"task_id": {
"type": "string",
"description": "ID of the task to remove the link from. Works with both regular task IDs and custom IDs (like 'DEV-1234'). Use clickup_search to find task ID by name if needed."
},
"links_to": {
"type": "string",
"description": "ID of the task that was linked to. Works with both regular task IDs and custom IDs (like 'DEV-1234')."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Remove Task Link",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description70/100
Create a task in a ClickUp list. Requires name and list_id — always ask the user which list. Supports assignees (user IDs, emails, usernames, or "me") and task_type by name.
Describe the returned information so the agent knows whether it will answer the request.
Inputs81/100
15 of 16 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
name
Task name. Ask the user what they want to name the task.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
list_id
List ID. Use clickup_get_list to resolve names.
Clear enough to supply this argument.
markdown_description
Task description in markdown format.
Explain the meaning of this value, not just its name.
status
Override default status. Omit to use list defaults.
Clear enough to supply this argument.
priority
Not provided
Missing description. Explain what this value means and how to supply it.
due_date
Due date in YYYY-MM-DD or YYYY-MM-DD HH:MM format
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
start_date
Start date in YYYY-MM-DD or YYYY-MM-DD HH:MM format
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
parent
Parent task ID to create as subtask.
Clear enough to supply this argument.
tags
Tag names (must already exist in the space).
Clear enough to supply this argument.
custom_fields › items › id
ID of the custom field
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
custom_fields › items › value
Value for the custom field. Pass as a string — the format depends on the field type: text/url/email: the value directly. phone: must be a valid phone number in international format (e.g. '+1 234 567 8901'). dropdown: the option UUID. number/money/rating: the number as a string (e.g. '42'). date: a date string in YYYY-MM-DD or YYYY-MM-DD HH:MM format (auto-converted to timestamp). checkbox/button: 'true' or 'false'. labels: JSON array of UUIDs (e.g. '["uuid1","uuid2"]'). relationships/people/files: JSON with add/rem arrays (e.g. '{"add":["id1"],"rem":["id2"]}'). progress: JSON with current value (e.g. '{"current":50}'). location: JSON with location object (e.g. '{"location":{"lat":-28,"lng":153},"formatted_address":"..."}').
Clear enough to supply this argument.
check_required_custom_fields
Flag to check if all required custom fields are set before saving the task.
Clear enough to supply this argument.
assignees
Array of assignee user IDs. Use clickup_resolve_assignees to convert emails, usernames, or "me" to user IDs if needed.
Clear enough to supply this argument.
time_estimate
Time estimate in minutes (e.g., '150' for 2h 30m).
Clear enough to supply this argument.
task_type
Name of the task type (e.g., 'Bug', 'Feature', 'Milestone'). The type must exist in the workspace. If not specified, the default task type will be used.
Clear enough to supply this argument.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"task_id",
"task_url"
],
"properties": {
"success": {
"type": "boolean"
},
"task_id": {
"type": "string"
},
"task_url": {
"type": "string",
"description": "URL that opens this task in ClickUp. When you mention the task, present it as an inline markdown link with the task name as the anchor text, e.g. [Task name](url); never output the bare URL."
},
"custom_id": {
"type": [
"string",
"null"
],
"description": "Custom task ID (e.g., 'DEV-1234') if the workspace has custom IDs enabled, otherwise null."
}
},
"additionalProperties": false
}
Original tool metadata
{
"name": "clickup_create_task",
"description": "Create a task in a ClickUp list. Requires name and list_id — always ask the user which list. Supports assignees (user IDs, emails, usernames, or \"me\") and task_type by name.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name",
"list_id"
],
"properties": {
"name": {
"type": "string",
"description": "Task name. Ask the user what they want to name the task."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tag names (must already exist in the space)."
},
"parent": {
"type": "string",
"description": "Parent task ID to create as subtask."
},
"status": {
"type": "string",
"description": "Override default status. Omit to use list defaults."
},
"list_id": {
"type": "string",
"description": "List ID. Use clickup_get_list to resolve names."
},
"due_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2})?$",
"description": "Due date in YYYY-MM-DD or YYYY-MM-DD HH:MM format"
},
"priority": {
"enum": [
"urgent",
"high",
"normal",
"low"
],
"type": "string"
},
"assignees": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of assignee user IDs. Use clickup_resolve_assignees to convert emails, usernames, or \"me\" to user IDs if needed."
},
"task_type": {
"type": "string",
"description": "Name of the task type (e.g., 'Bug', 'Feature', 'Milestone'). The type must exist in the workspace. If not specified, the default task type will be used."
},
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2})?$",
"description": "Start date in YYYY-MM-DD or YYYY-MM-DD HH:MM format"
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"value"
],
"properties": {
"id": {
"type": "string",
"description": "ID of the custom field"
},
"value": {
"type": "string",
"description": "Value for the custom field. Pass as a string — the format depends on the field type: text/url/email: the value directly. phone: must be a valid phone number in international format (e.g. '+1 234 567 8901'). dropdown: the option UUID. number/money/rating: the number as a string (e.g. '42'). date: a date string in YYYY-MM-DD or YYYY-MM-DD HH:MM format (auto-converted to timestamp). checkbox/button: 'true' or 'false'. labels: JSON array of UUIDs (e.g. '[\"uuid1\",\"uuid2\"]'). relationships/people/files: JSON with add/rem arrays (e.g. '{\"add\":[\"id1\"],\"rem\":[\"id2\"]}'). progress: JSON with current value (e.g. '{\"current\":50}'). location: JSON with location object (e.g. '{\"location\":{\"lat\":-28,\"lng\":153},\"formatted_address\":\"...\"}')."
}
}
},
"description": "Array of custom field values to set on the task. Each object must have an 'id' and 'value' property."
},
"time_estimate": {
"type": "string",
"description": "Time estimate in minutes (e.g., '150' for 2h 30m)."
},
"markdown_description": {
"type": "string",
"description": "Task description in markdown format."
},
"check_required_custom_fields": {
"type": "boolean",
"description": "Flag to check if all required custom fields are set before saving the task."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"task_id",
"task_url"
],
"properties": {
"success": {
"type": "boolean"
},
"task_id": {
"type": "string"
},
"task_url": {
"type": "string",
"description": "URL that opens this task in ClickUp. When you mention the task, present it as an inline markdown link with the task name as the anchor text, e.g. [Task name](url); never output the bare URL."
},
"custom_id": {
"type": [
"string",
"null"
],
"description": "Custom task ID (e.g., 'DEV-1234') if the workspace has custom IDs enabled, otherwise null."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Create Task",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description99/100
Retrieve a ClickUp task by ID (supports custom IDs like 'DEV-1234'). Returns a compact summary by default — core fields are always included, large sections appear as counts only (e.g. custom_fields_count: 3). Use include to fetch full data for specific sections: include: ["custom_fields", "description"]. Set expand_statuses=true to list valid statuses for update_task. URL disambiguation: a bare /t/<id> or /t/<workspace>/<id> ClickUp URL is a task, but in chat thread URLs (/v/cn/<channel_id>/t/<id> or /chat/r/<channel_id>/t/<id>) the trailing id is a chat MESSAGE id — use clickup_get_chat_message_replies for those.
The description explains the capability, when to use it, and what to expect.
Inputs94/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
task_id
Task ID (supports custom IDs like 'DEV-1234')
Clear enough to supply this argument.
include
Sections to return in full. Without this, large sections appear as counts (e.g. custom_fields_count: 3). Available: attachments (metadata only — id, title, extension, mimetype, size, date, source; use clickup_download_task_attachment to get a download URL), checklists (items + completion), custom_fields (field values), dependencies (blocking/waiting-on relationships), description (full text — summary truncates at 10k chars), linked_tasks (linked task IDs), subtasks (triggers subtask fetch from API), watchers (watching users).
Clear enough to supply this argument.
expand_statuses
When true, returns the full set of statuses configured on the task's list (including any inherited from the parent folder or space) under `available_statuses`. Use to discover which status values can be assigned via update_task. Off by default to keep responses lean.
Clear enough to supply this argument.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "clickup_get_task",
"description": "Retrieve a ClickUp task by ID (supports custom IDs like 'DEV-1234'). Returns a compact summary by default — core fields are always included, large sections appear as counts only (e.g. custom_fields_count: 3). Use include to fetch full data for specific sections: include: [\"custom_fields\", \"description\"]. Set expand_statuses=true to list valid statuses for update_task. URL disambiguation: a bare /t/<id> or /t/<workspace>/<id> ClickUp URL is a task, but in chat thread URLs (/v/cn/<channel_id>/t/<id> or /chat/r/<channel_id>/t/<id>) the trailing id is a chat MESSAGE id — use clickup_get_chat_message_replies for those.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"task_id"
],
"properties": {
"include": {
"type": "array",
"items": {
"enum": [
"attachments",
"checklists",
"custom_fields",
"dependencies",
"description",
"linked_tasks",
"subtasks",
"watchers"
],
"type": "string"
},
"description": "Sections to return in full. Without this, large sections appear as counts (e.g. custom_fields_count: 3). Available: attachments (metadata only — id, title, extension, mimetype, size, date, source; use clickup_download_task_attachment to get a download URL), checklists (items + completion), custom_fields (field values), dependencies (blocking/waiting-on relationships), description (full text — summary truncates at 10k chars), linked_tasks (linked task IDs), subtasks (triggers subtask fetch from API), watchers (watching users)."
},
"task_id": {
"type": "string",
"description": "Task ID (supports custom IDs like 'DEV-1234')"
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
},
"expand_statuses": {
"type": "boolean",
"description": "When true, returns the full set of statuses configured on the task's list (including any inherited from the parent folder or space) under `available_statuses`. Use to discover which status values can be assigned via update_task. Off by default to keep responses lean."
}
}
},
"annotations": {
"title": "Get Task",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description96/100
Retrieve tasks with combined filters (tags, lists, folders, spaces, statuses, assignees, due date range, completion date range, custom field values). Multiple values within a filter use OR logic; across filters, AND logic applies (custom_fields entries also AND together). Best for filtering tasks by structured field values. For text/keyword search across all workspace content, use search instead. Custom field filters need field IDs — discover them with clickup_get_custom_fields. Results are paginated at 100 tasks per page: the response includes has_more and next_page, and when has_more is true you MUST call again with page set to next_page (repeating until has_more is false) to retrieve every matching task — a single call is not guaranteed to be complete. Assignees must be numeric user IDs — use clickup_resolve_assignees to convert names/emails/"me". Date filters use YYYY-MM-DD. For a single task by ID, use clickup_get_task.
The description explains the capability, when to use it, and what to expect.
Inputs83/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
tags
Filter by tag names. Multiple tags use OR logic (matches tasks with ANY of the specified tags).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
list_ids
Filter by List IDs. Multiple IDs use OR logic (matches tasks in ANY of the specified lists).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
folder_ids
Filter by Folder IDs. Multiple IDs use OR logic (matches tasks in ANY of the specified folders).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
space_ids
Filter by Space IDs. Multiple IDs use OR logic (matches tasks in ANY of the specified spaces).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
statuses
Filter by task status names. Multiple statuses use OR logic (matches tasks with ANY of the specified statuses).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
assignees
Filter by assignee user IDs. Multiple IDs use OR logic. Use clickup_resolve_assignees to convert names/emails/"me" first.
Clear enough to supply this argument.
include_closed
Include closed tasks in results
Explain what happens when this optional value is omitted.
due_date_from
Filter tasks with due date on or after. Format: YYYY-MM-DD
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
due_date_to
Filter tasks with due date on or before. Format: YYYY-MM-DD
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
date_closed_from
Filter tasks completed on or after. Format: YYYY-MM-DD
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
date_closed_to
Filter tasks completed on or before. Format: YYYY-MM-DD
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
order_by
Sort results by field. Default direction is descending — newest first for created/updated. Set reverse: true for ascending (oldest first).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
reverse
Sort ascending (oldest first) instead of the default descending (newest first). Leave unset/false to get the most recently created/updated tasks first.
Clear enough to supply this argument.
page
0-indexed page number. Each page returns up to 100 tasks. When a response has has_more=true, request the next page using its next_page value, and keep going until has_more=false to retrieve every matching task.
Clear enough to supply this argument.
subtasks
Include subtasks in results (default: true)
Clear enough to supply this argument.
custom_fields › items › field_id
Custom field ID. Discover fields with clickup_get_custom_fields — one unrecognized field_id makes the API silently drop ALL custom field filters in the call and return unfiltered results. Formula, location, button, votes, signature, rollup, progress, and app fields cannot be filtered at all (any operator errors).
Clear enough to supply this argument.
custom_fields › items › operator
On text fields '=' means contains and '==' exact match; on single-value non-text fields (number, money, date, rating, checkbox, dropdown) use '=' or '!=' (exact) — '==' and '!==' only work on text fields. <, <=, >, >=, RANGE order numbers/dates. Multi-value fields (labels, people, relationships) require ANY/ALL/NOT ANY/NOT ALL, with a non-empty JSON array value. IS NULL/IS NOT NULL match unset/set fields.
Clear enough to supply this argument.
custom_fields › items › value
Filter value as a string. Omit for IS NULL/IS NOT NULL. Formats: text as-is; dropdown: option UUID, or the option's orderindex when the field's type_config.options is present (those legacy dropdowns store numeric values); number/money/rating: '42'; date: YYYY-MM-DD or YYYY-MM-DD HH:MM (auto-converted to a timestamp for <, <=, >, >=, RANGE; date-only values resolve to 00:00 in your timezone); RANGE: JSON array of two numbers/dates (e.g. '[1, 5]'); ANY/ALL/NOT ANY/NOT ALL: JSON array — labels: option UUIDs, people: numeric user IDs, task/list relationships: task IDs (e.g. '["uuid1","uuid2"]'). For = or != on Date fields pass a millisecond epoch; date strings auto-convert only for the ordering operators.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"tasks",
"count",
"page",
"has_more",
"next_page"
],
"properties": {
"page": {
"type": "number",
"description": "0-indexed page number that was returned."
},
"count": {
"type": "number",
"description": "Number of tasks returned on this page."
},
"tasks": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"status",
"url",
"list"
],
"properties": {
"id": {
"type": "string"
},
"url": {
"type": "string",
"description": "URL that opens this task in ClickUp. When you mention the task, present it as an inline markdown link with the task name as the anchor text, e.g. [Task name](url); never output the bare URL."
},
"list": {
"type": "object",
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"additionalProperties": false
},
"name": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
}
},
"additionalProperties": false
}
},
"status": {
"type": "string"
},
"due_date": {
"type": [
"string",
"null"
]
},
"priority": {
"type": [
"string",
"null"
]
},
"assignees": {
"type": "array",
"items": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
},
"username": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
}
},
"custom_id": {
"type": [
"string",
"null"
]
},
"date_closed": {
"type": [
"string",
"null"
],
"description": "Unix millisecond timestamp (as string) when the task was completed, or null for open tasks."
},
"date_updated": {
"type": [
"string",
"null"
],
"description": "Unix millisecond timestamp (as string) when the task was last updated."
}
},
"additionalProperties": false
}
},
"message": {
"type": "string",
"description": "Informational message, e.g. guidance to fetch the next page when more results are available."
},
"has_more": {
"type": "boolean",
"description": "True when more tasks match these filters beyond this page. When true, call filter_tasks again with page set to next_page to retrieve them; do not assume this page is the complete set."
},
"next_page": {
"type": [
"number",
"null"
],
"description": "The page value to request next to continue paginating, or null when this is the last page."
}
},
"additionalProperties": false
}
Original tool metadata
{
"name": "clickup_filter_tasks",
"description": "Retrieve tasks with combined filters (tags, lists, folders, spaces, statuses, assignees, due date range, completion date range, custom field values). Multiple values within a filter use OR logic; across filters, AND logic applies (custom_fields entries also AND together). Best for filtering tasks by structured field values. For text/keyword search across all workspace content, use search instead. Custom field filters need field IDs — discover them with clickup_get_custom_fields. Results are paginated at 100 tasks per page: the response includes has_more and next_page, and when has_more is true you MUST call again with page set to next_page (repeating until has_more is false) to retrieve every matching task — a single call is not guaranteed to be complete. Assignees must be numeric user IDs — use clickup_resolve_assignees to convert names/emails/\"me\". Date filters use YYYY-MM-DD. For a single task by ID, use clickup_get_task.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "number",
"description": "0-indexed page number. Each page returns up to 100 tasks. When a response has has_more=true, request the next page using its next_page value, and keep going until has_more=false to retrieve every matching task."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filter by tag names. Multiple tags use OR logic (matches tasks with ANY of the specified tags)."
},
"reverse": {
"type": "boolean",
"description": "Sort ascending (oldest first) instead of the default descending (newest first). Leave unset/false to get the most recently created/updated tasks first."
},
"list_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filter by List IDs. Multiple IDs use OR logic (matches tasks in ANY of the specified lists)."
},
"order_by": {
"enum": [
"id",
"created",
"updated",
"due_date"
],
"type": "string",
"description": "Sort results by field. Default direction is descending — newest first for created/updated. Set reverse: true for ascending (oldest first)."
},
"statuses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filter by task status names. Multiple statuses use OR logic (matches tasks with ANY of the specified statuses)."
},
"subtasks": {
"type": "boolean",
"default": true,
"description": "Include subtasks in results (default: true)"
},
"assignees": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filter by assignee user IDs. Multiple IDs use OR logic. Use clickup_resolve_assignees to convert names/emails/\"me\" first."
},
"space_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filter by Space IDs. Multiple IDs use OR logic (matches tasks in ANY of the specified spaces)."
},
"folder_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filter by Folder IDs. Multiple IDs use OR logic (matches tasks in ANY of the specified folders)."
},
"due_date_to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2})?$",
"description": "Filter tasks with due date on or before. Format: YYYY-MM-DD"
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"required": [
"field_id",
"operator"
],
"properties": {
"value": {
"type": "string",
"description": "Filter value as a string. Omit for IS NULL/IS NOT NULL. Formats: text as-is; dropdown: option UUID, or the option's orderindex when the field's type_config.options is present (those legacy dropdowns store numeric values); number/money/rating: '42'; date: YYYY-MM-DD or YYYY-MM-DD HH:MM (auto-converted to a timestamp for <, <=, >, >=, RANGE; date-only values resolve to 00:00 in your timezone); RANGE: JSON array of two numbers/dates (e.g. '[1, 5]'); ANY/ALL/NOT ANY/NOT ALL: JSON array — labels: option UUIDs, people: numeric user IDs, task/list relationships: task IDs (e.g. '[\"uuid1\",\"uuid2\"]'). For = or != on Date fields pass a millisecond epoch; date strings auto-convert only for the ordering operators."
},
"field_id": {
"type": "string",
"description": "Custom field ID. Discover fields with clickup_get_custom_fields — one unrecognized field_id makes the API silently drop ALL custom field filters in the call and return unfiltered results. Formula, location, button, votes, signature, rollup, progress, and app fields cannot be filtered at all (any operator errors)."
},
"operator": {
"enum": [
"=",
"==",
"<",
"<=",
">",
">=",
"!=",
"!==",
"IS NULL",
"IS NOT NULL",
"RANGE",
"ANY",
"ALL",
"NOT ANY",
"NOT ALL"
],
"type": "string",
"description": "On text fields '=' means contains and '==' exact match; on single-value non-text fields (number, money, date, rating, checkbox, dropdown) use '=' or '!=' (exact) — '==' and '!==' only work on text fields. <, <=, >, >=, RANGE order numbers/dates. Multi-value fields (labels, people, relationships) require ANY/ALL/NOT ANY/NOT ALL, with a non-empty JSON array value. IS NULL/IS NOT NULL match unset/set fields."
}
}
},
"description": "Filter by custom field values. Entries combine with AND (and with all other filters)."
},
"due_date_from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2})?$",
"description": "Filter tasks with due date on or after. Format: YYYY-MM-DD"
},
"date_closed_to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2})?$",
"description": "Filter tasks completed on or before. Format: YYYY-MM-DD"
},
"include_closed": {
"type": "boolean",
"description": "Include closed tasks in results"
},
"date_closed_from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2})?$",
"description": "Filter tasks completed on or after. Format: YYYY-MM-DD"
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"tasks",
"count",
"page",
"has_more",
"next_page"
],
"properties": {
"page": {
"type": "number",
"description": "0-indexed page number that was returned."
},
"count": {
"type": "number",
"description": "Number of tasks returned on this page."
},
"tasks": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"status",
"url",
"list"
],
"properties": {
"id": {
"type": "string"
},
"url": {
"type": "string",
"description": "URL that opens this task in ClickUp. When you mention the task, present it as an inline markdown link with the task name as the anchor text, e.g. [Task name](url); never output the bare URL."
},
"list": {
"type": "object",
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"additionalProperties": false
},
"name": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
}
},
"additionalProperties": false
}
},
"status": {
"type": "string"
},
"due_date": {
"type": [
"string",
"null"
]
},
"priority": {
"type": [
"string",
"null"
]
},
"assignees": {
"type": "array",
"items": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number"
},
"username": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
}
},
"custom_id": {
"type": [
"string",
"null"
]
},
"date_closed": {
"type": [
"string",
"null"
],
"description": "Unix millisecond timestamp (as string) when the task was completed, or null for open tasks."
},
"date_updated": {
"type": [
"string",
"null"
],
"description": "Unix millisecond timestamp (as string) when the task was last updated."
}
},
"additionalProperties": false
}
},
"message": {
"type": "string",
"description": "Informational message, e.g. guidance to fetch the next page when more results are available."
},
"has_more": {
"type": "boolean",
"description": "True when more tasks match these filters beyond this page. When true, call filter_tasks again with page set to next_page to retrieve them; do not assume this page is the complete set."
},
"next_page": {
"type": [
"number",
"null"
],
"description": "The page value to request next to continue paginating, or null when this is the last page."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Filter Tasks",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description70/100
Update task properties. Requires task_id and at least one field to change. Supports assignees (user IDs, emails, usernames, or "me"), custom fields as [{id, value}], and task_type by name (or 'none' to reset).
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs79/100
12 of 13 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
task_id
Task ID (supports custom IDs like 'DEV-1234')
Clear enough to supply this argument.
name
Not provided
Missing description. Explain what this value means and how to supply it.
markdown_description
Task description in markdown format.
Clear enough to supply this argument.
status
New status (must be valid for the task's list).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
priority
Set priority, or 'none' to clear. Omit to leave unchanged.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
due_date
YYYY-MM-DD or YYYY-MM-DD HH:MM format. Pass 'none' to clear. Omit to leave unchanged.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
start_date
YYYY-MM-DD or YYYY-MM-DD HH:MM format. Pass 'none' to clear. Omit to leave unchanged.
Clear enough to supply this argument.
time_estimate
Time estimate in minutes (e.g., '150' for 2h 30m).
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
custom_fields › items › id
ID of the custom field
Clear enough to supply this argument.
custom_fields › items › value
Value for the custom field. Pass as a string — the format depends on the field type: text/url/email: the value directly. phone: must be a valid phone number in international format (e.g. '+1 234 567 8901'). dropdown: the option UUID. number/money/rating: the number as a string (e.g. '42'). date: a date string in YYYY-MM-DD or YYYY-MM-DD HH:MM format (auto-converted to timestamp). checkbox/button: 'true' or 'false'. labels: JSON array of UUIDs (e.g. '["uuid1","uuid2"]'). relationships/people/files: JSON with add/rem arrays (e.g. '{"add":["id1"],"rem":["id2"]}'). progress: JSON with current value (e.g. '{"current":50}'). location: JSON with location object (e.g. '{"location":{"lat":-28,"lng":153},"formatted_address":"..."}').
Clear enough to supply this argument.
assignees
Array of assignee user IDs. Use clickup_resolve_assignees to convert emails, usernames, or "me" to user IDs if needed.
Clear enough to supply this argument.
task_type
To change the task type, pass the type name as a string (e.g., 'Bug', 'Feature', 'Milestone'). The type must exist in the workspace. To revert to the default 'Task' type, pass 'none'. Omit entirely to leave unchanged.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"task_id",
"task_url"
],
"properties": {
"success": {
"type": "boolean"
},
"task_id": {
"type": "string"
},
"task_url": {
"type": "string",
"description": "URL that opens this task in ClickUp. When you mention the task, present it as an inline markdown link with the task name as the anchor text, e.g. [Task name](url); never output the bare URL."
},
"custom_id": {
"type": [
"string",
"null"
],
"description": "Custom task ID (e.g., 'DEV-1234') if the workspace has custom IDs enabled, otherwise null."
}
},
"additionalProperties": false
}
Original tool metadata
{
"name": "clickup_update_task",
"description": "Update task properties. Requires task_id and at least one field to change. Supports assignees (user IDs, emails, usernames, or \"me\"), custom fields as [{id, value}], and task_type by name (or 'none' to reset).",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"task_id"
],
"properties": {
"name": {
"type": "string"
},
"status": {
"type": "string",
"description": "New status (must be valid for the task's list)."
},
"task_id": {
"type": "string",
"description": "Task ID (supports custom IDs like 'DEV-1234')"
},
"due_date": {
"type": "string",
"description": "YYYY-MM-DD or YYYY-MM-DD HH:MM format. Pass 'none' to clear. Omit to leave unchanged."
},
"priority": {
"enum": [
"urgent",
"high",
"normal",
"low",
"none"
],
"type": "string",
"description": "Set priority, or 'none' to clear. Omit to leave unchanged."
},
"assignees": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of assignee user IDs. Use clickup_resolve_assignees to convert emails, usernames, or \"me\" to user IDs if needed."
},
"task_type": {
"type": "string",
"description": "To change the task type, pass the type name as a string (e.g., 'Bug', 'Feature', 'Milestone'). The type must exist in the workspace. To revert to the default 'Task' type, pass 'none'. Omit entirely to leave unchanged."
},
"start_date": {
"type": "string",
"description": "YYYY-MM-DD or YYYY-MM-DD HH:MM format. Pass 'none' to clear. Omit to leave unchanged."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"value"
],
"properties": {
"id": {
"type": "string",
"description": "ID of the custom field"
},
"value": {
"type": "string",
"description": "Value for the custom field. Pass as a string — the format depends on the field type: text/url/email: the value directly. phone: must be a valid phone number in international format (e.g. '+1 234 567 8901'). dropdown: the option UUID. number/money/rating: the number as a string (e.g. '42'). date: a date string in YYYY-MM-DD or YYYY-MM-DD HH:MM format (auto-converted to timestamp). checkbox/button: 'true' or 'false'. labels: JSON array of UUIDs (e.g. '[\"uuid1\",\"uuid2\"]'). relationships/people/files: JSON with add/rem arrays (e.g. '{\"add\":[\"id1\"],\"rem\":[\"id2\"]}'). progress: JSON with current value (e.g. '{\"current\":50}'). location: JSON with location object (e.g. '{\"location\":{\"lat\":-28,\"lng\":153},\"formatted_address\":\"...\"}')."
}
}
},
"description": "Array of custom field values to set on the task. Each object must have an 'id' and 'value' property."
},
"time_estimate": {
"type": "string",
"description": "Time estimate in minutes (e.g., '150' for 2h 30m)."
},
"markdown_description": {
"type": "string",
"description": "Task description in markdown format."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"task_id",
"task_url"
],
"properties": {
"success": {
"type": "boolean"
},
"task_id": {
"type": "string"
},
"task_url": {
"type": "string",
"description": "URL that opens this task in ClickUp. When you mention the task, present it as an inline markdown link with the task name as the anchor text, e.g. [Task name](url); never output the bare URL."
},
"custom_id": {
"type": [
"string",
"null"
],
"description": "Custom task ID (e.g., 'DEV-1234') if the workspace has custom IDs enabled, otherwise null."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Update Task",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}
}
{
"name": "clickup_move_task",
"description": "Move a task to a new home list. Requires task_id and list_id (supports custom IDs). Use clickup_get_list to resolve list names.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"task_id",
"list_id"
],
"properties": {
"list_id": {
"type": "string",
"description": "ID of the destination list to move the task into. Use clickup_get_list to find the list ID from a list name if needed."
},
"task_id": {
"type": "string",
"description": "ID of the task to move. Works with regular and custom IDs (like 'DEV-1234'). Use clickup_search to find task ID by name if needed."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"task_id",
"new_list_id"
],
"properties": {
"success": {
"type": "boolean"
},
"task_id": {
"type": "string"
},
"custom_id": {
"type": [
"string",
"null"
],
"description": "Custom task ID (e.g., 'DEV-1234') if the workspace has custom IDs enabled, otherwise null."
},
"new_list_id": {
"type": "string"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Move Task",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description78/100
Add a task to an additional list (keeps current home list). Requires the Tasks in Multiple Lists ClickApp to be enabled.
The description explains the capability, when to use it, and what to expect.
Inputs92/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
task_id
ID of the task to add. Works with regular and custom IDs (like 'DEV-1234'). Use clickup_search to find task ID by name if needed.
Clear enough to supply this argument.
list_id
ID of the additional list to add the task to. The task remains in its original list. Use clickup_get_list to find the list ID from a list name if needed.
Clear enough to supply this argument.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"name": "clickup_add_task_to_list",
"description": "Add a task to an additional list (keeps current home list). Requires the Tasks in Multiple Lists ClickApp to be enabled.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"task_id",
"list_id"
],
"properties": {
"list_id": {
"type": "string",
"description": "ID of the additional list to add the task to. The task remains in its original list. Use clickup_get_list to find the list ID from a list name if needed."
},
"task_id": {
"type": "string",
"description": "ID of the task to add. Works with regular and custom IDs (like 'DEV-1234'). Use clickup_search to find task ID by name if needed."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Add Task to List",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description73/100
Remove a task from an additional list (cannot remove from home list). Requires the Tasks in Multiple Lists ClickApp to be enabled.
The description explains the capability, when to use it, and what to expect.
Inputs92/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
task_id
ID of the task to remove from the additional list. Works with regular and custom IDs (like 'DEV-1234'). Note: a task cannot be removed from its home list.
Clear enough to supply this argument.
list_id
ID of the additional list to remove the task from. Use clickup_get_list to find the list ID from a list name if needed.
Clear enough to supply this argument.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"name": "clickup_remove_task_from_list",
"description": "Remove a task from an additional list (cannot remove from home list). Requires the Tasks in Multiple Lists ClickApp to be enabled.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"task_id",
"list_id"
],
"properties": {
"list_id": {
"type": "string",
"description": "ID of the additional list to remove the task from. Use clickup_get_list to find the list ID from a list name if needed."
},
"task_id": {
"type": "string",
"description": "ID of the task to remove from the additional list. Works with regular and custom IDs (like 'DEV-1234'). Note: a task cannot be removed from its home list."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Remove Task from List",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description90/100
Merge one or more source tasks into a target task. The target task survives and absorbs content from the source tasks, which are consumed. Destination field values take precedence on conflicts. Works with both regular task IDs and custom IDs (like 'DEV-1234').
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs83/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
task_id
ID of the target/destination task that will survive the merge. Source tasks will be merged into this task. Works with both regular task IDs and custom IDs (like 'DEV-1234').
Clear enough to supply this argument.
source_task_ids
Array of task IDs to merge into the target task. These tasks will be consumed/deleted after merging. Works with both regular task IDs and custom IDs (like 'DEV-1234').
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"merged_task_id"
],
"properties": {
"success": {
"type": "boolean"
},
"merged_task_id": {
"type": "string",
"description": "The ID of the surviving target task."
}
},
"additionalProperties": false
}
Original tool metadata
{
"name": "clickup_merge_tasks",
"description": "Merge one or more source tasks into a target task. The target task survives and absorbs content from the source tasks, which are consumed. Destination field values take precedence on conflicts. Works with both regular task IDs and custom IDs (like 'DEV-1234').",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"task_id",
"source_task_ids"
],
"properties": {
"task_id": {
"type": "string",
"description": "ID of the target/destination task that will survive the merge. Source tasks will be merged into this task. Works with both regular task IDs and custom IDs (like 'DEV-1234')."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
},
"source_task_ids": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"description": "Array of task IDs to merge into the target task. These tasks will be consumed/deleted after merging. Works with both regular task IDs and custom IDs (like 'DEV-1234')."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"merged_task_id"
],
"properties": {
"success": {
"type": "boolean"
},
"merged_task_id": {
"type": "string",
"description": "The ID of the surviving target task."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Merge Tasks",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description76/100
Start time tracking on a task. Supports description, billable status, and tags. Only one timer can be running at a time. For best results, omit extra parameters unless specifically needed.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs94/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
task_id
Task ID (supports custom IDs like 'DEV-1234')
Clear enough to supply this argument.
description
Description for the time entry. Keep short and simple, or omit for best compatibility.
Clear enough to supply this argument.
billable
Whether this time is billable. Default is workspace setting.
Clear enough to supply this argument.
tags
Array of tag names to assign to the time entry.
Clear enough to supply this argument.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"name": "clickup_start_time_tracking",
"description": "Start time tracking on a task. Supports description, billable status, and tags. Only one timer can be running at a time. For best results, omit extra parameters unless specifically needed.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"task_id"
],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of tag names to assign to the time entry."
},
"task_id": {
"type": "string",
"description": "Task ID (supports custom IDs like 'DEV-1234')"
},
"billable": {
"type": "boolean",
"description": "Whether this time is billable. Default is workspace setting."
},
"description": {
"type": "string",
"description": "Description for the time entry. Keep short and simple, or omit for best compatibility."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"message",
"timeEntry",
"taskId"
],
"properties": {
"taskId": {
"type": "string"
},
"message": {
"type": "string"
},
"success": {
"type": "boolean"
},
"timeEntry": {}
},
"additionalProperties": false
},
"annotations": {
"title": "Start Time Tracking",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description77/100
Add a manual time entry to a task. You can provide either (start + duration) OR (start + end). The tool will calculate missing values. Requires task_id, start time, and either duration or end time. Supports description, billable flag, and tags.
The description explains the capability, when to use it, and what to expect.
Inputs84/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
task_id
Task ID (supports custom IDs like 'DEV-1234')
Clear enough to supply this argument.
start
Start time in YYYY-MM-DD HH:MM format (e.g., '2025-01-15 09:30'). Time is required for time tracking entries.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
duration
Duration of the time entry. Format as 'Xh Ym' (e.g., '1h 30m') or just minutes (e.g., '90m'). Either duration or end_time is required.
Clear enough to supply this argument.
end_time
End time in YYYY-MM-DD HH:MM format (e.g., '2025-01-15 11:00'). Time is required for time tracking entries.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
description
Description for the time entry. Keep short and simple, or omit for best compatibility.
Explain the meaning of this value, not just its name.
billable
Whether this time is billable. Default is workspace setting.
Clear enough to supply this argument.
tags
Array of tag names to assign to the time entry.
Clear enough to supply this argument.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"name": "clickup_add_time_entry",
"description": "Add a manual time entry to a task. You can provide either (start + duration) OR (start + end). The tool will calculate missing values. Requires task_id, start time, and either duration or end time. Supports description, billable flag, and tags.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"task_id",
"start"
],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of tag names to assign to the time entry."
},
"start": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}$",
"description": "Start time in YYYY-MM-DD HH:MM format (e.g., '2025-01-15 09:30'). Time is required for time tracking entries."
},
"task_id": {
"type": "string",
"description": "Task ID (supports custom IDs like 'DEV-1234')"
},
"billable": {
"type": "boolean",
"description": "Whether this time is billable. Default is workspace setting."
},
"duration": {
"type": "string",
"description": "Duration of the time entry. Format as 'Xh Ym' (e.g., '1h 30m') or just minutes (e.g., '90m'). Either duration or end_time is required."
},
"end_time": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}$",
"description": "End time in YYYY-MM-DD HH:MM format (e.g., '2025-01-15 11:00'). Time is required for time tracking entries."
},
"description": {
"type": "string",
"description": "Description for the time entry. Keep short and simple, or omit for best compatibility."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"success",
"message",
"timeEntry",
"taskId"
],
"properties": {
"taskId": {
"type": "string"
},
"message": {
"type": "string"
},
"success": {
"type": "boolean"
},
"timeEntry": {}
},
"additionalProperties": false
},
"annotations": {
"title": "Add Time Entry",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description83/100
Get time entries with optional filtering by task, date range, assignee, and billable status. Pass task_id to scope to a single task, or omit for workspace-wide results. IMPORTANT: without assignee, only the authenticated user's entries are returned — pass 'any' to get all users' entries, or specific user IDs (comma-separated) for targeted queries.
Describe the returned information so the agent knows whether it will answer the request.
Inputs88/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
task_id
Task ID to scope entries to (supports custom IDs like 'DEV-1234'). Omit to query workspace-wide.
Clear enough to supply this argument.
start_date
Start date in YYYY-MM-DD format or date-time in YYYY-MM-DD HH:MM format
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
end_date
End date in YYYY-MM-DD format or date-time in YYYY-MM-DD HH:MM format
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
assignee
Filter by assignee user IDs. Pass numeric user IDs (e.g. ['123', '456']) or include 'any' to get ALL users' entries. IMPORTANT: when omitted, the API returns only the authenticated user's entries. Use get_workspace_members to look up user IDs.
Clear enough to supply this argument.
is_billable
Filter by billable status. Set to true for only billable entries, false for non-billable. Omit to get all entries.
Clear enough to supply this argument.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description93/100
Get the time a task has spent in each status. Returns the current status with elapsed time and the full status history with time spent in each status. Requires the "Total time in Status" ClickApp to be enabled in the workspace.
The description explains the capability, when to use it, and what to expect.
Inputs88/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
task_id
ID of task. Works with both regular task IDs and custom IDs (like 'DEV-1234'). Use clickup_search to find task ID by name if needed.
Clear enough to supply this argument.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations100/100
All four behavior hints are declared.
{
"title": "Get Task Time in Status",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
Output schema65/100
Describe the returned fields so an agent can interpret the result.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Get the time multiple tasks have spent in each status (bulk operation, up to 100 tasks). Returns a map of task IDs to their status history and current status time data. Requires the "Total time in Status" ClickApp to be enabled in the workspace.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
task_ids
Array of task IDs to get time in status for (1-100 tasks). Works with both regular task IDs and custom IDs (like 'DEV-1234').
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations100/100
All four behavior hints are declared.
{
"title": "Get Bulk Tasks Time in Status",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
Output schema62/100
Describe the returned fields so an agent can interpret the result.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description99/100
Run one enabled Unified API operator (a `<model>.<operator>` pair) as the authenticated user, in the session workspace. The operator catalog is how this server exposes ClickUp operations beyond the dedicated clickup_* tools, and it grows over time: reach for it when no dedicated tool fits the request or when a request spans many objects (for example several tasks to change, create or read). Call clickup_get_operators first; it lists the enabled operators with each one's parameters and request-body schema, and only enabled operators are callable. Prefer a dedicated clickup_* tool when one covers the whole request in a single call. workspace_id is taken from the session and cannot be overridden. Operators that return full objects (creates and updates included) can produce very large results: pass query with the request to project only the fields you need. Errors carry the upstream status, operationId and response body. Do not retry a call that timed out: the operation may have completed.
The description explains the capability, when to use it, and what to expect.
Inputs86/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
model
Lowercase model name from clickup_get_operators.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
operator
Operator from the canonical taxonomy, e.g. `get_many`, `update_many`. Only enabled pairs are accepted.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
operation_id
Underlying API operationId; only needed when clickup_get_operators lists several for the pair.
Clear enough to supply this argument.
parameters
Path and query parameters keyed by the names shown by clickup_get_operators (e.g. `list_id`). workspace_id is filled in automatically.
Clear enough to supply this argument.
body
Request body shaped per the schema shown by clickup_get_operators.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
query
Optional JMESPath expression applied to the response to return only what you need, e.g. `items[*].{id: id, name: name}`.
Clear enough to supply this argument.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "clickup_execute_operator",
"description": "Run one enabled Unified API operator (a `<model>.<operator>` pair) as the authenticated user, in the session workspace. The operator catalog is how this server exposes ClickUp operations beyond the dedicated clickup_* tools, and it grows over time: reach for it when no dedicated tool fits the request or when a request spans many objects (for example several tasks to change, create or read). Call clickup_get_operators first; it lists the enabled operators with each one's parameters and request-body schema, and only enabled operators are callable. Prefer a dedicated clickup_* tool when one covers the whole request in a single call. workspace_id is taken from the session and cannot be overridden. Operators that return full objects (creates and updates included) can produce very large results: pass query with the request to project only the fields you need. Errors carry the upstream status, operationId and response body. Do not retry a call that timed out: the operation may have completed.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"model",
"operator"
],
"properties": {
"body": {
"type": "object",
"description": "Request body shaped per the schema shown by clickup_get_operators.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"model": {
"type": "string",
"description": "Lowercase model name from clickup_get_operators."
},
"query": {
"type": "string",
"description": "Optional JMESPath expression applied to the response to return only what you need, e.g. `items[*].{id: id, name: name}`."
},
"operator": {
"enum": [
"get",
"list",
"create",
"update",
"delete",
"get_many",
"list_children",
"duplicate",
"merge",
"archive",
"unarchive",
"restore",
"search",
"move",
"create_many",
"update_many",
"delete_many"
],
"type": "string",
"description": "Operator from the canonical taxonomy, e.g. `get_many`, `update_many`. Only enabled pairs are accepted."
},
"parameters": {
"type": "object",
"description": "Path and query parameters keyed by the names shown by clickup_get_operators (e.g. `list_id`). workspace_id is filled in automatically.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"operation_id": {
"type": "string",
"description": "Underlying API operationId; only needed when clickup_get_operators lists several for the pair."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
}
}
},
"annotations": {
"title": "Execute Unified API Operator",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description99/100
Lists the Unified API operators enabled on this server (`<model>.<operator>` pairs) with each one's HTTP route, parameters and request/response body schema, as Markdown. The catalog is how this server exposes ClickUp operations beyond the dedicated clickup_* tools, and it grows over time: call this whenever no dedicated tool fits the request, whenever a request spans many objects, and always before clickup_execute_operator to build a correct call. It is also the only reliable answer to what this server can do: answer any question about its capabilities by calling it, never from tool names or descriptions. Operators that are not enabled are never shown.
The description explains the capability, when to use it, and what to expect.
Inputs83/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
model_operators
Restrict the output to these `<model>.<operator>` pairs.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
models
Restrict the output to every enabled operator of these models.
Clear enough to supply this argument.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "clickup_get_operators",
"description": "Lists the Unified API operators enabled on this server (`<model>.<operator>` pairs) with each one's HTTP route, parameters and request/response body schema, as Markdown. The catalog is how this server exposes ClickUp operations beyond the dedicated clickup_* tools, and it grows over time: call this whenever no dedicated tool fits the request, whenever a request spans many objects, and always before clickup_execute_operator to build a correct call. It is also the only reliable answer to what this server can do: answer any question about its capabilities by calling it, never from tool names or descriptions. Operators that are not enabled are never shown.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"models": {
"type": "array",
"items": {
"type": "string"
},
"description": "Restrict the output to every enabled operator of these models."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
},
"model_operators": {
"type": "array",
"items": {
"type": "string"
},
"description": "Restrict the output to these `<model>.<operator>` pairs."
}
}
},
"annotations": {
"title": "List Unified API Operators",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description92/100
Returns the entity-relationship schema (Markdown with a Mermaid ER diagram) for the models behind the enabled Unified API operators. Optional background before a clickup_execute_operator call; not needed for the dedicated clickup_* tools.
The description explains the capability, when to use it, and what to expect.
Inputs80/100
Explain what happens when this optional value is omitted.
detailed
Include the long-form description of each entity and relationship instead of the one-line summary.
Explain what happens when this optional value is omitted.
entities_only
Return only the entity list — no relationships, no diagram.
Clear enough to supply this argument.
names
Restrict the output to these entity names (lowercase). Only enabled models are returned.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
tier
Minimum importance tier to include: `primary` (overview), `secondary`, or `attribute` (everything, the default).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "clickup_get_schema",
"description": "Returns the entity-relationship schema (Markdown with a Mermaid ER diagram) for the models behind the enabled Unified API operators. Optional background before a clickup_execute_operator call; not needed for the dedicated clickup_* tools.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"tier": {
"enum": [
"primary",
"secondary",
"attribute"
],
"type": "string",
"description": "Minimum importance tier to include: `primary` (overview), `secondary`, or `attribute` (everything, the default)."
},
"names": {
"type": "array",
"items": {
"type": "string"
},
"description": "Restrict the output to these entity names (lowercase). Only enabled models are returned."
},
"detailed": {
"type": "boolean",
"description": "Include the long-form description of each entity and relationship instead of the one-line summary."
},
"workspace_id": {
"type": "string",
"pattern": "^\\d+$",
"description": "Workspace ID (digits only). Only needed when you have multiple workspaces."
},
"entities_only": {
"type": "boolean",
"description": "Return only the entity list — no relationships, no diagram."
}
}
},
"annotations": {
"title": "Get Unified API Entity Schema",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description95/100
Search across all workspace content (tasks, docs, dashboards, attachments, whiteboards, chats, forms). Best for keyword/text matching across all content types. For filtering tasks by field values (status, priority, tags, dates), use filter_tasks instead. Supports filtering by assignees, creators, status, location, asset types, and date ranges. Date filters use YYYY-MM-DD or YYYY-MM-DD HH:MM format in your timezone. Results are paginated: the response includes next_cursor whenever more results exist. When next_cursor is present you MUST call search again with that value in the cursor field (repeating until next_cursor is absent) to retrieve every match — a single call is not guaranteed to be complete.
The description explains the capability, when to use it, and what to expect.
Inputs68/100
Explain the meaning of this value, not just its name.
keywords
Search query string. Use specific keywords to find items
Explain the meaning of this value, not just its name.
sort › items › field
The field to sort by (created_at or updated_at)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
sort › items › direction
Sort order (asc for ascending, desc for descending)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
filters › assignees
Numeric user IDs. Use clickup_resolve_assignees to convert names/emails/"me".
Resolve the mismatch between this description and its schema constraints.
filters › creators
Numeric user IDs. Use clickup_resolve_assignees to convert names/emails/"me".
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
filters › task_statuses
Filter tasks by their status (unstarted, active, done, closed, or archived)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
filters › location › projects
Filter by Space IDs. Returns items from these Spaces
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
filters › location › categories
Filter by Folder IDs. Returns items from these Folders
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
filters › location › subcategories
Filter by List IDs. Returns items from these Lists
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
filters › asset_types
Filter by asset types (task, doc, whiteboard, dashboard, attachment, or chat)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
filters › created_date_from
Filter items created on or after this date. Format: YYYY-MM-DD or YYYY-MM-DD HH:MM (e.g., "2025-01-01" or "2025-01-01 09:00")
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
filters › created_date_to
Filter items created on or before this date. Format: YYYY-MM-DD or YYYY-MM-DD HH:MM (e.g., "2025-12-31" or "2025-12-31 23:59")
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
filters › due_date_from
Filter items with due date on or after this date. Format: YYYY-MM-DD or YYYY-MM-DD HH:MM (e.g., "2025-01-01" or "2025-01-01 09:00")
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
filters › due_date_to
Filter items with due date on or before this date. Format: YYYY-MM-DD or YYYY-MM-DD HH:MM (e.g., "2025-12-31" or "2025-12-31 23:59")
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
count
Maximum number of results to return per page (for pagination)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
cursor
Pagination cursor from previous response. Use to fetch next page of results
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description80/100
Get workspace hierarchy (spaces, folders, lists) with pagination and depth control. Use only when you need the workspace structure — most tools resolve names automatically.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
cursor
Pagination cursor from previous response. Use to fetch next page of spaces
Clear enough to supply this argument.
limit
Maximum number of spaces to return per page (default: 10, max: 50)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
max_depth
Maximum depth of hierarchy to return: 0=spaces only, 1=spaces+folders, 2=spaces+folders+lists (default: 2)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
space_ids
Filter to return only specific spaces by ID.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
workspace_id
Workspace ID (digits only). Only needed when you have multiple workspaces.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
clickup_searchclickup_get_workspace_hierarchyclickup_create_taskclickup_get_taskclickup_update_taskclickup_get_task_commentsclickup_create_task_commentclickup_attach_task_fileclickup_create_bulk_tasksclickup_update_bulk_tasksclickup_get_workspace_tasksclickup_get_task_time_entries+23 more
clickup-mcp-server setup, tools, quality score, publishing readiness, and alternatives.
How do I add clickup-mcp-server to Claude, ChatGPT, or Cursor?
Add clickup-mcp-server to Claude, ChatGPT, or Cursor by connecting its remote MCP URL in each client's MCP settings. In Claude, add a custom connector. In ChatGPT, add an MCP app. In Cursor, add an MCP server under Settings. The MCP URL is https://mcp.clickup.com/mcp. This server requires OAuth, so complete the login prompt after you connect.
Is clickup-mcp-server MCP ready for ChatGPT and Claude?
As of October 6, 2026, clickup-mcp-server scores 100/100 on Manufact's MCP publishing checklist. The scan meets ChatGPT publishing checks and meets Claude publishing checks. Passing these checks does not guarantee marketplace approval.
How clear is clickup-mcp-server's MCP tool documentation?
As of October 6, 2026, clickup-mcp-server scores 87/100 in Manufact's review of tool titles, descriptions, input and output schemas, and behavior annotations. The review covers 61 of 61 discovered tools. The quality score measures documentation clarity; runtime behavior and marketplace readiness require separate checks.
What tools does the clickup-mcp-server MCP server provide?
clickup-mcp-server lists 35 MCP tools, including clickup_search, clickup_get_workspace_hierarchy, clickup_create_task, clickup_get_task, clickup_update_task, clickup_get_task_comments, clickup_create_task_comment, clickup_attach_task_file, clickup_create_bulk_tasks, clickup_update_bulk_tasks, clickup_get_workspace_tasks, and clickup_get_task_time_entries.
What are the best alternatives to clickup-mcp-server?
As of October 20, 2026, alternatives to clickup-mcp-server in productivity on the Manufact MCP leaderboard include Autodesk Product Help, BoardWise, FlagStat, Keenable Web Search, and PomoDial.
Does clickup-mcp-server MCP require authentication?
clickup-mcp-server requires authentication. Connect it in Claude, ChatGPT, or Cursor and complete the OAuth login prompt.
How can clickup-mcp-server improve its MCP documentation?
clickup_create_list_in_folder is the lowest-scoring reviewed tool at 79/100. Describe the returned fields so an agent can interpret the result. Open its review for feedback and a copyable fix prompt, then rerun the documentation review after updating your tool metadata.
Who develops clickup-mcp-server?
clickup-mcp-server is developed by ClickUp. It is listed as partner on the Claude connector directory.
Not your MCP?
Review any public or OAuth MCP server for protocol compatibility, tool documentation, and ChatGPT and Claude publishing readiness. No account required.