Exposes the live OpenTTD admin port to any AI agent that speaks Model Context Protocol. Speaks MCP over stdio for Claude Desktop, Cursor, Zed, etc.
12 tools with inconsistent quality. Tool names follow verb_noun convention well (game_state, list_companies, dispatch_route). Descriptions range 20 - 150 chars but many are vague about prerequisites and return structure. Input schemas visible but severely incomplete: 10 of 12 tools declare empty properties {} with no parameters documented. No output schemas documented. Error handling absent. Security concerns: update_squirrel_ai is marked DESTRUCTIVE with only env-gating, no permission checks or confirmation pattern.
Plan + dispatch an intra-town or pair route.
PerformTownAction TOWN_ACTION_FUND_BUILDINGS
Live snapshot of the OpenTTD game: date, companies, stations, vehicles, towns. Call this first to see what's going on.
List all companies with value, quarterly cargo delivered, performance rating, and current name (name often encodes phase/status).
All stations on the map (id, name, tile).
Top towns by population, with x/y tile coordinates.
10 of 12 tools have empty input schemas (properties: {}). No parameters documented despite tools clearly accepting inputs (dispatch_route, fund_town, send_chat, update_squirrel_ai). Violates pattern:constrained-input and pattern:tool-description.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., station IDs from list_stations for dispatch_route). Violates pattern:tool and pattern:response-shaper.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
All vehicles with profit_ty (this year), profit_ly (last year), and lifetime age.
Game control via rcon - pause the game.
Read current AI source (.nut) — always safe.
Broadcast message in game chat.
Game control via rcon - unpause the game.
Replace AI source + live-reload (DANGEROUS, env-gated).
Destructive tool update_squirrel_ai lacks confirmation pattern and clear permission gates. Description is vague ('DANGEROUS, env-gated'). No recovery guidance if AI reload fails. Violates pattern:confirmation-request and pattern:permission-gate.
Descriptions for dispatch_route, fund_town, send_chat, and update_squirrel_ai are under 50 chars and lack context on prerequisites, expected inputs, and return values.
No error handling or recovery guidance documented. Tools like dispatch_route and update_squirrel_ai can fail (route planning, AI syntax errors) but provide no actionable error messages or retry logic. Violates pattern:recovery-guide.