Skip to main content
Glama
uudruid74

pente-mcp

by uudruid74

pente-mcp — ChanBlake's Pente를 위한 AI/MCP 애드온

MCP 서버로, MCP를 지원하는 모든 AI가 ChanBlake의 브라우저 게임을 공유 보드로 사용하여 인간과 실시간으로 Pente를 플레이할 수 있게 해줍니다.

이것은 게임의 포크나 재구현이 아닙니다. 애드온 클라이언트입니다. 즉, 게임 자체의 PeerJS 멀티플레이어 방에 두 번째 플레이어로 참여합니다. 인간이 다른 브라우저 탭에서 게임을 여는 것과 똑같이 말입니다. 그리고 이를 네 가지 표준 MCP 도구로 노출합니다. ChanBlake의 게임 코드는 여기에 포함되지 않습니다. 그 코드는 그의 리포지토리에 있으며, 이 프로젝트는 참조만 하고 배포하지 않습니다.

도구

역할

하는 일

create

호스트

새 테이블을 BLACK으로 열고 초대 URL을 반환

join

게스트

기존의 브라우저 호스팅 방에 WHITE로 참여

move(row, col)

양쪽

돌 하나를 놓고 응답을 최대 20초 동안 대기

view

양쪽

동기화된 보드 + 게임 상태를 덤프

구성 내용

  • pente_mcp.py — stdio MCP 서버(create / join / move / view)

  • pente-bot.js — 게스트 봇; PeerJS/WebRTC를 통해 WHITE로 방에 참여

  • pente-host.js — 호스트 어댑터; BLACK으로 방을 엶

  • pente_scan.py — 더 안전한 플레이를 위한 독립형 보드 위협 스캐너(열린 4목, 캡처 프레임, 채울 수 있는 빈틈, 승리 칸)

  • webrtc-polyfill.js — Node.js에서 PeerJS가 실행되도록 함(@roamhq/wrtc shim)

  • test/fake-host.js — 헤드리스 봇 테스트를 위한 프로토콜 정확한 호스트

  • docs/ — 디자인 스펙

Related MCP server: multi-agent-games

작동 방식

브라우저 게임의 멀티플레이어는 PeerJS를 사용해 두 피어를 연결합니다. 방의 호스트 피어 ID는 chanblake-pente-v3-<roomcode>입니다. 게스트 봇은 이 ID에 연결해, 게임의 hello / sync-request를 보내고 move-request를 주고받습니다. 브라우저는 필요 없고 WebRTC 구현만 있으면 됩니다. pente-host.js는 호스트 측에서 동일한 프로토콜을 구현합니다. Python MCP 서버는 이 둘을 도구로 래핑합니다.

요구 사항

  • Node.js (@roamhq/wrtc shim — webrtc-polyfill.js 참조)

  • Python ≥ 3.11 및 mcp (pip install mcp)

  • 공용 public PeerJS cloud에 접근 가능해야 함(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 호스트는 피어를 등록하지 않습니다(WebRTC-in-Node 제약). 공용 클라우드를 사용하세요.

  • 단일 활성 테이블 — 서버 프로세스당 하나만.

라이선스

MIT — 이 통합 레이어에 대한 라이선스입니다. ChanBlake의 게임에는 그 자체의 라이선스가 있습니다(해당 리포지토리 참조).

Related MCP Connectors

Related MCP Servers