Docs · Tools · Unreal Engine

90 MCP tools
for Unreal Engine, ready for your AI agent.

Actors & components, the Blueprint authoring surface with a compile feedback loop, C++ source tooling, and viewport capture.

90
Action
Family

Actor & Component

Spawn, find, modify actors & components

13

Spawn an actor from a class path (native or Blueprint), with optional name, location, rotation, or parent.

actor-createActor & Component
  • classPath*string
  • namestring
  • locationVector
  • rotationRotator
  • parentActorRef
“Spawn a StaticMeshActor named Crate at the player start.”

Destroy an actor in the level.

actor-destroyActor & Component
  • actor*ActorRef
“Delete the placeholder cube actor in the level.”

Duplicate an existing actor.

actor-duplicateActor & Component
  • actor*ActorRef
  • countint
“Duplicate the streetlamp five times along the road.”

Find actors in the level, with scoped reads via paths or a view query.

actor-findActor & Component
  • pathsstring[]
  • viewQuerystring
“Find every actor whose name contains Enemy.”

Write actor FProperty values, including the transform.

actor-modifyActor & Component
  • actor*ActorRef
  • patch*object
“Move the crate up by 200 units and rotate it 45 degrees.”

Attach an actor to a parent actor.

actor-set-parentActor & Component
  • actor*ActorRef
  • parent*ActorRef
“Attach the lantern to the lamppost actor.”

Add a component to an actor.

actor-component-addActor & Component
  • actor*ActorRef
  • componentClass*string
“Add a PointLightComponent to the lantern actor.”

Destroy a component on an actor.

actor-component-destroyActor & Component
  • component*ComponentRef
“Remove the AudioComponent from the door actor.”

Read a component's serialized data.

actor-component-getActor & Component
  • component*ComponentRef
“Show me the light settings on the lantern.”

Modify a component's properties.

actor-component-modifyActor & Component
  • component*ComponentRef
  • patch*object
“Set the point light intensity to 5000 and color to warm orange.”

List available UActorComponent classes (paginated).

actor-component-list-allActor & Component
  • querystring
  • pageint
“List every component class with "light" in the name.”

Read any UObject by path.

object-get-dataActor & Component
  • path*string
“Dump the data of the game mode object.”

Modify any UObject by path.

object-modifyActor & Component
  • path*string
  • patch*object
“Set the default pawn class on the game mode object.”

Blueprint

Classes, variables, functions, compile

11

Create a new Blueprint class from a parent UClass path.

blueprint-createBlueprint
  • parentClass*string
  • path*string
“Create a Blueprint named BP_Door that extends Actor.”

Return a graph summary for LLM inspection — variables, components, functions, events, and the parent chain.

blueprint-getBlueprint
  • path*string
“Summarize the BP_Player blueprint for me.”

Add a component to a Blueprint via the Simple Construction Script.

blueprint-add-componentBlueprint
  • path*string
  • componentClass*string
  • namestring
“Add a StaticMeshComponent called Body to BP_Door.”

Remove an SCS component from a Blueprint.

blueprint-remove-componentBlueprint
  • path*string
  • name*string
“Remove the unused Arrow component from BP_Door.”

Add a typed member variable to a Blueprint.

blueprint-add-variableBlueprint
  • path*string
  • name*string
  • type*string
“Add a float variable called Health to BP_Player.”

Modify a member variable on a Blueprint.

blueprint-modify-variableBlueprint
  • path*string
  • name*string
  • patch*object
“Make the Health variable editable and set its default to 100.”

Edit a CDO (class-default) property on a Blueprint.

blueprint-set-defaultBlueprint
  • path*string
  • property*string
  • value*object
“Set the default move speed on BP_Player to 600.”

Add a function stub to a Blueprint with entry and result nodes wired.

blueprint-add-functionBlueprint
  • path*string
  • name*string
“Add a TakeDamage function to BP_Player.”

Add or bind an event stub (BeginPlay, Tick, input, …) on a Blueprint.

blueprint-add-eventBlueprint
  • path*string
  • event*string
“Add a BeginPlay event to BP_Door.”

Compile the Blueprint and return a structured error and warning list — the AI feedback loop.

blueprint-compileBlueprint
  • path*string
“Compile BP_Player and tell me about any errors.”

Instance the Blueprint into the current level.

blueprint-spawnBlueprint
  • path*string
  • locationVector
“Drop three BP_Door instances into the level.”

Asset & Content

Content Browser · materials · import

11

Search the AssetRegistry by name, class, path, or tags.

asset-findAsset & Content
  • querystring
  • classstring
  • pathstring
“Find every Material asset under /Game/Materials.”

Read an asset's data, with scoped reads supported.

asset-get-dataAsset & Content
  • path*string
“Show me the details of /Game/Meshes/SM_Crate.”

Create a Content folder.

asset-create-folderAsset & Content
  • path*string
“Create a Content folder at /Game/Audio/SFX.”

Copy an asset to a new path.

asset-copyAsset & Content
  • fromPath*string
  • toPath*string
“Copy SM_Crate to a new variant folder.”

Move or rename an asset.

asset-moveAsset & Content
  • fromPath*string
  • toPath*string
“Move every texture in /Game/Misc into /Game/Textures.”

Delete an asset.

asset-deleteAsset & Content
  • path*string
“Delete the unused placeholder material.”

Rescan asset paths so newly added files are indexed.

asset-refreshAsset & Content
  • pathsstring[]
“Rescan /Game after I dropped new files in.”

Create a Material Instance from a parent material.

asset-material-createAsset & Content
  • parent*string
  • path*string
“Create a red material instance from M_Base for the car body.”

Set scalar, vector, or texture parameters on a material instance.

asset-material-modifyAsset & Content
  • path*string
  • patch*object
“Set the base color of the car material to glossy red.”

Read material graph and parameter info (the "shader" analog).

asset-material-get-dataAsset & Content
  • path*string
“What parameters does M_Car expose?”

Import FBX or textures via an AssetImportTask.

asset-importAsset & Content
  • sourceFile*string
  • destinationPath*string
“Import Hero.fbx into /Game/Characters.”

Editor & Reflection

PIE · selection · console · UFunctions

9

Read editor application state, including Play-In-Editor status.

editor-application-get-stateEditor & Reflection
“Is the editor currently in PIE?”

Start, stop, or pause Play-In-Editor.

editor-application-set-stateEditor & Reflection
  • state*enum<Play|Stop|Pause>
“Start Play-In-Editor.”

Read the current editor selection.

editor-selection-getEditor & Reflection
“What actors are selected right now?”

Set the editor selection.

editor-selection-setEditor & Reflection
  • actors*ActorRef[]
“Select every light actor in the level.”

Read recent editor logs from the LogCollector ring buffer.

console-get-logsEditor & Reflection
  • minSeverityenum<Log|Warning|Error>
  • limitint
“Show me the last 20 errors in the editor log.”

Clear the captured-log ring buffer.

console-clear-logsEditor & Reflection
“Clear the editor log buffer.”

Run a console command or set a CVar.

console-run-commandEditor & Reflection
  • command*string
“Run the stat fps console command.”

Discover callable UFunctions, returning invocation schemas.

reflection-method-findEditor & Reflection
  • query*string
“Find every UFunction whose name contains spawn.”

Invoke a UFunction — static or instance, including CallInEditor functions.

reflection-method-callEditor & Reflection
  • function*string
  • argsobject[]
“Call the RebuildNavigation editor function.”

Level / Map

Create, open, save, stream sublevels

7

Create a new level.

level-createLevel / Map
  • path*string
“Create a new level called Arena.”

Open a level for editing.

level-openLevel / Map
  • path*string
“Open the Arena level.”

Save the level, with save-as via an optional path.

level-saveLevel / Map
  • pathstring
“Save my changes to the current level.”

Return an actor-tree snapshot of a level, with scoped reads.

level-get-dataLevel / Map
  • pathstring
“List every actor in the current level.”

List persistent and streaming sublevels (World-Partition aware, read-only).

level-list-loadedLevel / Map
“Which sublevels are currently loaded?”

Set the current/active level.

level-set-currentLevel / Map
  • path*string
“Make the Lobby sublevel the active one.”

Unload a streaming sublevel.

level-unload-sublevelLevel / Map
  • path*string
“Unload the distant terrain sublevel.”

Source / C++

Read, scaffold, edit & compile C++

6

Read a project C++ source file (sliced).

source-readSource / C++
  • path*string
“Show me the contents of MyCharacter.cpp.”

Scaffold a new C++ class — header and cpp from templates.

source-create-classSource / C++
  • name*string
  • parentClassstring
“Create a new C++ Actor class called Pickup.”

Edit a project C++ source file.

source-updateSource / C++
  • path*string
  • contents*string
“Add a Tick override to MyCharacter.cpp.”

Delete a project C++ source file.

source-deleteSource / C++
  • path*string
“Delete the unused Spinner.cpp file.”

List module source files.

source-listSource / C++
  • modulestring
“List every source file in the game module.”

Compile project C++ — Live Coding when active, else UBT — with a structured error report.

source-compileSource / C++
“Compile the C++ and report any build errors.”

Screenshot

Viewport · game view · camera renders

4

Capture the active editor viewport as a PNG.

screenshot-viewportScreenshot
  • widthint
  • heightint
“Take a screenshot of the editor viewport.”

Capture the PIE / game view as a PNG.

screenshot-game-viewScreenshot
  • widthint
  • heightint
“Capture what the game looks like right now.”

Render from a resolved camera actor via a USceneCaptureComponent2D.

screenshot-cameraScreenshot
  • camera*ActorRef
“Render the scene from the cinematic camera.”

Render an actor in isolation using a transient SceneCapture2D and show-only list.

screenshot-isolatedScreenshot
  • actor*ActorRef
“Render the hero actor in isolation against a clean background.”

Ping

Liveness probe across the MCP chain

1

Liveness probe — round-trips the plugin ⇄ sidecar ⇄ server chain.

pingPing
“Ping the Unreal plugin to check the connection.”

Control Rig

Inspect Control Rig rigs, controls, bones

Extension · AI ControlRig · unreal-mcp-cli install-extension com.ivanmurzak.unreal-ai-control-rig <UEProject>

5

List every Control Rig blueprint (UControlRigBlueprint) asset in the project via the Asset Registry, without loading any. Optional content-path prefix filter.

control-rig-listControl Rig

Needs the AI ControlRig extension installed.

  • pathPrefixstring
“List every Control Rig blueprint in the project.”

Inspect a single Control Rig blueprint asset (read-only) and report its rig element hierarchy and per-type counts.

control-rig-getControl Rig

Needs the AI ControlRig extension installed.

  • path*string
“Show me the rig element hierarchy of CR_Mannequin.”

List the control elements of a Control Rig blueprint (read-only), each with its control type (Float, Transform, Bool, …).

control-rig-list-controlsControl Rig

Needs the AI ControlRig extension installed.

  • path*string
“List the controls on CR_Mannequin and their types.”

List the bone elements of a Control Rig blueprint (read-only), each with its immediate parent bone.

control-rig-list-bonesControl Rig

Needs the AI ControlRig extension installed.

  • path*string
“List the bones of CR_Mannequin with their parents.”

Inspect the Control Rig component of an actor in the active editor world (read-only), looked up by its label.

control-rig-get-componentControl Rig

Needs the AI ControlRig extension installed.

  • actorName*string
“What Control Rig is bound to the Hero actor?”

Enhanced Input

Author Input Actions & Mapping Contexts

Extension · AI Enhanced Input · unreal-mcp-cli install-extension com.ivanmurzak.unreal-ai-enhanced-input <UEProject>

5

List every Enhanced Input asset in the project (Asset Registry; no asset loaded): Input Actions and Mapping Contexts.

enhanced-input-listEnhanced Input

Needs the AI Enhanced Input extension installed.

“List every Input Action and Mapping Context in the project.”

Inspect a single Enhanced Input asset (read-only): a UInputAction's value type, or a UInputMappingContext's key→action mappings.

enhanced-input-getEnhanced Input

Needs the AI Enhanced Input extension installed.

  • path*string
“Show me the mappings in IMC_Default.”

Create a UInputAction asset (value type Boolean / Axis1D / Axis2D / Axis3D) at a content path.

enhanced-input-action-createEnhanced Input

Needs the AI Enhanced Input extension installed.

  • path*string
  • valueType*enum<Boolean|Axis1D|Axis2D|Axis3D>
“Create a Boolean Input Action called IA_Jump.”

Create a UInputMappingContext asset at a content path.

enhanced-input-context-createEnhanced Input

Needs the AI Enhanced Input extension installed.

  • path*string
“Create a Mapping Context called IMC_Default.”

Add a key → action mapping to a UInputMappingContext.

enhanced-input-add-mappingEnhanced Input

Needs the AI Enhanced Input extension installed.

  • contextPath*string
  • actionPath*string
  • key*string
“Map the space bar to IA_Jump in IMC_Default.”

Gameplay Abilities

Abilities, effects, attribute sets, grant

Extension · AI GAS · unreal-mcp-cli install-extension com.ivanmurzak.unreal-ai-gas <UEProject>

5

List every Gameplay Ability class (UGameplayAbility subclass — native C++ and Blueprint) via the Asset Registry, without loading any. Optional class-path prefix filter.

gas-list-abilitiesGameplay Abilities

Needs the AI GAS extension installed.

  • pathPrefixstring
“List every Gameplay Ability in the project.”

List every Gameplay Effect class (UGameplayEffect subclass — native and Blueprint) via the Asset Registry, without loading any.

gas-list-effectsGameplay Abilities

Needs the AI GAS extension installed.

  • pathPrefixstring
“List every Gameplay Effect in the project.”

List every Attribute Set class (UAttributeSet subclass — native and Blueprint) via the Asset Registry, without loading any.

gas-list-attribute-setsGameplay Abilities

Needs the AI GAS extension installed.

  • pathPrefixstring
“List every Attribute Set in the project.”

Inspect a single Gameplay Ability class (read-only): ability/cancel/block tags, cost and cooldown Gameplay Effect classes, and instancing policy.

gas-inspect-abilityGameplay Abilities

Needs the AI GAS extension installed.

  • path*string
“Inspect GA_Fireball — show its tags, cost, and cooldown.”

Grant a Gameplay Ability to a named actor's AbilitySystemComponent in the active editor world (the actor must already own one).

gas-grant-abilityGameplay Abilities

Needs the AI GAS extension installed.

  • actorName*string
  • abilityPath*string
“Grant GA_Fireball to the Hero actor.”

Landscape & Water

Inspect landscapes, water bodies & zones

Extension · AI Landscape · unreal-mcp-cli install-extension com.ivanmurzak.unreal-ai-landscape <UEProject>

5

List every Landscape actor / proxy in the active editor world (read-only): class, whether it is the primary ALandscape vs a streaming proxy, and component count.

landscape-list-actorsLandscape & Water

Needs the AI Landscape extension installed.

“List every landscape actor in the level.”

Inspect a single Landscape actor by name (read-only): section layout, component count, landscape material, and paint layers.

landscape-get-actorLandscape & Water

Needs the AI Landscape extension installed.

  • actorName*string
“Show me the section layout and paint layers of Landscape_0.”

List every Water body actor in the active editor world (read-only): its type (River / Lake / Ocean / Custom) and spline-point count.

landscape-list-water-bodiesLandscape & Water

Needs the AI Landscape extension installed.

“List every water body in the level.”

Inspect a single Water body by name (read-only): type, spline-point count, water material, and owning water zone.

landscape-get-water-bodyLandscape & Water

Needs the AI Landscape extension installed.

  • actorName*string
“Inspect the River water body and its material.”

List every Water zone actor in the active editor world (read-only): world location and 2D zone extent.

landscape-list-water-zonesLandscape & Water

Needs the AI Landscape extension installed.

“List every water zone and its extent.”

Niagara

List/inspect systems · spawn components

Extension · AI Niagara · unreal-mcp-cli install-extension com.ivanmurzak.unreal-ai-niagara <UEProject>

3

List every Niagara system asset in the project (Asset Registry; no asset loaded).

niagara-list-systemsNiagara

Needs the AI Niagara extension installed.

“List every Niagara system in the project.”

Inspect a single Niagara system (read-only): emitter count plus per-emitter name and enabled flag.

niagara-get-systemNiagara

Needs the AI Niagara extension installed.

  • path*string
“Show me the emitters in NS_Fire.”

Spawn a Niagara component for a system into the editor world at a location.

niagara-spawn-componentNiagara

Needs the AI Niagara extension installed.

  • path*string
  • locationVector
“Spawn NS_Fire at the world origin.”

PCG

Procedural graphs · components · generate

Extension · AI PCG · unreal-mcp-cli install-extension com.ivanmurzak.unreal-ai-pcg <UEProject>

5

List every PCG graph (UPCGGraph) asset in the project via the Asset Registry, without loading any. Optional content-path prefix filter.

pcg-list-graphsPCG

Needs the AI PCG extension installed.

  • pathPrefixstring
“List every PCG graph in the project.”

Inspect a single PCG graph asset (read-only) and report its nodes.

pcg-get-graphPCG

Needs the AI PCG extension installed.

  • path*string
“Show me the nodes in PCGG_Scatter.”

Add a UPCGComponent to a named actor in the active editor world, optionally bound to a PCG graph asset.

pcg-add-componentPCG

Needs the AI PCG extension installed.

  • actorName*string
  • graphPathstring
“Add a PCG component bound to PCGG_Scatter on the Ground actor.”

Inspect the UPCGComponent on a named actor in the active editor world (read-only): its bound graph and generation state.

pcg-get-componentPCG

Needs the AI PCG extension installed.

  • actorName*string
“What PCG graph is bound to the Ground actor?”

Trigger PCG generation (refresh) on the UPCGComponent of a named actor in the active editor world.

pcg-generatePCG

Needs the AI PCG extension installed.

  • actorName*string
“Regenerate the PCG scatter on the Ground actor.”