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客户端集成。
  • 会话管理: 管理多个游戏实例的生命周期和会话状态。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/IshanTiwari0112/mcp-games-public
    cd mcp-games-public
  2. 安装依赖:
    pip install -r requirements.txt
  3. 运行服务器:
    python -m src.main
    默认情况下,服务器将尝试通过HTTP在8080端口运行。您也可以通过 'python -m src.main --stdio' 以STDIO模式运行。

服务器配置 (针对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与计算