Token导航 LogoToken导航TokenDH.com
Unreal MCP (Sallah Boussettah) logo
运维云端stdio官方级别未说明来源级核验

Unreal MCP (Sallah Boussettah)

MCP Server

UnrealMCP是一个为虚幻引擎5.6+设计的综合MCP服务器,通过AI控制整个虚幻编辑器,支持87种工具和45种蓝图节点类型。

工具数

87

提示词数

0

GitHub Stars

0

资源数

0
C++PythonClaudeClaudeCursorWindsurf

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

SallahBoussettah

提供方

SallahBoussettah

最后核验

2026/5/17 20:21

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m venv .venv

详细介绍

UnrealMCP

虚幻引擎最全面的MCP服务器。 87工具, 45种蓝图节点类型, 16个类别 --通过AI控制整个虚幻编辑器。

一个混合的Python+C++系统,允许AI助手(Claude、Cursor、Windsurf)创建蓝图、操纵节点图、管理参与者、编辑材料、构建UI小部件、设置动画状态机、调试带有断点的蓝图、填充数据表、配置增强输入——所有这些都可以通过自然语言通过 模型上下文协议.

专为虚幻引擎5.6+打造。

为什么是不现实的CP?

UnrealMCPEpic的内置MCP其他解决方案
工具87基本编辑器操作~20-30
蓝图节点类型45有限基本
类别16少量3-4
C++命令处理程序82不适用不适用
蓝图调试
动画蓝图
小部件蓝图
DataTable编辑
增强输入设置
生产状态生产等级基本实验

建筑

AI Client ──stdio──> Python MCP Server ──TCP:55555──> C++ UE5 Editor Plugin
                     (87 tools)                       (82 command handlers)
                     mcp-server/                      plugin/UnrealMCP/
  • Python MCP服务器 --通过stdio实现MCP协议。将工具调用转换为TCP命令。
  • C++UE5插件 --在虚幻编辑器中运行。监听TCP端口55555,使用本机UE5 C++API在游戏线程上执行命令。
  • 协议 --4字节大端序长度前缀+JSON有效载荷。基于UUID的请求/响应匹配。支持高达10MB的有效载荷(用于截图)。

在端口55557上与Epic的内置MCP一起运行,两者独立运行,没有冲突。

快速设置

1.安装Python MCP服务器

cd mcp-server
python -m venv .venv
.venv/Scripts/activate   # Windows
pip install -e .

2.安装UE5插件

复制 plugin/UnrealMCP/ 进入UE5项目 Plugins/ 文件夹并编译。通过检查输出日志进行验证:

UnrealMCP: Listening on port 55555

3.配置您的AI客户端

添加到您的 .claude.json (或使用 claude mcp add):

{
  "mcpServers": {
    "UnrealMCP": {
      "command": "
/mcp-server/.venv/Scripts/python.exe",
      "args": ["-m", "unreal_mcp.server"],
      "cwd": "
/mcp-server"
    }
  }
}

你能用它做什么?

  • 人工智能辅助游戏原型 --用自然语言描述游戏机制,让人工智能创建具有正确节点和连接的蓝图
  • 自动化蓝图构建 --以编程方式构建复杂的节点图(健康系统、库存、人工智能行为)并自动布局它们
  • 关卡设计 --创建/加载/保存地图,管理流媒体子级别,生成角色,设置变换,分配材质
  • 运行时测试 --在编辑器会话中启动播放、暂停/恢复游戏、读取日志、在运行时使用断点调试蓝图
  • UI原型设计 --使用17种小部件类型创建小部件蓝图,设置属性,构建完整的UMG层次结构
  • 动画设置 --创建动画蓝图、状态机、过渡、混合空间和蒙太奇
  • 数据驱动设计 --为物品、统计数据、对话、战利品创建和填充数据表;从CSV导入
  • 输入配置 --创建InputActions和InputMappingContexts,使用修饰符和触发器配置WASD/游戏手柄绑定
  • 批量操作 --生成数十个参与者,添加许多节点,或在单个工具调用中连接整个图形

工具参考

蓝图工具(11)

工具说明关键参数
create_blueprint创建新的Blueprint类或接口name, parent_class (演员、爪子、角色、GameModeBase、玩家控制器、演员组件、场景组件), path, blueprint_type (正常,接口)
list_blueprints列出目录中的所有Blueprint资产path, recursive
get_blueprint_info获取完整的蓝图结构asset_path --返回变量、函数、组件、事件图、父类
compile_blueprint使用详细的错误诊断进行编译asset_path --返回状态、错误计数、警告计数、每个节点的错误详细信息
delete_blueprint删除蓝图资产asset_path
add_blueprint_variable添加类型化成员变量asset_path, variable_name, variable_type (布尔、整数、浮点、双精度、字符串、向量、旋转器、变换、对象:类名等), default_value, category, is_instance_editable
remove_blueprint_variable删除成员变量asset_path, variable_name
add_blueprint_component向层次结构中添加组件asset_path, component_class, component_name, parent_component, location, rotation, scale
set_blueprint_component_defaults在BP组件模板上设置默认属性asset_path, component_name, property_name, property_value
remove_blueprint_component从SCS层次结构中删除组件asset_path, component_name, promote_children
implement_interface向蓝图添加蓝图接口asset_path, interface_path

节点图工具(9)

工具说明关键参数
add_node将节点添加到蓝图图中asset_path, node_type (45种——见下文), function_name, target_class, node_position, params
get_graph_nodes获取所有具有引脚和连接的节点asset_path, graph_name --返回节点ID、类、位置、引脚详细信息、连接图
connect_pins将输出引脚连接到输入引脚asset_path, source_node_id, source_pin_name, target_node_id, target_pin_name
disconnect_pins断开引脚上的所有连接asset_path, node_id, pin_name
delete_node从图中删除节点asset_path, node_id
set_pin_value设置引脚的默认值asset_path, node_id, pin_name, value
create_function创建新的函数图asset_path, function_name, inputs, outputs
delete_function从蓝图中删除函数asset_path, function_name
arrange_graph使用分层图算法自动布局所有节点asset_path, graph_name, horizontal_spacing, vertical_spacing

45 Supported Node Types (click to expand)

类别节点类型描述必填参数
函数CallFunction呼叫任何UFUNCTIONfunction_name, target_class
CommutativeAssociativeBinaryOperator可扩展数学(加法、乘法…)function_name, target_class
事件Event内置事件参数: event_name
CustomEvent自定义事件参数: event_name
EnhancedInputAction增强输入事件参数: input_action_path
Self自我参照--
变量VariableGet获取变量params: variable_name
VariableSet设置变量params: variable_name
流量控制BranchIf/else--
Sequence执行顺序参数: num_outputs
MultiGate多个执行输出--
Select按索引选择--
DoOnceMultiInput多输入DoOnce--
MacroInstance标准宏(ForLoop、DoOnce、WhileLoop、ForEachLoop、Gate、FlipFlop、DoN、IsValid)参数: macro_name
ForEachElementInEnum循环枚举值参数: enum_name
开关SwitchInteger打开int--
SwitchString打开字符串--
SwitchName打开FName--
SwitchEnum打开枚举参数: enum_name
铸造DynamicCast转换为params: target_class
ClassDynamicCast类转换参数: target_class
结构体MakeStruct制作结构params: struct_type
BreakStruct断开结构参数: struct_type
SetFieldsInStruct设置结构字段params: struct_type
容器MakeArray使数组变为文字num_inputs
MakeMap使地图文字化--
MakeSet设置文字--
GetArrayItem数组索引访问--
产卵SpawnActorFromClass生成演员节点--
GenericCreateObject构造对象--
AddComponentByClass添加组件--
CreateWidget创建小部件参数: widget_class
代表CreateDelegate创建委托绑定--
AddDelegate绑定到调度器params: delegate_name
RemoveDelegate解除与调度程序参数的绑定: delegate_name
CallDelegate消防调度员参数: delegate_name
ClearDelegate清除所有绑定参数: delegate_name
文本FormatText设置带通配符的文本格式--
EnumLiteral枚举值文字params: enum_name
杂项Timeline时间线参数: timeline_name
Knot重新路由节点--
LoadAsset异步加载资产--
EaseFunction缓动/插值--
GetClassDefaults获取类默认值--
GetDataTableRow数据表查找--

示例:

PrintString     → node_type="CallFunction", function_name="PrintString", target_class="KismetSystemLibrary"
Delay           → node_type="CallFunction", function_name="Delay", target_class="KismetSystemLibrary"
Branch          → node_type="Branch"
For Loop        → node_type="MacroInstance", params={"macro_name": "ForLoop"}
Cast To Actor   → node_type="DynamicCast", params={"target_class": "Character"}
Make Vector     → node_type="MakeStruct", params={"struct_type": "Vector"}
Spawn Actor     → node_type="SpawnActorFromClass"
Timeline        → node_type="Timeline", params={"timeline_name": "DoorTimeline"}
Input Action    → node_type="EnhancedInputAction", params={"input_action_path": "/Game/Input/IA_Jump"}

演员工具(6)

工具说明关键参数
spawn_actor生成一个actor或Blueprint实例actor_class, name, location, rotation, scale, blueprint_path
delete_actor从级别中删除演员actor_name
set_actor_transform设置位置、旋转和/或比例actor_name, location, rotation, scale
get_actors_in_level列出所有演员(世界大纲视图)class_filter, name_filter, tag_filter
find_actors按名称模式搜索演员query
duplicate_actor用偏移量复制演员actor_name, new_name, location_offset

属性工具(5)

工具说明关键参数
get_object_properties读取所有属性(相当于详细信息面板)object_path, category_filter, include_inherited
set_object_property设置带有编辑器通知的属性object_path, property_name (支持点符号: RelativeLocation.X), property_value
get_component_hierarchy获取组件树actor_name
get_class_defaults获取类默认对象属性class_name
set_component_property在特定组件上设置属性actor_name, component_name, property_name, property_value

材料工具(4)

工具说明关键参数
create_material创建具有初始值的材质name, path, base_color, roughness, metallic
assign_material将材质应用于网格组件actor_name, material_path, slot, component_name
modify_material更新材料属性asset_path, base_color, roughness, metallic, scalar_params, vector_params
get_material_info获取物料参数和元数据asset_path

水平工具(7)

工具说明关键参数
get_level_info获取世界名称、持久级别和流媒体子级别--
create_level创建新的空白地图或从模板创建save_path, template_path
save_level保存当前地图或保存所有脏包asset_path, save_all
load_level打开现有地图map_path
add_streaming_level添加流媒体子级别package_name, streaming_class, location, rotation, create_new
remove_streaming_level删除流媒体子级别package_name
set_level_visibility显示/隐藏子级别package_name, visible, make_current

资产工具(5)

工具说明关键参数
import_asset导入FBX、OBJ、PNG、WAV等格式。file_path, destination_path, asset_name
search_assets按类型和名称搜索内容浏览器path, type, name_pattern, recursive
get_asset_info获取详细的资产元数据asset_path
delete_asset通过参照检查删除资产asset_path, force
rename_asset重命名或移动资产asset_path, new_path

视口工具(2)

工具说明关键参数
take_screenshot将编辑器窗口捕获为PNG格式width, height, filename
focus_viewport移动编辑器相机target, location, rotation, distance

控制台工具(3)

工具说明关键参数
get_console_logs阅读最近的日志消息count, verbosity_filter, category_filter
execute_console_command运行控制台命令command, target (编辑器或馅饼)
batch_execute在一次TCP往返中执行多个命令commands, stop_on_error

PIE工具(4)

工具说明关键参数
start_pie在编辑器中开始播放mode (视口、new_window、模拟)
stop_pie停止PIE会话--
get_pie_status获取PIE状态--
set_pie_paused暂停或继续paused

批处理工具(3)

工具说明关键参数
batch_add_nodes在一次调用中添加多个节点asset_path, nodes, stop_on_error
batch_pin_operations在一次调用中连接引脚并设置值asset_path, connections, pin_values
batch_spawn_actors在一次通话中培养多个演员actors, stop_on_error

小工具(5)

工具说明关键参数
create_widget_blueprint创建UMG小部件蓝图name, path, root_widget_type
add_widget添加一个小部件(17种类型:按钮、文本块、图像、进度条等)asset_path, widget_type, widget_name, parent_name, slot_properties
set_widget_property设置小部件属性asset_path, widget_name, property_name, property_value
get_widget_tree获取完整的小部件层次结构asset_path
remove_widget删除小部件asset_path, widget_name

动画工具(7)

工具说明关键参数
create_anim_blueprint创建动画蓝图name, skeleton_path, path
add_anim_state向AnimGraph状态机添加状态asset_path, state_name, animation_asset
add_anim_transition添加状态之间的转换asset_path, source_state, target_state, duration, blend_mode
set_anim_transition_rule设置转换条件asset_path, source_state, target_state, rule_type
add_blend_space创建BlendSpace资源name, skeleton_path, axis_x_name, axis_y_name, samples
add_anim_montage创建动画蒙太奇name, animation_path, slot_name
get_anim_graph获取状态机结构asset_path

调试工具(5)

工具说明关键参数
set_breakpoint在节点上设置/切换断点asset_path, node_id, graph_name, enabled
get_breakpoints列出蓝图中的所有断点asset_path
get_watch_values读取观察到的引脚值(暂停PIE)asset_path
step_executionStep蓝图调试器step_type (进入、结束、退出、简历)
get_call_stack暂停时获取执行跟踪--

DataTable工具(6)

工具说明关键参数
create_data_table使用行结构创建DataTableasset_name, package_path, row_struct
add_data_table_row添加一行字段值asset_path, row_name, values
modify_data_table_row更新一行中的特定字段asset_path, row_name, values
delete_data_table_row删除一行asset_path, row_name
get_data_table_rows获取所有具有字段值的行asset_path, row_name
import_data_table_csv从CSV字符串导入行asset_path, csv_data, append

增强型输入工具(5)

工具说明关键参数
create_input_action创建增强的输入操作资产asset_name, package_path, value_type (布尔值、轴1D、轴2D、轴3D)
create_input_mapping_context创建输入映射上下文asset_name, package_path
add_input_mapping将键映射到具有修饰符和触发器的InputActioncontext_path, action_path, key, modifiers, triggers
remove_input_mapping删除映射context_path, action_path, key
get_input_mapping_context从上下文中读取所有映射context_path

技术细节

使用UE5 C++API

  • 蓝图: FKismetEditorUtilities::CreateBlueprint(), FBlueprintEditorUtils::AddMemberVariable(), CompileBlueprint()
  • 节点图: UK2Node_CallFunction, UK2Node_Event, UK2Node_IfThenElse, UEdGraphSchema_K2::TryCreateConnection()
  • 属性: FProperty::ImportText_Direct() / ExportTextItem_Direct(), PreEditChange() / PostEditChangeProperty()
  • 材料: UMaterialFactoryNew::FactoryCreateNew(), UMaterial::GetEditorOnlyData(), UMaterialEditingLibrary
  • 等级: UEditorLoadingAndSavingUtils, UEditorLevelUtils, FEditorFileUtils
  • 资产: UAutomatedAssetImportData, ImportAssetsAutomated(), IAssetRegistry::GetAssets()
  • 馅饼: GEditor->RequestPlaySession(), RequestEndPlayMap(), SetPIEWorldsPaused()
  • 数据表: UDataTableFactory, FDataTableEditorUtils::AddRow(), CreateTableFromCSVString()
  • 增强输入: UInputAction, UInputMappingContext::MapKey(),修饰符和触发器
  • 截图:Win32 PrintWindow(), IImageWrapper PNG编码
  • 线程安全:所有命令通过以下方式在游戏线程上执行 AsyncTask(ENamedThreads::GameThread),通过以下方式撤消支持 FScopedTransaction

项目结构

UnrealMCP/
  mcp-server/                  # Python MCP server
    src/unreal_mcp/
      server.py                # Entry point, FastMCP setup
      connection.py            # TCP client (4-byte prefix protocol)
      tools/                   # Tool definitions by category
        blueprint.py           #  11 Blueprint tools
        node_graph.py          #   9 Node Graph tools
        actor.py               #   6 Actor tools
        property.py            #   5 Property tools
        material.py            #   4 Material tools
        viewport.py            #   2 Viewport tools
        console.py             #   3 Console tools
        level.py               #   7 Level tools
        asset.py               #   5 Asset tools
        pie.py                 #   4 PIE tools
        batch.py               #   3 Batch tools
        widget.py              #   5 Widget tools
        anim.py                #   7 Animation tools
        debug.py               #   5 Debug tools
        datatable.py           #   6 DataTable tools
        input.py               #   5 Input tools
  plugin/UnrealMCP/            # C++ UE5 editor plugin
    Source/UnrealMCP/
      Private/
        MCPTCPServer.cpp       # TCP listener, command dispatch
        Commands/              # 82 command handlers by category
      Public/
        Commands/              # Header files

需求

  • 虚幻引擎5.6+
  • Python 3.10+
  • MCP SDK 1.0+(pip install mcp)
  • Windows(主要;macOS/Linux未测试)
  • Visual Studio 2022(用于插件编译)
  • MCP兼容的AI客户端(克劳德代码、克劳德桌面、光标、Windsurf等)

贡献

欢迎捐款。看 进展.md 关于路线图和已知问题。

许可证

麻省理工学院

目录标签

目录标签

C++PythonClaude本地部署虚幻引擎AI控制蓝图编辑游戏开发自动化工具

支持客户端

ClaudeCursorWindsurf

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

87

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP