---
title: AI assistant tools
product: Codeable AI Editor Tools
version: 1.1
engine: Unreal Engine 5.8
updated: 2026-11-01
canonical: https://docs.human-codeable.com/ai-editor-tools/ai-tools.html
---

# AI assistant tools

Codeable AI Editor Tools registers editor tools for AI assistants that talk to Unreal through the Model Context Protocol (MCP). The assistant can then read your project as text and make the edits the engine's own tools cannot.

## Setup

1. **Edit > Plugins**: enable *Python Editor Script Plugin*, *Model Context Protocol* and *Editor Toolset* (or *All Toolsets*), then restart.
2. The Output Log shows `AI Editor Tools: toolsets registered (...)`.
3. Start the MCP server with the console command `ModelContextProtocol.StartServer` (port 8000; another port with `-ModelContextProtocolPort=N` on the command line), and connect your assistant's MCP client to it as described in Epic's documentation for the Model Context Protocol plugin.
4. Ask the assistant to list the toolsets: the ones starting with `codeable_ai_editor_tools.` are these.

Without the toolset plugin nothing is registered, and the export, import and Tools menu work the same.

## The toolsets

| Toolset | What it gives an assistant |
|---|---|
| `CodexTools` | `export`, `find_in_export`, `read_asset` (an asset's pseudo-code, without touching the editor), `import_descriptions` (dry run first), `diff_exports` |
| `GraphNodeTools` | `read_graph_dsl_safe` (reads a graph and removes what the read added), `add_call_function_node` by path, `add_parent_call`, `refresh_node_types` |
| `GraphLayoutTools` | `arrange_graph`: one block per event, main path on one row, comment box per block |
| `BlueprintComponentTools` | `set_component_parent_socket`, `get_component_parent_socket` |
| `StructTools` | `create_struct` with real members, add, remove, rename, retype, defaults and tooltips |
| `LevelTools` | `create_level` (empty, no save dialog), `add_streaming_level`, `split_into_streaming_level`, `copy_actors_from_level` (with their instance settings) |
| `ContentTools` | `fix_up_redirectors`: point every referencer at the moved asset and save it |
| `StaticMeshSocketTools` | list, add, move and remove sockets; preview meshes on sockets |
| `MeshGeometryTools` | read a mesh's shape and profile, read a socket's axes, bake component scale into the mesh |
| `MeshImportTools` | `import_static_mesh`: FBX onto a fixed path, replaced in place, with a before/after report |
| `BlenderTools` | `blender_status`, `install_bridge`, `export_mesh` from a `.blend`, optionally imported (see the Blender Bridge page) |
| `DiagnosticTools` | live objects in Play: list instances, call functions, read properties, traces |
| `AdminTools` | `reload_toolsets` after changing a tool, without a restart |

## Good to know

- Tools that create assets accept any project content path (`/Game/...` or a project plugin), never engine content.
- Nothing is saved for you. Assets a tool changes are marked as changed; save them in the editor, or through the engine's asset tools.
- The mesh importer creates one Interchange pipeline asset on first use, `/Game/Pipelines/IP_StaticMeshProp`, with the settings it needs; you can pick the same asset in the import dialog.
- Some tools need more engine plugins: `MeshGeometryTools` needs *Geometry Script*.
- Your own toolsets: put a package in your project's or plugin's `Content/Python` with a module-level `_registration` and `register_once()`, and `AdminTools.reload_toolsets` reloads it too.
