YetAnotherUnityMcp

YetAnotherUnityMcp

又一个Unity Mcp客户端/服务器

注意: 这是一个演示项目,用于测试 Claude 生成代码的能力,不建议用于生产环境。

概述

YetAnotherUnityMcp 是一个通过模型上下文协议(MCP)连接 Unity 与 AI 工具的系统,由两部分组成:

  • Unity 插件(MCP TCP 服务器)
  • Python MCP 客户端(基于 FastMCP)

主要功能

  • 从 AI 代理直接在 Unity 中执行 C# 代码
  • 查询 Unity 场景状态、对象层次结构
  • 捕获截图和编辑器日志
  • 修改 GameObject 属性
  • 使用容器方式组织 MCP 资源和工具

安装设置

Unity 服务器设置

  1. 在 Unity 项目(2020.3+)中导入插件:

    # 方法1: 复制文件夹到 Assets 目录
    # 方法2: 导入 Unity 包
    # 方法3: 创建符号链接
    New-Item -ItemType SymbolicLink -Target "D:Dev\YetAnotherUnityMcp\plugin" -Path "C:\Users\username\My project\Assets\Plugins\YetAnotherUnityMcp"
    
  2. 启动 TCP 服务器:

    • 菜单:MCP > TCP Server > Start Server
    • 或:Window > MCP Server > Start Server

Python 客户端设置

# 克隆仓库
git clone https://github.com/yourusername/YetAnotherUnityMcp.git
cd YetAnotherUnityMcp

# 创建并激活虚拟环境
uv venv -p 3.11
source .venv/bin/activate  # Windows: .venv\Scripts\activate

# 安装带开发依赖的服务器
uv pip install -e ".[dev]"

# 运行 MCP 客户端
python -m server.mcp_server

MCP 集成

# 安装 FastMCP
uv pip install fastmcp

# 使用 MCP 检查器运行客户端进行调试
fastmcp dev server/mcp_server.py

# 在 Claude 中安装
fastmcp install server/mcp_server.py --name "Unity Controller"

使用方式

可用工具

  • execute_code_in_unity - 在 Unity 中执行 C# 代码
  • unity_screenshot - 截取 Unity 编辑器截图
  • unity_modify_object - 修改 GameObject 属性
  • unity_logs - 获取 Unity 日志

可用资源

  • unity://info - Unity 环境基本信息
  • unity://logs - 编辑器日志
  • unity://scene/{scene_name} - 特定场景信息
  • unity://object/{object_id} - GameObject 详细信息

架构要点

  • Unity 服务器和 Python 客户端通过 TCP 套接字通信
  • 使用帧协议传输 JSON 消息和图像数据
  • 动态工具注册和资源查询
  • 基于容器的工具和资源组织

更多详细信息请参考完整文档。