MCP for Unity
Lets an assistant control the Unity Editor: build scenes, edit C# scripts, manage assets, run tests.
Drives the Unreal Engine editor from an MCP client: levels, Blueprints, materials, builds and more
By David B (individual) TypeScript Local · stdio Developer tools
69 popularity score ★ 479 ↓ 2.6k/wk
Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
npx ue-mcp initclaude mcp add ue -- npx -y --min-release-age=0 ue-mcp@latest '<PATH_TO_UPROJECT>'{
"mcpServers": {
"ue": {
"command": "npx",
"args": [
"-y",
"--min-release-age=0",
"ue-mcp@latest",
"<PATH_TO_UPROJECT>"
]
}
}
}{
"mcpServers": {
"ue": {
"command": "npx",
"args": [
"-y",
"--min-release-age=0",
"ue-mcp@latest",
"<PATH_TO_UPROJECT>"
]
}
}
}{
"servers": {
"ue": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"--min-release-age=0",
"ue-mcp@latest",
"<PATH_TO_UPROJECT>"
]
}
}
}[mcp_servers.ue]
command = "npx"
args = ["-y", "--min-release-age=0", "ue-mcp@latest", "<PATH_TO_UPROJECT>"]gemini mcp add --scope user ue npx -- -y --min-release-age=0 ue-mcp@latest '<PATH_TO_UPROJECT>'UE_MCP_CONTEXT_STRATEGY |
Optional: micro, lean or full; overrides context.strategy in ue-mcp.yml. |
|---|---|
UE_MCP_SERVER_MODE |
Optional: Set to in-process to skip the per-project daemon. |
UE_MCP_FEEDBACK_MODE |
Optional: interactive, defer or auto-approve; overrides the stored feedback mode. |
UE_MCP_DIALOG_MODE |
Optional: interactive, auto or defer: how modal editor dialogs are handled. |
UE_MCP_LOG_LEVEL |
Optional: debug, info, warn or error. |
UE_MCP_HTTP_TOKEN secret |
Optional: Bearer token for the optional flow HTTP server, used instead of a generated one. |
UE_MCP_DISABLE_UPDATE_CHECK |
Optional: Set to 1 to skip the npm check for a newer release. |
| Set together: bridge | |
UE_MCP_PORT |
Optional: Pins the bridge port for every project, over the per-project derived port. |
UE_MCP_HOST |
Optional: Host the editor bridge is reached on. |
UE-MCP connects an MCP client to a running Unreal Editor. The Node.js server talks over a local WebSocket to a C++ bridge plugin that `npx ue-mcp init` copies into your project, and that plugin calls the editor's own APIs. Through it a client can edit actors, Blueprints, materials, landscapes, PCG graphs, Niagara effects, animation and gameplay systems, run console commands or Python in the editor, and build the project. A few reads (INI config, C++ headers, the asset list) go straight to disk and still work with the editor closed.
Version 1.4.10 registers 29 category tools in src/tools.ts plus the `flow` tool, 30 in all. The three newest are `datasmith` for Revit, SketchUp and CAD scene imports, `metahuman` for MetaHuman Creator characters, and `source_control`, which goes through whatever provider the editor has set up (Perforce, Git, Unity Version Control or Subversion). Each category takes an action name plus that action's parameters. The README counts 2111+ actions, and about 830 of those are Epic's own AI Toolset Registry tools, wrapped as `epic_*` actions on UE 5.8 and later.
By default the client doesn't see those categories directly. The `micro` context strategy advertises one gateway tool called `tools` that searches actions, describes their parameters and calls them (src/surface/context/micro-context.ts). `lean` and `full` put more on the tool list, set with `npx ue-mcp context` or UE_MCP_CONTEXT_STRATEGY. `flow` runs multi-step YAML workflows kept in `ue-mcp.yml` next to the .uproject, with retries, rollback and optional shell steps.
With a single project the launch command hands off to a background daemon for that project. It holds the editor connection, so the client survives editor restarts. The bridge port is derived from the project path. The bridge host defaults to 127.0.0.1, and src/core/env.ts reads UE_MCP_HOST to point it somewhere else, a setting the README never mentions. Pass several .uproject paths to reach several editors at once.
| Runtime | Node.js 18+ |
|---|---|
| Runs on | macOS, Windows, Linux |
| Also |
|
Unreal Engine 5.4-5.8 on Windows, or 5.6+ on Linux and macOS (the `epic` category needs 5.8+). Node.js 18 or newer. A C++ toolchain, because the bridge plugin compiles on first editor launch: Visual Studio with the C++ workload on Windows, Xcode command line tools on macOS. Run `npx ue-mcp init` in the project first to deploy the bridge plugin and enable PythonScriptPlugin and other needed plugins, then restart the editor once.
Almost every action needs the editor open with the bridge plugin compiled and loaded; with the editor closed only the file-based reads and offline actions answer. The bridge is a C++ plugin, so a project without a working C++ toolchain cannot use it. Dataflow, Conversation and the `epic` category need UE 5.8+, and Linux and macOS need UE 5.6+. Two projects pinned to the same port (the same bridge.port, or a global UE_MCP_PORT) can have calls served by the wrong editor. A modal dialog in the editor blocks every action until it is answered. Fab imports only cover assets your account already owns.
Suits Unreal developers and technical artists who want an assistant to do editor work in a real project: set up scenes, wire Blueprints, build materials and VFX, and compile and report errors, with write guards and flow rollback to limit damage. It runs entirely on your machine against your own editor, with no account needed. It is not a fit if you cannot build C++ plugins, are on an engine older than 5.4 (5.6 off Windows), or want read-only access, since most tools change the project. It is a third-party project, not published by Epic Games.
1 only reads, 28 change things, 2 can delete or overwrite. A ? marks an optional parameter.
tools changesaction: stringcategory?: stringmethod?: stringargs?: objectquery?: stringoffset?: integerlimit?: integerflow changesproject changesasset deletesblueprint changeslevel deletesmaterial changesanimation changeslandscape changespcg changesfoliage changesniagara changesaudio changeswidget changeseditor changesreflectiongameplay changesgas changesnetworking changesdemo changesfeedback changesstatetree changeschooser changesplugins changesepic changesfab changesdatasmith changesmetahuman changesdataflow changesconversation changessource_control changes