MCP Unity Editor(游戏引擎)
   
CoderGamester/mcp统一 基于韩文的软件包
,/(/. *(/,
*/(((((/. *((((((*.
.*((((((((((/. *((((((((((/.
./((((((((((((((/ *((((((((((((((/,
,/(((((((((((((/*. */(((((((((((((/*.
,%%#((/((((((* ,/(((((/(#&@@(
,%%##%%##((((((/*. ,/((((/(#&@@@@@@(
,%%######%%##((/(((/*. .*/(((//(%@@@@@@@@@@@(
,%%####%#(%%#%%##((/((((((((//#&@@@@@@&@@@@@@@@(
,%%####%( /#%#%%%##(//(#@@@@@@@%, #@@@@@@@(
,%%####%( *#%###%@@@@@@( #@@@@@@@(
,%%####%( #%#%@@@@, #@@@@@@@(
,%%##%%%( #%#%@@@@, #@@@@@@@(
,%%%#* #%#%@@@@, *%@@@(
., ,/##*. #%#%@@@@, ./&@#* *`
,/#%#####%%#/, #%#%@@@@, ,/&@@@@@@@@@&\.
`*#########%%%%###%@@@@@@@@@@@@@@@@@@&*'
`*%%###########%@@@@@@@@@@@@@@&*'
`*%%%######%@@@@@@@@@@&*'
`*#%%##%@@@@@&*'
`*%#%@&*'
███╗ ███╗ ██████╗██████╗ ██╗ ██╗███╗ ██╗██╗████████╗██╗ ██╗
████╗ ████║██╔════╝██╔══██╗ ██║ ██║████╗ ██║██║╚══██╔══╝╚██╗ ██╔╝
██╔████╔██║██║ ██████╔╝ ██║ ██║██╔██╗ ██║██║ ██║ ╚████╔╝
██║╚██╔╝██║██║ ██╔═══╝ ██║ ██║██║╚██╗██║██║ ██║ ╚██╔╝
██║ ╚═╝ ██║╚██████╗██║ ╚██████╔╝██║ ╚████║██║ ██║ ██║
╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═╝ ╚═╝MCP Unity是用于Unity Editor的Model Context Protocol实现,允许AI助手与Unity项目进行交互。该软件包提供了实现Unity和MCP协议的Node.js服务器之间的桥梁,允许Cursor、Windsurf、Claude Code、Codex CLI、GitHub Copilot等AI代理在Unity Editor中运行任务。
主要功能
IDE集成-包缓存访问
MCP Unity与VSCode系列IDE(Visual Studio Code、Cursor、Windsurf)自动集成,实现Unity Library/PackedCache 将文件夹添加到工作空间:
- 增强Unity软件包的代码智能
- 自动完成Unity包并改进类型信息
- 改善AI编码助手对项目依赖性的理解
MCP服务器工具
通过MCP提供多种工具来操作和查看Unity场景和游戏对象:
管理场景和游戏对象
execute_menu_item:运行Unity菜单项select_gameobject:选择游戏对象update_gameobject:更新游戏对象属性(名称、标签、图层、活动/静态状态)update_component:更新元件字段或添加元件get_gameobject:查看游戏对象的详细信息get_scene_info:查看活动的精简信息duplicate_gameobject/delete_gameobject/reparent_gameobject:管理游戏对象create_scene/load_scene/save_scene/delete_scene/unload_scene:精简管理create_prefab:使用MonoBehaviour脚本创建PreFabadd_asset_to_scene:将AssetDatabase中的资源添加到场景中batch_execute:在单个批处理中运行多个工具操作
变换
move_gameobject/rotate_gameobject/scale_gameobject/set_transform:Transform操作
材料的
create_material/assign_material/modify_material/get_material_info:材料管理
脚本
create_script:C#创建脚本文件(MonoBehaviour、ScriptableObject、通用类模板)attach_script:将脚本组件连接到游戏对象get_script_info:查看脚本的序列化字段和公开方法信息recompile_scripts:重新编译脚本
用户界面(TextMeshPro)
create_ui_element:创建UI元素(Canvas、Button、Text、Image、Panel、Slider、Toggle、InputField、Dropdown、ScrollView)-自动设置Canvas和EventSystem,Text/Button/Togle/InputField/Dropdown使用TextMeshPro(TMP)组件modify_ui_element:修改UI元素属性(文本、字体大小、颜色、位置、大小、活动状态)-支持TextMeshPro文本组件
动画
get_animator_info:查看Animator元件的参数、层、状态等详细信息set_animator_parameter:设置Animator参数值(支持Float、Int、Bool、Trigger)
搜索资源
search_assets:通过过滤器(类型、标签、文件夹路径等)搜索项目资源get_asset_dependencies:查询资源的依存关系(支持递归选项)reimport_asset:资源导入(强制完全导入选项)
构建
build_project:使用指定平台(Windows、macOS、Android、iOS、WebGL)构建项目get_build_settings:查看当前构建设置(目标平台、场景、设置)
项目设置
get_project_settings:按类别查看项目设置(player、quality、physics、time、build)set_project_settings:按类别更改项目设置(player、quality、physics、time)get_build_scenes/set_build_scenes:查看和设置Build Settings精简列表
游戏模式
enter_play_mode/exit_play_mode:开始/结束游戏模式pause_editor:暂停/恢复编辑器step_frame:在暂停状态下以帧为单位进行
物理
physics_raycast:在场景中进行物理光线投射(返回点击点、法线、距离、游戏对象)get_physics_settings:查询物理设置(重力、Solver循环、阈值)
侧写师
get_memory_snapshot:内存使用快照(总分配/保留/未使用、Mono堆、图形驱动程序、资源详细分析选项)get_rendering_stats:查询渲染统计信息(拖放、放置、设置传递、三角形、顶点、阴影播放机)get_frame_timing:查询CPU/GPU帧定时(当前FPS、目标FPS、vSync、逐帧CPU/GPU时间)get_profiler_data:查看配置文件帧数据(按帧筛选父CPU示例、调用数、GC分配、类别)get_profiler_report:综合配置文件报告(将内存+渲染+帧定时+CPU示例合并为单一响应)
截图
capture_screenshot:捕获Game View或Scene View屏幕截图(返回base64PNG)
撤消/重做
undo/redo:撤消/重做get_undo_history:查看撤消历史记录
其他
add_package:通过Unity Package Manager安装软件包run_tests:使用Unity Test Runner运行测试send_console_log:向Unity控制台发送日志get_console_logs:查看Unity控制台日志
MCP服务器资源
unity://menu-items:查看可用菜单项列表unity://scenes-hierarchy:查看当前场景中的游戏对象层次结构unity://gameobject/{id}:查看特定游戏对象的详细信息unity://logs:查看Unity控制台日志unity://packages:查看已安装的软件包信息unity://assets:查看Asset Database中的资源信息unity://tests/{testMode}:查看Unity Test Runner的测试信息
需求
关于项目路径的注释 MCP Unity支持包含空格的项目路径。但是,如果您遇到连接问题,请尝试将项目移动到没有空格的路径。
安装
步骤1:安装Node.js
运行MCP Unity服务器需要Node.js 18或更高版本。
- 从下载LTS版本。
- 安装后在终端上检查:
node --version如果在MacOS上使用Homebrew:
brew install node@18步骤2:使用Unity Package Manager安装软件包
- 打开Unity Package Manager(Window>Package Manager)
- 单击左上角的“+”按钮
- 选择“Add package from git URL…”
- 输入以下URL:
https://github.com/geuneda/geuneda-mcp-unity.git - 单击“Add”
步骤3:AI LLM客户端设置
方法1:在Unity Editor中设置(推荐)
- 打开Unity Editor
- 转到Tools>MCP Unity>Server Window
- 单击您使用的AI LLM客户端的“Configure”按钮
- 在弹出窗口中检查设置安装
方法2:手动设置
打开AI客户端的MCP设置文件,并添加以下设置:
ABSOLUTE/PATH/TO使用实际的MCP Unity安装路径替换。可以从Unity Editor MCP Server窗口(Tools>MCP Unity>Server Window)复制路径。基于JSON的客户端 (Cursor、Windsurf、Claude Code、GitHub Copilot등):
{
"mcpServers": {
"mcp-unity": {
"command": "node",
"args": [
"ABSOLUTE/PATH/TO/mcp-unity/Server~/build/index.js"
]
}
}
}Codex 命令行界面 (~/.codex/config.toml):
[mcp_servers.mcp-unity]
command = "node"
args = ["ABSOLUTE/PATH/TO/mcp-unity/Server~/build/index.js"]启动Unity Editor MCP服务器
- 打开Unity Editor
- 转到Tools>MCP Unity>Server Window
- 单击“Start Server”启动WebSocket服务器
- 打开AI编码IDE(Cursor、Windsurf、Claude Code、Codex CLI、GitHub Copilot等)并运行Unity工具
当AI客户端连接到WebSocket服务器时,它将自动显示在窗口的绿色框中。
可选:设置WebSocket端口
默认情况下,WebSocket服务器在端口“8090”上运行。要更改端口,请:
- 打开Unity Editor
- 转到Tools>MCP Unity>Server Window
- 将“WebSocket Port”值更改为所需的端口号
- 重新启动Node.js服务器
- 再次单击“Start Server”重新连接
可选:设置超时
默认超时时间为10秒。要更改:
- 打开Unity Editor
- 转到Tools>MCP Unity>Server Window
- 更改“Request Timeout(seconds)”值
- 重新启动Node.js服务器
可选:多客户机并发连接
MCP Unity支持多个MCP客户端的并发连接。使用Claude Code的代理团队功能等,在同时运行多个代理时非常有用。
- 默认最大并发连接数为 10是
- 要进行更改,请在Tools>MCP Unity>Server Window中调整“Max Connections”值
- 有效范围:1至50(文件刻录机安全限制)
调试服务器
构建Node.js服务器
如果遇到问题,可以在Unity Editor中强制安装:
- 打开Unity Editor
- 转到Tools>MCP Unity>Server Window
- 单击“Force Install Server”按钮
手动构建:
cd ABSOLUTE/PATH/TO/mcp-unity/Server~
npm install
npm run build
node build/index.js使用MCP Inspector进行调试
npx @modelcontextprotocol/inspector node Server~/build/index.js启用控制台日志
# macOS / Linux
export LOGGING=true
export LOGGING_FILE=true
# Windows PowerShell
$env:LOGGING = "true"
$env:LOGGING_FILE = "true"常见问题
什么是MCP Unity?
MCP Unity是使用Model Context Protocol(MCP)连接Unity Editor环境和AI助手LLM工具的桥梁。在Unity Editor内部运行WebSocket服务器,Node.js服务器实现MCP,AI助手可以向Unity发送命令和接收信息。
为什么要使用MCP Unity?
- 加速开发:使用AI提示符自动执行重复任务、生成锅炉板代码、管理资源
- 提高工作效率:无需单击菜单或编写脚本即可与Unity Editor功能交互
- 提高可访问性:不熟悉Unity Editor或C#脚本编写的用户也可以通过AI指导修改项目
- 可扩展性:通过扩展协议和工具集,可以将特定项目的功能暴露给AI
支持哪些IDE?
- 光标
- 帆板运动
- 克劳德桌面版
- 克劳德代码
- Codex 命令行界面
- GitHub Copilot
- 谷歌反重力
可以用定制工具扩展吗?
好的。 McpToolBase创建继承的C#类,暴露自定义Unity Editor功能,并在Node.js服务器上 Server/src/tools/ 在目录中添加TypeScript处理程序即可。
如果无法连接
- 验证WebSocket服务器是否正在运行(Unity Server Window)
- MCP客户端发送控制台日志消息,尝试重新连接
- 在Unity Editor MCP Server窗口中更改端口号
如果服务器无法启动
- 在Unity控制台中检查错误消息
- 确保Node.js已正确安装并包含在PATH中
- 验证服务器目录中是否安装了所有依存关系
运行测试
C#测试(Unity)
- 打开Unity Editor
- 转到Window>General>Test Runner。
- 选择“EditMode”选项卡
- 单击“Run All”运行所有测试
TypeScript测试(服务器)
cd Server~
npm test在Watch模式下运行:
npm run test:watch许可证
这个项目 MIT许可证分发到。
源项目
-
