Unreal Engine MCP Server
Integrates with Unreal Engine via the Remote Control API, providing tools to manage actors, assets, levels, and editor state, including spawning actors, transforming objects, searching assets, and controlling play-in-editor.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Unreal Engine MCP Server List all actors in the current level"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Unreal Engine MCP Server
A comprehensive Model Context Protocol (MCP) server that enables Claude and other AI assistants to interact with Unreal Engine through the Remote Control API.
Features
22 MCP Tools - Full control over actors, assets, levels, and editor
4 MCP Resources - Read-only data access to engine state
6 MCP Prompts - Workflow templates for common tasks
Remote Control API Integration - HTTP-based communication
Mock Mode - Test without running Unreal Engine
TypeScript - Full type safety with Zod validation
Batch Operations - Execute multiple operations efficiently
Related MCP server: Unreal Engine MCP Server
Requirements
Node.js 18+
Unreal Engine 5.x with Remote Control API plugin enabled
Enabling Remote Control in Unreal Engine
Open your project in Unreal Editor
Go to Edit > Plugins
Search for "Remote Control API" in the Messaging category
Enable the plugin and restart the editor
The Remote Control API server starts automatically on port 30010.
Installation
# Clone the repository
git clone https://github.com/your-repo/ue-mcp.git
cd ue-mcp
# Install dependencies
npm install
# Build
npm run buildUsage
Start the server
# Default settings (connects to localhost:30010)
npm start
# Mock mode (for testing without Unreal Engine)
npm run start:mock
# Custom host/port
node dist/index.js --host 192.168.1.100 --http-port 30010
# Development mode with hot reload
npm run devCLI Options
Option | Alias | Description | Default |
|
| Unreal Engine host address |
|
|
| Remote Control HTTP port |
|
|
| Remote Control WebSocket port |
|
|
| Request timeout (ms) |
|
|
| Enable mock mode |
|
|
| Enable verbose logging |
|
Claude Desktop Configuration
Add to your Claude Desktop configuration (~/.claude.json or .mcp.json):
{
"mcpServers": {
"unreal-engine": {
"command": "node",
"args": ["/path/to/ue-mcp/dist/index.js"],
"env": {
"UE_HOST": "127.0.0.1",
"UE_HTTP_PORT": "30010"
}
}
}
}Available Tools (22)
Debug Tools
Tool | Description |
| Test connection to Unreal Engine |
| Get available API routes |
Object Tools
Tool | Description |
| Call Blueprint-callable functions on UObjects |
| Read property values from objects |
| Write property values to objects |
| Get object metadata (properties, functions) |
Actor Tools
Tool | Description |
| List all actors in the current level |
| Get currently selected actors |
| Spawn a new actor in the level |
| Delete an actor from the level |
| Move, rotate, or scale an actor |
| Set editor selection |
Batch Tools
Tool | Description |
| Execute multiple operations in one request |
Asset Tools
Tool | Description |
| Search the asset registry |
| Get asset metadata |
Level Tools
Tool | Description |
| Get current level information |
| Open a level |
| Save the current level |
| Save all modified assets |
Editor Tools
Tool | Description |
| Control PIE (start/stop/pause/resume) |
| Run console commands |
| Move viewport to actor or location |
Available Resources (4)
Resources provide read-only access to Unreal Engine data via URI patterns.
Resource URI | Description |
| Available Remote Control API endpoints |
| All actors in the current level |
| Current editor state (level, selection) |
| List of Remote Control Presets |
Available Prompts (6)
Prompts are workflow templates that guide common tasks.
Prompt | Description |
| Create a grid of actors at specified positions |
| Edit a property on multiple actors at once |
| Get comprehensive debug info about an actor |
| Set up a new level with common elements |
| Explore a Blueprint's properties and functions |
| Work with a Remote Control Preset |
Example Interactions
You: Ping Unreal Engine to check if it's connected
Claude: [Uses ue_ping tool]
Successfully connected to Unreal Engine at http://127.0.0.1:30010
You: List all the lights in the level
Claude: [Uses ue_get_all_actors with classFilter="PointLight"]
Found 3 actors: PointLight_1, PointLight_2, SpotLight_1
You: Spawn a point light at position (500, 0, 200)
Claude: [Uses ue_spawn_actor tool]
Successfully spawned PointLight at (500, 0, 200)
You: Move it up by 100 units
Claude: [Uses ue_transform_actor tool]
Successfully set location on actor
You: Save the level
Claude: [Uses ue_save_level tool]
Level saved successfullyDevelopment
# Install dependencies
npm install
# Run in development mode
npm run dev
# Type checking
npm run typecheck
# Build
npm run build
# Run tests
npm test
# Test with MCP Inspector
npm run inspectorArchitecture
src/
├── index.ts # CLI entry point
├── server.ts # MCP server setup
├── config/ # Configuration system
├── client/ # HTTP client for Remote Control API
├── tools/
│ ├── debug/ # ue_ping, ue_get_api_info
│ ├── object/ # ue_call_function, ue_get_property, etc.
│ ├── actor/ # ue_spawn_actor, ue_transform_actor, etc.
│ ├── asset/ # ue_search_assets, ue_get_asset_data
│ ├── level/ # ue_open_level, ue_save_level, etc.
│ ├── editor/ # ue_play_in_editor, ue_execute_console_command
│ └── batch/ # ue_batch_execute
├── resources/ # MCP resources (read-only data)
├── prompts/ # MCP prompts (workflow templates)
└── utils/ # Error handling utilitiesEnvironment Variables
UE_HOST=127.0.0.1 # Unreal Engine host
UE_HTTP_PORT=30010 # Remote Control HTTP port
UE_WS_PORT=30020 # Remote Control WebSocket port
UE_TIMEOUT=5000 # Request timeout (ms)
UE_MOCK_MODE=false # Enable mock mode
UE_VERBOSE=false # Enable verbose loggingLicense
MIT
Sources
Available Tools
22 toolsue_batch_executeA
Execute multiple operations in a single batch request. More efficient than calling individual tools when you need to perform many operations. Supports function calls, property reads, and property writes. Maximum 100 operations per batch.
Inputs: operations (required).
ue_call_functionA
Call a Blueprint-callable function on a UObject. This can invoke any function exposed to Blueprints, including actor methods, engine utilities, and custom Blueprint functions. Use ue_describe_object first to see available functions on an object.
Inputs: objectPath (required), functionName (required), parameters.
ue_describe_objectA
Get detailed metadata about a UObject, including all accessible properties and Blueprint-callable functions. Use this to discover what operations are available on an object before calling ue_call_function, ue_get_property, or ue_set_property.
Inputs: objectPath (required).
ue_destroy_actorA
Destroy (delete) an actor from the current level. This action is irreversible (unless you undo in the editor). Use ue_get_all_actors to find actor paths.
Inputs: actorPath (required).
ue_execute_console_commandA
Execute a console command in Unreal Engine. Supports any command available in the editor console (~). Common commands: 'stat fps', 'stat unit', 'show collision', 'viewmode wireframe'
Inputs: command (required).
ue_focus_viewportA
Move the editor viewport to focus on a specific actor or location. Useful for navigating to objects in large levels.
Inputs: location, actorPath.
ue_get_all_actorsA
Get a list of all actors in the current level. Optionally filter by class name to get only specific actor types. Returns actor paths that can be used with other tools like ue_get_property or ue_call_function.
Inputs: classFilter.
ue_get_api_infoA
Get information about all available Remote Control API routes. Useful for understanding what endpoints are available.
Inputs: no named parameters.
ue_get_asset_dataA
Get detailed metadata about an asset including its class, size, and references. Use ue_search_assets to find asset paths first.
Inputs: assetPath (required).
ue_get_current_levelA
Get information about the currently open level in the editor, including its name, path, and world settings.
Inputs: no named parameters.
ue_get_propertyA
Read a property value from a UObject. Can read any public property that doesn't have a BlueprintGetter defined. For properties with getters, use ue_call_function instead. Use ue_describe_object to see available properties on an object.
Inputs: objectPath (required), propertyName (required).
ue_get_selected_actorsA
Get the list of currently selected actors in the Unreal Editor. Useful for performing operations on user-selected objects. Returns actor paths that can be used with other tools.
Inputs: no named parameters.
ue_open_levelA
Open a level in the Unreal Editor. This will close the current level. Use ue_search_assets with classFilter='World' to find available levels.
Inputs: levelPath (required).
ue_pingA
Test connectivity to Unreal Engine. Returns success if the Remote Control API is reachable.
Inputs: no named parameters.
ue_play_in_editorA
Control Play In Editor (PIE) mode. Start, stop, pause, or resume game preview. Useful for testing gameplay changes.
Inputs: action (required).
ue_save_allA
Save all modified assets and levels. Equivalent to Ctrl+Shift+S in the editor.
Inputs: no named parameters.
ue_save_levelA
Save the current level. This saves all changes made to the level.
Inputs: no named parameters.
ue_search_assetsA
Search the project's asset registry for assets by name, path, or class. Returns asset paths that can be used with other tools. Useful for finding meshes, materials, blueprints, textures, etc.
Inputs: query (required), limit, pathFilter, classFilter.
ue_select_actorsA
Select actors in the Unreal Editor. By default, replaces the current selection. Set addToSelection=true to add to the existing selection instead.
Inputs: actorPaths (required), addToSelection.
ue_set_propertyA
Write a property value on a UObject. Can write any public property that isn't read-only and doesn't have a BlueprintSetter. For properties with setters, use ue_call_function with the setter function instead. Use ue_describe_object to see available properties and their types.
Inputs: objectPath (required), propertyName (required), value.
ue_spawn_actorA
Spawn a new actor in the current level at the specified location. Supports any actor class including built-in types (StaticMeshActor, PointLight, etc.) and custom Blueprint actors. Returns the path to the newly created actor.
Inputs: location (required), className (required), label, rotation.
ue_transform_actorA
Set the transform (location, rotation, and/or scale) of an actor. You can provide any combination of location, rotation, and scale - only the provided components will be changed.
Inputs: actorPath (required), scale, location, rotation.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 22 tools
Most tools have clearly distinct purposes (property reading/writing, function calling, actor management, level operations, asset search). The only slight overlap is between ue_ping and ue_get_api_info, both providing connectivity/info, but their descriptions make the difference clear.
All tool names follow a consistent ue_verb_noun pattern (e.g., ue_get_property, ue_spawn_actor, ue_open_level). The naming is uniform, lowercase, and snake_case, with no mixed conventions or ambiguous verbs.
22 tools is slightly above the typical 15-tool threshold, but the breadth is justified by the wide scope of Unreal Engine automation. The count feels appropriate for editor control, object inspection, asset handling, and level management without being bloated.
Core workflows are covered: inspecting objects, reading/writing properties, calling functions, managing actors (list, select, spawn, destroy, transform), level operations (open, save, current, save all), asset search/metadata, and editor utilities (console, PIE). Minor gaps exist, such as no explicit undo/redo or asset creation, but the surface is well-rounded for typical automation.
Related MCP Connectors
Control Unreal Engine to browse assets, import content, and manage levels and sequences. Automate…
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
- DNS-DATA RemoteDeprecatedcom.dns-data
Connect AI assistants to authorized Windows and macOS devices for files, commands, and management.
Connect AI assistants to your approved computer for files, commands, browser and desktop tasks.
Related MCP Servers
- AlicenseDqualityBmaintenanceEnables AI assistants to control Unreal Engine via Remote Control API for game development automation, including asset management, actor control, level editing, animation, physics, visual effects, and cinematics creation through natural language.11,217 npm1,026MIT
- AlicenseCqualityDmaintenanceEnables AI assistants to control Unreal Engine through a native C++ Automation Bridge plugin.431,217 npm8MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to control Unreal Engine through a native C++ Automation Bridge plugin, supporting asset management, actor control, sequencer, and more via HTTP or WebSocket transport.1,217 npmMIT

Funplay MCP for Unrealofficial
AlicenseNot gradedqualityCmaintenanceEnables AI assistants to directly control and interact with the Unreal Editor through natural language, allowing tasks such as spawning actors, building levels, creating materials, and running Python scripts.8MIT