loading…
Search for a command to run...
loading…
A Unity Editor plugin that exposes Unity Editor capabilities to external AI agents via the Model Context Protocol. It enables AI agents to interact with Unity t
A Unity Editor plugin that exposes Unity Editor capabilities to external AI agents via the Model Context Protocol. It enables AI agents to interact with Unity through tools for debugging, scene inspection, project management, and build operations.
中文 | English
Unity Editor 插件,通过 MCP (Model Context Protocol) 将 Unity Editor 能力暴露给外部 AI Agent。
Agent(如 Kiro、Cursor、Claude Code)可通过标准 MCP 协议连接到 Unity Editor,调用编辑器功能。
本插件定位为 AI Agent 的 Unity 感知层 + 诊断工具链:
IMcpTool 接口即可注册新工具,零修改核心代码完整的参数说明和使用示例见 工具详细文档。
| 工具 | 功能 |
|---|---|
console_getLogs |
获取 Unity Console 日志(支持过滤) |
console_clearLogs |
清空日志缓冲区 |
debug_getStackTrace |
获取最近 Error/Exception 的完整堆栈 |
debug_getPerformanceStats |
获取 FPS、DrawCall、内存等性能指标 |
debug_screenshot |
截取 Game/Scene 视图截图 |
| 工具 | 功能 |
|---|---|
editor_getHierarchy |
获取 GameObject 树结构 |
editor_getInspector |
获取 Inspector 序列化字段值 |
editor_getSelection |
获取当前选中对象信息 |
editor_findGameObjects |
按名称/组件搜索 GameObject |
editor_getProjectPath |
获取项目根目录路径 |
editor_getProjectStructure |
获取 Assets 目录结构 |
| 工具 | 功能 |
|---|---|
editor_addGameObject |
添加 GameObject |
editor_deleteGameObject |
删除 GameObject |
editor_setField |
修改序列化字段值 |
editor_setTransform |
修改 Transform 属性 |
editor_setActive |
修改激活状态 |
editor_reparentGameObject |
修改父节点 |
editor_addComponent |
添加组件 |
editor_removeComponent |
移除组件 |
editor_setComponentEnabled |
启用/禁用组件 |
editor_selectGameObject |
选中指定 GameObject |
| 工具 | 功能 |
|---|---|
menu_execute |
按路径执行 Unity 菜单项 |
playmode_control |
控制 PlayMode 状态 |
| 工具 | 功能 |
|---|---|
asset_deleteFolder |
删除 Assets 子目录 |
| 工具 | 功能 |
|---|---|
build_compile |
触发脚本编译 |
build_getCompileErrors |
获取编译错误列表 |
build_runTests |
运行 Test Runner 测试 |
| 工具 | 功能 |
|---|---|
code_executeImmediate |
动态编译并执行 C# 代码(支持主线程/后台双模式) |
需在 Window → MCP Server 面板手动开启。详见 工具详细文档。
+ → Add package from git URLhttps://github.com/yangfch3/Unity-MCP-Server.git
或直接编辑宿主项目的 Packages/manifest.json:
{
"dependencies": {
"com.yangfch3.unity-mcp": "https://github.com/yangfch3/Unity-MCP-Server.git"
}
}
+ → Add package from diskpackage.json或在 Packages/manifest.json 中添加:
{
"dependencies": {
"com.yangfch3.unity-mcp": "file:../../path/to/unity-mcp"
}
}
UPM 通过 Git URL 安装后,会在宿主项目的 packages-lock.json 中锁定当前 commit hash。后续不会自动更新。
如需锁定特定版本,可在 URL 末尾追加 Git Tag:
https://github.com/yangfch3/Unity-MCP-Server.git#v0.3.0
对应 Packages/manifest.json 配置:
{
"dependencies": {
"com.yangfch3.unity-mcp": "https://github.com/yangfch3/Unity-MCP-Server.git#v0.3.0"
}
}
不带 Tag 则跟踪默认分支最新 commit:
{
"dependencies": {
"com.yangfch3.unity-mcp": "https://github.com/yangfch3/Unity-MCP-Server.git"
}
}
更新版本时,修改 manifest.json 中的 #tag 后缀为新版本号,或在 UPM GUI 重新 Add package from git URL 输入新 Tag 的 URL 即可。
将以下内容添加到 Agent 的 MCP 配置文件(如 mcp.json):
{
"mcpServers": {
"unity-mcp": {
"url": "http://localhost:8090/"
}
}
}
实现 IMcpTool 接口,放在任意 Editor 程序集中,服务启动时会自动发现并注册:
using System.Collections.Generic;
using System.Threading.Tasks;
using UnityMcp.Editor;
public class MyCustomTool : IMcpTool
{
public string Name => "my_custom_tool";
public string Category => "custom";
public string Description => "我的自定义工具";
public string InputSchema => "{\"type\":\"object\",\"properties\":{}}";
public Task<ToolResult> Execute(Dictionary<string, object> parameters)
{
return Task.FromResult(ToolResult.Success("Hello from custom tool!"));
}
}
欢迎参与本项目的开发,详见 CONTRIBUTING.md。
MIT
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"unity-mcp-server": {
"command": "npx",
"args": []
}
}
}