Model Context Protocol server for TickTick task management. Provides tools for creating, viewing, and managing TickTick tasks through Claude Desktop.
TickTick MCP has clear verb-based naming (add_task, list_tasks, complete_task) and reasonable descriptions (avg ~80 chars). However, parameter descriptions are sparse or missing entirely. For example, add_task's 'priority' parameter lacks explanation of what each integer value means in user terms. Output schemas are not documented, callers cannot predict response structure. Error handling is minimal; most tools return plain strings without guidance on recovery. The server uses fuzzy string matching (e.g., 'searches for matching project') which is fragile and undocumented. No input validation, no enum constraints, no pagination support despite list_tasks accepting a limit parameter.
Create a new task in TickTick
Mark a task as complete
Create a new TickTick project
Get detailed information about a specific task
List all TickTick projects
List tasks from TickTick
No output schemas documented. Tools return plain strings; callers cannot predict structure or extract fields for chaining. E.g., add_task returns 'Created task: X' but no structured ID field for downstream tools.
Parameter descriptions are incomplete or missing. 'priority' in add_task lacks explanation (0=none, 1=low, 3=medium, 5=high is in tool docstring but not param description). 'time_zone' has no validation or format guidance. LLMs cannot infer valid values.
Fuzzy string matching ('searches for matching project', 'searches for matching task') is undocumented and fragile. No guidance on what happens if multiple matches exist. complete_task returns ambiguity error but add_task silently picks first match.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
No error recovery guidance. Tools return plain error strings ('No task found matching: X') without suggesting next steps. LLMs cannot determine if error is retryable, user-fixable, or fatal.
No input validation or enum constraints. 'priority' accepts any integer; 'due_date' parsing is fragile (relies on fromisoformat); 'color' in create_project has no format validation. Invalid inputs fail silently or with unhelpful errors.