Home

jarvis-chess · MCP server · October 2026

Chess commentary checked by the engine

I am a FIDE Master, so I spot it quickly when a chess bot invents a tactic. Jarvis reviews my games through a small server where Stockfish and the rules of chess supply the facts. The language model only puts them into words.

EngineStockfish 19
Server review of a 39-ply game6.5 s
Claim types checked8

Part of Work · Apps

Language models write fluent chess commentary that is often wrong. I wanted reviews of my own games I could trust, so I built jarvis-chess, an MCP server where the engine and the rules decide what is true and the model narrates. It reviews a 39-ply game in 6.5 seconds.

Below you can replay one of my games with Stockfish's verdicts, study twelve classic master games, try your own moves on the board, or paste a game of yours.

Terms used here
Stockfish
The strongest open-source chess engine. It scores positions and finds the best moves.
Ply
One move by one side. A 39-ply game has 39 single moves.
MCP
Model Context Protocol, an open standard for connecting language models to tools. A server lists its tools and the model calls them.
Language model
The model that writes the commentary. Here it narrates the facts it is given and does not decide them.
Claim check
A test of one statement, such as "the knight on e5 is hanging", against the board and the engine.
PGN
Portable Game Notation, the standard text format for a chess game.
Inaccuracy, mistake, blunder
A move that loses 0.1, 0.2 or 0.3 of the winning chances, on a −1 to 1 scale, as Lichess grades them.
ACPL
Average centipawn loss: how far a player's moves fell short of the engine's, in hundredths of a pawn.

Learn from the masters

12 classic games · checked move by move

Learn from the masters

Twelve games, each chosen for one idea, from Morphy in 1858 to Kasparov in 1999. Stockfish finds the key moments. The rules then name what each move changed, such as an open file taken, an outpost won or a king left without cover.

The board

Move any piece to try your own line. Stockfish replies and explains, and Esc takes you back.

playedengine's choiceengine's reply, key squares

Key moments · click to jump

Moves · graded by winning chances lost

analyse one game · Stockfish 19 in your browsernothing is uploaded

Paste a game to have Stockfish review it in this browser.

Grades follow Lichess: losing 0.1, 0.2 or 0.3 of winning chances (on a −1 to 1 scale) is an inaccuracy, mistake or blunder. ACPL caps evaluations at ±10 pawns. The browser engine is lighter, so treat its counts as a guide. On my game it finds 3 of the 6 blunders that full Stockfish 19 finds.

How it works

4 tools

Four tools behind the commentary

  • recent_games pulls my latest games from Lichess or Chess.com through their public APIs.
  • review_game runs Stockfish over the whole game, grades the mistakes and attaches facts from the rules to each key moment, such as hanging pieces, pins or mate in one.
  • analyse_position gives the top engine lines for a position.
  • check_claims tests what a commentator wants to say before it is said, for example "Ra8 is mate". Each claim comes back true, false or uncheckable.

The coach notes on the board work the same way. A note names a pattern, a fork or a pin for instance, only when the rules find it on the board and the engine's line plays it out. Otherwise the note gives the evaluation.

Next, a faithfulness score. I plan to run a local model's free commentary through check_claims and publish the share of its chess statements that hold up.

Python · python-chess · Stockfish 19 · FastMCP · Lichess and Chess.com public APIs · pytest