UE-MCP

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

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

FirstTerminal
npx ue-mcp init
Claude CodeTerminal
claude mcp add ue -- npx -y --min-release-age=0 ue-mcp@latest '<PATH_TO_UPROJECT>'
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "ue": {
      "command": "npx",
      "args": [
        "-y",
        "--min-release-age=0",
        "ue-mcp@latest",
        "<PATH_TO_UPROJECT>"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "ue": {
      "command": "npx",
      "args": [
        "-y",
        "--min-release-age=0",
        "ue-mcp@latest",
        "<PATH_TO_UPROJECT>"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "ue": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "--min-release-age=0",
        "ue-mcp@latest",
        "<PATH_TO_UPROJECT>"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.ue]
command = "npx"
args = ["-y", "--min-release-age=0", "ue-mcp@latest", "<PATH_TO_UPROJECT>"]
Gemini CLITerminal
gemini mcp add --scope user ue npx -- -y --min-release-age=0 ue-mcp@latest '<PATH_TO_UPROJECT>'

Settings 9

UE_MCP_CONTEXT_STRATEGY Optional: micro, lean or full; overrides context.strategy in ue-mcp.yml. Default micro.
UE_MCP_SERVER_MODE Optional: Set to in-process to skip the per-project daemon. Default daemon.
UE_MCP_FEEDBACK_MODE Optional: interactive, defer or auto-approve; overrides the stored feedback mode. For feedback.
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. Default info.
UE_MCP_HTTP_TOKEN secret Optional: Bearer token for the optional flow HTTP server, used instead of a generated one. For flow.
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. Default 127.0.0.1.

What it does

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.

What it needs

RuntimeNode.js 18+
Runs onmacOS, Windows, Linux
Also
  • Unreal Engine 5.4-5.8 on Windows, 5.6+ on Linux and macOS
  • C++ toolchain to compile the bridge plugin
  • Unreal Editor running with the bridge plugin loaded

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.

Limits

  • Not covered Almost every action needs the editor open with the bridge plugin compiled and loaded. With it closed only file-based reads answer.
  • Platform Linux and macOS need UE 5.6 or newer. Windows supports 5.4 to 5.8.
  • Not covered The epic, dataflow and conversation categories need UE 5.8 or newer.
  • Not covered datasmith and metahuman answer that the plugin is unavailable until DatasmithImporter or MetaHumanCharacter is enabled in the project.
  • Not covered source_control refuses its actions when the editor has no source control provider configured.
  • Limit Two projects pinned to the same port (one bridge.port in two configs, or a global UE_MCP_PORT) can have calls served by the wrong editor.
  • Limit A modal dialog in the editor holds up actions until it is answered, according to the dialog mode in use.
  • Not covered fab imports only cover assets your Fab account already owns.

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.

Who it suits

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.

Tools 31

1 only reads, 28 change things, 2 can delete or overwrite. A ? marks an optional parameter.

tools changes
Gateway shown under the default micro strategy: searches actions, describes them and calls any of themaction: stringcategory?: stringmethod?: stringargs?: objectquery?: stringoffset?: integerlimit?: integer
flow changes
Runs, lists and checks multi-step YAML workflows from ue-mcp.yml
project changes
Connection status, INI config, C++ source parsing, builds, action search and editor sessions
asset deletes
Lists, creates, imports, moves and deletes assets, data tables and mesh settings
blueprint changes
Reads and edits Blueprint graphs, nodes, pins, variables and components, and compiles them
level deletes
Places, moves and deletes actors, lights, volumes and splines in the open level
material changes
Creates materials and instances, edits expression graphs and parameters
animation changes
Anim Blueprints, montages, retargeting, Control Rig and pose analysis
landscape changes
Sculpts terrain, paints weight layers, sets landscape materials and splines
pcg changes
Authors and runs Procedural Content Generation graphs
foliage changes
Foliage types, painting and instance queries
niagara changes
Niagara systems, emitters, modules, renderers and parameters
audio changes
Sound Cues, MetaSounds, attenuation, ambient sound and submixes
widget changes
UMG widgets and editor utility widgets, plus runtime widget inspection
editor changes
Console commands, Python, play-in-editor, viewport, Sequencer, logs, starting and stopping the editor
reflection
Inspects classes, structs, enums, gameplay tags and SaveGame data
gameplay changes
Physics, collision, navigation, behavior trees, EQS, perception and input
gas changes
Gameplay Ability System: attribute sets, abilities, effects and cues
networking changes
Replication, dormancy, relevancy and net priority settings
demo changes
Builds and cleans up a 19-step sample procedural scene
feedback changes
Files tool-gap reports as issues on the public GitHub repository, after approval
statetree changes
StateTree states, tasks, conditions, transitions and bindings
chooser changes
Chooser tables, columns, rows and result assets
plugins changes
Installs, configures and provisions UE-MCP extension plugins
epic changes
Finds and calls Epic's native AI Toolset Registry tools (UE 5.8+)
fab changes
Imports assets from the Fab library you own
datasmith changes
Inspects, imports and reimports .udatasmith scenes from Revit, SketchUp or CAD, and queries their actors
metahuman changes
Creates and dresses MetaHumanCharacter assets, requests the cloud auto-rig and assembles meshes
dataflow changes
Dataflow graph nodes, pins, variables and templates (UE 5.8+)
conversation changes
Dialogue graph nodes, speakers and entry points (UE 5.8+)
source_control changes
File status, history, checkout, add, revert, sync, diff and submit through the editor's provider

Similar servers