ChessPal Chess Engine MCP Server

A chess engine MCP server powered by Stockfish

Local serverstdioPython

What is the ChessPal Chess Engine MCP server?

A chess engine MCP server powered by Stockfish. That is what the chesspal chess engine mcp server brings to an AI assistant: the same capability, reachable through the Model Context Protocol rather than a separate app or dashboard.

The short version

A Stockfish-powered chess engine exposed as an MCP server using FastMCP. Calculates best moves via MCP tools accessible over SSE (default) or stdio transports using an MCP client library. Part of the ChessPal project.

  • Robust Stockfish engine integration with proper process management
  • Exposes engine functionality via the Model Context Protocol (MCP) using FastMCP
  • Supports both SSE and stdio MCP transports for client interaction
  • UCI protocol implementation for chess move generation
  • Comprehensive test suite with TDD approach
  • Error handling and recovery mechanisms

Getting it running

Installation goes through your MCP client rather than a global install: point it at chesspal-mcp-engine on PyPI and it is fetched when the client starts. The copy-paste blocks for Claude Desktop, Claude Code and Cursor are further down this page.

The tools it exposes

The server publishes 6 tools. What each one is for:

  • get_best_move_tool — Get the best move for a given chess position
  • validate_move_tool — Validate if a move is legal in a given position
  • get_legal_moves_tool — Get all legal moves in a given position
  • get_game_status_tool — Get the current game status (in progress, checkmate, etc.)
  • Timeouts — The engine is configured with the following timeouts: - Engine calculation time: 1000ms by default (configurable via CHESSPAL_ENGINE_TIMEOUT_MS) -
  • Contributing — 1. Fork the repository 2. Create a feature branch 3. Make your changes 4. Run tests and linters: bash poetry run black . poetry run isort . poetry

What it needs from you

Configuration is passed through the environment: CHESSPAL_ENGINE_NAME, CHESSPAL_ENGINE_VERSION, CHESSPAL_ENGINE_OS, CHESSPAL_ENGINE_BINARY, CHESSPAL_ENGINE_PATH, PYPI_TOKEN. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.

  • Python 3.10 or higher - Poetry for dependency management (install from Poetry's documentation) - Stockfish chess engine binary (version 17.1 recommended)

Things to watch

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • Missing credentials fail quietly in some clients — if no tools show up, check the environment block first.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

How it compares

Plenty of developer tooling servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. ChessPal Chess Engine's toolset — get_best_move_tool, validate_move_tool, get_legal_moves_tool and 3 more — is a fair guide to whether it matches your workflow. It is maintained by wilson-urdaneta; worth a glance at recent repository activity before you build anything load-bearing on it.

SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.

Available tools

ToolWhat it does
get_best_move_toolGet the best move for a given chess position
validate_move_toolValidate if a move is legal in a given position
get_legal_moves_toolGet all legal moves in a given position
get_game_status_toolGet the current game status (in progress, checkmate, etc.)
TimeoutsThe engine is configured with the following timeouts: - Engine calculation time: 1000ms by default (configurable via CHESSPAL_ENGINE_TIMEOUT_MS) - Response wait timeout: 30s (allows time for engine initialization and cal
Contributing1. Fork the repository 2. Create a feature branch 3. Make your changes 4. Run tests and linters: bash poetry run black . poetry run isort . poetry run flake8 poetry run pytest 5. Submit a pull request

How to install the ChessPal Chess Engine MCP server

{
  "mcpServers": {
    "dylangames-mcp-chess-engine": {
      "command": "uvx",
      "args": ["chesspal-mcp-engine"],
      "env": {
        "CHESSPAL_ENGINE_NAME": "your-value",
        "CHESSPAL_ENGINE_VERSION": "your-value",
        "CHESSPAL_ENGINE_OS": "your-value",
        "CHESSPAL_ENGINE_BINARY": "your-value",
        "CHESSPAL_ENGINE_PATH": "your-value",
        "PYPI_TOKEN": "your-value"
      }
    }
  }
}

Add to claude_desktop_config.json, then restart Claude Desktop.

Configuration

  • Python 3.10 or higher - Poetry for dependency management (install from Poetry's documentation) - Stockfish chess engine binary (version 17.1 recommended)
VariableDescriptionRequired
CHESSPAL_ENGINE_NAMEConfiguration value read at startup.Optional
CHESSPAL_ENGINE_VERSIONConfiguration value read at startup.Optional
CHESSPAL_ENGINE_OSConfiguration value read at startup.Optional
CHESSPAL_ENGINE_BINARYConfiguration value read at startup.Optional
CHESSPAL_ENGINE_PATHFilesystem location the server is allowed to use.Optional
PYPI_TOKENCredential the server authenticates with.Yes

Example prompts to try

  • Use ChessPal Chess Engine to get best move tool.
  • Use ChessPal Chess Engine to validate move tool.
  • Use ChessPal Chess Engine to get legal moves tool.

Frequently asked questions

Python 3.10 or higher, Poetry for dependency management, and a Stockfish chess engine binary (version 17.1 recommended).