UEMCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| UEMCP_PROJECT | No | Prefer a specific project when several editors are open | (first found) |
| UEMCP_COMMAND_HOST | No | Host the editor connects back to | 127.0.0.1 |
| UEMCP_MULTICAST_PORT | No | Discovery port | 6766 |
| UEMCP_COMMAND_TIMEOUT | No | Per-command timeout in seconds | 120 |
| UEMCP_MULTICAST_GROUP | No | Discovery multicast group | 239.0.0.1 |
| UEMCP_DISCOVERY_TIMEOUT | No | Discovery wait in seconds | 2 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ue_statusA | Discover running Unreal Editor instances and report connection state. |
| ue_pythonA | Run arbitrary Python inside the Unreal Editor (full This is the escape hatch for anything the dedicated tools do not cover. Use print() for output you want back. |
| ue_console_commandB | Execute an Unreal console command (for example |
| ue_project_infoA | Get engine version, project paths, and the currently open level. |
| ue_list_actorsA | List actors in the open level, optionally filtered by class or label substring. |
| ue_spawn_actorB | Spawn an actor from an engine class (/Script/Engine.PointLight) or an asset (/Game/...). location is [x, y, z] in centimeters; rotation is [roll, pitch, yaw] in degrees. |
| ue_destroy_actorB | Delete the actor with the given outliner label from the open level. |
| ue_set_actor_transformC | Move, rotate, or scale an actor by its outliner label. Omitted parts are unchanged. |
| ue_set_actor_propertyB | Set an editor property on an actor (snake_case name, for example Lists of 3 or 4 numbers are coerced to Vector or LinearColor when needed. |
| ue_get_actorA | Get an actor's transform, class, and component list by its outliner label. |
| ue_search_assetsA | Search project assets by name substring and/or class (StaticMesh, Material, ...). |
| ue_asset_infoA | Inspect one asset: class, plus mesh LODs/materials or blueprint class when relevant. |
| ue_import_assetC | Import a file from disk (FBX, OBJ, PNG, WAV, ...) into the project content folder. |
| ue_create_folderB | Create a content browser folder, for example /Game/Levels/Greybox. |
| ue_duplicate_assetB | Duplicate an asset to a new content path. |
| ue_delete_assetA | Delete an asset from the project. Fails if other assets still reference it. |
| ue_save_allA | Save all dirty packages: the open level and any modified assets. |
| ue_create_materialC | Create a simple constant-based material. base_color and emissive are [r, g, b] 0..1. |
| ue_create_material_instanceC | Create a material instance of a parent material and set its parameters. |
| ue_assign_materialC | Assign a material to the first mesh component of an actor. |
| ue_create_blueprintC | Create a Blueprint asset from a parent class path or parent Blueprint asset path. |
| ue_add_componentC | Add a component to a Blueprint (StaticMeshComponent or a /Script class path). |
| ue_set_blueprint_defaultB | Set a class default value on a Blueprint and recompile it. |
| ue_open_levelB | Open a level by content path, for example /Game/Maps/MainLevel. |
| ue_new_levelB | Create and open a new level, optionally copied from a template level asset. |
| ue_set_cameraA | Move the editor viewport camera. rotation is [roll, pitch, yaw] in degrees. |
| ue_get_cameraA | Get the editor viewport camera's location and rotation. |
| ue_focus_actorC | Select an actor and point the viewport camera at it. |
| ue_screenshotA | Take a screenshot of the editor viewport and return it as an image. Only works when the MCP server runs on the same machine as the editor. |
| ue_playA | Start simulating the open level in the editor viewport. |
| ue_stop_playA | Stop the active simulate/play-in-editor session. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 31 tools
Each tool has a clearly distinct purpose, targeting specific Unreal Editor resources and actions. Verbs like add, assign, create, delete, spawn, etc., are uniquely paired with nouns, and there is no semantic overlap between tools.
All tools follow the ue_verb_noun or ue_noun_verb pattern consistently. The naming convention is uniform, with verbs in imperative form and nouns identifying the target resource, making it easy to predict tool behavior from its name.
31 tools is on the higher side, but the scope of Unreal Editor operations justifies the count. Tools cover asset management, level editing, actor manipulation, materials, and more, with the ue_python escape hatch reducing the need for additional specialized tools.
The tool surface covers most common editor workflows: CRUD for assets and actors, level operations, material assignment, camera control, and project info. Minor gaps like texture creation are mitigated by import_asset and the ue_python escape hatch.