A Model Context Protocol server that shuffles and draws tarot cards with preset spreads and card meanings
Three tools with basic schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. Tool names follow verb_noun convention (draw_*, list_*), which is good. However, descriptions are minimal (10-40 chars), parameter descriptions lack detail on constraints and formats, and output schemas are not documented. No error handling guidance. The server is functional but falls short of production-grade quality.
draw N random cards as JSON
draw a preset spread with named positions
list available preset spreads
Tool descriptions are too short (10-40 chars). Rubric baseline is 194 chars average; descriptions under 20 chars score 0-20. Current descriptions ('draw N random cards as JSON', 'draw a preset spread with named positions', 'list available preset spreads') lack context on WHEN to use each tool, what the output structure is, and any prerequisites.
Output schemas are not documented. LLMs cannot plan downstream calls or extract data without knowing the response structure. The code mentions 'draw N random cards as JSON' and 'a short keyword interpretation that ALREADY matches the card's orientation', but the actual JSON schema (fields, types, nesting) is not visible in the tool definitions.
Parameter descriptions lack constraint details. 'count' parameter has no min/max bounds (rubric baseline: specify 1 - 100 range). 'spread' parameter has no enum of valid spread names, LLMs will hallucinate invalid spread names. 'allow_reversed' is boolean but lacks explanation of what 'reversed' means in tarot context.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
No error handling guidance. If an LLM requests an invalid spread name or count > 78, what error is returned? How should the LLM recover? Rubric requires: 'Error responses must tell the LLM what to do next.' Currently no recovery guidance is visible.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All three tools are read-only and idempotent, but this is not declared in the schema. Modern MCP clients use these hints for safety and planning.