ClickUp MCP Server
Provides comprehensive access to the ClickUp API, enabling AI assistants to read, write, update, and delete ClickUp docs, pages, spaces, folders, lists, tasks, comments, checklists, and other workspace data.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ClickUp MCP Server list all tasks in my ClickUp workspace that are due today"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ClickUp MCP Server
A Model Context Protocol (MCP) server that provides comprehensive access to the ClickUp API ā enabling AI assistants like Cline, Claude Code, and others to read, write, update, and delete ClickUp documentation, plus access the full ClickUp API surface.
⨠Features
š Docs Management (v3 API)
Full CRUD operations on ClickUp Docs and Pages:
get_docs/get_doc/get_doc_pages/get_doc_pageā Read docs & pagescreate_doc/create_doc_pageā Create docs & pagesupdate_doc/update_doc_pageā Update docs & pagesdelete_doc/delete_doc_pageā Delete docs & pagesget_doc_blocks/create_doc_blocks/update_doc_blocks/delete_doc_blocksā Block-level editing
šļø Full ClickUp API Coverage (84+ tools)
Workspaces: Get teams & workspace details
Spaces: Full CRUD for spaces
Folders: Full CRUD for folders
Lists: Full CRUD for lists
Tasks: Full CRUD, filtering, status updates, assignees, tags
Comments: Read/create/update/delete on tasks & lists
Checklists: Full CRUD for checklists & items
Members: View & invite team members
Goals: Full CRUD for goals
Time Tracking: View/create/delete time entries
Views: Read views at any level
Webhooks: Full CRUD for webhooks
Tags: Full CRUD for space tags
Custom Fields: Read & set custom field values
Task Templates: Read/create/delete templates
Plus: Task relationships, links, dependencies, attachments, guests, roles, shared hierarchy
Related MCP server: Pryazilim ClickUp MCP Server
š¦ Installation
ā” Cara Tercepat: Install Langsung via Cline (Paste Link GitHub)
Setelah repo ini di-push ke GitHub, kamu bisa langsung install MCP server ini ke Cline dengan cara:
Copy link GitHub repo ini, contoh:
https://github.com/azukhrufy/clickup-mcp-serverPaste link tersebut ke Cline dan beri perintah seperti ini:
Install MCP server dari repo ini: https://github.com/azukhrufy/clickup-mcp-serveratau
Tambahkan MCP server ClickUp dari https://github.com/azukhrufy/clickup-mcp-serverCline akan otomatis:
Clone repo ke folder MCP servers
Install dependencies (
npm install)Build project (
npm run build)Menambahkan konfigurasi ke
cline_mcp_settings.json
Masukkan ClickUp API Token saat diminta (lihat bagian Konfigurasi)
Restart Cline ā tools ClickUp akan muncul di panel MCP servers
š¦ Install Langsung dari GitHub (Tanpa Path Lokal)
Cara ini langsung mengarah ke link GitHub ā tidak perlu path lokal. npx akan otomatis clone, install, build, dan jalankan dari repo GitHub.
Konfigurasi di cline_mcp_settings.json:
{
"mcpServers": {
"clickup": {
"command": "npx",
"args": ["-y", "github:azukhrufy/clickup-mcp-server"],
"env": {
"CLICKUP_API_TOKEN": "pk_your_api_token_here"
},
"disabled": false,
"autoApprove": []
}
}
}Untuk branch tertentu:
{
"args": ["-y", "github:azukhrufy/clickup-mcp-server#branch-name"]
}š¦ Install via npx (Setelah di-publish ke npm)
# Langsung jalankan tanpa clone
npx clickup-mcp-serverKonfigurasi di cline_mcp_settings.json:
{
"mcpServers": {
"clickup": {
"command": "npx",
"args": ["-y", "clickup-mcp-server"],
"env": {
"CLICKUP_API_TOKEN": "pk_your_api_token_here"
},
"disabled": false,
"autoApprove": []
}
}
}š¦ Install Manual (Clone)
# Clone the repository
git clone https://github.com/azukhrufy/clickup-mcp-server.git
cd clickup-mcp-server
# Install dependencies
npm install
# Build the server
npm run buildš Configuration
1. Get a ClickUp API Token
Log in to ClickUp
Go to Settings ā Apps (or https://app.clickup.com/settings/apps)
Click Generate under the API Token section
Copy the token (starts with
pk_for Personal Tokens)
2. Add to Cline (VS Code)
Add the MCP server to your Cline settings file:
~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
{
"mcpServers": {
"clickup": {
"command": "node",
"args": ["/absolute/path/to/clickup-mcp-server/build/index.js"],
"env": {
"CLICKUP_API_TOKEN": "pk_your_api_token_here"
},
"disabled": false,
"autoApprove": []
}
}
}3. Add to Claude Desktop
Edit claude_desktop_config.json:
{
"mcpServers": {
"clickup": {
"command": "node",
"args": ["/absolute/path/to/clickup-mcp-server/build/index.js"],
"env": {
"CLICKUP_API_TOKEN": "pk_your_api_token_here"
}
}
}
}š Usage
Reading a ClickUp Doc
ClickUp doc URLs follow this format:
https://app.clickup.com/{team_id}/v/dc/{doc_id}/{page_id}Example with the Cline tools:
get_doc_page(team_id="36768531", doc_id="1322rk-9596", page_id="1322rk-32376")Example prompts you can ask your AI assistant:
"List my ClickUp workspaces"
"Get all docs in my workspace"
"Read the contents of doc XYZ page 123"
"Create a new doc called 'Meeting Notes'"
"Update the status of task ABC to 'in progress'"
"Create a checklist on task DEF"
š ļø Development
# Watch mode for development
npm run dev
# Build TypeScript
npm run buildš Project Structure
clickup-mcp-server/
āāā src/
ā āāā index.ts # MCP server implementation (tool definitions & handlers)
ā āāā clickup-api.ts # ClickUp API v2 + v3 client wrapper
āāā build/ # Compiled JavaScript output
āāā tsconfig.json
āāā package.json
āāā README.mdš§ Architecture Notes
Dual API clients: The server uses ClickUp's v2 API for standard endpoints (teams, spaces, tasks, etc.) and v3 API for Docs endpoints (
/workspaces/{team_id}/docs/...)Stdio transport: Communication happens over standard input/output
TypeScript: Full type safety with strict mode
Error handling: Standardized error messages with HTTP status codes
š License
MIT
š¤ Contributing
Contributions are welcome! Feel free to open issues or submit pull requests.
Available Tools
89 toolsadd_task_assigneeA
Add an assignee to a ClickUp task.
Inputs: task_id (required), assignee_id (required).
add_task_dependencyC
Add a dependency to a ClickUp task.
Inputs: task_id (required), depends_on, dependent_on.
add_task_relationshipC
Add a relationship between two ClickUp tasks.
Inputs: task_id (required), relationships (required).
add_task_tagA
Add a tag to a ClickUp task.
Inputs: task_id (required), tag_name (required).
create_checklistA
Create a checklist on a ClickUp task.
Inputs: name (required), task_id (required).
create_checklist_itemB
Create an item in a ClickUp checklist.
Inputs: name (required), checklist_id (required), assignee.
create_docB
Create a new ClickUp Doc in a team/workspace.
Inputs: name (required), team_id (required), parent, content, +2 more.
create_doc_blocksB
Create content blocks in a ClickUp Doc.
Inputs: blocks (required), doc_id (required), team_id (required).
create_doc_pageC
Create a new page in a ClickUp Doc.
Inputs: doc_id (required), team_id (required), name, content, +2 more.
create_folderB
Create a new folder in a ClickUp space.
Inputs: name (required), space_id (required).
create_goalB
Create a new goal in a ClickUp team/workspace.
Inputs: name (required), team_id (required), color, owners, +3 more.
create_listA
Create a new list in a ClickUp folder or space. Provide either folder_id or space_id.
Inputs: name (required), status, content, assignee, +5 more.
create_spaceB
Create a new space in a ClickUp team/workspace.
Inputs: name (required), team_id (required), features, multiple_assignees.
create_space_tagB
Create a tag in a ClickUp space.
Inputs: space_id (required), tag_name (required), tag_bg_color, tag_fg_color.
create_taskC
Create a new task in a ClickUp list.
Inputs: name (required), list_id (required), tags, parent, +14 more.
create_task_commentB
Create a comment on a ClickUp task.
Inputs: task_id (required), comment_text (required), assignee, notify_all.
create_task_from_templateB
Create a task from a ClickUp template.
Inputs: list_id (required), template_id (required).
create_time_entryA
Create a time entry for a ClickUp task.
Inputs: start (required), task_id (required), team_id (required), duration (required), +2 more.
create_webhookB
Create a webhook for a ClickUp team/workspace.
Inputs: events (required), team_id (required), endpoint (required), list_id, +3 more.
delete_checklistB
Delete a ClickUp checklist.
Inputs: checklist_id (required).
delete_checklist_itemB
Delete a ClickUp checklist item.
Inputs: checklist_id (required), checklist_item_id (required).
delete_commentB
Delete a ClickUp comment.
Inputs: comment_id (required).
delete_docA
Delete a ClickUp Doc by ID.
Inputs: doc_id (required), team_id (required).
delete_doc_blocksB
Delete content blocks from a ClickUp Doc.
Inputs: doc_id (required), team_id (required), block_ids (required).
delete_doc_pageB
Delete a page within a ClickUp Doc.
Inputs: doc_id (required), page_id (required), team_id (required).
delete_folderB
Delete a ClickUp folder.
Inputs: folder_id (required).
delete_goalB
Delete a ClickUp goal.
Inputs: goal_id (required).
delete_listA
Delete a ClickUp list.
Inputs: list_id (required).
delete_spaceB
Delete a ClickUp space.
Inputs: space_id (required).
delete_space_tagA
Delete a tag from a ClickUp space.
Inputs: space_id (required), tag_name (required).
delete_taskB
Delete a ClickUp task.
Inputs: task_id (required).
delete_task_dependencyB
Delete a dependency from a ClickUp task.
Inputs: task_id (required), depends_on, dependent_on.
delete_task_relationshipB
Delete a relationship between two ClickUp tasks.
Inputs: task_id (required), relationship_id (required).
delete_task_templateB
Delete a ClickUp task template.
Inputs: team_id (required), template_id (required).
delete_time_entryA
Delete a ClickUp time entry.
Inputs: team_id (required), time_entry_id (required).
delete_webhookA
Delete a ClickUp webhook.
Inputs: webhook_id (required).
edit_checklistC
Edit a ClickUp checklist.
Inputs: checklist_id (required), name.
get_custom_fieldsA
Get custom fields for a ClickUp space or list.
Inputs: list_id, space_id.
get_custom_rolesA
Get custom roles defined in a ClickUp team/workspace.
Inputs: team_id (required).
get_docA
Get a single ClickUp Doc by ID.
Inputs: doc_id (required), team_id (required).
get_doc_blocksB
Get the content blocks of a ClickUp Doc.
Inputs: doc_id (required), team_id (required), page, limit.
get_doc_pageA
Get a single page within a ClickUp Doc with its full content.
Inputs: doc_id (required), page_id (required), team_id (required).
get_doc_pagesA
Get all pages in a ClickUp Doc.
Inputs: doc_id (required), team_id (required).
get_docsB
Get all ClickUp Docs in a team/workspace.
Inputs: team_id (required), limit, archived.
get_folderA
Get details of a single ClickUp folder.
Inputs: folder_id (required).
get_foldersB
Get all folders in a ClickUp space.
Inputs: space_id (required), archived.
get_goalsA
Get all goals in a ClickUp team/workspace.
Inputs: team_id (required), include_completed.
get_guestsA
Get all guests in a ClickUp team/workspace.
Inputs: team_id (required).
get_listB
Get details of a single ClickUp list.
Inputs: list_id (required).
get_list_commentsB
Get all comments on a ClickUp list.
Inputs: list_id (required), start, start_id.
get_listsA
Get all lists in a ClickUp folder or space. Provide either folder_id or space_id.
Inputs: archived, space_id, folder_id.
get_membersB
Get members of a ClickUp space, folder, or list.
Inputs: list_id, space_id, folder_id.
get_spaceA
Get details of a single ClickUp space.
Inputs: space_id (required).
get_spacesB
Get all spaces in a ClickUp team/workspace.
Inputs: team_id (required), archived.
get_space_tagsA
Get all tags in a ClickUp space.
Inputs: space_id (required).
get_taskA
Get details of a single ClickUp task.
Inputs: task_id (required), include_subtasks, include_markdown_description.
get_task_attachmentsA
Get all attachments on a ClickUp task.
Inputs: task_id (required).
get_task_checklistsB
Get all checklists on a ClickUp task.
Inputs: task_id (required).
get_task_commentsB
Get all comments on a ClickUp task.
Inputs: task_id (required), start, start_id.
get_task_dependenciesC
Get dependencies of a ClickUp task.
Inputs: task_id (required).
get_tasksB
Get all tasks from a ClickUp list with optional filtering by status, assignee, tags, dates, etc.
Inputs: list_id (required), page, tags, reverse, +14 more.
get_task_templatesA
Get all task templates in a ClickUp team/workspace.
Inputs: team_id (required), page.
get_teamA
Get details of a single ClickUp team/workspace.
Inputs: team_id (required).
get_team_membersA
Get all members of a ClickUp team/workspace.
Inputs: team_id (required).
get_teamsA
Get all teams (workspaces) the authenticated user has access to in ClickUp. Returns team IDs needed for most other API calls.
Inputs: no named parameters.
get_team_tasksA
Get tasks across a whole ClickUp team/workspace with filters.
Inputs: team_id (required), page, tags, reverse, +9 more.
get_time_entriesB
Get tracked time entries for a ClickUp team/workspace.
Inputs: team_id (required), list_id, task_id, assignee, +4 more.
get_viewsA
Get views for a ClickUp team, space, folder, or list.
Inputs: list_id, team_id, space_id, folder_id.
get_webhooksA
Get all webhooks for a ClickUp team/workspace.
Inputs: team_id (required).
invite_team_memberC
Invite a user to a ClickUp team/workspace.
Inputs: email (required), team_id (required), can_edit_tags, can_create_tags, +4 more.
link_tasksC
Link two ClickUp tasks together.
Inputs: task_id (required), links_to (required).
remove_task_assigneeB
Remove an assignee from a ClickUp task.
Inputs: task_id (required), assignee_id (required).
remove_task_tagA
Remove a tag from a ClickUp task.
Inputs: task_id (required), tag_name (required).
set_custom_field_valueB
Set a custom field value on a ClickUp task.
Inputs: value (required), task_id (required), field_id (required).
set_task_statusC
Set the status of a ClickUp task.
Inputs: status (required), task_id (required).
unlink_tasksB
Remove a link between two ClickUp tasks.
Inputs: task_id (required), links_to (required).
update_checklist_itemC
Update a ClickUp checklist item.
Inputs: checklist_id (required), checklist_item_id (required), name, assignee, +1 more.
update_commentC
Update an existing ClickUp comment.
Inputs: comment_id (required), comment_text (required), assignee, resolved.
update_docC
Update an existing ClickUp Doc.
Inputs: doc_id (required), team_id (required), name, parent, +2 more.
update_doc_blocksB
Update content blocks in a ClickUp Doc.
Inputs: blocks (required), doc_id (required), team_id (required).
update_doc_pageB
Update a page within a ClickUp Doc.
Inputs: doc_id (required), page_id (required), team_id (required), name, +2 more.
update_folderB
Update an existing ClickUp folder.
Inputs: folder_id (required), name.
update_goalB
Update an existing ClickUp goal.
Inputs: goal_id (required), name, color, owners, +3 more.
update_listB
Update an existing ClickUp list.
Inputs: list_id (required), name, content, assignee, +4 more.
update_spaceB
Update an existing ClickUp space.
Inputs: space_id (required), name, features, multiple_assignees.
update_space_tagB
Update a tag in a ClickUp space.
Inputs: space_id (required), tag_name (required), new_tag_name, tag_bg_color, +1 more.
update_taskC
Update an existing ClickUp task.
Inputs: task_id (required), name, tags, status, +11 more.
update_webhookC
Update an existing ClickUp webhook.
Inputs: webhook_id (required), events, status, endpoint.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogā¦
TDQS
Scored across 89 tools
Most tools have distinct resource-action pairs (e.g., get_spaces vs create_space), but a few overlap like link_tasks vs add_task_relationship and get_team_members vs get_members, which could confuse an agent.
The naming is largely consistent using verb_noun patterns (get_, create_, update_, delete_), with occasional deviations like add_task_assignee, remove_task_tag, set_task_status, and link_tasks. These are still understandable but not perfectly uniform.
With 89 tools, the server is extremely heavy. Even for a comprehensive ClickUp API wrapper, this exceeds reasonable MCP server scope and could overwhelm agents with choice.
The tool set covers most CRUD operations for teams, spaces, folders, lists, tasks, docs, comments, checklists, goals, time entries, and webhooks. Minor gaps exist, such as no update or delete for team members and no update for time entries.
Related MCP Connectors
MCP server for OpenAI API (chat completions, image generation, embeddings) via AceDataCloud
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
Nifty's MCP server ā exposes tasks, projects, messages, and files as tools for AI agents.
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceMCP server enabling AI assistants to interact with ClickUp workspaces, including task management, comments, time tracking, and document operations.85 npmMIT
- AlicenseNot gradedqualityDmaintenanceA secure and optimized MCP server for integrating ClickUp project management, enabling task CRUD operations, workspace organization, file attachments, and natural language date parsing.MIT
- AlicenseNot gradedqualityDmaintenanceA self-hosted MCP server that enables AI agents to directly interact with your ClickUp workspace, including tasks, lists, folders, comments, time tracking, and more via 51 tools over SSE.145 npmMIT
- AlicenseAqualityCmaintenanceA comprehensive MCP server for the ClickUp API exposing 166 tools to manage Spaces, Folders, Lists, Tasks, Docs, and more, enabling LLMs to read and drive a ClickUp Workspace.10031 PyPI1Apache 2.0