Open-Source MCP Server for Chess.com API

Sort:
pab1it0

I recently built chess-mcp, an open-source MCP server for Chess.com's Published Data API. It allows users to access player stats, game records, and more without authentication.

Features:

  • Fetch player profiles, stats, and games.

  • Search games by date or player.

  • Explore clubs and titled players.

  • Docker support for easy setup.

This project combines my love for chess (reignited after The Queen’s Gambit) and tech. Contributions are welcome—check it out and let me know your thoughts!

👉 GitHub Repo

Would love feedback or ideas for new features!

thundertoad2379

cool

AphixJS

Very cool, thanks for sharing

Arman_Yak

Very nice!
The only thing missing for me -- Published Data API isn't working properly for live Titled Tuesdays... 
Let's hope Chess.com will work on this

chess96090

how to do I use it

pab1it0

You can review the Usage part in the README file:
https://github.com/pab1it0/chess-mcp?tab=readme-ov-file#usage

 

Usage

Docker (Recommended)

The easiest way to run chess-mcp with Claude Desktop is using Docker.

Edit your Claude Desktop config file:

  • Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Then add the following configuration:

{
  "mcpServers": {
    "chess": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "pab1it0/chess-mcp"
      ]
    }
  }
}
 

Running with UV

Alternatively, you can run the server directly using UV. Edit your Claude Desktop config file (locations listed above) and add the server configuration:

{
  "mcpServers": {
    "chess": {
      "command": "uv",
      "args": [
        "--directory",
        "<full path to chess-mcp directory>",
        "run",
        "src/chess_mcp/main.py"
      ]
    }
  }
}
 

Note: if you see Error: spawn uv ENOENT in Claude Desktop, you may need to specify the full path to uv or set the environment variable NO_UV=1 in the configuration.