ascent-unreal-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ASCENT_ROOT | No | Repository root (default: cwd/../..). | cwd/../.. |
| ASCENT_UPROJECT | No | Project path (default: ASCENT_ROOT/Ascent/Ascent.uproject). | ASCENT_ROOT/Ascent/Ascent.uproject |
| UNREAL_EDITOR_CMD | No | Commandlet executable (default: UE 5.7 Program Files). | UE 5.7 Program Files |
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| unreal_run_python_scriptA | Run an existing python script from the repo scripts/ folder through a headless commandlet. Optional args reach the script via sys.argv (no whitespace in an arg). Output is filtered to marker lines (default: 'MCP |LogPython') — have your script unreal.log() what matters. |
| unreal_probe_actorA | READ-ONLY: load a map and read actor properties by their editor display names (e.g. 'Use Auroras', 'Ultra Dynamic Weather'). Matches actors whose label OR class contains actorMatch (case-insensitive). This is the tool shape that found the dead aurora switch and the null sky->weather reference — read back the ACTUAL state instead of trusting push logs. |
| unreal_set_actor_propertiesB | Set editor-display-name properties on matching actors in a map, then SAVE the map. Values are converted to python literals safely (booleans included). Mutating: refuses while an editor is open unless allowWithEditorOpen. |
| unreal_duplicate_mapB | Duplicate a /Game/... map asset. Mutating: refuses while an editor is open unless allowWithEditorOpen. |
| unreal_apply_material_to_actorA | Assign a material to a slot on a named actor's static mesh component in one map, then save. Mutating: refuses while an editor is open unless allowWithEditorOpen. |
| uds_inspect_levelA | READ-ONLY: report the sky (UDS) and weather (UDW) actors in a map with the fields that have actually burned us: aurora/space master switches, the sky->UDW reference, snow/rain state, manual-override pins, time of day. Returns one MCP INSPECT_JSON line. |
| uds_apply_presetA | Apply a named editor-time UDS lookdev preset to the sky actor and save the map. WARNING: runtime phase profiles (DA_TOD_*) override these every tick in-game — this is for in-editor look checks only. Mutating: refuses while an editor is open unless allowWithEditorOpen. |
| ascent_unreal_statusA | Server/environment status: paths, whether an Unreal editor is currently running (file-lock risk for mutating tools), and generated-script housekeeping. |
| unreal_list_assetsA | READ-ONLY: query the asset registry under a /Game path, optionally filtering by class-name and asset-name substrings. Cheap discovery before probe/set tools. |
| unreal_asset_probeA | READ-ONLY: read properties by display name off ANY asset — DataAssets (e.g. TOD profiles), meshes, materials — or a Blueprint's class defaults (classDefaults: true). The asset-side sibling of unreal_probe_actor. |
| unreal_set_asset_propertiesA | Set simple-valued properties (number/bool/string; a /Game/... string is auto-loaded as an object reference) on an asset or a Blueprint's class defaults, then save the asset. Struct/array properties are NOT supported — use unreal_run_python_script for those. |
| unreal_spawn_actorsA | Batch-spawn actors into a map and save. Each entry: source (a /Game static mesh or Blueprint asset, or a /Script/Module.Class), label, location, optional rotation/scale/tags. clearTag first deletes every actor carrying that tag (idempotent re-runs). NOTE: headless commandlets have no physics scene — no ground traces; supply explicit Z. |
| unreal_import_assetsA | Batch-import files (FBX meshes, PNG/JPG textures, WAV) into /Game destinations via AssetImportTask. textureType configures compression: 'normal' (TC_Normalmap, sRGB off), 'mask' (sRGB off), 'color' (default). Files must live inside the repo. Big texture batches can exhaust headless memory — chunk them. |
| unreal_create_material_instanceB | Create (or update) a MaterialInstanceConstant from a parent material and set scalar/vector/texture parameters, then save. |
| unreal_import_animationA | Import an animation-only FBX onto an EXISTING skeleton (the Trekker pipeline: no mesh, exported-time length, no default sample rate). Post-tune the sequence with unreal_set_asset_properties if needed. |
| unreal_snapshot_levelA | Regenerate the level snapshot markdown (label, class, transform, tags for every actor) that CLAUDE.md declares the authoritative source of level truth. Writes inside the repo. |
| ascent_apply_then_verifyB | Run a repo script, then — in the SAME commandlet boot — probe an actor or asset and check expectations against the read-back values. The whole call fails unless the script succeeds AND every expectation passes. 'Probe before you believe', as infrastructure: a mutation that can't prove itself didn't happen. |
| unreal_screenshotA | THE EYES: launch a -game instance of a map, wait for it to settle, teleport through vantages (BugItGo) and/or run console commands, screen-capture each, kill the game, return PNG paths. This is the pattern every visual verification this project ever did was built on. Windows-only; steals foreground focus while capturing. Serialized with all other runs. |
| weather_capture_phase_stillsA | One-call arc verification: set a TOD profile's driver to a fast FixedTimer, launch the map in -game, detect the run start from the log, capture a screenshot as each PHASE becomes active (named by phase), kill the game, and restore the original driver. Needs the machine idle-ish: captures are focus-verified and report NOFOCUS if you're typing elsewhere. |
| anim_audit_assetsA | READ-ONLY animation audit for a skeleton: every AnimSequence (play length, rate scale, additive), BlendSpace (sample positions + which sequence at which speed), Montage, and AnimBlueprint under a search path, plus which assets the AnimBP actually references (orphan detection via the asset registry). The state-machine GRAPH itself is Blueprint territory — audit that via the live UnrealClaude plugin, not headless. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/JulianIrigoyen/ascent-unreal-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server