clickup-mcp
Lightweight ClickUp MCP server for task management
Documentation
clickup-mcp
Lightweight ClickUp MCP server focused on task management. 39 tools with token-optimized responses - API responses automatically slimmed from thousands of characters to essentials.
Why This Server?
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.
Installation
npm install -g @cavort-it-systems/clickup-mcpOr run directly:
npx @cavort-it-systems/clickup-mcpConfiguration
Claude Code CLI
claude mcp add clickup -e CLICKUP_API_TOKEN=your-token -- npx @cavort-it-systems/clickup-mcpClaude Desktop / Manual
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"
}
}
}
}From Source
git clone https://github.com/cvrt-jh/clickup-mcp.git
cd clickup-mcp
npm install && npm run buildThen configure with the built path:
claude mcp add clickup -e CLICKUP_API_TOKEN=your-token -- node /path/to/clickup-mcp/build/index.jsGet Your API Token
1. Go to ClickUp Settings > Apps
2. Generate a Personal API Token
3. Set as `CLICKUP_API_TOKEN`
Response Slimming
All 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 |
Tools (37)
Navigation (7)
- `clickup_whoami` - Current user + workspaces
- `clickup_get_spaces` - Spaces in workspace
- `clickup_get_folders` - Folders in space
- `clickup_get_lists` - Lists in folder or space
- `clickup_get_list` - Single list details
- `clickup_create_list` - Create list in folder or space
- `clickup_delete_list` - Delete a list (permanent)
Task CRUD (5)
- `clickup_get_task` - Get task by ID
- `clickup_create_task` - Create task with all fields
- `clickup_update_task` - Update any task field
- `clickup_get_tasks` - List tasks in a list
- `clickup_search_tasks` - Search tasks across workspace
Custom Fields (1)
- `clickup_set_custom_field` - Set custom field value
Tags (6)
- `clickup_get_space_tags` - List space tags
- `clickup_create_space_tag` - Create tag
- `clickup_edit_space_tag` - Edit tag
- `clickup_delete_space_tag` - Delete tag
- `clickup_add_tag_to_task` - Tag a task
- `clickup_remove_tag_from_task` - Untag a task
Checklists (6)
- `clickup_create_checklist` - Create checklist
- `clickup_edit_checklist` - Edit checklist
- `clickup_delete_checklist` - Delete checklist
- `clickup_create_checklist_item` - Add item
- `clickup_edit_checklist_item` - Edit item
- `clickup_delete_checklist_item` - Delete item
Dependencies (4)
- `clickup_add_dependency` - Add dependency
- `clickup_delete_dependency` - Remove dependency
- `clickup_add_task_link` - Link tasks
- `clickup_delete_task_link` - Unlink tasks
Comments (5)
- `clickup_create_comment` - Add comment
- `clickup_get_comments` - Get comments
- `clickup_update_comment` - Edit/resolve comment
- `clickup_create_reply` - Threaded reply
- `clickup_get_replies` - Get replies
Delete Task (1)
- `clickup_delete_task` - Delete a task
Multi-List Membership (2)
- `clickup_add_task_to_list` - Add a task to an additional list (multi-homing)
- `clickup_remove_task_from_list` - Remove a task from an additional list
> These do not move a task. The ClickUp v2 API has no move-between-lists
> endpoint. Verified against the live API 2026-08-12: `POST /list/{list}/task/{task}`
> adds a secondary location and leaves the home list unchanged, while a `list_id`
> in `PUT /task/{id}` returns HTTP 200 and is silently ignored. To genuinely move a
> task and keep its custom ID and history, use the ClickUp web UI (right-click ->
> Move). Multi-list membership also requires the paid Tasks-in-Multiple-Lists feature.
Workspace Members (2)
- `clickup_get_workspace_members` - All workspace members
- `clickup_get_list_members` - List-specific members
Architecture
src/
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 # 9 tools (CRUD + custom fields + delete + multi-list)
tags.ts # 6 tools
checklists.ts # 6 tools
dependencies.ts # 4 tools
comments.ts # 5 tools
members.ts # 2 toolsLicense
MIT
Frequently asked questions
What is clickup-mcp?
clickup-mcp is Lightweight ClickUp MCP server for task management
How do I install clickup-mcp?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is clickup-mcp open source?
Yes — it is hosted on GitHub at https://github.com/cvrt-jh/clickup-mcp and has 3 stars.
Related MCP tools
The go-to web for your AI coding agent — local-first search, fetch, crawl & research over MCP. No API keys, no cloud, $0/query. Public beta.
MCP server that enables AI assistants to interact with Google Gemini CLI, leveraging Gemini's massive token window for large file analysis and codebase understanding
A desktop MCP client designed as a tool unitary utility integration, accelerating AI adoption through the Model Context Protocol (MCP) and enabling cross-vendor LLM API orchestration.
Code research platform for AI agents; find, understand, and prove context across your code and all of GitHub, in a fraction of the tokens. One toolset, MCP or CLI
Cut AI token costs 95%+ on code exploration. The leading MCP server for precise, symbol-level GitHub code retrieval via tree-sitter AST. Works with Claude Code, Cursor & any MCP client. 313B+ tokens saved.
Open-source coding agent memory. Records issues, attempts, fixes and decisions, then warns your agent before it repeats an approach that already failed. Native MCP server for Claude Code, Cursor, Antigravity and Codex. 100% local, no cloud, no telemetry. MIT.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP