unreal-engine-mcp
An MCP server that gives AI agents broad control over Unreal Engine 5.7, enabling actor/asset/level management, Blueprint and material creation, screenshots, automation, and arbitrary editor Python execution.
README
unreal-engine-mcp
A Model Context Protocol (MCP) server that gives AI agents (Claude Desktop/Code, Cursor, any MCP client) broad control over Unreal Engine 5.7 — spawning and editing actors, managing assets and levels, creating Blueprints and materials, capturing screenshots, running headless builds and automation tests, and executing arbitrary editor Python.
It is designed to reach the whole engine, not a fixed menu of features: a
small set of typed tools cover the common operations, and search_unreal_classes
introspect_unreal_class+execute_pythonlet an agent discover and drive anything else theunrealPython module exposes — including features added by enabled plugins (Niagara, PCG, Landscape, Sequencer, Gameplay Ability System, Chaos, MetaHuman, …).
Status: functional reference implementation. The host-side code is tested and the server boots and registers all tools. The live-editor paths require a running UE 5.7 editor with the bridge installed — see docs/SETUP.md. No interactive editor was available in the authoring environment, so live calls have not been smoke-tested end to end; treat the engine-side behaviour as "implemented against the documented API" rather than "verified on a running editor".
Why this design
Unreal exposes three external control surfaces; this server uses all three:
| Surface | What it is | Used for |
|---|---|---|
| Remote Control API (HTTP :30010) | Built-in plugin: REST routes to read/write properties and call UFunctions, including the Python library CDO. |
Live editor control + the Python channel. |
Python (unreal module) |
Reflects ~everything exposed to Blueprints; grows as you enable plugins. | The universal capability layer, reached through Remote Control. |
UnrealEditor-Cmd (headless) |
Commandlets / automation in a short-lived process. | Builds, cooks, packaging, automation tests. |
The key idea: instead of compiling a bespoke C++ plugin, we drive the editor's
own Python interpreter over the Remote Control HTTP API, and ship a tiny UE-side
Python bridge (ue_mcp_bridge, pure .py) that returns structured JSON so
round-trips are reliable. No C++ compilation required — only built-in plugins.
See docs/ARCHITECTURE.md for the full picture and docs/CAPABILITIES.md for the complete map of what's reachable.
Quick start
- In Unreal (5.7): enable the Remote Control API and Python Editor Script Plugin plugins, then restart the editor.
- Install the bridge: copy
unreal_plugin/Content/Python/into your project'sContent/Python/folder (soinit_unreal.pyandue_mcp_bridge/sit directly under it). Restart the editor; the Output Log should show[ue_mcp_bridge] ready. - Install the server:
pip install -e . # or: pip install -r requirements.txt cp .env.example .env # then edit paths/ports - Register with your MCP client. For Claude Desktop, add to
claude_desktop_config.json:(Claude Code:{ "mcpServers": { "unreal": { "command": "unreal-mcp", "env": { "UE_PROJECT_PATH": "/path/to/MyProject/MyProject.uproject", "UE_ENGINE_PATH": "/path/to/UE_5.7" } } } }claude mcp add unreal -- unreal-mcp.) - Ask your agent: "Call editor_state" to confirm the connection, then "Spawn a cube at the origin and take a screenshot."
Tool catalogue (35 tools)
Editor & connection — editor_state, run_console_command, save_all
Actors — list_actors, get_actor, spawn_actor, spawn_static_mesh,
set_actor_transform, set_actor_property, destroy_actor
Assets — list_assets, asset_exists, asset_info, import_asset,
duplicate_asset, rename_asset, save_asset, delete_asset
Levels — new_level, load_level, save_current_level
Materials / Blueprints — create_material, create_blueprint, compile_blueprint
Rendering — take_screenshot, build_lighting
Universal — execute_python, search_unreal_classes, introspect_unreal_class
Headless pipeline — run_automation_tests, run_python_file, cook_content
Raw Remote Control — rc_get_property, rc_set_property, rc_call_function
Safety
.env(and credential files / keys) are gitignored; never commit secrets.UE_MCP_ALLOW_WRITE=falseputs the server in read-only mode — mutating tools refuse to run. Useful for exploration or untrusted sessions.execute_pythonruns arbitrary code in your editor. Only connect MCP clients you trust.
Development
pip install -e ".[dev]"
PYTHONPATH=src python -m pytest tests/ -q # host-side tests
PYTHONPATH=src python -c "from unreal_mcp.server import build_server; build_server()"
License
MIT — see LICENSE.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.