Generated banner for Unreal MCP
Generated logo for Unreal MCP

Unreal MCP

Epic GamesOfficialPublished by Epic Games

  • Skill
  • Tool integration
  • Software development
  • MIT
  • No issues found

From the author

Use this skill to perform actions inside an Unreal Engine project via a live-editor MCP connection. Trigger when the user wants to change, query, or run something in their Unreal Engine project, not for conceptual or docs questions. Concrete triggers: spawn/move/duplicate/transform actors in a level, open a `.uproject`, add things around a PlayerStart, create or edit a Blueprint/Widget/Material/Niagara/Control Rig/Sequencer/Behavior Tree/GAS ability, read or write properties on actors (e.g. `bIsLocked` on `BP_DoorActor`), Live Coding recompile after editing C++ (`AActor`, `UMyComponent::Method`, `UPROPERTY`), or modify Static/Skeletal Mesh assets. Treat as Unreal context even without the word "Unreal": asset prefixes `BP_`, `WBP_`, `M_`, `MI_`, `NS_`, `CR_`, `SK_`, `SM_`, `ABP_`; UE C++ types/macros; `.uproject`; Content Browser; Outliner; PlayerStart; "in my game" plus UE signals. Skip for: pure conceptual/docs questions, Unity, Godot, or unrelated uses of "blueprint"/"sequencer"/"widget".
— the description by Epic Games

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

The unreal-mcp skill enables an AI agent to interact directly with a running Unreal Engine editor instance. By leveraging the Model Context Protocol (MCP), the agent can discover and invoke various engine toolsets to perform tasks such as spawning actors, editing assets like Blueprints or Materials, and managing project state. It is designed to streamline development by allowing the agent to execute commands directly in the editor, reducing the need for manual intervention.

What it does

  • Discovers and invokes Unreal Engine toolsets for live editor interaction.
  • Supports spawning, moving, and transforming actors within a level.
  • Enables creation and modification of Blueprints, Widgets, Materials, and other assets.
  • Facilitates Live Coding recompilation for C++ changes directly from the agent.
  • Allows reading and writing of actor properties and project-specific data.
  • Integrates with project-specific Agent Skills for custom workflow automation.

When to use it

  • When you need to perform automated changes to an Unreal Engine project.
  • When you want to query live editor state or inspect actor properties.
  • When you need to trigger engine-side tasks like asset creation or C++ recompilation.
  • When working within a project that has defined custom Agent Skills for specific tasks.

Advantages

  • Reduces context switching by performing tasks directly inside the Unreal Editor.
  • Maintains a small context window through dynamic tool discovery.
  • Supports persistent connections via an optional proxy to survive editor restarts.
  • Enables programmatic control over complex engine systems like GAS or Sequencer.

Usage examples

“Spawn a new BP_DoorActor at the current PlayerStart location.”
The agent identifies the relevant toolset, calls the spawn tool with the specified actor class and location, and confirms the actor is placed in the level.
“Recompile my C++ changes using Live Coding.”
The agent invokes the LiveCodingToolset to trigger a recompile and reports the status of the build once finished.
“Check if bIsLocked is true on the selected door actor.”
The agent queries the actor's properties via the MCP connection and returns the current value of the boolean.

Install

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/epicgames/unreal-mcp/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip unreal-mcp.zip -d .agents/skills

Documentation by Epic Games

Unreal MCP

You are wired into a live Unreal Editor through the unreal-mcp MCP server. The server exposes hundreds of tools across 30+ toolsets (actors, blueprints, materials, Niagara, Sequencer, Control Rigs, GAS, automation tests, Live Coding, and more) registered through Unreal's ToolsetRegistry. Use it to inspect and mutate live editor state instead of telling the user to do it manually.

You don't need to memorize tool names. The flow below has you discover them on demand.

The connection can appear as unreal-mcp-proxy when the engine's optional proxy is installed. Use that connection for Unreal tools. The proxy keeps Unreal's native tool definitions; it does not introduce replacement discovery or dispatch tools. See references/setup.md for installation.

First step every time: discover the tool you need, then dispatch it via call_tool

Tool search is on by default, so the MCP server advertises only three meta-tools for the whole session: list_toolsets, describe_toolset, and call_tool. Tool names like BlueprintTools.create or SequencerTools.create_level_sequence are not in tools/list. They are dispatched server-side through call_tool and never registered as native MCP tools. This is deliberate. It keeps your context window small and the prompt cache warm.

When you start work:

  1. Call list_toolsets to see what's registered, then describe_toolset on the candidate(s) to read their tool schemas. If you already know which toolset you need (the user said "make a Blueprint" → the Blueprint toolset), skip the listing and go straight to describe_toolset to confirm the available tools and their signatures.

  2. Invoke the tool with call_tool: pass toolset_name, tool_name, and an arguments object matching the schema you just read. The result comes back on the same turn. No extra round-trip needed.

  3. Top-level dispatch (omitting toolset_name) is reserved for tools registered directly on the MCP server and is rejected for call_tool itself.

Missing tools do not prove that the editor is stopped. Check the configured unreal-mcp or unreal-mcp-proxy connection and follow references/operations.md. A proxy can stay connected while Unreal is unavailable, and a client can keep a stale catalog after recovery. unreal_mcp_status reports the proxy's session state, not current reachability. Verify recovery with a read-only Unreal tool call. For first-time configuration, follow references/setup.md.

Safety rules

Follow these rules to protect live editor state.

  • Save first, then save again. Tell the user to save the project (or call AssetTools save APIs) before any bulk change, and again after. MCP edits are not always undoable, especially across compilation boundaries. Treat anything that touches multiple assets as a destructive operation that needs a recovery point.

  • Wait for compilation. If C++ or shader compilation is in flight, your tool calls will hang or fail in confusing ways. To rebuild C++ from the running editor, drive LiveCodingToolset.CompileLiveCoding and wait on its result instead of asking the user to switch to the IDE. That tool blocks until the compile actually finishes and surfaces MSVC diagnostics.

  • Control concurrent calls. MCP accepts concurrent requests and handles dispatch synchronization. Asynchronous tools can overlap, and request order does not guarantee execution or completion order. Serialize dependent calls and mutations that can affect the same asset or editor state. Use parallel calls only for independent work when the tools support safe overlap. Multiple agents can use one editor, but their conflicting changes can cause adverse effects.

  • Always check the result. Blueprint compilation, widget creation, material edits: many tools return a status that flips between success and failure with no exception thrown on the wire. Read the response before moving on. Treat anything that isn't an explicit success as a stop.

  • Mind PIE. Editor-only tools (asset creation in particular) behave differently while Play-in-Editor is active. If a result looks wrong, check whether PIE is running and stop it if so.

Project skills

A project or plugin can register Agent Skills: named bundles of instructions that capture workflow knowledge the agent wouldn't otherwise have (a project's naming conventions, folder layout, required setup steps, or the canonical sequence for a multi-step task). These are separate from the toolsets themselves and are reached through the agent skill toolset (AgentSkillToolset), not through list_toolsets.

Check for them the same way you discover tools, and do it whenever you start unfamiliar work in a project rather than just once:

  1. Call AgentSkillToolset.ListSkills (through call_tool) to see what skills the project registers. Each entry carries a short description of what it covers and when it applies.

  2. If a skill's description looks relevant to what the user asked, call AgentSkillToolset.GetSkills on it to load the full instructions, then follow them.

  3. If nothing matches, fall back to the tool-discovery flow above.

A relevant project skill's instructions take precedence over your generic defaults: it exists precisely because the project's way of doing something differs from the obvious one. (Authoring or editing these skills is a separate task covered by the unreal-skill companion skill below.)

Reference files

  • references/setup.md: first-time MCP server setup, client configuration, and optional proxy installation.

  • references/operations.md: console commands, settings, proxy recovery, and troubleshooting for missing tools or failed calls.

Companion skills

  • create-toolset: use when authoring a new toolset or adding tools to an existing one. Covers design principles, C++ and Python conventions, registration, error handling, and testing.

  • unreal-skill: use when creating, updating, or reviewing an Agent Skill. Covers what makes a good skill and how to structure one.

Files

references/setup.md

First-Time MCP Server Setup

Read this for first-time MCP configuration or optional proxy installation. Steps 1-3 configure direct HTTP access. Step 4 adds a proxy that keeps the client session open while Unreal is unavailable.

The goal is three things:

  1. Enable the ModelContextProtocol and AllToolsets plugins in the project.

  2. Make the editor auto-start the MCP server on launch.

  3. Generate the .mcp.json Claude Code reads to connect.

Walk the user through them in order. Do not skip the user's .uproject edit silently. Confirm the file path first.

1. Enable the plugins in the .uproject

Two plugins are required. ModelContextProtocol is the server and transport; AllToolsets provides the tools. With only ModelContextProtocol enabled the server starts but exposes no tools.

Open the project's .uproject file. In the Plugins array, ensure both entries:

{
  "Name": "ModelContextProtocol",
  "Enabled": true
},
{
  "Name": "AllToolsets",
  "Enabled": true
}

If the array doesn't exist, create it. If either entry exists with "Enabled": false, flip it to true.

AllToolsets is an editor-only aggregator with EnabledByDefault off, so it must be enabled explicitly. To expose only a subset of tools, enable the specific toolset plugins you want instead of AllToolsets.

2. Enable auto-start

The default is for the MCP server to stay stopped. To start it manually in a session, run ModelContextProtocol.StartServer from the editor console.

To start it automatically on every editor launch, add the snippet below to the per-user editor config file:

<Project>/Saved/Config/<Platform>Editor/EditorPerProjectUserSettings.ini

This is the file the editor writes when you toggle the setting in Editor Preferences. It is per-user and not source-controlled.

[/Script/ModelContextProtocolEngine.ModelContextProtocolSettings]
bAutoStartServer=True

Optional overrides if the defaults conflict with another local service:

ServerPortNumber=8000
ServerUrlPath=/mcp

A command-line alternative also works: pass -ModelContextProtocolStartServer (and optionally -ModelContextProtocolPort=<port>) to the editor. Prefer the .ini because it's persistent.

3. Generate .mcp.json

The editor does not write .mcp.json on its own. Either run a console command from inside the editor, or hand-write the file.

From a running editor (preferred): run ModelContextProtocol.GenerateClientConfig ClaudeCode in the console (or All to write configs for every supported client: ClaudeCode, Cursor, VSCode, Gemini, Codex). Re-running merges into the existing JSON, so it is safe after changing the port or URL. Codex is the exception: it uses TOML and the writer refuses to overwrite an existing .codex/config.toml. Edit that one by hand if it already exists.

The destination depends on the build kind:

  • Source build (your repo contains Engine/): the file is written to the workspace root, alongside Engine/. Not next to the .uproject.

  • Installed/launcher build: the file is written next to the .uproject.

Without launching the editor first (for example, scripting a fresh-project bootstrap), hand-write .mcp.json at the location matching your build kind above:

{
  "mcpServers": {
    "unreal-mcp": {
      "type": "http",
      "url": "http://127.0.0.1:8000/mcp"
    }
  }
}

Adjust the URL if the port or path was overridden in step 2.

4. Optional: install the proxy

Use this option if you want the client session to survive editor shutdown and startup. The editor must still run for live tool calls.

Check whether your engine includes Engine/Plugins/Experimental/ModelContextProtocol/Extras/Proxy. If it is absent, keep the direct HTTP setup.

Choose the binary for the operating system where the MCP client runs:

PlatformBinary under Extras/Proxy
Windows x64Bin/Win64/unreal_mcp_proxy.exe
macOS arm64Bin/Mac/unreal_mcp_proxy
Linux x64Bin/Linux/unreal_mcp_proxy
Linux arm64Bin/LinuxArm64/unreal_mcp_proxy

First generate .mcp.json through step 3. Then run the matching command from Extras/Proxy, using the actual configuration path.

Windows PowerShell:

.\Bin\Win64\unreal_mcp_proxy.exe --mcp-json "C:\path\to\.mcp.json" install

macOS:

./Bin/Mac/unreal_mcp_proxy --mcp-json "/path/to/.mcp.json" install

For Linux, use Bin/Linux or Bin/LinuxArm64 instead of Bin/Mac. An explicit --mcp-json path also supports projects outside the engine directory tree.

The installer replaces the HTTP entry with a STDIO unreal-mcp-proxy entry. It keeps the original entry under _upstreamEntry. Configure one Unreal connection, not both the proxy and a duplicate direct HTTP connection.

Restart the MCP client once after installation so it loads the changed configuration. Later editor shutdowns do not require stopping the proxy. If an editor integration automatically replaces .mcp.json, disable that integration's automatic client-configuration writes.

To restore the direct HTTP entry, run the same command with uninstall instead of install. Reload the client configuration afterward.

The proxy stores catalogs in the operating system's user cache directory. Scope includes configuration path, proxy path, engine build identity, and client protocol version. It does not supply a fixed Unreal tool catalog. See the engine's Extras/Proxy/README.md for cache behavior and transport limits in your build.

5. Several editors at once

Every editor serves MCP on ServerPortNumber, 8000 by default. A second editor on the same machine can't bind that port, and a client pointed at it reaches the first editor instead. Give each project or engine workspace its own fixed port:

  1. Pick one port per workspace (for example 8100, 8101, ...) and keep it. Don't rely on the editor moving to the next free port: a client keeps talking to whatever answers on its configured port.

  2. Set ServerPortNumber in that project's EditorPerProjectUserSettings.ini (step 2), or pass -ModelContextProtocolPort=<port> at launch.

  3. Point that workspace's .mcp.json at the same port (step 3) and install the proxy into it (step 4), so each client session follows its own editor across restarts.

  4. Start each client session from its own workspace, so it loads that workspace's .mcp.json.

To check which editor answered, see Identify the editor in operations.md.

Verifying

After the editor is running with the plugin enabled and auto-start on:

  • The Output Log shows MCP server startup messages.

  • list_toolsets (one of the three tool-search meta-tools) returns successfully.

  • /mcp in Claude Code lists unreal-mcp, or unreal-mcp-proxy when installed, as connected.

A connected proxy or visible cached tools do not prove that Unreal is reachable. Confirm with a successful read-only Unreal tool call.

If any of these fail, see operations.md for recovery commands.

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Needs an MCP server

Security

No issues found by our static scan· No issues found

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Published by
Epic Games
Publisher
Epic Games (Official)
Source
EpicGames/unreal-engine-skills-for-claude-code-plugin · skills/unreal-mcp · commit 0e27bde
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Epic Games or Epic Games.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download unreal-mcp.zip