Nyamu MCP 服务器(Unity 集成版)
使用说明(Markdown 格式)
-
项目简介
- Nyamu 是一个基于 MCP 的后端实现,专为 Unity 场景下的 LLM 编码代理提供上下文信息、资源访问、工具调用和提示渲染能力。实现包含 Node.js 端的 MCP 服务器以及 Unity 端的服务端组件,支持通过标准 JSON-RPC 与客户端通信,具备会话管理和能力声明,并可通过多种传输方式(如标准输入输出、HTTP、WebSocket 等)进行扩展。
- 该仓库同时提供了针对 JetBrains 等工具的兼容启动 wrapper,以及在 Unity 编辑器内的资源管理、脚本/着色器编译、测试执行等工具接口,确保从代理到实际执行的完整闭环。
-
主要功能点
- 资源与数据访问:托管与查询 Unity 项目中的资源、资产、日志等数据。
- 工具注册与执行:提供大量工具入口,如脚本编译、资源刷新、测试执行、着色器编译等,LLM 可以通过工具名称调用对应功能。
- Prompt 模板与交互:支持按需渲染和返回用于对话式交互的提示内容。
- JSON-RPC 通信:遵循 MCP 的请求/响应格式,通过 JSON-RPC 2.0 与客户端交互。
- 会话管理与能力声明:服务器端管理会话状态、能力列表(包括可用工具及输入输出结构)。
- 多传输协议支持:Node 端提供以 stdio 为主的实现,并包含 JetBrains 兼容脚本;Unity 端提供 HTTP API/插件化入口,便于不同环境接入。
- 自动端口管理与工作流:内置端口自发现、注册与跨项目端口冲突处理,支持在多工作流/工作节点中安全使用。
-
安装步骤
- 获取代码
- 将 Nyamu 仓库完整下载或克隆到本地工作区。
- 启动 MCP 服务器
- Node 端 MCP 服务器(Nyamu.UnityPackage/Node/mcp-server.js)需要 Node.js 环境,直接运行会以 stdio 模式提供 MCP 服务。
- Unity 端在将 Nyamu.UnityPackage 安装到 Unity 项目后,首次打开会生成 nyamu.bat,该脚本用于在 MCP 客户端中正确启动 Nyamu 的服务器实例(会自动绑定正确端口并维护配置)。
- 启动 Unity 端服务
- 将 Nyamu.UnityPackage 以 Unity 包方式导入到 Unity 项目中,按提示配置后可在 Unity 内启动 MCP 服务。
- 配置 MCP 客户端
- MCP 客户端需要一个配置来启动 Nyamu 的服务。该配置通常如下(JSON 格式,注释仅作说明,实际使用请按客户端要求提供): { "mcpServers": { "Nyamu": { "name": "Nyamu", "command": "cmd.exe", "args": ["/c", "D:\path\to\YourUnityProject\.nyamu\nyamu.bat"], "timeout": 30000 } } }
- 以上配置中的路径应指向实际项目中 nyamu.bat 的位置。端口默认在 NyamuSettings.json 中配置(通常默认端口为 17932)。
- 其他配置
- 路由与工具调用等在 Nyamu 的实现中通过统一接口暴露,确保在不同环境下可用。若 Unity 端需要自定义设置(如日志、响应长度、端口等),请按照 Nyamu Unity 包内的 Settings 进行调整。
- 获取代码
-
服务器配置与参数说明(JSON 配置示例注释)
- server name: Nyamu
- command: 启动 MCP 服务器所需的命令
- args: 启动命令的参数列表
- timeout: 启动超时(毫秒)
- 注:MCP 客户端需要的不是代码,而是对服务器启动方式的描述性配置。默认 Nyamu 使用 nyamu.bat 启动,bat 会将 Node MCP 服务器与 Unity 项目结合起来工作。请在实际部署中使用该 bat 文件的实际路径和参数。
-
基本使用方法
-
- 启动 Unity 项目并确保 Nyamu 插件正确导入,确保 NyamuSettings.json 配置了服务器端口等参数。
-
- 启动 MCP 服务器(Node 端)或通过 NyamuBat 自动启动脚本。
-
- 使用 MCP 客户端进行初始化,调用 initialize 获取 protocolVersion 与 capabilities。
-
- 通过工具列表执行需要的操作,例如 scripts_compile、assets_refresh、shaders_compile_all、tests_run_single 等。服务器将返回 JSON-RPC 响应文本,文本内容通常包含执行结果摘要、错误信息及状态。
-
- 如需结合多项目工作流,Nyamu 的端口注册/端口自识别机制会确保同一工作区中不会产生端口冲突,并在域重新加载时尝试恢复。
-
-
其他注意
- Nyamu 实现了大量 Unity Editor 端的监控与状态管理(编译、测试、着色器编译、资源刷新等),以及对测试用例的 Callback、执行队列和结果聚合,确保 MCP 客户端可以获取实时状态与结果。
- 该实现还包括工具列表的动态注册、对 Shader 编译的多种模式支持,以及对日志、错误信息的可读化格式化,方便 LLM 代理进行分析和决策。