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 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/helbertparanhos/clickup-mcp-pro'
If you have feedback or need assistance with the MCP directory API, please join our Discord server