by pab1it0
chess-mcp is a Model Context Protocol (MCP) server that provides AI assistants with standardized access to public data from Chess.com, enabling easy search and analysis of chess-related information.
chess-mcp is a Model Context Protocol (MCP) server designed to provide AI assistants with access to public data from Chess.com. It acts as an intermediary, translating Chess.com's Published Data API into standardized MCP interfaces, enabling AI to easily search and analyze chess-related information.
chess-mcp can be run in two primary ways:
Ensure Docker is installed on your system.
Edit your Claude Desktop configuration file (located at ~/Library/Application Support/Claude/claude_desktop_config.json
on Mac, %APPDATA%/Claude/claude_desktop_config.json
on Windows, or ~/.config/Claude/claude_desktop_config.json
on Linux).
Add the following JSON configuration to mcpServers
:
{
"mcpServers": {
"chess": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"pab1it0/chess-mcp"
]
}
}
}
Install uv
by running: curl -LsSf https://astral.sh/uv/install.sh | sh
Create a virtual environment and install dependencies:
uv venv
source .venv/bin/activate # On Unix/macOS
.venv\Scripts\activate # On Windows
uv pip install -e .
Edit your Claude Desktop configuration file (locations listed above).
Add the following JSON configuration to mcpServers
:
{
"mcpServers": {
"chess": {
"command": "uv",
"args": [
"--directory",
"<full path to chess-mcp directory>",
"run",
"src/chess_mcp/main.py"
]
}
}
}
uv pip install -e ".[dev]"
), you can run tests using pytest
or pytest --cov=src --cov-report=term-missing
for a coverage report.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
The list of tools is configurable, so you can choose which tools you want to make available to the MCP client.
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:
~/Library/Application Support/Claude/claude_desktop_config.json
%APPDATA%/Claude/claude_desktop_config.json
~/.config/Claude/claude_desktop_config.json
Then add the following configuration:
{
"mcpServers": {
"chess": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"pab1it0/chess-mcp"
]
}
}
}
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 touv
or set the environment variableNO_UV=1
in the configuration.
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 .
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
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.comget_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.comget_club_profile
- Get information about a club on Chess.comget_club_members
- Get members of a club on Chess.comMIT
Reviews feature coming soon
Stay tuned for community discussions and feedback