Skip to main content
Glama
uudruid74

pente-mcp

by uudruid74

pente-mcp — ChanBlake's Pente 向け AI/MCP アドオン

任意の MCP 対応 AI が、ChanBlake のブラウザゲーム を共有ボードとして使用し、人間とライブで Pente をプレイできるようにする MCP サーバーです。

これはゲームのフォークでも再実装でもありません。アドオンクライアントです。ゲーム自身の PeerJS マルチプレイヤールームに、人間が別のブラウザタブでゲームを開くのとまったく同じように、2 人目のプレイヤーとして参加し、それを 4 つの標準 MCP ツールとして公開します。ChanBlake のゲームコードはここには一切含まれていません。 それは彼のリポジトリにあり、このプロジェクトはそれを参照するだけで、同梱はしません。

ツール

役割

説明

create

ホスト

新しいテーブルを BLACK として開き、招待 URL を返す

join

ゲスト

既存のブラウザホストルームに WHITE として参加する

move(row, col)

どちらでも

石を 1 つ置き、返信を最大 20 秒待つ

view

どちらでも

同期されたボード + ゲーム状態を出力する

内容

  • pente_mcp.py — stdio MCP サーバー (create / join / move / view)。

  • pente-bot.js — ゲストボット。PeerJS/WebRTC 経由で WHITE としてルームに参加する。

  • pente-host.js — ホストアダプター。BLACK としてルームを開く。

  • pente_scan.py — より安全なプレイのためのスタンドアロンのボード脅威スキャナー (オープンフォー、キャプチャフレーム、補充可能なギャップ、勝利マス)。

  • webrtc-polyfill.js — PeerJS を Node で動作させる (@roamhq/wrtc シム)。

  • test/fake-host.js — ヘッドレスボットテスト用のプロトコル準拠ホスト。

  • docs/ — 設計仕様書。

Related MCP server: multi-agent-games

仕組み

ブラウザゲームのマルチプレイヤーは、2 つのピアを接続するために PeerJS を使用します。ルームのホストピア ID は chanblake-pente-v3-<roomcode> です。ゲストボットはその ID に接続し、ゲームの hello / sync-request を送信して、move-request を発行します。ブラウザは不要で、WebRTC 実装だけで済みます。pente-host.js はホスト側で同じプロトコルをミラーリングします。Python MCP サーバーは両方をツールとしてラップします。

要件

  • Node.js (@roamhq/wrtc シム — webrtc-polyfill.js を参照)

  • Python ≥ 3.11 と mcp (pip install mcp)

  • パブリック PeerJS クラウド (0.peerjs.com:443) へのインターネットアクセス

クイックスタート

npm install
pip install mcp
python pente_mcp.py          # stdio MCP server

MCP クライアントでサーバーを登録し、次に:

create            -> { "room_code": "ABC234", "join_url": "...?room=ABC234", "i_am": "BLACK" }
view              -> full 19x19 board, whose_turn, captures, game_over
move(row=9, col=9)-> your_move + their_move (or "no response from player")

人間が https://chanblake.github.io/pente/?room=ABC234 を開いてプレイします — AI が対戦相手です。

着手する前にボードをスキャン:

python pente_scan.py board.json

クレジット

このプロジェクトが接続するゲームは ChanBlake's Pente です: https://github.com/ChanBlake/pente — 非公式で、提携関係のない統合レイヤーです。このプロジェクトはネットワーク経由で手を送信するだけで、ゲームのファイルやメモリを変更することはできません。

既知の制限

  • ルームコード: アプリはコードから I、O、0 を除去します。create はアプリ自身のアルファベット ABCDEFGHJKLMNPQRSTUVWXYZ23456789 のみからコードを生成するため、招待は常に 6 文字として解析されます。

  • パブリッククラウドのみ: ローカルの PeerServer + Node ホストはピアを登録しません (Node 内 WebRTC の制限)。パブリッククラウドを使用してください。

  • 単一のアクティブテーブル サーバープロセスごと。

ライセンス

MIT — この統合レイヤー。ChanBlake のゲームには独自のライセンスがあります (彼のリポジトリを参照)。

Related MCP Connectors

Related MCP Servers