Skip to main content
Glama

chessvox-mcp

An MCP (Model Context Protocol) server that exposes chessvox.com's public, read-only chess data to AI clients like Claude Code, Claude Desktop, and Cursor — no account, no API key.

One line about the site: chessvox.com is a free suite of chess tools — a daily puzzle, tactic trainers, mate-rush drills, blindfold and vision trainers, opening repertoires, and engine-powered game review (its deeper features live in the ChessVox apps).

Tools

Tool

What it does

chessvox.com endpoint

chessvox_daily_puzzle

Today's puzzle (or any past day): FEN, UCI solution, rating

GET /api/daily-puzzle

chessvox_mate_rush_puzzles

Batch of 20 mate-in-1 training puzzles (rating 600–1800)

GET /api/brain/mate-rush

chessvox_starter_repertoires

The free ChessVox starter opening repertoires with preview lines

GET /api/repertoires/starter

Every call is a read-only GET against the public chessvox.com API. The server sends no secrets, collects no telemetry, and writes nothing. Only endpoints that work without a login are exposed — ChessVox's server-side Stockfish analysis and saved-game tools require an account and are intentionally not included.

chessvox_daily_puzzle

Get the ChessVox daily puzzle for today, or for a past UTC day.

Input

{ "day": "2026-10-20" }

day is optional and must be a real YYYY-MM-DD UTC date not in the future. Omit it for today's puzzle.

Output

{
  "dayUtc": "2026-10-28",
  "fen": "r1b2rk1/1p3ppn/p1p1pq1p/4p3/2PP1n2/P4N2/1PQ2PPP/1BR1RNK1 w - - 0 17",
  "solutionUci": ["c2h7"],
  "rating": 666,
  "playOnline": "https://chessvox.com/daily-puzzle"
}

The side to move is whatever the FEN says (w here). solutionUci is the full solution, UCI-encoded — c2h7 is Qxh7#.

chessvox_mate_rush_puzzles

A shuffled batch of 20 mate-in-1 puzzles from the Brain Arcade pool. No input.

Output (truncated to 2 of 20)

{
  "count": 20,
  "puzzles": [
    { "fen": "6k1/1pq4p/pr3QpB/4p3/4bp2/P1P4P/6P1/6RK w - - 2 40", "solutionUci": ["f6f8"] },
    { "fen": "1R6/5k2/3K2pB/p2p1b1p/3P4/1P4P1/4r3/8 w - - 10 41", "solutionUci": ["b8f8"] }
  ]
}

chessvox_starter_repertoires

The ChessVox-authored starter repertoires from the openings hub. No input.

Output (truncated to 1 of 20)

{
  "count": 20,
  "starters": [
    {
      "slug": "italian-game",
      "name": "Italian Game",
      "color": "white",
      "description": "Quick development, a calm c3 + d3 centre and a long kingside squeeze. The friendliest way to start with 1.e4 e5.",
      "styles": ["Positional", "Easy"],
      "lineCount": 8,
      "previewMoves": ["e2e4", "e7e5", "g1f3", "b8c6", "f1c4", "f8c5", "c2c3", "g8f6"]
    }
  ]
}

previewMoves is the main line in UCI — handy for stepping through an opening move by move.

Related MCP server: MCP Chess.com Server

Install

Requires Node 18+ and git.

npx -y github:MohamedCHAMI/chessvox-mcp

Once the package is published to npm this will shorten to npx -y chessvox-mcp. The -y flag matters: without it, npx prompts for confirmation on stdin and hangs a non-interactive MCP host.

Claude Code

claude mcp add chessvox -- npx -y github:MohamedCHAMI/chessvox-mcp

or in .mcp.json:

{
  "mcpServers": {
    "chessvox": { "command": "npx", "args": ["-y", "github:MohamedCHAMI/chessvox-mcp"] }
  }
}

Claude Desktop

Add to claude_desktop_config.json (via Settings → Developer → Edit Config):

{
  "mcpServers": {
    "chessvox": { "command": "npx", "args": ["-y", "github:MohamedCHAMI/chessvox-mcp"] }
  }
}

Cursor

Add to ~/.cursor/mcp.json (or .cursor/mcp.json per project):

{
  "mcpServers": {
    "chessvox": { "command": "npx", "args": ["-y", "github:MohamedCHAMI/chessvox-mcp"] }
  }
}

Behavior & limits

  • Timeout: every request to chessvox.com aborts after 10 s and returns a clear error.

  • Caching: modest in-memory cache (daily puzzle 5 min, mate rush 2 min, starters 1 h) with true LRU eviction, in-flight dedupe (parallel identical calls share one request), and TTLs that never leak today's puzzle into the next UTC day.

  • Rate limits: chessvox.com allows roughly 20–60 anonymous requests/minute per endpoint. On HTTP 429 or a 5xx the server cools down for a minute and serves the last cached data if it has any; the cache keeps a normal session far below the limits anyway.

  • Failure mode: network errors, timeouts, and upstream failures return MCP tool errors (isError: true) with a human-readable explanation — the server never crashes or hangs.

  • Privacy: no telemetry, no logging of your prompts, no API keys, no account needed.

Development

npm install
npm run build   # type-check + emit to dist/
npm test        # node:test suite, fetch is mocked — no network needed

License

MIT © ChessVox

Available Tools

3 tools
chessvox_daily_puzzleChessVox daily puzzleA

Get the ChessVox daily puzzle (https://chessvox.com/daily-puzzle) for today, or for a past UTC day via the optional day argument. Returns the puzzle FEN, the full solution as UCI moves (e.g. ["c2h7"] for Qxh7#), and its player rating. The side to move is given by the FEN. Useful for showing a puzzle, hinting the first solution move, or verifying a user's answer.

NameRequiredDescriptionDefault
dayNoOptional past UTC day to fetch instead of today's puzzle, e.g. 2026-10-20

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and does much of it: it discloses the return payload (FEN, full solution as UCI moves, player rating), the UCI notation with a worked example ("c2h7" for Qxh7#), and the UTC day semantics. It omits edge behavior such as what happens for a future or invalid day, or whether every date has a puzzle.

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?

Three sentences, front-loaded with the core action and scoping, then return shape, then use cases. Slight redundancy in restating that the FEN gives the side to move, but nothing wasteful.

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?

For a single-optional-parameter read tool with no output schema and no annotations, the description covers everything an agent needs: what it fetches, the date constraint, and a precise inventory of returned fields including move notation format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single `day` parameter is already documented with its pattern and an example. The description's 'past UTC day' phrasing reinforces but does not materially extend the schema's 'Optional past UTC day to fetch instead of today's puzzle'.

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?

States a specific verb and resource ('Get the ChessVox daily puzzle') and immediately scopes it to today or a past UTC day. The resource is distinct enough from the sibling tools (mate rush puzzles, starter repertoires) that an agent can tell them apart without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage contexts — showing a puzzle, hinting the first solution move, verifying a user's answer — which map well to how an agent would pick this tool. It stops short of naming when NOT to use it or pointing at the sibling puzzle tools as alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chessvox_mate_rush_puzzlesChessVox mate-in-1 puzzlesA

Get a batch of 20 mate-in-1 training puzzles from the ChessVox Brain Arcade pool (https://chessvox.com/arcade), player ratings 600–1800. Each puzzle has a FEN and its winning move in UCI. Ideal for quick tactic drills or generating practice positions.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
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 behavioral burden. It usefully discloses batch size, rating range, source pool, and that each puzzle includes a FEN and UCI winning move. However, it does not state whether batches are random or repeatable, how the 600–1800 rating range is sampled, or any rate-limit/caching behavior, leaving meaningful gaps for an unannotated tool.

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 tightly structured and front-loaded with the core action and scope. Every sentence adds relevant information: source pool, rating range, returned fields, and typical use. There is no filler or repetition.

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 retrieval tool with no output schema and no annotations, the description supplies the essential context: batch size, rating range, source, and the shape of each puzzle. It is nearly complete, though additional notes on randomization, repetition, or exact return structure 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 zero input parameters, so parameter semantics are inherently simple and the baseline is 4. There are no parameters for the description to explain, and the schema is complete for a no-argument call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: get a batch of 20 mate-in-1 training puzzles from the ChessVox Brain Arcade pool. It clearly identifies the puzzle type, batch size, rating range, and returned fields. Sibling tools are not explicitly mentioned, so it falls just short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear intended use cases: quick tactic drills or generating practice positions. It does not explicitly contrast this tool with chessvox_daily_puzzle or chessvox_starter_repertoires, and it provides no when-not-to-use guidance. Still, the usage context is clear enough for an agent to select it appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chessvox_starter_repertoiresChessVox starter repertoiresA

List the free ChessVox-authored starter opening repertoires (https://chessvox.com/openings), e.g. the Italian Game or the Caro-Kann. Each entry has the color, a plain-language description, style tags, the number of lines, and the UCI preview moves of the main line. Use it to recommend a first repertoire or to show what a specific opening looks like move by move.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/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 that entries are free, ChessVox-authored, and that each has color, description, style tags, line count, and UCI preview moves — useful read-only context. However, it does not state pagination, ordering, or whether any auth/quota applies, leaving some behavioral gaps.

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?

Three short sentences, front-loaded with the resource and scope, followed by the per-entry field summary and the usage hint. Nothing is redundant or padded.

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?

There is no output schema, so the description must convey return structure — and it does, listing the five fields per entry. Missing only secondary details such as list size, ordering, or pagination, which are minor for a zero-parameter listing 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 takes zero parameters, so there are no parameter semantics to explain and the baseline is 4. The description correctly implies a no-argument call by describing a fixed catalogue rather than any filtering inputs.

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?

States a specific verb and resource: 'List the free ChessVox-authored starter opening repertoires', with concrete examples (Italian Game, Caro-Kann) and a link. It is unmistakably distinct from the puzzle siblings (daily_puzzle, mate_rush_puzzles), so no ambiguity for selection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names two use cases: recommending a first repertoire and previewing what a specific opening looks like move by move. It gives clear when-to-use guidance but no exclusions or named alternatives, and the sibling puzzle tools are not addressed as alternatives.

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.

  1. 3 tool updatesv1.0.0
    • First observedchessvox_daily_puzzle
    • First observedchessvox_mate_rush_puzzles
    • First observedchessvox_starter_repertoires

TDQS

A4/5.0

Scored across 3 tools

Disambiguation4/5

All three tools target distinct resources: a single daily puzzle, a batch of mate-in-1 drills, and a list of starter repertoires. The two puzzle tools share the same output shape (FEN + UCI solution), so an agent skimming could momentarily confuse them, but the descriptions make the daily-vs-batch distinction explicit.

Naming Consistency5/5

All names follow a uniform pattern: consistent `chessvox_` server prefix plus snake_case descriptive noun phrases. No mixed conventions or vague verbs anywhere in the set.

Tool Count4/5

Three tools is lean but each covers a genuinely different content type (daily content, drill batches, opening repertoires), so nothing feels redundant. It is on the thin side for a puzzle/opening domain, but not inappropriately so for a narrow read-only content API.

Completeness3/5

The surface covers puzzles and a repertoire listing, but there is no way to fetch a repertoire's full line tree (only preview moves), no puzzle lookup by rating or theme, and no answer-checking tool despite that being a stated use case. Agents can work around these limits but will hit visible dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to explore player profiles, ratings, game archives, leaderboards, clubs, and puzzles via the Chess.com API.
    2
    MIT
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides access to Chess.com's public API, allowing AI assistants to fetch player information and statistics.
    -
  • A
    license
    B
    quality
    A
    maintenance
    Enables natural-language access to Chess.com's public API, exposing player, club, tournament, puzzle, and leaderboard data through tools and resources without authentication.
    30
    39 npm
    MIT