Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

UnrealMCP — AI Bridge for Unreal Engine 5

PYPI · UNREALMCP

Control the Unreal Engine 5 editor from any MCP client: Blueprints, materials, Niagara.

Available components

0 this week 0 Trust /100

Last scanned (17 hours ago)

Scores higher than 0% of PyPI servers

Category Developer Tools

Recent critical change

Known CVEs (13 Oct 2026). See the changelog before you install this server.

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security25
Provenance & Transparency45
Schema Quality & AI Usability68
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 35352 tokens (~123/item across 286 items; 286 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management83
  • Stability observed for 25 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage71
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 0% of tool parameters carry a description.Fail
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 31 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "execute_python" implies "execute" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 287 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
What we tested

Checks we ran (15)

  • Known CVEs
  • Install scripts
  • Dependency health
  • Source repository
  • Provenance
  • License
  • Maintenance
  • Security disclosure
  • Schema quality
  • Stability
  • Tool coverage
  • Injection markers
  • Destructive annotations
  • Judged manipulation
  • MCP protocol

Checks we could not complete (1)

These are gaps on our side, not findings about this package. We only credit what we can confirm, so a category made up entirely of them scores 0.

  • Malware scan in Supply Chain SecurityMalware scan not yet available for this package.

Does not apply to this package (2)

  • Endpoint SecurityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
  • Transport & ReachabilityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.

The score does not measure everything. What the score does not measure →

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 0
    • Malware scan: pass → unverified ▼ security
    • Stability: pass → 0.80 functional
  • 2 Nov 26 0
    • Provenance: unverified → fail ▼ security
  • 31 Oct 26 0
    • Provenance: fail → unverified ▼ security
  • 30 Oct 26 0
    • Malware scan: unverified → pass ▲ security
    • Stability: 0.97 → pass security
  • 29 Oct 26 0
    • Stability: pass → 0.97 functional
  • 26 Oct 26 0
    • Malware scan: pass → unverified ▼ security
  • 23 Oct 26 0
    • Stability: 0.97 → pass security
  • 22 Oct 26 0
    • Stability: pass → 0.97 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 6 Nov 2026 · Analysed pypi/unrealmcp@1.3.1

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi
Reason No attestation published

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend Known build tool setuptools.build_meta

Background: Why install scripts are a supply-chain risk →

Vulnerabilities 6 findings
ID CVE Severity Vector Fix available
GHSA-m8x7-r2rg-vh5g CVE-2025-64340 medium CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H yes
GHSA-rww4-4w9c-7733 CVE-2026-27124 high yes
GHSA-vv7q-7jx5-f767 CVE-2026-32871 critical CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H yes
PYSEC-2026-2475 CVE-2025-64340 medium CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H yes
PYSEC-2026-2476 CVE-2026-27124 none yes
PYSEC-2026-338 CVE-2026-32871 critical CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 75 packages
Packages resolved 75
Stale 5
No linked repository 3
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 286 exposed · ~35,325 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
set_mcp_debug ~101

Enable or disable token debug estimation on MCP responses. When enabled, every command response shows a token debug header: [TOKEN DEBUG] command_name — ~1,289 tokens (5,156 chars) This appears at the top of every response so you can immediately see which commands consume the most tokens. Disabling clears accumulated stats. Args: enabled: True to enable, False to disable and clear stats.

NameTypeReqDescription
enabledboolean––
NameTypeReqDescription
resultstringyes–

No examples provided.

set_mesh_material_color ~82

Set material color on a mesh component. color: [R, G, B, A] values 0-1

NameTypeReqDescription
blueprint_namestringyes–
colorarrayyes–
component_namestringyes–
material_pathstring––
material_slotinteger––
parameter_namestring––
NameTypeReqDescription
resultstringyes–

No examples provided.

set_niagara_curve ~201

Set a curve on a module input parameter. Args: system_path: Path to the Niagara System asset emitter_name: Name of the target emitter module_name: Name of the module input_name: Name of the input parameter script_usage: Stack the module is in curve_type: Curve type — "FloatCurve", "ColorCurve", "VectorCurve" keys: JSON array of curve keys, e.g. [{"time":0,"value":1},{"time":1,"value":0}] For color curves: [{"time":0,"r":1,"g":0,"b":0,"a":1}]

NameTypeReqDescription
curve_typestringyes–
emitter_namestringyes–
input_namestringyes–
keysstringyes–
module_namestringyes–
script_usagestringyes–
system_pathstringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

set_niagara_dynamic_input ~431

Set a dynamic input (random range, linked parameter, custom expression, or arbitrary script) on a module input. Uses FNiagaraStackGraphUtilities::SetDynamicInputForFunctionInput for the script path, which is the same code path the editor uses when picking a dynamic input from the stack UI. Args: system_path: Path to the Niagara System asset emitter_name: Name of the target emitter module_name: Name of the module input_name: Name of the input parameter script_usage: Stack the module is in dynamic_input_type: One of: - "random_range" / "uniform_random" — Ranged random (min_value, max_value) - "parameter_link" — Link to an existing parameter (parameter_name) - "custom_expression" — Custom HLSL expression node (expression) - "script" / "asset" — Arbitrary dynamic input script (dynamic_input_script_path) min_value / max_value: Values for random_range types (float or vector JSON object) parameter_name: Parameter name for parameter_link type expression: HLSL expression for custom_expression type dynamic_input_script_path: Asset path of a DynamicInput-usage UNiagaraScript (for dynamic_input_type="script"). Discover candidates via search_niagara_functions. suggested_name: Optional friendly name for the dynamic input in the stack UI pin_defaults: Optional {pin_name: default_value_string} dict applied to the new dynamic input node's own input pins after wiring

NameTypeReqDescription
dynamic_input_script_path–––
dynamic_input_typestringyes–
emitter_namestringyes–
expression–––
input_namestringyes–
max_value–––
min_value–––
module_namestringyes–
parameter_name–––
pin_defaults–––
script_usagestringyes–
suggested_name–––
system_pathstringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

set_niagara_emitter_property ~106

Set a property on an emitter within a Niagara System. Args: system_path: Path to the Niagara System asset emitter_name: Name of the target emitter property: Property name (e.g. "SimTarget", "FixedBounds", "LocalSpace") value: Property value as string

NameTypeReqDescription
emitter_namestringyes–
propertystringyes–
system_pathstringyes–
valuestringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

set_niagara_module_enabled ~115

Enable or disable a module in an emitter's stack. Args: system_path: Path to the Niagara System asset emitter_name: Name of the target emitter module_name: Name of the module script_usage: Stack the module is in enabled: True to enable, false to disable

NameTypeReqDescription
emitter_namestringyes–
enabledbooleanyes–
module_namestringyes–
script_usagestringyes–
system_pathstringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

set_niagara_module_input ~151

Set a static value on a module input parameter. Args: system_path: Path to the Niagara System asset emitter_name: Name of the target emitter module_name: Name of the module input_name: Name of the input parameter to set value: Value as string — scalars, vectors "(X,Y,Z)", colors "(R,G,B,A)", enums, bools script_usage: Stack the module is in

NameTypeReqDescription
emitter_namestringyes–
input_namestringyes–
module_namestringyes–
script_usagestringyes–
system_pathstringyes–
valuestringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

set_niagara_playback_range ~156

Set the timeline playback range in the Niagara editor. Controls how long the preview plays. If your effect dies at 0.02s, extend the range. For looping effects set a longer range (e.g. 5-10 seconds). Args: system_path: Path to the Niagara System asset range_end: End time in seconds (e.g. 5.0 for 5 second preview) range_start: Start time in seconds (default 0.0) frame_rate: Optional frame rate override (default 60)

NameTypeReqDescription
frame_rate–––
range_endnumberyes–
range_startnumber––
system_pathstringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

set_niagara_rapid_iteration_parameter ~317

Set a rapid iteration parameter value on a module. This is the primary way to change module input values like spawn rate, colors, forces, sizes, lifetimes, etc. Use get_niagara_rapid_iteration_parameters first to discover available parameters and their types. Value format depends on type: float: 5.0 int: 10 bool: true/false vector: {"x": 1, "y": 2, "z": 3} or [1, 2, 3] color: {"r": 1, "g": 0.5, "b": 0, "a": 1} or [1, 0.5, 0, 1] Args: system_path: Path to the Niagara System asset emitter_name: Name of the target emitter module_name: Module name (e.g. "SpawnRate", "InitializeParticle", "GravityForce") input_name: Input parameter name (e.g. "SpawnRate", "Color", "Gravity") value: Value to set (type must match the parameter's type) script_usage: Stack the module is in — emitter_update, particle_spawn, particle_update, etc.

NameTypeReqDescription
emitter_namestringyes–
input_namestringyes–
module_namestringyes–
script_usagestringyes–
system_pathstringyes–
value–yes–
NameTypeReqDescription
resultstringyes–

No examples provided.

set_niagara_renderer_binding ~166

Set an attribute binding on an emitter's renderer. Binds a renderer input (e.g. color, size) to a particle/emitter attribute. Args: system_path: Path to the Niagara System asset emitter_name: Name of the target emitter binding_name: Binding slot name (e.g. "ColorBinding", "DynamicMaterialBinding", "PositionBinding", "SpriteRotationBinding") attribute: Attribute to bind to (e.g. "Particles.Color", "Particles.Scale") renderer_index: Index of the renderer (default 0)

NameTypeReqDescription
attributestringyes–
binding_namestringyes–
emitter_namestringyes–
renderer_indexinteger––
system_pathstringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

set_niagara_renderer_property ~126

Set a property on an emitter's renderer. Args: system_path: Path to the Niagara System asset emitter_name: Name of the target emitter property: Property name (e.g. "Material", "Alignment", "FacingMode", "SortOrder") value: Property value as string renderer_index: Index of the renderer (default 0)

NameTypeReqDescription
emitter_namestringyes–
propertystringyes–
renderer_indexinteger––
system_pathstringyes–
valuestringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

set_niagara_scratch_pad_hlsl ~280

Set HLSL source on a scratch pad module's Custom HLSL node, creating pins as needed. Pin creation uses exported schema APIs (UEdGraphSchema_Niagara::TypeDefinitionToPinType) plus reflection on the CustomHlsl UPROPERTY (SetCustomHlsl is not NIAGARAEDITOR_API exported). After changes the node's FNiagaraFunctionSignature is rebuilt from the pin list, mirroring UNiagaraNodeCustomHlsl::RebuildSignatureFromPins exactly. Args: system_path: Niagara System asset path module_name: Scratch pad module name containing the Custom HLSL node hlsl_code: Raw HLSL source. Reference pins by name (e.g. Result = Value * Scale;) inputs: Optional list of {"name": str, "type": str} — input pins to create outputs: Optional list of {"name": str, "type": str} — output pins to create clear_existing_pins: If true, remove all current non-Add pins before adding new ones

NameTypeReqDescription
clear_existing_pinsboolean––
hlsl_codestringyes–
inputs–––
module_namestringyes–
outputs–––
system_pathstringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

set_niagara_script_properties ~180

Batch-set details-panel properties on a Niagara script. Args: properties: Dict of property name -> value. Supported: Category (str), Description (str), Keywords (str), ModuleUsageBitmask (int), ProvidedDependencies (list[str]), RequiredDependencies (list[dict]), LibraryVisibility (str enum), bDeprecated (bool), DeprecationMessage (str), bExperimental (bool), ExperimentalMessage (str). system_path + module_name: Resolve scratch pad module script_path: OR resolve standalone script asset ModuleUsageBitmask combines ENiagaraScriptUsage values; e.g. particle spawn + update = (1<<3) | (1<<4).

NameTypeReqDescription
module_name–––
propertiesobjectyes–
script_path–––
system_path–––
NameTypeReqDescription
resultstringyes–

No examples provided.

set_niagara_system_property ~161

Set a system-level property on a Niagara System via reflection. Supports any UPROPERTY on UNiagaraSystem: WarmupTime, WarmupTickDelta, bDeterminism, RandomSeed, bFixedBounds, FixedBounds, bFixedTickDelta, FixedTickDeltaTime, etc. Use exact C++ property name (PascalCase). Args: system_path: Path to the Niagara System asset property: Property name (e.g. "WarmupTime", "bDeterminism", "RandomSeed") value: Value as string (e.g. "2.0", "true", "42")

NameTypeReqDescription
propertystringyes–
system_pathstringyes–
valuestringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

set_niagara_user_parameter ~138

Set a user parameter value on a Niagara System asset or level actor instance. Provide either system_path (asset default) or actor_name (runtime override). Args: parameter_name: Name of the user parameter parameter_type: Type of the parameter (must match existing type) value: Value as string actor_name: Name of an actor in the level for runtime override system_path: Path to the system asset for default value

NameTypeReqDescription
actor_name–––
parameter_namestringyes–
parameter_typestringyes–
system_path–––
valuestringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

set_physics_properties ~76

Set physics properties on a Blueprint component.

NameTypeReqDescription
angular_dampingnumber––
blueprint_namestringyes–
component_namestringyes–
gravity_enabledboolean––
linear_dampingnumber––
massnumber––
simulate_physicsboolean––
NameTypeReqDescription
resultstringyes–

No examples provided.

set_slot_properties ~49

Set layout slot properties (anchors, offsets, padding, alignment, etc.).

NameTypeReqDescription
propertiesobjectyes–
widget_blueprint_pathstringyes–
widget_namestringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

set_statetree_color ~108

Add or update a color in the StateTree theme. Args: asset_path: Content path to the StateTree asset name: Display name for the color color: Color as hex "#RRGGBB" or "R,G,B,A" floats (e.g. "0.5,0.2,0.8,1.0")

NameTypeReqDescription
asset_pathstringyes–
colorstringyes–
namestringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

set_statetree_node_property ~133

Set a property on a task, evaluator, or condition by GUID. Args: asset_path: Content path to the StateTree asset node_guid: GUID of the node property_name: Property to set property_value: New value (structs as dict, arrays as list, enums as string) target: "node" for the node struct itself, "instance" for instance data

NameTypeReqDescription
asset_pathstringyes–
node_guidstringyes–
property_namestringyes–
property_value–yes–
targetstring––
NameTypeReqDescription
resultstringyes–

No examples provided.

set_statetree_schema ~74

Change the schema of a StateTree. Warning: existing nodes may become invalid. Args: asset_path: Content path to the StateTree asset schema_class: Schema class name (e.g. "MassStateTreeSchema")

NameTypeReqDescription
asset_pathstringyes–
schema_classstringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

set_statetree_state_property ~121

Set a property on a state (Name, Type, SelectionBehavior, Enabled, Tag, Weight, etc.). Args: asset_path: Content path to the StateTree asset property_name: Property to set value: New value state: State index path state_name: State name state_guid: State GUID

NameTypeReqDescription
asset_pathstringyes–
property_namestringyes–
state–––
state_guid–––
state_name–––
value–yes–
NameTypeReqDescription
resultstringyes–

No examples provided.

set_statetree_transition_property ~142

Set a property on a transition (Trigger, Priority, TargetState, Delay, Enabled, etc.). Args: asset_path: Content path to the StateTree asset transition_index: Index of the transition in the state's Transitions array property_name: Property to set value: New value state: State index path state_name: State name state_guid: State GUID

NameTypeReqDescription
asset_pathstringyes–
property_namestringyes–
state–––
state_guid–––
state_name–––
transition_indexintegeryes–
value–yes–
NameTypeReqDescription
resultstringyes–

No examples provided.

set_static_mesh_properties ~47

Set the static mesh on a StaticMeshComponent in a Blueprint.

NameTypeReqDescription
blueprint_namestringyes–
component_namestringyes–
static_meshstring––
NameTypeReqDescription
resultstringyes–

No examples provided.

set_widget_properties ~47

Set multiple widget properties. Same format as set_data_asset_properties.

NameTypeReqDescription
propertiesobjectyes–
widget_blueprint_pathstringyes–
widget_namestringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

spawn_actor ~108

Spawn an actor in the level. Args: name: Actor name actor_type: StaticMeshActor, PointLight, etc. location/rotation/scale: [x,y,z] arrays static_mesh: Path to static mesh asset (for mesh actors)

NameTypeReqDescription
actor_typestring––
locationarray––
namestringyes–
rotationarray––
scalearray––
static_meshstring––
NameTypeReqDescription
resultstringyes–

No examples provided.

spawn_actor_by_class ~277

Spawn ANY AActor subclass by full path, short name, or Blueprint asset path. Replaces the hardcoded whitelist of spawn_actor. Resolves class_path in this order: 1. Full UClass path with '.' (e.g. "/Script/Engine.PostProcessVolume", "/Script/Engine.SkyAtmosphere") 2. Blueprint asset path (e.g. "/Game/Blueprints/BP_Miner") — loads the asset and uses its GeneratedClass. 3. Short name fallback — iterates loaded UClasses for a name match (handles "PostProcessVolume", "APostProcessVolume", "Sky_Sphere_C", etc.) Validates: must be AActor subclass, not abstract, not deprecated. Uses UEditorActorSubsystem::SpawnActorFromClass when available so Ctrl+Z restores. Args: class_path: Full path, BP asset path, or short class name. name: Optional outliner label + UObject name. location: [x, y, z] world location. rotation: [pitch, yaw, roll] degrees. scale: [x, y, z] scale.

NameTypeReqDescription
class_pathstringyes–
location–––
namestring––
rotation–––
scale–––
NameTypeReqDescription
resultstringyes–

No examples provided.

spawn_blueprint_actor ~55

Spawn a Blueprint actor instance in the level.

NameTypeReqDescription
blueprint_pathstringyes–
locationarray––
namestring––
rotationarray––
scalearray––
NameTypeReqDescription
resultstringyes–

No examples provided.

spawn_niagara_effect ~145

Spawn a Niagara System as an actor in the level. Args: system_path: Path to the Niagara System asset location: World location as "(X,Y,Z)" — defaults to origin rotation: Rotation as "(Pitch,Yaw,Roll)" — defaults to zero scale: Scale as "(X,Y,Z)" — defaults to (1,1,1) name: Optional actor label name auto_activate: If true, the system begins playing immediately

NameTypeReqDescription
auto_activateboolean––
location–––
name–––
rotation–––
scale–––
system_pathstringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

sync_browser ~26

Navigate the Content Browser to show a specific asset.

NameTypeReqDescription
asset_pathstringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

take_screenshot ~81

Capture the editor to a PNG. mode "viewport" captures the level viewport; "window" captures the entire active editor window (material editor, BP graph, widget designer, etc.). Returns the file path, width, and height. Use Read tool to view the image.

NameTypeReqDescription
file_pathstring––
modestring––
NameTypeReqDescription
resultstringyes–

No examples provided.

trace_material_connection ~153

Trace connections upstream and/or downstream from a specific node. Shows exactly what feeds into each input pin and what consumes each output pin, including connections to material outputs (BaseColor, Normal, etc.). Args: node_index: The node to trace from direction: "upstream" (what feeds in), "downstream" (what consumes output), or "both" (default) max_depth: How many hops to trace recursively (1 = immediate neighbors, 2+ = follow the chain). Max 50. Default 1.

NameTypeReqDescription
directionstring––
material_pathstringyes–
max_depthinteger––
node_indexintegeryes–
NameTypeReqDescription
resultstringyes–

No examples provided.

trace_niagara_connection ~217

Breadth-first trace of connections from a starting node through the graph. Answers "what feeds this node?" (upstream) and "where does this node's output go?" (downstream). Each visited node reports its depth, so the dependency chain is visible without dumping the whole graph. Args: system_path + module_name OR script_path: Graph resolver node_index / node_class / node_id: Starting node identifier direction: "upstream" | "downstream" | "both" (default) max_depth: Max BFS depth (default 8) pin_name: Optional starting-pin filter — only walk links on pins whose name contains this substring (e.g. "Vector Array")

NameTypeReqDescription
directionstring––
max_depthinteger––
module_name–––
node_class–––
node_id–––
node_index–––
pin_name–––
script_path–––
system_path–––
NameTypeReqDescription
resultstringyes–

No examples provided.

update_data_table_row ~76

Update specific fields on an existing row (partial update). Only fields present in data are modified; everything else keeps its value. data is a JSON string, e.g. '{"DisplayName": "Miner"}'.

NameTypeReqDescription
datastringyes–
data_table_pathstringyes–
row_namestringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

validate_material_function ~76

Diagnose issues in a Material Function's internal graph. Reports: - unconnected_outputs: FunctionOutput nodes with nothing wired to their input - unused_inputs: FunctionInput nodes whose output nobody consumes - orphaned: internal nodes with no connections at all Returns healthy=true when no issues found.

NameTypeReqDescription
function_pathstringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

validate_material_graph ~107

Diagnose connection issues in a material graph. Categorises every node into: - orphaned: no inputs AND output not consumed — safe to delete - dead_ends: has inputs but output goes nowhere - missing_inputs: some input pins are empty - unconnected_inputs: ALL input pins are empty (node expects connections) - unconnected_outputs: output not consumed by anything Returns healthy=true when no orphaned or dead-end nodes exist.

NameTypeReqDescription
material_pathstringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

validate_niagara_graph ~101

Classify orphaned, dead-end, and missing-input nodes in a Niagara graph. Returns three arrays: orphaned — nodes with no incoming or outgoing links (excl. anchors) dead_ends — non-anchor nodes with inputs connected but no outputs consumed missing_inputs — nodes whose input pins have no link and no default value

NameTypeReqDescription
module_name–––
script_path–––
system_path–––
NameTypeReqDescription
resultstringyes–

No examples provided.

Install

How do I install the UnrealMCP — AI Bridge for Unreal Engine 5 MCP server?

UnrealMCP — AI Bridge for Unreal Engine 5 runs locally as a PyPI package, launched with uvx unrealmcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · unrealmcp

# add to Claude Code
claude mcp add aadeshrao123-unreal-mcp -- uvx unrealmcp
Common questions

What is the UnrealMCP — AI Bridge for Unreal Engine 5 MCP server?

UnrealMCP — AI Bridge for Unreal Engine 5 is an MCP server listed in the public MCP registry as io.github.aadeshrao123/unreal-mcp. Control the Unreal Engine 5 editor from any MCP client: Blueprints, materials, Niagara. This page covers its PyPI package (unrealmcp).

What tools does the UnrealMCP — AI Bridge for Unreal Engine 5 MCP server expose?

UnrealMCP — AI Bridge for Unreal Engine 5 exposes 286 tools: execute_python, health_check, find_assets, list_assets, open_asset, and 281 more. Their descriptions and schemas cost roughly 35,325 tokens of context every time the server is loaded.

Is the UnrealMCP — AI Bridge for Unreal Engine 5 MCP server still maintained?

UnrealMCP — AI Bridge for Unreal Engine 5 is still listed as active in the MCP registry. We last reached this channel on 6 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the UnrealMCP — AI Bridge for Unreal Engine 5 MCP server under?

UnrealMCP — AI Bridge for Unreal Engine 5 declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.