MCP Chess Server
Provides access to Chess.com public player data, including user profiles and statistics such as rating history and performance metrics.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Chess Serverget Magnus Carlsen's rating history"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Chess Server
Overview
This repository provides a Model Context Protocol (MCP) server that exposes Chess.com data through Anthropic's FastMCP framework. The server runs over stdio and can be launched locally or directly from Claude Desktop.
Related MCP server: Chess.com MCP Server
Capabilities
get_chess_player_profile: Returns the public profile for a Chess.com username by callinghttps://api.chess.com/pub/player/{username}viarequests.get_chess_player_stats: Retrieves rating history and performance metrics fromhttps://api.chess.com/pub/player/{username}/stats.
Both tools are registered with FastMCP('Chess.com') in chess.server and are available to any MCP-compatible client once the server is running.
Prerequisites
Python 3.13 or newer
Git
uv for dependency management
Claude Desktop (or another MCP client)
Setup
1. Clone the repository
git clone <your-repo-url>
cd mcp-build-chess2. Install dependencies in editable mode
uv pip install -e .Tip: create an isolated environment with
uv venv .venvand activate it before installing.
3. Validate the server locally
uv run python -m chess.serverThe server will start and wait on stdio. Use Ctrl+C to stop it once you've confirmed it launches without errors.
Claude Desktop Integration
Update claude_desktop_config.json so Claude Desktop can launch the server from this repository:
claude coinfiguration form local
{
"mcpServers": {
"Chess_Server": {
"command": "uv",
"args": [
"--directory",
"W:\\ITversity\\MCP Claude\\code\\mcp-build-chess\\src\\chess",
"run",
"chess"
]
}
}
}##claude configuration from git repo
{
"mcpServers": {
"Chess_Server_git": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/Ramakrishna-Gedala/mcp_chess.git@main",
"chess-server"
]
}
}
}Replace the cwd value with the absolute path to your cloned repository. macOS and Linux users should specify their own path syntax (for example, /Users/you/src/mcp-build-chess). After saving the config, restart Claude Desktop so it picks up the new server configuration.
Available Tools
2 toolsget_chess_player_profileB
Get the public profile for a Chess.com player by username.
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states this retrieves a 'public' profile, which implies read-only access and no authentication requirements, but doesn't address potential rate limits, error conditions, response format, or whether the data is cached. More behavioral context would be helpful given the lack of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part of the sentence contributes directly to understanding what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with one parameter and no output schema, the description is minimally adequate. It covers the basic purpose and parameter meaning, but lacks details on output structure, error handling, or behavioral traits that would be useful given the absence of annotations and output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context for the single parameter by specifying it's a 'username' for a Chess.com player. Since schema description coverage is 0% (the schema only provides a title 'Username' without description), this compensates well by clarifying what the parameter represents, though it doesn't detail format constraints like case sensitivity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and target resource ('public profile for a Chess.com player by username'), making the purpose immediately understandable. It doesn't explicitly distinguish from the sibling tool 'get_chess_player_stats', but the focus on 'profile' versus 'stats' provides implicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus its sibling 'get_chess_player_stats'. The description mentions retrieving a 'public profile', which implies it's for general player information, but there's no explicit comparison or context about alternative use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_chess_player_statsC
Get the stats for a Chess.com player by username.
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'Get[s] the stats' but doesn't clarify what 'stats' includes, whether it's a read-only operation, potential rate limits, authentication needs, or error handling. This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words: 'Get the stats for a Chess.com player by username.' It's front-loaded and efficiently conveys the core action, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'stats' entails, how results are structured, or any behavioral traits like error responses. For a tool with no structured support, more detail is needed to fully guide the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal semantics beyond the input schema, which has 0% description coverage and only one parameter 'username'. It implies the parameter is a Chess.com username but doesn't specify format, constraints, or examples. With low schema coverage, the description doesn't fully compensate, but it's not misleading, so a baseline score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get the stats for a Chess.com player by username.' It specifies the verb ('Get'), resource ('stats'), and target ('Chess.com player'), making it easy to understand. However, it doesn't differentiate from its sibling tool 'get_chess_player_profile', which likely serves a similar but distinct purpose, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as its sibling 'get_chess_player_profile'. It mentions the parameter 'username' but doesn't explain prerequisites, error conditions, or specific contexts for usage, leaving the agent with minimal direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v0.1.0- First observed
get_chess_player_profile - First observed
get_chess_player_stats
TDQS
The two tools have distinct purposes: one retrieves a player's profile (likely general info), and the other retrieves stats (likely performance data). While both target the same resource (a Chess.com player), the actions are clearly differentiated, making misselection unlikely. However, the overlap in domain could cause minor confusion if an agent needs both types of data, but descriptions help clarify.
Both tools follow a consistent verb_noun pattern with 'get_chess_player_' as a prefix, followed by 'profile' or 'stats'. This predictable naming scheme makes it easy for agents to understand and navigate the tool set without ambiguity or mixed conventions.
With only 2 tools, the server feels thin for a chess domain, as it lacks operations like creating games, making moves, or accessing game history. While it might be narrowly scoped to player data retrieval, the limited count suggests incomplete coverage for typical chess-related tasks, bordering on under-scoped.
The tool set is severely incomplete for a chess server, as it only provides read-only access to player data with no ability to interact with games, boards, or other chess elements. There are significant gaps in CRUD/lifecycle coverage, such as missing create, update, or delete operations, which will likely cause agent failures in broader chess-related workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Chess.com MCP — wraps the Chess.com public API (free, no auth)
Lichess public API: players, ratings, eval, tablebase, opening explorer
Chess MCP for Claude: engine analysis, attack maps, game review. One URL, no install.
Roblox public profile + friends + badges + games + groups lookups.
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides Chess.com player data integration, enabling AI assistants to fetch real-time chess player profiles and comprehensive statistics including ratings, game counts, and performance metrics from Chess.com's public API.2MIT
- FlicenseNot gradedqualityDmaintenanceProvides tools to interact with the Chess.com Public API for fetching real-time player profiles and detailed game statistics. It enables LLMs to access information like player ratings, win/loss records, and current online status.-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to explore player profiles, ratings, game archives, leaderboards, clubs, and puzzles via the Chess.com API.1MIT
- -licenseNot gradedqualityNot gradedmaintenanceProvides access to Chess.com's public API, allowing AI assistants to fetch player information and statistics.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Ramakrishna-Gedala/mcp-chess'
If you have feedback or need assistance with the MCP directory API, please join our Discord server