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
remove_mapping_modifier ~79

Remove a modifier from a mapping in an Input Mapping Context. Args: context_path: Path to the IMC asset mapping_index: Index of the mapping modifier_index: Index of the modifier within that mapping

NameTypeReqDescription
context_pathstringyes–
mapping_indexintegeryes–
modifier_indexintegeryes–
NameTypeReqDescription
resultstringyes–

No examples provided.

remove_mapping_trigger ~79

Remove a trigger from a mapping in an Input Mapping Context. Args: context_path: Path to the IMC asset mapping_index: Index of the mapping trigger_index: Index of the trigger within that mapping

NameTypeReqDescription
context_pathstringyes–
mapping_indexintegeryes–
trigger_indexintegeryes–
NameTypeReqDescription
resultstringyes–

No examples provided.

remove_mass_config_trait ~102

Remove a single trait from a Mass Entity Config without affecting other traits. Identify the trait by EITHER trait_index OR trait_class (not both required). Args: asset_path: Path to MassEntityConfigAsset trait_index: Index of the trait to remove trait_class: Class name or full path (e.g. "MassMovementTrait")

NameTypeReqDescription
asset_pathstringyes–
trait_class–––
trait_index–––
NameTypeReqDescription
resultstringyes–

No examples provided.

remove_niagara_custom_hlsl_pin ~53

Remove a pin from a Custom HLSL node and rebuild its signature.

NameTypeReqDescription
module_namestringyes–
pin_namestringyes–
system_pathstringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

remove_niagara_emitter ~62

Remove an emitter from a Niagara System by name. Args: system_path: Path to the Niagara System asset emitter_name: Name of the emitter to remove

NameTypeReqDescription
emitter_namestringyes–
system_pathstringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

remove_niagara_module ~119

Remove a module from an emitter's script usage stack. Args: system_path: Path to the Niagara System asset emitter_name: Name of the target emitter module_name: Name of the module to remove script_usage: Stack the module is in — EmitterSpawn, EmitterUpdate, ParticleSpawn, ParticleUpdate, SystemSpawn, SystemUpdate

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

No examples provided.

remove_niagara_node_pin ~67

Remove a dynamic pin from any node in a scratch pad graph.

NameTypeReqDescription
module_namestringyes–
node_class–––
node_id–––
node_index–––
pin_namestringyes–
system_pathstringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

remove_niagara_renderer ~86

Remove a renderer from an emitter by index. Args: system_path: Path to the Niagara System asset emitter_name: Name of the target emitter renderer_index: Index of the renderer to remove (from get_niagara_emitters)

NameTypeReqDescription
emitter_namestringyes–
renderer_indexintegeryes–
system_pathstringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

remove_niagara_script_parameter ~56

Remove a named input or output parameter from a Niagara script.

NameTypeReqDescription
directionstring––
module_name–––
namestringyes–
script_path–––
system_path–––
NameTypeReqDescription
resultstringyes–

No examples provided.

remove_niagara_user_parameter ~61

Remove a user parameter from a Niagara System. Args: system_path: Path to the Niagara System asset parameter_name: Name of the parameter to remove

NameTypeReqDescription
parameter_namestringyes–
system_pathstringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

remove_statetree_binding ~59

Remove a property binding by index. Args: asset_path: Content path to the StateTree asset binding_index: Index of the binding to remove

NameTypeReqDescription
asset_pathstringyes–
binding_indexintegeryes–
NameTypeReqDescription
resultstringyes–

No examples provided.

remove_statetree_node ~63

Remove a task, evaluator, or condition by GUID. Args: asset_path: Content path to the StateTree asset node_guid: GUID of the node to remove

NameTypeReqDescription
asset_pathstringyes–
node_guidstringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

remove_statetree_parameter ~56

Remove a tree-level parameter by name. Args: asset_path: Content path to the StateTree asset name: Parameter name to remove

NameTypeReqDescription
asset_pathstringyes–
namestringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

remove_statetree_state ~82

Remove a state and all its children from the tree. Args: asset_path: Content path to the StateTree asset state: State index path state_name: State name state_guid: State GUID

NameTypeReqDescription
asset_pathstringyes–
state–––
state_guid–––
state_name–––
NameTypeReqDescription
resultstringyes–

No examples provided.

remove_statetree_transition ~97

Remove a transition from a state. Args: asset_path: Content path to the StateTree asset transition_index: Index of the transition to remove state: State index path state_name: State name state_guid: State GUID

NameTypeReqDescription
asset_pathstringyes–
state–––
state_guid–––
state_name–––
transition_indexintegeryes–
NameTypeReqDescription
resultstringyes–

No examples provided.

remove_widget ~39

Remove a widget and its children. Cannot remove the root widget.

NameTypeReqDescription
widget_blueprint_pathstringyes–
widget_namestringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

rename_asset ~37

Rename or move an asset. UE5 automatically fixes all references.

NameTypeReqDescription
dest_pathstringyes–
source_pathstringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

rename_blueprint_function ~43

Rename a function in a Blueprint.

NameTypeReqDescription
blueprint_namestringyes–
new_function_namestringyes–
old_function_namestringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

rename_data_table_row ~48

Rename a row in-place (preserves row order).

NameTypeReqDescription
data_table_pathstringyes–
new_row_namestringyes–
old_row_namestringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

rename_niagara_custom_hlsl_pin ~95

Rename a Custom HLSL pin and update references inside the HLSL source. Braced references ("{OldName}") inside the HLSL code are rewritten to "{NewName}" via a whole-word replacement after the pin is renamed.

NameTypeReqDescription
module_namestringyes–
new_namestringyes–
old_namestringyes–
system_pathstringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

rename_niagara_node_pin ~102

Rename a dynamic pin on any node in a scratch pad graph. For Custom HLSL nodes, braced references inside the HLSL source ("{OldName}") are rewritten automatically.

NameTypeReqDescription
module_namestringyes–
new_namestringyes–
node_class–––
node_id–––
node_index–––
old_namestringyes–
system_pathstringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

rename_niagara_scratch_pad_module ~48

Rename a scratch pad module on a Niagara System.

NameTypeReqDescription
module_namestringyes–
new_namestringyes–
system_pathstringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

rename_niagara_script_parameter ~67

Rename a script parameter in-place across both asset and edit-copy graphs.

NameTypeReqDescription
directionstring––
module_name–––
new_namestringyes–
old_namestringyes–
script_path–––
system_path–––
NameTypeReqDescription
resultstringyes–

No examples provided.

rename_widget ~49

Rename a widget (fixes up Blueprint variable tracking if bIsVariable).

NameTypeReqDescription
new_namestringyes–
widget_blueprint_pathstringyes–
widget_namestringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

reorder_niagara_emitter ~89

Move an emitter to a new position in the system's emitter list. Args: system_path: Path to the Niagara System asset emitter_name: Name of the emitter to move new_index: Target index (0-based) in the emitter list

NameTypeReqDescription
emitter_namestringyes–
new_indexintegeryes–
system_pathstringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

reorder_niagara_module ~122

Move a module to a new position within its script usage stack. Args: system_path: Path to the Niagara System asset emitter_name: Name of the target emitter module_name: Name of the module to move script_usage: Stack the module is in new_index: Target index (0-based) within the stack

NameTypeReqDescription
emitter_namestringyes–
module_namestringyes–
new_indexintegeryes–
script_usagestringyes–
system_pathstringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

resolve_niagara_built_in_dynamic_input ~156

Discover built-in dynamic-input script asset paths via AssetRegistry. Replaces guessed paths like "/Niagara/Modules/DynamicInputs/UniformRangedFloat" (which vary across UE versions) with a live scan. Returns all UNiagaraScript assets with Usage=DynamicInput matching the filter. Args: name_filter: Case-insensitive substring on asset name (e.g. "Random", "UniformRanged", "Mask", "MultiplyVector") exact_name: If set, return only the asset whose name equals this max_results: Cap on returned entries (default 20)

NameTypeReqDescription
exact_name–––
max_resultsinteger––
name_filter–––
NameTypeReqDescription
resultstringyes–

No examples provided.

save_all ~17

Save all unsaved (dirty) assets.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes–

No examples provided.

save_asset ~23

Save a specific asset to disk.

NameTypeReqDescription
asset_pathstringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

search_class_paths ~302

Search for UClass types by name filter and parent class constraint. Returns full /Script/Module.ClassName paths needed for _ClassName in trait editing. Use this to find the correct class_path before calling set_data_asset_property with Mass Entity Config traits. Args: filter: Case-insensitive substring match on class name (e.g. "Conveyor", "Miner") parent_class: Only return subclasses of this class (e.g. "MassEntityTraitBase" for traits, "MassFragment" for fragments, "MassTag" for tags, "MassProcessor" for processors). Empty = search all classes. max_results: Maximum results to return (default 50) include_properties: If true, also return each class's editable UPROPERTY names, types, and default values. Use sparingly — adds tokens per result. Examples: search_class_paths(filter="Conveyor", parent_class="MassEntityTraitBase") → finds MassConveyorBeltTrait with class_path "/Script/Jiggify.MassConveyorBeltTrait" search_class_paths(filter="Pipeline", parent_class="MassFragment") → finds all pipeline-related fragments search_class_paths(parent_class="MassEntityTraitBase") → lists ALL available traits (no filter)

NameTypeReqDescription
filterstring––
include_propertiesboolean––
max_resultsinteger––
parent_classstring––
NameTypeReqDescription
resultstringyes–

No examples provided.

search_material_functions ~106

Search for Material Functions by name. Args: filter: Name substring to match (e.g. "Blend", "Normal", "Fresnel") path: Content Browser path to search in (default "/Game") max_results: Maximum results to return (default 50) include_engine: Include engine built-in material functions

NameTypeReqDescription
filter–––
include_engineboolean––
max_resultsinteger––
pathstring––
NameTypeReqDescription
resultstringyes–

No examples provided.

search_niagara_functions ~133

Search Niagara script assets by usage + name filter. Dedicated shortcut for finding module / dynamic_input / function script assets so you can pass the result directly to add_niagara_module or set_niagara_dynamic_input. Args: filter: Optional name/path substring usage: "module", "dynamic_input", or "function" (default) include_engine: When false, restricts scan to /Game max_results: Cap on returned entries

NameTypeReqDescription
filter–––
include_engineboolean––
max_resultsinteger––
usagestring––
NameTypeReqDescription
resultstringyes–

No examples provided.

search_parent_classes ~127

Search for classes that can be used as Blueprint parents. Use this BEFORE create_blueprint to find the correct parent class name. Returns a filtered list of matching classes — never dumps all classes. Args: filter: Keyword to search for (e.g. "Miner", "Actor", "Pawn", "Widget") max_results: Maximum results (default 20, max 100) include_blueprint_classes: Also include Blueprint-generated classes (default True)

NameTypeReqDescription
filterstringyes–
include_blueprint_classesboolean––
max_resultsinteger––
NameTypeReqDescription
resultstringyes–

No examples provided.

search_statetree_nodes ~150

Search for nodes across the entire StateTree by class name or category. Answers questions like: "Is MassEnemyAttackTask used?" or "Which states have conditions?" Returns each match with its location (which state, evaluator list, transition, etc.). Args: asset_path: Content path to the StateTree asset class_filter: Substring filter on node class name (e.g. "Attack", "CompareInt") category: Filter by node category: "task", "evaluator", "condition", "consideration", "global_task" (empty = search all categories)

NameTypeReqDescription
asset_pathstringyes–
category–––
class_filter–––
NameTypeReqDescription
resultstringyes–

No examples provided.

set_actor_property ~309

Set a property at any nested path on a placed level actor instance. Writes to the actual placed actor (not its CDO/Blueprint defaults), so editor overrides are preserved. Walks struct fields and array indices, fires PostEditChangeProperty on the top-level property, and marks the level dirty. Args: actor_label: Actor's display label in the Outliner (or its UObject name). property_path: Dot-separated property path. Examples: "Settings.BloomIntensity" "Settings.ColorGradingHighlights.Gain" "Tags[0]" "Settings.bOverride_BloomIntensity" property_value: The value to write. Accepts: - Numbers, bools, strings for primitives and enums - JSON object for structs ({"R":1.0,"G":0.5,"B":0.0,"A":1.0} for FLinearColor) - UE text format string for structs ("(R=1.0,G=0.5,B=0.0,A=1.0)") - Asset path string for object/class references component_name: Optional. If set, the path is resolved starting from a component on the actor instead of the actor itself. Returns: actor identification + the resolved top-level FProperty name.

NameTypeReqDescription
actor_labelstringyes–
component_namestring––
property_pathstringyes–
property_value–yes–
NameTypeReqDescription
resultstringyes–

No examples provided.

set_actor_transform ~49

Set an actor's location, rotation, and/or scale.

NameTypeReqDescription
locationarray––
namestringyes–
rotationarray––
scalearray––
NameTypeReqDescription
resultstringyes–

No examples provided.

set_asset_property ~87

Set a property on an asset. Args: property_name: Property name (e.g. "two_sided", "blend_mode") property_value: JSON-encoded value (e.g. "true", "0.5", '"translucent"')

NameTypeReqDescription
asset_pathstringyes–
property_namestringyes–
property_valuestringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

set_blueprint_class_defaults ~174

Set default property values on a Blueprint's generated class CDO. Works on ALL editable properties — C++ parent properties and BP-defined variables alike (e.g. SlotWidgetClass, MaxHealth, bCanFly). Set a single property with property_name + property_value, or set multiple at once with a properties dict. Both can be used in the same call. Args: blueprint_path: Full path to blueprint (e.g. "/Game/Blueprints/BP_MyActor") property_name: Name of a single property to set property_value: Value for the single property (JSON-compatible) properties: Dict of property names to values for batch setting

NameTypeReqDescription
blueprint_pathstringyes–
properties–––
property_name–––
property_value–––
NameTypeReqDescription
resultstringyes–

No examples provided.

set_blueprint_node_property ~201

Set a node property or perform semantic editing. Semantic actions (pass via 'action'): add_pin, remove_pin, set_enum_type, set_pin_type, set_value_type, set_cast_target, set_function_call, set_event_type Each action has associated params (pin_type, pin_name, enum_type, new_type, target_type, target_function, target_class, event_type).

NameTypeReqDescription
actionstring––
blueprint_namestringyes–
enum_typestring––
event_typestring––
function_namestring––
new_typestring––
node_idstringyes–
pin_namestring––
pin_typestring––
property_namestring––
property_valuestring––
target_classstring––
target_functionstring––
target_typestring––
NameTypeReqDescription
resultstringyes–

No examples provided.

set_blueprint_variable_properties ~134

Modify properties of an existing Blueprint variable. All parameters besides blueprint_name and variable_name are optional — only provided values are changed.

NameTypeReqDescription
blueprint_namestringyes–
categorystring––
default_valuestring––
expose_on_spawnboolean––
is_editable_in_instanceboolean––
is_publicboolean––
replication_conditioninteger––
replication_enabledboolean––
tooltipstring––
var_namestring––
var_typestring––
variable_namestringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

set_data_asset_properties ~60

Set multiple properties in a single call (one load + one save). More efficient than calling set_data_asset_property in a loop. Same value format as set_data_asset_property.

NameTypeReqDescription
asset_pathstringyes–
propertiesobjectyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

set_data_asset_property ~308

Set a single property on a data asset. Supports all types: primitives, enums, FName, FText, structs ({"tagName": "..."}), arrays, object refs ("/Game/..."), soft refs, and None (clears reference). property_name is case-sensitive (exact FProperty name). **Mass Entity Config — Editing Trait Properties:** To edit trait properties on a MassEntityConfigAsset (e.g., BeltSpeed, SlotCount), set property_name="Config" with a JSON value containing the Traits array. Each trait needs a "_ClassName" with FULL path "/Script/Module.ClassName". Example — set BeltSpeed on a conveyor config: set_data_asset_property( asset_path="/Game/.../DA_ConveyorMassConfig_Mk2", property_name="Config", property_value={ "Traits": [{"_ClassName": "/Script/Jiggify.MassConveyorBeltTrait", "BeltSpeed": 200}] } ) IMPORTANT: _ClassName MUST be full path ("/Script/Jiggify.MassConveyorBeltTrait"), NOT short name ("MassConveyorBeltTrait"). Short names create wrong base class. For configs with multiple traits, include ALL traits in the array (entire array is replaced). Only set the properties you want to change — others use C++ defaults.

NameTypeReqDescription
asset_pathstringyes–
property_namestringyes–
property_value–yes–
NameTypeReqDescription
resultstringyes–

No examples provided.

set_input_action_properties ~90

Set properties on an Input Action. Args: asset_path: Path to the InputAction asset value_type: Convenience shortcut — Boolean | Axis1D | Axis2D | Axis3D properties: Dict of property names to values (e.g. {"bConsumeInput": false})

NameTypeReqDescription
asset_pathstringyes–
properties–––
value_type–––
NameTypeReqDescription
resultstringyes–

No examples provided.

set_key_mapping ~89

Change the key or action on an existing mapping in an IMC. Args: context_path: Path to the IMC asset index: Mapping index to modify key: New key name (optional) action_path: New action path (optional)

NameTypeReqDescription
action_path–––
context_pathstringyes–
indexintegeryes–
key–––
NameTypeReqDescription
resultstringyes–

No examples provided.

set_mass_config_trait_property ~480

Modify properties on an EXISTING trait in a Mass Entity Config in-place. Never replaces the Traits array, never creates new UObjects. Only touches the specific properties you provide — all other trait values stay intact. Uses Unreal's own ImportText reflection so it supports ANY property type (structs, arrays, object refs, meshes, LOD params, enums, etc.). Identify the trait by EITHER trait_index OR trait_class (not both required). Set properties with EITHER property_name+property_value (single) OR properties dict (batch). Args: asset_path: Path to MassEntityConfigAsset trait_index: Index of the trait in the Traits array (from get_mass_config_traits) trait_class: Class name or full path (e.g. "MassMovementTrait" or "/Script/MassMovement.MassMovementTrait") property_name: Single property to set (requires property_value) property_value: Value for property_name. For structs use dict, for object refs use asset path string, for enums use name string. properties: Batch set multiple properties {name: value, ...} Examples: # Set MaxSpeed on movement trait by class name set_mass_config_trait_property( asset_path="/Jiggify/Game/.../DA_Config", trait_class="MassMovementTrait", property_name="Movement", property_value={"MaxSpeed": 300, "MaxAcceleration": 500} ) # Set LODMaxCount on visualization trait by index set_mass_config_trait_property( asset_path="/Jiggify/Game/.../DA_Config", trait_index=4, property_name="LODParams", property_value={"LODMaxCount": [2000, 5000, 10000, 2147483647]} ) # Batch set multiple properties set_mass_config_trait_property( asset_path="/Jiggify/Game/.../DA_Config", trait_class="MassEnemyTrait", properties={"MaxHealth": 50, "BaseDamage": 10, "MoveSpeed": 400} )

NameTypeReqDescription
asset_pathstringyes–
properties–––
property_name–––
property_value–––
trait_class–––
trait_index–––
NameTypeReqDescription
resultstringyes–

No examples provided.

set_material_expression_property ~113

Set a property on an existing material expression node. Accepts snake_case ("parameter_name") or PascalCase ("ParameterName"). Common properties: parameter_name, default_value, slider_min, slider_max, group, texture, code, description, output_type, inputs, add_inputs, outputs, SpeedX, SpeedY, CoordinateIndex, R, Constant.

NameTypeReqDescription
material_pathstringyes–
node_indexintegeryes–
property_namestringyes–
property_valuestringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

set_material_function_input ~222

Modify an existing FunctionInput node's properties. Args: function_path: Full path to existing material function node_index: Index of the FunctionInput node (from get_material_function_info) input_name: New pin name input_type: New type (Scalar/Vector2/Vector3/Vector4/Texture2D/TextureCube/ Texture2DArray/VolumeTexture/StaticBool/MaterialAttributes/ TextureExternal/Bool/Substrate) description: New tooltip sort_priority: New display order use_preview_as_default: Use preview value as default preview_value: JSON array for default value (e.g. "[0.5]", "[1.0, 0.0, 0.0, 1.0]")

NameTypeReqDescription
description–––
function_pathstringyes–
input_name–––
input_type–––
node_indexintegeryes–
preview_value–––
sort_priority–––
use_preview_as_default–––
NameTypeReqDescription
resultstringyes–

No examples provided.

set_material_function_output ~104

Modify an existing FunctionOutput node's properties. Args: function_path: Full path to existing material function node_index: Index of the FunctionOutput node (from get_material_function_info) output_name: New pin name description: New tooltip sort_priority: New display order

NameTypeReqDescription
description–––
function_pathstringyes–
node_indexintegeryes–
output_name–––
sort_priority–––
NameTypeReqDescription
resultstringyes–

No examples provided.

set_material_instance_parameter ~89

Set a parameter override on a Material Instance. Args: param_type: scalar | vector | texture | static_switch value: JSON-encoded — float, [r,g,b,a], "/Game/path", or true/false

NameTypeReqDescription
material_pathstringyes–
param_namestringyes–
param_typestringyes–
valuestringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

set_material_properties ~139

Bulk-set material-level properties in one call. Args: blend_mode: opaque | masked | translucent | additive | modulate | alpha_composite | alpha_holdout shading_model: default_lit | unlit | subsurface | clear_coat | etc. recompile: Recompile after setting properties (default True)

NameTypeReqDescription
allow_negative_emissive_color–––
blend_mode–––
dithered_lof_transition–––
material_pathstringyes–
opacity_mask_clip_value–––
recompileboolean––
shading_model–––
two_sided–––
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.