MCP server bridge for Slay the Spire 2 game state management and advisory
Critical gaps across all dimensions. 29 tools with minimal descriptions (most under 50 chars, many generic). Input schemas present but sparse, most tools accept empty objects {} or single integer/string params with no validation constraints (enums, ranges, patterns). No output schemas documented. No error handling guidance. No parameter descriptions for most inputs. Tool names are verb-prefixed but many are vague (e.g., 'recommend_next_action', 'execute_recommended_action', what action? what does execution return?). No tool annotations (readOnlyHint, destructiveHint). Composition issues: tools like 'runner_start', 'runner_step', 'runner_run_until_stopped' suggest stateful runner management, but no documentation of state transitions or idempotency. Security: no audit trail, no permission gates, no rate limiting visible. This server reads like a thin wrapper over a game API with minimal LLM-optimization.
Confirm the current combat hand selection.
End the current combat turn.
Play a card during combat.
Select a card during a combat hand-selection prompt.
Discard a potion.
Choose an event option.
Execute the supported recommended action for the current STS2 state.
No output schemas documented. Tools return game state, menu state, and action results, but LLMs have no visibility into response structure. This forces agents to guess what fields are available and risks hallucinated field access.
Descriptions are generic and under 50 chars for most tools (e.g., 'Get the current STS2 game state', no guidance on when to call it, what it reveals, or how to use the result). Rubric baseline: avg 194 chars, p90=392. These descriptions waste the LLM's reasoning capacity.
Most parameters lack descriptions. E.g., 'option_index' in menu_select_character has no guidance on valid range, how to discover valid indices, or what happens if out of bounds. Rubric: 100% of A+ tools have param descriptions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
Get the current STS2 game state.
Get the current STS2 menu state.
Choose a map node by index.
Close the active menu submenu.
Embark from the menu.
Open the character selection menu.
Recover safely from game-over back to the main menu.
Return to the main menu through MenuControl.
Select a character option by index.
Set the character-select ascension level.
Start a run for the given character id.
Recommend the next advisory action for the current STS2 state.
Claim the current reward bundle.
Pick a reward card.
Skip the current reward card choice.
Run the singleton runner until it stops itself.
Start the singleton run runner.
Read the singleton run runner status.
Execute one singleton runner step.
Stop the singleton run runner.
Select a card from a generic card-select prompt.
Use a potion.
No error handling guidance. Tools return success/failure but do not tell LLMs what to do on error (retry? ask user? call a recovery tool?). Rubric: error responses must guide next steps.
Ambiguous tool names: 'recommend_next_action' and 'execute_recommended_action' do not clarify what action is recommended or what the execution returns. Rubric: tool names must convey intent without reading description.