使用说明(简明版,便于快速搭建和接入):
-
项目简介
- 该仓库实现了一个可在 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 子目录下已有多种实现)。
信息
分类
开发者工具