ClickUp MCP Server - Integrate ClickUp project management with AI through Model Context Protocol
A Model Context Protocol (MCP) server for integrating ClickUp tasks with AI applications. This server allows AI agents to interact with ClickUp tasks, spaces, lists, and folders through a standardized protocol.
🚀 Status Update: v0.8.2 is released with critical bug fixes! Fixed task assignment feature (Issue #48), updating task due dates (Issue #49), and subtasks in responses (Issue #56). See Release Notes for full details.
The server is hosted on Smithery. There, you can preview the available tools or copy the commands to run on your specific client app.
Add this entry to your client’s MCP settings JSON file:
{
"mcpServers": {
"ClickUp": {
"command": "npx",
"args": [
"-y",
"@taazkareem/clickup-mcp-server@latest"
],
"env": {
"CLICKUP_API_KEY": "your-api-key",
"CLICKUP_TEAM_ID": "your-team-id",
"DOCUMENT_SUPPORT": "true"
}
}
}
}
Or use this npx command:
npx -y @taazkareem/clickup-mcp-server@latest --env CLICKUP_API_KEY=your-api-key --env CLICKUP_TEAM_ID=your-team-id
Obs: if you don’t pass “DOCUMENT_SUPPORT”: “true”, the default is false and document support will not be active.
Additionally, you can use the DISABLED_TOOLS
environment variable or --env DISABLED_TOOLS
argument to disable specific tools. Provide a comma-separated list of tool names to disable (e.g., create_task,delete_task
).
Please disable tools you don’t need if you are having issues with the number of tools or any context limitations
The server supports both modern HTTP Streamable transport (MCP Inspector compatible) and legacy SSE (Server-Sent Events) transport for backwards compatibility.
{
"mcpServers": {
"ClickUp": {
"command": "npx",
"args": [
"-y",
"@taazkareem/clickup-mcp-server@latest"
],
"env": {
"CLICKUP_API_KEY": "your-api-key",
"CLICKUP_TEAM_ID": "your-team-id",
"ENABLE_SSE": "true",
"PORT": "3231"
}
}
}
}
Endpoints:
http://127.0.0.1:3231/mcp
(Streamable HTTP)http://127.0.0.1:3231/sse
(SSE for backwards compatibility)npx -y @taazkareem/clickup-mcp-server@latest --env CLICKUP_API_KEY=your-api-key --env CLICKUP_TEAM_ID=your-team-id --env ENABLE_SSE=true --env PORT=3231
Available configuration options:
Option | Description | Default |
---|---|---|
ENABLE_SSE |
Enable the HTTP/SSE transport | false |
PORT |
Port for the HTTP server | 3231 |
ENABLE_STDIO |
Enable the STDIO transport | true |
To integrate with n8n:
http://localhost:3231
(or your server address)An example SSE client is provided in the examples
directory. To run it:
## Start the server with SSE enabled
ENABLE_SSE=true PORT=3231 npx -y @taazkareem/clickup-mcp-server@latest --env CLICKUP_API_KEY=your-api-key --env CLICKUP_TEAM_ID=your-team-id
## In another terminal, run the example client
cd examples
npm install
npm run sse-client
📝 Task Management | 🏷️ Tag Management |
---|---|
• Create, update, and delete tasks • Move and duplicate tasks anywhere • Support for single and bulk operations • Set start/due dates with natural language • Create and manage subtasks • Add comments and attachments |
• Create, update, and delete space tags • Add and remove tags from tasks • Use natural language color commands • Automatic contrasting foreground colors • View all space tags • Tag-based task organization across workspace |
⏱️ Time Tracking | 🌳 Workspace Organization |
• View time entries for tasks • Start/stop time tracking on tasks • Add manual time entries • Delete time entries • View currently running timer • Track billable and non-billable time |
• Navigate spaces, folders, and lists • Create and manage folders • Organize lists within spaces • Create lists in folders • View workspace hierarchy • Efficient path navigation |
📄 Document Management | 👥 Member Management |
• Document Listing through all workspace • Document Page listing • Document Page Details • Document Creation • Document page update (append & prepend) |
• Find workspace members by name or email • Resolve assignees for tasks • View member details and permissions • Assign tasks to users during creation and updates • Support for user IDs, emails, or usernames • Team-wide user management |
⚡ Integration Features | 🏗️ Architecture & Performance |
• Global name or ID-based lookups • Case-insensitive matching • Markdown formatting support • Built-in rate limiting • Error handling and validation • Comprehensive API coverage |
• 70% codebase reduction for improved performance • Unified architecture across all transport types • Zero code duplication • HTTP Streamable transport (MCP Inspector compatible) • Legacy SSE support for backwards compatibility |
Tool | Description | Required Parameters |
---|---|---|
get_workspace_hierarchy | Get workspace structure | None |
create_task | Create a task | name , (listId /listName ) |
create_bulk_tasks | Create multiple tasks | tasks[] |
update_task | Modify task | taskId /taskName |
update_bulk_tasks | Update multiple tasks | tasks[] with IDs or names |
get_tasks | Get tasks from list | listId /listName |
get_task | Get single task details | taskId /taskName (with smart disambiguation) |
get_workspace_tasks | Get tasks with filtering | At least one filter (tags, list_ids, space_ids, etc.) |
get_task_comments | Get comments on a task | taskId /taskName |
create_task_comment | Add a comment to a task | commentText , (taskId /(taskName +listName )) |
attach_task_file | Attach file to a task | taskId /taskName , (file_data or file_url ) |
delete_task | Remove task | taskId /taskName |
delete_bulk_tasks | Remove multiple tasks | tasks[] with IDs or names |
move_task | Move task | taskId /taskName , listId /listName |
move_bulk_tasks | Move multiple tasks | tasks[] with IDs or names, target list |
duplicate_task | Copy task | taskId /taskName , listId /listName |
create_list | Create list in space | name , spaceId /spaceName |
create_folder | Create folder | name , spaceId /spaceName |
create_list_in_folder | Create list in folder | name , folderId /folderName |
get_folder | Get folder details | folderId /folderName |
update_folder | Update folder properties | folderId /folderName |
delete_folder | Delete folder | folderId /folderName |
get_list | Get list details | listId /listName |
update_list | Update list properties | listId /listName |
delete_list | Delete list | listId /listName |
get_space_tags | Get space tags | spaceId /spaceName |
create_space_tag | Create tag | tagName , spaceId /spaceName |
update_space_tag | Update tag | tagName , spaceId /spaceName |
delete_space_tag | Delete tag | tagName , spaceId /spaceName |
add_tag_to_task | Add tag to task | tagName , taskId /(taskName +listName ) |
remove_tag_from_task | Remove tag from task | tagName , taskId /(taskName +listName ) |
get_task_time_entries | Get time entries for a task | taskId /taskName |
start_time_tracking | Start time tracking on a task | taskId /taskName |
stop_time_tracking | Stop current time tracking | None |
add_time_entry | Add manual time entry to a task | taskId /taskName , start , duration |
delete_time_entry | Delete a time entry | timeEntryId |
get_current_time_entry | Get currently running timer | None |
get_workspace_members | Get all workspace members | None |
find_member_by_name | Find member by name or email | nameOrEmail |
resolve_assignees | Resolve member names to IDs | assignees[] |
create_document | Create a document | workspaceId , name , parentId /parentType , visibility , create_pages |
get_document | Get a document | workspaceId /documentId |
list_documents | List documents | workspaceId , documentId /creator /deleted /archived /parent_id /parent_type /limit /next_cursor |
list_document_pages | List document pages | documentId /documentName |
get_document_pages | Get document pages | documentId /documentName , pageIds |
create_document_pages | Create a document page | workspaceId /documentId , parent_page_id /name /sub_title ,content /content_format |
update_document_page | Update a document page | workspaceId /documentId , name /sub_title ,content /content_edit_mode /content_format |
See full documentation for optional parameters and advanced usage.
When creating or updating tasks, you can assign users using the assignees
parameter. The parameter accepts an array of user IDs, emails, or usernames:
Creating tasks with assignees:
{
"name": "New Task",
"description": "This is a new task.",
"assignees": ["[email protected]", "Jane Smith"] // Emails, usernames, or user IDs
}
Updating task assignees:
{
"taskId": "abc123",
"assignees": ["[email protected]"] // Replace existing assignees
}
The member management tools help resolve user references when needed.
Not yet implemented and not supported by all client apps. Request a feature for a Prompt implementation that would be most beneficial for your workflow (without it being too specific). Examples:
Prompt | Purpose | Features |
---|---|---|
summarize_tasks | Task overview | Status summary, priorities, relationships |
analyze_priorities | Priority optimization | Distribution analysis, sequencing |
generate_description | Task description creation | Objectives, criteria, dependencies |
The server provides clear error messages for:
The LOG_LEVEL
environment variable can be specified to control the verbosity of server logs. Valid values are trace
, debug
, info
, warn
, and error
(default).
This can be also be specified on the command line as, e.g. --env LOG_LEVEL=info
.
When using this server, you may occasionally see a small sponsor message with a link to this repository included in tool responses. I hope you can support the project! If you find this project useful, please consider supporting:
Special thanks to ClickUp for their excellent API and services that make this integration possible.
Contributions are welcome! Please read our Contributing Guide for details.
This project is licensed under the MIT License - see the LICENSE file for details.
This software makes use of third-party APIs and may reference trademarks or brands owned by third parties. The use of such APIs or references does not imply any affiliation with or endorsement by the respective companies. All trademarks and brand names are the property of their respective owners. This project is an independent work and is not officially associated with or sponsored by any third-party company mentioned.
Mcp Dbutils
DButils is an all-in-one MCP service that enables your AI to do data analysis by harnessing versatile types of database (sqlite, mysql, postgres, and more) within a unified configuration of multiple connections in a secured way (like SSL and controlled write access).
OpenMemory MCP
Memory for AI Agents; Announcing OpenMemory MCP - local and secure memory management.
Mcp Windows
MCP server for the windows API.
Share code with LLMs via Model Context Protocol or clipboard. Rule-based customization enables easy switching between different tasks (like code review and documentation). Includes smart code outlining.
📦 Repomix is a powerful tool that packs your entire repository into a single, AI-friendly file. Perfect for when you need to feed your codebase to Large Language Models (LLMs) or other AI tools like Claude, ChatGPT, DeepSeek, Perplexity, Gemini, Gemma, Llama, Grok, and more.
An MCP server that provides KOSPI/KOSDAQ stock data using FastMCP
MCP Server for the Perplexity API.