AI游戏平台

Gym MCP是一个模型上下文协议(MCP)服务器,将游戏作为工具暴露给AI代理发现和玩耍。

  • by IshanTiwari0112
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 IshanTiwari0112/gym-mcp

使用说明

健身房MCP-人工智能游戏平台

一种模型上下文协议(MCP)服务器,将游戏作为AI代理发现和玩游戏的工具。

🚀 快速开始

需求

  • Python 3.10+
  • MCP兼容客户端(克劳德桌面等)

安装

使用pip:

git clone <this-repo>
cd gym-mcp
pip install -e .

或者使用紫外线(Dedalus Labs推荐):

git clone <this-repo>
cd gym-mcp
uv sync

运行服务器

# With pip
python main.py

# With uv
uv run main

测试服务器

python test_fastmcp.py

🎮 可用游戏

  • 井字游戏:经典的3x3网格游戏,X和O

🛠️ 可用工具

核心游戏工具

  • list_games -发现可用游戏和活动实例
  • start_game -与玩家初始化新游戏
  • make_move -执行游戏操作
  • get_game_state -查看当前游戏状态
  • reset_game -将游戏重置为初始状态

游戏专用工具

  • tic_tac_toe_place_mark -在板上放置X或O

📋 Claude桌面集成

添加到您的Claude桌面 claude_desktop_config.json:

{
  "mcpServers": {
    "gym-mcp": {
      "command": "python",
      "args": ["main.py"],
      "cwd": "/path/to/gym-mcp"
    }
  }
}

🎯 示例用法

# Discover available games
list_games()

# Start a tic-tac-toe game
start_game(game_type="tic-tac-toe", players=["Alice", "Bob"])

# Make moves using generic tool
make_move(game_id="uuid", action_type="place_mark", payload={"row": 1, "col": 1}, player="Alice")

# Or use game-specific tool
tic_tac_toe_place_mark(game_id="uuid", row=0, col=0, player="Bob")

# Check current state
get_game_state(game_id="uuid")

🏗️ 建筑

核心组件

  • FastMCP:基于装饰器的简单MCP服务器
  • 游戏注册表:管理可用游戏类型和活动实例
  • 游戏界面:定义游戏合约的抽象基类
  • 动态工具:每个游戏都注册了自定义MCP工具

每个游戏工具

每个游戏都可以定义自己的特定工具:

  • 井字游戏: tic_tac_toe_place_mark(game_id, row, col, player)
  • 未来的游戏国际象棋本可以 chess_castle, chess_en_passant等等。

无状态设计

  • 每个服务器会话存储在内存中的游戏
  • 不要求进行验证
  • 游戏逻辑和MCP协议之间的清晰分离

🔧 添加新游戏

  1. 创建游戏类 继承自 Game:

    class Chess(Game):
        def start(self, players): ...
        def make_move(self, action): ...
        def get_state(self): ...
        # etc.
    
  2. 定义特定于游戏的工具:

    @classmethod
    def get_tool_definitions(cls):
        return [GameToolDefinition(
            name="chess_castle",
            description="Perform castling move",
            input_schema={...}
        )]
    
  3. 在注册表中注册:

    registry.register_game_type(Chess)
    
  4. 添加FastMCP工具处理程序 在 server.py

🌟 未来计划

  • OpenAI健身房集成:包裹体育馆环境
  • PettingZoo支持:多代理游戏(国际象棋、扑克等)
  • 实时游戏:WebSocket支持更快的交互
  • 锦标赛模式:AI vs AI竞赛
  • 观众工具:观看正在进行的游戏

🏛️ 架构优势

面向人工智能研究人员

  • 标准化游戏测试环境
  • 所有游戏的一致API
  • 易于基准测试和评估

对于开发者

  • 简单的游戏集成(只需实现界面)
  • 自动生成MCP工具
  • 内置状态管理

对于AI代理

  • 统一发现机制(list_games)
  • 一致的交互模式
  • 游戏特定的优化机会

内置于 FastMCP 下列 Dedalus实验室MCP指南