Play chess with an LLM, inspect board images, validate moves, and locate PGN positions by piece and square.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag โ we're steadily working through the catalog.
๐ก Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by MCP Chess.
The jiayao/mcp-chess MCP server exposes a chessboard that an LLM can use to play a game, inspect the current position, and analyze selected positions from PGN text. A new game can assign the user either white or black, and the board visualization changes orientation based on that assignment.
The server maintains the current game state and reports whose turn it is. It also prevents move selection from being purely free-form by exposing the legal moves available to the current player. When the game ends, the legal-move result is empty.
The tool set separates position inspection, move generation, game control, and PGN lookup:
get_board_visualization() returns the current chessboard as an image.get_turn() reports white or black.get_valid_moves() lists legal moves in UCI notation, such as e2e4 or g1f3.make_move(move_san) applies a move written in Standard Algebraic Notation, such as e4, Nf3, or Bxe5. Its response includes the move in SAN and UCI, the resulting FEN, and the game status.new_game(user_plays_white) resets the board and sets the userโs color. The default is white.find_position_in_pgn(pgn_string, condition) searches a PGN for the first position matching a piece-and-square condition, such as a bishop on a3, and returns an image of that position.The PGN condition uses one of the supported piece types: pawn, knight, bishop, rook, queen, or king. This makes the position-search tool suitable for targeted inspection rather than general PGN querying.
The jiayao/mcp-chess MCP server is configured as a command-based MCP server using uvx and the mcp-chess package. Add an entry like this to the MCP client configuration:
After the server is available to the client, start a game with new_game, inspect the board and turn, and use SAN with make_move. The README does not specify client-specific setup beyond adding this server entry to an MCP configuration.
The jiayao/mcp-chess MCP server documents chess gameplay and PGN position lookup, but it does not describe engine evaluation, best-move recommendations, clocks, multiplayer networking, or persistent game storage. PGN lookup returns the first position matching the supplied condition, so it is not presented as a tool for returning every matching position.
Move input must use SAN, while legal-move output uses UCI notation. Applications or prompts integrating the tools should account for that difference. The documented PGN condition format is limited to a piece type followed by on and a square name.
Factual signals from GitHub, npm, and our automated checks โ not a rating.
No reviews yet โ be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/jiayao-mcp-chess)<a href="https://allmcps.com/mcp/jiayao-mcp-chess"><img src="https://allmcps.com/api/badge/jiayao-mcp-chess?style=directory" alt="MCP Chess on AllMCPs" /></a>