Chess MCP Server
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., "@Chess MCP ServerStart a new chess game and show me the board."
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 chess against users. The server provides tools for managing chess games, making moves, evaluating positions, and visualizing the board.
Features
Game Management: Create new games, get board state, visualize positions
Move Validation: Validate moves before making them
AI Opponent: Play against Stockfish chess engine
Position Evaluation: Get engine evaluation of positions
Move History: Track moves with undo functionality
Board Visualization: ASCII art board representation
Related MCP server: Chess MCP
Requirements
Python 3.11 or higher
uv package manager
Stockfish chess engine (included in
server/bin/stockfish/)
Installation
Clone the repository:
git clone <repository-url>
cd chess-mcpInstall dependencies and the package:
uv syncThis will:
Create a virtual environment
Install all dependencies (including
mcpandchess)Install the package in editable mode
Running the Server
Using the Entry Point
After installation, you can run the server using:
uv run chess-mcpRunning as a Module
Alternatively, you can run it as a Python module:
uv run -m server.mainThe server runs on stdio transport, which means it communicates via standard input/output. This is the standard way MCP servers interact with clients.
Configuration for MCP Clients
Claude Desktop
To use this server with Claude Desktop, add the following to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"chess-game": {
"command": "uv",
"args": [
"run",
"chess-mcp"
],
"cwd": "/path/to/chess-mcp"
}
}
}Replace /path/to/chess-mcp with the absolute path to this project directory.
Other MCP Clients
For other MCP clients, configure them to run:
uv run chess-mcpMake sure the working directory is set to the project root.
Available Tools
The server provides the following MCP tools:
Game State
new_game_tool: Creates a new chess gameget_state_tool: Returns the current board state in FEN formatvisualize_board_tool: Returns an ASCII art visualization of the board
Moves
make_move_tool(move: str): Makes a move in UCI format (e.g., "e2e4")ai_make_move_tool: Makes a move using the AI opponentundo_move_tool: Undoes the last move
Validation
validate_move_tool(move: str): Validates if a move is legal
Analysis
evaluate_board_tool: Returns the engine's evaluation of the position in centipawns
Project Structure
appli/
├── server/
│ ├── main.py # MCP server entry point
│ ├── config.py # Configuration (paths, etc.)
│ ├── engine/ # Stockfish engine wrapper
│ ├── storage/ # File I/O and serialization
│ └── tools/ # MCP tool implementations
├── storage/ # Game state storage
│ ├── current_game.fen # Current board position
│ └── move_history.json # Move history for undo
├── tests/ # Test files for tools
├── pyproject.toml # Project configuration
└── README.md # This fileStorage
The server stores game state in the storage/ directory:
current_game.fen: Current board position in FEN notationmove_history.json: List of moves made (for undo functionality)
Development
Running Tests
Install test dependencies:
uv sync --extra devRun tests:
uv run pytestRun tests with coverage:
uv run pytest --cov=server --cov-report=htmlAdding New Tools
Create a function in the appropriate
server/tools/moduleRegister it in
server/tools/registry.pyAdd it to the
register_tools()function
Troubleshooting
Stockfish Not Found
If you get an error about Stockfish not being found:
Check that
server/bin/stockfish/contains the appropriate binary for your platformThe server automatically detects your platform and selects the correct binary
Supported: macOS (Intel/Apple Silicon), Linux, Windows
Import Errors
If you encounter import errors:
Make sure you've run
uv syncto install the packageVerify you're in the project root directory
Check that the virtual environment is activated
Acknowledgments
Uses python-chess for chess logic
Uses Stockfish chess engine
Built with FastMCP for MCP server functionality
Available Tools
8 toolsai_make_move_toolA
Makes a move for the board using the AI. Always use this after the user has made a move.
Shouldn't be used if you have a move in mind already, you should use the make_move_tool instead.
Args:
None
Returns:
The move made by the AI in UCI format
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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. It states 'Makes a move' implying mutation of game state, and specifies the return format. However, it does not explicitly disclose side effects (e.g., board updates, irreversibility) or error conditions. This is adequate but leaves some behavioral traits implicit.
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 three short sentences plus an Args/Returns block. It front-loads the primary purpose, includes essential usage guidance, and has no redundant words. The structure is clean and easy to parse.
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 tool with no parameters and a clear function, the description covers what it does, when to use it, and what it returns. It lacks explicit mention of side effects beyond the move and does not address error cases, but given its simplicity, it is nearly complete. A bit more detail on state changes would make it fully self-contained.
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 tool has 0 parameters, and the description simply says 'Args: None,' matching the empty schema. With zero params, the schema covers everything, so the description does not need to add parameter semantics. Baseline for 0 params is 4.
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 'Makes a move for the board using the AI.' It identifies the specific verb (make), resource (board), and unique mechanism (AI). It also distinguishes from the sibling tool make_move_tool by noting 'Shouldn't be used if you have a move in mind already, you should use the make_move_tool instead.'
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?
Explicit guidance is provided: 'Always use this after the user has made a move' gives a clear condition for use, while 'Shouldn't be used if you have a move in mind already, you should use the make_move_tool instead' states when not to use it and names the alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evaluate_board_toolA
Evaluates the board and returns a score in centipawns.
Positive values favor white, negative values favor black.
Returns a string with the score, or an error message if evaluation fails.
Args:
None
Returns:
A string with the score, or an error message if evaluation fails.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses output sign convention (positive favors white, negative favors black), return type (string), and error behavior. It does not explicitly state side effects, but the evaluation nature implies a read-only operation.
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 concise and front-loaded with the main purpose. However, the return statement 'Returns a string with the score, or an error message if evaluation fails' is repeated in both the intro and the Returns section, causing slight redundancy.
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 tool's simplicity (no parameters, output schema exists), the description covers the essential information: what it does, output semantics, and error handling. It does not mention how evaluation is performed or any prerequisites, but these are not critical for a straightforward evaluation tool.
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 tool has no parameters, and the description explicitly states 'Args: None'. This aligns with the empty input schema, and there is no additional parameter meaning needed beyond the schema coverage of 100%.
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 evaluates the board and returns a score in centipawns, with specific verb ('evaluates'), resource ('board'), and output meaning. This distinguishes it from sibling tools like make_move_tool or get_state_tool, which serve different functions.
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?
Usage is implied by the description ('Evaluates the board') but there is no explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. The description simply states what it does without providing decision context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_state_toolA
Gets the state of the board
Args:
None
Returns:
The state of the board in FEN format
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the verb 'Gets' indicates a read-only operation, but the description does not explicitly state that it has no side effects. It does disclose the return format (FEN), which is additional behavioral context. While minimal, it is sufficient for this straightforward getter.
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 extremely concise, front-loading the purpose in the first sentence. It also includes an Args/Returns structure, which is clean and easy to parse with no redundant information.
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 simplicity of the tool (no parameters, no annotations, straightforward output), the description adequately covers the return format (FEN) and the purpose. The presence of an output schema further reduces the need for additional detail.
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 tool has zero parameters, and the input schema reflects this. The description confirms 'Args: None'. According to the baseline for 0 params, a score of 4 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 uses a specific verb 'Gets' and identifies the resource as 'the board state', further specifying the FEN return format. This clearly distinguishes it from sibling tools like visualize_board_tool or evaluate_board_tool, which provide different views of the board.
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 does not explicitly state when to use this tool relative to alternatives. It implies that one should call it when the current board state is needed, but lacks explicit guidance on when not to use other tools. Given the simplicity of the getter, the usage is fairly obvious but not formally articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_move_toolB
Makes a move for the board. Could be used by the user or the AI.
Args:
move: The move to make in UCI format
Returns:
The new board state
| Name | Required | Description | Default |
|---|---|---|---|
| move | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose side effects. It only says 'Makes a move' and returns the new board state, but it doesn't specify whether moves are validated, how errors are handled, or whether the game state is permanently mutated.
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 short and front-loaded with the main purpose, with args and returns clearly labeled. The phrase 'Could be used by the user or the AI' adds some fluff but is not overly verbose.
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?
The tool has a simple signature and an output schema, so the description doesn't need to detail return values. However, it lacks information about validation and interaction with sibling tools, making it somewhat incomplete for a mutation tool with no annotations.
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 crucial context by stating the move must be in UCI format, which is absent from the schema. However, it doesn't provide an example or elaborate on the format, so it could be more detailed.
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 function with a specific verb ('Makes') and resource ('a move for the board'). It also notes it can be used by the user or AI, which helps differentiate it from ai_make_move_tool.
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 explicit guidance on when to use this tool versus siblings like validate_move_tool or ai_make_move_tool. The only hint is 'Could be used by the user or the AI,' which is vague and doesn't offer exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
new_game_toolA
Creates a new game
Args:
None
Returns:
The new board state in FEN format
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 the action and the return format (FEN), but does not disclose that starting a new game likely discards the current game state or any other side effects. This is a significant gap for a mutation-like operation.
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 extremely concise, leading with the core purpose, then cleanly structured Args and Returns sections. Every word is purposeful, and there is no redundancy or filler.
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 zero-parameter tool, the description provides the essential action and return format. However, it omits important context about side effects (e.g., whether the existing game is reset) and does not mention that this is a state-changing operation. An output schema is present, but the description still needs to cover the reset semantics for completeness.
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?
There are zero parameters, so the baseline is 4. The description explicitly confirms 'Args: None', which adds clarity. No parameter semantics are needed beyond what the empty schema already conveys.
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 'Creates a new game' with a specific verb and resource. It is distinct from all sibling tools (get_state, make_move, etc.) because it is the only one that initializes a new game. The scope is immediately obvious.
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 tool name and description imply use when starting a fresh game, but there is no explicit when/when-not guidance or discussion of alternatives. Given the sibling tools, it is clear when to use this tool, but the description does not state prerequisites or that it replaces the current game state.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
undo_move_toolA
Undoes the last move made on the board.
Can undo both player moves and AI moves.
Args:
None
Returns:
The new board state in FEN format, or an error message if no moves to undo
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It accurately states the return behavior (new board state in FEN format or an error if no moves to undo) and that both player and AI moves are reversible. It does not mention deeper side effects, such as whether undo is limited to the current session or whether it resets AI internal state, but the core behavior is disclosed.
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 extremely concise: three short sentences that front-load the purpose, add scope, and then specify arguments and return format. There is no redundant information or filler.
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 zero-parameter tool with an output schema indicating FEN return, the description is sufficient. It covers the operation scope (player and AI moves) and the error case. It could be slightly more explicit about the irreversible nature of the undo or what happens in an initial board position, but the error message is implied. Overall, it is well-composed for the tool's simplicity.
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 tool has zero parameters, so the baseline is 4. The description explicitly lists 'Args: None,' which adds clarity beyond the empty input schema and confirms no arguments are needed.
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 function: 'Undoes the last move made on the board.' It also specifies it can undo both player and AI moves, distinguishing this from related tools like make_move_tool and ai_make_move_tool. The verb-resource pairing is specific and unambiguous.
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 implies usage (when you want to revert a move) but does not explicitly state when to use this tool over alternatives or provide exclusion criteria. No comparison to sibling tools is given, leaving the agent to infer from the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_move_toolA
Validates a move for the board
Args:
move: The move to validate in UCI format
Returns:
True if the move is valid, False otherwise
| Name | Required | Description | Default |
|---|---|---|---|
| move | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It clearly states the return value (True/False) and the verb 'validates' implies a non-mutating operation. However, it does not explicitly state that the board state is unchanged, which could be ambiguous given sibling tools that perform moves.
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 two short, focused sentences. It uses a clear Args/Returns structure with no filler or redundancy, 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 validation tool, the description covers the input format and return value. It does not explicitly mention that validity is relative to the current board state, but 'for the board' implies this. With a clear output schema presumably present, the description is sufficiently complete.
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 essential meaning to the 'move' parameter by specifying UCI format, which is not present in the schema. It also clarifies the return semantics. This fully compensates for the 0% schema description coverage.
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 with a specific verb ('validates') and resource ('a move for the board'). It is distinct from sibling tools like make_move_tool because it explicitly focuses on validation rather than execution.
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 implies usage for checking move validity, but does not explicitly state when to use this tool versus alternatives (e.g., 'use this before make_move_tool'). No exclusions or alternative references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
visualize_board_toolA
Returns a visual ASCII representation of the current board position.
Shows the board with pieces, ranks, and files for easy reading.
Always use this after moves to display to the user, and don't just leave the response, in your
response to the user, it should include this ascii art within it.
Args:
None
Returns:
A string containing an ASCII art visualization of the board
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals the output format (ASCII string) and that it displays the board, but it does not explicitly state the tool has no side effects or does not modify the game state. Since annotations are absent, this would have been useful, but the read-only nature is strongly implied.
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 short and front-loaded with the core function, but includes a slightly redundant second sentence ('Shows the board...') and a lengthy usage instruction. It's still concise overall, though it could be tightened.
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 simplicity (no params, no annotations, no complex output schema), the description covers purpose, usage, and return value adequately. Minor gaps include missing prerequisites (like an active game), but these are not critical for a board visualization tool.
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 tool has zero parameters, and the description notes 'Args: None.' With no schema to elaborate, the baseline for 0-param tools is 4; the description adds no parameter-level detail because none is needed.
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 returns an ASCII representation of the current board, with specific details about pieces, ranks, and files. This distinguishes it from siblings like make_move_tool or evaluate_board_tool, making the purpose unmistakable.
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 explicitly instructs to use this tool after moves and to include the ASCII art in the response to the user. It also clarifies not to leave the response without the visualization, providing strong when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool clearly targets a distinct operation: game creation, state retrieval, visualization, move validation, move execution, AI move generation, undo, and evaluation. The only potential overlap between make_move and ai_make_move is explicitly differentiated by their descriptions and usage guidance.
Tool names generally follow a verb_noun pattern with a common _tool suffix, making them predictable. Minor deviations include 'new_game' (which is adjective_noun rather than verb_noun) and 'ai_make_move' (which includes a prefix), but these do not significantly harm overall consistency.
With 8 tools, the server is well-scoped for a chess MCP, covering creation, state inspection, moves, AI play, undo, and evaluation. Each tool has a clear purpose, and the count feels appropriate without being bloated or insufficient.
The toolset covers the core chess lifecycle: start a game, view state, validate/make moves (both manual and AI), undo, and evaluate. Minor gaps such as setting AI difficulty or importing arbitrary FEN positions exist, but they are not essential for basic usage and do not cause dead ends.
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
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Create, read and live-edit visual boards, Kanban plans, Gantt timelines and diagrams with AI agents.
Create and manage MeisterTask projects, tasks, and notes from your AI assistant.
Manage Superlist tasks and lists in plain language from any MCP-compatible AI agent.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables chess gameplay and interaction through MCP protocol. Allows users to play chess games, make moves, and manage chess sessions through natural language commands.2
- AlicenseNot gradedqualityDmaintenancePlay interactive chess games through conversation with move validation, Stockfish engine analysis, tactical puzzles, and a visual chess board widget in ChatGPT.202ISC
- AlicenseNot gradedqualityDmaintenanceEnables playing chess games with legal move validation and AI opponent moves powered by the Stockfish engine. Supports multiple concurrent games and provides moves in UCI format.MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to play, analyze, and track chess games with full rule validation and support for standard algebraic notation. It provides tools for position evaluation and game state persistence during user sessions.
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/aidanouckama/chess-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server