MCP游戏服务器使用说明
项目简介
MCP游戏服务器是一个强大的后端服务,它通过Model Context Protocol (MCP) 标准,使大型语言模型 (LLM) 能够访问和玩各种经典电子游戏和棋盘游戏。无论是单人决策游戏如CartPole,还是多人策略游戏如国际象棋和四子棋,LLM都可以通过统一的接口来启动游戏、获取游戏状态、做出决策并接收实时反馈,甚至包括游戏画面的可视化渲染。这为AI代理提供了一个丰富的交互式环境,以进行决策、规划和学习。
主要功能点
- 丰富的游戏集成: 支持30多种经典游戏,包括Gymnasium环境(如CartPole, MountainCar, Breakout, FrozenLake, Blackjack)和PettingZoo多智能体环境(如Chess, Connect Four),以及自定义的井字棋和国际象棋实现。
- 统一的工具接口: 通过一系列MCP工具(如'list_games', 'start_game', 'get_game_state', 'make_move'以及各种游戏专属行动工具),LLM可以以标准化方式与所有游戏进行交互。
- 视觉渲染与上下文: 服务器能够将游戏状态以Base64编码的PNG图片或SVG格式返回,为LLM提供视觉上下文,帮助其更好地理解游戏局面。
- 多传输协议支持: 支持通过标准输入/输出 (STDIO) 和 HTTP (ASGI) 协议进行通信,方便与不同MCP客户端集成。
- 会话管理: 管理多个游戏实例的生命周期和会话状态。
安装步骤
- 克隆仓库:
git clone https://github.com/IshanTiwari0112/mcp-games-public cd mcp-games-public - 安装依赖:
pip install -r requirements.txt - 运行服务器:
默认情况下,服务器将尝试通过HTTP在8080端口运行。您也可以通过 'python -m src.main --stdio' 以STDIO模式运行。python -m src.main
服务器配置 (针对MCP客户端)
MCP客户端需要配置服务器的启动信息以建立连接。以下是一个示例JSON配置,通常添加到您的 'claude_desktop_config.json' 或类似文件中:
{ "mcpServers": { "mcp-games": { "command": "python", "args": ["-m", "src.main"], "cwd": "/path/to/mcp-games-public" } } }
- '"mcp-games"': 服务器的名称,可自定义。
- '"command": "python"': 用于启动服务器的可执行程序。
- '"args": ["-m", "src.main"]': 传递给命令的参数,指示Python运行 'src.main' 模块。
- '"cwd": "/path/to/mcp-games-public"': 服务器启动时的工作目录,请替换为您的实际仓库路径。
基本使用方法
一旦MCP客户端连接并配置了服务器,LLM可以调用其暴露的工具来与游戏互动。
- 列出可用游戏: 调用 'list_games' 工具查看所有支持的游戏类型。
- 启动新游戏: 使用 'start_game' 工具启动一个特定类型的游戏,例如 'start_game(game_type="CartPole-v1", players=["AI_Agent"])'。这将返回一个 'game_id'。
- 获取游戏状态: 使用 'get_game_state(game_id="...")' 获取当前游戏的状态,包括文本描述和可能的视觉渲染。
- 进行游戏操作: 根据游戏类型,调用相应的动作工具。例如:
- 对于CartPole: 'cartpole_move_right(game_id="...", player="AI_Agent")'
- 对于国际象棋: 'chess_move(game_id="...", move="e2e4", player="AI_Agent")'
- 对于四子棋: 'connect4_drop(game_id="...", column=3, player="AI_Agent")' 服务器将返回操作结果,并可能包含更新后的游戏状态和视觉帧。
信息
分类
AI与计算