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.
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
Retrieve player profiles and statistics.
Access player game archives and download PGN files.
Get information on titled players and chess clubs.
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 a player profile from Chess.com
Get player statistics from Chess.com
Check if a player is online on Chess.com
Get a list of titled players from Chess.com
Get current games for a player on Chess.com
Get player games for a specific month from Chess.com
Get a list of available monthly game archives for a player on Chess.com
Download PGN files of all games for a specific month from Chess.com
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 ENOENTin Claude Desktop, you may need to specify the full path touvor set the environment variableNO_UV=1in 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.comget_player_stats- Get a player's stats from Chess.comis_player_online- Check if a player is currently online on Chess.comget_titled_players- Get a list of titled players from Chess.com
Games
get_player_current_games- Get a player's ongoing games on Chess.comget_player_games_by_month- Get a player's games for a specific month from Chess.comget_player_game_archives- Get a list of available monthly game archives for a player on Chess.comdownload_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.comget_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.