clickup-mcp-pro
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CLICKUP_TOKEN | No | Alternative to CLICKUP_API_TOKEN. | |
| CLICKUP_TEAM_ID | No | Default Team/Workspace id used when a tool omits team_id. | |
| CLICKUP_READONLY | No | true blocks all writes (reads still work). | false |
| CLICKUP_API_TOKEN | No | Personal API token (pk_...). CLICKUP_TOKEN is also accepted. | |
| CLICKUP_TIMEOUT_MS | No | Per-request timeout. | 60000 |
| CLICKUP_UPLOAD_DIR | No | Restrict upload_task_attachment(file_path) to this base directory. | |
| CLICKUP_DISABLE_RAW | No | true hides the clickup_raw tool. | false |
| CLICKUP_MAX_RETRIES | No | Max retries on 429/5xx/network errors. | 3 |
| CLICKUP_MAX_UPLOAD_BYTES | No | Max attachment size (50 MB) for uploads. | 52428800 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_workspacesA | List all Teams/Workspaces the authorized token can access, including members. Use this first to discover team_id values. |
| get_workspace_seatsA | Get seat usage for a Workspace — how many member and guest seats are used vs. the total available on the current plan. Use to check capacity before inviting people. |
| get_workspace_planA | Get the current subscription plan (name and id) of a Workspace, e.g. Free, Unlimited, Business. Use to know which features and limits apply. |
| get_workspace_membersA | List all members (users) of a Workspace with their ids, emails and roles. Useful for resolving assignees. |
| get_custom_task_typesA | List the custom task types defined in a Workspace (e.g. Bug, Feature, Milestone). Returns each type's id and name. Use to find a |
| get_authorized_userA | Get the profile of the user that owns the configured API token — id, username, email and color. Use to identify 'me' for self-assignment or filtering by the current user. |
| list_spacesA | List all Spaces in a Workspace, with each Space's id, name, privacy and enabled features. Spaces are the top level of the ClickUp hierarchy (Space → Folder → List → Task). Use to discover a |
| get_spaceA | Get a single Space by id, including its name, privacy, assignee settings and enabled features. Use to inspect a Space's configuration. |
| create_spaceA | Create a new Space in a Workspace. Optionally enable multiple assignees and toggle features. Returns the created Space with its id. Use to start a new top-level area of work. |
| update_spaceA | Update a Space — rename it, change its privacy, assignee mode, admin permissions, or feature toggles. Only the provided fields change. Returns the updated Space. |
| delete_spaceA | Permanently delete a Space and everything inside it (Folders, Lists, tasks). This cannot be undone. Returns a confirmation with the deleted Space id. |
| list_foldersA | List all Folders inside a Space, with each Folder's id, name and the Lists it contains. Folders group Lists within a Space. Use to discover a |
| get_folderA | Get a single Folder by id, including its name and the Lists it contains (with their ids and task counts). Use to inspect a Folder or enumerate its Lists. |
| create_folderA | Create an empty Folder inside a Space. Returns the created Folder with its id. Use to group related Lists together. |
| create_folder_from_templateA | Create a Folder in a Space from a Folder template, reproducing the template's Lists, statuses and structure. Returns the created Folder. Use to spin up a standardized project layout. |
| update_folderA | Rename a Folder. Returns the updated Folder. Use to change a Folder's display name. |
| delete_folderA | Permanently delete a Folder and all Lists and tasks inside it. This cannot be undone. Returns a confirmation with the deleted Folder id. |
| get_folder_viewsA | List the Views configured on a Folder (List, Board, Calendar, Gantt, etc.), with each View's id and type. Use to find a |
| get_lists_in_folderA | List all Lists inside a Folder, with each List's id, name and task count. Use to discover a |
| get_folderless_listsA | List all folderless Lists that live directly under a Space (not inside any Folder), with their ids and names. Use to find Lists that aren't grouped in a Folder. |
| get_listA | Get a single List by id, including its name, content, statuses, task count and settings. Use to inspect a List before creating or filtering tasks in it. |
| create_list_in_folderA | Create a new List inside a Folder, optionally setting its description, due date, priority, default assignee and status. Returns the created List with its id. |
| create_folderless_listA | Create a new List directly under a Space (not inside any Folder), optionally setting description, due date, priority, default assignee and status. Returns the created List with its id. |
| create_list_from_template_in_folderA | Create a List in a Folder from a List template, reproducing the template's statuses, fields and (optionally) tasks. Returns the created List. Use to spin up a standardized List layout. |
| update_listA | Update a List — change its name, content, due date, priority, default assignee or status. Only the provided fields change. Returns the updated List. |
| delete_listA | Permanently delete a List and all tasks inside it. This cannot be undone. Returns a confirmation with the deleted List id. |
| get_list_viewsA | List the Views configured on a List (List, Board, Calendar, etc.), with each View's id and type. Use to find a |
| get_tasksA | Get tasks in a specific List with rich filtering — by status, assignees, tags, and due/created/updated date ranges — plus ordering, subtasks and custom-field filters. Paginated. Use when you know which List the tasks live in. |
| get_taskA | Get a single task by id with full detail — status, assignees, custom fields, dates, and optionally subtasks and the markdown description. Use to inspect one known task. |
| get_workspace_tasksA | Search tasks across the entire Workspace with filters (Spaces, Folders, Lists, statuses, assignees, tags, due dates). This is the deep search to use when you don't know which List a task is in. Paginated. |
| create_taskA | Create a new task in a List, setting any fields you provide (description, status, priority, dates, assignees, tags, custom fields, parent for subtasks). Returns the created task with its id. |
| update_taskA | Update any field of a task — pass only the fields you want to change. For assignees, |
| delete_taskA | Permanently delete a task by id. This cannot be undone. Returns a confirmation with the deleted task id. |
| get_subtasksA | Get the subtasks of a parent task. Returns the parent task with its subtasks included. Use to enumerate a task's children. |
| duplicate_taskA | Duplicate a task into a target List by reading the source and re-creating it (name, description, status, priority, assignees, tags and dates). Returns the new task. The copy is named ' (copy)' unless you override it. |
| set_task_custom_field_valueA | Set (or overwrite) a custom field's value on a task. The |
| remove_task_custom_field_valueA | Clear a custom field's value on a task, resetting it to empty. Returns a confirmation with the task and field ids. |
| get_task_membersA | List the members who have access to a task, with their ids, usernames and emails. Use to see who can view or be assigned to the task. |
| create_bulk_tasksA | Create many tasks in a single List in one call (up to 100). Runs with bounded concurrency and returns a per-task success/error report, so a partial failure never loses the rest of the batch. Use to import or scaffold many tasks at once. |
| update_bulk_tasksA | Apply the same set of field changes to many tasks at once (up to 100). Returns a per-task success/error report. Use to mass-change status, priority, due date, or add/remove assignees across a batch of tasks. |
| delete_bulk_tasksA | Permanently delete many tasks at once (up to 100). This cannot be undone. Returns a per-task success/error report so you can see exactly which deletions succeeded. |
| move_bulk_tasksA | Add many tasks to a target List at once (up to 100), using ClickUp's multi-list association (the tasks also remain in their original List). Returns a per-task success/error report. |
| add_task_linkA | Link two tasks together with a plain (non-dependency) relationship, so they reference each other. Use for 'related to' connections that don't imply blocking order. Returns the linked task. |
| delete_task_linkA | Remove a plain link between two tasks (created by |
| add_task_dependencyA | Create a blocking dependency between tasks. Provide |
| delete_task_dependencyA | Remove a blocking dependency between tasks. Provide the same |
| add_task_to_listA | Add an existing task to an additional List (ClickUp's 'Tasks in Multiple Lists' feature), so it appears in more than one List without being moved. Returns a confirmation. |
| remove_task_from_listA | Remove a task from an additional List it was added to via 'Tasks in Multiple Lists'. The task remains in its home List. Returns a confirmation. |
| get_task_commentsA | List all comments on a task, newest first. Returns each comment's id, text, author, creation date, assignee and resolved state. Use to read a task's discussion history before replying or to audit activity. Supports cursor pagination via |
| create_task_commentA | Post a new comment on a task. Optionally assign it to a user and notify all watchers. Returns the created comment's id. Use to leave feedback, ask questions or record an update directly on a task. |
| get_list_commentsA | List all comments attached to a List (List-level discussion, separate from individual task comments), newest first. Returns each comment's id, text, author and date. |
| create_list_commentA | Post a new comment on a List. Optionally assign it to a user and notify watchers. Returns the created comment's id. Use for List-level notes that don't belong to a specific task. |
| get_chat_view_commentsA | List all messages in a legacy Chat view (a view of type 'chat'), newest first. Returns each message's id, text, author and date. Use for ClickUp's older chat-on-a-view feature (not the newer v3 Chat channels). |
| create_chat_view_commentB | Post a message into a legacy Chat view. Optionally notify all members of the view. Returns the created message's id. |
| update_commentA | Edit an existing comment: change its text, reassign it, or mark it resolved/unresolved. Only the fields you provide are changed. Returns the updated comment. Works for task, List and Chat-view comments. |
| delete_commentA | Permanently delete a comment by id. This cannot be undone. Returns a confirmation object with the deleted comment id. |
| get_threaded_commentsA | List the threaded replies under a parent comment, oldest first. Returns each reply's id, text, author and date. Use to read a full comment thread after spotting a parent comment. |
| create_threaded_commentA | Reply to an existing comment, creating a threaded response under it. Optionally assign the reply and notify watchers. Returns the created reply's id. |
| create_checklistA | Create a checklist (a named group of sub-items) on a task. Returns the created checklist with its id. Use to add a structured to-do list inside a task, then add items with |
| edit_checklistA | Rename a checklist and/or change its position among the task's checklists. Only the provided fields change. Returns the updated checklist. |
| delete_checklistA | Permanently delete a checklist and all its items from a task. This cannot be undone. Returns a confirmation with the deleted checklist id. |
| create_checklist_itemA | Add a single item (a checkable line) to an existing checklist, optionally assigned to a user. Returns the updated checklist. Use after |
| edit_checklist_itemA | Edit a checklist item — change its text, assignee, resolved (checked) state, or nest it under a parent item. Only the provided fields change. Returns the updated checklist. |
| delete_checklist_itemA | Permanently delete a single item from a checklist. This cannot be undone. Returns a confirmation with the deleted item id. |
| upload_task_attachmentA | Attach a file to a task. Provide exactly one source: file_path (local), url (remote file to fetch), or base64 (raw content). file_name is required when using base64. |
| list_task_attachmentsA | List the attachments currently on a task (read from the task object — ClickUp returns attachments inline). |
| get_space_tagsA | List all tags defined in a Space, with each tag's name and colors. Tags live at the Space level and can be applied to any task in it. Use to discover available tag names before tagging a task. |
| create_space_tagA | Create a new tag in a Space with optional foreground/background colors. The tag becomes available to all tasks in the Space. Returns the created tag. |
| update_space_tagA | Update an existing Space tag — rename it and/or change its colors. Identify it by its current name. Returns the updated tag. |
| delete_space_tagA | Delete a tag from a Space by name, removing it from every task it was applied to. This cannot be undone. Returns a confirmation with the deleted tag name. |
| add_tag_to_taskA | Apply an existing Space tag to a task. The tag must already exist in the task's Space (create it first with |
| remove_tag_from_taskA | Remove a tag from a task without deleting the tag from the Space. Returns a confirmation. Use to untag a single task. |
| get_list_custom_fieldsA | List the custom fields available on a List, with each field's id, name, type and type configuration (e.g. dropdown options, currency settings). Use to discover a |
| get_folder_custom_fieldsA | List the custom fields accessible at the Folder level, with their ids, names, types and configuration. Use to discover fields inherited by the Folder's Lists. |
| get_space_custom_fieldsA | List the custom fields accessible at the Space level, with their ids, names, types and configuration. Use to discover Space-wide fields. |
| get_workspace_custom_fieldsA | List the custom fields accessible at the Workspace/Team level, with their ids, names, types and configuration. Use to discover org-wide fields. |
| set_custom_field_valueA | Set (or overwrite) a custom field's value on a task. The |
| remove_custom_field_valueA | Clear a custom field's value on a task, resetting it to empty. Returns a confirmation with the task and field ids. Use to unset a field rather than overwrite it. |
| get_time_entriesA | List time entries in a Workspace within a date range, optionally filtered by assignee, task, List, Folder or Space. Returns each entry's id, duration, user, task and billable flag. Use to build timesheets or audit logged time. |
| get_time_entryA | Get a single time entry by id, including its duration, start, user, task and tags. Use to inspect one logged interval. |
| get_running_time_entryA | Get the timer that is currently running for a user (defaults to the token owner). Returns the active entry or empty if no timer is running. Use to check whether a timer is on before starting/stopping. |
| start_time_entryA | Start a live timer for the token owner, optionally bound to a task and marked billable. Returns the started entry. Stop it later with |
| stop_time_entryA | Stop the timer currently running for the token owner and persist the logged interval. Returns the completed entry. No-op error if no timer is running. |
| create_time_entryA | Create a manual time entry with an explicit start time and duration (no live timer needed). Optionally tie it to a task, user, billable flag and tags. Returns the created entry. Use to log time after the fact. |
| update_time_entryA | Update an existing time entry — change its description, start, duration, billable flag, tags or linked task. Only the provided fields change. Returns the updated entry. |
| delete_time_entryA | Permanently delete a time entry by id. This cannot be undone. Returns a confirmation with the deleted entry id. |
| get_time_entry_historyA | Get the change history of a time entry — who edited it and what changed over time. Use to audit edits to logged time. |
| get_all_time_entry_tagsA | List all time-entry tags defined in a Workspace, with their names and colors. Use to discover available tags before tagging entries. |
| add_tags_to_time_entriesA | Add one or more tags to one or more time entries at once. Returns a confirmation. Use to categorize logged time (e.g. 'billable', 'meeting'). |
| remove_tags_from_time_entriesB | Remove one or more tags from one or more time entries at once. Returns a confirmation. |
| get_task_time_in_statusA | Get how long a single task has spent in each of its statuses, plus the current status duration. Use to analyze cycle time or where a task is stuck. |
| get_bulk_tasks_time_in_statusA | Get time-in-status data for multiple tasks in one call. Returns per-task status durations. Use to compare cycle time across a set of tasks. |
| search_docsA | Search or list Docs in a Workspace (ClickUp Docs v3). Returns matching Docs with their ids, titles and locations. Use to find a |
| get_docA | Get a single Doc's metadata by id (ClickUp Docs v3) — its title, parent location and settings. Use |
| create_docA | Create a new Doc in a Workspace (ClickUp Docs v3), optionally nested under a Space/Folder/List and with a visibility setting. Returns the created Doc with its id. Add pages afterwards with |
| get_doc_page_listingA | Get the page tree of a Doc (ClickUp Docs v3) — page ids, titles and their nesting hierarchy, without the full content. Use to navigate a Doc's structure before fetching a specific page. |
| get_doc_pagesA | Get every page of a Doc together with its full content (ClickUp Docs v3). Returns content as markdown by default. Use to read an entire Doc at once. |
| get_doc_pageA | Get a single page of a Doc with its content (ClickUp Docs v3). Returns content as markdown by default. Use after |
| create_doc_pageA | Create a new page inside a Doc (ClickUp Docs v3), optionally nested under an existing page and with initial content. Returns the created page with its id. |
| update_doc_pageA | Update a Doc page's title, subtitle or content (ClickUp Docs v3). Use |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/helbertparanhos/clickup-mcp-pro'
If you have feedback or need assistance with the MCP directory API, please join our Discord server