MCP server for saving AI-generated educational content (MCQ, Essay, Summary) to a database
Server defines 4 tools with explicit schemas and descriptions. Three primary tools (save_mcq_output, save_essay_output, save_summary_output) have well-structured input schemas with nested object validation and clear enum constraints. Descriptions are adequate (80-150 chars) but lack actionable context about when to use each tool vs. alternatives. One deprecated shim tool (save_ai_output) signals API evolution but adds confusion. All tools are WRITE operations with no error recovery guidance. Schemas are complete with type definitions and nested validation, but output schemas are undocumented, LLMs cannot predict what these tools return.
Deprecated compatibility shim. Prefer save_mcq_output, save_essay_output, or save_summary_output.
Save validated ESSAY AI output. Use this only for content shaped as { type: "ESSAY", generatedAt, questions[] }.
Save validated MCQ AI output. Use this only for content shaped as { type: "MCQ", generatedAt, questions[] }.
Save validated SUMMARY AI output. Use this only for content shaped as { type: "SUMMARY", generatedAt, summary }.
No output schema documentation. LLMs cannot predict return values or chain tools. All four tools lack documented response structures.
Deprecated shim tool (save_ai_output) creates ambiguity. Description says 'Prefer save_mcq_output, save_essay_output, or save_summary_output' but LLMs may still select it. Should be removed or clearly marked as legacy.
Tool descriptions lack context about when to use each variant. All three primary tools have identical structure but descriptions do not explain the MCQ vs. ESSAY vs. SUMMARY distinction or use cases.
No error handling guidance. Tools are WRITE operations with no recovery hints. If validation fails or DB insert fails, LLMs have no guidance on retry strategy or user-fixable errors.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Nested schema validation is strict but undocumented. The 'questions' array requires minItems=1, maxItems=100, and each question has required fields. If validation fails, error messages should explain which constraint was violated.