A Model Context Protocol server for interacting with ClickUp task management API
Two tools with basic schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. list_tasks lacks pagination parameters despite API returning potentially large result sets. create_task has incomplete parameter descriptions (assignees lacks detail on format/constraints). Neither tool documents output structure for LLM planning. Error handling returns raw JSON without actionable guidance. No tool annotations (readOnlyHint/destructiveHint). Naming is acceptable (verb_noun pattern) but descriptions are minimal (34-50 chars, below 72-char baseline for params).
Create a new task in a ClickUp list
List tasks from a ClickUp list
No pagination support in list_tasks despite API returning potentially large result sets. Missing limit, offset/cursor, and total_count in response. LLMs cannot handle unbounded lists without pagination.
Output schemas not documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., task_id from create_task response). Responses return raw JSON.stringify() without field descriptions.
Parameter descriptions incomplete. 'assignees' parameter lacks format detail (are these ClickUp user IDs? integers only?). No constraints on list_id format or length. Descriptions average 34 chars vs 72-char baseline.
Error responses lack actionable recovery guidance. Returns raw API error messages (e.g., 'Error listing tasks: 404') without suggesting next steps or available alternatives.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). create_task is destructive but unmarked; list_tasks is read-only but unmarked. LLMs cannot infer safety properties.