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 · SCANNED AUG 7

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

Available components

0 Trust /100
Trust breakdown (6 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 →

Supply Chain Security25
Provenance & Transparency32
Schema Quality & AI Usability37
  • AI-judged instruction clarity (poor).Fail
  • 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 Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
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
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

pypi · unrealmcp

# add to Claude Code
claude mcp add aadeshrao123-unreal-mcp -- uvx unrealmcp
# add to Codex CLI
codex mcp add aadeshrao123-unreal-mcp -- uvx unrealmcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "aadeshrao123-unreal-mcp": {
      "type": "local",
      "command": [
        "uvx",
        "unrealmcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add aadeshrao123-unreal-mcp --command uvx --arg unrealmcp
# ~/.hermes/config.yaml
mcp_servers:
  aadeshrao123-unreal-mcp:
    command: "uvx"
    args: ["unrealmcp"]
// mcp.json
{
  "mcpServers": {
    "aadeshrao123-unreal-mcp": {
      "command": "uvx",
      "args": [
        "unrealmcp"
      ]
    }
  }
}
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.

  • 7 Aug 26 0
    • Malware scan: pass → unverified security
  • 6 Aug 26 0

    First indexed and scored.

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 7 Aug 2026 · Analysed pypi/[email protected]

Provenance No attestation

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

Result No attestation
Ecosystem pypi
Install scripts 1 script
Hook Tier Command
build_backend allowlisted setuptools.build_meta
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
Dependencies 78 packages
Packages resolved 78
Stale 5
No linked repository 3
Tree resolution Complete
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.

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
valueyes
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_valueyes
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
valueyes
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
valueyes
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.