项目简介

本仓库提供了一个 Unity MCP 服务器的模板,用于演示如何构建一个 MCP 服务器来控制 Unity 编辑器。通过该服务器,LLM 客户端可以调用预定义的工具来远程控制 Unity 编辑器的运行状态,例如启动、暂停和停止游戏运行。

主要功能点

  • MCP 服务器基础框架: 基于 'mcp-framework' 构建,实现了 MCP 协议的核心功能。
  • Unity 编辑器控制工具: 提供 'editor_mode_tool' 工具,允许 LLM 客户端通过发送 "start"、"stop"、"pause" 指令来控制 Unity 编辑器的运行模式。
  • TCP 通信: 使用 TCP 协议与 Unity 编辑器进行通信,实现指令的传递和执行。
  • 可扩展性: 用户可以根据自身需求扩展和定制更多工具,以实现更丰富的 Unity 编辑器控制功能。

安装步骤

  1. 克隆仓库: 将 'unity-mcp-template' 仓库克隆到本地。

    git clone https://github.com/dunward/unity-mcp-template.git
    cd unity-mcp-template/unity-mcp-server
  2. 安装依赖: 在 'unity-mcp-server' 目录下,使用 npm 安装项目依赖。

    npm install
  3. 启动服务器: 在 'unity-mcp-server' 目录下,运行以下命令启动 MCP 服务器。

    npm start

    服务器默认监听端口为 6336,并等待 Unity 编辑器客户端连接。

  4. 启动 Unity 编辑器客户端: 打开 'unity-mcp-sample' 目录下的 Unity 项目,在 Unity 编辑器中选择 "UnityMCP/Show Window" 打开 UnityMCP 窗口。点击 "Start Server" 按钮启动 Unity 编辑器内的 TCP 服务器。

服务器配置

以下是 MCP 客户端连接到该 MCP 服务器所需的配置信息(JSON 格式):

{
  "serverName": "unity-mcp",  // 服务器名称,与 server.ts 中 MCPServer 构造函数的 name 字段一致
  "command": "npm",        // 启动服务器的命令,这里使用 npm
  "args": ["start"],       // 启动服务器命令的参数,npm start 实际执行的是 package.json 中 scripts.start 定义的命令
  "protocol": "stdio",     // MCP 客户端与服务器通信协议,本示例未使用 stdio,但 MCP 客户端可能需要此配置项,实际运行时通过 TCP 通信
  "description": "Unity MCP Server for Editor Control" // 服务器描述信息,可选
}

注意: 实际通信并非通过 stdio,而是通过 TCP 端口 6336 进行,Unity 编辑器部分作为 TCP 客户端监听此端口。上述 'protocol: "stdio"' 仅为示例配置,实际 MCP 客户端如何配置需参考其文档。

基本使用方法

  1. 启动 MCP 服务器和 Unity 编辑器客户端: 按照安装步骤分别启动 MCP 服务器和 Unity 编辑器客户端。

  2. LLM 客户端连接: 配置 LLM 客户端连接到上述配置信息描述的 MCP 服务器。

  3. 调用工具: LLM 客户端可以使用 'editor_mode_tool' 工具来控制 Unity 编辑器的运行模式。例如,发送如下 JSON-RPC 请求调用 'editor_mode_tool' 工具启动 Unity 游戏运行:

    {
      "jsonrpc": "2.0",
      "method": "call_tool",
      "params": {
        "tool_name": "editor_mode_tool",
        "input": {
          "message": "start"
        }
      },
      "id": 1
    }

    将 'message' 参数设置为 "start"、"stop" 或 "pause" 可以分别控制 Unity 编辑器的启动、停止或暂停。

注意事项

  • 本示例主要用于演示 MCP 服务器的基本框架和与 Unity 编辑器的集成,实际应用中可能需要根据具体需求扩展更多工具和功能。
  • 确保 Unity 编辑器客户端和 MCP 服务器运行在同一台机器上或网络可达的环境中。
  • 端口 6336 可能会被防火墙阻止,请根据需要配置防火墙规则。

信息

分类

桌面与硬件