A Python client for The Mana World, exposed as an MCP server so an AI agent can play the game.
33 tools with consistent naming (verb_noun pattern) and basic descriptions, but critical gaps in schema documentation and parameter descriptions. Most tools lack explicit input schema visibility in source; descriptions are terse (avg ~40 chars, well below 194-char baseline). No output schemas documented. Error handling is minimal, tools return generic error strings without recovery guidance. Security concerns: no permission gates, no audit logging visible, no input validation hints. Composition is reasonable (single-action tools), but many lack the parameter detail needed for LLM reasoning.
Attack a target being continuously
Get recent chat history
Choose an option from NPC menu
Close NPC dialog
Close storage dialog
Drop an item from inventory
Equip an item from inventory
Face a direction
Output schemas not documented. Tools return unstructured strings (e.g. 'Error: ...' or raw game state) without specifying field names, types, or structure. LLMs cannot plan downstream calls or extract specific data.
Parameter descriptions are minimal or missing. Most tools have 1 - 2 params with terse descriptions (e.g. 'The message to say'). No constraints, ranges, or format hints. LLMs cannot validate input or self-correct.
No error handling guidance. Tools return generic 'Error: ...' strings without recovery hints. LLMs cannot determine if an error is retryable, user-fixable, or fatal.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | <=2025-11-25 | v2 |
Follow a player by name or ID
Hunt monsters by name or stop hunting
Get current inventory
Get nearby items on the ground
Get nearby beings
Get map view around current position
Continue NPC dialog to the next message
Click on an NPC to start a dialog
Send an integer input to NPC dialog
Send a string input to NPC dialog
Leave the current party
Send a message to the party
Pick up an item from the ground
Respawn after death
Send a public chat message to nearby players
Sit down
Use a skill
Stand up
Increase a stat point
Get current player status
Stop auto-attack and hunting
Unequip an item
Stop following a player
Pathfinding walk to a target position
Send a private message to another player
No permission gates or audit logging visible. Destructive tools (attack, drop, stat, skill) lack permission checks or logging. No evidence of input sanitization against injection attacks.
Ambiguous parameter names. 'target' in follow/whisper could be ID or name; 'choice' in choose lacks context; 'direction' in face uses magic numbers (0=south, 2=left) instead of enum. LLMs will guess wrong.