MCP Connector

Access Chess.com Player and Game Data

MCP server for Chess.com's public API - player profiles, stats, game archives, PGN downloads, and club data, no auth needed.

Works with chess.com

91
Spark score
out of 100
Updated last month
Version 0.1.0
Models
universal

Add to Favorites

Why it matters

Integrate with Chess.com's public API to retrieve player profiles, game records, and club information. This asset provides standardized interfaces for AI assistants to query and analyze chess data.

Outcomes

What it gets done

01

Retrieve player profiles and statistics.

02

Access player game archives and download PGN files.

03

Get information on titled players and chess clubs.

04

Check player online status.

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/vb-chess-com | bash

Capabilities

Tools your agent gets

get_player_profile

Get a player profile from Chess.com

get_player_stats

Get player statistics from Chess.com

is_player_online

Check if a player is online on Chess.com

get_titled_players

Get a list of titled players from Chess.com

get_player_current_games

Get current games for a player on Chess.com

get_player_games_by_month

Get player games for a specific month from Chess.com

get_player_game_archives

Get a list of available monthly game archives for a player on Chess.com

download_player_games_pgn

Download PGN files of all games for a specific month from Chess.com

+2 tools

Overview

Chess.com MCP Server

An MCP server exposing Chess.com's public Published Data API as tools for player profiles, stats, game archives and PGN downloads, and club information. Use when an assistant needs to look up Chess.com player, game, or club data conversationally, with no authentication required.

What it does

Chess.com MCP Server wraps Chess.com's Published Data API in standardized MCP tools, giving an AI assistant access to public player profiles, stats, game records, club information, and titled-player listings. It requires no authentication, since it only reads Chess.com's public data, and its tool list is configurable so an operator can expose only the subset a given client needs.

When to use - and when NOT to

Use this connector when an assistant needs to look up a Chess.com player's profile or stats, check whether they are currently online, pull their ongoing or past games, download a month's games as PGN, or get information about a club and its members. It is read-only against Chess.com's public API - it cannot play moves, manage a player's own account or settings, or access private/non-public data, and it is scoped to information Chess.com already exposes through its official API rather than scraping the site, and it ships with a Docker image plus a UV-based local run path so it can be deployed either as a container or as a directly-run Python process.

Capabilities

Player tools: get_player_profile, get_player_stats, is_player_online, and get_titled_players. Game tools: get_player_current_games (ongoing games), get_player_games_by_month, get_player_game_archives (list of available monthly archives), and download_player_games_pgn (download a month's games as PGN files). Club tools: get_club_profile and get_club_members.

How to install

Recommended via Docker - add to your Claude Desktop config (claude_desktop_config.json):

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

Alternatively, run it directly with uv:

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

If Claude Desktop reports Error: spawn uv ENOENT, specify the full path to uv or set NO_UV=1 in the configuration. For development, the project uses uv for dependency management (uv venv, uv pip install -e .) and ships a pytest suite runnable with pytest --cov=src --cov-report=term-missing.

Who it's for

Chess players, coaches, and developers building assistants that need conversational access to Chess.com data - checking a player's current stats or online status, reviewing recent games, archiving a month of games as PGN for analysis, or looking up club membership - without writing a direct integration against Chess.com's Published Data API. Because the tool list is configurable, an operator running the server can also restrict a deployment to just the player or club tools it actually needs, keeping the surface exposed to any given MCP client intentionally narrow rather than all-or-nothing.

Source README

Chess.com MCP Server

A Model Context Protocol (MCP) server for Chess.com's Published Data API.

This provides access to Chess.com player data, game records, and other public information through standardized MCP interfaces, allowing AI assistants to search and analyze chess information.

https://github.com/user-attachments/assets/3b33361b-b604-465c-9f6a-3699b6907757

Features

  • Access player profiles, stats, and game records
  • Search games by date and player
  • Check player online status
  • Get information about clubs and titled players
  • No authentication required (uses Chess.com's public API)
  • Docker containerization support
  • Provide interactive tools for AI assistants

The list of tools is configurable, so you can choose which tools you want to make available to the MCP client.

Usage

Docker (Recommended)

The easiest way to run chess-mcp with Claude Desktop is using Docker. If you don't have Docker installed, you can get it from Docker's official website.

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.

Development

Contributions are welcome! Please open an issue or submit a pull request if you have any suggestions or improvements.

This project uses uv to manage dependencies. Install uv following the instructions for your platform:

curl -LsSf https://astral.sh/uv/install.sh | sh

You can then create a virtual environment and install the dependencies with:

uv venv
source .venv/bin/activate  # On Unix/macOS
.venv\Scripts\activate     # On Windows
uv pip install -e .

Testing

The project includes a test suite that ensures functionality and helps prevent regressions.

Run the tests with pytest:

# Install development dependencies
uv pip install -e ".[dev]"

# Run the tests
pytest

# Run with coverage report
pytest --cov=src --cov-report=term-missing

Available Tools

Player Information

  • get_player_profile - Get a player's profile from Chess.com
  • get_player_stats - Get a player's stats from Chess.com
  • is_player_online - Check if a player is currently online on Chess.com
  • get_titled_players - Get a list of titled players from Chess.com

Games

  • get_player_current_games - Get a player's ongoing games on Chess.com
  • get_player_games_by_month - Get a player's games for a specific month from Chess.com
  • get_player_game_archives - Get a list of available monthly game archives for a player on Chess.com
  • download_player_games_pgn - Download PGN files for all games in a specific month from Chess.com

Clubs

  • get_club_profile - Get information about a club on Chess.com
  • get_club_members - Get members of a club on Chess.com

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.