ue-mcp-blueprint
Use when authoring or modifying Unreal Blueprint assets through ue-mcp. Covers the read-then-write discipline, node/pin wiring, component (SCS) hierarchy, variables, interfaces, compilation, and the difference between pin defaults and linked inputs. Pulls in any time the user asks to create, edit, or inspect a Blueprint.
ue-mcp blueprint authoring
The blueprint tool covers reading, authoring, and compiling Blueprints. The default workflow is read → mutate → compile, never fire-and-forget.
Discovery before authoring
For any existing Blueprint:
blueprint(action="read", assetPath=...)— structure (parent, components, graphs)blueprint(action="read_graph_summary", assetPath=..., graphName=...)— lightweight node+edge summary (~10KB) — use this beforeread_graph(which can be 100KB+)blueprint(action="list_graphs", assetPath=...)— every graph in the BP including event graphs, functions, macros, interface implsblueprint(action="list_variables" | "list_functions" | "list_local_variables")— the member surfaceblueprint(action="get_execution_flow", assetPath=..., entryPoint=...)— trace exec pins from an entry pointblueprint(action="get_dependencies", assetPath=..., reverse=false|true)— classes/functions/assets this BP uses, or callers ifreverse: true
Mutation recipe
- Create the skeleton —
blueprint(action="create", assetPath, parentClass?). - Add variables + components —
add_variable,add_component(passparentComponentfor SCS hierarchy). - Build graphs —
add_nodeeach K2Node,set_node_propertyfor pin defaults,connect_pinsto wire exec + data. - Compile —
blueprint(action="compile", assetPath). Compilation errors come back in the result; fix them before proceeding.
Node wiring fundamentals
add_nodetakesnodeClassas a K2Node class short name (K2Node_CallFunction,K2Node_VariableGet,K2Node_DynamicCast,K2Node_IfThenElse, etc.) plusnodeParamsfor class-specific fields (FunctionReference,VariableReference,TargetType).- Pin defaults vs linked values:
set_node_propertywrites a literal default onto a pin;connect_pinswires a pin to another node's output. A literal default is ignored once a pin is linked. read_node_propertyreads either a pin default or a reflected node UPROPERTY — use this to verify the pin was actually set before compiling.- Graphs with duplicate names (rare but possible after rename) can be disambiguated by passing
graphIndexalongsidegraphName.
Components (SCS)
add_componentcreates a node in the Simple Construction Script. PassparentComponentto put the new component under an existing parent — otherwise it becomes a top-level child of the scene root.set_component_propertywrites on the child BP's InheritableComponentHandler override template, not on the parent — the parent stays untouched. This matters when editing inherited components.read_component_propertiesdumps every UPROPERTY on the template, including array contents.reparent_componentmoves an SCS node to a new parent.
CDO (class defaults)
set_class_defaultwrites a UPROPERTY on the Blueprint CDO (the class default object). For actor tick settings specifically, useset_actor_tick_settings— it handlesbCanEverTick,bStartWithTickEnabled,TickIntervalin one call.
Interfaces + event dispatchers
create_interface+add_interface— the implement-side.add_event_dispatcher— fires a multicast delegate from the BP.
Verify before compile
blueprint(action="validate")runs the compiler diagnostics without saving. Cheaper round-trip when iterating.blueprint(action="read_graph_summary")after mutations confirms the graph shape.