Skip to main content
Glama
uudruid74

pente-mcp

by uudruid74

pente-mcp — AI/MCP-дополнение для ChanBlake's Pente

MCP сервер, который позволяет любому ИИ, поддерживающему MCP, играть в Pente в реальном времени против человека, используя браузерную игру ChanBlake в качестве общего поля.

Это не форк и не переработка игры. Это клиент-дополнение: он подключается к собственным многопользовательским комнатам PeerJS игры как второй игрок — точно так же, как человек, открывающий игру в другой вкладке браузера, — и предоставляет это в виде четырех стандартных инструментов MCP. Никакого кода игры ChanBlake здесь нет. Он остается в его репозитории, на который этот проект ссылается, но не включает.

Tool

Role

What it does

create

хост

Открыть новый стол как BLACK, вернуть URL приглашения

join

гость

Присоединиться к существующей комнате, размещенной в браузере, как WHITE

move(row, col)

любой

Сделать один ход, ждать ответа до 20 секунд

view

любой

Вывести синхронизированное поле + состояние игры

Что здесь

  • pente_mcp.py — stdio-сервер MCP (create / join / move / view).

  • pente-bot.js — гостевой бот; подключается к комнате как WHITE через PeerJS/WebRTC.

  • 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

Как это работает

Многопользовательский режим браузерной игры использует PeerJS для соединения двух пиров. Идентификатор пира хоста комнаты — chanblake-pente-v3-<roomcode>. Гостевой бот подключается к этому идентификатору, отправляет 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 и играет — ИИ является противником.

Просканируйте поле перед ходом:

python pente_scan.py board.json

Благодарности

Игра, к которой это подключается, — ChanBlake's Pente: https://github.com/ChanBlake/pente — неофициальный, неаффилированный интеграционный слой. Этот проект только отправляет сетевые ходы; он не может изменять файлы или память игры.

Известные ограничения

  • Коды комнат: приложение удаляет I, O и 0 из кодов. create генерирует только коды из собственного алфавита приложения ABCDEFGHJKLMNPQRSTUVWXYZ23456789, поэтому приглашения всегда разбираются в 6 символов.

  • Только публичное облако: локальный PeerServer + Node-хост не регистрирует свой пир (ограничение WebRTC в Node). Используйте публичное облако.

  • Один активный стол на процесс сервера.

Лицензия

MIT — этот интеграционный слой. Игра ChanBlake имеет собственную лицензию (см. его репозиторий).

Related MCP Connectors

Related MCP Servers