lichess-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LICHESS_API_TOKEN | No | A Lichess personal access token. Raises your rate limit and unlocks your own private data. Nothing here requires it. | |
| LICHESS_MCP_TIMEOUT | No | Per-request timeout in seconds. | 30 |
| LICHESS_MCP_MIN_INTERVAL | No | Seconds between requests. Lichess asks for 1 req/sec; lower it only with a token and a good reason. | 1.0 |
| LICHESS_MCP_HTTP_LOG_LEVEL | No | Set to INFO to log every outgoing request. | WARNING |
| LICHESS_MCP_MAX_RETRY_AFTER | No | Longest 429 back-off to sit out before reporting the rate limit to the caller. | 60 |
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 |
|---|---|
| get_user_profileA | Look up a Lichess player: ratings in every format they play, title, country, account stats, and their current win/loss/draw streak. |
| search_playersA | Autocomplete Lichess usernames from a partial string. Use this to resolve a half-remembered or misspelled username before calling other tools. |
| get_recent_gamesB | Fetch a player's most recent games with PGN, result, opponent, opening and accuracy. Optionally filter to one time format or one colour. |
| get_game_analysisA | Computer analysis of a single Lichess game: per-player accuracy and average centipawn loss, plus every blunder, mistake and inaccuracy with the move that was played, the engine's preferred move, and the evaluation swing. |
| get_opening_statsB | Win/draw/loss breakdown for one player in a specific opening, as a given colour. Scans the player's recent games and aggregates by opening name. |
| get_puzzle_of_dayA | Today's Lichess daily puzzle: the FEN to solve, whose move it is, the puzzle rating, its tactical themes, and the solution in UCI and SAN. |
| analyze_positionA | Evaluate a chess position given as a FEN using Lichess' cloud engine cache. Returns the top engine lines with evaluations, in readable SAN notation. |
| get_tournament_infoA | Details and standings for a Lichess arena or Swiss tournament: name, time control, player count, games played, and the leaderboard. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Lichess API reference | How this server maps to Lichess' HTTP API: conventions, endpoints behind each tool, rate limits, and known gaps. |
TDQS
Scored across 8 tools
Each tool targets a distinct purpose: user profile, player search, recent games, game analysis, opening stats, daily puzzle, position evaluation, and tournament info. There is no overlapping functionality or ambiguity between tools.
All tool names follow a consistent verb_noun pattern: get_* for retrieval, search_players for search, and analyze_position for analysis. The verbs are clear and the nouns are specific, making the naming predictable and uniform.
With 8 tools, the set is well-scoped for a chess data server. It covers core Lichess features without feeling bloated or sparse, and each tool contributes a necessary capability.
The tool set covers the main read-only Lichess workflows: user profiles, game retrieval, analysis, openings, puzzles, positions, and tournaments. Minor gaps exist, such as no direct way to fetch a user's full game history or a specific game by ID, but these can be worked around via recent games and analysis.