chess ceo
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HTTP_HOST | No | Bind address for HTTP transport. Defaults to 127.0.0.1. | 127.0.0.1 |
| MCP_HTTP_PATH | No | Streamable-HTTP endpoint path. Defaults to /mcp. | /mcp |
| MCP_HTTP_PORT | No | Port to bind when using HTTP transport. Defaults to 8080. | 8080 |
| MCP_TRANSPORT | No | Transport for the server: stdio or http. Defaults to stdio. | stdio |
| CHESSCEO_TOKEN | No | Bearer token for cloud engine and prep-file tools. Get one from your chess.ceo account settings. Optional for read-only tools. | |
| CHESSCEO_BASE_URL | No | Override the API base URL. Defaults to https://chess.ceo. |
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 | {} |
| prompts | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_playerA | Fuzzy name lookup for FIDE-rated chess players. Returns candidate matches with their FIDE ID, current rating, title (GM/IM/etc.), and country. Use this to resolve a plain-English name (e.g. 'Carlsen', 'Ding Liren') to the FIDE ID that every other tool needs. |
| get_player_profileA | Full stats for one player: identity, monthly rating history, peak / trend stats, career W/D/L by color and time control, top-10 openings as White and Black, opponent analysis by rating bracket, notable wins and worst losses, top events with performance ratings. Often enough on its own for 'how strong is X, what do they play, who have they beaten'. |
| get_player_preparationA | For a given player, colour and starting position, return both the moves the player actually chose (frequency + win rate) and the underlying games. Position is specified either as a move sequence in SAN ( |
| get_position_statsA | Move statistics from all 11.7M+ indexed games at a given position — game counts, win percentages, top continuations. Answers 'from position P, how often does White play 4. O-O vs 4. d3, and which scores better'. |
| analyseA | Short Stockfish evaluation at a position. Returns the top-N candidate moves with score (centipawns from side-to-move POV, positive = advantage; or mate distance) and the principal variation for each. Defaults: 2s think time, top-3 lines. PV moves come back in UCI notation (e2e4, not e4). Use this to sanity-check candidate lines from get_position_stats or get_player_preparation — human game frequency tells you what people play, engine evaluation tells you what's actually good. |
| get_head_to_head | Complete head-to-head record between two players. Includes overall and per-colour W/D/L (from player A's perspective), splits by time control, most-played openings between them, first / last meeting, average game length, and the game list. |
| list_live_tournamentsA | Tournaments currently being broadcast live on chess.ceo. Use this when the user asks 'what's on right now' / 'live tournaments today'. |
| list_tournament_playersC | Players participating in one live-broadcast tournament. |
| list_player_live_tournaments | Which currently-live broadcasts a given player is competing in. Use when the user asks 'is X playing anywhere right now'. |
| prep_snapshotA | One call, three parallel fetches at the same position: opponent's stats on their side, your stats on your side, and the 11.7M-game general database at that position. Use this while walking the opening tree — one round trip instead of three separate calls, and you can compare the three views directly (e.g. opponent has 2 games here but the general DB has 8k → prep candidate). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| prepare_for_game | Prep workflow for an upcoming chess game. Walks both players' repertoires and identifies where the opponent is weakest. |
| scout_player | Deep scouting report on one player. Their style, top openings, recent form, and where they've been beaten. |
| head_to_head_briefing | Briefing on the history between two players — who has the edge, what openings decide their meetings, style clash. |
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 data source: tournament listings, player search, player profile, player-specific prep, general position stats, engine evaluation, tournament roster, and combined prep snapshot. The four position-related tools are clearly differentiated by their descriptions: player-specific moves, general database move statistics, engine evaluation, and a combined one-call convenience.
Most tools follow a clear verb_noun pattern with get_/list_/search_ prefixes (e.g., get_player_profile, list_live_tournaments, search_player). The exceptions are 'analyse' as a bare verb and 'prep_snapshot' as an abbreviated noun form, which break the otherwise consistent convention.
Eight tools is well-scoped for a chess preparation and live-tournament server. Each tool covers a distinct function and none feels redundant, with the possible convenience overlap of prep_snapshot being acceptable as a single-round-trip optimization.
The set covers the core workflow: player discovery, profile stats, opening-tree walking with personal and general statistics, engine evaluation, and tournament browsing. Minor gaps exist such as no full game viewer or tournament standings, but they do not block the primary preparation-focused purpose.