Ask a model to evaluate a position and you get prose; route it through here and you get Stockfish's actual line. The option tools are the part worth noticing — `get_engine_options` and `set_engine_options` mean thinking time, threads and hash can be tuned mid-session rather than baked into a config file you have to restart to change.
A bridge between an assistant and any UCI-compatible chess engine on your machine. You point it at the engine binary; it speaks UCI on one side and MCP on the other, so positions go in as FEN and real engine analysis comes back.
- `analyze` evaluates a position given as a FEN string
- `get_best_move` returns the engine's choice for a position
- `set_position` sets the current position
- `engine_info` reports which engine is behind the bridge
- `get_engine_options` lists every UCI option with its metadata and current value
- `set_engine_options` changes one or more of those options while the server is running
Python 3.10 or newer, `uv`/`uvx`, and a UCI engine you install yourself — Stockfish is the tested one, via `brew install stockfish` on macOS. The engine path is a required argument: `uvx chess-uci-mcp@latest /usr/local/bin/stockfish`. Add `-o Threads 4` or `-o Hash 128` to set engine options at launch, and `--think-time` to change the per-move budget from its default of 1000 milliseconds. Version 0.2.0, stdio transport.
One command — uvx chess-uci-mcp@latest /usr/local/bin/stockfish
