188 tools across 37 domains. Give Claude full control over Blueprints, materials, levels, sequencer, AI, and more — through natural language.
Features
Built for real game development workflows — not just demos. Every failure mode has a recovery path.
13 typed UMA_E_* codes replace raw string errors. Every failure includes error code, tool name, and structured details for reliable programmatic handling.
Auto-disables tools after 5 consecutive failures. Self-heals after a 60-second cooldown. A ping command resets the circuit without a restart.
30-second default, up to 5 minutes for builds and long workflows. 16 long-running tools receive extended timeouts automatically — no configuration needed.
Parse errors trigger automatic fix-and-retry cycles. Up to 3 attempts before reporting to the developer — most compilation failures resolve without human intervention.
Destructive operations require explicit human approval via UE editor dialog. 60-second timeout with auto-reject on no response keeps your project safe.
Intent matching with 60+ UE synonym groups. Learns from workflow outcomes and error resolutions — gets smarter with every session.
Architecture
A clean separation between AI reasoning, protocol bridging, engine interfacing, and API execution.
Layer 01
Interprets natural language, decides tool sequences, applies context intelligence for workflow matching and error recovery.
Layer 02
188 registered tools across 37 domains. Auto-registration architecture with domain index.ts modules, ToolHookManager, custom tool discovery, and extensible Python script support.
Layer 03
Blueprint graph serializer, Python bridge for 166 automation scripts, human approval gate for destructive operations, and Live Coding integration.
Layer 04
Direct C++ and Python API calls into the engine. All editor API calls dispatched via GameThread to satisfy UE's thread-safety requirements.
Tools
Every major Unreal Engine system exposed through a single natural language interface.
Changelog
Extensibility
server.ts refactored from 1490 to 158 lines. Tool registrations moved to 37 domain index.ts modules via auto-registration. ToolHookManager for pre/post execution hooks. Custom tool discovery from custom-tools/ directory. Custom Python scripts via Content/Python/uma_custom/. Two new tools: python-customExecute and python-listCustomScripts (188 total tools, 1228 tests).
Security Hardening
WebSocket authentication via shared secret with crypto.timingSafeEqual. Sliding-window rate limiting wrapping all 183 tools. Enhanced path traversal prevention blocking null bytes, encoded traversals, and UNC paths. Asset path validation in safety gate. Input validation audit across all tools.
Observability
JSON structured logging with LOG_FORMAT env var and withContext(). OpenTelemetry-compatible tracing with W3C traceId/spanId and OTLP export. Performance dashboard with p50/p95/p99 latency percentiles. Error rate alerting via webhook with sliding window and cooldown.
Error Handling & Resilience
Introduced 13 typed UMA_E_* error codes replacing raw string errors. Added circuit breaker with 5-failure threshold and 60s cooldown. Extended timeouts for 16 long-running tools. Reconnection tracking.
Get Started
Unreal Master Agent runs as a local MCP server. No accounts, no cloud dependency. Add it to Claude Code's config and it activates immediately in your next session.
The UE plugin connects via WebSocket on port 9877. Once connected, Claude can read your entire project structure, manipulate Blueprints, spawn actors, edit materials, and run Python scripts — all through natural language.
.claude/mcp.json in your project or home directory
Plugins/ folder
{ "mcpServers": { "unreal-master": { "command": "npx", "args": [ "-y", "unreal-master-mcp-server" ], "env": { "UE_WS_PORT": "9877" } } } }