LabscoMCP early access ↗
AnglerfishChessMCP SERVER

Chess UCI

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

by AnglerfishChess ↗Games, Entertainment & FandomCommunity

LABSCO 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