An MCP server that provides English composition quiz questions from a SQLite database
Single tool 'get_question' has critical definition gaps. Description is non-English ('英作文の問題を取得する') and only 12 characters when translated ('Get essay questions'), below the 20-char minimum. No parameter descriptions exist. Output is unstructured free-text concatenation rather than typed fields. Tool lacks error handling guidance, recovery paths, and actionable error messages. No pagination despite returning database results. No idempotency guarantees despite modifying state (solved_count increment). Naming is acceptable (verb_noun form), but everything else fails production standards.
英作文の問題を取得する
Description is 12 characters in Japanese ('英作文の問題を取得する'). Provide English description 50-200 chars explaining WHAT, WHEN, and WHAT IT RETURNS.
Tool modifies state (increments solved_count in database) but has no description indicating this is a side effect. Agents cannot determine if the call is safe to retry.
Output is unstructured free-text (concatenated string). No documented output schema. LLM cannot extract structured fields (id, sentence, translation, keyword) for downstream tool chaining.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 30 | <=2025-11-25 | v2 |
No error handling or recovery guidance. When no questions match filters, returns generic 'not found' message. Does not suggest alternatives or explain why the query failed.