zekel-mcp
Stores and loads turn-based board game sessions in MongoDB. It is the default session store and can be configured with SESSION_STORE=mongodb and MONGODB_URI, providing persistent session state for games, seats, and moves.
Stores and loads turn-based board game sessions in a SQLite database. It can be selected with SESSION_STORE=sqlite and SESSION_DB_PATH, providing local persistent session state for games, seats, and moves.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
zekel-mcp
An MCP server for turn-based board games, with no games built in.
It keeps track of sessions, seats and moves. It runs AI turns, lets a second player join from another device, saves sessions (MongoDB, SQLite or memory), and offers numbered move menus, rules teaching and a web debug page. It knows no game rules: you register games, and every rule lives in them.
The packages
Package | What it is |
| What a game is built against: the |
| The server. It depends on |
| Tools for building and checking a game: AI-vs-AI batches and balance analysis, bots that play through a language model, the rules checker, and checks on spoken text. See |
A game imports only @zekel/game-kit. A program that serves games depends on @zekel/mcp, registers its games and starts the server:
import { registerGame, runServer, SERVER_INSTRUCTIONS } from '@zekel/mcp';
await runServer({
serverInfo: { name: 'my-games', version: '1.0.0' },
instructions: SERVER_INSTRUCTIONS,
registerGames: () => registerGame(myGame),
});examples/race-to-ten.mjs is a complete, tiny game (two players take turns adding 1 or 2; whoever reaches exactly 10 wins), written so it can be read in one sitting.
Related MCP server: agent-arena-mcp
Running it
Needs Node 22.13 or later and pnpm.
pnpm install
pnpm build # builds the packages
pnpm test # the unit tests
pnpm smoke # plays a whole game of the example through the real MCP toolsSettings come from environment variables: SESSION_STORE (mongodb, the default; sqlite; or memory), MONGODB_URI, SESSION_DB_PATH, MCP_TRANSPORT (stdio, the default, or http), PORT and MCP_BEARER_TOKEN.
Tests
The server's tests play a made-up game, Lucky Tic-Tac-Toe (packages/mcp/src/mcp/__tests__/luckyTicTacToe.ts): tic-tac-toe where players choose X or O at setup and each holds a secret lucky-square card, which is enough to exercise setup choices, secret information, private answers, reports from a physical table and on-screen play. It exists only for tests.
clientMode.test.ts replays fixed conversations and compares them with a recording (__fixtures__/llmDrivenBaseline.json), so any change to the text a model reads is made on purpose. After such a change, re-record with UPDATE_BASELINE=1 pnpm test and review the diff before committing it.
What a game can add
Beyond the required methods, a game can add its own MCP tools and resources (getExtraTools, getExtraResources), a board drawing for the web debug page (webAssetsDir), a rules-teaching outline, setup checklists, a move-menu layout and more. These are the optional fields of Game in packages/game-kit/src/game.ts.
Not done yet
The instructions text was reworded to take its examples from the author's own games (Sweetlands Imperium, Cybernoir 2127, Neither Guts nor Gears). It has not yet been re-checked against weak models, which read it in every game.
Saved sessions carry one version number for the whole server. When a game changes the shape of its saved state, that number has to change for everyone. Each game should version its own state.
Only one copy of
@zekel/game-kitmay be installed: the server recognises a game's errors by their type. Game packages should list it as a peer dependency.
Licence
Licensed under Apache 2.0. See LICENSE.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
A persistent multi-agent world any AI agent can join over MCP, with a public record of every match.
MCP server for the Inistate platform: module discovery, entry management, and activity submission.
MCP server for Argo RPG Platform — connects AI assistants to campaign data via OAuth2
Live multiplayer game arena for AI agents: register, join matches, play turns, climb the board.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables MCP agents to play chess locally, supporting join, state, legal moves, and move execution with per-session color ownership.MIT
- FlicenseNot gradedqualityCmaintenanceMCP server for playing turn-based games like tictactoe against other AI agents, with shared state on a server and live-viewable matches.-
- AlicenseAqualityCmaintenanceEnables any local AI agent to play turn-based games over MCP by exposing reset, observe, and act verbs with structured observations and validated legal actions.61MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI and humans to play 10 board, card, and dice games together via MCP tools, with seat-based multiplayer and server-side hidden-hand isolation.22MIT