A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal Engine via Remote Control API. Built with TypeScript and designed for game development automation.
- Asset Management - Browse, import, and create materials
- Actor Control - Spawn, delete, and manipulate actors with physics
- Editor Control - PIE sessions, camera, and viewport management
- Level Management - Load/save levels, lighting, and environment building
- Animation & Physics - Blueprints, state machines, ragdolls, constraints
- Visual Effects - Niagara particles, GPU simulations, procedural effects
- Sequencer - Cinematics, camera animations, and timeline control
- Console Commands - Safe execution with dangerous command filtering
- Node.js 18+
- Unreal Engine 5.0-5.6
- Required UE Plugins (enable via Edit ▸ Plugins):
- Remote Control API – core Remote Control HTTP/WS endpoints
- Remote Control Web Interface – enables WebSocket bridge used by this server
- Python Editor Script Plugin – exposes Python runtime for automation
- Editor Scripting Utilities – unlocks Editor Actor/Asset subsystems used throughout the tools
- Sequencer (built-in) – keep enabled for cinematic tools
- Level Sequence Editor – required for
manage_sequence
operations
💡 After toggling any plugin, restart the editor to finalize activation. Keep
Editor Scripting Utilities
andPython Editor Script Plugin
enabled prior to connecting, otherwise many subsystem-based tools (actor spawning, audio, foliage, UI widgets) will refuse to run for safety.
Plugin | Location | Used By | Notes |
---|---|---|---|
Remote Control API | Developer Tools ▸ Remote Control | All tools | Provides HTTP/WS endpoints consumed by the MCP bridge |
Remote Control Web Interface | Developer Tools ▸ Remote Control | All tools | Enables persistent WebSocket session |
Python Editor Script Plugin | Scripting | Landscapes, lighting, audio, physics, sequences, UI | Required for every Python execution path |
Editor Scripting Utilities | Scripting | Actors, foliage, assets, landscapes, UI | Supplies Editor Actor/Asset subsystems in UE5.6 |
Sequencer | Built-in | Sequencer tools | Ensure not disabled in project settings |
Level Sequence Editor | Animation | Sequencer tools | Activate before calling manage_sequence operations |
# Install globally
npm install -g unreal-engine-mcp-server
# Or install locally in your project
npm install unreal-engine-mcp-server
# Clone the repository
git clone https://github.com/ChiR24/Unreal_mcp.git
cd Unreal_mcp
# Install dependencies and build
npm install
npm run build
# Run directly
node dist/cli.js
Add to your project's Config/DefaultEngine.ini
:
[/Script/PythonScriptPlugin.PythonScriptPluginSettings]
bRemoteExecution=True
bAllowRemotePythonExecution=True
[/Script/RemoteControl.RemoteControlSettings]
bAllowRemoteExecutionOfConsoleCommands=True
bEnableRemoteExecution=True
bAllowPythonExecution=True
Then enable Python execution in: Edit > Project Settings > Plugins > Remote Control
{
"mcpServers": {
"unreal-engine": {
"command": "npx",
"args": ["unreal-engine-mcp-server"],
"env": {
"UE_HOST": "127.0.0.1",
"UE_RC_HTTP_PORT": "30010",
"UE_RC_WS_PORT": "30020",
"UE_PROJECT_PATH": "C:/Users/YourName/Documents/Unreal Projects/YourProject"
}
}
}
}
{
"mcpServers": {
"unreal-engine": {
"command": "node",
"args": ["path/to/Unreal_mcp/dist/cli.js"],
"env": {
"UE_HOST": "127.0.0.1",
"UE_RC_HTTP_PORT": "30010",
"UE_RC_WS_PORT": "30020",
"UE_PROJECT_PATH": "C:/Users/YourName/Documents/Unreal Projects/YourProject"
}
}
}
}
Tool | Description |
---|---|
manage_asset |
List, create materials, import assets |
control_actor |
Spawn, delete actors, apply physics |
control_editor |
PIE control, camera, view modes |
manage_level |
Load/save levels, lighting |
animation_physics |
Animation blueprints, ragdolls |
create_effect |
Particles, Niagara, debug shapes |
manage_blueprint |
Create blueprints, add components |
build_environment |
Landscapes, terrain, foliage |
system_control |
Profiling, quality, UI, screenshots |
console_command |
Direct console command execution |
manage_rc |
Remote Control presets |
manage_sequence |
Sequencer/cinematics |
inspect |
Object introspection |
- Graceful Degradation - Server starts even without UE connection
- Auto-Reconnection - Attempts reconnection every 10 seconds
- Connection Timeout - 5-second timeout with configurable retries
- Non-Intrusive Health Checks - Uses echo commands every 30 seconds
- Command Safety - Blocks dangerous console commands
- Input Flexibility - Vectors/rotators accept object or array format
- Asset Caching - 10-second TTL for improved performance
Blueprints, Materials, Textures, Static/Skeletal Meshes, Levels, Sounds, Particles, Niagara Systems
- Statistics:
stat fps
,stat gpu
,stat memory
- View Modes:
viewmode wireframe
,viewmode unlit
- Gameplay:
slomo 0.5
,god
,fly
- Rendering:
r.screenpercentage 50
,r.vsync 0
UE_HOST=127.0.0.1 # Unreal Engine host
UE_RC_HTTP_PORT=30010 # Remote Control HTTP port
UE_RC_WS_PORT=30020 # Remote Control WebSocket port
UE_PROJECT_PATH="C:/Users/YourName/Documents/Unreal Projects/YourProject" # Absolute path to your .uproject file
LOG_LEVEL=info # debug | info | warn | error
docker build -t unreal-mcp .
docker run -it --rm unreal-mcp
Pull from Docker Hub
docker pull mcp/server/unreal-engine-mcp-server:latest
docker run --rm -it mcp/server/unreal-engine-mcp-server:latest
npm run build # Build TypeScript
npm run lint # Run ESLint
npm run lint:fix # Fix linting issues
Contributions welcome! Please:
- Include reproduction steps for bugs
- Keep PRs focused and small
- Follow existing code style
MIT - See LICENSE file