English | 🇨🇳简体中文 | 🇯🇵日本語 |
---|
,/(/. *(/,
*/(((((/. *((((((*.
.*((((((((((/. *((((((((((/.
./((((((((((((((/ *((((((((((((((/,
,/(((((((((((((/*. */(((((((((((((/*.
,%%#((/((((((* ,/(((((/(#&@@(
,%%##%%##((((((/*. ,/((((/(#&@@@@@@(
,%%######%%##((/(((/*. .*/(((//(%@@@@@@@@@@@(
,%%####%#(%%#%%##((/((((((((//#&@@@@@@&@@@@@@@@(
,%%####%( /#%#%%%##(//(#@@@@@@@%, #@@@@@@@(
,%%####%( *#%###%@@@@@@( #@@@@@@@(
,%%####%( #%#%@@@@, #@@@@@@@(
,%%##%%%( #%#%@@@@, #@@@@@@@(
,%%%#* #%#%@@@@, *%@@@(
., ,/##*. #%#%@@@@, ./&@#* *`
,/#%#####%%#/, #%#%@@@@, ,/&@@@@@@@@@&\.
`*#########%%%%###%@@@@@@@@@@@@@@@@@@&*´
`*%%###########%@@@@@@@@@@@@@@&*´
`*%%%######%@@@@@@@@@@&*´
`*#%%##%@@@@@&*´
`*%#%@&*´
███╗ ███╗ ██████╗██████╗ ██╗ ██╗███╗ ██╗██╗████████╗██╗ ██╗
████╗ ████║██╔════╝██╔══██╗ ██║ ██║████╗ ██║██║╚══██╔══╝╚██╗ ██╔╝
██╔████╔██║██║ ██████╔╝ ██║ ██║██╔██╗ ██║██║ ██║ ╚████╔╝
██║╚██╔╝██║██║ ██╔═══╝ ██║ ██║██║╚██╗██║██║ ██║ ╚██╔╝
██║ ╚═╝ ██║╚██████╗██║ ╚██████╔╝██║ ╚████║██║ ██║ ██║
╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═╝ ╚═╝
MCP Unity 是 Model Context Protocol 在 Unity 编辑器中的实现,允许 AI 助手与您的 Unity 项目交互。这个包提供了 Unity 和实现 MCP 协议的 Node.js 服务器之间的桥梁,使 Claude、Windsurf 和 Cursor 等 AI 代理能够在 Unity 编辑器中执行操作。
MCP Unity 通过将 Unity Library/PackedCache
文件夹添加到您的工作区,提供与 VSCode 类 IDE(Visual Studio Code、Cursor、Windsurf)的自动集成。此功能:
- 提高对 Unity 包的代码智能感知
- 为 Unity 包提供更好的自动完成和类型信息
- 帮助 AI 编码助手理解您项目的依赖关系
-
execute_menu_item
: 执行 Unity 菜单项(用 MenuItem 属性标记的函数)示例提示: "执行菜单项 'GameObject/Create Empty' 创建一个新的空 GameObject"
-
select_gameobject
: 通过路径或实例 ID 选择 Unity 层次结构中的游戏对象示例提示: "选择场景中的 Main Camera 对象"
-
update_component
: 更新 GameObject 上的组件字段,如果 GameObject 不包含该组件则添加它示例提示: "给 Player 对象添加 Rigidbody 组件并设置其质量为 5"
-
add_package
: 在 Unity 包管理器中安装新包示例提示: "给我的项目添加 TextMeshPro 包"
-
run_tests
: 使用 Unity 测试运行器运行测试示例提示: "运行我项目中所有的 EditMode 测试"
-
notify_message
: 在 Unity 编辑器中显示消息示例提示: "发送通知到 Unity 告知任务已完成"
-
add_asset_to_scene
: 将 AssetDatabase 中的资源添加到 Unity 场景中示例提示: "将我的项目中的 Player 预制体添加到当前场景"
-
unity://menu-items
: 获取 Unity 编辑器中所有可用的菜单项列表,以方便execute_menu_item
工具示例提示: "显示与 GameObject 创建相关的所有可用菜单项"
-
unity://hierarchy
: 获取 Unity 层次结构中所有游戏对象的列表示例提示: "显示当前场景的层次结构"
-
unity://gameobject/{id}
: 通过实例 ID 或场景层次结构中的对象路径获取特定 GameObject 的详细信息,包括所有 GameObject 组件及其序列化的属性和字段示例提示: "获取 Player GameObject 的详细信息"
-
unity://logs
: 获取 Unity 控制台的所有日志列表示例提示: "显示 Unity 控制台最近的错误消息"
-
unity://packages
: 从 Unity 包管理器获取已安装和可用包的信息示例提示: "列出我 Unity 项目中当前安装的所有包"
-
unity://assets
: 获取 Unity 资产数据库中资产的信息示例提示: "查找我项目中的所有纹理资产"
-
unity://tests/{testMode}
: 获取 Unity 测试运行器中测试的信息示例提示: "列出我 Unity 项目中所有可用的测试"
安装 MCP Unity 服务器是一个多步骤过程:
- 打开 Unity 包管理器 (Window > Package Manager)
- 点击左上角的 "+" 按钮
- 选择 "Add package from git URL..."
- 输入:
https://github.com/CoderGamester/mcp-unity.git
- 点击 "Add"
要运行 MCP Unity 服务器,您需要在计算机上安装 Node.js 18 或更高版本:
Windows
- 访问 Node.js 下载页面
- 下载 Windows 安装程序 (.msi) 的 LTS 版本(推荐)
- 运行安装程序并按照安装向导操作
- 通过打开 PowerShell 并运行以下命令验证安装:
node --version
macOS
- 访问 Node.js 下载页面
- 下载 macOS 安装程序 (.pkg) 的 LTS 版本(推荐)
- 运行安装程序并按照安装向导操作
- 或者,如果您已安装 Homebrew,可以运行:
brew install node@18
- 通过打开终端并运行以下命令验证安装:
node --version
选项 1: 使用 Unity 编辑器配置
- 打开 Unity 编辑器
- 导航到 Tools > MCP Unity > Server Window
- 点击 "Configure" 按钮为您的 AI LLM 客户端配置,如下图所示
- 使用给定的弹出窗口确认配置安装
选项 3: 手动配置
打开您的 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"
}
}
启动 MCP Unity 服务器有两种方式:
- 打开 Unity 编辑器
- 导航到 Tools > MCP Unity > Server Window
- 点击 "Start Server" 按钮
- 打开终端或命令提示符
- 导航到 MCP Unity 服务器目录
- 运行以下命令:
node Server/build/index.js
要调试 MCP Unity 服务器,您可以使用以下方法:
- 打开 Unity 编辑器
- 导航到 Tools > MCP Unity > Server Window
- 点击 "Debug Server" 按钮
- 打开终端或命令提示符
- 导航到 MCP Unity 服务器目录
- 运行以下命令:
npm run debug
- 确保 Node.js 18 或更高版本已安装
- 验证 npm 9 或更高版本已安装
- 检查 MCP Unity 服务器目录是否正确
- 确保菜单项路径正确(区分大小写)
- 检查菜单项是否需要确认
- 验证菜单项在当前上下文中是否可用
欢迎贡献!请阅读我们的贡献指南以获取更多信息。
此项目根据 MIT 许可证授权 - 详情请参阅 LICENSE 文件。