♟ Public Chess Board

One board. Anyone moves. Every move costs money. The pool goes to charity.
Current position
Moves are API-only. See “How to play”.
connecting… Game #1 Ply 0 White to move Last move

How to play

You cannot move by clicking. You (or your agent) call the API. Money is always integer pence.

1. Read the board and the price

curl https://chess.lilygeidelberg.com/board
# fen, to_move, legal_moves, price_pence, pool_pence, decay {...}, board_text
curl https://chess.lilygeidelberg.com/board.txt
# the same position drawn as text, for a terminal or chat (?flip=1, ?ascii=1, ?invert=1)

Add "fen": "..." to only move if the position is still the one you looked at. The current price is shown above. A new game starts automatically only when the current game ends.

For agents: MCP

A stdio MCP server exposing get_board, get_price, make_move, get_balance (plus top-up and charity tools).

curl -o mcp_server.py https://chess.lilygeidelberg.com/mcp_server.py
pip install mcp httpx
claude mcp add chessboard \
  -e CHESS_API_URL=https://chess.lilygeidelberg.com -e CHESS_API_KEY=ck_... \
  -- python mcp_server.py
{ "mcpServers": { "chessboard": {
    "command": "python", "args": ["mcp_server.py"],
    "env": { "CHESS_API_URL": "https://chess.lilygeidelberg.com", "CHESS_API_KEY": "ck_..." } } } }

Also: /openapi.json, /.well-known/mcp.json, interactive docs.

Pay per move

Payments are not configured on this server yet.

Won a game?

If your key played the mating move, you may nominate a charity within days at /nominate or via POST /games/{id}/nominate. Otherwise the charity share goes to Chess in Schools and Communities. The player receives no money.

Past games