# Tools

The 27 built-in Unreal MCP tools - RQL, Blueprints, C++ source, Python, screenshots and console - and example prompts for AI in the Unreal Editor.

_Last updated: 2026-11-04_

This page describes what an AI agent can do in the Unreal Editor with Unreal MCP. The plugin ships **27 tools in 7 families**. You rarely call a tool by name: ask in plain language and the agent picks the tool. Knowing the families helps you ask for things the agent can actually do.

For per-tool cards and parameters, browse the [Unreal tools catalog](https://ai-game.dev/docs/tools/unreal).

## RQL: one query language for editor data

Unreal MCP does not have one tool per editor operation. Instead, editor data goes through **RQL**, a query language that reads and changes actors, components, assets, levels and editor state in one call.

| Tool | What it does |
| --- | --- |
| `rql-query` | Read-only query over the live editor, with compact table results |
| `rql-mutate` | A query that ends with `set` or `call`; all-or-nothing, one undo step, and a `dry_run` preview |
| `rql-schema` | Lists sources, functions and classes; with a type, lists that type's members and methods |

A few examples of what RQL looks like (the agent writes these for you):

```text
actors | where $ is PointLight | select $ref Label Intensity
actors | where Label == "Door_01" | set Location = "(0, 0, 100)"
editor | call SpawnActor("PointLight")
console | where Verbosity == "Error"
```

Beyond actors and components, RQL reaches:

- **Assets and levels:** create, copy, move, delete and import assets, create folders and material instances, open, create and save levels, add streaming sublevels.
- **Editor state:** selection, Play In Editor state, undo history, the editor log.
- **DataTables:** read and edit rows (`Rows["Sword"].Damage`), add, remove, rename and duplicate rows.
- **Gameplay tags:** list, add, remove and rename tags.
- **Project Settings and Editor Preferences:** read and change config properties, saved to the right `.ini` file.
- **Blueprint graphs:** add function calls, variables, events, casts, branches and loops, connect pins, then `call Compile()`.
- **Widget Blueprints:** walk and edit the widget tree, add widgets and set layout.
- **User-defined structs:** add, remove and rename fields.
- **Level Sequences:** bind actors, add tracks and keys.

Every mutation is one editor transaction, so **Ctrl+Z** reverts it. The agent learns the language from the `unreal-rql` skill, which also lists what installed [extensions](https://ai-game.dev/docs/wiki/unreal/extensions) add.

Example prompts:

- "List every point light in the level with its intensity, then double the intensity of the dim ones."
- "Spawn 20 cubes in a 5 by 4 grid, 200 units apart."
- "Add a row Bow with Damage 7 to the DT\_Weapons DataTable."
- "Set the game default map to /Game/Maps/Arena."

## Blueprint family

Blueprint authoring is Unreal's main scripting surface, and the agent gets a full feedback loop: create, edit, compile, read the errors, fix.

| Tool | What it does |
| --- | --- |
| `blueprint-create` | Create a Blueprint class from a parent class |
| `blueprint-get` | Summarize a Blueprint: variables, components, functions and events, parent chain |
| `blueprint-add-component` | Add a component to the construction script |
| `blueprint-remove-component` | Remove a component |
| `blueprint-add-variable` | Add a typed member variable |
| `blueprint-modify-variable` | Change a member variable |
| `blueprint-set-default` | Set a class-default property |
| `blueprint-add-function` | Add a function stub |
| `blueprint-add-event` | Add an event such as BeginPlay or Tick |
| `blueprint-compile` | Compile and return a structured list of errors and warnings |
| `blueprint-spawn` | Place an instance of the Blueprint in the level |

Example: "Create an Actor Blueprint BP\_Door with a static mesh component and a bool variable IsOpen, compile it and place one at the origin."

## Source / C++ family

| Tool | What it does |
| --- | --- |
| `source-read` | Read a project C++ file, in slices |
| `source-create-class` | Scaffold a new C++ class (header and source) |
| `source-update` | Edit a source file |
| `source-delete` | Delete a source file |
| `source-list` | List the module's source files |
| `source-compile` | Compile with Live Coding when it is active, otherwise Unreal Build Tool, and return a structured error report |

All file operations are limited to `<Project>/Source/`. Example: "Create a C++ component UHealthComponent with MaxHealth and a TakeDamage function, compile, and fix any errors."

## Python family

| Tool | What it does |
| --- | --- |
| `python-execute` | Run Python in the editor with the `unreal` module pre-imported |

The last expression is returned as the result, `print` output comes back as logs, and errors point at the failing line. `include` adds helper files or folders from `<Project>/.ai-game-dev/snippets`, and `timeout` (default 30 seconds) stops a runaway script. The plugin enables Unreal's Python Editor Script Plugin; Python is editor-only and never ships in a packaged game. Blueprint graph wiring is not exposed to Python; use the Blueprint tools or RQL for that.

You can also run Python from a terminal with `unreal-mcp-cli exec`, see the [CLI reference](https://ai-game.dev/docs/wiki/unreal/cli#exec).

## Screenshot family

| Tool | What it does |
| --- | --- |
| `screenshot-viewport` | Capture the active editor viewport |
| `screenshot-game-view` | Capture the Play In Editor game view |
| `screenshot-camera` | Render from a camera actor |
| `screenshot-isolated` | Render one actor on its own |

Images come back as PNG content the model can look at, 1024 pixels by default and at most 2048 per side. They need a GPU-backed editor; under `-nullrhi` they return an error. Example: "Take a screenshot from CameraActor\_Main and tell me if the lighting looks too dark."

## Console and tool list

| Tool | What it does |
| --- | --- |
| `console-run-command` | Run an Unreal console command or set a console variable |
| `unreal-tool-list` | List every tool, including hidden ones, with optional filter, descriptions and inputs |

Reading the log, Play In Editor state and the selection go through RQL.

## Tools the agent never sees

A few **system tools** serve the CLI and the app and are not shown to AI agents:

- `ping`: checks the plugin, bridge and server chain.
- `unreal-skill-generate`: writes one `SKILL.md` per tool into a skills folder (default `.claude/skills`); the **Generate skill files** button uses it.
- `unreal-skill-create`: generates a new C++ tool file in the plugin's editor module. It needs a source install of the plugin and an editor rebuild before the tool works.
- `editor-quit`: saves and closes an editor that a CLI session started.

## Prompts and resources

The plugin also ships one MCP prompt, `level-design-brief` (a level design brief from a theme), and two resources: `unreal://project/levels` (a JSON snapshot of the active world and its levels) and `unreal://project/icon`.

## Control what the agent sees

Hide tools you do not need in the **MCP Tools** window, or serve only a fixed set with `UNREAL_MCP_TOOLS`. See [Configuration](https://ai-game.dev/docs/wiki/unreal/configuration#tool-visibility). To add capabilities, install [extensions](https://ai-game.dev/docs/wiki/unreal/extensions) or write [custom tools](https://ai-game.dev/docs/wiki/unreal/custom-tools).

## Editor only

All 27 tools drive the editor. Several are powerful (`rql-mutate`, `console-run-command`, `python-execute`), so none of them is compiled into a packaged game. A game that opts into a [runtime connection](https://ai-game.dev/docs/wiki/unreal/custom-tools#runtime) exposes only the tools it registers itself.

Tips for getting the most out of these tools are in the [Unreal best practices](https://ai-game.dev/docs/best-practices/unreal).

---

Source (HTML): https://ai-game.dev/docs/wiki/unreal/tools
