Unity Agent Bridge MCP Server
使用说明(Markdown格式)
-
项目简介
- 该仓库实现了一个完整的 MCP 服务器,用于在 Unity 编辑器中提供标准化的上下文服务。核心功能包括托管和管理 Resources(资源、数据访问)、注册和执行 Tools(工具、外部功能调用)、以及定义 PROMPTS(提示模板)。服务器通过 JSON-RPC 与 MCP 客户端通信,并支持会话管理与多传输协议的扩展。
-
主要功能点
- MCP 服务器核心:实现 Model Context Protocol 的资源、工具、提示等能力,通过标准化的 JSON-RPC 进行请求与响应。
- 资源管理:暴露并管理 Unity 场景层级、资源、场景描述等数据源。
- 工具执行:通过反射自动发现并暴露大量 Unity 相关的操作工具,支持批量、分步调用以及参数化执行。
- 提示模板:提供用于引导 LLM 的提示模板与场景 Reconstruction 的对话上下文。
- 支持多种传输:当前实现基于 StdIO transport,理论上可扩展为 SSE/WebSocket 等传输协议。
- 会话与诊断:提供健康检查、错误诊断、重试机制以及边缘场景的容错处理。
-
安装步骤
- 安装依赖:需要 .NET 环境可编译运行该 MCP 服务器端。
- 构建与运行:在包含 Program.cs 的项目中构建并运行,服务器会在初始化时启动 stdio 传输端口,提供 MCP 客户端连接。
-
服务器配置(MCP 客户端配置示意) 说明:MCP 客户端需要知道服务器端信息以便建立连接。以下为符合要求的 JSON 配置字段示例说明(非代码块显示,便于理解):
- serverName: UnityAgentBridge-MCP
- 说明:该 MCP 服务器的名称,用于标识该服务。
- command: dotnet
- 说明:启动服务器的命令,使用 .NET 运行入口。
- args: ["run", "--project", "UnityMCP/UnityMCP.csproj"]
- 说明:启动参数,指向包含 Program.cs 的项目文件,实际路径以你的部署结构为准。
- transport: stdio(可选,当前实现使用 stdio 传输)
- 说明:客户端通过标准输入/输出与服务器进行 JSON-RPC 交互。
- serverName: UnityAgentBridge-MCP
-
基本使用方法
- 启动服务器:按照上面的配置在包含该仓库的环境中启动 .NET 应用,服务器启动后监听并准备接收 MCP 客户端请求。
- 客户端接入:MCP 客户端通过指定的 transport(如 stdio)与服务器进行 JSON-RPC 调用,调用结果以 JSON 形式返回。
- 使用场景:通过 Unity 中的工具和资源接口,LLM 可以读取场景信息、执行编辑器操作、构造场景、对资源进行增删改等。
-
重要注意
- 该实现包含大量通过反射暴露的工具方法,确保 Unity 编辑器处于可运行状态以执行命令。
- 服务器具备基本的重试与诊断能力,适用于在编辑器后台执行任务时的韧性需求。