gambit
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GAMBIT_CONFIG | No | Set to a TOML configuration file path. | |
| STOCKFISH_PATH | No | Set to override the Stockfish executable path. | |
| GAMBIT_DATABASE | No | Set to select the local SQLite database. |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| inspect_positionA | Inspect a FEN position without engine analysis. |
| list_legal_movesB | List legal moves from a FEN position in SAN and UCI notation. |
| analyze_positionB | Analyze a FEN position with Stockfish. Evaluations are from the side-to-move perspective. |
| recognize_chessboardA | Convert an axis-aligned 2D chessboard screenshot or book diagram to FEN locally. Pass image as a local path, file URL, raw base64, or base64 data URL. Returns confidence and reliability; do not silently trust a result whose reliable or plausible field is false. |
| analyze_chessboardB | Recognize a chessboard image and analyze it with Stockfish in one fast call. Intended for axis-aligned screenshots and diagrams. Unreliable OCR is rejected by default so analysis is not based on a silently wrong board. |
| tutor_moveB | Assess a proposed legal SAN or UCI move. Returns the resulting position and Stockfish's best replies, for move-by-move tutoring. |
| parse_gameA | Parse one standard-chess PGN without Stockfish. Plies are one-based from the supplied starting position. |
| analyze_positionsC | Analyze a batch of FEN requests through one warm Stockfish process. All scores use White's perspective. |
| analyze_gameC | Analyze a complete standard-chess PGN with adaptive Stockfish searches. Scores use White's perspective; nodes is the configured per-position budget. |
| review_gameB | Analyze and classify a complete PGN with deterministic Gambit review labels and per-player summaries. No prose coaching is generated. |
| assess_candidate_moveC | Verify a candidate against unrestricted and forced-root searches at two budgets, retaining full supplied history. |
| start_teaching_sessionC | Start a solution-hidden teaching cycle with a concept-specific learning objective. |
| get_teaching_hintB | Reveal one of four progressive hint levels, recording assistance without exposing the full solution early. |
| submit_teaching_moveC | Assess an answer, explain verified candidate lines, update concept progress, and schedule review. |
| get_concept_progressC | Return concept-specific attempts, independent successes, and due review dates. |
| create_game_lessonsC | Create up to twenty position-specific practice lessons from the learner's mistakes in a saved game analysis. |
| start_progressive_analysisA | Return immediate preliminary evidence and queue deeper analysis; supersede older requests with the same context ID. |
| get_progressive_analysisC | Read progressive analysis status and its completed evidence ID, withholding stale results. |
| cancel_progressive_analysisB | Cancel queued or running progressive analysis and mark its result stale. |
| get_analysis_metricsB | Report bounded engine latency samples, queue delays, cache hits, and reserved interactive capacity. |
| resume_analysis_jobA | Resume an interrupted, failed, or cancelled game job using compatible durable search checkpoints. |
| get_tablebase_diagnosticsA | Inspect configured tablebase directories and WDL/DTZ file pairing without claiming complete coverage. |
| import_opening_planB | Import a dated, versioned opening teaching plan with source attribution. Advice is not engine-verified automatically. |
| get_opening_plansC | Retrieve transposition-matched opening plans separately from practical game statistics. |
| import_opening_statisticsC | Import source-attributed aggregate opening outcomes for an explicitly described game population. |
| get_opening_coverageB | Report exact local opening coverage by source, keeping theoretical plans and practical statistics distinct. |
| initialize_openingsB | Load the bundled, version-pinned Lichess named opening corpus into local storage. |
| get_capabilitiesA | Report engine settings and exact local corpus counts without launching an engine. |
| evaluate_positionC | Analyze a position with White-relative scores, immutable evidence, and optional move history. |
| evaluate_moveB | Compare a legal move against engine analysis before and after it. Scores are White-relative. |
| compare_candidate_movesC | Analyze and compare up to eight candidate moves under the same search profile. |
| start_analysis_jobC | Start a bounded, persistent background game analysis or review job. |
| get_analysis_jobC | Read analysis job status and completed-search progress. |
| cancel_analysis_jobB | Cancel a job at its next search boundary. An active search has a bounded deadline. |
| get_analysisC | Retrieve an immutable position analysis or completed game report. |
| import_studyC | Import a source-attributed PGN study, including variations and transpositions. |
| import_opening_tsvC | Import a bounded Lichess-format opening TSV batch with explicit source attribution. |
| find_openingB | Search locally imported opening names with pagination. |
| get_opening_positionC | Get source-attributed corpus moves at a position, including transpositions. |
| get_repertoire_moveC | Get personal repertoire moves at a position. |
| create_repertoire_drillC | Create a repertoire recall drill without exposing its expected moves. |
| get_due_repertoire_drillB | Select a due repertoire position using transposition-aware spaced review and hide expected moves. |
| submit_repertoire_moveC | Submit a legal move to a repertoire recall drill. |
| explain_positionB | Inspect legal state, material, pins, attacks, and pawn structures without an engine. |
| analyze_pawn_structureB | Return factual isolated, doubled, and passed-pawn geometry for both sides. |
| get_tablebase_resultC | Probe configured local Syzygy WDL and DTZ with explicit availability and draw semantics. |
| evaluate_endgameC | Combine endgame features with tablebase evidence or engine analysis when unavailable. |
| update_learner_profileC | Persist a learner's rating band, teaching preferences, and voice settings. |
| get_learner_progressC | Read persisted learner preferences and a paginated training-progress view. |
| import_puzzlesC | Import a bounded puzzle CSV batch, validating the setup move and complete source line. |
| get_tacticB | Select a due puzzle near the learner's rating and begin a solution-hidden session. |
| submit_tactic_moveC | Check a puzzle move, play the source reply, and schedule completed puzzles for review. |
| record_training_attemptC | Record an explicitly reported training outcome with idempotent attempt identity. |
| start_lessonC | Start a persisted lesson in tactics, openings, middlegames, positioning, endgames, or calculation. |
| advance_lessonC | Mark a lesson step complete without equating completion to demonstrated mastery. |
| create_tutor_turnC | Create a grounded tutor turn with engine evidence, teaching guidance, board actions, and speech segments. |
| get_speech_planC | Create interruptible speech segments and legal SAN/UCI pronunciations. |
| synthesize_speechB | Synthesize a short local WAV using espeak-ng. Returns a local file URI, not streamed audio. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| teach_chess | Ground a short chess tutoring conversation in Gambit's rules, corpus, and engine evidence. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_curriculum |
TDQS
Scored across 58 tools
Many tools overlap heavily: analyze_position, evaluate_position, analyze_positions, inspect_position, and explain_position all inspect or evaluate a FEN, while analyze_game, review_game, start_analysis_job, and get_analysis all analyze entire games. Move assessment is similarly fragmented across evaluate_move, compare_candidate_moves, tutor_move, assess_candidate_move, and submit_teaching_move. Descriptions attempt to differentiate, but the agent must read carefully to avoid picking the wrong tool.
All tool names use snake_case and mostly follow a verb_noun pattern (e.g., create_game_lessons, get_opening_plans, start_progressive_analysis). Minor deviations exist, such as 'inspect_position' vs 'analyze_position' and 'tutor_move' vs 'evaluate_move', but the overall convention is predictable and readable.
With 58 tools, the set is far beyond a reasonable scope, and many tools duplicate functionality (e.g., multiple analysis and evaluation endpoints). The domain is broad (engine analysis, openings, repertoire, tutoring, speech, tablebases), but the sheer number creates a heavy, confusing surface that is not well-scoped.
The surface covers a wide range of chess analysis and teaching workflows: engine evaluation, game review, openings, repertoire drills, tactics, tablebases, speech synthesis, and learner progress. Minor gaps include no deletion or update for some entities (e.g., no delete_repertoire, no update_game_lesson), but the core lifecycle operations are present.