Cowboy MCP 服务器
使用说明
项目简介
本仓库实现了一个完整的 Cowboy MCP 服务器,允许 AI 客户端通过 MCP 协议连接到 Cowboy 游戏后端,绑定到游戏中的某个玩家席位(A/B/C/D),观察棋盘状态、执行操作(移动、射击、格挡、说话)以及处理自动播放等能力。
主要功能点
- 提供 MCP 核心接口,支持客户端通过 MCP 协议绑定玩家、查询游戏状态、等待轮到自己、提交行动、获取会话信息、开启/关闭自动播放以及解释自动尝试的下一步决策等。
- 提供对 Cowboy 游戏核心事件的订阅与交互能力:接收游戏事件、获取最新快照、将玩家操作映射为 Cowboy 的命令并提交到游戏后端。
- 提供游戏规则资源、按需渲染的提示模板以及对 Bot/LLM 的对接入口,支持自定义的系统提示与用户提示模板。
- 通过 WebSocket/HTTP 等手段与前端或其他 MCP 客户端进行实时数据交互,具备日志、状态、最近事件等辅助信息。
安装步骤
- 确保 Python 环境可用,并安装所需依赖(MCP 框架和 Cowboy 相关依赖)。
- 设置 Cowboy 服务地址(默认 http://localhost:8000),以及可选的后台服务地址:
- Cowboy 服务器默认会通过环境变量读取 Cowboy 服务端点,若未设置则使用本地默认。
- 运行 MCP 服务器:
- 通过环境变量配置 Cowboy 服务器地址后,执行启动脚本以启动 MCP 服务器,例如:
- 启动命令(示意): python3 -m mcp.cowboy_mcp.server
- 服务器启动后即可通过 MCP 客户端连接,进行 bind_player、get_game_state、submit_action 等操作。
- 通过环境变量配置 Cowboy 服务器地址后,执行启动脚本以启动 MCP 服务器,例如:
服务器配置(MCP 客户端使用的连接配置示例)
{ "server_name": "CowboyMCP", "command": "python3", "args": ["-m", "mcp.cowboy_mcp.server"] } 注:
- server_name: MCP 服务器的名称,界面或日志中用于标识该服务。
- command: 启动服务器的可执行命令。
- args: 启动命令所需的参数列表,上例使用 Python 模块方式启动 MCP 服务器。 说明:MCP 客户端需要提供 server_name、command、args 来启动并绑定到 MCP 服务器,实际连接到 Cowboy 的服务器地址可通过环境变量配置(如 COWBOY_BASE_URL),并通过 bind_player 等指令进行绑定。
基本使用方法
- 启动后使用 MCP 客户端连接并绑定到 Cowboy 的某个玩家席位(A/B/C/D)。
- 使用 get_game_state、wait_for_my_turn、submit_action 等工具与游戏进行交互,代理可在每回合时绑定不同玩家、执行行动、或让人类玩家继续参与。
- 如需查看当前规则、了解可用工具与参数等,可请求 get_game_state、get_session_info 等接口获得当前会话信息与状态;也可通过 explain_next_autoplay_move 获取下一步自动决策的思路。
该 MCP 服务器实现包含对 Cowboy 的完整封装,适合作为 AI 代理接入 Cowboy 游戏的后端服务。