MCP Server for Rock Paper Scissors Game with AI opponent implementing the Model Context Protocol for Claude Desktop integration
Two tools with basic schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. play_rps has a well-formed input schema with enums and defaults, but get_stats lacks any parameter descriptions. Neither tool documents return types or error handling. Descriptions are present but generic (194 chars baseline; these are 80-90 chars). No tool annotations, no error recovery guidance, no output schema documentation. Naming follows verb_noun convention (play_rps, get_stats) which is good, but descriptions don't explain WHEN to use each tool or what the LLM should expect in responses.
Get current game statistics
Play a game of Rock Paper Scissors against an AI opponent
get_stats has no parameter descriptions and minimal tool description (18 chars). Tool description must explain what stats are returned and when to call it.
No output schemas documented for either tool. LLMs cannot plan downstream calls or extract data without knowing return structure. play_rps should document {result, player_choice, computer_choice, winner, stats_updated}; get_stats should document {wins, losses, ties, total_games}.
No error handling or recovery guidance. If an invalid choice is passed or game state is corrupted, the tool returns nothing actionable. Per pattern:recovery-guide, errors must tell the LLM what to do next.
play_rps description does not explain what 'difficulty' does or how it affects AI behavior. Parameter descriptions are missing for 'difficulty' (only 'choice' is described).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Both tools are marked READ_ONLY in metadata but this is not reflected in the schema. Modern MCP servers should use tool annotations for clarity.