
An MCP server that allows AI agents (Claude, Cursor) to directly control and manipulate Unreal Engine.
This server lets Claude (or any MCP client) read and edit Unreal Engine 5.6/5.8 Blueprints directly, without burning your context window on raw engine JSON, and without needing anything beyond a stock Epic Games Launcher install.
If you've tried pointing an AI assistant at a real Unreal project, you've hit this: Blueprints don't fit in a context window. A single graph dumped as raw engine data is enormous, so either the model never sees enough of the project to have real context, or you spend most of your budget re-explaining what already exists every time you open a new conversation.
This project is built around one idea: the model should never receive a raw engine dump. Every hop between the Unreal Editor and Claude compacts the data: tiered reads, diff-based edits, and a persistent index that's built once and updated incrementally instead of re-scanned on every question.
Two pieces:
UnrealMCPBridgeis a C++ editor plugin that runs insideUnrealEditor.exeand exposes a local TCP interface over the engine's own Kismet2/EdGraph/AssetRegistry APIs. Built against a stock launcher install: no engine source required to build or run it.mcp-serveris a Node/TypeScript MCP server that translates MCP tool calls into bridge requests, and is responsible for keeping every response cheap: compact field names, capped result sizes, and no re-serializing verbose engine data verbatim.
See
There are several Unreal MCP projects on GitHub already, and as of UE 5.8 Epic ships its own experimental first-party MCP plugin (5.8 only, opt-in, requires manually enabling an "Editor Toolset"). Worth being direct about where this project actually differs, rather than just claiming "better":
- Built around reading, not just writing. Most existing projects are strong at creating and manipulating Blueprints from a prompt, but don't address what happens when the model needs to understand a large, already-built project first. Reading is the first-class citizen here: tiered summaries before full detail, node IDs you can reference without re-fetching.
- A persistent, incrementally-updated project index. The bridge indexes Blueprints, functions, variables, and cross-asset references once, caches it to disk, and updates it from
AssetRegistrydelegates as you edit, instead of rescanning the project on every query.find_referencesanswers "what actually uses this Blueprint" without the model having to enumerate the project itself. - An optional local-model hook for indexing. If you point
UNREAL_MCP_LOCAL_LLM_URLat a local model (Ollama or anything OpenAI-compatible), indexing summaries are generated there instead of spending Claude's tokens on mechanical scanning work. Fully optional. The index works without it. - Targets both 5.6 and 5.8 from one codebase, where several existing projects are pinned to a single engine version.