Skip to main content
Glama

ClickUp MCP Server

Total Supporters

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: Working with the ClickUp team... ✨

Requirements

  • Node.js v18.0.0 or higher (required for MCP SDK compatibility)
  • ClickUp API key and Team ID

Setup

  1. Get your credentials:
  2. Choose either hosted installation (sends webhooks) or NPX installation (downloads to local path and installs dependencies)
  3. Use natural language to manage your workspace!

Smithery Installation (Quick Start)

The server is hosted on Smithery. There, you can preview the available tools or copy the commands to run on your specific client app.

NPX Installation

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.

Tool Filtering

You can control which tools are available using two complementary environment variables:

Use ENABLED_TOOLS to specify exactly which tools should be available:

# Environment variable export ENABLED_TOOLS="create_task,get_task,update_task,get_workspace_hierarchy" # Command line argument --env ENABLED_TOOLS=create_task,get_task,update_task,get_workspace_hierarchy
DISABLED_TOOLS (Legacy)

Use DISABLED_TOOLS to disable specific tools while keeping all others enabled:

# Environment variable export DISABLED_TOOLS="delete_task,delete_bulk_tasks" # Command line argument --env DISABLED_TOOLS=delete_task,delete_bulk_tasks
Precedence Rules
  • If ENABLED_TOOLS is specified, only those tools will be available (takes precedence over DISABLED_TOOLS)
  • If only DISABLED_TOOLS is specified, all tools except those listed will be available
  • If neither is specified, all tools are available (default behavior)

Example:

# Only enable task creation and reading tools npx -y @taazkareem/clickup-mcp-server@latest \ --env CLICKUP_API_KEY=your-api-key \ --env CLICKUP_TEAM_ID=your-team-id \ --env ENABLED_TOOLS=create_task,get_task,get_workspace_hierarchy

Please filter tools you don't need if you are having issues with the number of tools or any context limitations.

Running with HTTP Transport Support

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:

  • Primary: http://127.0.0.1:3231/mcp (Streamable HTTP)
  • Legacy: http://127.0.0.1:3231/sse (SSE for backwards compatibility)

Command Line Usage

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:

OptionDescriptionDefault
ENABLED_TOOLSComma-separated list of tools to enable (takes precedence)All tools
DISABLED_TOOLSComma-separated list of tools to disableNone
ENABLE_SSEEnable the HTTP/SSE transportfalse
PORTPort for the HTTP server3231
ENABLE_STDIOEnable the STDIO transporttrue
ENABLE_SECURITY_FEATURESEnable security headers and loggingfalse
ENABLE_HTTPSEnable HTTPS/TLS encryptionfalse
ENABLE_ORIGIN_VALIDATIONValidate Origin header against whitelistfalse
ENABLE_RATE_LIMITEnable rate limiting protectionfalse

🔒 Security Features

The server includes optional security enhancements for production deployments. All security features are opt-in and disabled by default to maintain backwards compatibility.

Quick security setup:

# Generate SSL certificates for HTTPS ./scripts/generate-ssl-cert.sh # Start with full security ENABLE_SECURITY_FEATURES=true \ ENABLE_HTTPS=true \ ENABLE_ORIGIN_VALIDATION=true \ ENABLE_RATE_LIMIT=true \ SSL_KEY_PATH=./ssl/server.key \ SSL_CERT_PATH=./ssl/server.crt \ npx @taazkareem/clickup-mcp-server@latest --env CLICKUP_API_KEY=your-key --env CLICKUP_TEAM_ID=your-team --env ENABLE_SSE=true

HTTPS Endpoints:

  • Primary: https://127.0.0.1:3443/mcp (Streamable HTTPS)
  • Legacy: https://127.0.0.1:3443/sse (SSE HTTPS for backwards compatibility)
  • Health: https://127.0.0.1:3443/health (Health check)

For detailed security configuration, see Security Features Documentation.

n8n Integration

To integrate with n8n:

  1. Start the clickup-mcp-server with SSE enabled
  2. In n8n, add a new "MCP AI Tool" node
  3. Configure the node with:
    • Transport: SSE
    • Server URL: http://localhost:3231 (or your server address)
    • Tools: Select the ClickUp tools you want to use
Example Client

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

Features

📝 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 coverage70% codebase reduction for improved performanceUnified architecture across all transport typesZero code duplicationHTTP Streamable transport (MCP Inspector compatible)Legacy SSE support for backwards compatibility

Available Tools (36 Total)

ToolDescriptionRequired Parameters
get_workspace_hierarchyGet workspace structureNone
create_taskCreate a taskname, (listId/listName)
create_bulk_tasksCreate multiple taskstasks[]
update_taskModify tasktaskId/taskName
update_bulk_tasksUpdate multiple taskstasks[] with IDs or names
get_tasksGet tasks from listlistId/listName
get_taskGet single task detailstaskId/taskName (with smart disambiguation)
get_workspace_tasksGet tasks with filteringAt least one filter (tags, list_ids, space_ids, etc.)
get_task_commentsGet comments on a tasktaskId/taskName
create_task_commentAdd a comment to a taskcommentText, (taskId/(taskName+listName))
attach_task_fileAttach file to a tasktaskId/taskName, (file_data or file_url)
delete_taskRemove tasktaskId/taskName
delete_bulk_tasksRemove multiple taskstasks[] with IDs or names
move_taskMove tasktaskId/taskName, listId/listName
move_bulk_tasksMove multiple taskstasks[] with IDs or names, target list
duplicate_taskCopy tasktaskId/taskName, listId/listName
create_listCreate list in spacename, spaceId/spaceName
create_folderCreate foldername, spaceId/spaceName
create_list_in_folderCreate list in foldername, folderId/folderName
get_folderGet folder detailsfolderId/folderName
update_folderUpdate folder propertiesfolderId/folderName
delete_folderDelete folderfolderId/folderName
get_listGet list detailslistId/listName
update_listUpdate list propertieslistId/listName
delete_listDelete listlistId/listName
get_space_tagsGet space tagsspaceId/spaceName
create_space_tagCreate tagtagName, spaceId/spaceName
update_space_tagUpdate tagtagName, spaceId/spaceName
delete_space_tagDelete tagtagName, spaceId/spaceName
add_tag_to_taskAdd tag to tasktagName, taskId/(taskName+listName)
remove_tag_from_taskRemove tag from tasktagName, taskId/(taskName+listName)
get_task_time_entriesGet time entries for a tasktaskId/taskName
start_time_trackingStart time tracking on a tasktaskId/taskName
stop_time_trackingStop current time trackingNone
add_time_entryAdd manual time entry to a tasktaskId/taskName, start, duration
delete_time_entryDelete a time entrytimeEntryId
get_current_time_entryGet currently running timerNone
get_workspace_membersGet all workspace membersNone
find_member_by_nameFind member by name or emailnameOrEmail
resolve_assigneesResolve member names to IDsassignees[]
create_documentCreate a documentworkspaceId, name, parentId/parentType, visibility, create_pages
get_documentGet a documentworkspaceId/documentId
list_documentsList documentsworkspaceId, documentId/creator/deleted/archived/parent_id/parent_type/limit/next_cursor
list_document_pagesList document pagesdocumentId/documentName
get_document_pagesGet document pagesdocumentId/documentName, pageIds
create_document_pagesCreate a document pageworkspaceId/documentId, parent_page_id/name/sub_title,content/content_format
update_document_pageUpdate a document pageworkspaceId/documentId, name/sub_title,content/content_edit_mode/content_format

See full documentation for optional parameters and advanced usage.

Member Management Tools

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": ["jdoe@example.com", "Jane Smith"] // Emails, usernames, or user IDs }

Updating task assignees:

{ "taskId": "abc123", "assignees": ["newuser@example.com"] // Replace existing assignees }

The member management tools help resolve user references when needed.

Prompts

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:

PromptPurposeFeatures
summarize_tasksTask overviewStatus summary, priorities, relationships
analyze_prioritiesPriority optimizationDistribution analysis, sequencing
generate_descriptionTask description creationObjectives, criteria, dependencies

Error Handling

The server provides clear error messages for:

  • Missing required parameters
  • Invalid IDs or names
  • Items not found
  • Permission issues
  • API errors
  • Rate limiting

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.

Support the Developer

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:

Acknowledgements

Special thanks to ClickUp for their excellent API and services that make this integration possible.

Contributing

Contributions are welcome! Please read our Contributing Guide for details.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Disclaimer

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.

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Enables AI integrations with ClickUp tasks, supporting resource management, task operations, workspace organization, and AI-powered task recommendations through a standardized protocol.

  1. Smithery Installation (Quick Start)
    1. NPX Installation
      1. Running with SSE Support
        1. Docker-compose example
          1. Features
            1. Available Tools
              1. Member Management Tools
                1. Prompts
                  1. Error Handling
                    1. Support the Developer
                      1. Acknowledgements
                        1. Contributing
                          1. License
                            1. Disclaimer

                              Related MCP Servers

                              • A
                                security
                                A
                                license
                                A
                                quality
                                This server integrates AI assistants with ClickUp workspaces, enabling task, team, list, and board management through a secure OAuth2 authentication process.
                                Last updated -
                                5
                                22
                                12
                                TypeScript
                                MIT License
                                • Apple
                              • A
                                security
                                A
                                license
                                A
                                quality
                                An enhanced Model Context Protocol server that enables AI assistants to interact with ClickUp workspaces, supporting task relationships, comments, checklists, and workspace management through natural language.
                                Last updated -
                                40
                                5
                                2
                                TypeScript
                                MIT License
                              • A
                                security
                                A
                                license
                                A
                                quality
                                ClickUp MCP Server enables AI assistants to seamlessly interact with your ClickUp workspace. This powerful integration allows Claude to create and manage tasks, access documents, organize folders and lists, add comments, and handle checklists—all through natural conversation.
                                Last updated -
                                42
                                654
                                23
                                TypeScript
                                MIT License
                                • Apple
                              • -
                                security
                                A
                                license
                                -
                                quality
                                A Model Context Protocol server that enables AI agents to interact with ClickUp workspaces, allowing task creation, management, and workspace organization through natural language commands.
                                Last updated -
                                1,454
                                2
                                MIT License

                              View all related MCP servers

                              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/taazkareem/clickup-mcp-server'

                              If you have feedback or need assistance with the MCP directory API, please join our Discord server