unreal-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| set_unreal_engine_pathC | Set the Unreal Engine path |
| set_unreal_project_pathD | Set the Project path |
| get_unreal_engine_pathB | Get the current Unreal Engine path |
| get_unreal_project_pathB | Get the current Unreal Project path |
| editor_run_pythonB | Execute any python within the Unreal Editor. All python must have |
| editor_list_assetsB | List all Unreal assets Example output: [''/Game/Characters/Hero/BP_Hero'', ''/Game/Maps/TestMap'', ''/Game/Materials/M_Basic''] Returns a Python list of asset paths. |
| editor_export_assetC | Export an Unreal asset to text Example output: Binary data of the exported asset file Returns the raw binary content of the exported asset. |
| editor_get_asset_infoC | Get information about an asset, including LOD levels for StaticMesh and SkeletalMesh assets Example output: [{'name': 'SM_Cube', 'is_valid': True, 'is_u_asset': True, 'is_asset_loaded': True, 'class': 'StaticMesh', 'path': '/Game/Meshes/SM_Cube', 'package': 'SM_Cube', 'package_path': '/Game/Meshes/SM_Cube', 'lod_levels': [{'lod_index': 0, 'num_vertices': 24, 'num_triangles': 12}, {'lod_index': 1, 'num_vertices': 16, 'num_triangles': 8}]}] Returns asset metadata with LOD information for mesh assets. |
| editor_get_asset_referencesC | Get references for an asset Example output: [{'name': '/Game/Materials/M_Character.M_Character', 'class': 'Material'}, {'name': '/Game/Blueprints/BP_Player.BP_Player', 'class': 'Blueprint'}] Returns list of assets that reference the specified asset. |
| editor_console_commandC | Run a console command in Unreal Example output: (No output for most commands, executed silently) Executes the console command without returning output. |
| editor_project_infoA | Get detailed information about the current project Example output: {'project_name': 'MyGame', 'project_directory': '/Users/dev/MyGame/', 'engine_version': '5.3.0', 'total_assets': 1250, 'asset_locations': {'Game': 800, 'Engine': 450}, 'enhanced_input_enabled': true, 'input_actions': ['/Game/Input/IA_Move'], 'game_modes': ['/Game/Core/GM_Main'], 'characters': ['/Game/Characters/B_Hero'], 'maps': ['/Game/Maps/L_TestMap']} Returns comprehensive project metadata and asset counts. |
| editor_get_map_infoA | Get detailed information about the current map/level Example output: {'map_name': 'TestMap', 'map_path': '/Game/Maps/TestMap', 'total_actors': 45, 'actor_types': {'StaticMeshActor': 20, 'DirectionalLight': 1, 'PlayerStart': 1}, 'lighting': {'has_lightmass_importance_volume': false, 'directional_lights': 1, 'point_lights': 3, 'spot_lights': 0}, 'streaming_levels': 0, 'streaming_level_names': []} Returns current level information with actor counts and lighting details. |
| editor_search_assetsB | Search for assets by name or path with optional class filter Example output: {'search_term': 'character', 'asset_class_filter': 'Blueprint', 'total_matches': 3, 'assets': [{'name': 'BP_Character', 'path': '/Game/Characters', 'class': 'Blueprint', 'package_name': 'BP_Character'}, {'name': 'BP_EnemyCharacter', 'path': '/Game/Enemies', 'class': 'Blueprint', 'package_name': 'BP_EnemyCharacter'}]} Returns search results with asset details, limited to 50 results. |
| editor_get_world_outlinerA | Get all actors in the current world with their properties Example output: {'world_name': 'TestMap', 'total_actors': 45, 'actors': [{'name': 'StaticMeshActor_0', 'class': 'StaticMeshActor', 'location': {'x': 0.0, 'y': 0.0, 'z': 0.0}, 'rotation': {'pitch': 0.0, 'yaw': 0.0, 'roll': 0.0}, 'scale': {'x': 1.0, 'y': 1.0, 'z': 1.0}, 'is_hidden': false, 'folder_path': '/Meshes', 'components': ['StaticMeshComponent', 'SceneComponent']}]} Returns complete world outliner with all actors and their transform data. |
| editor_validate_assetsB | Validate assets in the project to check for errors Example output: {'total_validated': 100, 'valid_assets': [{'path': '/Game/Meshes/SM_Cube', 'class': 'StaticMesh', 'size': '1024'}], 'invalid_assets': [{'path': '/Game/Missing/Asset', 'error': 'Asset does not exist'}], 'validation_summary': {'valid_count': 95, 'invalid_count': 5, 'success_rate': 95.0}} Returns validation results with asset status and error details. |
| editor_create_objectB | Create a new object/actor in the world Example output: {'success': true, 'actor_name': 'StaticMeshActor_1', 'actor_label': 'MyCube', 'class': 'StaticMeshActor', 'location': {'x': 100.0, 'y': 200.0, 'z': 0.0}, 'rotation': {'pitch': 0.0, 'yaw': 45.0, 'roll': 0.0}, 'scale': {'x': 1.0, 'y': 1.0, 'z': 1.0}} Returns created actor details with final transform values. |
| editor_update_objectC | Update an existing object/actor in the world Example output: {'success': true, 'actor_name': 'StaticMeshActor_1', 'actor_label': 'UpdatedCube', 'class': 'StaticMeshActor', 'location': {'x': 150.0, 'y': 200.0, 'z': 50.0}, 'rotation': {'pitch': 0.0, 'yaw': 90.0, 'roll': 0.0}, 'scale': {'x': 2.0, 'y': 2.0, 'z': 2.0}} Returns updated actor details with new transform values. |
| editor_delete_objectB | Delete an object/actor from the world Example output: {'success': true, 'message': 'Successfully deleted actor: MyCube', 'deleted_actor': {'actor_name': 'StaticMeshActor_1', 'actor_label': 'MyCube', 'class': 'StaticMeshActor', 'location': {'x': 100.0, 'y': 200.0, 'z': 0.0}}} Returns deletion confirmation with details of the deleted actor. |
| editor_take_screenshotA | Take a screenshot of the Unreal Editor Example output: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA... Returns a base64-encoded PNG image of the current editor view. IF THIS ERRORS OUT MAKE SURE THE UNREAL ENGINE WINDOW IS FOCUSED |
| editor_move_cameraB | Move the viewport camera to a specific location and rotation for positioning screenshots |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| docs |
TDQS
Scored across 20 tools
Most tools have distinct purposes, such as editor_create_object for creation and editor_delete_object for deletion, with clear boundaries. However, some tools like editor_get_asset_info and editor_get_asset_references could be slightly overlapping in providing asset metadata, but descriptions help differentiate them.
Tool names follow a consistent snake_case pattern with a clear 'editor_' prefix for most tools, and a 'get_'/'set_' pattern for path-related tools. This uniformity makes the set predictable and easy to navigate, with no mixing of conventions.
With 20 tools, the count is slightly high but reasonable for an Unreal Editor server, covering a broad range of operations from asset management to world editing. It might feel a bit heavy, but each tool appears to serve a specific function in the domain.
The tool set provides comprehensive coverage for Unreal Editor tasks, including CRUD operations for objects (create, update, delete), asset management (list, search, validate), project and map info, and utilities like screenshots and console commands. No obvious gaps are present for the stated purpose.