-
Notifications
You must be signed in to change notification settings - Fork 169
Resources and Prompts
Besides the unreal tool, the server offers the other MCP building blocks. Client support for them varies, and everything the editor can do goes through the tool, so none of this is required.
|
📖 Resources |
🧾 Prompts |
⌨️ Completions |
📶 Progress and cancellation |
Both routes advertise the same capabilities at initialize:
{ "tools": {}, "resources": {}, "prompts": {}, "completions": {} }At initialize, both routes send the same instructions text: the search › describe › execute workflow, how to recover from each kind of error, and path conventions. Most clients inject it into the model's context once per session. On the native route, the Server Instructions plugin setting is appended (⚙️ Configuration).
| URI | Contents | stdio | native |
|---|---|---|---|
ue://capability/catalog |
Bounded summary of the capability catalog. Its revision changes when configure changes what is enabled. |
✅ | ✅ |
ue://project |
Project name (redacted), engine version, content root | ✅ | ✅ |
ue://state/revisions |
Counters for selection, level, asset registry and packages. Pin them in options.expectedRevisions to refuse stale writes. |
✅ | ✅ |
ue://health |
Server health, readiness and diagnostics | ✅ | ✅ |
ue://automation-bridge |
Bridge diagnostics and recent activity | ✅ | ✅ |
ue://assets |
Project assets | ✅ | — |
ue://actors |
Actors in the current level | ✅ | — |
ue://editor |
PIE status and current level | ✅ | — |
ue://selection |
Handles of the selected actors | ✅ | — |
Templates (both routes):
| Template | Contents |
|---|---|
ue://capability/{capabilityId} |
A short record for one capability. For the full contract, use describe. |
ue://knowledge/{topic} |
Stable Unreal reference notes on a topic |
ue://asset/{assetPath} |
A normalized handle for the asset at a content path |
Every read is capped at 64 KiB, and paths are normalized and redacted.
Note
The four live-state resources (assets, actors, editor, selection) need the editor's game thread. The stdio server fetches them through the bridge. The native server answers resource reads on its socket thread, where it can't wait for the editor, so it doesn't offer them (RESOURCE_UNAVAILABLE). The same information is available on both routes through capabilities such as control_actor.list and inspect.get_editor_state.
prompts/list returns six workflow templates. Getting a prompt only returns text messages; it never runs anything. Clients that surface prompts often show them as slash commands.
| Prompt | Walks through | Arguments (* required) |
|---|---|---|
🔧 inspect-fix
|
Inspecting a UObject and correcting one property, one reviewed call at a time |
objectPath*, propertyName, newValue
|
📥 asset-import
|
Checking the destination, importing from a source you supply, validating the result |
destinationPath*, sourceFormat
|
🏗️ level-build
|
Creating a working level, building its lighting, saving it |
levelPath* |
🧩 blueprint-edit
|
Reading a Blueprint, adding a variable and a component, compiling |
blueprintPath*, variableName
|
✔️ validation
|
Read-only validation of the project, an asset and the current level | assetPath |
🎬 sequence-render
|
Preparing and running a Movie Render Queue job for a level sequence |
sequencePath*, outputFormat
|
completion/complete suggests values for prompt arguments and for the three template variables (capabilityId, topic, assetPath). Matches rank prefix first, then substring, subsequence, and single typos. Results are capped at 100 values.
Send _meta.progressToken with a tools/call, and you receive notifications/progress for that call, driven by the editor's own progress events (imports, builds, renders). The token is echoed exactly as you sent it; without a token, no progress is sent. On the stdio route, progress also extends the call's deadline, 30 seconds at a time.
Both routes honor notifications/cancelled:
| The request is… | What happens |
|---|---|
| Still waiting in the editor's queue | Dropped before it runs |
| Already running in the editor | Finishes, because editor work can't be interrupted safely. Its reply is discarded. |
A session can only cancel its own requests.
| Route | Supported versions |
|---|---|
| 🌐 Native HTTP |
2025-11-25 (latest) · 2025-06-18 · 2025-03-26
|
| 🧩 stdio | The same three, plus the older 2024-11-05 and 2024-10-07
|
Both negotiate the highest version the client and server share. On the native route, a request that leaves out the MCP-Protocol-Version header uses the session's negotiated version, and a request that names an unsupported version is refused with HTTP 400. A client stuck on a 2024 protocol version should use the stdio route.
📖 This wiki covers the 0.6 line (dev branch, npm @beta) · ✏️ Something wrong or missing? Open an issue or start a discussion
🏠 Home
Get started
🚀 Quick Start
📦 Installation
🔌 Connecting Clients
Use it
🧭 Using the Gateway
🧰 Tools Reference
📚 Resources and Prompts
Set it up
⚙️ Configuration
🔐 Security
Help
🩺 Troubleshooting
💬 FAQ
⬆️ Upgrading from 0.5.x
Contribute
🛠️ Development
Covers the 0.6 line · Releases · Discussions