A to-do list management server with weather forecast capability
TodoServer has basic tool definitions but significant quality gaps. All 4 tools have descriptions and schemas, but descriptions are minimal (10-50 chars, well below the 194-char baseline). Parameters lack depth: 'task' and 'city' have minimal context; 'task_number' lacks range constraints. No output schemas documented. Error handling is present but generic ('Invalid task number' provides no recovery guidance). The get_weather tool is out-of-scope (weather forecasting unrelated to todo management) and uses fake data, signaling incomplete implementation. No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels. Schemas are present but minimal, no enums, ranges, or format constraints.
Add a new task to the to-do list
Get the current weather forecast for a city
List all current to-do tasks
Remove a task by its number in the list
Descriptions are too short (10-50 chars vs 194-char baseline). 'Add a new task to the to-do list' and 'Get the current weather forecast for a city' lack context on when to use, what happens, and prerequisites.
remove_todo parameter 'task_number' lacks range constraints. No min/max documented; LLM could pass negative, zero, or huge integers. Should specify '1 to N where N is list length'.
No output schemas documented. LLMs cannot plan downstream calls or extract structured data. All tools return plain strings; should document return type (e.g. {type: 'object', properties: {message: {type: 'string'}, task_count: {type: 'integer'}}}).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | 2026-07-28+ | v2 |
get_weather is out-of-scope and uses hardcoded fake data. A todo server should not include weather forecasting. This tool adds no value and signals incomplete implementation.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels. remove_todo is DESTRUCTIVE but unmarked; list_todos is READ_ONLY but unmarked. Annotations guide agent safety reasoning.