A platform fighting game (Smash-style) built on the Collider engine, exposing game state and control through Collider's generic MCP server for AI agents and human players
Fighter MCP exposes 4 tools with minimal documentation. Tool names lack action verbs (initialize, observe, act, set_tactic are vague). Descriptions are present but generic (10-50 chars for most). Only 'act' and 'set_tactic' have visible input schemas; 'initialize' and 'observe' show empty input objects with no documentation. Parameter descriptions exist for 'act' and 'set_tactic' but are sparse. No output schemas documented. Error handling is absent, no recovery guidance, no categorization. The game-domain context (fighting game simulation) is clear from code, but tool definitions do not follow agentic tool patterns for clarity, composability, or LLM optimization.
Holds the given control/key names for frames (1/60s ticks) and returns the resulting battle state
MCP handshake: returns game briefing with match setup JSON containing stage geometry, fighter stats, and movesets
Fetches the current battle state without changing held input
Commit to the tactic your body will execute for the next ~2 seconds (Claude agent tool)
initialize and observe have no visible input schemas (empty {} with no documentation).
Tool names lack action verbs. 'initialize', 'observe', 'act' are vague. Should be 'get_game_briefing', 'get_battle_state', 'execute_action', 'set_fighter_tactic' to signal intent to LLMs.
Descriptions are too short (10-50 chars for initialize/observe). Rubric baseline is 194 chars avg; <20 chars triggers hard cap of 0-20 on description score. No WHEN to use, no prerequisites, no output structure hints.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields (e.g., does initialize return fighter_ids, stage_geometry, movesets?). Agents must guess structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | 2026-07-28+ | v2 |
No error handling or recovery guidance. If act() fails (invalid keys, simulation error), LLM has no guidance on retry, fallback, or user correction. No error categorization (retryable vs fatal).