The server defines 1 tool (new-todo) with significant quality gaps. The tool has a basic description and a partially-defined input schema using Zod, but critical issues undermine usability: (1) parameter descriptions are null/missing entirely, violating the baseline that 100% of A+ tools have parameter descriptions; (2) the schema is declared via Zod objects inline rather than a proper JSON Schema structure, making it non-standard and difficult for LLM clients to introspect; (3) no output schema is documented, LLMs cannot plan downstream calls; (4) error handling is minimal and provides no recovery guidance; (5) the tool name 'new-todo' is acceptable but could be stronger as 'create_todo' (verb_noun pattern); (6) no input validation or error messages guide the LLM to correct mistakes. The server also has a resource handler (todos) but resources are not tools and do not contribute to tool scoring.
Create a new todo in the todo list.
All parameter descriptions are null, violates baseline that 100% of A+ tools have parameter descriptions. Parameters: title, description, author, priority, dueDate have no descriptions.
Input schema uses Zod inline objects rather than JSON Schema. This is non-standard and prevents proper schema introspection by MCP clients. Schema must be serialized to JSON Schema format with explicit type, properties, and required fields.
No output schema documented. LLMs cannot determine what fields to expect from the response, preventing them from planning downstream operations or extracting relevant data.
Tool description is only 36 characters ('Create a new todo in the todo list.'). Baseline average is 194 chars. Description lacks WHEN to use, WHAT it returns, and any prerequisites. Insufficient for LLM selection logic.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 46 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 20 | - | v1 |
Error handling is generic. On failure, returns raw error message text without recovery guidance. Violates pattern that errors must tell the LLM what to do next.
No input validation before processing. If LLM passes invalid priority or malformed dueDate, the error message will not guide correction. Missing constraint descriptions (e.g., 'dueDate must be ISO 8601').
Tool modifies state (writes to JSON file) but description does not explicitly say 'this creates a new todo and persists it to the list.' LLMs need to know which calls are irreversible.
Naming: 'new-todo' is acceptable but 'create_todo' (verb_noun) would better follow convention and be more discoverable to LLMs searching for action verbs.