MCP server for Unreal Engine project automation, providing tools for building, cooking, running automation tests, and executing Python scripts in Unreal projects
Tools have complete input schemas with types and descriptions, but descriptions are minimal (10-50 chars) and lack LLM-optimized guidance. No output schemas documented. Tool names follow verb_noun pattern but lack clarity on when to use each vs. alternatives. Parameters are well-typed but lack constraints (enums, ranges). Error handling is absent, no recovery guidance or actionable error messages. Security concerns: tools accept file paths and execute external processes without visible input sanitization or permission gates.
Build an Unreal project target through UBT without opening editor windows
Read-only Unreal MCP project and endpoint probe
Run an Unreal BuildCookRun smoke cook without opening editor windows
Run Unreal Automation Tests through UnrealEditor-Cmd without opening editor windows
Run an Unreal Python commandlet through UnrealEditor-Cmd without opening editor windows
Descriptions are too short (10-50 chars) and lack LLM-optimized guidance. E.g., 'Build an Unreal project target through UBT without opening editor windows' does not explain WHEN to use build_unreal vs. cook_unreal, what prerequisites exist, or what the output contains.
No output schemas documented. LLMs cannot infer what fields to expect from tool responses (e.g., does build_unreal return build_time, artifact_path, warnings?). This forces agents to guess and wastes tokens parsing unstructured output.
No error handling or recovery guidance. Tools accept file paths and execute external processes but provide no validation, no actionable error messages, and no guidance on retryability. E.g., if a .uproject is not found, the error should suggest search_uproject() or list available projects.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | 2026-07-28+ | v2 |
Parameters lack constraints and enums. E.g., 'platform' accepts free-form strings (default 'Win64') but should declare valid values: Win64, Mac, Linux, Android, iOS. 'configuration' should be an enum: Development, Shipping, Test. Free-form strings invite hallucinated invalid values.
Tool names lack disambiguation. 'run_unreal_automation' vs 'run_unreal_python' are similar; LLMs may conflate them. Descriptions do not explain: when to run automation tests vs. Python scripts, what each returns, or how they differ in execution model.