Back to Catalog

mcp-chess

jiayao/mcp-chess
🔗 Latest commit:e439d46
🕒 Updated:Sep 9, 2025, 01:06 PM
Python
Gaming

MCP server for playing chess against AI

MCP Trust Score
Based on our comprehensive evaluation criteria
🤖 Evaluated by gemini-2.5-flashFix
Trust Score38/100
GitHub Metrics
Repository statistics and activity
⭐ GitHub Stars:13
👥 Contributors:1
📋 Total Issues:2
📦 Has Releases:No
🔧 Has CI/CD Pipeline:No
Configuration
Configuration example extracted from README.md for Claude Desktop and other clients.
🤖 Evaluated by gemini-2.5-flashFix
{
  "mcp-chess": {
    "command": "uvx",
    "args": [
      "mcp-chess"
    ],
    "env": {}
  }
}
MCP Protocol Support
Implemented MCP protocol features
🤖 Evaluated by gemini-2.5-flashFix
Tools:
Prompts:
Resources:
Sampling:
Roots:
Logging:
STDIO Transport:
HTTP Transport:
OAuth2 Auth:
Dependencies
5 dependencies
Libraries and frameworks used by this MCP server
🤖 Evaluated by gemini-2.5-flashFix
Add Quality Badge
Show your MCP trust score in your README
Trust Score Badge
[![Trust Score](https://archestra.ai/mcp-catalog/api/badge/quality/jiayao/mcp-chess)](https://archestra.ai/mcp-catalog/jiayao__mcp-chess)
README.md

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".