mcpField
M
MCP Chess Server

MCP Chess Server

Local
github.com/jiayaoGames & Entertainment24Updated 77w ago

About MCP Chess Server

MCP Chess Server is an MCP server that lets users play chess against any LLM. It renders board images and can search PGN games for positions matching a condition, suiting both casual play and game analysis.

Key features

  1. 01Play chess against an LLM
  2. 02Render the board as an image
  3. 03Make moves in SAN notation
  4. 04List legal moves in UCI notation
  5. 05Search PGN games for matching positions

Use cases

  1. 01Playing a chess game against an LLM
  2. 02Finding positions in PGN game records for analysis

MCP support

The project runs as an MCP server and exposes tools such as new_game, make_move, get_valid_moves, get_board_visualization and find_position_in_pgn to MCP clients.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"chess": {
"command": "uvx",
"args": [
"mcp-chess"
]
}
}
}
Run commanduvx mcp-chess

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypimcp-chess

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

MCP Chess Server

This MCP let's you play chess against any LLM.

Installation

To use this chess server, add the following configuration to your MCP config:

{
  "mcpServers": {
    "chess": {
      "command": "uvx",
      "args": [
        "mcp-chess"
      ]
    }
  }
}

Usage

Play a game: Chess starting position with black pieces

A few moves later

Find a position in a PGN for game analysis:

Find a position in a PGN

Available Tools

The server provides the following tools:

  • get_board_visualization(): Provides the current state of the chessboard as an image. The board orientation automatically flips based on the user's assigned color.
  • get_turn(): Indicates whose turn it is ('white' or 'black').
  • get_valid_moves(): Lists all legal moves for the current player in UCI notation (e.g., 'e2e4', 'g1f3'). Returns an empty list if the game is over.
  • make_move(move_san: str): Makes a move on the board using Standard Algebraic Notation (SAN) (e.g., 'e4', 'Nf3', 'Bxe5'). Returns the move in SAN and UCI, the new board FEN, and game status.
  • new_game(user_plays_white: bool = True): Starts a new game, resetting the board. By default, the user plays white. Sets the user's color for board orientation. Returns a confirmation message.
  • find_position_in_pgn(pgn_string: str, condition: str): Finds the first board position in a PGN string matching a condition (e.g., "bishop on a3") and returns an image of that board state. The condition format is "piece_type on square_name". Valid piece types are "pawn", "knight", "bishop", "rook", "queen", "king".

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.