MCP server for Connect4 game engine providing game state management, move execution, replay, and learning capabilities
Connect4-rs exposes 6 game-control tools with basic schemas and descriptions. All tools have descriptions (10-100 chars) and input schemas with type definitions. However, descriptions are minimal (avg 65 chars vs baseline 194), lack WHEN/WHY context, and omit error recovery guidance. Parameter descriptions are sparse or absent. Output schemas are undocumented. No tool annotations (readOnlyHint/destructiveHint). Error messages are generic ('illegal move', 'unknown cmd'). Tools lack composition guidance, no chaining IDs returned, no pagination, no batch variants. The 'learn' tool has an optional 'solver' param but no guidance on fallback behavior or what 'solver' command format is expected. Overall: functional but below production baseline.
Toggle LLM assistance hints on or off, or query current hint state
Analyze a completed game and book the engine's mistakes where it threw away a win or draw. Requires a solver to be configured.
Make a human move in the specified column (1-7). Blocks until the engine has answered or the game ended.
Start a new game with optional engine starting preference
Replay a full game sequence by providing a list of moves. Both sides are replayed into place.
Get the current game state including board position, status, history, and engine information
Output schemas undocumented. Tools return JSON but LLMs cannot infer field structure (e.g., what fields does 'state' return? what is the board representation?). Agents cannot plan downstream calls or extract data reliably.
Descriptions lack WHEN/WHY context and are under 100 chars (baseline 194). E.g., 'Make a human move' does not explain when to call it vs 'new', what happens if the engine is thinking, or what the return value contains. LLMs cannot reliably select the right tool.
Parameter descriptions missing or minimal. 'col' has a description, but 'engine_starts' (appears in 'new' and 'replay') lacks context. 'solver' in 'learn' does not explain format, fallback behavior, or what happens if not provided. LLMs cannot infer valid inputs.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). 'state' is read-only; 'move', 'new', 'replay', 'learn', 'hints' are destructive. Agents cannot reason about side effects or retry safety without explicit hints.
Error messages are generic and non-actionable. 'illegal move (status Thinking, column full or not your turn)' does not guide recovery. 'unknown cmd' does not list valid commands. Agents cannot self-correct.