Unreal Engine MCP server - 26 tools, 1932+ actions for AI-driven editor control
ue-mcp presents 27 tools with highly inconsistent quality. Naming is action-oriented (good), but descriptions are vague template-like strings that fail to explain WHEN to use each tool or what it returns. Input schemas are minimally documented, most tools declare only 2-3 parameters with generic descriptions ('action to perform', 'asset path'). Critical omissions: no output schemas are documented anywhere; no error handling guidance; no per-parameter enums or constraints; action parameters are free-form strings with no validation hints. The 'flow' tool has an unusually detailed description but still lacks output schema. Most tools appear to wrap Unreal Engine subsystems but expose this complexity as raw 'action' string parameters, forcing the LLM to know internal Unreal action names. The 'epic' tool references 830+ wrapped native tools but offers zero guidance on which to call when. Package.json tooling (audit:handlers, audit:docs) suggests the authors track quality, but the static schema artifacts show little evidence of that rigor applied to tool definitions.
Create, edit and manage animation assets including sequences and blends. Params: action (create, edit, get, list, add_notifies)
Create, import, inspect and edit assets in the project. Params: action (list, get, create, import, duplicate, delete, rename, move, save, properties)
Manage audio assets and sound configuration. Params: action (create, import, get, list, play, stop)
Create, edit, compile and debug Blueprints. Params: action (create, compile, get, edit, add_function, add_variable)
Create and manage Chooser objects for AI behavior selection. Params: action (create, edit, get)
Manage multi-turn conversation context and reasoning chains. Params: action (create, get, append, clear)
Create and execute Dataflow graphs for visual programming. Params: action (create, edit, execute, get)
No output schemas documented for any tool. Input schema descriptions are generic ('Asset action to perform', 'Blueprint action') with no enum constraints, format specifications, or validation hints. LLMs cannot infer what structure to expect when calling these tools.
'action' parameter on 26/27 tools is a free-form string with no enum constraint. LLMs must guess internal Unreal action names or hallucinate. Example: 'asset' tool lists possible actions in description ('list, get, create...') but does not constrain via enum. This violates constrained-input pattern.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 35 | <=2025-11-25 | v2 |
Record and playback demo files for testing and video capture. Params: action (record, playback, stop, get_status)
Control editor state, viewport, and settings. Params: action (get_state, set_state, play, stop, pause, screenshot)
Execute native Epic Editor Utility actions wrapped from the ToolsetRegistry. Params: action (execute, list_toolsets)
Manage Fab (formerly Fab.com) marketplace content and downloads. Params: action (list, search, download, install)
Send feedback and diagnostics back to the MCP server. Params: action (send_feedback, send_error, send_log)
Run pre-built named sequences for this project, and keep the record of what was run. ALWAYS check project(action="get_status") first - its 'flows' field lists what's available. If a flow matches the user's request, run it via flow(action="run", flowName="...") instead of composing the sequence by hand. Config reloads on every call - no restart needed. The journal_* actions are the record a run leaves behind: what was done, what it produced, and how it ended. Every flow run writes one automatically; open one by hand for work that is not a flow, so the next session can read back what this one did. The skill_* actions cover the skill packs - the written workflows that say which calls to make in what order - including verifying that the calls they teach still exist. Actions: - run: Execute a named flow from ue-mcp.yml...
Place and manage foliage assets. Params: action (add, remove, paint, get_settings)
Manage gameplay mechanics, mechanics, actors and game rules. Params: action (spawn_actor, destroy_actor, get_actor, set_property)
Manage Gameplay Ability System configuration and abilities. Params: action (create_ability, create_effect, get, list)
Create and edit landscape terrain. Params: action (create, edit, paint, get_height, set_height)
Manage levels, actors, components and game state. Params: action (create, open, save, get, list, add_actor, remove_actor)
Create, edit and inspect materials and material instances. Params: action (create, edit, compile, get, list)
Configure network replication and multiplayer settings. Params: action (get_config, set_config, test_connection)
Create and edit particle effect systems. Params: action (create, edit, compile, get)
Create and manage Procedural Content Generation graphs. Params: action (create, edit, generate, get)
Manage engine and project plugins. Params: action (list, enable, disable, reload)
Manage Unreal project state and query editor status. Params: action (get_status, search_tools, list_modules)
Query engine reflection system for class, property and type information. Params: action (get_class, list_classes, get_properties, get_functions)
Create and edit State Tree behavior systems. Params: action (create, edit, get, compile)
Create and edit UI widgets and UMG canvases. Params: action (create, edit, compile, get, add_component)
Descriptions are template-like and fail to explain WHEN to use each tool or what distinguishes it from similar tools. Example: 'Create, import, inspect and edit assets...' does not say when to call this vs 'blueprint' or 'material'. Baseline for A-grade tools is 50-200 chars with clear selection criteria; most ue-mcp tools are 30-100 chars of generic action listings.
No error handling guidance. Tools declare Risk (READ_ONLY, WRITE) but provide no documentation of when errors occur, how to recover, or what exceptions might be thrown. This violates recovery-guide and error-classification patterns.
'epic' tool wraps 830+ native Unreal actions but declares no guidance on which to call when. Description says 'Execute native Epic Editor Utility actions wrapped from the ToolsetRegistry' but does not explain taxonomy, discovery, or common use cases. Violates tool-discovery pattern.
Parameter descriptions lack examples of valid values or formats. E.g., 'Asset path in Unreal content browser' does not clarify format: is it '/Game/Assets/MyAsset' or 'MyAsset' or 'Game.MyAsset'? LLMs guess and fail.
No indication of which tools are idempotent vs side-effecting. LLMs retry on ambiguous errors, calling 'create' twice might duplicate a Blueprint or asset. Violates idempotent-operation pattern.