Unreal Engine
STDIOMCP server enabling AI assistants to control Unreal Engine via Remote Control API
MCP server enabling AI assistants to control Unreal Engine via Remote Control API
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.
manage_sequence operations💡 After toggling any plugin, restart the editor to finalize activation. Keep
Editor Scripting UtilitiesandPython Editor Script Pluginenabled 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 | 
Blueprints, Materials, Textures, Static/Skeletal Meshes, Levels, Sounds, Particles, Niagara Systems
stat fps, stat gpu, stat memoryviewmode wireframe, viewmode unlitslomo 0.5, god, flyr.screenpercentage 50, r.vsync 0UE_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:
MIT - See LICENSE file