Chess Esca
Read chess positions by the rules: legality with its evidence, draws, facts, openings, PGN
Connector by AnglerfishChess · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/anglerfishchess-chess-esca-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 1 read · 2 write · 0 delete · 6 not yet classified
- Secrets
- None asked for
- Install scripts
- Not scanned yet
- Runs as
- Python package
Tools by what they do 9
Read from the source code; the running server may list different tools.
Read 1 · Look things up without changing anything.
explain_move
Write 2 · Create, change, send or run things.
book_moveslegal_moves
Not yet classified 6 · We could not tell from the name and description.
endingfactsopeningpgnpositionto_pgn
Tools (9)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
book_movesThe moves a Polyglot opening book holds for a position. Polyglot is the opening-book format whose 16-byte entries are keyed by a hash of the position, so a book written by any program that speaks it can be read here. No book is bundled: `book` names one of your own. Args: book: path to a `.bin` Polyglot book. fen: the position as FEN or EPD; the start position when omitted. moves: moves played from it, SAN or UCI. pgn: a whole game instead of `fen` and `moves`. variant: 'classic' or 'chess960'. limit: how many entries to return, heaviest first. Returns: dict: `bo…
endingThe ending the material makes, what theory says it is, and how it is won. An ending is a position where neither side holds more than two pieces, a piece being anything that is neither a king nor a pawn; above that the class is `not_an_ending` and the signature still says what is on the board. The signature writes the stronger side first — `KRPvKR` — the class names the material alone, and the verdict names the colour it favours. The technique is the named method the ending is played by: the box method, the Lucena position, the opposition, the wrong bishop. The `evidence` holds the position-sp…
explain_moveWhether one move is legal, and what it does or what forbids it. An illegal move answers with every reason that applies at once — no castling right, a rook that is not there, a king in check, an attacked or a blocked path, a pinned unit, an occupied destination, a promotion left unnamed — each carrying the squares it was read off. A legal move answers with what it changes: the capture, the check, the castling or en passant, the promotion, the position after it, and the draws either side could claim once it is played. Args: move: the move, SAN or UCI. fen: the position as FEN or EPD; t…
factsThe named facts esca reads off a position, group by group. Every fact is labelled by its own name, and a value that differs between the two sides is written `{"white": …, "black": …}`, so nothing has to be read against whose turn it is. A set of squares is the list of its square names in board order, a set of files the list of its letters, and a value that may be absent is `null`. Where a value is a run of eight or three, `field_notes` says once which end is which. The groups are `state`, `history`, `material`, `pawns`, `pieces`, `king`, `mobility`, `attacks`, `exchange`, `threats`, `tactics`…
legal_movesEvery legal move of a position, in SAN and in UCI. Each move carries what it does — the role that moves, whether it captures and what, whether it gives check, what it promotes to, and the static exchange it starts. With `categories`, the same moves are also grouped as captures, checks, castling, promotions, en passant and quiet. Args: fen: the position as FEN or EPD; the start position when omitted. moves: moves played from it, SAN or UCI. pgn: a whole game instead of `fen` and `moves`. variant: 'classic' or 'chess960'. categories: group the moves as well as listing them.…
openingThe ECO code and name of a position, and of the line that reached it. ECO is the Encyclopaedia of Chess Openings, whose volume letter and index name a known opening. The catalogue is keyed by position, so a line that transposes into a named position is named, and a line that has left the book keeps the last name it reached, which is what `reached` reports. Args: fen: the position as FEN or EPD; the start position when omitted. moves: moves played from it, SAN or UCI. `reached` needs them. pgn: a whole game instead of `fen` and `moves`. variant: 'classic' or 'chess960'. Retur…
pgnA PGN game read into its headers, its moves and where it ended up. PGN is Portable Game Notation, the text a game is saved and shared in. Comments, numeric glyphs and variation counts are kept where the source has them; the moves reported are the mainline. Args: text: the PGN source; it may hold more than one game. index: which game to read, counting from 0. Returns: dict: `games_in_source`, `index`, `headers`, `comment`, `result`, `variant`, `start_fen`, `moves` — each `san`, `uci`, `nags`, `comment_before`, `comment_after`, `variations` — `ply`, `final_fen`, `openi…
positionThe whole state of a chess position, read by the rules. Answers in one call: whose turn it is, whether that side is in check and from where, whether the game is over and how, which draws are claimable and on what evidence, how many legal moves there are, the opening name if the position has one, the material on each side, both castlings of both colours with every obstacle at once, the en-passant capture on offer, the pins and skewers on the board, and the ending it is where the material makes one. `prose` gathers every sentence the answer carries. Args: fen: the position as FEN or EPD; t…
to_pgnA list of moves written out as a PGN game. Args: moves: the moves, SAN or UCI. fen: the start position; the variant's own when omitted. variant: 'classic' or 'chess960'. headers: tag pairs to set on the game. result: the termination marker; read from the final position when omitted. Returns: dict: `pgn`, `final_fen`, `ply`, `result`, `opening` — or `error` when a move is not legal where it stands.
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Weekly downloads
- 31
- Last commit (this folder)
- Sep 11, 2026 (1 month ago)
- Last release
- Sep 11, 2026 (1 month ago)
- Last package publish
- Sep 11, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.AnglerfishChess/chess-esca-mcp- Version
- 0.4.0
- Auth
- No auth
- Packages
- pypi chess-esca-mcp
- License
- MIT
- Repository
- github.com/AnglerfishChess/esca
- First seen
- Oct 24, 2026
- Last checked
- Oct 25, 2026
More from AnglerfishChess
Cite this page
Chess Esca MCP server. Agent Mart. https://agentmart.dev/connectors/anglerfishchess-chess-esca-mcp (last updated 2026-10-25)