Chess MCP Server
Click on "Deploy 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., "@Chess MCP ServerAnalyze the current board and suggest the best move"
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.
Chess MCP Server
A Model Context Protocol (MCP) server that enables AI assistants to play and analyze chess games.
Overview
This MCP server provides chess functionality through the Model Context Protocol, allowing AI assistants like Claude to:
Play chess games with proper move validation
Analyze positions and suggest moves
Track game state and history
Support standard chess notation
Related MCP server: trello-mcp
Installation
Prerequisites
Python 3.8 or higher
uvxpackage runner
Setup
Add the following configuration to your MCP settings file (typically claude_desktop_config.json):
{
"mcpServers": {
"chess": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/chatkausik/Chess-mcp-server-build.git",
"chess"
]
}
}
}Configuration File Location
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Usage
Once configured, the chess server will be available to Claude through the MCP protocol. You can:
Start a new game: Ask Claude to begin a chess game
Make moves: Use standard algebraic notation (e.g., "e4", "Nf3", "O-O")
Analyze positions: Request analysis of the current board state
Review game history: View previous moves and positions
Features
βοΈ Full chess rule implementation
β Move validation and legal move generation
π Position evaluation and analysis
π Game history tracking
π― Support for standard chess notation
π Game state persistence during session
Example Interactions
User: Let's play chess. I'll be white.
Claude: I'll start a new game. Make your first move!
User: e4
Claude: Good opening! I'll respond with e5.
User: Analyze the position
Claude: [Provides analysis of current board state]Development
Repository
Source code: https://github.com/chatkausik/Chess-mcp-server-build
Contributing
Contributions are welcome! Please feel free to submit issues or pull requests to the GitHub repository.
Technical Details
This server uses:
MCP Protocol: Model Context Protocol for AI integration
Python Chess Library: For game logic and validation
uvx: For package execution and management
Troubleshooting
If you encounter issues:
Ensure
uvxis installed and accessible in your PATHVerify the configuration file is in the correct location
Restart Claude after making configuration changes
Check that you have an active internet connection for initial installation
License
Please refer to the repository for license information.
Support
For bugs, feature requests, or questions, please open an issue on the GitHub repository.
Made with βοΈ by the chess MCP community
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. The word 'public' implies read-only access and no authentication, which is useful behavioral context. However, it does not disclose rate limits, error behavior, or response shape, so transparency is only minimal.
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 concise sentence with no wasted words. The action and resource are front-loaded, 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?
For a simple one-parameter read-only lookup, the description is adequate for invocation. However, with no output schema or sibling guidance, an agent would not know what the profile contains or why to choose this over get_chess_player_stats, leaving notable gaps.
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 schema has 0% description coverage, and the only parameter, 'username', is documented only by its name and type. The description's phrase 'by username' confirms the parameter's role but adds no format, validation, or additional meaning beyond what the schema already shows.
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 the exact resource ('public profile for a Chess.com player') with the lookup mechanism ('by username'). It is specific and unambiguous, though it does not explicitly differentiate from the sibling tool get_chess_player_stats beyond the resource type itself.
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 about when to use this tool versus get_chess_player_stats. There are no conditions, exclusions, or alternative scenarios mentioned, leaving the agent to infer selection purely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_chess_player_statsB
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?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'get' which implies a read operation, but it gives no detail about required authentication, rate limits, response behavior, or any side effects. This is thin for a remote API tool.
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 economical sentence, with the key action and resource front-loaded. There is no unnecessary repetition or padding.
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 single-parameter read tool with no output schema, the description provides the minimum needed to understand the core call. However, it lacks any context about what 'stats' include, whether there are any prerequisites, or how this differs from the sibling tool, leaving some gaps for a fully informed decision.
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 confirms that the single parameter 'username' is the player's Chess.com username, adding a small amount of meaning beyond the schema's bare property title. However, with 0% schema description coverage, it does not elaborate on expected format, case sensitivity, or potential validation, so the added value is limited.
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 states a specific verb ('get'), resource ('stats'), and scope ('by username'), making the function clear. It is distinguishable from the sibling tool get_chess_player_profile because 'stats' and 'profile' are different resources, though the sibling is not explicitly referenced.
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 given on when to use this tool versus get_chess_player_profile, and there are no exclusions or alternative routing. The only usage cue is the implicit difference between 'stats' and 'profile', which is left for the agent to infer.
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.
2 tool updates
v0.1.0- First observed
get_chess_player_profile - First observed
get_chess_player_stats
TDQS
Scored across 2 tools
The two tools target distinct aspects of a player: profile (general info) and stats (performance metrics). While both relate to a single player, they are clearly differentiated by their descriptions and purpose. There is minimal risk of confusion.
Both tools follow a consistent verb_noun pattern: get_chess_player_profile and get_chess_player_stats. The naming is uniform, predictable, and clearly indicates the resource and action.
With only 2 tools, the server feels minimal, but it does cover two core capabilities. The count is borderline per the rubricβit's not trivial, but it's on the lower end of acceptable for a focused server.
The tool surface is severely limited for a chess domain. Obvious missing operations include fetching games, looking up leaderboards, or searching players. Agents would need many additional tools to perform common chess-related tasks, leaving significant gaps.
Maintenance
Related MCP Connectors
Chess MCP for Claude: engine analysis, attack maps, game review. One URL, no install.
- mcp-serverOAuthcom.make
Give your AI agents the tools to build, manage, and run automation workflows.
Deterministic reasoning stack for AI agents: simulate, decide & compute, plus cross-domain tools.
- bluffnetOAuthgg.bluffnet
Live Texas Hold'em for AI agents. The tools teach the rules; the bluffing is up to your model.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage calendars and tasks through natural language, supporting Google Calendar operations like event creation, availability checking, and smart scheduling. It features schedule analysis, task reminders, and meeting time recommendations to streamline productivity.-
- FlicenseAqualityDmaintenanceEnables AI assistants to manage Trello boards, lists, cards, comments, checklists, labels, and members through natural language.16-
- FlicenseNot gradedqualityDmaintenanceProvides AI assistants with access to Google Workspace APIs including Sheets, Calendar, Gmail, Tasks, Drive, and Docs. Enables full CRUD operations and management of Google services through natural language.1-
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to interact with Trello boards, cards, lists, and more through a standardized interface.-