Atlas / MCP servers / aadeshrao123 / Unreal

UnrealBLOCK

mcp/aadeshrao123/unreal-4

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.

Verdict
BLOCK
Grade
D
Trust score
69 /100
Exposed tools
200 135r · 119w · 32d
Transport
stdio
License
MPL-2.0
Stars
39
01

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

Read from source at commit ff42563918ecOBSERVED · 2026-10-08
02

Connect

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-code (pypi)
claude mcp add unrealmcp -- None unrealmcp==1.3.1
03

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.

ToolRiskDescription
add_blueprint_nodewriteAdd a node to a Blueprint graph.
add_component_to_blueprintwriteAdd a component to a Blueprint
add_data_table_rowwriteAdd a new row, optionally setting initial field values.
add_event_nodewriteAdd an event node (ReceiveBeginPlay, ReceiveTick, ReceiveDestroyed, etc.).
add_function_inputwriteAdd an input parameter to a Blueprint function.
add_function_outputwriteAdd an output parameter to a Blueprint function.
add_input_action_modifierwriteAdd a modifier to an Input Action.
add_input_action_triggerwriteAdd a trigger to an Input Action.
add_key_mappingwriteAdd a key-to-action mapping to an Input Mapping Context.
add_mapping_modifierwriteAdd a modifier to a specific mapping in an Input Mapping Context.
add_mapping_triggerwriteAdd a trigger to a specific mapping in an Input Mapping Context.
add_mass_config_traitwriteAdd a SINGLE trait to a Mass Entity Config without replacing existing traits.
add_material_commentswriteAdd comment boxes to a material graph for organization.
add_material_expressionwriteAdd a single expression node without clearing other nodes.
add_material_function_inputwriteAdd an input pin to a Material Function.
add_material_function_outputwriteAdd an output pin to a Material Function.
add_niagara_componentwriteAdd a NiagaraComponent to an existing actor in the level.
add_niagara_custom_hlsl_inputwriteAdd a typed input pin to a scratch pad module
add_niagara_custom_hlsl_outputwriteAdd a typed output pin to a scratch pad module
add_niagara_emitterwriteAdd an emitter to a Niagara System.
add_niagara_event_handlerwriteAdd an event handler to an emitter that responds to events from a source emitter.
add_niagara_graph_nodewriteCreate a new node inside a Niagara scratch-pad / dynamic-input / module graph.
add_niagara_map_get_pinwriteAdd a typed output pin to the first ParameterMapGet node in a scratch pad graph.
add_niagara_map_set_pinwriteAdd a typed input pin to the first ParameterMapSet node in a scratch pad graph.
add_niagara_modulewriteAdd a module to an emitter
add_niagara_node_pinwriteGeneric: add a typed dynamic pin to any node in a scratch pad graph.
add_niagara_rendererwriteAdd a renderer to an emitter.
add_niagara_script_parameterwriteAdd an input or output parameter to a Niagara script.
add_niagara_simulation_stagewriteAdd a simulation stage to an emitter.
add_niagara_user_parameterwriteAdd a user parameter to a Niagara System. Supports every type the editor
add_statetree_bindingwriteAdd a property binding connecting a source node
add_statetree_conditionwriteAdd a condition to a state
add_statetree_evaluatorwriteAdd a global evaluator to the StateTree.
add_statetree_global_taskwriteAdd a global task to the StateTree.
add_statetree_parameterwriteAdd a tree-level parameter.
add_statetree_statewriteAdd a state to the tree. Omit parent params for a root-level state.
add_statetree_taskwriteAdd a task to a state.
add_statetree_transitionwriteAdd a transition to a state.
add_widgetwriteAdd a new widget to a Widget Blueprint
analyze_blueprint_graphreadAnalyze a specific graph — nodes, connections, and execution flow.
apply_and_save_niagara_scratch_padwriteApply a scratch pad module
apply_material_to_actorwriteApply a material to a level actor.
apply_material_to_blueprintwriteApply a material to a Blueprint component.
apply_niagara_scratch_padwriteCommit a scratch pad module
build_material_function_graphreadBuild the internal node graph of a Material Function in one atomic call.
build_material_graphreadBuild a complete material node graph in one atomic operation.
cleanup_material_functiondestructiveRemove unconnected/orphaned nodes from a Material Function.
cleanup_material_graphdestructiveDelete orphaned and/or dead-end nodes from a material graph.
clear_niagara_module_inputdestructiveReset a module input to its default — equivalent to
compile_blueprintreadCompile a Blueprint.
compile_niagara_systemreadCompile a Niagara System and report any errors.
compile_statetreereadCompile a StateTree and return errors/warnings.
connect_blueprint_nodesreadConnect two nodes in a Blueprint graph.
connect_material_expressionsreadConnect two expression nodes using their indices.
connect_niagara_pinsreadWire one node
control_niagara_effectreadControl a Niagara effect actor in the level.
create_blueprintwriteCreate a new Blueprint asset from any C++ or Blueprint parent class.
create_blueprint_functionwriteCreate a new function in a Blueprint.
create_blueprint_variablewriteCreate a variable in a Blueprint.
create_data_assetwriteCreate a new data asset of any UDataAsset subclass.
create_input_actionwriteCreate a new UInputAction asset.
create_input_mapping_contextwriteCreate a new UInputMappingContext asset.
create_materialwriteCreate a new Material asset.
create_material_functionwriteCreate a new Material Function asset.
create_material_instancewriteCreate a Material Instance from a parent material.
create_niagara_module_assetwriteCreate a standalone Niagara script asset (module / dynamic input / function).
create_niagara_scratch_pad_modulewriteCreate a new scratch pad script on a Niagara System.
create_niagara_systemwriteCreate a new Niagara System asset.
create_statetreewriteCreate a new StateTree asset with the specified schema.
delete_actordestructiveDelete an actor from the level by name.
delete_assetdestructiveDelete an asset or directory from the Content Browser.
delete_blueprint_functiondestructiveDelete a function from a Blueprint.
delete_blueprint_nodedestructiveDelete a node from a Blueprint graph by GUID.
delete_data_table_rowdestructiveDelete a row from a Data Table by name.
delete_material_expressiondestructiveDelete a single expression node by index. Recompiles and saves automatically.
delete_niagara_graph_nodedestructiveDelete a node from a Niagara graph (asset + edit-copy).
delete_niagara_scratch_pad_moduledestructiveDelete a scratch pad module from a Niagara System.
delete_niagara_systemdestructiveDelete a Niagara System asset.
describe_niagara_typereadReturn the full schema of any Niagara type — primitive, enum, struct, or data interface.
disconnect_material_expressionreadDisconnect a specific input pin on a material expression node.
disconnect_niagara_pinsreadBreak all connections on a specific pin of a node in a scratch pad graph.
duplicate_assetreadDuplicate an asset to a new location.
duplicate_data_table_rowreadCopy an existing row under a new name.
duplicate_material_expressionreadDuplicate a node (same type and properties, offset from original).
duplicate_niagara_emitterreadDuplicate an emitter within a Niagara System.
duplicate_niagara_scratch_pad_modulereadDuplicate an existing scratch pad module on a system.
duplicate_widgetreadDeep-copy a widget including children. Auto-renames on conflicts.
execute_pythonwriteExecute arbitrary Python code inside the running Unreal Editor.
find_actorsreadFlexible actor search across the level — combine any number of filters.
find_actors_by_namereadFind actors whose name matches the given pattern.
find_assetsreadSearch the Asset Registry by class, path, and/or name pattern.
find_niagara_scratch_pad_usagereadReverse lookup: find where a scratch pad script is referenced in the stack.
find_referencesreadFind assets that reference or are referenced by the given asset.
get_actor_material_inforeadGet material slot info for a level actor.
get_actor_propertiesreadGet property values from a live actor instance placed in the world.
get_actor_property_metadatareadInspect type/clamp/enum metadata for properties on a placed actor.
get_actors_in_levelreadList all actors in the current level.
get_asset_inforeadGet asset metadata: class, package, and key properties.
get_asset_propertiesreadGet all editable properties of an asset.
get_available_material_pinsreadQuery all available material output pins for a specific material.
get_available_materialsreadList materials that can be applied to objects.
get_blueprint_class_defaultsreadGet all default property values from a Blueprint
get_blueprint_function_detailsreadGet detailed info about Blueprint functions (empty name = all functions).
get_blueprint_material_inforeadGet material slot info for a Blueprint
get_blueprint_variable_detailsreadGet detailed info about Blueprint variables (empty name = all variables).
get_data_asset_propertiesreadRead ALL property values from a data asset (no visibility filter).
get_data_table_rowreadGet a single row from a Data Table by its row name.
get_data_table_rowsreadGet all rows and their field data from a Data Table asset.
get_data_table_schemareadGet column names and types defined by the Data Table
get_expression_type_inforeadLook up pin names and editable properties for a node type WITHOUT creating one.
get_input_actionreadRead all properties, triggers, and modifiers of an Input Action.
get_input_mapping_contextreadRead all key mappings from an Input Mapping Context.
get_mass_config_traitsreadRead all traits from a Mass Entity Config asset with their properties expanded.
get_material_errorsreadGet shader compilation errors for a material.
get_material_expression_inforeadGet detailed info for a single node, including all available input/output pins.
get_material_function_inforeadInspect a Material Function: inputs, outputs, internal nodes.
get_material_graph_nodesreadRead expression nodes in a material graph.
get_material_inforeadInspect a material
get_material_instance_parametersreadGet all overridable parameters from a Material Instance (scalar, vector, texture, switch).
get_material_property_connectionsreadQuery which expression node feeds each material output slot.
get_mcp_token_statsreadGet accumulated per-command token usage statistics.
get_niagara_actorsreadGet all Niagara actors in the current level.
get_niagara_data_interface_schemareadReturn the full editable-property schema of a UNiagaraDataInterface subclass.
get_niagara_emitter_attributesreadGet attributes defined on an emitter at a given scope.
get_niagara_emittersreadGet emitters in a Niagara System.
get_niagara_event_handlersreadGet all event handlers configured on an emitter.
get_niagara_graph_nodesreadIntrospect every node inside a Niagara graph.
get_niagara_module_input_bindingreadResolve the actual binding of each module input — Default/Local/Linked/Dynamic/Data.
get_niagara_module_inputsreadGet all input parameters for a specific module.
get_niagara_module_versionsreadCheck for outdated modules in an emitter and their available versions.
get_niagara_modulesreadGet modules in an emitter
get_niagara_node_inforeadDeep inspect a single Niagara node: full pin layout, connections, type-specific detail.
get_niagara_node_type_inforeadGet pin/property schema for a Niagara node type or script asset.
get_niagara_particle_statsreadGet live particle counts and emitter execution state from running preview.
get_niagara_playback_rangereadGet the current timeline playback range and frame rate settings.
get_niagara_rapid_iteration_parametersreadGet rapid iteration parameters (the actual configurable values on modules).
get_niagara_renderer_inforeadGet detailed information about a renderer on an emitter.
get_niagara_renderer_propertiesreadGet editable properties of a renderer with current values and valid enum values.
get_niagara_schema_actionsreadReturn the full graph context-menu actions for a scratch pad module.
get_niagara_script_propertiesreadRead the details-panel properties of a Niagara script.
get_niagara_system_errorsreadGet compilation errors, warnings, and validation issues for a Niagara System.
get_niagara_system_inforeadGet detailed information about a Niagara System.
get_niagara_user_parametersreadGet user-exposed parameters from a Niagara System asset or a level actor
get_property_valid_typesreadReturn valid classes/structs/enum-values for a property dropdown.
get_selected_actorsreadGet all currently selected actors in the editor viewport.
get_selected_assetsreadGet currently selected assets in the Content Browser.
get_slot_propertiesreadRead layout slot properties (type depends on parent: CanvasPanelSlot, HorizontalBoxSlot, etc.).
get_statetree_bindingsreadGet property bindings with full path details. Each binding shows source/target
get_statetree_evaluatorsreadGet all global evaluators with their properties and instance data.
get_statetree_full_inforeadGet complete StateTree data in one call with verbosity control.
get_statetree_global_tasksreadGet all global tasks with their properties.
get_statetree_inforeadGet compact overview of a StateTree: schema, state count, evaluator count, etc.
get_statetree_nodereadGet detailed info for a single node (task/evaluator/condition) by GUID.
get_statetree_parametersreadGet tree-level parameters (name, type, value).
get_statetree_statereadGet detailed info for a single state: properties, tasks, conditions, transitions.
get_statetree_statesreadGet state hierarchy as a JSON tree. Each state shows name, type, ID, task/transition counts.
get_statetree_transition_targetsreadGet all valid transition targets for a StateTree.
get_widget_propertiesreadRead all property values from a widget (supports all FProperty types).
get_widget_treereadRead the complete widget hierarchy from a Widget Blueprint
get_world_inforeadGet current editor level info (world name, actor count, actor list).
health_checkreadCheck if the UE5 editor bridge is running and responsive.
import_assetwriteImport an external file (texture, mesh, FBX, etc.) into the Content Browser.
import_assets_batchwriteImport multiple files into the Content Browser in one batch.
layout_material_expressionsreadAuto-layout all nodes using Unreal
link_niagara_parameterreadLink a module input to a Niagara parameter (user, system, emitter, or particle scope).
list_assetsreadList assets in a Content Browser directory.
list_data_asset_classesreadList all UDataAsset subclasses currently loaded in the editor.
list_data_assetsreadList data assets in a content path, optionally filtered by class.
list_input_actionsreadList all UInputAction assets, optionally filtered by name and path.
list_input_keysreadList available FKey values (keyboard, mouse, gamepad keys).
list_input_mapping_contextsreadList all UInputMappingContext assets, optionally filtered.
list_material_expression_typesreadList available material expression node types.
list_modifier_typesreadList all available UInputModifier subclasses with their editable properties.
list_niagara_available_parameterswriteList parameters that can be bound to a Map Get / Map Set pin.
list_niagara_data_interface_functionsreadEnumerate member functions on a Niagara data interface class.
list_niagara_data_interfacesreadList available Niagara Data Interfaces (Grid2D, Grid3D, AudioSpectrum, etc.).
list_niagara_emitter_templatesreadList available emitter templates for use with add_niagara_emitter.
list_niagara_input_source_menureadReproduce the stack-UI source dropdown for a specific input.
list_niagara_modulesreadList available Niagara module scripts for use with add_niagara_module.
list_niagara_node_typesreadEnumerate every Niagara node type that can be added to a graph.
list_niagara_opsreadEnumerate all valid UNiagaraNodeOp operations from FNiagaraOpInfo registry.
list_niagara_parameter_typesreadLive query of FNiagaraTypeRegistry — every type the editor
list_niagara_scratch_pad_modulesreadList all scratch pad modules on a Niagara System.
list_niagara_script_parametersreadList input + output parameters of a Niagara script.
list_niagara_systemsreadList Niagara System assets in the project.
list_statetree_enum_valuesreadList valid enum values for StateTree properties.
list_statetree_node_typesreadList available task/evaluator/condition types for the StateTree
list_trigger_typeswriteList all available UInputTrigger subclasses with their editable properties.
list_widget_typesreadList available UWidget subclasses. Use filter to narrow results.
move_material_expressionwriteMove a material expression node to a new graph position.
move_widgetwriteMove a widget to a different parent panel.
open_assetreadOpen an asset in the UE5 editor (blueprint, material, data table, widget, etc.).
performance_analyze_insightreadQuery profiling data from a loaded .utrace trace.
performance_start_tracewriteStart recording a performance trace from the running Unreal Editor.
performance_stop_tracewriteStop the active trace recording and optionally load it for analysis.
read_blueprint_contentreadRead complete Blueprint content: event graph, functions, variables, components.
recompile_materialdestructiveForce recompile and save a material. Reports success/failure.
remove_input_action_modifierdestructiveRemove a modifier from an Input Action by index.
remove_input_action_triggerdestructiveRemove a trigger from an Input Action by index.
remove_key_mappingdestructiveRemove a key mapping from an Input Mapping Context.
04

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.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)WARN
L3Class-specific surfaceWARN
L4Behavioural (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)

HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
install.sh:356
target="$HOME/.aws/amazonq/mcp.json"
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
install.sh:357
mkdir -p "$HOME/.aws/amazonq"
Why it matters. touches a credential store
HIGHPrivilege escalation / persistence · priv.escalate · CWE-269, CWE-250
install.sh:20
echo " Linux: sudo apt install python3 python3-pip"
Why it matters. asks for elevated privileges
MEDIUMPrompt injection · scope.undeclared_system · CWE-94, CWE-1427
<declared scope>
system use found in code, not declared in the description
Why it matters. the description does not admit a capability the code has
Fix. declare system use in the description, or remove it
MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
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
Why it matters. 32 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
.github/workflows/ci.yml:62
importlib.import_module(mod_name)

Gates applied: no_behavioural_pass.

Audited 2026-10-08 · audit v0.4.1 · source sha ff42563918ecfull audit observations/trust-audit/mcp-server/aadeshrao123__unreal-4.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-08ff42563918ecBLOCKD69first audit
06

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.

Advertisement