Labsco
MCP SERVER

Puts Stockfish or Leela behind a tool call, so the model reads an engine evaluation instead of guessing a move.

Games, Entertainment & Fandom
Summary
Chess strength the model does not have to fake.

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.

What it is

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.

What you get
  • `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
Requirements

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.

Setup effort

One command — uvx chess-uci-mcp@latest /usr/local/bin/stockfish