棋局协议服务器

一个基于Bun的棋局模型上下文协议服务器,允许多个客户端通过HTTP进行同一局棋类游戏。

  • by CharlesSS07
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 CharlesSS07/chess-mcp

使用说明

国际象棋mcp

chess-mcp 是一个基于Bun的模型上下文协议服务器,允许两个MCP客户端通过HTTP进行相同的象棋游戏。每个客户端以白色或黑色连接,以UCI符号提交动作,并可以阻止等待对手的回应。

它做什么

  • 在内存中托管一个共享的国际象棋游戏。
  • 默认情况下从战术自定义FEN开始。
  • 每个玩家显示两个工具: make_move 和 resign.
  • 保持长期MCP会话打开,以便转弯可以自然交替。
  • 将服务器和游戏事件记录为结构化JSON行。

需求

安装

bun install

跑

bun run index.ts

服务器正在监听 PORT=3000 默认情况下。

配置

服务器支持以下环境变量:

  • PORT:要绑定的HTTP端口。
  • FEN:游戏的起始位置。如果省略,服务器将使用内置的战术拼图位置。

例子:

PORT=4000 FEN='2r3k1/2q3p1/8/4p3/4P3/8/2Q3P1/2R3K1 w - - 0 1' bun run index.ts

HTTP端点

  • GET /:基本服务器信息和连接说明。
  • POST /mcp?color=white:以白色开始新的MCP会话。
  • POST /mcp?color=black:以黑色开始新的MCP会话。

现有会话的后续MCP请求必须包括 mcp-session-id 服务器传输返回的标头。

工具

make_move

  • 用UCI的动作打电话 e2e4 或 e7e8q 当轮到你的时候。
  • 在不轮到你的时候,不动地打电话等待对手。
  • 一旦可用,返回更新的棋盘状态或对手的移动。

resign

  • 立即结束游戏。
  • 向双方报告获胜者。

开发说明

  • 服务器将游戏状态存储在内存中,因此重新启动进程会重置游戏。
  • Git故意忽略运行时日志和本地匹配记录。
  • 此仓库直接使用Bun;当地发展没有单独的建设步骤。