Skip to content
cccskills
FreePublished on GitHubEnglish overview

unreal-mcp

Control the Unreal Engine editor to build scenes, place objects, adjust lighting and materials, and frame camera shots. The skill guides inspection, incremental edits, visual checks, saving, and producing screenshots or renders.

OriginalShow the original description

Automate Unreal Engine editor scenes, actors, and renders.

Run score Not tested

See how to install

Good for

  • Building and dressing a 3D level
  • Adjusting lighting for a specific mood
  • Framing camera shots and producing renders
  • Importing and placing assets

Overview

What it does

Operate the Unreal Engine editor to build and capture 3D scenes. Place, move, or delete actors—the objects in a scene—and adjust lighting, atmosphere, materials, and camera composition. Import assets and export screenshots or renders. The skill first inspects the scene and available capabilities, then checks the state and appearance after small changes and saves the work.

When it helps

Use it to arrange objects in a game level or create and photograph a sunset landscape or dark interior. Describe the subject and mood in words, then ask it to work through the environment, lighting, materials, and camera in that order.

Example requests

  • “Create a dim forest clearing with a campfire and capture a shot.”
  • “Adjust the sun to give the scene evening light.”

Notes

Open a project in Unreal Editor 5.8+, enable Unreal MCP and AllToolsets, and start the server before connecting Hermes. macOS requires full Xcode and license acceptance. The plugin is experimental; changes may not be reliably undoable. Keep the server restricted to localhost. Under the UE EULA, you are responsible for checking whether the connected LLM uses data for training.

This overview was written by AI (OpenAI Codex) from the public SKILL.md. Check the original below for the exact behavior.

Document check

AI checked the SKILL.md for operations that need care and for setup requirements. The score comes only from actually running the skill (hands-on test).

SafetyAre sending data, deleting files, and running commands disclosed?
AGoodFor editor changes, it prohibits overlapping calls and requires verification and saving before and after bulk changes.
Easy setupDoes it need few tools or API keys, and are they documented?
AGoodIt documents the editor version, both plugins, connection command, and macOS Xcode requirements.

Not counted in the score. Rated by AI (OpenAI Codex) as of Oct 19, 2026. Treat it as a guide and read the original before installing.

Disagree? Request a re-evaluation

Tell us which point is wrong and why. No login needed. We will check it against the SKILL.md, redo the evaluation, and show the result here.

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

Files included (6)

  • SKILL.md13.6 KB
  • references/advanced-workflows.md12.7 KB
  • references/pitfalls.md17.2 KB
  • references/recipes.md10.4 KB
  • references/scene-craft.md12.5 KB
  • references/tool-surface.md19.0 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Unreal Engine MCP Skill

Companion skill for the unreal-engine entry in the Hermes MCP catalog. The MCP server (Epic's official, experimental "Unreal MCP" plugin, internal id ModelContextProtocol) runs INSIDE the Unreal Editor process and exposes editor functionality as typed tools. This skill teaches how to drive it well: discovering the live tool surface, sequencing calls safely, translating plain-English asks into scenes that actually look good, and verifying work visually. The user should never need to touch the editor beyond launching it.

When to Use

Use when the user wants anything done in Unreal Engine: build or dress a level, spawn/move/delete actors, set up lighting and atmosphere, create or tune material instances, frame a camera shot, capture screenshots or renders, import assets, inspect the scene or UI, run automation tests, or script the editor. Works for single actions ("make the sun golden hour") and for complete multi-step projects ("build me a moody forest clearing with a campfire and render a shot of it").

Don't use for: DCC-style mesh modeling/sculpting (model in Blender and import the result), or for editing Unreal C++ project source (that's normal code work — use the terminal; this skill is about the live editor).

Prerequisites

Two halves, in this order: the editor side must be up before Hermes connects.

One-time, editor side

  1. Unreal Editor 5.8+ with a project open. (macOS: full Xcode must be installed and its license accepted — the editor exits on first launch without it; see pitfalls.)
  2. Edit > Plugins — enable Unreal MCP (its Toolset Registry dependency auto-enables). Restart the editor when prompted.
  3. The typed toolsets ship separately from the server: also enable the AllToolsets plugin in the same Plugins browser. Unreal MCP ships NO tools itself — AllToolsets provides the shipped toolsets (SceneTools, ActorTools, MaterialInstanceTools, ObjectTools, …); skip it and the server connects but the agent has nothing to call.
  4. Edit > Editor Preferences > General > Model Context Protocol — enable Auto Start Server. Default bind is http://127.0.0.1:8000/mcp (port/path configurable in the same panel; server name is unreal-mcp). To start manually instead, run ModelContextProtocol.StartServer in the editor console (backtick key).

One-time, Hermes side

hermes mcp install unreal-engine

This writes the mcp_servers.unreal-engine HTTP entry pointing at http://127.0.0.1:8000/mcp and probes the live server for its tools. Run it while the editor + server are up so the probe sees the real surface. If the user changed port/path in Editor Preferences, edit the url in ~/.hermes/config.yaml under mcp_servers.unreal-engine to match.

Do NOT use ModelContextProtocol.GenerateClientConfig for Hermes — that writes .mcp.json-style files for Claude Code/Cursor/etc. Hermes connects from config.yaml via the catalog entry.

Every session

  1. Launch Unreal Editor, wait for the project to finish loading; confirm the server started (Output Log shows the bind address, or run ModelContextProtocol.StartServer manually).
  2. Start the Hermes session. Tools register as mcp_unreal_engine_*. If they're missing: editor wasn't up first — start it, then open a new Hermes session.
  3. Sanity check: call mcp_unreal_engine_list_toolsets and confirm toolsets come back.

The Tool Surface: Discovery, Not a Fixed List

By default the plugin runs in tool-search mode: tools/list returns only three meta-tools, and every real tool is reached through them. Through Hermes they appear as:

Hermes toolPurpose
mcp_unreal_engine_list_toolsetsNames + descriptions of every registered toolset
mcp_unreal_engine_describe_toolsetFull JSON schemas for one named toolset's tools
mcp_unreal_engine_call_toolInvoke a named tool with arguments, get the result

The discovery walk, always in this order:

  1. list_toolsets → see what capability groups this project actually has (the surface is project-dependent: enabled plugins, Game Feature Plugins, and any custom toolsets all contribute). Names come back FULLY QUALIFIED (editor_toolset.toolsets.scene.SceneTools, EditorToolset.EditorAppToolset) — use them verbatim as toolset_name.
  2. describe_toolset on the group you need → read the real parameter schemas. Never guess parameter names — schemas are the contract.
  3. call_tool with the qualified toolset name, the SHORT tool name (find_actors, not the dotted form), and arguments matching the schema.

Cache what you learn for the session; re-list only after the editor side changes (new plugin enabled, toolset authored, RefreshTools run).

The alternative eager mode (Enable Tool Search off in Editor Preferences) advertises every tool as its own mcp_unreal_engine_{tool} entry. Discovery then happens at hermes mcp install/configure time instead. Tool-search mode is the default and what this skill assumes; it also keeps schema tokens out of every API call, so prefer it.

See references/tool-surface.md for the shipped toolset catalog, authoring custom toolsets, and the full plugin configuration/console-command reference.

Operating Loop

Every Unreal task follows the same loop:

  1. Inspect first. List toolsets, then query the scene/level state before touching anything. Never assume an empty or default level. In an unfamiliar project, also check for project-registered Agent Skills (call_tool → AgentSkillToolset.ListSkills): a matching project skill's instructions override this skill's generic defaults.
  2. Act in small, single-purpose calls. One logical step per call_tool. The server executes tools serially on the game thread — a big monolithic operation freezes the editor UI until it finishes and risks client timeouts. Exception: for loops over 5+ homogeneous operations, ONE ProgrammaticToolset.execute_tool_script call batches them server-side without breaking the serial rule (references/advanced-workflows.md).
  3. NEVER issue overlapping calls. Do not batch multiple mcp_unreal_engine_* calls in one turn — Hermes runs batched calls concurrently, and parallel calls against the game thread deadlock or fail. Strictly one call, await result, next call. This overrides the general parallel-tool-calls guidance.
  4. Read every result. Many tools (Blueprint compiles, material edits, widget creation) report success/failure in the response body with no protocol-level exception. Anything that isn't an explicit success is a stop-and-diagnose, not a shrug. After property writes, read the value back — several write paths silently no-op (see pitfalls).
  5. Verify visually and structurally. After each milestone, confirm state by querying the actors/properties you changed, and capture a viewport screenshot when composition matters (see references/tool-surface.md for the capture options; vision_analyze the image — you are the art director, judge it).
  6. Save often. Editor edits are in-memory until packages/levels are saved; an editor crash loses everything since the last save, and MCP edits are not reliably undoable. Save before AND after any bulk change, and after every milestone.
  7. Report concretely. Actor labels, asset paths (/Game/...), file locations of captures/renders.

Rules of the world while you work:

  • Units are centimeters; axes are Z-up, X-forward; rotations are degrees (Rotator: Roll around X, Pitch around Y, Yaw around Z). Human eye height ≈ 165 cm; a door ≈ 210×90 cm. Full tables in references/scene-craft.md.
  • Content paths use long package names: /Game/Folder/Asset.Asset for project content, /Engine/BasicShapes/Cube.Cube for engine primitives.
  • Actor labels (what you see in the Outliner, settable, non-unique) are not actor names (internal, unique). Prefer resolving actors by label/class queries, then hold on to whatever handle the tool returns.
  • Prefer physically-plausible lighting values (lux/candela/Kelvin) over arbitrary brightness numbers — but FIRST read the existing sun's intensity to learn the scene's calibration convention; template worlds are often calibrated around intensity: 10, and physical values blow them out (references/scene-craft.md has the numbers, references/pitfalls.md #12b has the calibration rule).

From Plain English to a Scene

The user gives intent, not specs. Translate before you build:

  1. Extract the brief. Subject, mood, time of day, interior/exterior, style, deliverable (screenshot? render? playable level?). Ask at most one round of clarifying questions, then commit — you are the technical director; don't bounce Unreal jargon back at the user.
  2. Plan the build order. The order that works: level/environment shell → blocking (major geometry/meshes in place) → lighting + atmosphere → materials → set dressing/detail → camera → capture/render. Post the plan as a todo list for multi-step builds.
  3. Build with the loop above, one milestone at a time, screenshot at each milestone.
  4. Art-direct yourself. Compare each screenshot against the brief: readable silhouette? believable light direction/intensity? horizon not dead-center? scale correct against a human-height reference? Fix before moving on.
  5. Deliver. Screenshots/renders as files (MEDIA: path), plus a short summary of what exists in the level and where it was saved.

references/recipes.md has complete worked builds (exterior daylight scene, moody interior, golden-hour cinematic + render, asset import & placement) with the exact call sequences and values.

Reference Files

Load on demand; keep SKILL.md-level rules in mind throughout.

ReferenceContents
references/tool-surface.mdShipped toolsets catalog, discovery protocol detail, plugin console commands/CVars/flags, screenshot & capture paths, MCP Inspector debugging, extending with custom Python/C++ toolsets
references/advanced-workflows.mdSophisticated workflows, live-verified: ProgrammaticToolset batching, Blueprint DSL authoring loop (create→DSL→compile→spawn), PIE test sessions, Sequencer orientation (140 tools), LogsToolset self-debugging, automation testing, semantic asset search, config settings, per-situation decision table
references/scene-craft.mdNumeric cheat sheet: physical light intensities, color temperatures, exposure/EV100, fog densities, mood recipes (noon/golden hour/overcast/night/interior), scale tables, content path conventions
references/recipes.mdEnd-to-end worked builds with exact call sequences
references/pitfalls.mdSetup, runtime, and workflow pitfalls with fixes — read before your first session and whenever something misbehaves

Pitfalls (top of mind — full list in references/pitfalls.md)

  • Start order matters. Editor + server up first, then the Hermes session. Missing mcp_unreal_engine_* tools = wrong order.
  • One call at a time. Serial game thread; no batching, no overlap.
  • The editor UI freezes during each call. That's by design (game-thread execution). Warn the user during long operations; keep calls small.
  • Modal dialogs block everything. A tool call that opens (or collides with) a modal editor dialog stalls until a human dismisses it. If a call hangs indefinitely, tell the user to check the editor for a dialog.
  • Timeouts on long operations. Hermes' per-call default is 120 s; asset imports, big level saves, and renders can exceed it. Raise mcp_servers.unreal-engine.timeout in ~/.hermes/config.yaml for render/import-heavy sessions.
  • Stale tool schemas. After authoring/hot-reloading toolsets or enabling a plugin, run ModelContextProtocol.RefreshTools in the editor console and re-list_toolsets. New C++ UFUNCTIONs need a full editor restart — Live Coding won't surface them.
  • Experimental plugin. APIs and tool shapes can change between engine versions; trust describe_toolset over memory, including this skill's examples. When docs and the live schema disagree, the live schema wins.
  • Don't expose the server beyond localhost. Loopback-only, no auth, by design. Never suggest binding it wider.
  • Licensing note. The server logs on start: data transmitted via the plugin to a connected LLM service is Licensed Technology under the UE EULA (§6(e)) — the user is responsible for ensuring their LLM provider doesn't train on it. Surface this if the user asks about data handling.

Verification Checklist

  • list_toolsets returns toolsets at session start (connection healthy)
  • Scene state queried before first edit (never assumed empty)
  • After each milestone: changed actors/properties re-queried and a screenshot reviewed against the brief
  • Level/dirty packages saved after each milestone and at the end
  • Deliverables exist on disk (screenshot/render paths confirmed) and are reported to the user with absolute paths
  • Editor left in a clean state: no pending modal, no unsaved surprise, user told exactly what was created/changed and where

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

1password

FreeSummary

Set up the 1Password CLI and use stored passwords or API keys in commands and configuration templates. Choose an authentication method, retrieve secret references, and pass credentials to processes through environment variables.

  • Installing and configuring the 1Password CLI
  • Running commands with stored API keys
  • Filling configuration templates with stored secrets
NousResearch/hermes-agent256.5KUpdated Oct 23, 2026

Build an Excel workbook linking the income statement, balance sheet, and cash flow statement. Populate historical figures, create formula-based forecasts, compare scenarios, and check that balances and cash totals agree across all three statements.

  • Populating a financial model template with historical data
  • Building linked forecasts across three financial statements
  • Comparing base, upside, and downside scenarios
NousResearch/hermes-agent256.5KUpdated Oct 23, 2026

accelerate

FreeSummary

Adapt existing PyTorch training scripts to use multiple GPUs or machines with limited code changes. The skill guides configuration, launch commands, mixed precision, which uses lower-precision numbers, and DeepSpeed or FSDP settings for distributing training work and memory.

  • Move a single-GPU training script to multiple GPUs
  • Configure mixed precision training
  • Set up DeepSpeed or FSDP to reduce memory use
NousResearch/hermes-agent256.5KUpdated Oct 23, 2026

actual-setup

FreeSummary

Configure Hermes to run AI models through Actual Computer on your own hardware. Set up either the hosted relay or a local connection, select models, verify responses, and troubleshoot request errors or empty output.

  • Connecting Hermes with an Actual inference key
  • Running models through a local Actual daemon
  • Downloading and loading local models
NousResearch/hermes-agent256.5KUpdated Oct 23, 2026

Test an app from the perspective of a frustrated, less technical user. Find confusing steps and barriers, separate actionable usability problems from personal complaints, and produce screenshots, suggested fixes, and prioritized tickets.

  • Reviewing usability before a launch or demo
  • Checking the experience of a new user
  • Finding friction in signup and subscription flows
NousResearch/hermes-agent256.5KUpdated Oct 23, 2026

Resolve Git merge conflicts between two agents by comparing both changes and their stated goals. Combine compatible work, explain choices where designs differ, and verify the merged result with project builds or tests.

  • Resolving conflicts between branches edited by two agents
  • Integrating changes from parallel worktrees
  • Reviewing reasons for conflicting design choices
NousResearch/hermes-agent256.5KUpdated Oct 23, 2026

See all skills by NousResearch

Report a problem with this skill