chess-support
An MCP server that manages the state of a chess game for LLMs/agents. It intentionally does not suggest moves.
claude mcp add --transport stdio danilop-chess-support-mcp uvx --from git+https://github.com/danilop/chess-support-mcp.git chess-support-mcp
How to use
Chess Support MCP Server provides a single in-memory chess game controller designed for use by language models and agents. It exposes tools to create or reset a game, add moves in UCI format, list and inspect moves, and query the current board and game state. Notably, it does not suggest moves; instead, it focuses on managing the game state and exposing a machine-friendly representation of the board and status so agents can reason about the position, legality of moves, and game outcome. Key methods include get_status (which returns a machine-friendly pieces map, FEN-related status like whose turn it is, and check/game-over information), add_move (to apply a legal UCI move), is_legal (to test a move without applying it), and various move-list utilities like list_moves and last_moves.
How to install
Prerequisites:
- Python 3.13+ installed on your system
- uv package manager installed (e.g., via pipx or pip)
Install uvx/uv (if needed) and clone or run directly from the GitHub repository using uvx as described in the MCP readme:
-
Install Python 3.13+ (from python.org or your OS package manager).
-
Install uv/uvx if you haven’t already. The repo assumes uvx is available to fetch from GitHub. Example (via Python's pipx):
pipx install uvx
-
Run the MCP server directly from GitHub without cloning (as described in the README):
uvx --from git+https://github.com/danilop/chess-support-mcp.git chess-support-mcp
-
Alternatively, use uv to run a local project if you have a copy of the repository:
uv run chess-support-mcp
Prerequisites summary: Python 3.13+, uv/uvx installed, network access to fetch from GitHub. Ensure your environment can access GitHub to fetch the package for the first run.
Additional notes
Notes and tips:
- The server maintains a single in-memory game; restart will reset the game state.
- Moves are always provided in UCI format (e2e4, g1f3, e7e8q, etc.). Do not include side information; the server infers the side to move from the current position.
- Use get_status to obtain a machine-friendly representation of the board (pieces map) and game state, including whose turn it is, whether the game is over, and the result if applicable.
- For debugging or human readability, you can also use board_ascii or last_moves_detailed to audit moves with ply and SAN representations.
- If add_move returns accepted: false, the status will reflect the unchanged position and you may receive a reason such as illegal or parse_error.
- Tests can be run with uv run pytest -q as documented in the repo.
- If you plan to deploy, consider environment variables for logging, timeouts, or API access controls as needed by your hosting environment.
Related MCP Servers
mcp-agent
Build effective agents using Model Context Protocol and simple workflow patterns
code-mode
🔌 Plug-and-play library to enable agents to call MCP and UTCP tools via code execution.
mcp-reddit
A Model Context Protocol (MCP) server that provides tools for fetching and analyzing Reddit content.
mcp-agent
Lightweight, focused utilities to manage connections and execute MCP tools with minimal integration effort. Use it to directly call tools or build simple agents within your current architecture.
litemcp
A minimal, lightweight client designed to simplify SDK adoption into MCP
rancher
MCP server for Rancher - Kubernetes management and deployment platform