Skip to main content
Glama

UE BPToolkit

Blueprint read / review / generate toolkit for AI coding agents (ZCode, Claude Code, Cursor, any MCP client) on Unreal Engine 5.4+.

.uasset blueprints are binary and UE's Python API cannot touch graph internals (EdGraph.Nodes is protected) — so agents can't see your blueprint logic. UE_BPToolkit ships a small editor-side C++ plugin that exposes safe read/write primitives, a warm headless-editor session that drives them, and an MCP server + CLI on top.

Verified on UE 5.4.4 with the City Sample project (985+ node blueprints, Wwise audio integration).

What you can do

Capability

How

Read blueprint logic

bp_dump / bpt dump — full JSON: graphs → nodes (function/variable/event info) → pins (type, defaults, links, orphaned flags) + SCS component tree + variables

Review logic chains & Wwise

bp_review / bpt review — reconstructs execution chains from each entry event, inventories Wwise touchpoints, flags issues (orphaned pins, missing assets, empty RTPC/Event refs, PostEvent reachable from Tick)

Generate blueprints

bp_generate / bpt generate — build a blueprint from a JSON spec (components, variables, function graphs, nodes, wiring), compile and save; compiler errors come back per-node

Drive the editor

bp_eval — arbitrary python inside the editor as an escape hatch

Related MCP server: Monolith

Architecture

MCP client (ZCode / Claude Code)          CLI (bpt)
        │  MCP stdio                           │
        ▼                                      ▼
  bptoolkit-mcp ────────────┬──────────── bptoolkit.cli
                            ▼
                  SessionManager ── file-based job queue ──► headless UnrealEditor-Cmd.exe
                  (starts once, stays warm)                   └─ BPToolkit plugin (C++)
                                                                  └─ EdGraph primitives
  • First tool call boots the editor (30–90 s); subsequent calls are fast. The session lives in <project>/Saved/BPToolkit/ and shuts down when your MCP server stops.

  • The C++ plugin (UEPlugin/BPToolkit) exposes ~14 UFUNCTIONs (dump / create / add component-variable-functiongraph / spawn event-call-variable-self nodes / connect pins / set defaults / compile / save). Write operations take the UBlueprint object directly; nodes are addressed by GUID.

Install

Requirements: Python 3.10+, Unreal Engine 5.4+ (Windows; source-built or launcher), and for the plugin: VS 2022 with the C++ workload.

git clone <this repo>
cd UE_BPToolkit
pip install -e ".[mcp]"

Then install the plugin into your project (copies UEPlugin/BPToolkit to <project>/Plugins/ and enables it in .uproject):

bpt install-plugin --project D:/path/MyGame
# then build the editor target once, e.g.:
# "D:/Game/Epic Games/UE_5.4/Engine/Build/BatchFiles/Build.bat" MyGameEditor Win64 Development -project=D:/path/MyGame/MyGame.uproject -WaitMutex

Use as an MCP server

ZCode / Claude Code config (.mcp.json / mcp_servers):

{
  "bptoolkit": {
    "command": "bptoolkit-mcp",
    "args": ["--project", "D:/path/MyGame", "--engine", "D:/Game/Epic Games/UE_5.4"]
  }
}

Environment fallback: BPT_PROJECT, BPT_ENGINE, BPT_UEPLUGIN.

Use from the CLI

export BPT_PROJECT=D:/path/MyGame          # or pass --project each time

bpt status
bpt dump /Game/Audio/Vehicles/BP_Vehicle_AudioController_Wwise --out bp.json
bpt review /Game/Crowd/Blueprints/BP_CrowdCharacter --out review.md
bpt generate examples/specs/selftest.json   # needs a project with the Wwise integration
bpt selftest                                # generate -> dump round-trip validation

Example: generate a Wwise blueprint

{
  "asset": "/Game/Testing/BPToolkit/BPT_TestSound",
  "delete_existing": true,
  "parent": "/Script/Engine.Actor",
  "components": [
    {"class": "/Script/AkAudio.AkComponent", "name": "AkComp"}
  ],
  "variables": [
    {"name": "TestEvent", "type": "object", "sub": "/Script/AkAudio.AkAudioEvent"}
  ],
  "graphs": [{
    "name": "EventGraph",
    "nodes": [
      {"id": "bp", "kind": "event", "function": "/Script/Engine.Actor:ReceiveBeginPlay", "x": 0, "y": 0},
      {"id": "akcomp", "kind": "var_get", "variable": "AkComp", "x": 200, "y": 100},
      {"id": "evget", "kind": "var_get", "variable": "TestEvent", "x": 200, "y": 200},
      {"id": "post", "kind": "call", "function": "/Script/AkAudio.AkComponent:PostAkEvent", "x": 450, "y": 0}
    ],
    "connections": [
      {"from": ["bp", "then"], "to": ["post", "execute"]},
      {"from": ["akcomp", "AkComp"], "to": ["post", "self"]},
      {"from": ["evget", "TestEvent"], "to": ["post", "AkEvent"]}
    ]
  }],
  "compile": true, "save": true
}

Node/pin notes for spec authors: a call node's target pin is named self (the compiler error text calls it "Target"); variable-get nodes expose an output pin named after the variable; exec pins are execute/then. A "pre-compile" pass runs automatically so freshly added components/variables resolve.

Wwise review rules

Detection is structural, not name-based allow-lists: any call into /Script/Ak* / /Script/Wwise* owners (PostAkEvent, PostEvent, SetRTPCValue*, SetSwitchGroupValue, SetStateValue, ...), any Ak*/Wwise* typed variable/component/pin, any default object under /Game/WwiseAudio/. Issues checked: orphaned pins (stale signatures), compile messages, missing referenced assets, empty Event/RTPC pins, post-events reachable from Tick.

Troubleshooting

  • "BPToolkit plugin is not loaded" — run bpt install-plugin, rebuild the editor target, retry.

  • UBT error about rules assembly / DLSSUtility — delete Intermediate/Build/Win64/x64/<Target>/Development/Makefile.bin in the project and rebuild.

  • MSVC 14.44+ compile error in ConcurrentLinearAllocator.h — UE 5.4 header needs a guard; patch is one line: #elif __has_feature(address_sanitizer)#elif defined(__has_feature) && __has_feature(address_sanitizer). (Short-circuit && in the same #if does not work — use a nested #if defined(__has_feature) / #if __has_feature(...).)

Security & caveats

  • bp_eval is arbitrary code. bp_eval runs unrestricted Python inside the headless editor (unreal module + BPL library in scope). Treat the MCP server as a local-only tool. Do not expose it on a network or to untrusted clients; do not point it at a .uproject you don't trust.

  • bp_generate mutates your project. A bad spec can create/delete/save blueprint assets inside the target project. Always run against a project you own and ideally under version control.

  • Editor binaries are not in this repo. You must build UEPlugin/BPToolkit inside your own UE 5.4+ project before the first session (see Install above). The prebuilt .dll/.pdb shipped here is gitignored on purpose.

  • Windows-only runner. The host launches UnrealEditor-Cmd.exe. Linux/macOS support is on the roadmap.

Roadmap

  • Mac/Linux editor support (runner is Windows-only today)

  • Wwise bank/event cross-checks against the generated Wwise project data

  • Blueprint diffing (two dumps → semantic diff)

  • Macro / interface scaffolding in generate

  • Remote TCP transport inside the editor (alternative to the file queue)

License

MIT — see LICENSE.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI agents to create and modify Unreal Engine blueprints using natural language commands. Supports blueprint creation, property modification, and real-time communication with Unreal Editor through WebSocket integration.
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Unreal Engine 5.7 editor plugin that gives AI assistants full read/write access to Blueprints, Materials, Animation, Niagara, Config, and more via MCP. 119 actions across 9 domains, pure C++, embedded Streamable HTTP server.
    290
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to control and automate Unreal Engine through a native C++ Automation Bridge plugin. It supports a comprehensive range of tasks including asset management, actor manipulation, editor control, and blueprint graph editing.
    249
    1
    MIT

Latest Blog Posts

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/caizhirong486-lab/UE_BPToolkit'

If you have feedback or need assistance with the MCP directory API, please join our Discord server