Skip to content

Commit b3ff1ba

Browse files
authored
docs(unreal-engine-mcp-server): enhance tool descriptions and update server overview (github#264)
1 parent 3df26b6 commit b3ff1ba

File tree

2 files changed

+14
-14
lines changed

2 files changed

+14
-14
lines changed

servers/unreal-engine-mcp-server/server.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ meta:
1111
- editor
1212
about:
1313
title: Unreal Engine MCP Server
14-
description: MCP server for controlling Unreal Engine via Remote Control API. Features intelligent asset path handling, circular reference-safe responses, and 13 consolidated tools covering actors, assets, editor control, cinematics, physics, and more. Supports both simple shape names ("Cube") and full asset paths ("/Engine/BasicShapes/Cube") with automatic StaticMeshActor spawning. Handles common AI assistant usage patterns seamlessly.
14+
description: 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.
1515
icon: https://raw.githubusercontent.com/ChiR24/Unreal_mcp/main/Public/icon.png
1616
source:
1717
project: https://github.com/ChiR24/Unreal_mcp

servers/unreal-engine-mcp-server/tools.json

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[
22
{
33
"name": "manage_asset",
4-
"description": "Manage assets - list, import, create materials",
4+
"description": "Search, browse, import, and create simple material assets.\n\nWhen to use this tool:\n- You want to list assets in the project Content directory (use /Game; /Content is auto-mapped).\n- You want to import files from disk into the project (e.g., FBX, PNG, WAV, EXR).\n- You want to generate a very basic Material asset by name at a path.\n\nSupported actions:\n- list: Returns assets in a folder (recursive behavior is auto-enabled for /Game).\n- import: Imports a file into the project at a destination path (e.g., /Game/Folder).\n- create_material: Creates a simple Material asset at a path.\n\nTips:\n- Unreal uses /Game for project content; this server maps /Content → /Game automatically.\n- For large projects, listing /Game returns a sample subset for speed; refine to subfolders.\n\nExamples:\n- {\"action\":\"list\",\"directory\":\"/Game/ThirdPerson\"}\n- {\"action\":\"import\",\"sourcePath\":\"C:/Temp/Tree.fbx\",\"destinationPath\":\"/Game/Environment/Trees\"}\n- {\"action\":\"create_material\",\"name\":\"M_Mask\",\"path\":\"/Game/Materials\"}",
55
"arguments": [
66
{
77
"name": "action",
@@ -42,7 +42,7 @@
4242
},
4343
{
4444
"name": "control_actor",
45-
"description": "Control actors - spawn, delete, apply physics. Intelligently handles actor classes (StaticMeshActor, CameraActor) AND asset paths (/Engine/BasicShapes/Cube) or simple names (Cube, Sphere) with automatic StaticMeshActor spawning. AI-friendly with smart path resolution.",
45+
"description": "Spawn, delete, and apply physics to actors in the level.\n\nWhen to use this tool:\n- Place an actor/mesh, remove an actor, or nudge an actor with a physics force.\n\nSupported actions:\n- spawn\n- delete\n- apply_force\n\nSpawning:\n- classPath can be a class name (e.g., StaticMeshActor, CameraActor) OR an asset path (e.g., /Engine/BasicShapes/Cube, /Game/Meshes/SM_Rock).\n- Asset paths auto-spawn StaticMeshActor with the mesh assigned.\n\nDeleting:\n- Finds actors by label/name (case-insensitive) and deletes matches.\n\nApply force:\n- Applies a world-space force vector to an actor with physics enabled.\n\nTips:\n- classPath accepts classes or asset paths; simple names like Cube auto-resolve to engine assets.\n- location/rotation are optional; defaults are used if omitted.\n- For delete/apply_force, provide actorName.\n\nExamples:\n- {\"action\":\"spawn\",\"classPath\":\"/Engine/BasicShapes/Cube\",\"location\":{\"x\":0,\"y\":0,\"z\":100}}\n- {\"action\":\"delete\",\"actorName\":\"Cube_1\"}\n- {\"action\":\"apply_force\",\"actorName\":\"PhysicsBox\",\"force\":{\"x\":0,\"y\":0,\"z\":5000}}",
4646
"arguments": [
4747
{
4848
"name": "action",
@@ -78,7 +78,7 @@
7878
},
7979
{
8080
"name": "control_editor",
81-
"description": "Control editor - PIE mode, camera, viewport",
81+
"description": "Play/Stop PIE, position the editor camera, and switch common view modes.\n\nWhen to use this tool:\n- Start/stop a PIE session, move the viewport camera, or change viewmode (Lit/Unlit/Wireframe/etc.).\n\nSupported actions:\n- play\n- stop\n- set_camera\n- set_view_mode\n\nNotes:\n- View modes are validated; unsafe modes are blocked.\n- Camera accepts location/rotation (optional); values normalized.\n\nExamples:\n- {\"action\":\"play\"}\n- {\"action\":\"set_camera\",\"location\":{\"x\":0,\"y\":-600,\"z\":250},\"rotation\":{\"pitch\":0,\"yaw\":0,\"roll\":0}}\n- {\"action\":\"set_view_mode\",\"viewMode\":\"Wireframe\"}\n- {\"action\":\"stop\"}",
8282
"arguments": [
8383
{
8484
"name": "action",
@@ -104,7 +104,7 @@
104104
},
105105
{
106106
"name": "manage_level",
107-
"description": "Manage levels and lighting",
107+
"description": "Load/save/stream levels, create lights, and trigger lighting builds.\n\nWhen to use this tool:\n- Switch to a level, save the current level, stream sublevels, add a light, or start a lighting build.\n\nSupported actions:\n- load\n- save\n- stream\n- create_light\n- build_lighting\n\nTips:\n- Use /Game paths for levels (e.g., /Game/Maps/Level).\n- For streaming, set shouldBeLoaded and shouldBeVisible accordingly.\n- For lights, provide lightType and optional location/intensity.\n\nExamples:\n- {\"action\":\"load\",\"levelPath\":\"/Game/Maps/Lobby\"}\n- {\"action\":\"stream\",\"levelName\":\"Sublevel_A\",\"shouldBeLoaded\":true,\"shouldBeVisible\":true}\n- {\"action\":\"create_light\",\"lightType\":\"Directional\",\"name\":\"KeyLight\",\"intensity\":5.0}\n- {\"action\":\"build_lighting\",\"quality\":\"High\"}",
108108
"arguments": [
109109
{
110110
"name": "action",
@@ -145,7 +145,7 @@
145145
},
146146
{
147147
"name": "animation_physics",
148-
"description": "Animation and physics control",
148+
"description": "Create animation blueprints, play montages, and set up simple ragdolls.\n\nWhen to use this tool:\n- Generate an Anim Blueprint for a skeleton, play a Montage/Animation on an actor, or enable ragdoll.\n\nSupported actions:\n- create_animation_bp\n- play_montage\n- setup_ragdoll\n\nTips:\n- Ensure the montage/animation is compatible with the target actor/skeleton.\n- setup_ragdoll requires a valid physicsAssetName on the skeleton.\n- Use savePath when creating new assets.\n\nExamples:\n- {\"action\":\"create_animation_bp\",\"name\":\"ABP_Hero\",\"skeletonPath\":\"/Game/Characters/Hero/SK_Hero_Skeleton\",\"savePath\":\"/Game/Characters/Hero\"}\n- {\"action\":\"play_montage\",\"actorName\":\"Hero\",\"montagePath\":\"/Game/Anim/MT_Attack\"}\n- {\"action\":\"setup_ragdoll\",\"skeletonPath\":\"/Game/Characters/Hero/SK_Hero_Skeleton\",\"physicsAssetName\":\"PHYS_Hero\"}",
149149
"arguments": [
150150
{
151151
"name": "action",
@@ -176,7 +176,7 @@
176176
},
177177
{
178178
"name": "create_effect",
179-
"description": "Create visual effects and particles",
179+
"description": "Create particles/FX and lightweight debug shapes for rapid iteration.\n\nWhen to use this tool:\n- Spawn a Niagara system at a location, create a particle effect by type tag, or draw debug geometry for planning.\n\nSupported actions:\n- particle\n- niagara\n- debug_shape\n\nTips:\n- Set color as RGBA [r,g,b,a]; scale defaults to 1 if omitted.\n- Use debug shapes for quick layout planning and measurements.\n\nExamples:\n- {\"action\":\"niagara\",\"systemPath\":\"/Game/FX/NS_Explosion\",\"location\":{\"x\":0,\"y\":0,\"z\":200},\"scale\":1.0}\n- {\"action\":\"particle\",\"effectType\":\"Smoke\",\"name\":\"SMK1\",\"location\":{\"x\":100,\"y\":0,\"z\":50}}\n- {\"action\":\"debug_shape\",\"shape\":\"Sphere\",\"location\":{\"x\":0,\"y\":0,\"z\":0},\"size\":100,\"duration\":5}",
180180
"arguments": [
181181
{
182182
"name": "action",
@@ -207,7 +207,7 @@
207207
},
208208
{
209209
"name": "manage_blueprint",
210-
"description": "Create and manage blueprints",
210+
"description": "Create new Blueprints and add components programmatically.\n\nWhen to use this tool:\n- Quickly scaffold a Blueprint asset or add a component to an existing Blueprint.\n\nSupported actions:\n- create\n- add_component\n\nTips:\n- blueprintType can be Actor, Pawn, Character, etc.\n- Component names should be unique within the Blueprint.\n\nExamples:\n- {\"action\":\"create\",\"name\":\"BP_Switch\",\"blueprintType\":\"Actor\",\"savePath\":\"/Game/Blueprints\"}\n- {\"action\":\"add_component\",\"name\":\"BP_Switch\",\"componentType\":\"PointLightComponent\",\"componentName\":\"KeyLight\"}",
211211
"arguments": [
212212
{
213213
"name": "action",
@@ -238,7 +238,7 @@
238238
},
239239
{
240240
"name": "build_environment",
241-
"description": "Build environments - landscapes, foliage, terrain",
241+
"description": "Environment authoring helpers (landscape, foliage).\n\nWhen to use this tool:\n- Create a procedural terrain alternative, add/paint foliage, or attempt a landscape workflow.\n\nSupported actions:\n- create_landscape\n- sculpt\n- add_foliage\n- paint_foliage\n\nImportant:\n- Native Landscape creation via Python is limited and may return a helpful error suggesting Landscape Mode in the editor.\n- Foliage helpers create FoliageType assets and support simple placement.\n\nTips:\n- Adjust brushSize and strength to tune sculpting results.\n\nExamples:\n- {\"action\":\"create_landscape\",\"name\":\"Landscape_Basic\",\"sizeX\":1024,\"sizeY\":1024}\n- {\"action\":\"add_foliage\",\"name\":\"FT_Grass\",\"meshPath\":\"/Game/Foliage/SM_Grass\",\"density\":300}\n- {\"action\":\"paint_foliage\",\"foliageType\":\"/Game/Foliage/Types/FT_Grass\",\"position\":{\"x\":0,\"y\":0,\"z\":0},\"brushSize\":300}",
242242
"arguments": [
243243
{
244244
"name": "action",
@@ -264,7 +264,7 @@
264264
},
265265
{
266266
"name": "system_control",
267-
"description": "System-wide control - profiling, quality, sound, UI",
267+
"description": "Performance toggles, quality settings, audio playback, simple UI helpers, screenshots, and engine lifecycle.\n\nWhen to use this tool:\n- Toggle profiling and FPS stats, adjust quality (sg.*), play a sound, create/show a basic widget, take a screenshot, or launch/quit the editor.\n\nSupported actions:\n- profile\n- show_fps\n- set_quality\n- play_sound\n- create_widget\n- show_widget\n- screenshot\n- engine_start\n- engine_quit\n\nTips:\n- Screenshot resolution format: 1920x1080.\n- engine_start can read UE project path from env; provide editorExe/projectPath if needed.\n\nExamples:\n- {\"action\":\"show_fps\",\"enabled\":true}\n- {\"action\":\"set_quality\",\"category\":\"Shadows\",\"level\":2}\n- {\"action\":\"play_sound\",\"soundPath\":\"/Game/Audio/SFX/Click\",\"volume\":0.5}\n- {\"action\":\"screenshot\",\"resolution\":\"1920x1080\"}",
268268
"arguments": [
269269
{
270270
"name": "action",
@@ -295,7 +295,7 @@
295295
},
296296
{
297297
"name": "console_command",
298-
"description": "Execute Unreal Engine console commands",
298+
"description": "Execute an Unreal console command with built-in safety.\n\nWhen to use this tool:\n- Fire a specific command (e.g., stat fps, viewmode wireframe, r.ScreenPercentage 75).\n\nSafety:\n- Dangerous commands are blocked (quit/exit, GPU crash triggers, unsafe visualizebuffer modes, etc.).\n- Unknown commands return a warning instead of crashing.\n\nTips:\n- Prefer dedicated tools (system_control, control_editor) when available for more structured control.\n\nExamples:\n- {\"command\":\"stat fps\"}\n- {\"command\":\"viewmode wireframe\"}\n- {\"command\":\"r.ScreenPercentage 75\"}",
299299
"arguments": [
300300
{
301301
"name": "command",
@@ -306,7 +306,7 @@
306306
},
307307
{
308308
"name": "manage_rc",
309-
"description": "Manage Remote Control presets and exposed properties",
309+
"description": "Create and manage Remote Control presets; expose actors/properties; set/get values.\n\nWhen to use this tool:\n- Automate Remote Control (RC) preset authoring and interaction.\n\nSupported actions:\n- create_preset\n- expose_actor\n- expose_property\n- list_fields\n- set_property\n- get_property\n\nTips:\n- value must be JSON-serializable.\n- Use objectPath/presetPath with full asset/object paths.\n\nExamples:\n- {\"action\":\"create_preset\",\"name\":\"LivePreset\",\"path\":\"/Game/RCPresets\"}\n- {\"action\":\"expose_actor\",\"presetPath\":\"/Game/RCPresets/LivePreset\",\"actorName\":\"CameraActor\"}\n- {\"action\":\"expose_property\",\"presetPath\":\"/Game/RCPresets/LivePreset\",\"objectPath\":\"/Script/Engine.Default__Engine\",\"propertyName\":\"GameUserSettings\"}\n- {\"action\":\"list_fields\",\"presetPath\":\"/Game/RCPresets/LivePreset\"}\n- {\"action\":\"set_property\",\"objectPath\":\"/Game/MyActor\",\"propertyName\":\"CustomFloat\",\"value\":0.5}",
310310
"arguments": [
311311
{
312312
"name": "action",
@@ -337,7 +337,7 @@
337337
},
338338
{
339339
"name": "manage_sequence",
340-
"description": "Manage Sequencer/cinematics",
340+
"description": "Create/open Level Sequences, bind actors, add cameras, and control playback.\n\nWhen to use this tool:\n- Build quick cinematics: create/open a sequence, add a camera or actors, tweak properties, and play.\n\nSupported actions:\n- create\n- open\n- add_camera\n- add_actor\n- add_actors\n- remove_actors\n- get_bindings\n- add_spawnable_from_class\n- play\n- pause\n- stop\n- set_properties\n- get_properties\n- set_playback_speed\n\nTips:\n- Set spawnable=true to auto-create a camera actor.\n- Use frameRate/lengthInFrames to define timing; use playbackStart/End to trim.\n\nExamples:\n- {\"action\":\"create\",\"name\":\"Intro\",\"path\":\"/Game/Cinematics\"}\n- {\"action\":\"add_camera\",\"spawnable\":true}\n- {\"action\":\"add_actor\",\"actorName\":\"Hero\"}\n- {\"action\":\"play\",\"loopMode\":\"once\"}\n- {\"action\":\"set_properties\",\"path\":\"/Game/Cinematics/Intro\",\"frameRate\":24,\"lengthInFrames\":480}",
341341
"arguments": [
342342
{
343343
"name": "action",
@@ -373,7 +373,7 @@
373373
},
374374
{
375375
"name": "inspect",
376-
"description": "Introspection - inspect objects and properties",
376+
"description": "Read object info and set properties with validation.\n\nWhen to use this tool:\n- Inspect an object by path (class default object or actor/component) and optionally modify properties.\n\nSupported actions:\n- inspect_object\n- set_property\n\nTips:\n- propertyName is case-sensitive; ensure it exists on the target object.\n- For class default objects (CDOs), use the /Script/...Default__Class path.\n\nExamples:\n- {\"action\":\"inspect_object\",\"objectPath\":\"/Script/Engine.Default__Engine\"}\n- {\"action\":\"set_property\",\"objectPath\":\"/Game/MyActor\",\"propertyName\":\"CustomBool\",\"value\":true}",
377377
"arguments": [
378378
{
379379
"name": "action",

0 commit comments

Comments
 (0)