A minimal Todo app demonstrating WebMCP — exposing structured tools for AI agents via the browser-native navigator.modelContext API.
Four tools with clear verb-noun naming (add-todo, list-todos, toggle-todo, delete-todo) and basic descriptions. All tools have input schemas with type definitions and required fields. However, descriptions are minimal (10-60 chars, below the 50-200 char LLM-optimized baseline), parameter descriptions lack depth, output schemas are undocumented, and error handling is absent. No recovery guidance, no actionable error messages, and no confirmation pattern for destructive operations. Schemas are present but sparse, missing details on output structure, pagination, and field semantics.
Add a new todo item with a description.
Permanently delete a todo item by its numeric ID.
List all current todo items with their status.
Mark a todo as done or revert it to pending. Requires the todo's numeric ID.
Descriptions are too brief (10-60 chars vs. 50-200 char baseline). LLMs cannot determine when to select each tool or distinguish toggle-todo from delete-todo without deeper context.
No output schemas documented. Callers cannot know what fields to expect (e.g., does add-todo return {id, description, done} or just {success}?). Breaks downstream tool chaining.
No error handling or recovery guidance. If delete-todo fails (e.g., ID not found), the agent receives no actionable message. Missing pattern:recovery-guide.
Destructive operation (delete-todo) lacks confirmation or dry-run pattern. Agents can permanently delete todos without a safety gate.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
Parameter descriptions are minimal or absent. 'filter' in list-todos has a description, but 'id' in toggle-todo and delete-todo lack context on valid ranges or error cases.