Skip to main content
Glama

get_opening_stats

Read-only

Retrieve win/draw/loss stats per opening across recent Lichess or Chess.com games to identify weak openings, with game IDs for deeper mistake analysis.

Instructions

Win/draw/loss record per opening over a player's recent games.

Helps spot openings the player struggles with. Each row carries the game ids so you can dig into a specific loss with find_blunders.

Args: username: The player's username. platform: "lichess" (default) or "chesscom". color: "white", "black" or "both" (default). count: How many recent games to look at (1-300). group_by_family: Group variations under their opening family (default true).

Input Schema

NameRequiredDescriptionDefault
colorNoboth
countNo
platformNolichess
usernameYes
group_by_familyNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered; the description adds that each row carries game ids and that variations are folded under families by default, which is genuine behavioral context. It says nothing about pagination, performance, or behavior on invalid usernames/platforms.

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?

Front-loaded summary followed by a short rationale and a compact Args block — no wasted sentences. The Args list is somewhat verbose in phrasing but is justified given the zero schema coverage.

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 5-parameter read-only analytics tool with an output schema, the description covers purpose, the analytical intent, parameter values, and the downstream workflow. Only edge-case handling (invalid platform, fewer games than count) is unaddressed, which is minor given the output schema exists.

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?

Schema description coverage is 0%, so the description carries the full burden and does: it documents all five parameters, including allowed values for platform and color, the 1-300 range for count, and the default-true semantics of group_by_family. This is meaning the schema cannot supply on its own.

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 first line names a specific aggregation (win/draw/loss record) over a specific resource (openings) and scope (a player's recent games). It is clearly distinguishable from siblings like get_recent_games (raw list) and find_blunders (mistake drill-down), which the description itself references.

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?

It states the analytical use case ('spot openings the player struggles with') and explicitly routes follow-up work to find_blunders via the per-row game ids. It stops short of saying when to prefer get_recent_games instead, so there is no explicit exclusion rule.

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