Skip to main content
Glama
CyprianFusi

MCP Chess Server

by CyprianFusi

MCP Chess Server

By

A Model Context Protocol (MCP) server that provides Chess.com player data integration. This server allows AI assistants like Claude to fetch real-time chess player profiles and statistics from Chess.com's public API.

Screenshots

UI Screenshot 1 UI Screenshot 2 UI Screenshot 3 UI Screenshot 4 UI Screenshot 5

Features

  • Player Profile Lookup: Get detailed profile information for any Chess.com player

  • Player Statistics: Retrieve comprehensive statistics including ratings, game counts, and performance metrics

  • Error Handling: Robust error handling for API requests with detailed error messages

  • Type Safety: Full type hints for better code quality and IDE support

Installation

Prerequisites

  • Python >= 3.13

  • uv (recommended) or pip for package management

Setup

  1. Clone the repository:

git clone https://github.com/CyprianFusi/mcp-chess-server.git
cd mcp_chess_server
  1. Install dependencies using uv:

uv sync

Or using pip:

pip install -e .

Usage

Running the Server

The server can be run directly using the installed command:

chess

Or via Python module:

python -m chess.server

Integration with Claude Desktop

To use this MCP server with Claude Desktop, add the following configuration to your Claude Desktop config file:

For MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json For Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "chess": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/mcp_chess_server",
        "run",
        "chess.py"
      ]
    }
  }
}

Replace /path/to/mcp_chess_server with the actual path to your installation directory.

Alternatively, you can also integrate it directly from Github by updating claude desktop as follows:

"chess": {
	"command": "uvx",
	"args": [
		"--from",
		"git+https://github.com/CyprianFusi/mcp-chess-server.git",
		"chess.py"
	]
}

If this is your first MCP server then use this instead:

{
  "mcpServers": {
	"chess": {
		"command": "uvx",
		"args": [
			"--from",
			"git+https://github.com/CyprianFusi/mcp-chess-server.git",
			"chess.py"
		]
	}
  }
}

Available Tools

1. get_chess_player_profile

Retrieves the public profile for a Chess.com player.

Parameters:

  • player_name (str): The Chess.com username

Returns:

  • Player profile information including:

    • Username

    • Player ID

    • URL

    • Name (if public)

    • Country

    • Location

    • Join date

    • Last online timestamp

    • Followers count

    • And more...

Example:

Get the profile for player "hikaru"

2. get_chess_player_stats

Retrieves comprehensive statistics for a Chess.com player.

Parameters:

  • player_name (str): The Chess.com username

Returns:

  • Player statistics including:

    • Current ratings for all game types (blitz, bullet, rapid, daily, etc.)

    • Best ratings

    • Win/loss/draw records

    • Tactics rating

    • Lessons stats

    • Puzzle rush scores

Example:

Get the stats for player "magnuscarlsen"

Project Structure

mcp_chess_server/
├── src/
│   └── chess/
│       ├── __init__.py       # Package initialization
│       ├── server.py         # MCP server implementation
│       └── chess_api.py      # Chess.com API client
├── assets/                   # Screenshots and images
├── main.py                   # Entry point (legacy)
├── pyproject.toml           # Project configuration
├── uv.lock                  # Dependency lock file
└── README.md                # This file

Dependencies

  • mcp[cli] (>=1.22.0): Model Context Protocol framework

  • requests (>=2.32.5): HTTP library for API calls

  • openai (>=2.8.1): OpenAI Python client

API Reference

This server uses the Chess.com Public API (https://api.chess.com/pub). No API key is required as it uses publicly available endpoints.

Error Handling

The server includes comprehensive error handling:

  • Network timeouts (10 second timeout on requests)

  • HTTP error responses

  • Invalid player names

  • API downtime

All errors are properly propagated with descriptive messages to help diagnose issues.

Development

Running Tests

# Install development dependencies
uv sync --dev

# Run tests (when available)
pytest

Code Quality

The codebase follows Python best practices:

  • Type hints for all functions

  • Comprehensive docstrings

  • PEP 8 style guidelines

  • Error handling on all API calls

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is open source and available under the MIT License.

Acknowledgments

Support

For issues, questions, or contributions, please open an issue on the GitHub repository.

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/CyprianFusi/mcp-chess-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server