Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HOSTNoHost for the HTTP server.
PORTNoPort for the HTTP server.
TRUST_PROXYNoNumber of proxies in front of the app so rate limiting sees the real client IP.
CORS_ORIGINSNoOptional allow list for CORS.
LICHESS_TOKENNoPersonal API token from lichess.org/account/oauth/token, no scopes needed. Only opening_stats requires it. Leave it unset otherwise: Lichess rejects every request that carries a bad token.
MAX_BODY_BYTESNoMaximum request body size in bytes (64 KB default), checked before parsing.65536
LICHESS_TIMEOUT_MSNoPer-request timeout in milliseconds (default 15000 for stdio, 12000 for HTTP).15000
REQUEST_TIMEOUT_MSNoWall-clock limit per HTTP request.30000
DAILY_REQUEST_LIMITNoGlobal daily request cap for the HTTP server.5000
RATE_LIMIT_PER_MINUTENoPer-IP rate limit for the HTTP server (token bucket).30

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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_playerA

Look up a Lichess player: title, ratings for each speed they play (bullet, blitz, rapid, classical, puzzles, variants) with game counts and provisional flags, win/loss/draw totals, and basic profile info.

recent_gamesA

List a Lichess player's most recent finished games (up to 20): id, date, speed, opponent and rating, result, opening name, and accuracy when Lichess has analysed the game. Use has_analysis to pick games that find_mistakes can review.

get_gameA

Fetch one Lichess game: players, ratings, result, opening, time control, every move in SAN with clock times, and per-move engine evals and judgments when Lichess has analysed the game. Includes clean PGN.

find_mistakesA

List one player's inaccuracies, mistakes and blunders in a Lichess game, straight from Lichess's server analysis: the move played, the engine's best move and line, evals before/after and winning chances lost. If the game was never analysed, it says so instead of guessing.

evaluate_positionA

Get the engine evaluation of a chess position (FEN) from Lichess's cloud cache: score, best move and principal line in SAN, for up to 3 candidate moves. If the position isn't cached, it returns available=false rather than a guess.

tablebaseA

Exact result for an endgame with 7 or fewer pieces from the Lichess tablebase: win/draw/loss for the side to move, distance to mate or zeroing, and every move ranked. This is perfect play, not an estimate.

puzzle_of_the_dayA

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.

get_puzzleA

Fetch a Lichess puzzle by id: position (FEN), side to move, rating, themes and source game. The solution stays hidden unless reveal_solution=true.

opening_statsA

Opening explorer statistics for a position from the Lichess or Masters database: opening name, how often each next move was played, and White/draw/Black results. Takes a move list or FEN. Needs LICHESS_TOKEN on the server (Lichess now requires sign-in for the explorer).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4/5.0

Scored across 9 tools

Disambiguation4/5

Each tool targets a distinct resource: games, players, analysis, positions, endgames, puzzles, and openings. The only real overlaps are get_game vs recent_games (single fetch vs list) and get_puzzle vs puzzle_of_the_day (same content, different source), but descriptions clearly separate them.

Naming Consistency4/5

Consistent snake_case throughout with a dominant verb_noun pattern (get_game, get_player, get_puzzle, find_mistakes, evaluate_position). A few noun-only names (recent_games, tablebase, puzzle_of_the_day, opening_stats) break the pattern slightly but remain readable and predictable.

Tool Count5/5

Nine tools is well-scoped for a chess coaching domain, covering games, players, analysis, positions, endgames, puzzles, and openings without redundancy.

Completeness4/5

Strong lifecycle coverage: player lookup, game retrieval, mistake analysis, position evaluation, tablebase, puzzles, and opening stats. Minor gaps like game search or puzzle-by-theme browsing exist but core coaching workflows are fully supported.

Maintenance

ActivityMaintained
ResponsivenessNo issues