Model Context Protocol (MCP) server for ClickUp — manage tasks, track time, and post daily updates from Claude Code, Cursor, or any MCP-compatible AI tool.
ClickUp MCP has well-structured tool definitions with consistent naming (verb_noun pattern) and complete input schemas using Zod validation. All 12 tools have descriptions and typed parameters. However, descriptions are often generic (e.g., 'Update the status of a task' lacks context on when/why to use it vs alternatives). Output schemas are not documented, LLMs cannot predict response structure for chaining. Parameter descriptions lack format constraints (e.g., 'duration' accepts '2h', '30m', or milliseconds but this is buried in code, not in schema descriptions). Error handling is minimal, no recovery guidance or actionable error messages visible. Missing idempotency hints for write operations.
Find a task by name in ClickUp
Get the current status and details of a task in the formatted update style
List all ClickUp Chat channels accessible to your account
List all folders (e.g. Sprint folders) inside a ClickUp space
List all lists (including those in folders/sprints) inside a ClickUp space
List all spaces in your ClickUp workspace
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination) for downstream tool chaining. E.g., log_task returns task details but schema is invisible to the agent.
Generic descriptions lack context on when/why to use each tool. 'Update the status of a task' does not explain when to call update_task_status vs get_task_update, or what statuses are valid. Descriptions should be 50-200 chars and answer WHAT, WHEN, and WHAT IT RETURNS.
Parameter descriptions lack format constraints. 'duration' in track_time accepts '2h', '30m', '1h 30m', or milliseconds, but this is only documented in code comments, not in the schema description. LLMs will guess wrong formats.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Log a new task to ClickUp in the specified space and list, assign it to you, and return the task details
Post a free-form markdown message to a ClickUp Chat channel
Post a structured daily standup update to a ClickUp Chat channel with sections: 1. Done Today (task links with status badges + time), 2. Planned for Tomorrow (bullets), 3. AI Usage, 4. Challenges / Blockers. Task links auto-render with status badges in ClickUp Chat.
Post the formatted update for a task ([Name](url) — Status — Time) into a ClickUp Chat channel
Log actual time spent on a ClickUp task (creates a time entry under your user). Updates the task's time_spent total.
Update the status of a task
No error handling guidance. If a task is not found, or a channel name is invalid, the tool returns an error but does not tell the LLM what to do next (e.g., 'Try list_spaces() first' or 'Available channels: ...'). Agents cannot recover.
Write operations (log_task, update_task_status, send_chat_message, track_time) lack idempotency hints or confirmation patterns. Agents cannot know if retrying is safe or if it will create duplicates. No dry-run or confirmation step for destructive operations.