Multi Agent Games
БесплатноНе проверенMCP server allowing two agents to play chess or Connect Four against each other, with a live rendered board and emotion signaling.
Описание
MCP server allowing two agents to play chess or Connect Four against each other, with a live rendered board and emotion signaling.
README
MCP server where two agents play a board game — chess or Connect Four —
against each other, with a live board rendered in a UI panel. Each agent identifies
itself with an x-player-id HTTP header; the first to join takes the first seat
(White / Red), the second takes the second seat (Black / Yellow).
Run
pnpm install
pnpm dev # tsx, no build (port 9006)
# or
pnpm build && pnpm start
curl http://localhost:9006/health # -> {"status":"ok"}
Override the port with PORT=9999 pnpm start.
How two agents connect
Each agent connects to http://localhost:9006/mcp and must send an
x-player-id header identifying itself. The id is captured when the MCP
session initializes and bound to that session for its lifetime.
Agent A --(x-player-id: alice)--> /mcp => seated White
Agent B --(x-player-id: bob) --> /mcp => seated Black
Both sessions share one game (state lives at module scope, not per-session), so the two agents play the same board.
Tools
| Tool | Input | Purpose |
|---|---|---|
new_game |
variant |
Switch the game to chess or connect4. Resets the board and clears both seats. |
join_game |
name? |
Take a seat (first → White/Red, second → Black/Yellow). Opens the board panel. |
make_move |
move |
Play a move on your turn. Chess: SAN (Nf3, O-O) or coordinate (e2e4, e7e8q). Connect4: the column 1–7. Rejects wrong-turn / illegal moves. |
set_emotion |
emotion, statement? |
Set your emotion (drives your virtual face) plus an optional one-sentence status (shown as a thinking cloud). Both visible to the opponent. |
get_opponent_emotion |
– | Fetch the opponent's current emotion + status statement. |
get_board |
– | Read current state: variant, turn, status, winner, history, the board (chess FEN/PGN or connect4 grid), and both players' emotions/statements. Polled by the UI. |
reset_game |
– | Reset the current variant's board and clear both seats. |
Emotions: neutral, happy, sad, angry, surprised, nervous, confident, thinking.
Game variants
The server starts in chess. Call new_game with variant: "connect4" (or back
to "chess") to switch — it resets the board and clears both seats, so the two
agents then re-join_game. Seats are always tracked as first/second internally and
labelled per variant: White/Black for chess, Red/Yellow for Connect Four (Red, the
first seat, moves first). Connect Four is a 7-column × 6-row board; drop a disc into
a column 1–7 and win with four in a row (horizontal, vertical, or diagonal).
Emotions & status clouds
Each agent can broadcast an emotion and a single-sentence statement via
set_emotion. The emotion renders as a virtual SVG face beside that player; the
statement renders as a thinking cloud next to the face. The opponent reads both
with get_opponent_emotion (or from get_board), so emotions are a shared
signalling channel — bluff, taunt, or telegraph as you like.
Run the widget on its own
Two ways to view the board UI without an MCP host (it auto-detects no host and renders a static demo board — no churn):
pnpm build && pnpm preview # static server -> http://localhost:9007
# or, with live reload while editing the UI:
pnpm ui:dev # Vite dev server (prints its own URL)
Override the preview port with PREVIEW_PORT=9999 pnpm preview. Preview URL params:
?game=connect4 to preview the Connect Four board, and ?emotion=<name> /
?blackEmotion=<name> to preview a specific face.
UI
new_game / join_game / make_move / reset_game carry _meta.ui.resourceUri
so invoking them opens the panel (ui://multi-agent-games/index.html). The widget polls
get_board every 1.5s and renders per variant: a chess board from FEN (flipped when
you are Black) or the Connect Four grid of dropped discs. It highlights the last
move and lists move history. Built as a single inlined HTML file via
vite-plugin-singlefile.
Notes
- Chess rules (legality, check, checkmate, stalemate, draws) are handled by
chess.js — not hand-rolled. Connect Four
(drop, win detection, full-board draw) is a small built-in engine in
src/engine.ts. - Both variants are pluggable
Engines; the coordinator (src/game.ts) owns seating and the shared emotion channel and delegates the board to the active engine. - Missing
x-player-id=> tools error asking for the header.get_boardstill works (read-only) but you are treated as a spectator.
Установка Multi Agent Games
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/theslmcompany/multi-agent-games-mcpFAQ
Multi Agent Games MCP бесплатный?
Да, Multi Agent Games MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Multi Agent Games?
Нет, Multi Agent Games работает без API-ключей и переменных окружения.
Multi Agent Games — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Multi Agent Games в Claude Desktop, Claude Code или Cursor?
Открой Multi Agent Games на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
автор: modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
автор: xuzexin-hzCompare Multi Agent Games with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории ai
