Unity编辑器助手
Unity Editor的Model Context Protocol实现,允许AI助手通过执行菜单项、选择对象、管理包、运行测试和访问资源的工具与Unity项目进行交互。
可用工具 (5 个)
该服务在 MCP 协议中暴露的工具,AI 可按需调用
execute_menu_item 1 个参数 需填 1 项
Executes a Unity menu item by path
必填参数:menuPath
select_object 1 个参数 需填 1 项
Sets the selected object in the Unity editor by path or ID
必填参数:objectPath
package_manager 6 个参数 需填 1 项
Manages packages in the Unity Package Manager
必填参数:methodSource
run_tests 2 个参数
Runs Unity's Test Runner tests
该工具无需必填参数,直接调用即可
notify_message 2 个参数 需填 1 项
Sends a message to the Unity console
必填参数:message
服务介绍
MCP Unity 编辑器 (游戏引擎)
,/(/. *(/,
*/(((((/. *((((((*.
.*((((((((((/. *((((((((((/.
./((((((((((((((/ *((((((((((((((/,
,/(((((((((((((/*. */(((((((((((((/*.
,%%#((/((((((* ,/(((((/(#&@@(
,%%##%%##((((((/*. ,/((((/(#&@@@@@@(
,%%######%%##((/(((/*. .*/(((//(%@@@@@@@@@@@(
,%%####%#(%%#%%##((/((((((((//#&@@@@@@&@@@@@@@@(
,%%####%( /#%#%%%##(//(#@@@@@@@%, #@@@@@@@(
,%%####%( *#%###%@@@@@@( #@@@@@@@(
,%%####%( #%#%@@@@, #@@@@@@@(
,%%##%%%( #%#%@@@@, #@@@@@@@(
,%%%#* #%#%@@@@, *%@@@(
., ,/##*. #%#%@@@@, ./&@#* *`
,/#%#####%%#/, #%#%@@@@, ,/&@@@@@@@@@&\.
`*#########%%%%###%@@@@@@@@@@@@@@@@@@&*´
`*%%###########%@@@@@@@@@@@@@@&*´
`*%%%######%@@@@@@@@@@&*´
`*#%%##%@@@@@&*´
`*%#%@&*´
███╗ ███╗ ██████╗██████╗ ██╗ ██╗███╗ ██╗██╗████████╗██╗ ██╗
████╗ ████║██╔════╝██╔══██╗ ██║ ██║████╗ ██║██║╚══██╔══╝╚██╗ ██╔╝
██╔████╔██║██║ ██████╔╝ ██║ ██║██╔██╗ ██║██║ ██║ ╚████╔╝
██║╚██╔╝██║██║ ██╔═══╝ ██║ ██║██║╚██╗██║██║ ██║ ╚██╔╝
██║ ╚═╝ ██║╚██████╗██║ ╚██████╔╝██║ ╚████║██║ ██║ ██║
╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═╝ ╚═╝
MCP Unity 是针对 Unity 编辑器的 Model Context Protocol 的实现,允许 AI 助手与您的 Unity 项目进行交互。这个包提供了一个桥梁,连接 Unity 和实现了 MCP 协议的 Node.js 服务器,使像 Claude、Windsurf 和 Cursor 这样的 AI 代理能够在 Unity 编辑器中执行操作。
功能
此 MCP 当前提供了以下 工具:
- execute_menu_item: 执行 Unity 菜单项(带有 MenuItem 属性标记的功能)
- select_gameobject: 通过路径或实例 ID 在 Unity 层次结构中选择游戏对象
- update_component: 更新 GameObject 上的组件字段,如果 GameObject 不包含该组件,则将其添加到 GameObject
- add_package: 在 Unity 包管理器中安装新包
- run_tests: 使用 Unity 测试运行器运行测试
- notify_message: 在 Unity 编辑器中显示消息
此 MCP 当前提供了以下 资源:
- get_menu_items: 检索 Unity 编辑器中所有可用菜单项的列表,以辅助 execute_menu_item 工具
- get_hierarchy: 检索 Unity 层次结构中的所有游戏对象的列表
- get_gameobject: 通过实例 ID 检索特定 GameObject 的详细信息,包括所有 GameObject 组件及其序列化属性和字段
- get_console_logs: 检索 Unity 控制台中的所有日志列表
- get_packages: 从 Unity 包管理器检索已安装和可用包的信息
- get_assets: 从 Unity 资源数据库检索资源信息
- get_tests: 从 Unity 测试运行器检索测试信息
需求
安装
安装此 MCP Unity 服务器是一个多步骤的过程:
步骤 1: 通过 Unity 包管理器安装 Unity MCP 服务器包
- 打开 Unity 包管理器(Window > Package Manager)
- 点击左上角的 "+" 按钮
- 选择 "Add package from git URL..."
- 输入:
https://github.com/CoderGamester/mcp-unity.git - 点击 "Add"
步骤 2: 安装 Node.js
要运行 MCP Unity 服务器,你需要在计算机上安装 Node.js 18 或更高版本:
- 访问 Node.js 下载页面
- 下载 LTS 版本的 Windows 安装程序 (.msi)(推荐)
- 运行安装程序并按照安装向导进行操作
- 通过打开 PowerShell 并运行以下命令来验证安装:
node --version
- 访问 Node.js 下载页面
- 下载 LTS 版本的 macOS 安装程序 (.pkg)(推荐)
- 运行安装程序并按照安装向导进行操作
- 或者,如果你已安装 Homebrew,可以运行:
brew install node@18 - 通过打开终端并运行以下命令来验证安装:
node --version
步骤 3: 配置 AI LLM 客户端
- 打开 Unity 编辑器
- 导航到 Tools > MCP Unity > Server Window
- 如下图所示,点击你的 AI LLM 客户端的 "Configure" 按钮
- 使用弹出窗口确认配置安装
要通过 Smithery 安装 MCP Unity,请使用以下命令:
Currently not available
打开你的 AI 客户端的 MCP 配置文件(例如 Claude Desktop 中的 claude_desktop_config.json),并复制以下文本:
将
ABSOLUTE/PATH/TO替换为你的 MCP Unity 安装的绝对路径,或者直接从 Unity 编辑器中的 MCP 服务器窗口复制文本(Tools > MCP Unity > Server Window)。
{
"mcpServers": {
"mcp-unity": {
"command": "node",
"args": [
"ABSOLUTE/PATH/TO/mcp-unity/Server/build/index.js"
],
"env": {
"UNITY_PORT": "8090"
}
}
}
}
启动 Unity 编辑器 MCP 服务器
- 打开 Unity 编辑器
- 导航到 Tools > MCP Unity > Server Window
- 点击 "Start Server" 以启动 WebSocket 服务器
- 打开 Claude Desktop 或您的 AI 编码 IDE(例如 Cursor IDE, Windsurf IDE 等)并开始执行 Unity 工具
当 AI 客户端连接到 WebSocket 服务器时,它将自动显示在窗口的绿色框中
可选:设置 WebSocket 端口
默认情况下,WebSocket 服务器运行在 8090 端口。您可以通过以下两种方式更改此端口:
- 打开 Unity 编辑器
- 导航到 Tools > MCP Unity > Server Window
- 将 "WebSocket Port" 值更改为所需的端口号
- Unity 将设置系统环境变量 UNITY_PORT 为新的端口号
- 重启 Node.js 服务器
- 再次点击 "Start Server" 以重新连接 Unity 编辑器 WebSocket 到 Node.js MCP 服务器
- 在终端中设置 UNITY_PORT 环境变量
- PowerShell
$env:UNITY_PORT = "8090"- 命令提示符/终端
set UNITY_PORT=8090 - 重启 Node.js 服务器
- 再次点击 "Start Server" 以重新连接 Unity 编辑器 WebSocket 到 Node.js MCP 服务器
调试服务器
MCP Unity 服务器是使用 Node.js 构建的。需要将 TypeScript 代码编译成 JavaScript 并放置在 build 目录中。
要构建服务器,请打开一个终端并执行以下步骤:
-
导航到 Server 目录:
cd ABSOLUTE/PATH/TO/mcp-unity/Server -
安装依赖项:
npm install -
构建服务器:
npm run build -
运行服务器:
node build/index.js
使用 @modelcontextprotocol/inspector 调试服务器:
- PowerShell
$env:UNITY_PORT=8090; npx @modelcontextprotocol/inspector node Server/build/index.js
- 命令提示符/终端
set UNITY_PORT=8090 && npx @modelcontextprotocol/inspector node Server/build/index.js
在关闭终端或使用 MCP Inspector 调试之前,请勿忘记使用 Ctrl + C 关闭服务器。
- 在您的终端或 log.txt 文件中启用日志记录:
- PowerShell
$env:LOGGING = "true" $env:LOGGING_FILE = "true"- 命令提示符/终端
set LOGGING=true set LOGGING_FILE=true
故障排除
- 确保 WebSocket 服务器正在运行(检查 Unity 中的 Server Window)
- 检查是否有防火墙限制阻止了连接
- 确保端口号正确(默认是 8080)
- 在 Unity 编辑器的 MCP Server 窗口中更改端口号。(工具 > MCP Unity > 服务器窗口)
- 检查 Unity 控制台中的错误信息
- 确保 Node.js 已正确安装并且可以在您的 PATH 中访问
- 验证服务器目录中是否已安装所有依赖项
- 确保菜单项路径正确(区分大小写)
- 检查菜单项是否需要确认
- 验证菜单项在当前上下文中是否可用
支持与反馈
如果您有任何问题或需要支持,请在此仓库中打开一个问题。
您也可以通过以下方式联系我们:
贡献
欢迎贡献!请随时提交 Pull Request 或打开一个 Issue 提出您的请求。
提交您的更改时,请遵循 Conventional Commits 格式。
许可证
此项目遵循 MIT 许可证