An agent that rewrites a ticket description can destroy context nobody backed up; here the description can only be appended to with a timestamp, while the fields that are easy to revert through ClickUp's own history — status, priority, assignees — update normally. The image handling is the other differentiator: because it runs on your machine, you can reference a local screenshot by path in a comment and it uploads the file itself rather than squeezing it through base64.
A local MCP server for ClickUp built for coding tools rather than chat: one call returns a task with its full comment history, status history and inline images, and running locally means it can read a screenshot off disk instead of taking base64.
- `getTaskById` — complete task detail including comments, images and metadata in a single call
- `searchTasks` with fuzzy matching over names, descriptions and comments, and `searchSpaces` for workspace structure
- Writing: `createTask`, `updateTask`, `addComment`, `editComment`, and `updateListInfo`
- Description fields are append-only — new content is added with a timestamp and existing text is never overwritten, while status, priority, assignees and tags update normally
- Time tracking with `getTimeEntries` and `createTimeEntry`
- Documents: `searchDocuments`, `readDocument`, `createDocumentOrPage`, `updateDocumentPage`
- Three modes selected by environment variable — read-minimal for coding assistants, read for exploration, write for full task management
A ClickUp API token as `CLICKUP_API_KEY` and your workspace id as `CLICKUP_TEAM_ID`. Install the pre-built bundle for Claude Desktop, which needs no Node, or run the npm package with npx. `CLICKUP_MCP_MODE` picks the tool surface; `MAX_IMAGES` and `MAX_RESPONSE_SIZE_MB` bound what a task detail call returns, and `MAX_UPLOAD_SIZE_MB` bounds what you write back.
One command plus a key — npx -y @hauptsache.net/clickup-mcp, then supply credentials
