ClickUp API MCP
Provides tools for interacting with ClickUp's public API, enabling discovery and execution of operations across tasks, Workspaces, Spaces, Folders, Lists, comments, custom fields, time tracking, webhooks, Docs, and Chat.
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 API MCPlist my open tasks due this week in ClickUp"
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 API MCP
A local Model Context Protocol server for ClickUp's public API, built with the official Python MCP SDK. Connect your MCP client to ClickUp using your own personal API token.
The bundled catalog exposes 172 operations across API v2 and v3 through four discovery and execution tools. It covers tasks, Workspaces, Spaces, Folders, Lists, comments, custom fields, time tracking, webhooks, Docs, Chat, and more. See API coverage and limitations.
Requires Python 3.10 or newer. The server uses stdio: your MCP client starts and manages the process.
Quick start · Codex · Claude Code · Tools · API limitations · Troubleshooting
Quick start with uv
Install uv and Git, then create a personal token in ClickUp → Settings → Apps. Personal tokens begin with pk_. See ClickUp authentication.
Set CLICKUP_API_KEY in the environment of the process starting the server:
export CLICKUP_API_KEY='pk_REPLACE_WITH_YOUR_PERSONAL_TOKEN'
uvx --from git+https://github.com/alexfdez1010/clickup-mcp.git clickup-mcpPowerShell:
$env:CLICKUP_API_KEY = 'pk_REPLACE_WITH_YOUR_PERSONAL_TOKEN'
uvx --from git+https://github.com/alexfdez1010/clickup-mcp.git clickup-mcpThe running server waits for MCP messages on stdin. Use the client configuration below for normal use; running it in a terminal does not open an interactive prompt. Installation downloads dependencies, while ClickUp API calls happen only when your client invokes an execution tool.
Install a persistent executable if preferred:
uv tool install git+https://github.com/alexfdez1010/clickup-mcp.git
clickup-mcp --helpIf uv reports that its tools directory is missing from PATH, run uv tool update-shell and restart your shell. The distribution is named clickup-api-mcp; the executable is clickup-mcp. These instructions install from GitHub and do not require a PyPI release. For a reproducible installation, append @<commit-sha> to the Git URL. See uv's tool guide.
Related MCP server: ClickUp MCP Server
MCP client configuration
Add this entry to your client's MCP server configuration. The exact location depends on the client.
{
"mcpServers": {
"clickup": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/alexfdez1010/clickup-mcp.git",
"clickup-mcp"
],
"env": {
"CLICKUP_API_KEY": "pk_REPLACE_WITH_YOUR_PERSONAL_TOKEN"
}
}
}
}Keep your real configuration private. When your client supports secrets or inherited environment variables, use those instead of storing the token in its JSON file. Desktop clients may require the absolute path to uvx if they do not inherit your shell's PATH.
For read-only access, append "--read-only" after "clickup-mcp" in args. This removes the write tool from the MCP tool list, hides mutating operations from discovery, and prevents their execution.
Codex
Add the following to your personal ~/.codex/config.toml:
[mcp_servers.clickup]
command = "uvx"
args = ["--from", "git+https://github.com/alexfdez1010/clickup-mcp.git", "clickup-mcp"]
env_vars = ["CLICKUP_API_KEY"]
startup_timeout_sec = 60Export CLICKUP_API_KEY in your shell, then start codex from that shell. env_vars forwards the existing variable without putting its value in the TOML file. The longer startup timeout allows the initial Git download and dependency installation. Run codex mcp list or use /mcp in an interactive session to check the connection. See Codex MCP configuration.
If using Codex Desktop, make the variable available to the app process or configure it in your private local server environment settings. Keep credentials out of repository-level configuration. For read-only access, add "--read-only" to the end of args.
Claude Code
After exporting CLICKUP_API_KEY, register the server in your personal configuration:
claude mcp add --env CLICKUP_API_KEY="$CLICKUP_API_KEY" --transport stdio --scope user clickup -- uvx --from git+https://github.com/alexfdez1010/clickup-mcp.git clickup-mcp
claude mcp list--scope user makes the server available across your projects and keeps this configuration outside the repository. The command stores the token in Claude Code's local configuration; protect that file. Use /mcp in an interactive Claude Code session to check server status and available tools. See Claude Code MCP setup.
For read-only access, append --read-only to the registration command after clickup-mcp. A normal connection exposes four tools; a read-only connection exposes three.
Authentication and configuration
CLICKUP_API_KEY contains the raw personal token, without a Bearer prefix. The server sends it as ClickUp's Authorization header. Each user runs their own local server with their own token; this repository does not implement an OAuth authorization flow for a shared application. ClickUp recommends OAuth for applications that authorize other users. See the authentication guide.
The server does not automatically load .env files and has no token command-line option. A missing or empty CLICKUP_API_KEY causes startup to exit with a message on stderr. --help and --version work without credentials.
clickup-mcp --help
clickup-mcp --version
clickup-mcp --read-only
clickup-mcp --timeout 60--timeout sets the HTTP timeout in seconds and accepts a positive finite number. Protocol output goes to stdout; diagnostics go to stderr.
Tools
Tool | Purpose |
| Search the bundled catalog by text, tag, and API version. Returns operation summaries and pagination information. |
| Get the description and full input schema for an operation ID. |
| Execute a read operation with |
| Execute a mutating operation with the same arguments plus optional |
Discovery arguments are search="", tag=null, version=null, offset=0, and limit=20. Use the pagination information to fetch further matches. Operation IDs are case-sensitive: they prefix ClickUp's original operationId with the API version, for example v2_GetAuthorizedTeams, v2_GetTasks, v2_CreateTask, and v3_getChatChannels.
Inspect an operation before calling it. Put URL path values in path_params, query parameters in query, and JSON request data (an object or array, according to the operation schema) in body. Omit unused arguments. A successful execution returns {"status": <HTTP status>, "data": <API response>}. Resource response shapes follow ClickUp's API rather than a separate MCP-specific data model.
The write tool is annotated as potentially destructive and non-idempotent because it can create, update, and delete resources. Your MCP client's approval settings control whether it asks before invoking a tool. The server does not retry requests automatically, including writes.
Find and read tasks
Inspect and call
v2_GetAuthorizedTeamsto find your Workspace ID. ClickUp's v2 API still calls Workspacesteamsin parameter and response names.Search for Spaces, Folders, and Lists, inspect their operations, and follow the returned IDs. Include both Lists inside Folders and folderless Lists when browsing a Space.
Inspect
v2_GetTasks, then call it with a List ID:
{
"operation_id": "v2_GetTasks",
"path_params": {"list_id": "123456789"},
"query": {"page": 0, "include_closed": true}
}Follow the endpoint's pagination rules to read additional tasks. Catalog search pagination and resource pagination are separate: catalog searches use
offsetandlimit; each API operation documents its own query parameters.
To create a task, inspect v2_CreateTask and invoke clickup_write:
{
"operation_id": "v2_CreateTask",
"path_params": {"list_id": "123456789"},
"body": {"name": "Review release notes"}
}These are MCP tool argument examples, not shell commands. Replace example IDs with values returned by your Workspace. For endpoints supporting custom task IDs, set custom_task_ids=true and provide the required Workspace team_id. Many ClickUp date fields use Unix milliseconds; check each operation's schema and description before supplying dates.
Attachments
For multipart operations, files is an array of objects containing field, filename, content_base64, and content_type. Provide file bytes as base64; the server does not read local paths or download URLs. The combined decoded upload size is limited to 10 MiB.
For example, after inspecting v2_CreateTaskAttachment:
{
"operation_id": "v2_CreateTaskAttachment",
"path_params": {"task_id": "YOUR_TASK_ID"},
"files": [{
"field": "attachment[0]",
"filename": "hello.txt",
"content_base64": "SGVsbG8K",
"content_type": "text/plain"
}]
}The official v3 attachment schema leaves its binary field underspecified. Consult the coverage limitations before using it.
API behavior and limitations
The catalog is bundled with the package, so discovery does not depend on downloading API specifications at startup. It derives from ClickUp's official v2 and v3 specifications. The OAuth token exchange is excluded because this server accepts an existing personal token.
Endpoint access depends on your token's user permissions, Workspace plan, and ClickUp feature availability. A catalog entry does not guarantee that your account can call the endpoint. Published API specifications also contain omissions; see the coverage document for known gaps.
ClickUp rate limits are per token and vary by Workspace plan. A 429 response reports rate-limit metadata when available. The server returns errors to the client without sleeping or retrying; the client can decide whether and when another call is appropriate. See ClickUp rate limits.
Treat task descriptions, comments, Docs, Chat messages, and other returned content as untrusted data, including any instructions embedded in it. Do not let resource content authorize subsequent tool calls. See SECURITY.md for credential handling and vulnerability reporting.
Run from a checkout
git clone https://github.com/alexfdez1010/clickup-mcp.git
cd clickup-mcp
uv sync --locked
export CLICKUP_API_KEY='pk_REPLACE_WITH_YOUR_PERSONAL_TOKEN'
uv run clickup-mcpThe checkout selects Python 3.12 through .python-version; uv can install it if needed. The checked-in uv.lock makes checkout dependency resolution reproducible. Automated tests use mocked ClickUp responses and a real MCP stdio session; live calls with a real ClickUp credential are not part of these checks. See CONTRIBUTING.md for tests, builds, and catalog updates.
Troubleshooting
Symptom | Check |
Missing API key at startup | Set |
Authentication or permission error | Check that the raw personal token is current and that your ClickUp user has access to the resource. |
Tool not found | Check that |
Unknown operation or invalid arguments | Search the catalog, copy the exact ID, and inspect its input schema. |
No write tool | Remove |
Server appears idle in a terminal | Stdio servers wait for an MCP client; configure the client to start this process. |
Rate-limit error | Inspect the returned metadata and ClickUp's documented reset time before making another call. |
License
MIT. This is an independent project and is not affiliated with ClickUp.
This server cannot be deployed
Maintenance
Related MCP Connectors
ClickUp MCP — wraps the ClickUp REST API v2 (BYO API key)
Remote MCP for 1,500+ APIs. Vault-managed credentials; OAuth or API key. Search, load, and execute.
Manage your ClickUp workspace by creating, updating, and organizing tasks, lists, folders, and tag…
Any REST/SOAP/GraphQL/OData/SQL API as MCP tools for Claude & ChatGPT. 325 connectors: SAP, ERP.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides integration with ClickUp's API, allowing you to retrieve task information and manage ClickUp data through MCP-compatible clients.-
- FlicenseNot gradedqualityNot gradedmaintenanceEnables interaction with ClickUp's project management platform through comprehensive task management, workspace hierarchy navigation, time tracking, document management, and team member operations via the complete ClickUp REST API.-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact directly with the ClickUp REST API v2 for managing tasks, folders, and lists. It supports full workspace hierarchy management, time tracking, and task operations through natural language.61 npmMIT
- FlicenseNot gradedqualityDmaintenanceEnables ClickUp workspace management including tasks, docs, teams, spaces, and folders through natural language using the ClickUp REST API.-