The Todo MCP server defines 15 tools with consistent verb-noun naming (get_, list_, create_, update_, delete_). All tools have descriptions and input schemas are present with type definitions. However, there are significant gaps: (1) descriptions are generic and lack actionable context for LLM selection, they don't explain WHEN to use each tool or what distinguishes similarly-named operations; (2) parameter descriptions are minimal ('The workspace ID', 'The list ID') and lack guidance on format, constraints, or dependencies; (3) output schemas are not documented, LLMs cannot predict what fields to expect from responses, hampering chaining and context management; (4) no error handling guidance is visible, tools lack recovery paths for common failures; (5) no indication of idempotency, retry safety, or side-effect scope despite 4 destructive tools; (6) parameter ranges and formats are undocumented (e.g., priority is an integer with no bounds specified). The tool set is well-scoped (each does one thing) and uses clear names, but the definitions lack the LLM-optimized depth needed for robust agent planning.
Create a new todo item
Create a new todo list
Create a new workspace
Delete a todo item
Delete a todo list
Delete a workspace
Get the current authenticated user
No output schemas documented. LLMs cannot predict response structure, required fields, or data types. This breaks chaining, agents don't know what fields are available for downstream tool calls.
Parameter descriptions are minimal placeholders ('The workspace ID', 'The list ID') with no format, range, or constraint guidance. LLMs cannot validate their own input or recover from invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
Get a specific todo list
Get a specific workspace by ID
List all tags for a workspace
List all todo lists in a workspace
List all workspaces for the current user
Update a todo item
Update a todo list
Update a workspace
create_todo_item has 'priority' (integer) and tags (array) as optional parameters with no documented ranges, enums, or constraints. LLMs may pass invalid priority values (negative, 1000, etc.) or malformed tag arrays.
Four destructive tools (delete_workspace, delete_todo_list, delete_todo_item, and implicitly any others with DESTRUCTIVE risk) lack confirmation mechanisms or dry-run support. No error recovery guidance. Agents could invoke irreversible operations without safeguards.
Descriptions are generic and lack LLM-optimizing context. E.g., 'Create a new workspace' does not explain when to use this vs. other creation tools, what prerequisites exist, or what the response contains. Descriptions under 50 chars or lacking actionable detail fail to guide LLM tool selection.
No pagination support visible in list tools. list_workspaces, list_todo_lists, and list_tags accept no limit, offset, or page parameters. Large result sets will bloat responses and exhaust context windows.
No error handling guidance documented. Tools lack descriptions of how failures are reported (HTTP status codes, error body structure) or recovery hints for common scenarios (workspace not found, unauthorized, conflict).
No idempotency or retry-safety documentation. update_* and create_* tools don't state whether they are idempotent, which LLMs need to know for safe retry planning.