Skip to main content
Glama
aidanouckama

Chess MCP Server

by aidanouckama

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.0

  • Disambiguation5/5

    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.

    Naming Consistency4/5

    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.

    Tool Count5/5

    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.

    Completeness4/5

    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.

  • Average 4.1/5 across 8 of 8 tools scored. Lowest: 3.4/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.

    If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.

    MCP servers without a LICENSE cannot be installed.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

    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.

    Conciseness4/5

    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.

    Completeness3/5

    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.

    Parameters4/5

    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.

    Purpose5/5

    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.

    Usage Guidelines2/5

    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.

  • Behavior2/5

    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.

    Conciseness5/5

    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.

    Completeness3/5

    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.

    Parameters4/5

    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.

    Purpose5/5

    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.

    Usage Guidelines3/5

    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.

  • Behavior4/5

    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.

    Conciseness4/5

    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.

    Completeness4/5

    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.

    Parameters4/5

    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.

    Purpose5/5

    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.

    Usage Guidelines3/5

    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.

  • Behavior4/5

    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.

    Conciseness5/5

    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.

    Completeness4/5

    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.

    Parameters4/5

    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.

    Purpose5/5

    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.

    Usage Guidelines3/5

    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.

  • Behavior4/5

    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.

    Conciseness5/5

    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.

    Completeness5/5

    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.

    Parameters4/5

    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.

    Purpose5/5

    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.

    Usage Guidelines3/5

    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.

  • Behavior4/5

    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.

    Conciseness5/5

    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.

    Completeness4/5

    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.

    Parameters5/5

    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.

    Purpose5/5

    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.

    Usage Guidelines3/5

    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.

  • Behavior3/5

    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.

    Conciseness4/5

    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.

    Completeness4/5

    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.

    Parameters4/5

    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.

    Purpose5/5

    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.

    Usage Guidelines5/5

    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.

  • Behavior3/5

    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.

    Conciseness5/5

    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.

    Completeness4/5

    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.

    Parameters4/5

    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.

    Purpose5/5

    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.

    Usage Guidelines5/5

    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.

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

chess-mcp MCP server

Copy to your README.md:

Score Badge

chess-mcp MCP server

Copy to your README.md:

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/aidanouckama/chess-mcp'

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