UnityMCP 
 ](https://smithery.ai/server/@Arodoid/unitymcp)


UnityMCP是一个功能强大的Unity编辑器插件,它实现了模型上下文协议(MCP),实现了Unity和AI助手之间的无缝集成。它提供实时编辑器状态监控、远程命令执行和全面的日志记录功能。
建筑
该项目由两个主要部分组成:
1.Unity插件(UnityMCP插件)
Unity编辑器插件,提供:
- 用于连接状态和监控的调试窗口
- 用于实时通信的WebSocket客户端
- C#代码执行引擎
- 综合测井系统
- 编辑器状态跟踪和序列化
2.MCP服务器(unity MCP服务器)
基于TypeScript的MCP服务器,通过标准化工具公开Unity编辑器功能:
可用工具
get_editor_state
- 检索当前Unity编辑器状态 - 包括活动游戏对象、选择状态、游戏模式状态 - 提供场景层次和项目结构 - 支持不同的输出格式(原始、仅脚本、无脚本)
execute_editor_command
- 直接在Unity编辑器中执行C#代码 - 完全访问UnityEngine和UnityEditor API - 实时执行,全面错误处理 - 命令超时保护
get_logs
- 检索和过滤Unity编辑器日志 - 支持按类型、内容和时间戳进行过滤 - 可定制的输出字段 - 缓冲区管理,实现最佳性能
安装
通过Smithery安装
通过以下方式自动安装克劳德桌面版UnityMCP 史密瑟里:
npx -y @smithery/cli install @Arodoid/unitymcp --client claude先决条件
- Unity 2022.3或更高版本
- Node.js 18或更高版本
- npm 9或更高版本
Unity插件设置
- 复制
UnityMCPPlugin文件夹到Unity项目的Assets目录 - 打开Unity编辑器
- 通过Unity的顶部菜单栏>UnityMCP>调试窗口访问插件
MCP服务器设置
cd unity-mcp-server
npm install
npm run build用法
启动服务器
cd unity-mcp-server
node build/index.js从Unity连接
- 打开Unity项目
- 打开UnityMCP调试窗口(窗口>UnityMCP>调试窗口)
- 插件将自动尝试连接到MCP服务器
- 在调试窗口中监视连接状态和日志
示例:执行命令
// Center the selected object
Selection.activeGameObject.transform.position = Vector3.zero;
// Toggle play mode
EditorApplication.isPlaying = !EditorApplication.isPlaying;
// Create a new cube
GameObject.CreatePrimitive(PrimitiveType.Cube);发展
构建服务器
cd unity-mcp-server
npm run build观察变化
npm run watch检查MCP通信
npm run inspector技术细节
通信协议
- 基于WebSocket的8080端口通信
- 双向实时更新
- 所有通信的JSON消息格式
- 自动重新连接处理
安全功能
- 命令执行超时保护
- 错误处理和验证
- 日志缓冲区管理
- 连接状态监控
错误处理
该系统为以下方面提供全面的错误处理:
- 连接问题
- 命令执行失败
- 编译错误
- 运行时异常
- 超时情况
贡献
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
本项目根据知识共享署名-非商业4.0国际协议(CC BY-NC 4.0)获得许可。
