Chess DNA
Server Details
Chess ratings explained, an Elo calculator, and any Chess.com or Lichess player's recent games.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 3 tools
Each tool targets a distinct action: computing an Elo delta, explaining what a rating level means, and summarizing recent games. The only adjacency is between elo_change and rating_meaning (both rating-centric), but the descriptions make the compute-vs-explain split clear enough that misselection is unlikely.
All three names are snake_case descriptive noun phrases (elo_change, rating_meaning, recent_games) with a consistent style and tone. They deviate slightly from a strict verb_noun convention and are entity-first rather than action-first, which is a minor inconsistency but still highly predictable.
Three tools is on the thin side for a server branded around player analysis, even though each does earn its place. The set feels like a narrow slice (math, context, summary) rather than a full surface for the stated purpose.
The surface covers rating math, rating interpretation, and a recent-games summary, but the flagship 'Chess DNA' analysis is only linked out rather than exposed as a tool. Notable gaps remain: no player-vs-player comparison, no per-opening or per-time-control performance breakdown, and no way to retrieve strengths/weaknesses directly.
Available Tools
3 toolselo_changeElo rating change calculatorBRead-onlyInspect
Calculates how many rating points a player wins or loses for a win, draw and loss against an opponent, using the Elo formula. Also returns the expected score.
| Name | Required | Description | Default |
|---|---|---|---|
| k | No | K-factor (default 20; FIDE uses 40 for new players, 20 normally, 10 above 2400) | |
| rating | Yes | The player's rating | |
| opponent | Yes | The opponent's rating |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and openWorldHint=false, consistent with a pure computation, and the description adds that expected score is also returned alongside the three outcome deltas. It does not disclose rounding behavior, the default K of 20, or output structure, so it adds moderate value beyond 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?
Two sentences, front-loaded with the primary purpose and followed by the secondary return value (expected score). No filler or repetition of the name/title.
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 three-parameter calculator with no output schema, the description states both what is computed and what is returned (win/draw/loss deltas plus expected score), which is the key missing piece. Only minor items like rounding and default K are absent, and K is covered by the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the K-factor guidance (FIDE 40/20/10 tiers) is already in the schema, so the schema carries the parameter burden. The description mentions only "rating" and "opponent" implicitly and adds nothing about K-factor or valid rating ranges — baseline 3.
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?
"Calculates how many rating points a player wins or loses for a win, draw and loss" is a specific verb plus a precisely-scoped output, and it names the method (Elo formula). It does not explicitly contrast with siblings rating_meaning or recent_games, but the calculation/result nature is 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?
There is no when-to-use guidance, no mention of the alternative sibling tools, and no statement of preconditions (e.g., that it is a pure offline computation needing no game history). The agent must infer usage entirely from the purpose sentence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rating_meaningWhat does a chess rating mean?ARead-onlyInspect
Explains what a chess rating (Elo, Chess.com or Lichess) means: whether it is good, where it sits among online players, and a link to the full guide for that level. Use for questions like "is 1200 a good chess rating?"
| Name | Required | Description | Default |
|---|---|---|---|
| rating | Yes | The rating, e.g. 1200 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag readOnlyHint=true and openWorldHint=false, so safety is covered; the description adds value by disclosing what comes back (a judgment of whether it is good, a placement among online players, and a link to a level-specific guide), which matters because there is no output schema. The one unaddressed behavior is how the tool decides which rating system (Elo vs Chess.com vs Lichess) a bare integer belongs to.
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?
One crisp sentence describing the output, followed by an example query; the interpretive payload is front-loaded and nothing is padding. Every clause carries information an agent would use to route the call.
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?
With no output schema, the description sensibly narrates the return content, which is the main completeness burden here. What is missing is only the cross-system disambiguation of the rating input, a modest gap for a one-parameter lookup 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?
Schema coverage is 100% and the single integer parameter is fully bounded (100-3500), so the schema does the heavy lifting; baseline 3 applies. The description adds no meaning about the parameter, in particular whether the number is interpreted as Elo, Chess.com, or Lichess, which is a real semantic gap for a rating value.
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?
States a specific verb (explains) and a precise resource (the meaning of a chess rating), and enumerates the rating systems covered (Elo, Chess.com, Lichess). The scope is clearly an interpretive/lookup tool, which is unmistakably distinct from siblings elo_change and recent_games.
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?
Gives a concrete trigger phrase ("is 1200 a good chess rating?") that tells the agent exactly what class of question routes here. It stops short of naming when NOT to use it or pointing at an alternative, though the sibling tools occupy such different territory that confusion is unlikely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recent_gamesA player's recent gamesBRead-onlyInspect
Summarizes a player's recent public games on Chess.com or Lichess: wins, draws and losses, rating trend, results by colour, and most played openings. Links to a free Chess DNA analysis of the player's strengths and weaknesses.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | Which site (default chesscom) | |
| count | No | How many recent games (default 30) | |
| username | Yes | Chess.com or Lichess username |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety and external-network profile is covered. The description adds useful scope detail — only public games are summarized, and a link to an external Chess DNA analysis is returned — but says nothing about failure modes for unknown or private usernames, latency, or rate limits on the upstream sites.
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 sentences, front-loaded with the core summary behavior, with the stat list earning its space by telling the agent what comes back. The trailing sentence about the Chess DNA link is slightly promotional but still conveys a real return-value element.
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 three-parameter, read-only lookup with no output schema, the description adequately conveys both inputs and the shape of the result. The only meaningful omission is behavior when the username is invalid or the profile is private, which matters for an open-world fetch.
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 site, count and username are already documented including defaults, bounds and the enum. The description adds only the implicit notion of "recent" games, which loosely reinforces count but gives no further semantics. Baseline 3 applies.
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?
"Summarizes a player's recent public games on Chess.com or Lichess" gives a specific verb and resource, and the enumeration of returned stats (W/D/L, rating trend, results by colour, openings) makes the scope unambiguous. It never names the siblings elo_change or rating_meaning, so the agent gets no explicit differentiation, but the described output is distinct enough in practice.
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?
There is no statement of when to pick this over elo_change or rating_meaning, no exclusions, and no prerequisites such as whether the account must be public or whether the username format differs per site. Usage is only inferable from the phrase "recent public games".
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.
3 tool updates
- First observed
elo_change - First observed
rating_meaning - First observed
recent_games
Related MCP Connectors
Chess opening guides and names, FEN and PGN checks, the daily chess puzzle and Elo estimates.
Pedagogical chess intelligence for AI agents: explain positions and games for a target Elo.
Review your Chess.com and Lichess games with Stockfish on an interactive board, in plain words.
Live chess tournament results and up-to-date player ratings in chat.
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides Chess.com player data integration, enabling AI assistants to fetch real-time chess player profiles and comprehensive statistics including ratings, game counts, and performance metrics from Chess.com's public API.2MIT
- AlicenseAqualityCmaintenanceEnables querying Chess.com public data including player profiles, stats, games, and club information through natural language.96 npmMIT
- AlicenseAqualityCmaintenanceEnables any AI assistant to fetch Lichess and Chess.com games, analyze them with Stockfish, and explain mistakes, critical moments, opening weaknesses, and recurring patterns in plain language.5MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to query Chess.com's public API for player profiles, stats, game archives, online status, clubs, and titled players, and to download game PGNs.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.