Client guide · Claude

Use Claude to drive the Unreal Editor

Claude Code connects straight to the plugin's built-in HTTP server with one command. Claude Desktop launches the small Node.js server over stdio. Either way Claude sees one tool, unreal, and can reach about 400 editor capabilities through it.

Updated Covers EngineWire 0.6 beta (npm @beta)

What you need first

Install the McpAutomationBridge plugin in your project and open it once so Unreal builds it; the status bar should read MCP off. The quick start covers that in four steps. Then pick the section for your Claude app below.

Claude appRecommended routeWhy
Claude CodeNative HTTP (Route A)Supports Streamable HTTP with custom headers, so no Node.js is involved. Several clients can share one editor.
Claude Desktopstdio (Route B)Launches a local command; the server finds the capability token in your project by itself.

Claude Code over native HTTP

  1. In Edit › Project Settings › Plugins › MCP Automation Bridge › Native MCP, tick Enable Native MCP Server and restart the editor. The status bar reads MCP :3000 (0), and the Output Log shows Native MCP server started on http://127.0.0.1:3000/mcp.

  2. Copy the token from <YourProject>/Saved/MCP/capability-token, without a trailing newline.

  3. Register the server:

bash · terminal
claude mcp add --transport http unreal-engine http://127.0.0.1:3000/mcp --header "X-MCP-Capability-Token: <token>"

To share the setup with a team without committing the secret, put a project-scoped .mcp.json in the repository and read the token from an environment variable:

json · .mcp.json
{
  "mcpServers": {
    "unreal-engine": {
      "type": "http",
      "url": "http://127.0.0.1:3000/mcp",
      "headers": {
        "X-MCP-Capability-Token": "${UNREAL_MCP_TOKEN}"
      }
    }
  }
}

Each developer then sets UNREAL_MCP_TOKEN to their own project's token. When Claude Code connects, the status bar count goes up to MCP :3000 (1), and running /mcp in Claude Code lists exactly one tool from this server: unreal.

Start the editor first

On the native route the server lives inside the editor. If Claude Code starts before the editor, the connection fails; reconnect through /mcp once the editor is up. A direct HTTP session is also lost when the editor closes or crashes.

Keep the session across editor restarts

The npm package has a proxy command that sits between Claude and the editor over stdio. While the editor is down every call answers NOT_CONNECTED, and the first call after it comes back reaches it with no reconnect. It needs Node.js 20.19 or later:

json · .mcp.json (proxy)
{
  "mcpServers": {
    "unreal-engine": {
      "command": "npx",
      "args": ["-y", "unreal-engine-mcp-server@beta", "proxy"],
      "env": { "UE_PROJECT_PATH": "C:/Path/To/YourProject" }
    }
  }
}

Claude Code over stdio instead

If you would rather not paste a token, let the stdio server read it from the project:

bash · terminal
claude mcp add unreal-engine --env UE_PROJECT_PATH=C:/Path/To/MyGame -- npx -y unreal-engine-mcp-server@beta

On native Windows, put cmd /c before npx.

Claude Desktop over stdio

Open the config file (%APPDATA%\Claude\claude_desktop_config.json on Windows, ~/Library/Application Support/Claude/claude_desktop_config.json on macOS) and add:

json · claude_desktop_config.json
{
  "mcpServers": {
    "unreal-engine": {
      "command": "npx",
      "args": ["-y", "unreal-engine-mcp-server@beta"],
      "env": {
        "UE_PROJECT_PATH": "C:/Path/To/MyGame"
      }
    }
  }
}

Restart Claude Desktop. The tool appears even while the editor is closed; the first call connects. If Windows reports that it cannot find npx, launch it through cmd:

json · Windows fallback
"command": "cmd",
"args": ["/c", "npx", "-y", "unreal-engine-mcp-server@beta"]

Keep the @beta tag. Without it npm installs 0.5.30, which does not match a 0.6 plugin. Claude Desktop writes the server's log under %APPDATA%\Claude\logs\ (Windows) or ~/Library/Logs/Claude/ (macOS); add "LOG_LEVEL": "debug" to env to see connection attempts.

Prompts to start with

  • "List the actors in the current level."
  • "Spawn a point light 300 units above the origin, then take a screenshot of the viewport."
  • "Create a Blueprint actor called BP_Door with a static mesh component and a boolean variable IsOpen, then compile it."
  • "Make a material instance of M_Base with a red base colour and apply it to the selected actor."

Screenshots come back as images, so Claude can look at what it built and correct it. If Claude keeps guessing capability names (UNKNOWN_CAPABILITY, UNDECLARED_PARAMETER), add one line to your CLAUDE.md: "Use the unreal tool: search, then describe, then execute, and copy each nextCall."

Tell Claude about your project

On the native route, the plugin's Server Instructions setting (in the Native MCP section) is free text appended to the instructions clients receive when they connect, for example "All gameplay Blueprints live under /Game/Core/Blueprints. Widgets are named WBP_*." On the stdio route, put the same text in CLAUDE.md.

Long editor operations such as lighting builds, imports and packaging can outlast Claude Code's per-call limit. Raise it with the MCP_TOOL_TIMEOUT environment variable (milliseconds). The editor keeps working after a client timeout, so read the state again before retrying.

FAQ

Is this Epic's Claude Code plugin?

No. Epic publishes its own "Unreal Engine MCP" plugin for Claude Code, which works with Epic's Unreal MCP in UE 5.8. EngineWire is an independent open-source project that works on UE 5.0 to 5.8. See Epic's Unreal MCP vs EngineWire.

Which Claude model should I use?

Any model your client runs that can call tools. The single-tool design is meant to help smaller models, but stronger models make fewer mistakes on long, multi-step jobs.

Does my project get sent anywhere?

The plugin and server talk only to each other and to your client, over 127.0.0.1, and send no telemetry. Claude itself does receive tool results (asset names, property values, screenshots), as with any tool.

Can Claude delete things?

Yes, but only through a per-call consent grant. To approve those calls yourself, use Claude's own tool-approval setting for the unreal tool, and commit to source control before big jobs.