MCP Unity Server

项目简介

MCP Unity Server 是一个基于 Model Context Protocol (MCP) 的服务器实现,专为 Unity 编辑器设计。它充当 Unity 编辑器和 AI 助手之间的桥梁,使 AI 能够理解 Unity 项目的上下文并执行相关操作。通过 MCP 协议,AI 助手可以调用预定义的工具来与 Unity 编辑器进行交互,例如执行菜单项操作,从而实现更智能化的 Unity 编辑工作流程。

主要功能点

  • 执行菜单项 (execute_menu_item): 允许 AI 助手通过指定菜单路径,调用和执行 Unity 编辑器中的菜单项功能(例如 "GameObject/Create Empty")。

安装步骤

  1. 通过 Unity Package Manager 安装 MCP Unity Server 包:

    • 打开 Unity 编辑器的 Package Manager (Window > Package Manager)。
    • 点击左上角的 "+" 按钮。
    • 选择 "Add package from git URL..."。
    • 输入 'https://github.com/CoderGamester/mcp-unity.git' 并点击 "Add"。
  2. 安装 Node.js:

  3. 构建服务器 (Server):

    • 打开终端或命令提示符,导航到 'mcp-unity' 包的 'Server' 目录(通常位于 Unity 项目的 'Packages' 目录下,或者如果您直接将仓库克隆到 'Assets' 目录下,则位于 'Assets/mcp-unity/Server')。
    • 运行命令 'npm install' 安装依赖。
    • 运行命令 'npm run build' 构建服务器代码。

服务器配置

MCP 服务器需要配置在 MCP 客户端中,以便客户端能够连接并调用其提供的功能。以下是一些常见 MCP 客户端(如 Cursor, Claude, Windsurf)的配置示例。您需要将以下 JSON 配置信息添加到您的 MCP 客户端设置中。

{
  "serverName": "mcp-unity",  // MCP 服务器名称,您可以自定义
  "command": "node",         // 启动服务器的命令,这里使用 Node.js 运行 JavaScript 文件
  "args": [                  // 启动命令的参数
    "path/to/mcp-unity/Server/build/index.js"  // 请替换为 mcp-unity 仓库 Server 目录下 build/index.js 文件的绝对路径
  ],
  "env": {                    // 环境变量
    "UNITY_PORT": "8090"     // Unity WebSocket 服务器端口,与 Unity 编辑器中配置的端口一致
  }
}

配置说明:

  • 'serverName': 为您的 MCP 服务器指定一个易于识别的名称,例如 "mcp-unity"。
  • 'command': 指定用于启动 MCP 服务器的命令。对于 MCP Unity Server,通常使用 'node' 命令来运行 JavaScript 文件。
  • 'args': 一个字符串数组,包含传递给启动命令的参数。
    • 'path/to/mcp-unity/Server/build/index.js': 请务必将 'path/to/mcp-unity' 替换为您本地 'mcp-unity' 仓库 'Server/build/index.js' 文件的实际绝对路径。 例如,如果您的 'mcp-unity' 仓库位于 'D:\Projects\mcp-unity',则此处应填写 '"D:\Projects\mcp-unity\Server\build\index.js"'。
  • 'env': 一个包含环境变量的 JSON 对象。
    • 'UNITY_PORT': 指定 Unity 编辑器 WebSocket 服务器监听的端口。请确保此端口号与您在 Unity 编辑器 "MCP Unity Server Window" (Tools > MCP Unity > Server Window) 中设置的 "WebSocket Port" 端口号一致。默认端口为 '8090'。

基本使用方法

  1. 启动 Node.js 服务器:

    • 打开终端或命令提示符,导航到 'mcp-unity' 仓库根目录。
    • 运行命令 'node Server/build/index.js' 启动 Node.js MCP 服务器。
  2. 启动 Unity 编辑器 MCP Server:

    • 打开 Unity 编辑器。
    • 点击菜单 "Tools > MCP Unity > Server Window" 打开 MCP Unity Server 窗口。
    • 点击 "Start Server" 按钮启动 Unity 编辑器内的 WebSocket 服务器。
  3. 配置并连接 MCP 客户端:

    • 在您的 MCP 客户端(如 Cursor, Claude, Windsurf)中,根据 "服务器配置" 章节的说明,添加并配置 MCP Unity Server。
    • 确保 MCP 客户端成功连接到 MCP Unity Server。
  4. 使用 AI 助手调用工具:

    • 现在您可以使用 AI 助手,通过 MCP 协议调用 'execute_menu_item' 工具来执行 Unity 编辑器中的菜单项操作。例如,您可以指示 AI 助手执行 "GameObject/Create Empty" 菜单项来在 Unity 场景中创建一个空物体。

服务器信息