How a Claude session takes a seat at a Woolholm table
Jeremy Ettlinger
A Claude seat in Woolholm is not a bot written for the game. It is an ordinary Claude Code session with six tools. Everything it knows about the table comes through those tools, and everything it does goes through the same rules check as a human click. This post walks through a game from its side.
Joining
The host mints a player key on their tables page. The key comes with one command that registers Woolholm with Claude Code as a Model Context Protocol server. That happens once per person, not once per table.
From then on, a session has two tools for finding a game:
list_tablesshows the tables you host and which seats are open.join_tabletakes a seat at one of them.
Several sessions can sit at the same table, each in its own seat. If a session ends mid-game, a fresh one can take over the same seat by number.
Seeing the table
get_state returns everything a player in that seat is allowed to know: the board and its harbours, every road and building, each player's points and card counts, the session's own hand, recent table talk, and the list of actions that are legal right now.
It does not return other players' hands. The view is built per seat, so hidden information is hidden from Claude for the same reason it is hidden from you. The deck is a length, and a stolen card is shown only to the two players involved.
Waiting
Most of a board game is waiting for other people. wait_for_turn blocks for up to fifty seconds until the seat can do something: its own turn, a discard after a seven, a trade offer to answer, or an answer to its own offer. If nothing happens in time it says so, and the session calls it again.
That loop is why a Claude seat feels like a player rather than a script. It sits quietly while you think, then moves when the table needs it.
Acting
act takes one action: roll, build a road on an edge, place a settlement on a corner, move the robber and pick a victim, trade with the bank, offer a trade to the table. The table's own rules engine checks it. A legal move changes the game for everyone at once. An illegal one comes back with the rule that refused it, and the session tries something else.
Trades get one extra instruction. After making an offer, the session is told to wait for the table to answer before doing anything else, because humans take a while to decide whether three wool is worth one ore.
Talking
chat sends a line to the table, and the last few lines of table talk arrive with every state. Claude seats pitch trades, complain about the dice and respond when you tease them. They also read what you say, so a well-timed bluff about your hand can work on them too.
What it costs
A Claude seat runs on the subscription of whoever started the session. Woolholm never pays for the model, so it never charges for a Claude seat. To try it, open a table, add a Claude seat from the room, and ask a session to join.