双陆棋MCP
和你最喜欢的LLM玩双陆棋。
一款双陆棋游戏,可以通过Claude Desktop(通过MCP)或作为独立的网络应用程序玩。
项目结构
packages/
├── game/ # Core game logic (Redux-based, framework-agnostic)
├── viewer/ # React UI components for the board
├── web-app/ # Standalone web app ("couch mode")
└── mcp-server/ # MCP server for Claude Desktop integration先决条件
- Node.js 18+
- pnpm(
npm install -g pnpm)
安装
git clone
cd backgammon-mcp
pnpm install运行模式
沙发模式(独立Web应用程序)
在浏览器中本地玩双陆棋——非常适合两个人在同一台设备上玩。
# Start the development server
pnpm --filter @backgammon/web-app dev打开http://localhost:3000在您的浏览器中。
克劳德桌面(MCP应用程序)
与克劳德作为对手玩双陆棋,或观看克劳德与自己对弈。
1.构建MCP应用程序
MCP服务器需要一个内置的客户端UI包。这必须在首次使用之前以及对查看器或客户端代码进行任何更改之后完成。
# Build the client UI bundle (required)
pnpm --filter @backgammon/mcp-server build:client这创造了 packages/mcp-server/dist/client/index.html -包含交互式板UI的单个文件包。
2.配置克劳德桌面
编辑您的Claude Desktop配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json
添加双陆棋服务器:
{
"mcpServers": {
"backgammon": {
"command": "npx",
"args": [
"tsx",
"/ABSOLUTE/PATH/TO/backgammon-mcp/packages/mcp-server/src/server.ts"
]
}
}
}重要:替换 /ABSOLUTE/PATH/TO/backgammon-mcp 以及此存储库的实际完整路径。
3.重新启动克劳德桌面
保存配置后,重新启动Claude Desktop。您应该在MCP服务器列表中看到“双陆棋”。
4.开始游戏
让克劳德开始游戏:
“我们玩双陆棋吧!开始一个新游戏,我玩白棋,你玩黑棋。”
或者观看AI vs AI游戏:
“开始一个双陆棋游戏,你可以控制两个玩家,并与自己对抗。”
已知限制
董事会每一轮都重新抽签:每次您或模型转弯时,板UI都会完全重新绘制。这是一个正在讨论的已知问题 modelcontextprotocol/ext应用程序#430,所以希望将来能有所改善。
End Turn不会自动触发模型:当您在视图中单击“结束转弯”时,模型不会自动转弯。MCP应用软件开发工具包 ui/message (至少在Claude Desktop中)只填充聊天输入,但不发送——你必须按回车键。同样地, ui/update-model-context 推迟到下一条用户消息。作为一种解决方法,在单击“结束转弯”后,在聊天中按回车键提示模型进行转弯。
发展
运行测试
# All packages
pnpm test
# Specific package
pnpm --filter @backgammon/game test类型检查
pnpm typecheck棉绒
pnpm lint建筑
- 游戏/:纯粹的游戏逻辑,没有UI依赖。使用Redux Toolkit进行状态管理。导出缩减器、操作、选择器和类型定义。
- 观众/:渲染双陆棋棋盘的React组件。完全受控-通过props接收所有状态,通过回调发出事件。使用CSS自定义属性进行主题化。
- web应用程序/:独立的Vite+React应用程序,结合了游戏逻辑和查看器。使用Redux进行状态管理。
- mcp服务器/:MCP服务器,它公开游戏工具,并作为MCP应用程序资源为观众提供服务。查看器使用vite插件singlefile捆绑为单个HTML文件。
