MCPBridge Server
Provides tools for interacting with Unreal Engine 4.27, enabling AI agents to perform actor and level editing, Blueprint creation and compilation, C++ class generation, material editing, DataTable operations, and more, all within the editor via undoable transactions.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCPBridge Server Place a cube actor at the world origin."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCPBridge Server
Companion MCP server for the MCP Bridge Unreal Engine 4.27 editor plugin. It translates Model Context Protocol tool calls from AI coding agents (Claude Code, Codex, Cursor, or any MCP client) into HTTP commands for the listener that the plugin runs inside the Unreal editor.
AI agent (MCP client) --stdio--> this server --HTTP localhost:8080--> UE4.27 editor (MCP Bridge plugin)All communication stays on your machine: the server talks only to
localhost:8080, where the plugin's in-editor listener accepts connections
from the local machine only.
Requirements
Node.js 18 or newer
The MCP Bridge plugin installed and enabled in a UE 4.27 project (available on Fab; the plugin's Quick Start covers editor setup)
Related MCP server: Unreal-MCP-Ghost
Setup
npm install
npm run buildThen register the server with your MCP client. For Claude Code, add this to
your project's .mcp.json (adjust the path to where you cloned this repo):
{
"mcpServers": {
"unreal-bridge": {
"command": "node",
"args": ["<path-to-this-repo>/dist/index.js"]
}
}
}Start your UE 4.27 project with the plugin enabled, then ask your agent to
run test_connection. A healthy reply includes the engine version and
project paths.
What the tools cover
150+ tools across: actor and level editing, Blueprint creation and compilation, Blueprint member/graph editing with schema-validated pin connections, gameplay framework generation (GameMode/Character/controller/HUD with class defaults wired), input mappings and control-scheme presets, camera rig presets, Blackboards and Behavior Trees built from JSON, C++ class generation and UnrealBuildTool compilation as background jobs with structured error reporting, materials and material instances, DataTables, audio components, map creation, viewport control and screenshots, and a searchable project intelligence index.
Every editor mutation runs in a UE4 transaction (undo works), compiles and saves the affected asset, and reports failure explicitly - a broken Blueprint is never reported as success.
Tests
npm test # unit tests against a mock listener; no Unreal needed
npm run test:integration # requires UE 4.27 running with the plugin listenerThe registry-consistency test cross-checks this server's tools against the plugin's Python command router; it runs in the plugin's development repository and skips automatically here.
Versioning
Server and plugin versions track each other (this is v0.4.0, matching plugin v0.4.0). When updating one, update the other.
License
MIT - see LICENSE.
Available Tools
122 toolsactor_deleteB
Delete actors by name or name pattern (supports * and ? wildcards).
Inputs: actor_name (required).
actor_duplicateA
Duplicate an existing actor with an optional offset. Returns validation results by default.
Inputs: actor_name (required), offset, new_name, validate.
actor_modifyA
Change an actor's location, rotation, scale, mesh, or visibility. Returns validation results by default.
Inputs: actor_name (required), mesh, scale, visible, +3 more.
actor_organizeA
Move actors into World Outliner folders.
Inputs: actors (required), folder (required).
actor_snap_to_socketC
Snap one actor to another actor's named socket.
Inputs: actor_name (required), socket_name (required), target_actor (required).
actor_spawnA
Spawn an actor from an asset path at a given location/rotation/scale. Returns validation results by default.
Inputs: asset_path (required), name, scale, folder, +3 more.
anim_blueprint_build_from_jsonA
Build an Animation Blueprint from a JSON specification. Creates the AnimBP asset with the given skeleton and populates the anim graph from the JSON spec (state machines, blend spaces, slots, etc.).
Inputs: json_spec (required), asset_name (required), package_path (required), skeleton_path (required).
asset_infoA
Return detailed info for a single asset: type, bounds, material slots, LOD count.
Inputs: path (required).
asset_listA
List assets with optional filters. Returns asset paths, types, and names.
Inputs: path, recursive, asset_type, name_pattern.
asset_load_diagnosticsC
Diagnose asset loads, Blueprint generated classes, dependencies, referencers, and script class availability.
Inputs: asset_paths, class_paths, include_referencers, include_dependencies.
asset_save_manyA
Save only the explicit asset paths passed in. Safer than project-wide save-all.
Inputs: paths (required).
audio_component_addA
Add an AudioComponent to a Blueprint, optionally assigning a SoundBase asset and auto-activate. Compiles and saves.
Inputs: blueprint_path (required), sound, attach_to, auto_activate, +1 more.
batch_operationsB
Execute multiple tool calls in a single request with shared validation.
Inputs: operations (required).
batch_spawnB
Spawn multiple actors in one call. Each spawn definition uses the same format as actor_spawn.
Inputs: spawns (required).
behavior_tree_createA
Create a BehaviorTree asset bound to an existing Blackboard, optionally building its node graph from a BehaviorTreeBuilder JSON spec (26 node types: Selector/Sequence/SimpleParallel composites, MoveTo/Wait/etc tasks, Blackboard/Cooldown/etc decorators, services). Optionally adds keys to the blackboard first.
Inputs: name (required), path (required), blackboard_path (required), keys, +1 more.
blackboard_createA
Create a BlackboardData asset with typed keys (Bool, Int, Float, String, Name, Vector, Rotator, Object, Class).
Inputs: name (required), path (required), keys.
blueprint_add_event_dispatcherA
Create an event dispatcher (multicast delegate) with an optional parameter signature, then compile and save.
Inputs: name (required), blueprint_path (required), signature.
blueprint_add_functionA
Create a user function graph on a Blueprint with typed inputs/outputs, then compile and save. Returns the function graph name.
Inputs: name (required), blueprint_path (required), inputs, outputs.
blueprint_add_interfaceA
Implement a Blueprint Interface on a Blueprint, then compile and save.
Inputs: blueprint_path (required), interface_class (required).
blueprint_add_variableA
Add a member variable to a Blueprint, then compile and save.
Inputs: name (required), type (required), blueprint_path (required), category, +1 more.
blueprint_build_from_descriptionA
Build a Blueprint event graph from high-level pattern templates. Each step references a named pattern with optional parameters. Exec flow is auto-wired between steps. Available patterns: on_begin_play, print_string, print_float, get_actor_location, loop_print, move_actor_up
Inputs: steps (required), blueprint_path (required), clear_existing.
blueprint_build_from_jsonA
Builds a Blueprint event graph from a JSON node/connection description. Supported node types: BeginPlay, PrintString, Delay, CallFunction. Node objects accept an optional 'params' key to set pin default values by PinName. Connections use 'nodeId.exec' format for exec pin wiring.
Inputs: graph (required), blueprint_path (required), clear_existing.
blueprint_compileA
Compile a Blueprint and return success/failure with error details. Success means the compile ran, check 'compiled' and 'had_errors' for actual result.
Inputs: blueprint_path (required).
blueprint_component_removeA
Remove a component (SCS node) from a Blueprint; children re-parent to the removed node's parent. Compiles and saves.
Inputs: blueprint_path (required), component_name (required).
blueprint_component_renameA
Rename a component (SCS node) on a Blueprint, then compile and save.
Inputs: new_name (required), old_name (required), blueprint_path (required).
blueprint_createC
Create a new Blueprint class with optional components and variables.
Inputs: name (required), path, variables, components, +1 more.
blueprint_documentB
Generate a human-readable text summary of a Blueprint's structure, variables, and components.
Inputs: blueprint_path (required), detail_level.
blueprint_infoB
Get detailed Blueprint structure: components, variables, functions, event graphs, parent chain.
Inputs: blueprint_path (required).
blueprint_inspectA
Read Blueprint structure: graphs, functions, variables, macros, interfaces, event dispatchers, components (SCS), nodes in a graph with pins and links, single node detail, or node search. Use before editing to resolve graph names, node GUIDs, and pin names.
Inputs: action (required), blueprint_path (required), query, node_guid, +1 more.
blueprint_listA
List Blueprint assets with optional filtering by path, name, and parent class.
Inputs: limit, name_filter, path_filter, parent_class_filter.
blueprint_node_addA
Add a node to a Blueprint graph. Returns the new node's GUID for pin wiring. node_type is a registered factory: CallFunction, Event, CustomEvent, VariableGet, VariableSet, Branch, Sequence, Knot, Comment, Cast, CreateWidget, SpawnActor, MacroInstance, MakeStruct, BreakStruct, Select, FormatText, SwitchEnum, SwitchInt, SwitchName, SwitchString, MultiGate, DoOnceMultiInput, InputAction, InputAxisEvent, InputKey, AddDelegate, RemoveDelegate, CallDelegate, and more. config keys are camelCase and depend on node_type: CallFunction {targetClass, functionName}; Event {parentClass, eventName}; CustomEvent {eventName, parameters?}; VariableGet/VariableSet {varName, scope?}; Cast {targetClass, purity?}; SpawnActor {actorClass}; CreateWidget {widgetClass}; MakeStruct/BreakStruct {structType}; Comment {text}; MacroInstance {macroBP, macroName}. EXCEPTION: input nodes use snake_case keys - InputAction {action_name, consume_input?}, InputAxisEvent {axis_name}, InputKey {key}. Class paths use /Script/Module.Class form. Compiles and saves.
Inputs: node_type (required), graph_name (required), blueprint_path (required), config, +1 more.
blueprint_node_deleteA
Delete a node by GUID (links broken first), then compile and save.
Inputs: node_guid (required), graph_name (required), blueprint_path (required).
blueprint_node_moveA
Move a node to a new graph position, then compile and save.
Inputs: position (required), node_guid (required), graph_name (required), blueprint_path (required).
blueprint_node_set_enabledA
Enable or disable a node by GUID, then compile and save.
Inputs: enabled (required), node_guid (required), graph_name (required), blueprint_path (required).
blueprint_pins_breakA
Break all links on a single pin of a node, then compile and save.
Inputs: pin_name (required), node_guid (required), graph_name (required), blueprint_path (required).
blueprint_pins_connectA
Connect two pins between nodes. The connection is validated by UEdGraphSchema_K2::CanCreateConnection before linking - incompatible types fail cleanly with no graph change. Compiles and saves on success.
Inputs: graph_name (required), source_pin (required), target_pin (required), blueprint_path (required), +2 more.
blueprint_remove_event_dispatcherA
Remove an event dispatcher by name, then compile and save.
Inputs: name (required), blueprint_path (required).
blueprint_remove_functionA
Remove a user function graph by name, then compile and save.
Inputs: name (required), blueprint_path (required).
blueprint_remove_interfaceA
Remove an interface implementation (deletes its generated function graphs), then compile and save.
Inputs: blueprint_path (required), interface_class (required).
blueprint_remove_variableA
Remove a member variable from a Blueprint, then compile and save.
Inputs: name (required), blueprint_path (required).
blueprint_set_variable_defaultA
Set a member variable's default value, then compile and save.
Inputs: name (required), blueprint_path (required), default_value.
bridge_clear_logA
Reset the MCP output-log cursor marker. Does not delete or truncate the UE log.
Inputs: no named parameters.
bridge_command_manifestA
Return command names currently registered in the live Unreal listener.
Inputs: no named parameters.
camera_rig_createA
Add a camera rig to a Pawn/Character Blueprint using a preset: first_person (eye-height camera, pawn control rotation), third_person (300 spring arm with lag), top_down (800 arm at -60 pitch), or side_scroller (500 arm at -90 yaw). Compiles and saves.
Inputs: preset (required), blueprint_path (required), arm_name, camera_name.
camera_shake_blueprintA
Create a CameraShake Blueprint asset with oscillation parameters. Shake presets: explosion, hit, earthquake, gunfire, footstep, ambient, electric_shock, glitch_shake. Or set individual rot_pitch/yaw/roll_amp/freq, loc_x/y/z_amp/freq, fov_amp/freq values.
Inputs: name, preset, fov_amp, duration, +17 more.
camera_shake_playB
Play a camera shake during PIE. Requires PIE to be running.
Inputs: shake_class (required), scale, play_space.
camera_shake_spawnA
Spawn a CameraShakeSourceActor in the level. Emits shake within inner/outer radius during PIE.
Inputs: name, location, shake_class, inner_radius, +1 more.
camera_shake_triggerB
Spawn a C++ ShakeTriggerActor: plays camera shake when the player overlaps its trigger box during PIE. Python builds, C++ executes -- the reliable pattern.
Inputs: shake_class (required), name, location, box_extent, +1 more.
checkpoint_createB
Create a named save point (level save + metadata snapshot).
Inputs: name (required), description.
checkpoint_restoreA
Restore to a named checkpoint by undoing operations since it was created.
Inputs: name (required).
clear_output_logD
Alias for bridge_clear_log.
Inputs: no named parameters.
console_effectB
Toggle rendering features via console commands. Commands: freeze_rendering, show_fps, screen_percentage, temporal_aa, fxaa, motion_blur, bloom, eye_adaptation, tonemapper, ssr, ao, dof, aa_quality, shadow_quality, view_distance_quality, post_process_quality.
Inputs: command (required), value.
cpp_buildA
Compile the project with UnrealBuildTool as a background job. Returns a job_id immediately; poll job_status for progress and structured compiler errors (file, line, code, message).
Inputs: target, platform, extra_args, configuration, +1 more.
cpp_class_createA
Generate a UCLASS header/source pair in a game module (UE4.27 wizard-style boilerplate with GENERATED_BODY and constructor). Does not compile; run cpp_build afterwards. New classes require an editor restart to load.
Inputs: name (required), module, subdir, parent_class, +1 more.
data_table_createA
Create a DataTable for a row struct, optionally filling rows from DataTable JSON ([{"Name": "Row1", ...fields}]). Saves the table.
Inputs: name (required), path (required), row_struct (required), rows_json.
data_table_fill_from_jsonA
Replace an existing DataTable's rows from DataTable JSON, then save. Returns the resulting row names.
Inputs: rows_json (required), data_table (required).
gameplay_framework_createA
Create a linked set of gameplay framework Blueprints (GameMode, Pawn or Character, PlayerController, GameInstance, HUD, GameState, PlayerState) named BP_<base_name>, with the GameMode's class defaults wired to the created pieces. Compiles and saves everything.
Inputs: path (required), base_name (required), pieces.
gameplay_pattern_searchA
Find reusable gameplay patterns in indexed Blueprints, widgets, and level actors using deterministic heuristics. Patterns include overlap logic, key-door flows, prompt widgets, objective chains, and interactables.
Inputs: fresh, limit, query, pattern, +1 more.
gameplay_pie_startA
Launch a Play In Editor (PIE) session and wait until the game world is ready (up to 30s). Returns success once the PIE-ready log marker is found. Call this before gameplay_run_acceptance_tests or gameplay_telemetry_snapshot.
Inputs: level_path.
gameplay_pie_stopA
End the current PIE session.
Inputs: no named parameters.
gameplay_run_acceptance_testsA
Run structured acceptance test predicates against a live PIE session. PIE must already be running (call gameplay_pie_start first). Returns pass/fail per predicate with observed value. Predicates: 'pawn_possessed:ClassName', 'widget_visible:WidgetName', 'log_contains:String', 'ai_state:ActorName:StateName', 'survive:N' (N seconds without crash).
Inputs: tests (required), timeout_seconds.
gameplay_telemetry_snapshotA
Capture the current PIE runtime state: new log lines since last snapshot, possessed pawn class, visible widget class names, AI controller states, and PIE world name. PIE must be running.
Inputs: no named parameters.
game_template_createA
Generate a playable game skeleton: gameplay framework (GameMode/Character/PlayerController/HUD with class defaults wired), a camera rig matching the template, an input preset, and optionally a new map and project default game mode. Templates: first_person, third_person, top_down, side_scroller. Returns a manifest of everything created.
Inputs: path (required), template (required), base_name (required), create_map, +1 more.
helpA
Show documentation for available tools.
Inputs: tool_name.
history_listC
Show operation history with timestamps and parameters.
Inputs: count.
input_mapping_addA
Add an action or axis mapping to project input settings (saved to Config/DefaultInput.ini). Key names use FKey string form: W, SpaceBar, LeftMouseButton, MouseX, Gamepad_LeftTrigger, ...
Inputs: key (required), kind (required), name (required), alt, +4 more.
input_mapping_infoA
Inspect Unreal input action and axis mappings. Use this to validate bindings like PF_Pause to Escape when physical key injection is unavailable.
Inputs: key, axis_name, action_name.
input_mapping_removeA
Remove action or axis mappings. Omit 'key' to remove every key bound to the name.
Inputs: kind (required), name (required), key.
input_preset_applyA
Apply a standard control scheme preset: first_person, third_person, top_down, or tank (WASD movement, mouse look where applicable, Jump/Fire/Interact actions). Idempotent.
Inputs: preset (required).
job_cancelA
Cancel a running background job (terminates its subprocess).
Inputs: job_id (required).
job_listA
List all background jobs started in this editor session, newest first.
Inputs: no named parameters.
job_statusA
Get a background job's status (running/succeeded/failed/cancelled), structured result (e.g. parsed compiler errors for cpp_build), and output tail.
Inputs: job_id (required), include_output.
level_actorsA
List actors in the current level with optional filters. Returns name, class, folder, and optionally transforms and components.
Inputs: limit, name_filter, class_filter, folder_filter, +2 more.
level_newA
Create and load a new level (optionally from a template map), then save it. WARNING: switches the editor's loaded level; refuses if unsaved changes exist.
Inputs: path (required), template.
level_outlinerA
Return the World Outliner folder tree structure with actor counts per folder.
Inputs: root_folder.
level_saveA
Save the current level and optionally all dirty assets.
Inputs: save_all.
material_applyB
Apply a material to an actor's mesh component. Returns validation by default.
Inputs: actor_name (required), material_path (required), slot_name, slot_index, +1 more.
material_createB
Create a new material or material instance. Provide parent and type 'instance' for material instances.
Inputs: name (required), type (required), path, parent, +1 more.
material_infoA
Get detailed information about a material: parameters, textures, parent chain.
Inputs: material_path (required).
material_instance_createA
Create a MaterialInstanceConstant from a parent material with optional scalar/vector/texture parameter overrides. Saves the instance.
Inputs: name (required), path (required), parent_material (required), scalar_params, +2 more.
material_instance_set_paramsA
Set scalar/vector/texture parameters on an existing material instance, then save.
Inputs: material_instance (required), scalar_params, vector_params, texture_params.
material_listA
List materials in the project with optional filtering by path, name, and type.
Inputs: limit, name_filter, path_filter, type_filter.
placement_validateB
Check actors for gaps, overlaps, and alignment issues.
Inputs: actors (required), check_gaps, gap_threshold, check_overlaps, +1 more.
pp_presetB
Apply a named post-processing preset. Creates or updates a PP volume. Presets: horror, cyberpunk, noir, dream, underwater, surveillance, vhs_glitch, damage, drunk, frozen, nuclear, sepia, cinematic, neon, thermal.
Inputs: preset (required), name, intensity.
pp_volume_modifyA
Modify an existing PostProcessVolume's settings. Settings merge with existing values.
Inputs: actor_name (required), unbound, priority, settings, +2 more.
pp_volume_spawnA
Spawn a PostProcessVolume with full settings control. Supports bloom, exposure, color grading, DOF, chromatic aberration, grain, vignette, motion blur, SSR, lens flare, and more.
Inputs: name, enabled, unbound, location, +4 more.
project_enable_pluginsA
Enable one or more plugins in the current .uproject and report whether an editor restart is required.
Inputs: plugins (required).
project_index_queryA
Search the cached project intelligence index. Use this before editing to find existing assets, Blueprint structures, dependencies, and patterns.
Inputs: limit, query, category, include_raw, +1 more.
project_index_rebuildA
Rebuild the lightweight project intelligence index under Saved/MCP/index. Scans assets, Blueprints, materials, widgets, level actors, and design memory using existing read-only bridge handlers.
Inputs: limit, categories, actor_limit, path_prefix, +2 more.
project_infoA
Return current UE project name, engine version, project path, content directory, and loaded level.
Inputs: no named parameters.
project_semantic_diffA
Compare indexed before/after snapshots for semantic changes in Blueprints, widgets, materials, level actors, and dependencies. If snapshots are omitted, compares cached index data against a fresh read.
Inputs: limit, categories, asset_paths, path_prefix, +2 more.
project_settings_mapsA
Set default maps and game mode: game default map, editor startup map, and/or global default game mode. Persists to Config/DefaultEngine.ini.
Inputs: game_default_map, editor_startup_map, global_default_game_mode.
prompt_generateA
Generate complete Unreal Engine 4.27 gameplay systems from a natural language prompt. Creates Blueprints, Widget Blueprints, materials, data assets, maps, actors, and input mappings. Supports genres: puzzle_fighter, menu_system, horror, platformer, inventory, generic. Use dry_run=true to preview the build spec without creating any assets.
Inputs: prompt (required), dry_run.
prompt_spec_listA
List previously generated build specs from the PromptBrush output directory. Each entry shows feature name, genre, and the original prompt.
Inputs: no named parameters.
prompt_statusA
Check PromptBrush system status: BlueprintGraphBuilder availability, WidgetBlueprintBuilder availability, output directory path, and manifest count.
Inputs: no named parameters.
python_proxyA
Execute arbitrary Python code inside the UE4 editor. Has full access to the unreal module. Use for prototyping or operations not covered by dedicated tools.
Inputs: code (required).
redoA
Redo previously undone operations.
Inputs: count.
restart_listenerA
Restart the Python listener without restarting Unreal. Use after modifying listener code.
Inputs: host, port.
test_connectionA
Ping the UE4 Python listener. Returns connection status, engine version, and project info.
Inputs: no named parameters.
title_controller_createC
Create a BP_TitleController implementation spec that owns the widget and updates cues from Sequencer frame numbers.
Inputs: id, manifest, asset_name, package_path, +1 more.
title_manifest_adjustC
Apply measured correction passes to a manifest by changing cue boxes, frame timing, text, role, or name fields.
Inputs: adjustments (required), id, manifest, output_path, +1 more.
title_manifest_createA
Create and persist a JSON title manifest using normalized screen boxes, frame timing, and style metadata. Stores output in Saved/MCP/titles by default.
Inputs: cues (required), id, fps, style, +4 more.
title_manifest_from_referenceB
Create a manifest from measured reference-frame pixel boxes by converting them into normalized screen boxes.
Inputs: cues (required), id, fps, style, +5 more.
title_manifest_validateB
Validate a title manifest for normalized boxes, valid cue types, positive frame rate, and frame timing.
Inputs: id, manifest, manifest_path.
title_render_compareA
Compare a UE-rendered title frame against a reference still and report pixel error for the full image or region.
Inputs: render_path (required), reference_path (required), region.
title_sequence_bindB
Create a Level Sequence binding spec for driving BP_TitleController from frame numbers. This is a v1 scaffold until the bridge has full Sequencer event-track authoring.
Inputs: id, manifest, manifest_path, sequence_path, +1 more.
title_widget_build_from_manifestA
Build WBP_TitleRenderer from a title manifest, or return the generated widget spec with dry_run=true.
Inputs: id, dry_run, manifest, asset_name, +2 more.
ue_logsB
Fetch recent UE4 log entries.
Inputs: category, severity.
undoA
Undo the last N operations using UE4's transaction system.
Inputs: count.
viewport_boundsA
Return current viewport camera position, rotation, and state. Read-only query.
Inputs: no named parameters.
viewport_cameraA
Set viewport camera position, rotation, and/or FOV. Preserves existing values for parameters not provided.
Inputs: fov, location, rotation.
viewport_fitA
Fit actors into the viewport frame. If actor_names is empty or omitted, fits all actors in the level.
Inputs: padding, actor_names.
viewport_focusA
Focus the viewport camera on a named actor. Returns camera state and actor bounding box.
Inputs: actor_name (required), distance.
viewport_look_atA
Point camera at coordinates or actor without moving camera position. If both are provided, actor_name takes priority.
Inputs: location, actor_name.
viewport_modeA
Switch to a standard view: top, front, right, left, back, bottom, perspective.
Inputs: mode (required).
viewport_render_modeA
Change viewport render mode: lit, unlit, wireframe, detail_lighting, lighting_only, light_complexity, shader_complexity, collision.
Inputs: mode (required).
viewport_screenshotA
Capture the active viewport to a PNG file. Returns the absolute filesystem path so Claude Code can read the image.
Inputs: show_ui, filename, resolution.
widget_build_from_jsonA
Create a Widget Blueprint from a JSON widget tree using WidgetBlueprintBuilderLibrary. Creates the asset at package_path/asset_name and populates the designer tree.
Inputs: asset_name (required), widget_json (required), package_path (required).
widget_lower_third_createA
Create a broadcast-style lower-third Widget Blueprint with styled title/subtitle text and FadeIn/FadeOut animation specs.
Inputs: hold, title, preset, eyebrow, +12 more.
widget_title_card_createB
Create a centered cinematic title-card Widget Blueprint with styled text, background treatment, and FadeIn/FadeOut animation specs.
Inputs: hold, title, preset, eyebrow, +12 more.
widget_title_templateA
Return a polished UMG title or lower-third widget JSON spec with named fade-in and fade-out animations. Does not create an asset.
Inputs: hold, style, title, preset, +14 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 122 tools
Several tools overlap: blueprint_info, blueprint_inspect, and blueprint_document all inspect Blueprint structure; blueprint_build_from_json and blueprint_build_from_description both build graphs; bridge_clear_log and clear_output_log are exact aliases. While many tools are domain-specific, these overlaps create selection ambiguity.
Most tools follow a consistent <domain>_<action> pattern (actor_spawn, asset_list, material_create), but outliers like undo, redo, help, test_connection, python_proxy, and ue_logs break the pattern. There are also mixed conventions such as level_actors vs actor_spawn and clear_output_log as a bare verb.
With 122 tools, this is an extreme over-scoping for a single server. The calibration guide marks 50+ as extreme, and this is more than double that, making it difficult for an agent to efficiently select the right tool.
The tool surface is remarkably broad, covering assets, actors, blueprints, materials, viewport, input, AI, data tables, and C++, but it lacks basic delete operations for many asset types (e.g., asset_delete, material_delete, blueprint_delete) and has no rename or list for data tables. It's extensive but not fully comprehensive.
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
Make games with AI: one MCP server that connects your agent to Unity, Unreal and Godot editors.
Control Unreal Engine to browse assets, import content, and manage levels and sequences. Automate…
214 tools for AI agents over one MCP endpoint: image, video, audio, 3D, data, storage, mail, GPUs.
Related MCP Servers
- AlicenseBqualityCmaintenanceAn MCP server that gives AI agents broad control over Unreal Engine 5.7, enabling actor/asset/level management, Blueprint and material creation, screenshots, automation, and arbitrary editor Python execution.35MIT
- AlicenseCqualityCmaintenanceEnables AI clients to control Unreal Engine 5 editor for automated Blueprint authoring, level inspection, actor spawning, and other editor workflows via a local Python MCP server and UE plugin.5004AGPL 3.0
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to control and query Unreal Engine 4.27.2 editor through MCP, supporting asset creation, level editing, and project inspection via Python remote execution.135 npm32MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI coding agents to work inside a live Unreal Editor for Fortnite session: write and compile Verse, place and wire Creative devices, edit Scene Graph entities, manipulate actors and assets, take screenshots, run playtests, and read editor logs via MCP.MIT