The UnrealCV Runtime MCP server currently exposes 8 toolsets and 36 tools.
Low-level access to the existing UnrealCV command system.
Lists registered UnrealCV commands and their descriptions.
Use this tool to discover legacy commands that have not yet been wrapped as dedicated MCP tools.
Returns the description and usage information for one UnrealCV command template.
Key input:
command: UnrealCV command or command template to inspect.
Executes a raw command through the UnrealCV command dispatcher.
Key input:
command: Complete UnrealCV command string, such asvget /objects.
Use dedicated MCP tools when available because they provide structured schemas and results.
Provides runtime scene discovery, perception, inspection, capture, and spatial queries.
Returns an overview of the scene around the main camera.
The result includes:
- Camera pose
- Nearby actors
- Actor distances
- View-direction signals
- Occlusion and visibility information
Key inputs:
radius: Search radius in centimeters.max_actors: Maximum number of actors returned.
Lists actors in the current Game or PIE world.
Supports:
- Runtime-name filtering
- Class-path filtering
- Actor-tag filtering
- Pagination
- Stable name ordering
Key inputs:
name_contains: Case-insensitive actor-name substring.class_contains: Case-insensitive class-path substring.tag: Exact Actor tag, matched case-insensitively.offset: Pagination offset.limit: Maximum number of actors returned.
Returned actor names can be passed to inspection, camera, character, and spawn tools.
Returns a compact structured perception snapshot.
The result can include:
- Map and agent state
- Nearby objects
- Navigation reachability
- Line-of-sight information
- Radial collision rays
Key inputs:
radius: Perception radius in centimeters.max_objects: Maximum nearby objects.max_rays: Maximum radial collision rays.
Inspects one runtime actor.
The result includes:
- Runtime name and class
- Location, rotation, and scale
- World-space bounds
- Tags
- Owner
- Components
Key input:
actor: Exact runtime actor name.
Captures the current lit scene and saves it as a PNG in the system temporary directory.
Supported capture sources:
mvrc: Main viewport backbuffer; follows the main window camera and usually provides the best visual quality.mqrc: Independently configurable movie-quality renderer; may require warmup.
Key inputs:
camera_id: UnrealCV camera ID.source:mvrcormqrc.width: Requested image width.height: Requested image height.
The result includes the saved file path, dimensions, renderer class, MIME type, and byte count.
Traces vertically downward from a world coordinate.
The result includes:
- Whether a blocking surface was hit
- Impact location
- Surface normal
- Hit actor and component
- Physical material
- Trace distance
- Basic walkability classification
Key inputs:
x,y,z: Trace origin in world-space centimeters.trace_length_cm: Maximum downward trace distance.
Checks whether an axis-aligned world-space region is clear.
The result includes:
- Whether the region is clear
- Intersecting actors
- Actor classes
- Whether intersecting actors were generated by the MCP workflow
Key inputs:
center_x,center_y,center_zextent_x,extent_y,extent_z
Provides native agent-oriented scene perception.
Returns structured scene state without requiring image recognition.
The result can include:
- Agent pose
- Nearby objects and bounds
- Line of sight
- Navigation reachability
- Radial collision rays
- Occupancy capability metadata
Key inputs:
radius_cm: Radius around the main camera.max_objects: Maximum number of nearby objects.max_rays: Maximum number of radial rays.
Controls the main runtime camera and actor-following behavior.
Returns the current main camera state:
- Location
- Rotation
- Forward direction
- Field of view
Moves the main camera to an exact world-space pose.
Key inputs:
location:{x, y, z}in centimeters.rotation:{x, y, z}, mapped to pitch, yaw, and roll in degrees.
Points the main camera at a world-space target.
The camera can rotate in place or move to a new location first.
Key inputs:
target: World-space point to look at.location: Optional new camera location.
Places the camera relative to a target and aims it at that target.
Supported presets include:
top_downbottom_upx_positivex_negativey_positivey_negative- Axis-aligned 45-degree downward views
Key inputs:
target: Center of the view.preset: View direction preset.distance_cm: Distance between camera and target.
Frames an actor using its world-space bounds and the main camera field of view.
Key inputs:
actor: Exact runtime actor name.preset: View direction.margin: Framing-distance multiplier.
Makes an actor the first local PlayerController's view target and activates
one explicitly named CameraComponent.
Automatic camera inference is intentionally unsupported.
Required inputs:
actor: Exact runtime actor name.camera_component: Exact, case-sensitive CameraComponent name.
Optional input:
blend_time_seconds: View transition duration.
For the tested SmartLocomotion character:
- First-person camera:
FPS Camera - Third-person camera:
TPS Camera
This tool changes the view target but does not possess the actor or transfer movement input.
Stops following a separate actor and restores the PlayerController's currently possessed Pawn as its view target.
Optional input:
blend_time_seconds: Transition duration back to the possessed Pawn.
This tool does not:
- Change possession
- Move actors
- Destroy actors
- Select a CameraComponent
After detaching, use camera.set_pose or camera.look_at for free camera
movement.
Searches and inspects spawnable Unreal assets.
Searches for:
- Static Meshes
- Skeletal Meshes
- Actor Blueprints
The first query for a path reads AssetRegistry metadata without loading Blueprint classes. Later queries reuse a path-based cache.
Key inputs:
path: Asset root, such as/Game/SmartLocomotion.search_spec: Case-insensitive substring matched against asset name, type, and path.offset: Pagination offset.limit: Maximum returned entries.refresh: Force a fresh AssetRegistry query and replace the path cache.
The result includes:
- Matching assets
- Total count
- Pagination state
- Cache-hit status
- AssetRegistry scan time
- Filtering time
Loads one spawnable asset and returns:
- Asset type
- Object path
- Bounding-box metadata
- Size description
- Bounds source and confidence
Key input:
asset_path: Full Unreal asset object path.
Returns local bounding-box and size metadata for a spawnable asset.
Key input:
asset_path: Full Unreal asset object path.
Spawns, places, validates, and destroys runtime actors.
Spawns a Static Mesh, Skeletal Mesh, or Actor Blueprint asset.
Supports:
- Explicit transform
- Custom runtime name
- Ground settling
- Placement annotation
- Overlap rejection
- Placement rollback
Key inputs:
asset_path: Spawnable asset path.location: Initial world location.rotation: Optional pitch, yaw, and roll.name: Optional unique actor name.settle:none,simple,bounds, orsweep.height_offset_cm: Height above detected ground.reject_overlaps: Whether invalid overlapping placement should be rolled back.
Lists workflow-generated actors whose world-space bounds overlap a target actor.
Key input:
actor: Exact runtime actor name.
Validates an existing generated actor.
Checks:
- Generated-object overlap
- Ground contact
- Overall placement validity
Key input:
actor: Exact runtime actor name.
Moves an existing actor onto the first valid surface below it.
Key inputs:
actor: Exact runtime actor name.mode:simple,bounds, orsweep.height_offset_cm: Final height above the detected surface.
Destroys a runtime actor.
This can also be used to roll back failed generated placements.
Key input:
actor: Exact runtime actor name.
Discovers and invokes reflected Blueprint and native Unreal functions.
Discovers callable reflected functions on:
- Runtime objects
- Components
- Class default objects
The result includes:
- Exact function name
- Display name
- Declaring class
- Function flags
- Parameter names
- C++ parameter types
- Input/output direction
Key inputs:
target: Runtime object name, component name,class:<class path>, orcdo:<class path>.name_filter: Optional case-insensitive function-name filter.
Use this tool before blueprint.call when a function signature is unknown.
Invokes a reflected BlueprintCallable or native UFunction using structured
JSON arguments.
Key inputs:
target: Runtime object, component, class, or class default object.function: Exact reflected function name.arguments: JSON object keyed by exact reflected parameter names.
The result includes output parameters and return values as structured JSON.
Provides a unified workflow for character spawning, physics, controllers, navigation, movement, and diagnostics.
Spawns a controllable character from an Actor Blueprint.
Default asset:
/Game/SmartLocomotion/Blueprints/BP_Character.BP_Character
The asset path can be replaced for other character Blueprints.
Key inputs:
- location: Initial world location.
- rotation: Optional pitch, yaw, and roll.
- actor_name: Unique runtime name.
- asset_path: Character Blueprint asset path.
- ensure_ai_controller: Immediately create and bind an AIController.
For free-fall initialization, spawn above the ground and call
character.set_physics.
### character.set_physics
Enables or disables a character Blueprint's physics/free-fall mode.
For the default character, this calls set_phy with 1 or 0.
The wrapper supports Blueprint parameters represented as either booleans or
numeric values.
Key inputs:
- actor: Exact character actor name.
- enabled: Enable or disable physics.
- function: Physics function name; defaults to set_phy.
Recommended sequence:
1. Spawn above clear ground.
2. Enable physics.
3. Wait for the Z position to stabilize.
4. Disable physics.
5. Begin navigation.
### character.ensure_ai_controller
Ensures that a Pawn has an AIController.
Behavior:
- Reuses an existing AIController.
- Replaces a non-AI controller when necessary.
- Otherwise spawns /Script/AIModule.AIController.
- Possesses the target Pawn.
Key inputs:
- actor: Pawn or Character name.
- controller_name: Name assigned to a newly spawned controller.
### character.get_controller
Inspects the controller currently possessing a Pawn.
The result includes:
- Whether a controller exists
- Controller object name
- Controller class
- Whether it is an AIController
Key input:
- actor: Pawn or Character name.
### character.nav_area
Gets or sets the character Blueprint's internal navigation sampling area.
This tool does not create or resize the world's Recast NavMesh.
Key inputs:
- actor: Character name.
- action: get or set.
- x_min, x_max
- y_min, y_max
- z_min, z_max
After setting the area, call get and confirm is_valid before random
navigation.
### character.navigate
Controls the default character's Blueprint navigation API.
Supported actions:
- to_goal: Navigate to a specific world-space destination.
- random: Start random navigation.
- sample_goal: Generate a navigation candidate without moving.
- stop: Stop AI movement.
Key inputs:
- actor: Character name.
- action: Navigation action.
- target: Destination for to_goal.
- range_cm: Search radius for random navigation.
- loop: Continue selecting random destinations.
- radius_min_cm: Minimum sample radius.
- radius_max_cm: Maximum sample radius.
Actual path following requires:
- A valid NavMesh
- A valid navigation area
- An AIController
- A reachable destination
### character.move_pulse
Calls the character Blueprint's set_move(rot, Speed) function.
Key inputs:
- actor: Character name.
- yaw_degrees: World-space movement heading.
- speed_cm_s: Movement speed in centimeters per second.
Repeat the tool at a controlled interval when the Blueprint requires
continuous movement commands.
Use character.movement_state to verify displacement.
### character.movement_state
Returns detailed locomotion diagnostics for an ACharacter.
The result includes:
- Actor location
- Velocity
- Movement mode
- Walking and falling state
- Maximum movement speed
- Current acceleration
- Pending movement input
- Last movement input
- Whether movement input is ignored
- Controller information
Use this tool when navigation or movement commands return successfully but
the character does not visibly move.