Skip to main content
Glama

Opening explorer statistics

opening_stats
Read-onlyIdempotent

Retrieve Lichess or Masters opening statistics for a chess position: opening name, next-move frequencies, and White/draw/Black results from a move list or FEN.

Instructions

Opening explorer statistics for a position from the Lichess or Masters database: opening name, how often each next move was played, and White/draw/Black results. Takes a move list or FEN. Needs LICHESS_TOKEN on the server (Lichess now requires sign-in for the explorer).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fenNoStart position in FEN. Omit for the normal starting position.
movesNoMoves from the start (or from fen): SAN like "1. e4 c5 2. Nf3" or UCI like "e2e4 c7c5". Gives the opening name too.
speedsNolichess database only: limit to these speeds.
ratingsNolichess database only: rating buckets, e.g. [1600, 1800] for 1600-1999.
databaseNolichess = all rated Lichess games; masters = over-the-board games between 2200+ FIDE players.lichess

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
fenYes
messageYes
openingNo
databaseYes
draws_pctYesPercent of games.
moves_sanYes
next_movesYes
total_gamesYes
black_wins_pctYesPercent of games.
white_wins_pctYesPercent of games.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), but the description adds a genuinely useful non-schema trait: the server requires LICHESS_TOKEN because Lichess now mandates sign-in for the explorer. That is a real operational constraint an agent must know before calling.

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 sentences, no filler: the purpose and return contents are front-loaded, and the authentication requirement follows. Every sentence carries information the agent needs.

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?

With an output schema present, the description need not explain return values, and it correctly focuses on what the tool does, what it accepts, and the token prerequisite. Nothing needed to call it correctly is missing.

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%, so the schema fully documents fen, moves, speeds, ratings and database. The description only restates what inputs are accepted ('move list or FEN') without adding format or constraint detail beyond the schema, so the baseline 3 applies.

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+resource ('Opening explorer statistics for a position') and enumerates the payload (opening name, move frequency, W/D/B results). It is clearly separable from siblings like get_game or evaluate_position, which do not return opening-tree statistics.

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 clear context for use: query a position via move list or FEN, and choose between the Lichess or Masters database. It does not explicitly say when NOT to use it versus a sibling such as evaluate_position, so it falls short of full when/when-not guidance.

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