Skip to main content
Glama

get_recent_games

Read-only

Fetch a player's Lichess or Chess.com game history with opponent, result, opening, and date, so you can select a game for analysis.

Instructions

List a player's most recent games from Lichess or Chess.com.

Returns one entry per game with the game_id (use it with analyze_game / find_blunders), the opponent, the result from the player's point of view, the opening and the date. Games are cached locally so later tools can find them by id.

Args: username: The player's username on the chosen platform. platform: "lichess" (default) or "chesscom". count: How many games to return (1-100).

Input Schema

NameRequiredDescriptionDefault
countNo
platformNolichess
usernameYes

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=true and openWorldHint=true, so safety is covered. The description adds real context beyond that: one entry per game, the fields returned, and the fact that games are cached locally so subsequent tools can resolve them by id — a side effect worth knowing. It does not mention failure modes for private or nonexistent accounts on an open-world network call.

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?

A single front-loaded purpose sentence, a compact return-format note, and an Args block that earns its space precisely because schema coverage is 0%. No filler or repeated phrasing.

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?

The output schema covers return values, so the description needn't re-document them, and it instead supplies the caching behavior and downstream linkage an agent needs. What's missing for an open-world fetch tool is any note on rate limits, authentication, or behavior when the username is invalid.

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?

Schema description coverage is 0%, so the description carries the burden and largely does: it states the accepted platform values ("lichess" default or "chesscom"), which the schema does not, and constrains count to 1-100 with a default of 10. Username is described only minimally as the player's handle on the chosen platform.

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 description opens with a specific verb and resource (list a player's most recent games) and names the two supported sources, Lichess and Chess.com. It also implicitly separates itself from siblings by pointing to analyze_game / find_blunders as downstream consumers of the returned game_id.

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 clearly establishes the context of use: fetch recent games, then pass the game_id to analyze_game or find_blunders. There is no explicit statement of when NOT to use it (e.g., versus get_opening_stats for aggregate results), so it falls short of a full when/when-not/alternatives treatment.

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