croissant-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_databasesA | List the En Croissant game databases installed on this machine. Reports each database's title, game count, size, and whether it has a .pgn sidecar. Read-only, and safe to call while En Croissant is running. |
| list_repertoiresA | List the En Croissant repertoire files and which colour each trains. |
| read_repertoireA | Read one repertoire's tree: its main line, orientation, and size. At every position, the FIRST variation listed is the move En Croissant drills; later variations are recorded alternatives. |
| add_line_to_repertoireA | Merge a line of SAN moves (from the starting position) into a repertoire. Joins branches that already exist instead of duplicating them, and never reorders existing variations — the first variation at a position is the answer the user gets drilled on, so reordering would change what they're tested on. New positions are scheduled automatically when the file is next opened; existing cards and review history are untouched. En Croissant must be closed: it holds repertoire files open and would silently overwrite this change. The previous contents are backed up first. |
| get_training_statusA | Read the FSRS training state for a repertoire: what's due, what's never been seen, and what the file would schedule that isn't in the deck yet. Read-only — never modifies training state. Safe while En Croissant runs, though a session in progress there may not have flushed to disk yet. |
| search_gamesA | Search the user's own rated Lichess games (blitz by default). Filters are from the USER's side: colour is the colour they played, result is their result ('win', 'loss', 'draw'). Dates are 'YYYY.MM.DD'. Fetches live from the Lichess API, falling back to the local export. |
| my_results_from_positionA | The user's W/D/L record from a position, across their rated blitz games. Position matching ignores move counters and non-capturable en-passant squares, so transpositions count. Sample sizes here are small — report them, and never rank or conclude from the percentage alone. |
| opponents_playA | What gets played from a position: by players at the user's own rating and speed (source='lichess', the default) or by masters (source='masters'). Defaults come from config so the pool matches the user's actual games — blitz around their rating band, not the site-wide average. Cached locally; a repeated query makes no network call. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Each tool targets a distinct resource or action: databases vs. repertoires vs. training state vs. game queries. Even the three position-related tools differ clearly: one searches games, one reports user results, one reports opponent moves.
Most tools follow a verb_noun pattern (list_databases, read_repertoire, add_line_to_repertoire, get_training_status, search_games). Two tools break the pattern with possessive noun phrases (my_results_from_position, opponents_play), which is a minor inconsistency.
Eight tools is well within the ideal 3–15 range for a focused chess training server. Each tool addresses a distinct part of the workflow without unnecessary bloat.
The set covers listing, reading, and adding repertoire lines, plus training status and position analysis—solid coverage for the core domain. Missing explicit update/delete operations for repertoire lines are workable gaps but not fatal for typical use.