MCP server for a JSON-backed todo list with OpenTelemetry tracing.
Two tools with minimal but present schemas and descriptions. Both tools have clear verb-noun naming (add_task, list_tasks) and basic parameter documentation. However, descriptions are extremely brief (10-20 chars), falling below the 34-char p10 baseline for production tools. No output schema documentation. No error handling guidance. Parameter descriptions lack format/constraint details. Missing idempotency guidance for add_task (write operation). No pagination metadata in list_tasks despite accepting a limit parameter.
Add a task to the todo list.
Read tasks from the todo list.
Descriptions critically short (10-20 chars). 'Add a task to the todo list' and 'Read tasks from the todo list' lack context for LLM selection. Should explain WHEN to use, WHAT it returns, and any side effects. Baseline: 34-392 chars.
No output schema documented. LLMs cannot infer that add_task returns {id, title, created_at} or that list_tasks returns an array of task objects. Downstream tools cannot chain without guessing field names.
add_task is a write operation with no idempotency guidance or confirmation step. Agents retrying on ambiguous failures risk duplicate tasks. No dry-run or confirmation pattern.
list_tasks accepts 'limit' but provides no pagination metadata (total_count, next_cursor, has_more). Large result sets will blow context window. No guidance on result capping.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
No error handling guidance. If TASKS_PATH is unreadable or corrupted JSON, the tool will raise an unhandled exception. No recovery hints for the LLM (e.g., 'Check file permissions' or 'Verify JSON format').