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.
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.
Key moments · click to jump
Moves · graded by winning chances lost
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