UE5终极MCP
一个开源插件,让AI编码助手控制虚幻引擎5编辑器——蓝图、材质、序列器、AI、世界构建等等。
状态:阿尔法/未测试 --通过结合三个伟大的开源项目并添加新的工具类别而构建。需要现实世界的测试。
它做什么
你打开UE5项目,启动Claude Code(或任何兼容MCP的AI),并告诉它要构建什么:
> "Add a health variable to the player blueprint, wire up a damage event, and create a HUD widget showing the health bar"AI使用158个工具直接操纵编辑器——创建蓝图、连接节点、生成演员、编辑材料、设置动画——而无需点击菜单。
快速开始
您需要: UE 5.7,Node.js 18+,克劳德代码
选项1-Claude代码插件(最简单)
作为Claude Code插件安装——无需手动复制或构建步骤:
/plugin marketplace add https://github.com/NodeNestor/nestor-plugins
/plugin install ue5-ultimate-mcp然后在UE5项目文件夹中,只需说:
/setup-ue5Claude会自动将插件复制到您的项目中,检测它是C++还是仅限Blueprint的项目,并设置所有内容。
选项2——手动设置
1.将插件安装到UE5项目中
预构建二进制文件(仅限蓝图项目): 下载自 发布 并提取到 YourGame/Plugins/UE5UltimateMCP/.
来源(C++项目):
git clone https://github.com/NodeNestor/UE5UltimateMCP.git
cp -r UE5UltimateMCP YourGame/Plugins/UE5UltimateMCP2.注册MCP服务器
claude mcp add ue5 -- node Plugins/UE5UltimateMCP/MCP/dist/index.js3.使用它
- 在UE5中打开你的项目——插件会自动启动(HTTP服务器在9847端口)
- 在同一项目文件夹中打开终端
- 跑
claude - 让它做事情
第一次? 试试:“检查服务器状态,告诉我有多少工具可用”
里面是什么
该项目依靠三个优秀的开源UE5 MCP集成:
| 来源项目 | 我们取得了什么 | 功劳 |
|---|---|---|
| 蓝图MCP by mirno ehf | 蓝图读/写、材质、动画、快照——手术图编辑工具(83个工具) | 我们蓝图和材质系统的核心 |
| 不合理的赞美 by Natfii | 工具注册表模式、视口捕获、智能工具布线、上下文注入 | 架构灵感+视口/编辑器工具 |
| 虚幻发动机mcp by flopperam | 演员管理,程序化世界生成(城堡、城镇、迷宫) | 世界生成算法+演员工具 |
我们将最好的部分组合成一个插件,并添加了 46种新工具 对于没有涵盖的类别:
- 定序器 --关键帧、摄影机剪切、视频渲染
- 行为树 --任务、装饰、黑板、复合材料
- 导航 --导航网格构建、寻路、修改器
- 数据表 --创建、添加行、导入CSV
- 树叶 --分散实例、树叶类型
- 尼亚加拉 --粒子系统、发射器、参数
- UI/UMG --小部件蓝图、子小部件、事件绑定
- 构建和打包 --照明、烹饪、包装、命令
注: 克劳迪斯 (FAB 60美元)涵盖了类似的领域,有130多个命令,是一种经过测试的生产产品。这是一种免费的开源替代方案——虽然不那么精致,但麻省理工学院授权且可扩展。
全部158工具
Actors (8) — Spawn, delete, transform, inspect actors
| 工具 | 说明 |
|---|---|
spawn_actor | 按类别生成(StaticMesh、PointLight、Camera等) |
delete_actor | 从关卡中删除一个演员 |
get_actors_in_level | 列出所有有变换的演员 |
find_actors_by_name | 按名称模式搜索 |
set_actor_transform | 设置位置、旋转、比例 |
spawn_blueprint_actor | 生成Blueprint实例 |
get_actor_properties | 读取所有可编辑属性 |
set_actor_property | 按名称设置属性 |
Blueprint Read (8) — Inspect Blueprints without modifying
| 工具 | 说明 |
|---|---|
list_blueprints | 列出所有蓝图资产 |
get_blueprint | 获取图形、变量、函数 |
get_blueprint_graph | 带引脚的完整节点图 |
search_blueprints | 按名称、类别、内容搜索 |
get_blueprint_summary | 简洁的结构概述 |
describe_graph | 人类可读的逻辑描述 |
find_asset_references | 查找参考蓝图的内容 |
search_by_type | 按UClass搜索资产 |
Blueprint Mutation (13) — Edit Blueprint graphs
| 工具 | 说明 |
|---|---|
add_node | 添加功能、事件、流控制节点 |
delete_node | 删除节点 |
move_node | 在图形中重新定位 |
connect_pins | 将两个引脚连接在一起 |
disconnect_pin | 断开连接 |
set_pin_default | 设置默认引脚值 |
duplicate_nodes | 复制节点 |
set_node_comment | 添加/编辑评论 |
refresh_all_nodes | 修复过时的引用 |
replace_function_calls | 批量替换函数调用 |
rename_asset | 使用重定向器重命名 |
delete_asset | 删除资产 |
set_blueprint_default | 设置CDO默认值 |
Blueprint Graphs (5) — Create and manage graphs
| 工具 | 说明 |
|---|---|
create_blueprint | 创建新蓝图(Actor、Pawn、Interface等) |
create_graph | 创建函数或宏图 |
delete_graph | 删除图形 |
rename_graph | 重命名图形 |
reparent_blueprint | 更改父类 |
Variables (4)
add_variable, remove_variable, change_variable_type, set_variable_metadata
Parameters (3)
add_function_parameter, remove_function_parameter, change_function_parameter_type
Components (3)
list_components, add_component, remove_component
Interfaces (3)
list_interfaces, add_interface, remove_interface
Event Dispatchers (2)
add_event_dispatcher, list_event_dispatchers
User Types (4)
create_struct, create_enum, add_struct_property, remove_struct_property
Discovery (5)
list_classes, list_functions, list_properties, get_pin_info, check_pin_compatibility
Snapshots & Diff (6)
snapshot_graph, diff_graph, restore_graph, find_disconnected_pins, analyze_rebuild_impact, diff_blueprints
Validation (2)
validate_blueprint, validate_all_blueprints
Material Read (8)
list_materials, get_material, get_material_graph, describe_material, search_materials, find_material_references, list_material_functions, get_material_function
Material Mutation (14)
create_material, set_material_property, add_material_expression, delete_material_expression, connect_material_pins, disconnect_material_pin, set_expression_value, move_material_expression, create_material_instance, set_material_instance_parameter, snapshot_material_graph, diff_material_graph, restore_material_graph, validate_material
Animation (10)
create_anim_blueprint, add_anim_state, remove_anim_state, add_anim_transition, set_transition_rule, add_anim_node, add_state_machine, set_state_animation, create_blend_space, set_blend_space_samples
Sequencer (7) — NEW
create_level_sequence, add_actor_to_sequence, add_transform_keyframe, add_camera_cut, set_sequence_length, render_sequence_to_video, play_sequence
Behavior Trees (9) — NEW
create_behavior_tree, create_blackboard, add_blackboard_key, add_bt_task, add_bt_decorator, add_bt_service, add_bt_selector, add_bt_sequence, link_blackboard_to_tree
Navigation (5) — NEW
build_navigation, add_nav_mesh_bounds, test_path, get_nav_mesh_info, add_nav_modifier
Data Tables (5) — NEW
create_data_table, add_data_table_row, get_data_table_rows, remove_data_table_row, import_csv_to_data_table
Foliage (4) — NEW
scatter_foliage, add_foliage_type, clear_foliage, get_foliage_info
Niagara (5) — NEW
create_niagara_system, spawn_niagara_actor, add_niagara_emitter, set_niagara_parameter, list_niagara_systems
UI / UMG (5) — NEW
create_widget_blueprint, add_widget_child, set_widget_property, list_widget_blueprints, bind_widget_event
World Generation (9)
create_wall, create_tower, create_staircase, create_arch, create_pyramid, create_maze, create_castle, create_town, create_house
Build & Package (6) — NEW
build_lighting, build_navigation_only, cook_project, package_project, get_build_status, run_commandlet
Viewport & Editor (5)
capture_viewport, get_output_log, run_console_command, open_level, get_level_info
运作原理
Claude Code ←stdio→ TypeScript Bridge ←HTTP :9847→ C++ Plugin in UE5 Editor
(translates MCP (runs tools on the
protocol to HTTP) game thread)- 当您打开UE5并在端口9847上启动HTTP服务器时,C++插件会加载
- TypeScript桥将Claude Code连接到该服务器
- 当Claude调用一个工具时,桥POST到插件,插件在游戏线程上执行
- 新的C++工具在Claude中自动出现——不需要对TypeScript进行更改
测试
一旦UE5与插件一起运行:
# Check if the server is responding
python tests/test_health.py
# Run integration tests (spawns actors, captures viewport, etc.)
python tests/test_tools.py
# Test world generation (creates and cleans up structures)
python tests/test_worldgen.py添加新工具
在中创建处理程序 Source/.../Private/Handlers/:
#include "Tools/MCPToolBase.h"
#include "Tools/MCPToolRegistry.h"
class FTool_MyThing : public FMCPToolBase
{
public:
FMCPToolInfo GetInfo() const override
{
FMCPToolInfo Info;
Info.Name = TEXT("my_thing");
Info.Description = TEXT("Does a thing");
Info.Annotations.Category = TEXT("MyCategory");
return Info;
}
FMCPToolResult Execute(const TSharedPtr& Params) override
{
// UE5 API calls here...
TSharedPtr Result = MakeShared();
Result->SetStringField(TEXT("status"), TEXT("done"));
return FMCPToolResult::Ok(Result);
}
};
namespace UltimateMCPTools {
void RegisterMyTools() {
FMCPToolRegistry::Get().Register(MakeShared());
}
}在中注册 UltimateMCPSubsystem.cpp 它自动出现在克劳德身上。
需求
- 虚幻引擎5.7(预先构建的二进制文件是根据5.7编译的-源代码可能在5.4+上工作,只需对API做一些小调整)
- Node.js 18+
- Claude Code(或任何兼容MCP的AI客户端)
许可证
麻省理工学院——随心所欲。
致谢
如果没有以下内容,这个项目就不会存在:
- 米尔诺ehf/ue5 mcp --蓝图和材质编辑工具改编自此项目。他们的HTTP服务器架构、排队的游戏线程执行和SEH崩溃安全模式构成了我们插件的支柱。
- 国家/未经批准 --工具注册表模式、智能工具路由(巨型工具折叠)和上下文注入系统都受到了这个项目的启发。他们的MCP桥架构影响了我们的TypeScript包装器。
- flopperam/虚幻发动机mcp --演员管理和程序世界生成(城堡、城镇、迷宫)是从该项目的Python算法移植而来的。
- 克劳迪斯 --付费插件显示了全面的UE5 AI集成应该涵盖什么。我们的新工具类别(序列器、行为树、导航等)的灵感来自它们的功能集。
