UnrealBLOCK
AI bridge for Unreal Engine 5. Control the editor from Claude Code, Cursor, Windsurf, and any MCP client. Community edition of CodeFizz Editor Agent, which has 900+ commands across 28 categories on UE 5.6, 5.7 and 5.8.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
Control the Unreal Engine 5 editor from Claude Code, Cursor, Windsurf, or any MCP client. Build materials, wire Blueprint graphs, author Niagara systems, spawn actors, edit data tables and profile performance, all by asking for it. 288 commands across 15 categories, no leaving your terminal.
[](LICENSE) [](https://www.unrealengine.com/) [](https://modelcontextprotocol.io/) [](https://codefizz.dev/?utmsource=github&utmmedium=readme&utmcampaign=communitybadge)
### This is the community edition It is stable and feature complete for what it covers. It is not abandoned, and it is not in active development either: new subsystem work now goes into [CodeFizz Editor Agent](https://codefizz.dev/?utm_source=github&utm_medium=readme&utm_campaign=community_notice), the maintained commercial build. Everything here keeps working, issues still get read, and the MIT licence is permanent. If you want Control Rig, PCG, Sequencer, Mutable, Procedural Vegetation, audio and MetaSounds, Behavior Trees and EQS, or packaged binaries for UE 5.6 / 5.7 / 5.8, that lives in Pro.
Community edition vs Pro
ff42563918ecOBSERVED · 2026-10-08Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.
claude mcp add unrealmcp -- None unrealmcp==1.3.1
Exposed tools (200)
135 read · 119 write · 32 destructive. Blast radius: 32 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.
| Tool | Risk | Description |
|---|---|---|
add_blueprint_node | write | Add a node to a Blueprint graph. |
add_component_to_blueprint | write | Add a component to a Blueprint |
add_data_table_row | write | Add a new row, optionally setting initial field values. |
add_event_node | write | Add an event node (ReceiveBeginPlay, ReceiveTick, ReceiveDestroyed, etc.). |
add_function_input | write | Add an input parameter to a Blueprint function. |
add_function_output | write | Add an output parameter to a Blueprint function. |
add_input_action_modifier | write | Add a modifier to an Input Action. |
add_input_action_trigger | write | Add a trigger to an Input Action. |
add_key_mapping | write | Add a key-to-action mapping to an Input Mapping Context. |
add_mapping_modifier | write | Add a modifier to a specific mapping in an Input Mapping Context. |
add_mapping_trigger | write | Add a trigger to a specific mapping in an Input Mapping Context. |
add_mass_config_trait | write | Add a SINGLE trait to a Mass Entity Config without replacing existing traits. |
add_material_comments | write | Add comment boxes to a material graph for organization. |
add_material_expression | write | Add a single expression node without clearing other nodes. |
add_material_function_input | write | Add an input pin to a Material Function. |
add_material_function_output | write | Add an output pin to a Material Function. |
add_niagara_component | write | Add a NiagaraComponent to an existing actor in the level. |
add_niagara_custom_hlsl_input | write | Add a typed input pin to a scratch pad module |
add_niagara_custom_hlsl_output | write | Add a typed output pin to a scratch pad module |
add_niagara_emitter | write | Add an emitter to a Niagara System. |
add_niagara_event_handler | write | Add an event handler to an emitter that responds to events from a source emitter. |
add_niagara_graph_node | write | Create a new node inside a Niagara scratch-pad / dynamic-input / module graph. |
add_niagara_map_get_pin | write | Add a typed output pin to the first ParameterMapGet node in a scratch pad graph. |
add_niagara_map_set_pin | write | Add a typed input pin to the first ParameterMapSet node in a scratch pad graph. |
add_niagara_module | write | Add a module to an emitter |
add_niagara_node_pin | write | Generic: add a typed dynamic pin to any node in a scratch pad graph. |
add_niagara_renderer | write | Add a renderer to an emitter. |
add_niagara_script_parameter | write | Add an input or output parameter to a Niagara script. |
add_niagara_simulation_stage | write | Add a simulation stage to an emitter. |
add_niagara_user_parameter | write | Add a user parameter to a Niagara System. Supports every type the editor |
add_statetree_binding | write | Add a property binding connecting a source node |
add_statetree_condition | write | Add a condition to a state |
add_statetree_evaluator | write | Add a global evaluator to the StateTree. |
add_statetree_global_task | write | Add a global task to the StateTree. |
add_statetree_parameter | write | Add a tree-level parameter. |
add_statetree_state | write | Add a state to the tree. Omit parent params for a root-level state. |
add_statetree_task | write | Add a task to a state. |
add_statetree_transition | write | Add a transition to a state. |
add_widget | write | Add a new widget to a Widget Blueprint |
analyze_blueprint_graph | read | Analyze a specific graph — nodes, connections, and execution flow. |
apply_and_save_niagara_scratch_pad | write | Apply a scratch pad module |
apply_material_to_actor | write | Apply a material to a level actor. |
apply_material_to_blueprint | write | Apply a material to a Blueprint component. |
apply_niagara_scratch_pad | write | Commit a scratch pad module |
build_material_function_graph | read | Build the internal node graph of a Material Function in one atomic call. |
build_material_graph | read | Build a complete material node graph in one atomic operation. |
cleanup_material_function | destructive | Remove unconnected/orphaned nodes from a Material Function. |
cleanup_material_graph | destructive | Delete orphaned and/or dead-end nodes from a material graph. |
clear_niagara_module_input | destructive | Reset a module input to its default — equivalent to |
compile_blueprint | read | Compile a Blueprint. |
compile_niagara_system | read | Compile a Niagara System and report any errors. |
compile_statetree | read | Compile a StateTree and return errors/warnings. |
connect_blueprint_nodes | read | Connect two nodes in a Blueprint graph. |
connect_material_expressions | read | Connect two expression nodes using their indices. |
connect_niagara_pins | read | Wire one node |
control_niagara_effect | read | Control a Niagara effect actor in the level. |
create_blueprint | write | Create a new Blueprint asset from any C++ or Blueprint parent class. |
create_blueprint_function | write | Create a new function in a Blueprint. |
create_blueprint_variable | write | Create a variable in a Blueprint. |
create_data_asset | write | Create a new data asset of any UDataAsset subclass. |
create_input_action | write | Create a new UInputAction asset. |
create_input_mapping_context | write | Create a new UInputMappingContext asset. |
create_material | write | Create a new Material asset. |
create_material_function | write | Create a new Material Function asset. |
create_material_instance | write | Create a Material Instance from a parent material. |
create_niagara_module_asset | write | Create a standalone Niagara script asset (module / dynamic input / function). |
create_niagara_scratch_pad_module | write | Create a new scratch pad script on a Niagara System. |
create_niagara_system | write | Create a new Niagara System asset. |
create_statetree | write | Create a new StateTree asset with the specified schema. |
delete_actor | destructive | Delete an actor from the level by name. |
delete_asset | destructive | Delete an asset or directory from the Content Browser. |
delete_blueprint_function | destructive | Delete a function from a Blueprint. |
delete_blueprint_node | destructive | Delete a node from a Blueprint graph by GUID. |
delete_data_table_row | destructive | Delete a row from a Data Table by name. |
delete_material_expression | destructive | Delete a single expression node by index. Recompiles and saves automatically. |
delete_niagara_graph_node | destructive | Delete a node from a Niagara graph (asset + edit-copy). |
delete_niagara_scratch_pad_module | destructive | Delete a scratch pad module from a Niagara System. |
delete_niagara_system | destructive | Delete a Niagara System asset. |
describe_niagara_type | read | Return the full schema of any Niagara type — primitive, enum, struct, or data interface. |
disconnect_material_expression | read | Disconnect a specific input pin on a material expression node. |
disconnect_niagara_pins | read | Break all connections on a specific pin of a node in a scratch pad graph. |
duplicate_asset | read | Duplicate an asset to a new location. |
duplicate_data_table_row | read | Copy an existing row under a new name. |
duplicate_material_expression | read | Duplicate a node (same type and properties, offset from original). |
duplicate_niagara_emitter | read | Duplicate an emitter within a Niagara System. |
duplicate_niagara_scratch_pad_module | read | Duplicate an existing scratch pad module on a system. |
duplicate_widget | read | Deep-copy a widget including children. Auto-renames on conflicts. |
execute_python | write | Execute arbitrary Python code inside the running Unreal Editor. |
find_actors | read | Flexible actor search across the level — combine any number of filters. |
find_actors_by_name | read | Find actors whose name matches the given pattern. |
find_assets | read | Search the Asset Registry by class, path, and/or name pattern. |
find_niagara_scratch_pad_usage | read | Reverse lookup: find where a scratch pad script is referenced in the stack. |
find_references | read | Find assets that reference or are referenced by the given asset. |
get_actor_material_info | read | Get material slot info for a level actor. |
get_actor_properties | read | Get property values from a live actor instance placed in the world. |
get_actor_property_metadata | read | Inspect type/clamp/enum metadata for properties on a placed actor. |
get_actors_in_level | read | List all actors in the current level. |
get_asset_info | read | Get asset metadata: class, package, and key properties. |
get_asset_properties | read | Get all editable properties of an asset. |
get_available_material_pins | read | Query all available material output pins for a specific material. |
get_available_materials | read | List materials that can be applied to objects. |
get_blueprint_class_defaults | read | Get all default property values from a Blueprint |
get_blueprint_function_details | read | Get detailed info about Blueprint functions (empty name = all functions). |
get_blueprint_material_info | read | Get material slot info for a Blueprint |
get_blueprint_variable_details | read | Get detailed info about Blueprint variables (empty name = all variables). |
get_data_asset_properties | read | Read ALL property values from a data asset (no visibility filter). |
get_data_table_row | read | Get a single row from a Data Table by its row name. |
get_data_table_rows | read | Get all rows and their field data from a Data Table asset. |
get_data_table_schema | read | Get column names and types defined by the Data Table |
get_expression_type_info | read | Look up pin names and editable properties for a node type WITHOUT creating one. |
get_input_action | read | Read all properties, triggers, and modifiers of an Input Action. |
get_input_mapping_context | read | Read all key mappings from an Input Mapping Context. |
get_mass_config_traits | read | Read all traits from a Mass Entity Config asset with their properties expanded. |
get_material_errors | read | Get shader compilation errors for a material. |
get_material_expression_info | read | Get detailed info for a single node, including all available input/output pins. |
get_material_function_info | read | Inspect a Material Function: inputs, outputs, internal nodes. |
get_material_graph_nodes | read | Read expression nodes in a material graph. |
get_material_info | read | Inspect a material |
get_material_instance_parameters | read | Get all overridable parameters from a Material Instance (scalar, vector, texture, switch). |
get_material_property_connections | read | Query which expression node feeds each material output slot. |
get_mcp_token_stats | read | Get accumulated per-command token usage statistics. |
get_niagara_actors | read | Get all Niagara actors in the current level. |
get_niagara_data_interface_schema | read | Return the full editable-property schema of a UNiagaraDataInterface subclass. |
get_niagara_emitter_attributes | read | Get attributes defined on an emitter at a given scope. |
get_niagara_emitters | read | Get emitters in a Niagara System. |
get_niagara_event_handlers | read | Get all event handlers configured on an emitter. |
get_niagara_graph_nodes | read | Introspect every node inside a Niagara graph. |
get_niagara_module_input_binding | read | Resolve the actual binding of each module input — Default/Local/Linked/Dynamic/Data. |
get_niagara_module_inputs | read | Get all input parameters for a specific module. |
get_niagara_module_versions | read | Check for outdated modules in an emitter and their available versions. |
get_niagara_modules | read | Get modules in an emitter |
get_niagara_node_info | read | Deep inspect a single Niagara node: full pin layout, connections, type-specific detail. |
get_niagara_node_type_info | read | Get pin/property schema for a Niagara node type or script asset. |
get_niagara_particle_stats | read | Get live particle counts and emitter execution state from running preview. |
get_niagara_playback_range | read | Get the current timeline playback range and frame rate settings. |
get_niagara_rapid_iteration_parameters | read | Get rapid iteration parameters (the actual configurable values on modules). |
get_niagara_renderer_info | read | Get detailed information about a renderer on an emitter. |
get_niagara_renderer_properties | read | Get editable properties of a renderer with current values and valid enum values. |
get_niagara_schema_actions | read | Return the full graph context-menu actions for a scratch pad module. |
get_niagara_script_properties | read | Read the details-panel properties of a Niagara script. |
get_niagara_system_errors | read | Get compilation errors, warnings, and validation issues for a Niagara System. |
get_niagara_system_info | read | Get detailed information about a Niagara System. |
get_niagara_user_parameters | read | Get user-exposed parameters from a Niagara System asset or a level actor |
get_property_valid_types | read | Return valid classes/structs/enum-values for a property dropdown. |
get_selected_actors | read | Get all currently selected actors in the editor viewport. |
get_selected_assets | read | Get currently selected assets in the Content Browser. |
get_slot_properties | read | Read layout slot properties (type depends on parent: CanvasPanelSlot, HorizontalBoxSlot, etc.). |
get_statetree_bindings | read | Get property bindings with full path details. Each binding shows source/target |
get_statetree_evaluators | read | Get all global evaluators with their properties and instance data. |
get_statetree_full_info | read | Get complete StateTree data in one call with verbosity control. |
get_statetree_global_tasks | read | Get all global tasks with their properties. |
get_statetree_info | read | Get compact overview of a StateTree: schema, state count, evaluator count, etc. |
get_statetree_node | read | Get detailed info for a single node (task/evaluator/condition) by GUID. |
get_statetree_parameters | read | Get tree-level parameters (name, type, value). |
get_statetree_state | read | Get detailed info for a single state: properties, tasks, conditions, transitions. |
get_statetree_states | read | Get state hierarchy as a JSON tree. Each state shows name, type, ID, task/transition counts. |
get_statetree_transition_targets | read | Get all valid transition targets for a StateTree. |
get_widget_properties | read | Read all property values from a widget (supports all FProperty types). |
get_widget_tree | read | Read the complete widget hierarchy from a Widget Blueprint |
get_world_info | read | Get current editor level info (world name, actor count, actor list). |
health_check | read | Check if the UE5 editor bridge is running and responsive. |
import_asset | write | Import an external file (texture, mesh, FBX, etc.) into the Content Browser. |
import_assets_batch | write | Import multiple files into the Content Browser in one batch. |
layout_material_expressions | read | Auto-layout all nodes using Unreal |
link_niagara_parameter | read | Link a module input to a Niagara parameter (user, system, emitter, or particle scope). |
list_assets | read | List assets in a Content Browser directory. |
list_data_asset_classes | read | List all UDataAsset subclasses currently loaded in the editor. |
list_data_assets | read | List data assets in a content path, optionally filtered by class. |
list_input_actions | read | List all UInputAction assets, optionally filtered by name and path. |
list_input_keys | read | List available FKey values (keyboard, mouse, gamepad keys). |
list_input_mapping_contexts | read | List all UInputMappingContext assets, optionally filtered. |
list_material_expression_types | read | List available material expression node types. |
list_modifier_types | read | List all available UInputModifier subclasses with their editable properties. |
list_niagara_available_parameters | write | List parameters that can be bound to a Map Get / Map Set pin. |
list_niagara_data_interface_functions | read | Enumerate member functions on a Niagara data interface class. |
list_niagara_data_interfaces | read | List available Niagara Data Interfaces (Grid2D, Grid3D, AudioSpectrum, etc.). |
list_niagara_emitter_templates | read | List available emitter templates for use with add_niagara_emitter. |
list_niagara_input_source_menu | read | Reproduce the stack-UI source dropdown for a specific input. |
list_niagara_modules | read | List available Niagara module scripts for use with add_niagara_module. |
list_niagara_node_types | read | Enumerate every Niagara node type that can be added to a graph. |
list_niagara_ops | read | Enumerate all valid UNiagaraNodeOp operations from FNiagaraOpInfo registry. |
list_niagara_parameter_types | read | Live query of FNiagaraTypeRegistry — every type the editor |
list_niagara_scratch_pad_modules | read | List all scratch pad modules on a Niagara System. |
list_niagara_script_parameters | read | List input + output parameters of a Niagara script. |
list_niagara_systems | read | List Niagara System assets in the project. |
list_statetree_enum_values | read | List valid enum values for StateTree properties. |
list_statetree_node_types | read | List available task/evaluator/condition types for the StateTree |
list_trigger_types | write | List all available UInputTrigger subclasses with their editable properties. |
list_widget_types | read | List available UWidget subclasses. Use filter to narrow results. |
move_material_expression | write | Move a material expression node to a new graph position. |
move_widget | write | Move a widget to a different parent panel. |
open_asset | read | Open an asset in the UE5 editor (blueprint, material, data table, widget, etc.). |
performance_analyze_insight | read | Query profiling data from a loaded .utrace trace. |
performance_start_trace | write | Start recording a performance trace from the running Unreal Editor. |
performance_stop_trace | write | Stop the active trace recording and optionally load it for analysis. |
read_blueprint_content | read | Read complete Blueprint content: event graph, functions, variables, components. |
recompile_material | destructive | Force recompile and save a material. Reports success/failure. |
remove_input_action_modifier | destructive | Remove a modifier from an Input Action by index. |
remove_input_action_trigger | destructive | Remove a trigger from an Input Action by index. |
remove_key_mapping | destructive | Remove a key mapping from an Input Mapping Context. |
Trust audit
BLOCKgrade D · trust 69/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | WARN |
| L3 | Class-specific surface | WARN |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (3 observation(s))
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (6)
target="$HOME/.aws/amazonq/mcp.json"
mkdir -p "$HOME/.aws/amazonq"
echo " Linux: sudo apt install python3 python3-pip"
system use found in code, not declared in the description
cleanup_material_function, cleanup_material_graph, clear_niagara_module_input, delete_actor, delete_asset, delete_blueprint_function, delete_blueprint_node, delete_data_table_row, delete_material_expr
importlib.import_module(mod_name)
Gates applied: no_behavioural_pass.
ff42563918ecfull audit observations/trust-audit/mcp-server/aadeshrao123__unreal-4.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-08 | ff42563918ec | BLOCK | D | 69 | first audit |
Questions
What is the Unreal MCP server?
AI bridge for Unreal Engine 5. Control the editor from Claude Code, Cursor, Windsurf, and any MCP client. Community edition of CodeFizz Editor Agent, which has 900+ commands across 28 categories on UE 5.6, 5.7 and 5.8.
What tools does Unreal expose?
200 in total: 135 read-only, 119 that write, and 32 that can delete or overwrite (cleanup_material_function, cleanup_material_graph, clear_niagara_module_input, delete_actor, delete_asset). Every one is listed on this page with its risk.
Is Unreal safe to connect to an agent?
No — not without reading the findings first. The audit graded it D (69/100) and found 3 critical or high issues in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 32 of its tools can destroy data, so scope the token you give it to what you actually need.
What credentials does Unreal need?
No credential environment variables were found in its source, so it appears to need none.
How does Unreal run?
It speaks stdio, so it runs as a local process your client starts. It is published on npm as unrealcli at 1.2.1.
How current is this page?
The grade is for one exact copy of the source (ff42563918ec), read on 2026-10-08. The repository is watched and re-audited when it changes.