Skip to main content
Glama

Lichess daily puzzle

puzzle_of_the_day
Read-onlyIdempotent

Retrieves today's Lichess daily puzzle with position, side to move, rating, themes, and source game. Hides solution unless reveal_solution=true so players can try first.

Instructions

Today's Lichess daily puzzle: position (FEN), side to move, rating, themes and the source game. The solution stays hidden unless reveal_solution=true, so a coach can let the player try first.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
reveal_solutionNoInclude the solution moves. Leave false to coach: let the player try first, then call again with true.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYes
fenYesThe position the solver faces (after the opponent's last move).
urlYes
hintNoA small nudge (which piece moves first) for when the player is stuck. Present only while the solution is hidden.
playsYes
ratingYes
themesYesLichess theme tags, e.g. "fork", "mateIn2", "endgame".
messageYes
solutionNoFull forced line, solver and opponent moves alternating. Only present when reveal_solution is true.
last_moveNoThe opponent's move that set up the puzzle.
source_gameYes
solver_colorYes
solver_movesYesHow many moves the solver must find.
solution_revealedYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds a genuine behavioral trait not in the annotations: the solution is withheld unless reveal_solution=true, and the intended two-call coaching loop. It stops short of noting anything about freshness (that the puzzle changes daily) or failure behavior.

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?

Two sentences, front-loaded with what the tool returns, and the second sentence immediately explains the one parameter's behavioral consequence. No filler or restated boilerplate.

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?

An output schema exists, so return values need no further explanation, and the annotations cover the read-only idempotent nature. The description closes the remaining gap an agent needs — that the solution field is conditional — making the definition complete for a zero-required-parameter read tool.

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?

With a single parameter at 100% schema description coverage, the schema already documents reveal_solution, its default, and the coach-then-reveal pattern. The description's mention of reveal_solution restates that same guidance rather than adding format or side-effect detail, so the baseline 3 applies.

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?

States a specific verb and resource ('Today's Lichess daily puzzle') and enumerates what the response contains (FEN, side to move, rating, themes, source game). It implicitly differentiates from the sibling get_puzzle by scoping to 'today's daily', but never names that sibling explicitly, leaving a small gap for an agent choosing between the two.

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 supplies a concrete usage context and workflow: leave reveal_solution=false so a coach can let the player try, then call again with true. That is actionable guidance for the primary use case, but it gives no exclusions or direct comparison against siblings like get_puzzle or find_mistakes.

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