---
canonical_url: "https://docs.composio.dev/toolkits/clickup_mcp"
markdown_url: "https://docs.composio.dev/toolkits/clickup_mcp.md"
product: "platform"
version: null
last_updated: null
---

# ClickUp MCP

ClickUp MCP lets agents search and manage tasks, lists, folders, docs, comments, chat, and time-tracking workflows in a ClickUp workspace.

- **Category:** model context protocol
- **Auth:** DCR_OAUTH
- **Composio-managed OAuth available?** No
- **Tools:** 58
- **Triggers:** 0
- **Slug:** `CLICKUP_MCP`
- **Version:** 20260910_00

## Tools

### Clickup add tag to task

**Slug:** `CLICKUP_MCP_CLICKUP_ADD_TAG_TO_TASK`

Add existing tag to task. Tag must exist in space. Note: Will fail if tag doesn't exist.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | Yes | 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` | string | Yes | Name of the tag to add to the task. The tag must already exist in the space. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `success` | boolean | Yes |  |
| `task_id` | string | Yes |  |
| `tag_name` | string | Yes |  |
| `custom_id` | string | No | Custom task ID (e.g., 'DEV-1234') if the workspace has custom IDs enabled, otherwise null. |

### Clickup add task dependency

**Slug:** `CLICKUP_MCP_CLICKUP_ADD_TASK_DEPENDENCY`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("waiting_on" | "blocking") | Yes | Type of dependency to add: 'waiting_on' or 'blocking'. |
| `task_id` | string | Yes | 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` | string | Yes | ID of the task that task_id depends on or is blocking. Works with regular and custom IDs. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `success` | boolean | Yes |  |

### Clickup add task link

**Slug:** `CLICKUP_MCP_CLICKUP_ADD_TASK_LINK`

Link two tasks together. Creates a bidirectional association with no ordering or blocking. For blocking/dependency relationships, use add_task_dependency instead.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | Yes | ID of the task to link from. Works with regular and custom IDs (like 'DEV-1234'). |
| `links_to` | string | Yes | ID of the task to link to. Works with regular and custom IDs. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `success` | boolean | Yes |  |

### Clickup add task to list

**Slug:** `CLICKUP_MCP_CLICKUP_ADD_TASK_TO_LIST`

Add a task to an additional list (keeps current home list). Requires the Tasks in Multiple Lists ClickApp to be enabled.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `list_id` | string | Yes | 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` | string | Yes | 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` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `success` | boolean | Yes |  |

### Clickup add time entry

**Slug:** `CLICKUP_MCP_CLICKUP_ADD_TIME_ENTRY`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tags` | array | No | Array of tag names to assign to the time entry. |
| `start` | string | Yes | 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` | string | Yes | Task ID (supports custom IDs like 'DEV-1234') |
| `billable` | boolean | No | Whether this time is billable. Default is workspace setting. |
| `duration` | string | No | 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` | string | No | End time in YYYY-MM-DD HH:MM format (e.g., '2025-01-15 11:00'). Time is required for time tracking entries. |
| `description` | string | No | Description for the time entry. Keep short and simple, or omit for best compatibility. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `taskId` | string | Yes |  |
| `message` | string | Yes |  |
| `success` | boolean | Yes |  |
| `timeEntry` | string | Yes |  |

### Clickup attach task file

**Slug:** `CLICKUP_MCP_CLICKUP_ATTACH_TASK_FILE`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | Yes | Task ID (supports custom IDs like 'DEV-1234') |
| `file_url` | string | No | URL to download the file from (must start with http:// or https://). |
| `file_data` | string | No | Base64-encoded content of the file (without the data URL prefix). |
| `file_name` | string | No | Name of the file to be attached (include the extension). Required when using file_data. |
| `auth_header` | string | No | Authorization header to use when downloading from the web URL. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | No | Download URL for the attached file. |
| `title` | string | No |  |
| `success` | boolean | Yes |  |
| `task_id` | string | Yes |  |
| `custom_id` | string | No | Custom task ID (e.g., 'DEV-1234') if the workspace has custom IDs enabled, otherwise null. |
| `extension` | string | No |  |
| `attachment_id` | string | Yes |  |

### Clickup create comment

**Slug:** `CLICKUP_MCP_CLICKUP_CREATE_COMMENT`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `assignee` | number | No | User ID to assign the comment to. Use clickup_resolve_assignees to convert email, username, or "me" to user ID if needed. |
| `entity_id` | string | No | ID of the entity to comment on. |
| `notify_all` | boolean | No | Whether to notify all assignees. Default is false. |
| `entity_type` | string ("task" | "list" | "view") | No | Entity type to comment on. Use with entity_id. |
| `reply_to_id` | string | No | 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` | string | Yes | Comment content. Supports Markdown formatting. To @mention a user, write @[Name](user_id) inline, e.g. 'Hey @[Jane](81344), please review' — user_id MUST be a numeric ClickUp user id from clickup_resolve_assignees. Comments with mentions post as plain text (no Markdown). |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `success` | boolean | Yes |  |
| `comment_id` | string | Yes |  |

### Clickup create document

**Slug:** `CLICKUP_MCP_CLICKUP_CREATE_DOCUMENT`

Create a document in a ClickUp space, folder, or list. Requires name, parent info, visibility and create_page flag.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name and Title of the document |
| `parent` | object | Yes | Parent container information |
| `visibility` | string ("PUBLIC" | "PRIVATE" | "PERSONAL" | "HIDDEN") | Yes | Document visibility setting |
| `create_page` | boolean | Yes | Whether to create an initial blank page |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `success` | boolean | Yes |  |
| `document_id` | string | Yes |  |
| `document_url` | string | Yes |  |

### Clickup create document page

**Slug:** `CLICKUP_MCP_CLICKUP_CREATE_DOCUMENT_PAGE`

Create a new page in a ClickUp document.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name and title of the page |
| `content` | string | Yes | Content of the page |
| `sub_title` | string | No | Subtitle of the page |
| `document_id` | string | Yes | ID of the document to create the page in (e.g. 'ad-909705'). In ClickUp doc URLs, the document_id is always the first ID after /docs/ or /v/dc/. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |
| `content_format` | string ("text/md" | "text/plain") | No | The format of the page content |
| `parent_page_id` | string | No | ID of the parent page (if this is a sub-page) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes |  |
| `doc_id` | string | Yes |  |
| `page_id` | string | Yes |  |
| `success` | boolean | Yes |  |

### Clickup create folder

**Slug:** `CLICKUP_MCP_CLICKUP_CREATE_FOLDER`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the folder. |
| `space_id` | string | No | ID of the space to create the folder in (preferred). Provide this instead of space_name if you already have it. |
| `space_name` | string | No | Name of the space to create the folder in. Use this when space_id is not available. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |
| `override_statuses` | boolean | No | Whether to override space statuses with folder-specific statuses. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `success` | boolean | Yes |  |
| `folder_id` | string | Yes |  |

### Clickup create list

**Slug:** `CLICKUP_MCP_CLICKUP_CREATE_LIST`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the list. |
| `status` | string | No | Status of the list. |
| `content` | string | No | Description or content of the list. |
| `assignee` | number | No | User ID to assign the list to. Use clickup_resolve_assignees to convert email, username, or "me" to user ID if needed. |
| `due_date` | string | No | Due date in YYYY-MM-DD format or date-time in YYYY-MM-DD HH:MM format |
| `priority` | string ("urgent" | "high" | "normal" | "low") | No | Priority value: 'urgent', 'high', 'normal', or 'low'. |
| `space_id` | string | No | ID of the space to create the list in. Provide this instead of space_name if you already have the ID. |
| `space_name` | string | No | Name of the space to create the list in. Alternative to space_id; one of them must be provided. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `list_id` | string | Yes |  |
| `success` | boolean | Yes |  |
| `list_url` | string | Yes |  |

### Clickup create list in folder

**Slug:** `CLICKUP_MCP_CLICKUP_CREATE_LIST_IN_FOLDER`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the list. |
| `status` | string | No | Status of the list (uses folder default if not specified). |
| `content` | string | No | Description or content of the list. |
| `folder_id` | string | Yes | ID of the folder to create the list in. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `list_id` | string | Yes |  |
| `success` | boolean | Yes |  |
| `list_url` | string | Yes |  |

### Clickup create reminder

**Slug:** `CLICKUP_MCP_CLICKUP_CREATE_REMINDER`

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).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | Yes | Title for the reminder. Ask the user what they want to be reminded about. |
| `due_date` | string | Yes | 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` | string | No | Optional description with additional details for the reminder. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `success` | boolean | Yes | Whether the reminder was created successfully |
| `reminder_id` | string | Yes | Unique identifier for the created reminder |

### Clickup create task

**Slug:** `CLICKUP_MCP_CLICKUP_CREATE_TASK`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Task name. Ask the user what they want to name the task. |
| `tags` | array | No | Tag names (must already exist in the space). |
| `parent` | string | No | Parent task ID to create as subtask. |
| `status` | string | No | Override default status. Omit to use list defaults. |
| `list_id` | string | Yes | List ID. Use clickup_get_list to resolve names. |
| `due_date` | string | No | Due date in YYYY-MM-DD or YYYY-MM-DD HH:MM format |
| `priority` | string ("urgent" | "high" | "normal" | "low") | No |  |
| `assignees` | array | No | Array of assignee user IDs. Use clickup_resolve_assignees to convert emails, usernames, or "me" to user IDs if needed. |
| `task_type` | string | No | 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` | string | No | Start date in YYYY-MM-DD or YYYY-MM-DD HH:MM format |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |
| `custom_fields` | array | No | Array of custom field values to set on the task. Each object must have an 'id' and 'value' property. |
| `time_estimate` | string | No | Time estimate in minutes (e.g., '150' for 2h 30m). |
| `markdown_description` | string | No | Task description in markdown format. |
| `check_required_custom_fields` | boolean | No | Flag to check if all required custom fields are set before saving the task. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `success` | boolean | Yes |  |
| `task_id` | string | Yes |  |
| `task_url` | string | Yes |  |
| `custom_id` | string | No | Custom task ID (e.g., 'DEV-1234') if the workspace has custom IDs enabled, otherwise null. |

### Clickup create task comment

**Slug:** `CLICKUP_MCP_CLICKUP_CREATE_TASK_COMMENT`

[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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | Yes | Task ID (supports custom IDs like 'DEV-1234') |
| `assignee` | number | No | User ID to assign the comment to. Use clickup_resolve_assignees to convert email, username, or "me" to user ID if needed. |
| `notify_all` | boolean | No | Whether to notify all assignees. Default is false. |
| `comment_text` | string | Yes | Comment content. Supports Markdown formatting. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `success` | boolean | Yes |  |
| `comment_id` | string | Yes |  |

### Clickup delete comment

**Slug:** `CLICKUP_MCP_CLICKUP_DELETE_COMMENT`

Delete a comment by comment_id. This cannot be undone. Use clickup_get_task_comments or clickup_get_threaded_comments to find the comment ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `comment_id` | string | Yes | ID of the comment to delete. Use clickup_get_task_comments or clickup_get_threaded_comments to find the comment ID. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `success` | boolean | Yes |  |
| `comment_id` | string | Yes |  |

### Clickup delete task

**Slug:** `CLICKUP_MCP_CLICKUP_DELETE_TASK`

Delete a task by task_id (supports custom IDs like 'DEV-1234'). Always confirm the task_id with the user before deleting.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | Yes | Task ID to delete (supports custom IDs like 'DEV-1234') |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `success` | boolean | Yes |  |
| `task_id` | string | Yes |  |
| `custom_id` | string | No | Custom task ID (e.g., 'DEV-1234') if the workspace has custom IDs enabled, otherwise null. |

### Clickup download task attachment

**Slug:** `CLICKUP_MCP_CLICKUP_DOWNLOAD_TASK_ATTACHMENT`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | Yes | Task ID (supports custom IDs like 'DEV-1234') |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |
| `attachment_id` | string | Yes | Attachment ID. List a task's attachments with clickup_get_task using include: ["attachments"]. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | Yes | 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` | number | No | File size in bytes. Absent when the upstream API does not report one (e.g. legacy or link attachments). |
| `title` | string | Yes |  |
| `success` | boolean | Yes |  |
| `task_id` | string | Yes | Resolved task ID. |
| `mimetype` | string | No | MIME type. Absent when the upstream API does not report one (e.g. legacy attachments). |
| `custom_id` | string | No | Custom task ID (e.g., 'DEV-1234') if the workspace has custom IDs enabled, otherwise null. |
| `extension` | string | No | File extension. Absent when the attachment has none (e.g. extension-less files). |
| `url_notice` | string | Yes | Handling instructions for the download URL. |
| `attachment_id` | string | Yes |  |

### Clickup filter tasks

**Slug:** `CLICKUP_MCP_CLICKUP_FILTER_TASKS`

Retrieve tasks with combined filters (tags, lists, folders, spaces, statuses, assignees, due date range, completion date range). Multiple values within a filter use OR logic; across filters, AND logic applies. Best for filtering tasks by structured field values. For text/keyword search across all workspace content, use search instead. 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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | number | No | 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` | array | No | Filter by tag names. Multiple tags use OR logic (matches tasks with ANY of the specified tags). |
| `reverse` | boolean | No | Reverse sort order |
| `list_ids` | array | No | Filter by List IDs. Multiple IDs use OR logic (matches tasks in ANY of the specified lists). |
| `order_by` | string ("id" | "created" | "updated" | "due_date") | No | Sort results by field |
| `statuses` | array | No | Filter by task status names. Multiple statuses use OR logic (matches tasks with ANY of the specified statuses). |
| `subtasks` | boolean | No | Include subtasks in results (default: true) |
| `assignees` | array | No | Filter by assignee user IDs. Multiple IDs use OR logic. Use clickup_resolve_assignees to convert names/emails/"me" first. |
| `space_ids` | array | No | Filter by Space IDs. Multiple IDs use OR logic (matches tasks in ANY of the specified spaces). |
| `folder_ids` | array | No | Filter by Folder IDs. Multiple IDs use OR logic (matches tasks in ANY of the specified folders). |
| `due_date_to` | string | No | Filter tasks with due date on or before. Format: YYYY-MM-DD |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |
| `due_date_from` | string | No | Filter tasks with due date on or after. Format: YYYY-MM-DD |
| `date_closed_to` | string | No | Filter tasks completed on or before. Format: YYYY-MM-DD |
| `include_closed` | boolean | No | Include closed tasks in results |
| `date_closed_from` | string | No | Filter tasks completed on or after. Format: YYYY-MM-DD |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | number | Yes | 0-indexed page number that was returned. |
| `count` | number | Yes | Number of tasks returned on this page. |
| `tasks` | array | Yes |  |
| `message` | string | No | Informational message, e.g. guidance to fetch the next page when more results are available. |
| `has_more` | boolean | Yes | 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` | string | Yes | The page value to request next to continue paginating, or null when this is the last page. |

### Clickup find member by name

**Slug:** `CLICKUP_MCP_CLICKUP_FIND_MEMBER_BY_NAME`

Get a member in the ClickUp workspace by name or email. Returns the member object if found, or null if not found.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |
| `name_or_email` | string | Yes | The name or email of the member to find. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `member` | string | Yes | Found member or null |

### Clickup get bulk tasks time in status

**Slug:** `CLICKUP_MCP_CLICKUP_GET_BULK_TASKS_TIME_IN_STATUS`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_ids` | array | Yes | 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'). |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tasks` | object | Yes |  |
| `task_count` | number | Yes |  |

### Clickup get chat channel messages

**Slug:** `CLICKUP_MCP_CLICKUP_GET_CHAT_CHANNEL_MESSAGES`

Get messages for a chat channel. Messages with has_replies=true have threads fetchable via clickup_get_chat_message_replies. Supports pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | number | No | Maximum number of messages to return (1-100). |
| `cursor` | string | No | Cursor for pagination. Use the next_cursor value from the previous response to fetch the next page of results. |
| `channel_id` | string | Yes | ID of the chat channel to get messages from. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |
| `content_format` | string ("text/plain" | "text/md") | No | Response content format. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `has_more` | boolean | Yes |  |
| `messages` | array | Yes |  |
| `next_cursor` | string | Yes |  |
| `total_count` | number | Yes |  |

### Clickup get chat channels

**Slug:** `CLICKUP_MCP_CLICKUP_GET_CHAT_CHANNELS`

List chat channels in the workspace with pagination support.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | number | No | Maximum number of channels to return (1-100). |
| `cursor` | string | No | Cursor for pagination. Use the next_cursor value from the previous response to fetch the next page of results. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `channels` | array | Yes |  |
| `has_more` | boolean | Yes |  |
| `next_cursor` | string | Yes |  |
| `total_count` | number | Yes |  |

### Clickup get chat message replies

**Slug:** `CLICKUP_MCP_CLICKUP_GET_CHAT_MESSAGE_REPLIES`

Get threaded replies for a chat message by message_id. Supports pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | number | No | Maximum number of replies to return (1-100). |
| `cursor` | string | No | Cursor for pagination. Use the next_cursor value from the previous response to fetch the next page of results. |
| `message_id` | string | Yes | ID of the chat message to get replies from. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |
| `content_format` | string ("text/plain" | "text/md") | No | Response content format. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `replies` | array | Yes |  |
| `has_more` | boolean | Yes |  |
| `next_cursor` | string | Yes |  |
| `total_count` | number | Yes |  |

### Clickup get current time entry

**Slug:** `CLICKUP_MCP_CLICKUP_GET_CURRENT_TIME_ENTRY`

Get the currently running time entry, if any. No parameters needed.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `message` | string | Yes |  |
| `isTracking` | boolean | Yes |  |
| `currentEntry` | string | Yes |  |

### Clickup get custom fields

**Slug:** `CLICKUP_MCP_CLICKUP_GET_CUSTOM_FIELDS`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `list_id` | string | No | List ID. Returns custom fields defined on this list. |
| `space_id` | string | No | Space ID. Returns custom fields defined on this space. |
| `folder_id` | string | No | Folder ID. Returns custom fields defined on this folder. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |
| `include_workspace` | boolean | No | If true, returns workspace-level custom fields. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `errors` | array | No | Error messages for scopes that failed to fetch. Present only when some (but not all) scopes failed. |
| `list_fields` | array | No |  |
| `space_fields` | array | No |  |
| `folder_fields` | array | No |  |
| `workspace_fields` | array | No |  |

### Clickup get document pages

**Slug:** `CLICKUP_MCP_CLICKUP_GET_DOCUMENT_PAGES`

Get the full content of specific pages by page ID. Use list_document_pages first to discover available page IDs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page_ids` | array | Yes | 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` | string | Yes | 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` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |
| `content_format` | string ("text/plain" | "text/md") | No | Response content format. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `pages` | array | Yes | Document page contents |

### Clickup get folder

**Slug:** `CLICKUP_MCP_CLICKUP_GET_FOLDER`

Get folder details by folder_id or folder_name (+ space info). Use to resolve folder names to IDs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `space_id` | string | No | ID of the space containing the folder (required with folder_name). |
| `folder_id` | string | No | ID of the folder to retrieve. |
| `space_name` | string | No | Name of the space containing the folder (required with folder_name). |
| `folder_name` | string | No | Name of the folder to retrieve. When using this, you must also provide space_id or space_name. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes |  |
| `name` | string | Yes |  |
| `space` | object | Yes |  |

### Clickup get list

**Slug:** `CLICKUP_MCP_CLICKUP_GET_LIST`

Get list details by list_id or list_name. Returns id, name, content, space info, and configured statuses. Use to resolve list names to IDs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `list_id` | string | No | ID of the list to retrieve. |
| `list_name` | string | No | Name of the list to retrieve. The tool will search for a list with this name. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes |  |
| `url` | string | Yes |  |
| `name` | string | Yes |  |
| `space` | object | Yes |  |
| `content` | string | No |  |
| `statuses` | array | Yes | Full set of statuses configured on the list (including any inherited from the parent folder or space). Use this to discover which status values can be assigned via update_task. |

### Clickup get task

**Slug:** `CLICKUP_MCP_CLICKUP_GET_TASK`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `include` | array | No | 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` | string | Yes | Task ID (supports custom IDs like 'DEV-1234') |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |
| `expand_statuses` | boolean | No | 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. |

### Clickup get task comments

**Slug:** `CLICKUP_MCP_CLICKUP_GET_TASK_COMMENTS`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `start` | number | No | Timestamp (in milliseconds) to start retrieving comments from. Used for pagination. |
| `task_id` | string | Yes | Task ID (supports custom IDs like 'DEV-1234') |
| `start_id` | string | No | Comment ID to start from. Used together with start for pagination. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `count` | number | Yes | Total comment count |
| `comments` | array | Yes | Array of task comments |

### Clickup get task time in status

**Slug:** `CLICKUP_MCP_CLICKUP_GET_TASK_TIME_IN_STATUS`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | Yes | 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. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | Yes |  |
| `current_status` | object | Yes |  |
| `status_history` | array | Yes |  |

### Clickup get threaded comments

**Slug:** `CLICKUP_MCP_CLICKUP_GET_THREADED_COMMENTS`

Get threaded replies for a comment by comment_id. Use clickup_get_task_comments first to find comments with reply_count > 0.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `comment_id` | string | Yes | ID of the parent comment to get threaded replies for. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `count` | number | Yes |  |
| `comments` | array | Yes |  |

### Clickup get time entries

**Slug:** `CLICKUP_MCP_CLICKUP_GET_TIME_ENTRIES`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | No | Task ID to scope entries to (supports custom IDs like 'DEV-1234'). Omit to query workspace-wide. |
| `assignee` | array | No | 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. |
| `end_date` | string | No | End date in YYYY-MM-DD format or date-time in YYYY-MM-DD HH:MM format |
| `start_date` | string | No | Start date in YYYY-MM-DD format or date-time in YYYY-MM-DD HH:MM format |
| `is_billable` | boolean | No | Filter by billable status. Set to true for only billable entries, false for non-billable. Omit to get all entries. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `entries` | array | Yes |  |
| `summary` | object | Yes |  |

### Clickup get workspace hierarchy

**Slug:** `CLICKUP_MCP_CLICKUP_GET_WORKSPACE_HIERARCHY`

Get workspace hierarchy (spaces, folders, lists) with pagination and depth control. Use only when you need the workspace structure — most tools resolve names automatically.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | number | No | Maximum number of spaces to return per page (default: 10, max: 50) |
| `cursor` | string | No | Pagination cursor from previous response. Use to fetch next page of spaces |
| `max_depth` | string ("0" | "1" | "2") | No | Maximum depth of hierarchy to return: 0=spaces only, 1=spaces+folders, 2=spaces+folders+lists (default: 2) |
| `space_ids` | array | No | Filter to return only specific spaces by ID. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `has_more` | boolean | Yes | Whether there are more spaces to fetch |
| `hierarchy` | object | Yes | Workspace hierarchy tree containing paginated spaces |
| `next_cursor` | string | Yes | Cursor for next page of spaces, or null if no more pages |
| `total_spaces` | number | Yes | Total number of spaces in workspace (after filtering if space_ids provided) |

### Clickup get workspace members

**Slug:** `CLICKUP_MCP_CLICKUP_GET_WORKSPACE_MEMBERS`

List all members in the workspace. Most tools resolve assignees automatically — use only when you need the full member list.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `members` | array | Yes | List of workspace members |

### Clickup list document pages

**Slug:** `CLICKUP_MCP_CLICKUP_LIST_DOCUMENT_PAGES`

List page names and structure of a document (no content). Use get_document_pages to fetch full page content by page ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `document_id` | string | Yes | 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` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |
| `max_page_depth` | number | No | Maximum depth of pages to retrieve (-1 for unlimited) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `pages` | array | Yes | Document page listing |

### Clickup merge document

**Slug:** `CLICKUP_MCP_CLICKUP_MERGE_DOCUMENT`

Merge one ClickUp document into another. The source document's pages are folded into the target document, then the SOURCE document is permanently DELETED — this is destructive and cannot be undone. `target_doc_id` survives; `source_doc_id` is consumed.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |
| `source_doc_id` | string | Yes | ID of the source document whose pages are folded into the target. The source document is DELETED after the merge — this cannot be undone. |
| `target_doc_id` | string | Yes | ID of the target document that survives the merge and receives the source's pages (e.g. 'ad-909705'). In ClickUp doc URLs, the document_id is the first ID after /docs/ or /v/dc/. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `success` | boolean | Yes |  |
| `source_doc_id` | string | Yes |  |
| `target_doc_id` | string | Yes |  |

### Clickup merge document page

**Slug:** `CLICKUP_MCP_CLICKUP_MERGE_DOCUMENT_PAGE`

Merge one document page into another. The source page's content is appended to the target page and its child pages are reparented under the target, then the SOURCE page is permanently DELETED — this is destructive and cannot be undone. By default the source page is taken from the same document as the target; set source_doc_id to merge a page from a different document in the same workspace.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |
| `source_doc_id` | string | No | ID of the document the source page lives in. Defaults to target_doc_id. Set this to merge a page from a different document in the same workspace. |
| `target_doc_id` | string | Yes | ID of the document containing the target page (e.g. 'ad-909705'). In ClickUp doc URLs, the document_id is the first ID after /docs/ or /v/dc/. |
| `source_page_id` | string | Yes | ID of the source page to merge into the target. Its content is appended to the target and its child pages are reparented, then it is DELETED — this cannot be undone. |
| `target_page_id` | string | Yes | ID of the target page that survives and receives the source page's content (e.g. 'ad-2675877'). In ClickUp doc URLs, the page_id is the second ID after /docs/ or /v/dc/. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `success` | boolean | Yes |  |
| `source_doc_id` | string | No |  |
| `target_doc_id` | string | Yes |  |
| `source_page_id` | string | Yes |  |
| `target_page_id` | string | Yes |  |

### Clickup merge tasks

**Slug:** `CLICKUP_MCP_CLICKUP_MERGE_TASKS`

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').

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | Yes | 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` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |
| `source_task_ids` | array | Yes | 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'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `success` | boolean | Yes |  |
| `merged_task_id` | string | Yes | The ID of the surviving target task. |

### Clickup move task

**Slug:** `CLICKUP_MCP_CLICKUP_MOVE_TASK`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `list_id` | string | Yes | 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` | string | Yes | 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` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `success` | boolean | Yes |  |
| `task_id` | string | Yes |  |
| `custom_id` | string | No | Custom task ID (e.g., 'DEV-1234') if the workspace has custom IDs enabled, otherwise null. |
| `new_list_id` | string | Yes |  |

### Clickup remove tag from task

**Slug:** `CLICKUP_MCP_CLICKUP_REMOVE_TAG_FROM_TASK`

Remove tag from task. Only removes tag-task association, tag remains in space.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | Yes | 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` | string | Yes | Name of the tag to remove from the task. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `success` | boolean | Yes |  |
| `task_id` | string | Yes |  |
| `tag_name` | string | Yes |  |
| `custom_id` | string | No | Custom task ID (e.g., 'DEV-1234') if the workspace has custom IDs enabled, otherwise null. |

### Clickup remove task dependency

**Slug:** `CLICKUP_MCP_CLICKUP_REMOVE_TASK_DEPENDENCY`

Remove a dependency between two tasks.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("waiting_on" | "blocking") | Yes | Type of dependency to remove: 'waiting_on' or 'blocking'. |
| `task_id` | string | Yes | 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` | string | Yes | ID of the task that was in the dependency relationship. Works with both regular task IDs and custom IDs (like 'DEV-1234'). |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `success` | boolean | Yes |  |

### Clickup remove task from list

**Slug:** `CLICKUP_MCP_CLICKUP_REMOVE_TASK_FROM_LIST`

Remove a task from an additional list (cannot remove from home list). Requires the Tasks in Multiple Lists ClickApp to be enabled.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `list_id` | string | Yes | 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` | string | Yes | 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` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `success` | boolean | Yes |  |

### Clickup remove task link

**Slug:** `CLICKUP_MCP_CLICKUP_REMOVE_TASK_LINK`

Remove a link between two tasks.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | Yes | 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` | string | Yes | ID of the task that was linked to. Works with both regular task IDs and custom IDs (like 'DEV-1234'). |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `success` | boolean | Yes |  |

### Clickup request attachment upload

**Slug:** `CLICKUP_MCP_CLICKUP_REQUEST_ATTACHMENT_UPLOAD`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | Yes | Task ID (supports custom IDs like 'DEV-1234') |
| `file_name` | string | No | Optional file name override (include the extension). Defaults to the local file's own name. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `success` | boolean | Yes |  |
| `task_id` | string | Yes | Resolved task ID the upload is bound to. |
| `file_name` | string | No | 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` | string | Yes | ISO 8601 expiry of the upload ticket. |
| `upload_url` | string | Yes | URL the file must be POSTed to. |
| `http_method` | string | Yes | HTTP method for the upload request (always POST). |
| `instructions` | string | Yes | How to complete the upload. |
| `upload_ticket` | string | Yes | Upload ticket. Send it in the X-Upload-Ticket request header. |
| `multipart_field` | string | Yes | multipart/form-data field name for the file (always "attachment"). |

### Clickup resolve assignees

**Slug:** `CLICKUP_MCP_CLICKUP_RESOLVE_ASSIGNEES`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `assignees` | array | Yes | Array of assignee names, emails, or "me" to resolve. Use "me" to refer to the currently authenticated user. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `userIds` | array | Yes | Array of resolved user IDs. Null entries indicate assignees that could not be resolved. |

### Clickup search

**Slug:** `CLICKUP_MCP_CLICKUP_SEARCH`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sort` | array | No | Sort criteria for results. Can specify multiple sort fields in priority order |
| `count` | number | No | Maximum number of results to return per page (for pagination) |
| `cursor` | string | No | Pagination cursor from previous response. Use to fetch next page of results |
| `filters` | object | No | Filters to refine search results by various criteria |
| `keywords` | string | No | Search query string. Use specific keywords to find items |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `results` | array | Yes | Array of formatted search results |
| `overview` | string | Yes | A high-level overview of the search results including count and types found |
| `next_cursor` | string | Yes | Pagination cursor for fetching next page, or null if no more results |

### Clickup search reminders

**Slug:** `CLICKUP_MCP_CLICKUP_SEARCH_REMINDERS`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | number | No | Maximum number of reminders to return per page (default: 25, max: 100) |
| `since` | string | No | 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') |
| `cursor` | string | No | Cursor for pagination. Use the next_cursor value from the previous response to fetch the next page of results |
| `is_overdue` | boolean | No | Filter to show only overdue reminders |
| `is_completed` | boolean | No | Filter to show only completed or incomplete reminders |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |
| `reminder_type` | string ("ASSIGNED_COMMENT" | "UNANSWERED_MENTION" | "APPROVAL" | "SAVED" | "REMINDER") | No | Filter by type of reminder (ASSIGNED_COMMENT, UNANSWERED_MENTION, APPROVAL, SAVED, REMINDER) |
| `due_date_status` | string ("TODO" | "LATER" | "DELETED") | No | Filter reminders by due date status (TODO, LATER, DELETED) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `has_more` | boolean | Yes | Whether there are more results available |
| `reminders` | array | Yes | Array of reminder results |
| `next_cursor` | string | Yes | Cursor for fetching next page of results, or null if no more results |
| `total_count` | number | Yes | Total number of reminders returned in this response |

### Clickup send chat message

**Slug:** `CLICKUP_MCP_CLICKUP_SEND_CHAT_MESSAGE`

Send a message or threaded reply to a chat channel. Provide parent_message_id for threaded replies. Supports markdown and post types.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("message" | "post") | No | Type of message to send. |
| `content` | string | Yes | Message content to send (supports markdown). |
| `assignee` | string | No | User ID to assign the message to. Use clickup_resolve_assignees to convert email, username, or "me" to user ID if needed. |
| `followers` | array | No | 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. |
| `channel_id` | string | Yes | 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` | string | No | Title for the post (required if type is 'post'). |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |
| `content_format` | string ("text/md" | "text/plain") | No | Format of the message content. |
| `group_assignee` | string | No | Group ID to assign the message to. |
| `post_subtype_id` | string | No | Subtype ID for the post (required if type is 'post'). |
| `parent_message_id` | string | No | 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. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `success` | boolean | Yes |  |
| `channel_id` | string | Yes |  |
| `message_id` | string | Yes |  |

### Clickup start time tracking

**Slug:** `CLICKUP_MCP_CLICKUP_START_TIME_TRACKING`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tags` | array | No | Array of tag names to assign to the time entry. |
| `task_id` | string | Yes | Task ID (supports custom IDs like 'DEV-1234') |
| `billable` | boolean | No | Whether this time is billable. Default is workspace setting. |
| `description` | string | No | Description for the time entry. Keep short and simple, or omit for best compatibility. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `taskId` | string | Yes |  |
| `message` | string | Yes |  |
| `success` | boolean | Yes |  |
| `timeEntry` | string | Yes |  |

### Clickup stop time tracking

**Slug:** `CLICKUP_MCP_CLICKUP_STOP_TIME_TRACKING`

Stop the currently running time tracker. Supports description and tags. Returns the completed time entry details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tags` | array | No | Array of tag names to assign to the time entry. |
| `description` | string | No | Description to update or add to the time entry. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `message` | string | Yes |  |
| `success` | boolean | Yes |  |
| `timeEntry` | string | Yes |  |

### Clickup update comment

**Slug:** `CLICKUP_MCP_CLICKUP_UPDATE_COMMENT`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `assignee` | number | No | User ID to assign the comment to. Use clickup_resolve_assignees to convert email, username, or "me" to user ID if needed. |
| `resolved` | boolean | No | Mark the comment as resolved (true) or unresolved (false). |
| `comment_id` | string | Yes | ID of the comment to update. Use clickup_get_task_comments or clickup_get_threaded_comments to find the comment ID. |
| `comment_text` | string | No | New comment content that replaces the existing text. Supports Markdown formatting. To @mention a user, write @[Name](user_id) inline — user_id MUST be a numeric ClickUp user id from clickup_resolve_assignees. Comments with mentions post as plain text (no Markdown). |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `success` | boolean | Yes |  |
| `comment_id` | string | Yes |  |

### Clickup update document page

**Slug:** `CLICKUP_MCP_CLICKUP_UPDATE_DOCUMENT_PAGE`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | New name for the page |
| `content` | string | No | 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` | string | Yes | 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` | string | No | New subtitle for the page |
| `document_id` | string | Yes | 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` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |
| `content_format` | string ("text/md" | "text/plain") | No | The format of the page content |
| `content_edit_mode` | string ("replace" | "append" | "prepend") | No | 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. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page_id` | string | Yes |  |
| `success` | boolean | Yes |  |

### Clickup update folder

**Slug:** `CLICKUP_MCP_CLICKUP_UPDATE_FOLDER`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | New name for the folder. |
| `folder_id` | string | Yes | ID of the folder to update. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |
| `override_statuses` | boolean | No | Whether to override space statuses with folder-specific statuses. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `success` | boolean | Yes |  |
| `folder_id` | string | Yes |  |

### Clickup update list

**Slug:** `CLICKUP_MCP_CLICKUP_UPDATE_LIST`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | New name for the list. |
| `status` | string | No | New status for the list. |
| `content` | string | No | New description or content for the list. |
| `list_id` | string | Yes | ID of the list to update. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `list_id` | string | Yes |  |
| `success` | boolean | Yes |  |

### Clickup update reminder

**Slug:** `CLICKUP_MCP_CLICKUP_UPDATE_REMINDER`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | New title for the reminder. |
| `due_date` | string | No | 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` | string | No | New description for the reminder. |
| `reminder_id` | string | Yes | The unique identifier (KSUID) of the reminder to update. |
| `is_completed` | boolean | No | Set to true to mark the reminder as completed, false to mark as incomplete. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `success` | boolean | Yes | Whether the reminder was updated successfully |
| `reminder_id` | string | Yes | Unique identifier of the updated reminder |

### Clickup update task

**Slug:** `CLICKUP_MCP_CLICKUP_UPDATE_TASK`

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).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No |  |
| `status` | string | No | New status (must be valid for the task's list). |
| `task_id` | string | Yes | Task ID (supports custom IDs like 'DEV-1234') |
| `due_date` | string | No | YYYY-MM-DD or YYYY-MM-DD HH:MM format. Pass 'none' to clear. Omit to leave unchanged. |
| `priority` | string ("urgent" | "high" | "normal" | "low" | "none") | No | Set priority, or 'none' to clear. Omit to leave unchanged. |
| `assignees` | array | No | Array of assignee user IDs. Use clickup_resolve_assignees to convert emails, usernames, or "me" to user IDs if needed. |
| `task_type` | string | No | 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` | string | No | YYYY-MM-DD or YYYY-MM-DD HH:MM format. Pass 'none' to clear. Omit to leave unchanged. |
| `workspace_id` | string | No | Workspace ID (digits only). Only needed when you have multiple workspaces. |
| `custom_fields` | array | No | Array of custom field values to set on the task. Each object must have an 'id' and 'value' property. |
| `time_estimate` | string | No | Time estimate in minutes (e.g., '150' for 2h 30m). |
| `markdown_description` | string | No | Task description in markdown format. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `success` | boolean | Yes |  |
| `task_id` | string | Yes |  |
| `task_url` | string | Yes |  |
| `custom_id` | string | No | Custom task ID (e.g., 'DEV-1234') if the workspace has custom IDs enabled, otherwise null. |
