The short answer
Use Epic's plugin if your project is on UE 5.8, everyone works on one machine, and you want a first-party feature you can switch on in the Plugin Browser and extend with your own Python or C++ tools.
Use EngineWire if you are on UE 5.0 to 5.7, if your client only speaks stdio, or if you want the editor protected by a capability token, scoped tokens and per-call consent for destructive work. On 5.8, EngineWire can also call Epic's editor toolsets through its own gateway, behind those same checks.
Both are free. The facts about Epic's plugin below come from Epic's documentation page, Unreal MCP in Unreal Editor (UE 5.8), read on 9 October 2026. The EngineWire facts come from the project repository and its changelog.
Side by side
| Epic Unreal MCP | EngineWire | |
|---|---|---|
| Status | Experimental. Epic: "many features are incomplete or missing. APIs and data formats are subject to change." | 0.6 is a beta (npm @beta); 0.5.30 is the latest stable release |
| Engine versions | Unreal Engine 5.8 | UE 5.0 to 5.8 (source-compatibility target; see versions) |
| Install | Engine plugin: enable Unreal MCP and All Toolsets in Edit › Plugins | Project plugin: copy McpAutomationBridge into Plugins/ and build (needs a C++ project or prebuilt binaries) |
| Transport | HTTP and Server-Sent Events only; stdio and WebSocket are not supported | Native Streamable HTTP in the plugin, or stdio through the Node.js server |
| Default endpoint | http://127.0.0.1:8000/mcp | http://127.0.0.1:3000/mcp (native) or WebSocket 127.0.0.1:8090 (stdio route) |
| Authentication | None. Epic: "There is no authentication layer; the plugin is not safe to expose beyond the local machine." | Per-project capability token required by default; optional scoped tokens (Read, Write, Destructive) with path, project and rate limits |
| Destructive actions | Not described in Epic's docs | 62 capabilities need a per-call consent grant; console commands that chain or quit are blocked |
| Remote access | Loopback only; non-loopback Origin headers rejected | Loopback by default; LAN access is opt-in and refused without the token; TLS on the WebSocket route |
| Context use | Tool Search on by default: three meta-tools (list_toolsets, describe_toolset, call_tool) | One gateway tool, unreal, with search, describe, execute, configure |
| Client config | ModelContextProtocol.GenerateClientConfig writes files for ClaudeCode, Cursor, VSCode, Gemini and Codex | You add one config entry by hand (copy-paste snippets for Claude, Cursor, VS Code) |
| Custom tools | Author toolsets in Python or C++ through the Toolset Registry; new C++ UFUNCTIONs need an editor restart | Add a capability record, handler and route in the open-source plugin (guide) |
| Outside the editor | Cooked and shipping builds can host an MCP server via IModelContextProtocolModule::StartServer() | Editor-only; never packaged into your game |
| Telemetry | ModelContextProtocol.EnableAnalytics console variable, default true | No telemetry |
| License / price | Part of Unreal Engine, under Epic's engine terms | MIT, free |
When Epic's plugin is the better choice
- You are on 5.8 and want zero setup. Enabling two engine plugins is simpler than adding and compiling a project plugin, and Epic's console command writes your client config for you.
- You want to write your own tools in Python. The Toolset Registry turns a decorated Python class into MCP tools, and the same toolsets serve Epic's other AI features.
- You need MCP in a cooked or shipping build. Epic's runtime modules can host a server outside the editor. EngineWire is deliberately editor-only.
- You use Gemini CLI or Codex CLI and want their config generated by the engine.
- You are building for UEFN. Epic offers MCP for UEFN; EngineWire does not support UEFN.
When EngineWire is the better choice
- Your project is on UE 5.0 to 5.7. Epic's plugin is part of 5.8; EngineWire targets every UE 5 minor.
- Your client only launches local commands. Claude Desktop and similar clients can use EngineWire's stdio server, which finds the token in your project by itself. Epic's server does not support stdio.
- You don't want any local program to drive the editor. EngineWire refuses requests without the project's token, compares it in constant time and never logs it. Scoped tokens can be read-only, confined to
/Game/Sandbox/, or rate-limited. - You want deletes to be deliberate. Destructive capabilities need a single-use consent grant from
describeon each call. See the security model. - You want breadth on older engines. Nearly 400 capabilities cover Blueprints, UMG, materials, Niagara, PCG, GAS, Behavior Trees, State Trees, Sequencer, MetaSounds, Play-In-Editor and packaging.
Using Epic's toolsets through EngineWire
Since 0.6.0-beta-c (2 October 2026), EngineWire can run Epic's 5.8 editor toolsets through its own gateway. control_editor.list_editor_toolsets lists the tools in Epic's Toolset Registry (StateTree, PCG, GAS, Niagara, UMG, MVVM and more, as their plugins are enabled), and call_editor_tool runs one. Tools named for deleting or resetting go through call_editor_tool_destructive, which needs the Destructive scope and elevated consent; tools that would run scripts or console code are never called. Before 5.8 these answer EDITOR_TOOLSETS_UNAVAILABLE.
Third-party comparison pages written before that release, such as the ue-mcp.com matrix (audited 24 September 2026), still list EngineWire as not wrapping Epic's tools.
The two plugins use different default ports (8000 for Epic, 3000 for EngineWire's native server).
FAQ
Is EngineWire made by Epic?
No. EngineWire is an independent open-source project (GitHub ChiR24/Unreal_mcp), not affiliated with Epic Games. The name collision is historical: the repository was called Unreal MCP before Epic's plugin shipped.
Does Epic's plugin cost anything?
It ships with Unreal Engine 5.8. EngineWire is MIT-licensed and free. With either, you pay only for your AI client or model.
Which is more stable?
Neither is final. Epic labels its plugin Experimental; EngineWire's 0.6 line is a beta and 0.5.30 is the latest stable release.
Can I switch later?
Yes. Both are MCP servers, so switching is a change of client config. Prompts that rely on a specific tool's names would need updating.