Connects Claude to the ClickUp v2 API with 37 tools spanning task CRUD, checklists, dependencies, comments, tags, and workspace navigation. The headline feature is aggressive response slimming: API responses that normally return 3,500+ characters get trimmed to under 200 by stripping feature flags, permission blobs, profile pictures, and other metadata that LLMs don't need. You get 95-97% token reductions on most operations. Reach for this when you're building task management workflows in Claude and want to avoid burning context window on verbose JSON. Requires a ClickUp Personal API Token and runs over stdio via npx.
Public tool metadata for what this MCP can expose to an agent.
clickup_searchUniversal search across your entire ClickUp workspace. This is a powerful global search tool that finds ANY type of content - tasks, documents, dashboards, attachments, whiteboards, chat messages, and forms. Use this tool when: - You need to find something but don't know exact...6 paramsUniversal search across your entire ClickUp workspace. This is a powerful global search tool that finds ANY type of content - tasks, documents, dashboards, attachments, whiteboards, chat messages, and forms. Use this tool when: - You need to find something but don't know exact...
sortarraycountnumbercursorstringfiltersobjectkeywordsstringworkspace_idstringclickup_get_workspace_hierarchyGet workspace hierarchy (spaces, folders, lists) from your authenticated workspace with pagination support. Workspace ID is automatically detected from your session. Returns tree structure with names and IDs for navigation. Supports pagination for large workspaces and depth co...5 paramsGet workspace hierarchy (spaces, folders, lists) from your authenticated workspace with pagination support. Workspace ID is automatically detected from your session. Returns tree structure with names and IDs for navigation. Supports pagination for large workspaces and depth co...
limitnumbercursorstringmax_depthnumber0 · 1 · 2space_idsarrayworkspace_idstringclickup_create_taskCreate task in a ClickUp list. Requires task name and list_id. ALWAYS ask user which list to use - never guess. Use clickup_get_list to resolve list names to IDs. Supports assignees as array of user IDs, emails, usernames, or "me". Supports task_type to specify the task type b...15 paramsCreate task in a ClickUp list. Requires task name and list_id. ALWAYS ask user which list to use - never guess. Use clickup_get_list to resolve list names to IDs. Supports assignees as array of user IDs, emails, usernames, or "me". Supports task_type to specify the task type b...
namestringtagsarrayparentstringstatusstringlist_idstringdue_datestringprioritystringurgent · high · normal · lowassigneesarraytask_typestringstart_datestringdescriptionstringworkspace_idstringcustom_fieldsarraymarkdown_descriptionstringcheck_required_custom_fieldsbooleanclickup_get_taskGet task details by task_id (works with regular/custom IDs). Set subtasks=true to include all subtask details. Response Size Optimization: - Use detail_level='summary' for lightweight responses when full details aren't needed - Responses exceeding 50,000 tokens automatically s...4 paramsGet task details by task_id (works with regular/custom IDs). Set subtasks=true to include all subtask details. Response Size Optimization: - Use detail_level='summary' for lightweight responses when full details aren't needed - Responses exceeding 50,000 tokens automatically s...
task_idstringsubtasksbooleandetail_levelstringsummary · detailedworkspace_idstringclickup_filter_tasksRetrieve tasks with combined filters. Supports filtering by tags, lists, folders, spaces, statuses, assignees, due date range, and completion date range. Within each filter type, multiple values use OR logic (e.g., tags: ["bug", "feature"] returns tasks with either tag). Acros...16 paramsRetrieve tasks with combined filters. Supports filtering by tags, lists, folders, spaces, statuses, assignees, due date range, and completion date range. Within each filter type, multiple values use OR logic (e.g., tags: ["bug", "feature"] returns tasks with either tag). Acros...
pagenumbertagsarrayreversebooleanlist_idsarrayorder_bystringid · created · updated · due_datestatusesarraysubtasksbooleanassigneesarrayspace_idsarrayfolder_idsarraydue_date_tostringdate_done_tostringworkspace_idstringdue_date_fromstringdate_done_fromstringinclude_closedbooleanclickup_update_taskUpdate task properties. Requires task_id and at least one update field. Custom fields supported as array of {id, value}. Supports assignees as array of user IDs, emails, usernames, or "me". Supports task_type to change the task type by name (e.g., 'Bug', 'Feature'), or null to...13 paramsUpdate task properties. Requires task_id and at least one update field. Custom fields supported as array of {id, value}. Supports assignees as array of user IDs, emails, usernames, or "me". Supports task_type to change the task type by name (e.g., 'Bug', 'Feature'), or null to...
namestringstatusstringtask_idstringdue_datevaluepriorityvalueassigneesarraytask_typestringstart_datevaluedescriptionstringworkspace_idstringcustom_fieldsarraytime_estimatestringmarkdown_descriptionstringclickup_delete_taskDelete a task from your Workspace by task_id. Works with regular and custom IDs (e.g. 'DEV-1234'). IMPORTANT: before running this tool, ALWAYS confirm with the user the correct task_id to delete.2 paramsDelete a task from your Workspace by task_id. Works with regular and custom IDs (e.g. 'DEV-1234'). IMPORTANT: before running this tool, ALWAYS confirm with the user the correct task_id to delete.
task_idstringworkspace_idstringclickup_move_taskMove a task to a new home list. The task is removed from its current home list and placed in the destination list. Requires task_id and list_id. Works with regular and custom task IDs (e.g. 'DEV-1234'). Use clickup_get_list to resolve list names to IDs.3 paramsMove a task to a new home list. The task is removed from its current home list and placed in the destination list. Requires task_id and list_id. Works with regular and custom task IDs (e.g. 'DEV-1234'). Use clickup_get_list to resolve list names to IDs.
list_idstringtask_idstringworkspace_idstringclickup_add_task_to_listAdd a task to an additional list without removing it from its current home list. Requires the Tasks in Multiple Lists ClickApp to be enabled. Requires task_id and list_id. Use clickup_get_list to resolve list names to IDs.3 paramsAdd a task to an additional list without removing it from its current home list. Requires the Tasks in Multiple Lists ClickApp to be enabled. Requires task_id and list_id. Use clickup_get_list to resolve list names to IDs.
list_idstringtask_idstringworkspace_idstringclickup_remove_task_from_listRemove a task from an additional list. The task remains in its home list and any other lists it belongs to. Cannot remove a task from its home list. Requires the Tasks in Multiple Lists ClickApp to be enabled. Requires task_id and list_id.3 paramsRemove a task from an additional list. The task remains in its home list and any other lists it belongs to. Cannot remove a task from its home list. Requires the Tasks in Multiple Lists ClickApp to be enabled. Requires task_id and list_id.
list_idstringtask_idstringworkspace_idstringclickup_get_task_commentsGet task comments. Each comment includes reply_count indicating the number of threaded replies. Use clickup_get_threaded_comments to fetch replies for comments with reply_count > 0. Use start/start_id params for pagination.4 paramsGet task comments. Each comment includes reply_count indicating the number of threaded replies. Use clickup_get_threaded_comments to fetch replies for comments with reply_count > 0. Use start/start_id params for pagination.
startnumbertask_idstringstart_idstringworkspace_idstringclickup_create_task_commentCreate task comment. Requires task_id and comment_text. Supports notify_all to alert assignees and assignee to assign the comment.5 paramsCreate task comment. Requires task_id and comment_text. Supports notify_all to alert assignees and assignee to assign the comment.
task_idstringassigneenumbernotify_allbooleancomment_textstringworkspace_idstringclickup_get_threaded_commentsGet threaded replies for a comment. Use clickup_get_task_comments first to find comments with reply_count > 0, then use this tool with the comment_id to fetch the thread replies.2 paramsGet threaded replies for a comment. Use clickup_get_task_comments first to find comments with reply_count > 0, then use this tool with the comment_id to fetch the thread replies.
comment_idstringworkspace_idstringclickup_attach_task_fileAttach file to task. Requires task_id. File sources: 1) base64 + filename, 2) URL (http/https).6 paramsAttach file to task. Requires task_id. File sources: 1) base64 + filename, 2) URL (http/https).
task_idstringfile_urlstringfile_datastringfile_namestringauth_headerstringworkspace_idstringclickup_get_task_time_entriesGet all time entries for a task with filtering options. Returns all tracked time with user info, descriptions, tags, start/end times, and durations.5 paramsGet all time entries for a task with filtering options. Returns all tracked time with user info, descriptions, tags, start/end times, and durations.
task_idstringend_datestringstart_datestringis_billablebooleanworkspace_idstringclickup_start_time_trackingStart 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.5 paramsStart 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.
tagsarraytask_idstringbillablebooleandescriptionstringworkspace_idstringclickup_stop_time_trackingStop the currently running time tracker. Supports description and tags. Returns the completed time entry details.3 paramsStop the currently running time tracker. Supports description and tags. Returns the completed time entry details.
tagsarraydescriptionstringworkspace_idstringclickup_add_time_entryAdd 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.8 paramsAdd 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.
tagsarraystartstringtask_idstringbillablebooleandurationstringend_timestringdescriptionstringworkspace_idstringclickup_get_current_time_entryGet the currently running time entry, if any. No parameters needed.1 paramsGet the currently running time entry, if any. No parameters needed.
workspace_idstringclickup_get_time_entriesGet time entries across all tasks within a date range for reporting purposes. Unlike get_task_time_entries which requires a task_id, this tool queries the entire workspace and is ideal for generating time tracking reports (e.g., 'how much time was tracked last month', 'billabl...5 paramsGet time entries across all tasks within a date range for reporting purposes. Unlike get_task_time_entries which requires a task_id, this tool queries the entire workspace and is ideal for generating time tracking reports (e.g., 'how much time was tracked last month', 'billabl...
end_datestringstart_datestringassignee_idnumberis_billablebooleanworkspace_idstringclickup_get_task_time_in_statusGet 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.2 paramsGet 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.
task_idstringworkspace_idstringclickup_get_bulk_tasks_time_in_statusGet 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.2 paramsGet 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.
task_idsarrayworkspace_idstringclickup_create_listCreate a list in a ClickUp space efficiently. The system automatically detects workspace ID and resolves space names. Use space_name (preferred for simplicity) or space_id + list name. Name is required. For lists in folders, use clickup_create_list_in_folder. Supports content,...9 paramsCreate a list in a ClickUp space efficiently. The system automatically detects workspace ID and resolves space names. Use space_name (preferred for simplicity) or space_id + list name. Name is required. For lists in folders, use clickup_create_list_in_folder. Supports content,...
namestringstatusstringcontentstringassigneenumberdue_datestringprioritystringurgent · high · normal · lowspace_idstringspace_namestringworkspace_idstringclickup_create_list_in_folderCreate 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.5 paramsCreate 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.
namestringstatusstringcontentstringfolder_idstringworkspace_idstringclickup_get_listGet details of a ClickUp list by ID or name. Use this tool to lookup a list ID from a list name before calling other list operations. Returns list details including id, name, content, and space info. Accepts either list_id or list_name.3 paramsGet details of a ClickUp list by ID or name. Use this tool to lookup a list ID from a list name before calling other list operations. Returns list details including id, name, content, and space info. Accepts either list_id or list_name.
list_idstringlist_namestringworkspace_idstringclickup_update_listUpdate 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.5 paramsUpdate 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.
namestringstatusstringcontentstringlist_idstringworkspace_idstringclickup_create_folderCreate 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.5 paramsCreate 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.
namestringspace_idstringspace_namestringworkspace_idstringoverride_statusesbooleanclickup_get_folderGet details of a ClickUp folder by ID or name. Use this tool to lookup a folder ID from a folder name before calling other folder operations. Returns folder details including id, name, and space info. Accepts either folder_id or folder_name + space info.5 paramsGet details of a ClickUp folder by ID or name. Use this tool to lookup a folder ID from a folder name before calling other folder operations. Returns folder details including id, name, and space info. Accepts either folder_id or folder_name + space info.
space_idstringfolder_idstringspace_namestringfolder_namestringworkspace_idstringclickup_update_folderUpdate 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.4 paramsUpdate 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.
namestringfolder_idstringworkspace_idstringoverride_statusesbooleanclickup_add_tag_to_taskAdd existing tag to task. Tag must exist in space. Note: Will fail if tag doesn't exist.3 paramsAdd existing tag to task. Tag must exist in space. Note: Will fail if tag doesn't exist.
task_idstringtag_namestringworkspace_idstringclickup_remove_tag_from_taskRemove tag from task. Only removes tag-task association, tag remains in space.3 paramsRemove tag from task. Only removes tag-task association, tag remains in space.
task_idstringtag_namestringworkspace_idstringclickup_add_task_dependencySet a dependency between two tasks. Use 'waiting_on' when task_id cannot start until depends_on is done, or 'blocking' when task_id is blocking depends_on.4 paramsSet a dependency between two tasks. Use 'waiting_on' when task_id cannot start until depends_on is done, or 'blocking' when task_id is blocking depends_on.
typestringwaiting_on · blockingtask_idstringdepends_onstringworkspace_idstringclickup_remove_task_dependencyRemove a dependency between two tasks.4 paramsRemove a dependency between two tasks.
typestringwaiting_on · blockingtask_idstringdepends_onstringworkspace_idstringclickup_add_task_linkLink two tasks together. Creates a bidirectional relationship between the tasks.3 paramsLink two tasks together. Creates a bidirectional relationship between the tasks.
task_idstringlinks_tostringworkspace_idstringclickup_remove_task_linkRemove a link between two tasks.3 paramsRemove a link between two tasks.
task_idstringlinks_tostringworkspace_idstringclickup_get_workspace_membersGet all members (users) in the ClickUp workspace/team from your authenticated workspace. No parameters needed - workspace ID is automatically detected. Note: Most tools automatically resolve assignees by name or email without needing this lookup first. Use this ONLY when you n...1 paramsGet all members (users) in the ClickUp workspace/team from your authenticated workspace. No parameters needed - workspace ID is automatically detected. Note: Most tools automatically resolve assignees by name or email without needing this lookup first. Use this ONLY when you n...
workspace_idstringclickup_find_member_by_nameGet a member in the ClickUp workspace by name or email. Returns the member object if found, or null if not found.2 paramsGet a member in the ClickUp workspace by name or email. Returns the member object if found, or null if not found.
workspace_idstringname_or_emailstringclickup_resolve_assigneesResolve an array of assignee names, emails, or "me" to ClickUp user IDs. Use "me" to get the currently authenticated user's ID. Returns an array of user IDs, or null for any that cannot be resolved. Note: Most task tools automatically resolve assignees - use this only when you...2 paramsResolve an array of assignee names, emails, or "me" to ClickUp user IDs. Use "me" to get the currently authenticated user's ID. Returns an array of user IDs, or null for any that cannot be resolved. Note: Most task tools automatically resolve assignees - use this only when you...
assigneesarrayworkspace_idstringclickup_get_chat_channelsGet chat channels in a workspace. Allows you to see available chat channels including their members, privacy settings, and creation details. Supports pagination using the cursor parameter.3 paramsGet chat channels in a workspace. Allows you to see available chat channels including their members, privacy settings, and creation details. Supports pagination using the cursor parameter.
limitnumbercursorstringworkspace_idstringclickup_send_chat_messageSend a message to a specific chat channel in the workspace. Messages can be either simple messages or posts with additional metadata.10 paramsSend a message to a specific chat channel in the workspace. Messages can be either simple messages or posts with additional metadata.
typestringmessage · postdefault: messagecontentstringassigneestringfollowersarraychannel_idstringpost_titlestringworkspace_idstringcontent_formatstringtext/md · text/plaindefault: text/mdgroup_assigneestringpost_subtype_idstringclickup_get_chat_channel_messagesGet messages for a chat channel. Messages where has_replies=true have threaded replies fetchable via clickup_get_chat_message_replies. If you don't have the channel_id, use clickup_get_chat_channels first. Supports pagination.4 paramsGet messages for a chat channel. Messages where has_replies=true have threaded replies fetchable via clickup_get_chat_message_replies. If you don't have the channel_id, use clickup_get_chat_channels first. Supports pagination.
limitnumbercursorstringchannel_idstringworkspace_idstringclickup_get_chat_message_repliesGet threaded replies for a chat message. Only messages where has_replies=true have replies. If you don't have the message_id, use clickup_get_chat_channel_messages first. Supports pagination.4 paramsGet threaded replies for a chat message. Only messages where has_replies=true have replies. If you don't have the message_id, use clickup_get_chat_channel_messages first. Supports pagination.
limitnumbercursorstringmessage_idstringworkspace_idstringclickup_create_reminderCreate 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).4 paramsCreate 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).
titlestringdue_datestringdescriptionstringworkspace_idstringclickup_search_remindersSearch and list reminders in your ClickUp workspace. Returns reminders for the authenticated user with various filtering options. Use this tool when you need to: - Find all your upcoming or overdue reminders - Check reminder status and due dates - Filter reminders by type (ASS...8 paramsSearch and list reminders in your ClickUp workspace. Returns reminders for the authenticated user with various filtering options. Use this tool when you need to: - Find all your upcoming or overdue reminders - Check reminder status and due dates - Filter reminders by type (ASS...
limitnumbersincestringcursorstringis_overduebooleanis_completedbooleanworkspace_idstringreminder_typestringASSIGNED_COMMENT · UNANSWERED_MENTION · APPROVAL · SAVED · REMINDERdue_date_statusstringTODO · LATER · DELETEDclickup_update_reminderUpdate an existing reminder in your ClickUp workspace. Requires the reminder_id. All other fields are optional - only provide the fields you want to update. Use this tool to: - Change the title or description of a reminder - Update the due date (in YYYY-MM-DD or YYYY-MM-DD HH:...6 paramsUpdate an existing reminder in your ClickUp workspace. Requires the reminder_id. All other fields are optional - only provide the fields you want to update. Use this tool to: - Change the title or description of a reminder - Update the due date (in YYYY-MM-DD or YYYY-MM-DD HH:...
titlestringdue_datestringdescriptionstringreminder_idstringis_completedbooleanworkspace_idstringclickup_get_custom_fieldsGet 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.5 paramsGet 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.
list_idstringspace_idstringfolder_idstringworkspace_idstringinclude_workspacebooleanclickup_create_documentCreate a document in a ClickUp space, folder, or list. Requires name, parent info, visibility and create_page flag.5 paramsCreate a document in a ClickUp space, folder, or list. Requires name, parent info, visibility and create_page flag.
namestringparentobjectvisibilitystringPUBLIC · PRIVATE · PERSONAL · HIDDENcreate_pagebooleanworkspace_idstringclickup_list_document_pagesGet all pages in a document with optional depth control.3 paramsGet all pages in a document with optional depth control.
document_idstringworkspace_idstringmax_page_depthnumberclickup_get_document_pagesGet the content of specific pages from a document.4 paramsGet the content of specific pages from a document.
page_idsarraydocument_idstringworkspace_idstringcontent_formatstringtext/md · text/htmlclickup_create_document_pageCreate a new page in a ClickUp document.7 paramsCreate a new page in a ClickUp document.
namestringcontentstringsub_titlestringdocument_idstringworkspace_idstringcontent_formatstringtext/md · text/plaindefault: text/mdparent_page_idstringclickup_update_document_pageUpdate an existing page in a ClickUp document. WARNING: When content is provided, it fully REPLACES the existing page content. To preserve existing content, first read the page, then include the original content along with your changes.7 paramsUpdate an existing page in a ClickUp document. WARNING: When content is provided, it fully REPLACES the existing page content. To preserve existing content, first read the page, then include the original content along with your changes.
namestringcontentstringpage_idstringsub_titlestringdocument_idstringworkspace_idstringcontent_formatstringtext/md · text/plaindefault: text/mdLightweight ClickUp MCP server focused on task management. 37 tools with token-optimized responses — API responses automatically slimmed from thousands of characters to essentials.
ClickUp's API returns extremely verbose JSON. This server strips it down:
| Response | Before | After | Reduction |
|---|---|---|---|
clickup_whoami | ~3,500 chars | ~160 chars | 95% |
clickup_create_comment | ~1,500 chars | ~38 chars | 97% |
Less tokens = faster responses, lower costs, more context for your AI.
npm install -g @cavort-it-systems/clickup-mcp
Or run directly:
npx @cavort-it-systems/clickup-mcp
claude mcp add clickup -e CLICKUP_API_TOKEN=your-token -- npx @cavort-it-systems/clickup-mcp
Add to your MCP config (~/.claude.json or Claude Desktop settings):
{
"mcpServers": {
"clickup": {
"command": "npx",
"args": ["@cavort-it-systems/clickup-mcp"],
"env": {
"CLICKUP_API_TOKEN": "your-token"
}
}
}
}
git clone https://github.com/cvrt-jh/clickup-mcp.git
cd clickup-mcp
npm install && npm run build
Then configure with the built path:
claude mcp add clickup -e CLICKUP_API_TOKEN=your-token -- node /path/to/clickup-mcp/build/index.js
CLICKUP_API_TOKENAll responses are automatically trimmed to save tokens. The ClickUp API returns extremely verbose JSON — this server strips it down to what matters.
clickup_whoami — from ~3,500 chars to ~160:
// Before (ClickUp API raw)
{"user":{"id":12345678,"username":"Jane Doe","email":"jane@example.com","color":"#0388d1",
"profilePicture":"https://attachments.clickup.com/...","initials":"JD",
"week_start_day":1,"global_font_support":true,"timezone":"Europe/Berlin"},
"teams":{"teams":[{"id":"99999999","name":"My Workspace","color":"#40BC86",
"avatar":"https://attachments2.clickup.com/...?Expires=...&Key-Pair-Id=...&Signature=...",
"members":[{"user":{"id":11111111,"username":"Bob Smith","email":"bob@example.com",
"color":"#aa2fff","profilePicture":null,"initials":"BS","role":4,"role_subtype":2,
"role_key":"guest","custom_role":null,"last_active":"...","date_joined":"...",
"date_invited":"..."},"invited_by":{"id":22222222,...},
"can_see_time_spent":true,...}, ...]}]}}
// After (slimmed)
{"id":12345678,"username":"Jane Doe","email":"jane@example.com",
"timezone":"Europe/Berlin","workspaces":[{"id":"99999999",
"name":"My Workspace","member_count":4}]}
clickup_create_comment — from ~1,500 chars to 38:
// Before
{"id":90150191300876,"hist_id":"...","date":1770053982842,
"version":{"object_type":"comment","object_id":"...","workspace_id":99999999,
"operation":"c","data":{"context":{"root_parent_type":1,"is_chat":false,
"audit_context":{"userid":12345678,"current_time":...,"route":"*"},...},...},...}}
// After
{"id":90150191300876,"date":1770053982842}
What gets stripped:
| Field | Where | Why |
|---|---|---|
features{} | spaces | ~50 lines of boolean flags per space |
sharing{}, permission_level | tasks | Internal access config, not useful |
watchers[] | tasks | Usually same as assignees |
| Full user objects | everywhere | Reduced to {id, username, email} |
profilePicture, initials, color | users | Visual metadata, not useful for LLMs |
version{} blobs | comment/reply creates | Internal versioning data |
invited_by, profileInfo | members | Invitation metadata |
| Pretty-print JSON | all responses | Compact single-line output |
| Empty arrays | tasks | checklists, dependencies, custom_fields omitted when empty |
clickup_whoami - Current user + workspacesclickup_get_spaces - Spaces in workspaceclickup_get_folders - Folders in spaceclickup_get_lists - Lists in folder or spaceclickup_get_list - Single list detailsclickup_create_list - Create list in folder or spaceclickup_delete_list - Delete a list (permanent)clickup_get_task - Get task by IDclickup_create_task - Create task with all fieldsclickup_update_task - Update any task fieldclickup_get_tasks - List tasks in a listclickup_search_tasks - Search tasks across workspaceclickup_set_custom_field - Set custom field valueclickup_get_space_tags - List space tagsclickup_create_space_tag - Create tagclickup_edit_space_tag - Edit tagclickup_delete_space_tag - Delete tagclickup_add_tag_to_task - Tag a taskclickup_remove_tag_from_task - Untag a taskclickup_create_checklist - Create checklistclickup_edit_checklist - Edit checklistclickup_delete_checklist - Delete checklistclickup_create_checklist_item - Add itemclickup_edit_checklist_item - Edit itemclickup_delete_checklist_item - Delete itemclickup_add_dependency - Add dependencyclickup_delete_dependency - Remove dependencyclickup_add_task_link - Link tasksclickup_delete_task_link - Unlink tasksclickup_create_comment - Add commentclickup_get_comments - Get commentsclickup_update_comment - Edit/resolve commentclickup_create_reply - Threaded replyclickup_get_replies - Get repliesclickup_delete_task - Delete a taskclickup_get_workspace_members - All workspace membersclickup_get_list_members - List-specific memberssrc/
index.ts # Entry: McpServer + StdioServerTransport
client.ts # ClickUp API v2 fetch wrapper
types.ts # Shared Zod schemas + jsonResult helper
slim.ts # Response slimming transformers
tools/
navigation.ts # 7 tools
tasks.ts # 7 tools (CRUD + custom fields + delete)
tags.ts # 6 tools
checklists.ts # 6 tools
dependencies.ts # 4 tools
comments.ts # 5 tools
members.ts # 2 tools
MIT
CLICKUP_API_TOKEN*secretClickUp Personal API Token (Settings > Apps)
gongrzhe/office-powerpoint-mcp-server
gongrzhe/office-word-mcp-server
io.github.mindstone/mcp-server-office
greirson/mcp-todoist
henilcalagiya/mcp-apple-notes
ankimcp/anki-mcp-server-addon