使用说明(简明版,便于快速搭建和接入):

  • 项目简介

    • 该仓库实现了一个可在 Unity 编辑器中运行的 MCP 服务器端,用来接收来自 MCP 客户端的请求(如读取资源、执行工具、获取提示模板等),并返回结构化的 JSON 响应。服务器通过 TCP 端口进行通信,默认端口为 6400,并在 Unity 加载时自动启动监听。
  • 主要功能点

    • 资源与数据访问:提供对编辑器中对象、场景、资源等信息的查询能力。
    • 工具注册与执行:通过一组处理器对 Unity 编辑器内的操作(创建对象、查找对象、修改属性、运行脚本等)进行封装和执行。
    • 交互与提示模板支持:支持对 UI、场景、对象的分析、状态获取,以及在需要时产出描述性结果。
    • JSON-RPC 风格的请求/响应:客户端发送 JSON 请求,服务器返回统一格式的 JSON 响应,便于 LLM 客户端解析。
    • 多种传输场景的准备:当前实现以 TCP 监听为核心,便于与 Claude Desktop 等 MCP 客户端对接;理论上可扩展为 StdIO/SSE/WebSocket 等传输通道。
    • 会话与能力声明:通过命令处理器和状态跟踪等机制,向客户端暴露服务器能力与当前状态。
  • 安装步骤

    • 在 Unity 项目中引入 MCP 服务器包:通过 Unity 的 Package Manager,将仓库中的 unity-mcp-server 包导入到你的 Unity 项目中(路径为 UnityMCPServer/Packages/unity-mcp-server)。
    • 启动与监听
      • 该服务器在 Unity 加载时通过静态构造器自动启动 TCP 监听,默认端口为 6400。
      • 如需在无 Unity 环境中运行的场景,客户端也可以通过文档中给出的浏览/设置方式进行对接。
    • 配置文件与环境(如有需要)
      • Unity 侧的服务器设置保存在 Project Settings 中,默认 Host 为 localhost,端口为 6400;可在 Unity 编辑器的 MCP 相关设置界面修改并重启服务器。
    • MCP 客户端配置示例(不需要改动服务端,只用于客户端对接)
      • 客户端需要一个包含服务器信息的配置项,示例(描述性文本,不作为代码块展示):
        • serverName: unity-mcp-server
        • command: npx
        • args: ["@akiojin/unity-mcp-server@latest"]
      • 实际客户端可能使用如下结构(以 JSON 表示,用于客户端配置示例): { "mcpServers": { "unity-mcp-server": { "command": "npx", "args": ["@akiojin/unity-mcp-server@latest"] } } }
  • 服务器配置与使用方法

    • MCP 客户端通过上面的配置连接到 UnityMCPServer 的 TCP 监听端口(默认 6400)。
    • 客户端发送 JSON 请求,服务器按照命令类型执行相应操作并返回 JSON 响应。
    • 常用命令示例(客户端端无需此处展示代码):ping、读取场景、创建/修改/查询 GameObject、执行 UI 操作、获取编辑器状态等。服务器端对这些命令有完整的实现和容错处理。
  • 基本使用方法

    • 将 MCP 服务器包导入 Unity 项目,确保编辑器版本与包兼容。
    • 启动 Unity 编辑器,MCP 服务器将会在加载阶段自动启动 TCP 监听(端口 6400)。
    • 在 MCP 客户端中配置上述服务器参数并连接,发送请求,如触发 ping、查询资源、执行工具、获取 UI/场景信息等,查看服务器返回的标准化 JSON 响应。
    • 注意事项:服务器主要在编辑器环境中运行,部分测试用例在特定环境下才可执行,实际生产环境请以项目版本和编辑器配置为准。
  • 维护与扩展建议

    • 如需扩展传输协议(如 Stdio、SSE、WebSocket),可在现有 TCP 实现基础上增加新的传输适配层,复用现有的 JSON 请求/响应格式。
    • 服务器端的命令集合很大,若需要增加新工具或资源类型可在相应的 Handler 里扩展(Editor/Handlers 子目录下已有多种实现)。

信息

分类

开发者工具