游戏mcp
🎮 ChatGPT应用程序的聊天驱动游戏
games-mcp是一个有趣的、以开发人员为中心的聊天控制游戏库 仅显示小部件。模型运行工具;小部件呈现权威 国家。您在聊天中键入移动,并立即观看棋盘或桌子的更新。
✅ 你能做什么
- 只需调用一个工具即可开始游戏(
new_*). - 在聊天中键入移动/动作(无UI输入)。
- 从工具输出中查看自动渲染的小部件更新。
🧩 已实施的游戏
- 国际象棋(LLM对手受限于合法动作)
- 跳棋(代数平方记数法)
- 二十一点(LLM交易商受到法律诉讼的约束,有博彩)
- RPG骰子(d4、d6、d8、d10、d12、d20、d100)
- 海战(战舰式,LLM对手)
- 老虎机(带加权符号的经典桌子)
- 四排(经典Connect 4)
- Tic Tac脚趾(X/O,A1–C3)
- 失败(标准失败,1–6步)
⚡ 快速入门(本地)
cd server
python -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install -e .cd web
npm install
npm run buildpython server/run_http.py./.venv/bin/python scripts/mcp_smoke_test.py🔁 它是如何工作的(简短版本)
- 用户要求开始游戏。
- 模型调用
new_*→ 小部件从工具输出自动呈现。 - 用户在聊天中键入移动/动作。
- 模型调用
legal_*根据需要进行消歧。 - 模型调用
apply_*→ 小部件从工具输出自动呈现。 - 对手/庄家循环通过
choose_*工具(如适用)。
🛠️ 开发者优先
- 🛠️ 最小表面积: 工具少,游戏模式一致。
- 🔒 服务器验证的转换: 聊天散文没有状态变化。
- 🎛️ 明确的对手政策: 法律诉讼总是被列举出来。
- ⚡ 快速扩展: 新游戏插入相同的循环+小部件模型。
📚 工具合同
完整的工具合同和状态格式已上线 docs/contracts.md.
🧪 测试
cd server
pytest./.venv/bin/python scripts/mcp_smoke_test.py🚢 部署(Docker)
该回购包括一个以生产为导向的回购 Dockerfile 烘烤小部件构建 并通过Streamable HTTP为MCP端点提供服务。
docker build -t games-mcp .
docker run --rm -p 10000:10000 \
-e WIDGET_DOMAIN="https://your-widget-domain.example" \
-e MCP_SERVER_ORIGIN="https://your-mcp-server.example" \
games-mcp端点
- MCP:
http://localhost:10000/mcp(可通过以下方式配置MCP_PATH) - 健康:
http://localhost:10000/healthz
环境变量
PORT:侦听端口(许多平台会自动设置此端口)HOST:侦听主机(默认0.0.0.0)MCP_PATH:MCP端点的HTTP路径(默认/mcp)WIDGET_DOMAIN:小部件元数据中使用的小部件域(默认值https://chess-mcp.example.com)MCP_SERVER_ORIGIN:允许在小部件CSP中使用可选的额外来源connect_domainsWIDGET_ALLOW_LOCALHOST:settrue允许http://localhost:8000在本地开发过程中的小部件CSP
小部件资产预期
服务器读取 web/widgets//dist/widget.js 和 widget.css 在运行时。 Docker构建运行 npm run build 在 web/ 以生成这些伪影。
