null *ptrs;
EN ES

Introducing MCP4Unreal 1.0.0: 1162 callable tools and an honest catalog

What ships in MCP4Unreal 1.0.0, how the public surface is counted, and why the catalog separates real tools from aliases and planning states.


Why this exists

Every MCP-for-Unreal plugin we looked at advertised a tool count and stopped there. Nobody published the fixtures. Nobody reported which tools actually mutate the editor, which return a plan, and which are stubs. So we built one that does.

MCP4Unreal 1.0.0 reports 1170 registered tools in the live /health capture from 2026-06-18. Eight of those are compatibility aliases, so the counted public surface is 1162 callable contracts across 146 domains. The default catalog exposes 1158 tools across 145 domains unless a client explicitly asks for aliases or experimental entries.

What HonestStub means

A tool is a HonestStub when the handler is wired up, the schema is real, but the editor operation it claims to perform is not actually implemented. Most catalogs call these “supported”. We call them what they are and flag them in every response.

PlanningOnly

Some tools intentionally return a plan instead of mutating. Dry-run spawns, proposed transforms, or migration previews. Every response declares the PlanningOnly state so the caller does not mistake a preview for a commit.

The validation pipeline

Direct and route coverage is currently 1162/1162 with 1534 fixtures. 1078 contracts declare typed input parameters, and the current evidence records 0 undeclared required parameters. Fixtures run against a clean project, reports are archived per release, and a regression fails the release gate.

Transaction modes

Three modes, reported on every call: execution_scoped, handler_owned, not_applicable. Callers always know whether the editor undo stack captured the change.

What ships in 1.0.0

The 1.0.0 build targets Unreal Engine 5.7 on Windows x64. Compatible MCP clients connect over Streamable HTTP with custom headers or through the bundled STDIO bridge. Claude and Codex have live editor validation; Cursor remains unsupported because it rejects standard dotted tool names. Security defaults stay local: loopback-only transport, per-project auth token, rate limits, dry-run/confirm gates, and unsafe Python disabled by default.