Unreal Engine Model Context Protocol - AI Assistant Integration for Unreal Engine with dynamic tool loading from Python
UEMCP has 16 tools with mixed quality. Most tools have descriptions and schemas present, but critical issues emerge: (1) Naming inconsistency, tools use both verb_noun (viewport_mode, actor_delete) and noun_verb (asset_list, level_actors), creating LLM disambiguation burden. (2) Parameter descriptions are inconsistent, some parameters lack descriptions entirely (e.g., batch_spawn's 'actors' array has no item-level schema details; viewport_fit's 'padding' has no range guidance). (3) Output schemas are completely undocumented, no tool documents what fields it returns, forcing LLMs to guess at response structure for chaining. (4) Error handling is absent, no tool documents failure modes or recovery paths. (5) The server infers tool definitions from Python implementations via ManifestGenerator, and while schemas ARE visible in the rubric data provided, the actual code shows only partial type extraction logic. This falls into the 'inferred registration' category where confidence is reduced. Overall, this is a competent but incomplete implementation landing squarely in the C-/D+ range.
Delete an actor from the level
Snap one actor to another actor's socket
Import assets from external source
Get comprehensive information about an asset
List assets in the project
Spawn multiple actors in a single batch operation
Get actors in the current level
Output schemas completely undocumented. No tool declares what fields it returns. LLMs cannot plan downstream calls or extract structured data from responses.
Naming convention inconsistent. Tools mix verb_noun (viewport_mode, actor_delete) with noun_verb (asset_list, level_actors, level_outliner). Inconsistency forces LLMs to reason about intent rather than pattern-match on name structure.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | C | 60 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 53 | - | v1 |
Get the World Outliner structure
Validate the placement and alignment of actors
Get information about the current Unreal Engine project
Test connection to Python listener and Unreal Engine
Control viewport camera position and rotation
Fit viewport to selected actors or filter
Change viewport view mode
Change viewport render mode
Capture a screenshot of the viewport
Error handling completely absent. No tool documents what can fail, how to recover, or whether errors are retryable. Agents cannot self-correct on failures.
batch_spawn parameter 'actors' (array of objects) lacks item schema details. No documentation of required/optional object properties, structure, or constraints. LLMs cannot structure valid requests.
viewport_fit 'padding' parameter has no range constraints or units documented. Unclear whether value is pixels, percentage, or world units, and whether negative values are valid.
Tool definitions are inferred from Python implementations via ManifestGenerator (plugin/Content/Python/ops/tool_manifest.py). Type extraction is incomplete, the code shows partial Union/Optional handling but no validation that generated schemas match runtime behavior. Confidence in schema accuracy is reduced.
Destructive tools (actor_delete, asset_import, batch_spawn, actor_snap_to_socket) lack confirmation-request patterns. No dry-run option, no preview, no explicit confirmation step. Agents can delete or modify without a safety gate.
Viewport tools (viewport_mode, viewport_render_mode, viewport_camera, viewport_fit) have vague mode/parameter descriptions. 'Operation mode' does not enumerate valid values. LLMs will guess at enums like 'lit', 'unlit', 'wireframe' vs 'wireframe', 'solid', 'shaded'. Enums must be explicit.
Chaining support unclear. If batch_spawn returns spawned actor names/IDs, is that documented? If actor_delete requires actorName, does batch_spawn response include names of spawned actors? Missing chaining IDs force extra discovery calls.