Puget Systems’ tester asked Claude to build a six-room level in Unreal Engine 5.8. It took a little over five minutes. Then they asked for walking controls, and the player couldn’t move at all.
That split tells you how to use Epic’s new MCP server. It handles setup work well and fails when it has to design a system alone. It’s experimental and has no password, and connecting takes six steps. Everything below comes from Epic’s docs or from named testers.
Quick answer
Enable the Unreal MCP and All Toolsets plugins in Edit > Plugins and restart. Run ModelContextProtocol.StartServer in the editor console, then ModelContextProtocol.GenerateClientConfig ClaudeCode. Open a terminal in your project root and start Claude Code. Run /mcp to confirm unreal-mcp is connected. The server listens on http://127.0.0.1:8000/mcp, accepts local connections only, and Epic labels it Experimental.
Jump to: Setup · Command reference · First safe session · What works · Fixes · Cost · Security · Alternatives · FAQ
What the Unreal Engine 5.8 MCP server is#
MCP (Model Context Protocol) is an open standard that lets an AI client call named functions in another program. Epic’s plugin, Unreal MCP, runs an MCP server inside the editor process. Claude Code connects over local HTTP and calls tools. Epic’s examples include spawning actors, configuring lighting, creating material instances, inspecting Slate widgets and running automation tests.
Epic shipped it with UE 5.8 on June 17, 2026. The docs mark it Experimental, warn that many features are incomplete or missing, and say APIs and data formats can change at any time. The 5.8.1 hotfix already fixed MCP bugs, so stay on the latest 5.8.x release. For the wider workflow around it, read our guide to Claude for game development.
What you need#
- Unreal Engine 5.8 (the plugin is part of that release).
- Claude Code. Epic’s config generator also writes files for Cursor, VS Code, Gemini and Codex.
- A project on its own Git branch, or a throwaway project.
Set up the Unreal Engine 5.8 MCP server in 6 steps#
- Enable the plugins. Open Edit > Plugins, search “Unreal MCP” and tick Enabled, then do the same for “All Toolsets”. Restart when prompted.
You should see: both plugins checked after the restart. Toolset Registry turns on by itself.
Skip All Toolsets and you get a server with almost nothing to call. Epic’s docs say the tools come from that plugin, and a forum user who skipped it reported seeing a single toolset. - Start the server. Either turn on Edit > Editor Preferences > General > Model Context Protocol > Auto Start Server, or open the console (backtick key) and run:
ModelContextProtocol.StartServer
You should see: the bind address, port and path in the Output Log. A failed bind shows up there too. - Generate Claude’s config. In the same console:
ModelContextProtocol.GenerateClientConfig ClaudeCode
You should see: a.mcp.jsonfile in your project root. Run the command again if you change the port. - Start Claude Code from the project root. Open a terminal in the folder that holds your
.uprojectand.mcp.json, then runclaude. Do it after the editor is up. From any other folder, Claude won’t find the server. - Approve and check the connection. Claude Code asks you to approve servers from a project’s
.mcp.json. Approve it, then run/mcp.
You should see:unreal-mcplisted as connected. - Ask a read-only question. Epic’s own test: “What actors do I have selected?”
You should see: an answer that matches your editor, which confirms Claude reads live editor state.
The generated file looks like this:
{
"mcpServers": {
"unreal-mcp": {
"type": "http",
"url": "http://127.0.0.1:8000/mcp"
}
}
}
Optional: Epic publishes a Claude Code plugin with usage guidance for the server. Install it inside Claude Code with /plugin install unreal-engine-skills-for-claude-code@claude-plugins-official. The repo says its start-up hook needs bash on your PATH. On Windows that means Git Bash or WSL. The MCP tools work without it.
Commands, settings and defaults#
| What | Value | Default |
|---|---|---|
| Plugins | Unreal MCP (id ModelContextProtocol), All Toolsets, Toolset Registry | Registry auto-enables |
| Auto Start Server | Editor Preferences > General > Model Context Protocol | Off |
| Port and path | Set in the same panel | 8000 and /mcp |
| Enable Tool Search | tools/list returns list_toolsets, describe_toolset, call_tool | On |
ModelContextProtocol.StartServer [port] | Starts the server | |
ModelContextProtocol.StopServer | Stops it and closes all sessions | |
ModelContextProtocol.RefreshTools | Re-reads registered toolsets | |
ModelContextProtocol.GenerateClientConfig | Takes ClaudeCode, Cursor, VSCode, Gemini, Codex or All | |
| Launch flags | -ModelContextProtocolStartServer, -ModelContextProtocolPort=N | |
ModelContextProtocol.EnableAnalytics | Gates telemetry | true |
| Transport | HTTP and SSE only. No stdio, no WebSocket. | |
| Access | Loopback only, no authentication | |
| Execution | Tool calls run one at a time on the game thread |
Turn on logging with Log LogModelContextProtocol Verbose. To test the server without Claude, run npx @modelcontextprotocol/inspector and point it at the server URL over Streamable HTTP.
Your first safe session#
Epic’s plugin README says MCP tools edit live objects and can change, move or delete tracked assets in a single call. So you start small.
- Commit or branch first. One clean commit gives you a way back.
- Read before you write. Ask Claude to list the actors in your level. Compare the count with your World Outliner. If they differ, stop and find out why.
- Make one reversible change. Spawn a single cube, or rename one actor.
- Test undo. Press Ctrl+Z. Epic’s 5.8.1 notes changed how transactions behave during tool scripts, so check that undo works for the kind of change you plan to make.
- Save, then read the diff. Look at what changed on disk. Blueprint edits need this most (see the fixes table).
What it can and can’t do#
Puget Systems published a detailed hands-on test. Their tester used Claude Opus 4.8 on the default Blank Game project and stayed hands-off on purpose across four tasks.
| Task | Result |
|---|---|
| Remove the default landscape | Worked without issue. |
| Greybox level: hallway, 6 rooms, lights, windows | Worked. A little over five minutes. Layout matched the prompt. It added hallway lights nobody asked for. |
| Blueprint that lights each room when the player enters | Worked in play. It also turned the light off on exit, which wasn’t requested. |
| Change a free camera into a walking character | Failed. The request ran over ten minutes and the player couldn’t move afterward, and a 15-minute fix attempt changed nothing. |
| Procedural city with PCG | Failed. Claude placed static meshes instead of building a PCG graph, then said it can’t create PCG graphs from scratch. After a couple of hours of iteration the tester ran out of tokens. |
The pattern is simple. It’s good at setup work and weak at architecture. Puget’s conclusion was to build a minimal structure by hand first, then let MCP extend it. The tester also admits the walking-controls prompt was vague, and results will shift with your model and prompt.
Epic documents toolsets for the level and camera (SceneTools), actors and their components (ActorTools), materials and material instances, and Blueprints. It also lists Sequencer, automation tests and Slate inspection. It doesn’t publish individual tool names. Ask Claude to run list_toolsets and you’ll see what your build exposes.
Troubleshooting: symptom, cause, fix#
| Symptom | Cause | Fix |
|---|---|---|
| Connected, almost no tools | All Toolsets is off | Enable it and restart. One forum user fixed it by adding {"Name":"AllToolsets","Enabled":true} to the Plugins list in the .uproject. |
Claude doesn’t list unreal-mcp | Agent started outside the project root, or before the editor | Start the editor first, launch Claude from the root, reconnect. |
| Claude Code skips the server entry | The entry has a url but no type | Add "type": "http". Anthropic’s docs treat a missing type as a stdio server. |
| Connection drops | URL ends at :8000 | Use the full http://127.0.0.1:8000/mcp. A forum user reported this. |
| Server won’t start | Port 8000 is taken | Check the Output Log. Change the port in Editor Preferences or with -ModelContextProtocolPort=N, then regenerate the config. |
| Tool schema looks stale | Cached toolset list | Run ModelContextProtocol.RefreshTools and reconnect. |
| New C++ tool missing | Live Coding doesn’t add new UFUNCTIONs | Restart the editor. |
| Error lines in the log on connect | A new client probes server/discover. The 5.8.3 server answers MethodNotFound and the client falls back. | Ignore it. A forum reporter says the connection works normally. |
| Edit reported success, gone after save | Reported for BlueprintTools.set_pin_value in 5.8.3: the Blueprint isn’t marked dirty | Save, close and reopen the asset to confirm (inferred check). |
Cost, speed and token use#
Puget’s waits ran five to ten minutes per request, and some passed fifteen. You can’t keep working in the same project while Claude edits it, so attention drifts.
On a Claude Pro Team plan, the tester used up their session limit before midday and about 15% of the weekly allocation across four small tests. Their estimate was that regular use would burn through every token within a couple of days. Your numbers depend on the model and how tight your prompts are.
Security#
- Epic’s docs say the server is loopback-only, has no authentication and isn’t safe to expose. Epic’s README adds that any process running as your user can connect. Don’t forward the port.
- Epic’s API page describes
ProgrammaticToolsetas a sandboxed script for chaining tools, while the plugin README says itsexecute_tool_scriptruns arbitrary Python in the editor. The two descriptions disagree, so plan for the stricter one. - Puget’s tester saw Claude capture level screenshots to check its own work, so images of unreleased art can reach the model. Keep sensitive art and keys out of the session if that matters to you.
- Telemetry is on by default. The
EnableAnalyticsvariable gates it, and Epic doesn’t document what it sends. - Epic’s README warns against
--dangerously-skip-permissionswith this plugin loaded, so keep Claude Code’s approvals on.
Build your own tools#
If Claude can’t do a job, you can add the tool yourself. Epic’s recommended route is a toolset class. In Python it derives from unreal.ToolsetDefinition, and each tool is a static method marked with @toolset_registry.tool_call. Type hints and Google-style docstrings become the schema Claude sees. In C++ you derive from UToolsetDefinition and mark functions AICallable.
Python files live under a plugin’s Content/Python/ folder. After a change, run ModelContextProtocol.RefreshTools. Epic’s Claude Code plugin includes a create-toolset skill that scaffolds one. The code samples are in Epic’s Unreal MCP docs.
Official plugin vs third-party servers vs Unity#
| Option | Fits | Catch |
|---|---|---|
| Epic’s Unreal MCP | Most people on UE 5.8 | Experimental, no auth, tool list unpublished |
| VibeUE | UE 5.8 users who want more tools | Extends Epic’s plugin, so you still need it |
| ue-mcp | UE 5.4 to 5.8 (per its README) | On 5.8 it wraps Epic’s toolsets, so you still run Epic’s registry |
| EngineWire (Unreal_mcp) | Older engines. Its README claims UE 5.0 to 5.8. | Also sold on Fab. Its own capability counts vary between pages. |
| chongdashu/unreal-mcp and runreal/unreal-mcp | UE 5.4 and 5.5 projects | Last commits April and June 2025 |
| No MCP | Claude Code editing your C++ and Python only | No live editor access |
Unity is different. Its official route now runs through the Unity CLI, and our Claude Code Unity MCP setup covers it. For how Unreal stacks up against Godot and Unity under Claude Code, see Claude Code for game development.
Who should use it#
Use it now if you’re on UE 5.8, you know your project well, and you want help with greyboxing, repetitive setup and wiring simple Blueprints. Keep Git on and review every change.
Wait if you’re new to Unreal and hoping the AI fills the gap. Puget’s tester lost track of what the AI had built and couldn’t repair it alone. Wait too if your studio restricts where project data can go, or if you need PCG graphs or player input built from scratch.
Your next step is to run the first safe session on a branch. If the actor count matches your Outliner and undo works, you’re ready for real work.
FAQ#
Does UE 5.8 include MCP by default?#
The plugin ships with the engine, but you enable it yourself, and Auto Start Server is off until you turn it on.
Is it free?#
The plugin is part of the engine. The model side costs money. Claude Code needs a Claude plan or API credits, and Puget’s tester burned through plan limits fast.
Does it work with Cursor, Gemini or Codex?#
Epic’s config command writes files for Cursor, VS Code, Gemini and Codex as well as Claude Code, and its docs name Cursor and the MCP Inspector as example clients.
Can it run on a remote machine?#
Not safely. Epic says the server is built for local use, with no authentication and loopback binding.
Does it replace Blueprint knowledge?#
No. Puget’s tester says it cuts the effort of getting something in place, but you still need to understand what it built.