Skip to main content
Glama
danilop

chess-support-mcp

by danilop

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
create_or_reset_gameA

Create a new game or reset the current one to the initial position.

Returns (in result):

  • ok: boolean

  • status: object with the current position metadata:

    • fen: string (Forsyth–Edwards Notation)

    • side_to_move: "white" | "black"

    • fullmove_number: int

    • halfmove_clock: int

    • ply_count: int (number of half-moves made)

    • castling_rights: string like "KQkq" or "-"

    • en_passant_square: algebraic square like "e3" or "-"

    • last_move_uci: string | null

    • last_move_san: string | null

    • who_moved_last: "white" | "black" | null

    • is_check: boolean

    • is_game_over: boolean

    • result: string like "1-0", "0-1", "1/2-1/2" or null

    • pieces: object mapping squares to piece symbols, e.g. {"e4":"P", "e5":"p"}

  • moves: array of UCI strings for all moves played so far (empty after reset)

  • moves_detailed: array of { ply:int, side:"white"|"black", uci:string, san:string }

Notes:

  • This tool does not suggest moves; it only manages state.

get_statusA

Get current position metadata for model-friendly planning.

Returns (in result):

  • fen, side_to_move, fullmove_number, halfmove_clock, ply_count

  • castling_rights, en_passant_square

  • last_move_uci, last_move_san, who_moved_last

  • is_check, is_game_over, result

  • pieces: square-to-piece map (e.g., {"a2":"P", "e1":"K"})

add_moveA

Apply a move in UCI format if legal.

Parameters:

  • uci: string like "e2e4", "g1f3", promotions like "e7e8q".

Returns (in result):

  • On success: { accepted:true, status: Status, moves:[...], moves_detailed:[...] } where Status is the same shape returned by get_status(), including last_move_{uci,san}.

  • On failure: { accepted:false, reason:"illegal", expected_turn:"white"|"black", status: Status }

Notes:

  • This tool validates legality only; it does not suggest or score moves.

is_legalA

Check if a UCI move is legal in the current position.

Returns (in result):

  • { legal:boolean }.

  • If the UCI string cannot be parsed, { parse_error:string, legal:false }.

list_movesA

Return all moves played so far in UCI, ordered from the start of the game.

list_moves_detailedA

Return detailed move history.

Each item: { ply:int, side:"white"|"black", uci:string, san:string }

last_movesA

Return the last N moves in UCI (default 1).

Parameters:

  • n: integer >= 1. If n <= 0, returns an empty list.

last_moves_detailedA

Return the last N moves with details (default 1).

Each item: { ply:int, side:"white"|"black", uci:string, san:string }. Parameters:

  • n: integer >= 1. If n <= 0, returns an empty list.

board_asciiA

Return an ASCII representation of the board from White's perspective.

Notes:

  • This is a human-oriented view, suitable for displaying the board to users in UIs, logs, or chat.

  • For model reasoning, prefer the JSON map in get_status().pieces.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.8/5.0

Scored across 9 tools

Disambiguation4/5

Most tools have clearly distinct purposes, but the closely named list_moves/list_moves_detailed and last_moves/last_moves_detailed differ only in detail level, which could cause misselection.

Naming Consistency3/5

The naming is predominantly verb_noun in snake_case, but deviations like 'is_legal' and 'board_ascii' break the pattern, creating minor inconsistency.

Tool Count4/5

Nine tools is within the typical well-scoped range, though list_moves and last_moves could potentially be consolidated with an optional limit parameter.

Completeness3/5

Core lifecycle is covered—create/reset, apply move, query status, history—but missing legal move enumeration and FEN import represent notable gaps for an agent.

Maintenance

ActivityInactive
ResponsivenessNo issues