使用说明

项目简介

Unity-MCP 是一个基于 Node.js 开发的 MCP 服务器,它充当 Unity 游戏引擎和 AI 助手之间的桥梁,允许 AI 通过标准化的 MCP 协议与 Unity 环境进行交互。该项目旨在简化 AI 在游戏开发流程中的集成,实现诸如 AI 辅助内容生成、自动化测试、场景分析和运行时调试等功能。

主要功能点

  • 代码执行: 允许 AI 助手在 Unity 运行时环境中执行 C# 代码,实现动态逻辑控制和功能扩展。
  • 对象和组件检查: 提供工具供 AI 助手检查 Unity 游戏对象及其组件的属性和状态,用于场景理解和分析。
  • 场景结构分析: 支持 AI 助手分析 Unity 场景的层级结构,帮助理解游戏世界的组织方式。
  • 自动化测试: 能够运行预设的测试用例并返回结果,支持游戏功能的自动化验证。
  • 方法调用: 允许 AI 助手调用游戏对象和组件上的方法,实现更深度的交互和控制。
  • 运行时状态修改: 支持 AI 助手在游戏运行时修改游戏状态,为动态调整和实验提供可能。
  • 服务器自发现: 支持服务发现功能,方便 MCP 客户端自动找到并连接到 Unity MCP服务器。
  • SSE支持: 实现了 Server-Sent Events (SSE) 协议支持,用于服务器向客户端推送实时事件和更新。

安装步骤

  1. 克隆仓库
    git clone https://github.com/TSavo/Unity-MCP.git
    cd Unity-MCP
  2. 安装依赖 确保你的系统已安装 Node.js 和 npm。在项目根目录下运行:
    npm install
  3. 构建项目
    npm run build
  4. 启动服务器
    npm start
    服务器默认在 8080 端口启动。你可以通过修改 'src/server.ts' 文件中的 'port' 配置项来更改端口。

服务器配置

MCP 客户端需要配置以下信息以连接到 Unity MCP 服务器。以下是一个 'serverConfig.json' 示例,展示了客户端需要配置的服务器连接信息:

{
  "servers": [
    {
      "server name": "Unity-MCP-Server",  // 自定义服务器名称,用于在客户端标识
      "command": "node",                  // 启动服务器的命令,这里使用 node 解释器
      "args": [                           // 启动命令的参数
        "dist/server.js",                //  指向编译后的服务器入口文件
        "--port", "8080"                  //  可选参数,指定服务器端口,如果服务器代码中已固定端口,则不需要此参数
      ]
    }
  ]
}

配置说明:

  • 'server name': 服务器的名称,客户端用于识别和管理不同的 MCP 服务器连接。可以自定义设置。
  • 'command': 启动 MCP 服务器的命令。由于 Unity-MCP 是 Node.js 项目,所以这里使用 'node' 命令来运行 JavaScript 文件。
  • 'args': 启动命令的参数列表。
    • '"dist/server.js"': 指向编译后的服务器入口文件 'dist/server.js'。这是服务器实际运行的代码。
    • '"--port", "8080"': (可选)指定服务器监听的端口号。如果服务器代码中已经配置了默认端口或者通过其他方式配置端口,则可以省略此参数。如果需要客户端指定端口,则可以通过此参数传递。请确保此端口与服务器实际监听的端口一致。

注意: MCP 客户端需要能够执行 'node dist/server.js --port 8080' 命令来启动 Unity MCP 服务器。 客户端如何读取和使用 'serverConfig.json' 文件取决于具体的 MCP 客户端实现。

基本使用方法

  1. 确保 Unity-MCP 服务器已成功启动并运行在指定的端口上。
  2. 配置 MCP 客户端,使其能够连接到运行 Unity-MCP 服务器的主机和端口。
  3. 使用 MCP 客户端发送 MCP 请求到服务器,例如:
    • 获取服务器 'manifest' 信息,了解服务器提供的工具和功能。
    • 调用 'tools' 接口执行预定义的工具,例如执行 C# 代码、查询 Unity 对象信息等。
    • 通过 'results' 接口获取工具执行的结果。
    • 订阅 'sse' 事件流,接收服务器推送的实时更新和通知。
  4. 根据服务器返回的响应和数据,在 AI 助手或 MCP 客户端中进行后续处理,例如解析工具执行结果、根据场景信息生成控制指令等。

详细API文档和更多使用示例,请参考仓库文档 'docs' 目录下的相关文件。

信息

分类

开发者工具