BetterChess
Server Details
Chess MCP for Claude: engine analysis, attack maps, game review. One URL, no install.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
4 toolschess_analyseAnalyse a chess positionARead-onlyInspect
Returns an engine evaluation of a chess position: the strongest candidate moves with their scores, and the position's checkable facts — side to move, whether that side is in check, undefended pieces and the pieces attacking them, and the material balance. Accepts a FEN, a PGN, or a list of SAN moves from the starting position. Also reports what the OPPONENT would play if it were their turn, which is the difference between a position being quiet and merely looking quiet. Pass considering with a move you are thinking of playing and it returns what that move actually walks into — a losing move is usually not in the top candidates, so asking about it directly is the only way to find out.
| Name | Required | Description | Default |
|---|---|---|---|
| fen | No | FEN of the position. | |
| pgn | No | PGN; the position after the final move is used. | |
| moves | No | SAN moves from the start, e.g. ["e4","e5"]. | |
| traps | No | Also scan the captures and checks available to the side to move and return the ones that lose, each with its refutation. Slower — several extra searches. | |
| multipv | No | How many candidate moves (1-5, default 3). | |
| considering | No | A move you are thinking of playing, in SAN, e.g. "Ng5". Returns the evaluation after it and the line that refutes it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only nature is known. The description goes further by disclosing nuanced behavior: it returns what the opponent would play, explains that a losing move may not appear among top candidates (making direct inquiry necessary), and warns that the traps option is slower due to extra searches. No contradictions with 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 longer than average but each sentence earns its place: it lists outputs, accepted inputs, the opponent-response feature, and the considering-mode use case. Structure is logical with a flow from general function to specific parameter guidance. Slight redundancy in explaining the considering mode twice, but overall efficient for the tool's complexity.
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 6 optional parameters and no output schema, the description sufficiently explains inputs, behavior, and expected return contents. It covers all parameter use cases, explains edge-case behavior (losing moves not top-ranked), and clarifies the traps option's performance cost. An agent can confidently select and invoke this tool based on the description alone.
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?
Schema description coverage is 100%, so the baseline is 3. The description adds context for the 'considering' parameter ('what that move actually walks into') and the 'traps' behavior, but this largely reiterates schema descriptions. It does not add new parameter semantics beyond what the schema already provides; it stays at baseline.
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 opens with a specific verb ('Returns an engine evaluation') and resource ('a chess position'), then enumerates concrete outputs: candidate moves with scores, checkable facts, opponent response, and a considering-mode. This clearly distinguishes it from sibling tools like chess_review or chess_attacks by focusing on quantitative engine analysis rather than review or attack visualization.
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 explains when to use the 'considering' parameter (to test a move you're thinking of) and mentions the value of checking opponent responses. It implies the general use case of analyzing a position, but does not explicitly contrast with sibling tools or state when not to use this tool. The guidance is clear but incomplete regarding alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chess_attacksWhat a piece attacksARead-onlyInspect
Returns the exact list of squares attacked by the piece standing on a given square in a chess position, together with that piece's type and colour. Returns an empty list when the square is unoccupied. Accepts a FEN, a PGN, or a list of SAN moves from the starting position.
| Name | Required | Description | Default |
|---|---|---|---|
| fen | No | FEN of the position. | |
| pgn | No | PGN; the position after the final move is used. | |
| moves | No | SAN moves from the start, e.g. ["e4","e5"]. | |
| square | Yes | The square, e.g. "d5". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true, and the description adds meaningful behavioral detail: unoccupied squares return an empty list, output includes piece type and colour, and the accepted position formats are disclosed. No contradiction with the read-only annotation exists.
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?
Two tightly written sentences front-load the core result and the key edge case, then list accepted input formats. Every sentence earns its place and there is no filler or redundant restatement of the tool name.
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 description is complete for a simple computation tool: it explains the return value and the empty-list case, which is especially important because there is no output schema. It names all three position input types, though it does not specify what happens if multiple position arguments are supplied or what the default starting position is.
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?
Schema description coverage is 100%, so the baseline is 3. The description adds context by naming FEN, PGN, and SAN moves as the position inputs and noting that SAN moves begin from the starting position. However, 'square' semantics are left to the schema's example, and the description does not significantly deepen parameter understanding.
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 opens with a specific verb—'Returns the exact list of squares attacked'—and names the resource: the piece standing on a given square. It also includes return details (piece type and colour) and edge-case behavior, making its purpose unmistakable and distinct from the broader chess_analyse and chess_review siblings.
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: use this when you need the squares a particular piece attacks. It also states the accepted input formats (FEN, PGN, or SAN moves), which helps with input preparation. However, it never explicitly compares this tool to chess_analyse or chess_review, nor gives when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chess_reviewReview a game for turning pointsARead-onlyInspect
Replays a finished game ply by ply with the engine and returns the moves where the evaluation swung by more than a threshold (default 1.5 pawns). Each entry gives the move number, the side that moved, the move played, the engine's preferred move, the size of the swing in pawns, the evaluation before and after, and the FEN of the resulting position. Accepts a PGN or a list of SAN moves, and can be filtered to one colour. Long games are truncated at 60 plies.
| Name | Required | Description | Default |
|---|---|---|---|
| pgn | No | The finished game as PGN. | |
| moves | No | Or SAN moves from the start. | |
| colour | No | "white" or "black" — whose mistakes to report. Default both. | |
| threshold | No | Swing in pawns that counts as a turning point. Default 1.5. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and openWorldHint annotations, the description discloses substantial behavioral traits: the threshold default, the 60-ply truncation, the exact per-entry output composition, and the accepted input formats and colour filter. These details are not available in the annotations and are highly relevant to invoking the tool correctly. The description is fully consistent with the 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 arranged efficiently: core behavior first, then return format, then input and limitation details. It is three sentences with no filler and no unnecessary repetition of schema content. Every clause contributes new, useful information for an agent.
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 there is no output schema, the description fully accounts for return values by listing every field in each entry. It also covers both accepted input representations, optional colour filtering, the threshold behavior, and the truncation limit. This is a complete picture for a read-only analysis 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 schema already provides 100% parameter coverage with descriptions for pgn, moves, colour, and threshold, so the description does not need to re-document them. The description adds a little context, such as the input alternatives and colour filtering, but mostly restates behavior rather than clarifying individual parameter semantics. This matches the baseline for high schema 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 contains a specific verb and resource ('Replays a finished game... returns the moves where the evaluation swung'), which makes the tool's purpose exact and easily distinguishable from the sibling tools. It also enumerates the returned fields, so an agent knows precisely what 'review' produces without needing the schema.
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 choose chess_review over the sibling tools chess_analyse or chess_attacks. It neither names alternatives nor states exclusions, leaving the agent to infer usage solely from the task wording. This is a clear gap given the sibling list is available for routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chess_rigThe live-coach page rigARead-onlyInspect
Returns the JavaScript source of the in-page coaching rig for a chess.com bot game, to be run in that page by the browser's javascript tool. Once running, the page exposes window.__coachWait(ms) (resolves with events and board status), window.__coachWatch.status() (moves, fen, turn, myTurn, result) and window.__coach (beginDraw, play, dashed, label, step, say) for drawing on the board. Also returns the rig version and the URL of the chess.com bot surface.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, and the description adds valuable context: it returns runnable JavaScript rather than directly performing actions, and it explains the resulting window API the agent can use. This goes beyond the schema and annotations without contradicting them.
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 front-loaded with the core action ('Returns the JavaScript source...') and every subsequent clause adds necessary operational detail: where to run it, what globals become available, and what auxiliary data is returned. There is no filler or 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?
For a zero-parameter, read-only tool with no output schema, the description fully covers what is returned, where it should be executed, the exposed functions and their purposes, and additional return values. An agent has enough information to select and invoke the tool correctly.
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 and schema coverage is 100%, so there is no parameter ambiguity to resolve. The baseline 4 applies because the description appropriately focuses on the return value and runtime behavior rather than parameter details.
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 identifies the deliverable (JavaScript source), the target context (chess.com bot game in-page coaching rig), and the execution environment (browser's javascript tool). This makes it easy to distinguish from sibling tools like chess_analyse and chess_review, which likely analyze positions rather than install a page rig.
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?
It explicitly states when to use the tool: for a chess.com bot game, to be run in that page via the browser javascript tool. It doesn't explicitly mention alternatives or exclusion conditions, so it falls short of a 5, but the intended usage context is clear.
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
- Changed
chess_analyse1 field changed- added
Input schema / properties / trapsAdded value: +{ + "description": "Also scan the captures and checks available to the side to move and return the ones that lose, each with its refutation. Slower — several extra searches.", + "type": "boolean" +}
- Added
chess_rig
1 tool update
- Changed
chess_analyse1 field changed- added
Input schema / properties / consideringAdded value: +{ + "description": "A move you are thinking of playing, in SAN, e.g. \"Ng5\". Returns the evaluation after it and the line that refutes it.", + "type": "string" +}
3 tool updates
- First observed
chess_analyse - First observed
chess_attacks - First observed
chess_review
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Teamfight Tactics data & AI coaching for Claude and ChatGPT — 19 tools, built-in Riot key.
Private persistent memory for Claude, ChatGPT & Gemini via MCP - semantic search, zero-code setup.
MCP-native notes and memory for ChatGPT, Claude, and other AI tools.
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceChess.com player, game, and daily-puzzle tools where each tool ships its own interactive React view — board replays and a playable puzzle widget, not just text. Built with Skybridge for ChatGPT & Claude.202ISC
- FlicenseNot gradedqualityBmaintenanceEnables Claude Code to control a real browser using AI for web scraping, competitive intelligence, and UX auditing through the MCP protocol.-
- AlicenseAqualityFmaintenanceMCP server for AI Diagram Maker — generate software engineering diagrams from natural language, code, ASCII diagram, images, or Mermaid. Inline diagram rendering using MCP apps UI and diagram URL in responses. Works with Cursor, Claude Desktop, Claude Code, and any MCP-compatible AI.5568MIT
- FlicenseNot gradedqualityAmaintenanceConnects Claude Desktop to Foundry VTT for AI-powered campaign management, enabling natural language interaction with game data including quest creation, character management, compendium searches, and dice rolling. Provides 20 MCP tools for seamless integration between Claude and your tabletop RPG sessions.66-
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool has a clearly distinct purpose: analyse evaluates positions, attacks lists attacked squares, review replays games for blunders, and rig generates coaching script. No ambiguity between them.
All tools share the 'chess_' prefix, and the suffixes are short and meaningful. There is a slight mix of verb-like and noun-like suffixes (analyse, attacks, review, rig), but the pattern is still predictable and readable.
Four tools is appropriate for a chess analysis server, covering analysis, tactics, game review, and a special integration rig. Not too many, not too few, though it might feel slightly minimal for broader chess workflows.
The core analysis functions are present: position evaluation, attack squares, game review, and a browser rig. Missing features like move legality checks or board state retrieval are minor gaps that don't block primary use cases.