UEAgent is an Unreal Engine 5.7 and 5.8 editor plugin that lets AI agents operate the editor through the Model Context Protocol. The plugin is the server: it serves Streamable HTTP from inside the editor, with no Python or Node process in between.
Why UEAgent
- The whole engine, not a demo. Blueprints and their graphs, materials, animation (AnimBP, montages, IK, Pose Search), Niagara, landscapes and foliage, World Partition, PCG, Sequencer, UMG/CommonUI/MVVM, GAS, AI (Behavior Trees, StateTree, EQS, Smart Objects), audio and MetaSounds, USD and Interchange, PIE control and inspection: see the tool reference.
- Verified, not assumed. An editor call that answers
success: trueproves nothing, so every call goes through a contract:- preconditions refuse the calls known to crash or freeze the editor, and say what to do instead;
- readback re-reads the state after the call, and reports as failed a write that did not stick, a zero that proves nothing or a change that landed in the wrong PIE world.
- Safe with your content. Every tool call is one undo step, named after the tool, so Ctrl+Z reverts it. Vendored libraries listed as Read Only Content Roots cannot be saved, renamed, moved or deleted by any tool, and calls that are unreliable while Play-in-Editor runs are refused while it runs.
- Built for real sessions. Several agents can share one editor: protocol work runs on network threads, and every tool call runs on the game thread through one queue. The Activity panel (status bar > MCP > Activity) lists each call with its duration and outcome.
flowchart LR
A["AI agent<br/>Claude Code, Cursor, ..."] -- "MCP over HTTP" --> P
subgraph E["Unreal Editor + UEAgent"]
P["Preconditions<br/>refuse known crashes"] --> H["Tool<br/>1,500+ of them"] --> R["Readback<br/>re-read the state"]
end
R -- "verified result" --> A
How a server inside the editor differs from one outside it, and the questions to ask any MCP server for Unreal: Choosing an MCP server.
Quick start
Let your agent do it. Open Claude Code, Cursor, Codex or another agent in your project's folder and paste:
Install the UEAgent plugin in this Unreal Engine project and connect yourself to it, following https://raw.githubusercontent.com/CarlxsMG/UEAgent/main/llms-install.md
It does the steps below, checks the download's SHA-256 and asks before it changes anything; you reload its MCP servers at the end. See llms-install.md. Or by hand:
-
Install. Download the latest
UEAgent-*-UE5.8-Win64.zip(or-UE5.7-, for your engine) from Releases and unzip it into<YourProject>/Plugins/, or build it from source. -
Open the project. The status bar shows MCP · 55561 with a green dot once the server is up (if it does not, see Troubleshooting).
-
Connect an agent. From that status-bar menu, Connect Claude Code to this project writes the
unrealentry of your project's.mcp.json, and Connect another client does the same for Cursor, VS Code, Antigravity CLI and OpenCode (and copies the command for Codex). Or, for yourself only:claude mcp add --transport http unreal http://127.0.0.1:55561/mcpAny MCP client that speaks Streamable HTTP can connect to the same URL: see Clients.
-
Ask. For example: "Create a Blueprint actor BP_Door with a door mesh and a box trigger, and open the door with a timeline when the player overlaps the trigger."
What you can ask
More in Examples.
Clients
By default the server lists its 11 core tools, and four tools that search, describe and run the rest or
add a pack or a whole domain to the list. ?tools=all at the end of the URL lists every tool, and
?tools=compact only three: see tool lists.
Directories
UEAgent is listed in:
- the official MCP Registry, as
io.github.CarlxsMG/UEAgent, which other directories and clients read from; - Glama, the MCP server directory;
- awesome-mcp-servers, under Gaming;
- awesome-unreal, under Editor.
Skills
UEAgent ships agent skills in the open Agent Skills format, for Claude Code, Codex, Cursor, VS Code, Antigravity CLI, Gemini CLI and OpenCode. Install them into the project from the editor's status bar: MCP · 55561 > Skills. They come with the plugin, so they always match its tools.
The client loads them by itself when a request matches. The server also serves them as MCP prompts and resources, ueagent://guide among them, for a client without the skills installed. More in Skills.
Documentation
Also on the web, with search and a tool explorer: carlxsmg.github.io/UEAgent.
Requirements
- Unreal Engine 5.7 or 5.8 on Windows (Win64), the only platform the plugin declares. Each release has a zip for each engine; a few tools need 5.8 (see the FAQ).
- To build from source: Visual Studio 2022 with the C++ toolchain.
- The plugin enables the engine plugins its tools use (see
UEAgent.uplugin): among them PythonScriptPlugin, EditorScriptingUtilities, Niagara, PCG, StateTree, ControlRig, IKRig, PoseSearch, Interchange and USD. Game Features is the exception: the plugin does not turn it on, and its five tools work once your project enables it.
Build from source
Copy or clone this repository to <YourProject>/Plugins/UEAgent, then open the project and let
Unreal build it, or build the editor target from your IDE. When the editor starts, the log shows
MCP HTTP server started on http://127.0.0.1:55561/mcp (... tools ...).
Updating
MCP · 55561 > Check for updates asks GitHub for the latest release. If it is newer, Download and
install downloads the zip for your engine, checks it against the release's SHA256SUMS.txt, and
installs it when the editor closes, or right away with Restart now, which closes the editor,
installs it and opens the editor again. The previous version is kept in Saved/UEAgentUpdate/Backup,
and if the new one cannot be moved in, the previous one is put back.
A git clone is updated with git pull, and a copy installed from Fab from the Epic Games Launcher.
After an update, reconnect your client so it lists the tools again.
Settings
Editor Preferences > Plugins > UEAgent (per user):
Project Settings > Plugins > UEAgent (shared, saved to Config/DefaultEditor.ini):
Console commands
Security
- The server listens on 127.0.0.1 only. It also refuses a request whose
Hostis not the loopback (DNS rebinding) or whoseOriginis a web page. - Without an Auth token, any process on the machine can call it. Set one on a shared machine;
the
.mcp.jsonentry reads it from${UEAGENT_TOKEN}. - The tools act with the editor's rights: they run Python, read and write files, save, rename and
delete assets, edit
.inifiles and launch processes (a package build, a dedicated server). Connecting an agent gives it the editor. Read Only Content Roots keeps the tools from saving, renaming, moving or deleting anything under the roots you list.
To report a vulnerability, see SECURITY.md.
Privacy
UEAgent sends nothing about you or your project: no telemetry, no analytics. Its only connection of its own is to GitHub, to look for a newer release: when you click Check for updates, or once a day on startup if you turn Check for updates at startup on (it is off). That request says which version of UEAgent asks, and nothing else. The server only listens on 127.0.0.1, and a tool's answer goes to the MCP client you connected, on the same machine. What that client then sends to its model provider is up to the client.
Accessibility
What the editor UI and the documentation offer for accessibility, what they lack, and how to report a barrier: see ACCESSIBILITY.md.
Contributing
Questions and ideas go to Discussions. Bug reports and pull requests are welcome: CONTRIBUTING.md explains how the code is organized, how a tool is added and what is checked before a change is merged.
License
UEAgent is released under the MIT License.
Trademarks
Unreal and Unreal Engine are trademarks or registered trademarks of Epic Games, Inc. in the United States and elsewhere. UEAgent is an independent project, not affiliated with or endorsed by Epic Games.