Concepts
Enough of the model to evaluate the plugin and reason about what your agent is doing. You don't need this to use it day to day (the agent handles it), but it explains the design choices.
One tool, not 1,300
The plugin exposes a single tool, call, instead of 1,300 separate ones. That is
deliberate, and it is the point: a flat list of 1,300 tools would flood your assistant's limited
context window and crowd out your actual project. With one self-documenting tool, the assistant
loads only the few operations a task needs, when it needs them, and keeps the rest of its
attention on your work. Every operation travels as a name in that tool's method
argument (for example blueprint.create), with parameters in args.
The three call modes
The same tool does discovery and execution, switched by argument shape:
| The assistant calls | Returns |
|---|---|
call() | The root namespace index. |
call("material") | The wiki page for that namespace or method (omit args). |
call("material.compile_mgir", {…}) | Executes the RPC with those parameters. |
Method names are dotted namespace.verb (e.g. actor.spawn,
blueprint.compile). The discovery pages are the agent's reference. There is no
separate human RPC catalog to keep in sync.
Text IRs & round-trip
Several asset graphs can be expressed as a compact text intermediate representation. Four round-trip, so the agent can author from text and read it back: BPIR (Blueprint), MGIR (Material), AGIR (Animation Blueprint), CRIR (Control Rig). Five are decompile-only, for review and diffing: BTIR (Behavior Tree), SCIR (Sound Cue), MSIR (MetaSound), NIR (Niagara), PCGIR (PCG).
Round-trip means logical equivalence: same nodes, connections, and values. Pure layout (comment boxes, node colors, reroute knots) is not preserved by design.
Ports
The endpoint is http://127.0.0.1:<port>/mcp. By default,
Auto-derive Port From Project Path is on, so each project folder gets its own stable port
in 19880–30119 (a hash of the project path). Several projects run side by
side without colliding; two editors of the same project still land on the same port, and
the one that loses the bind refuses to serve.
To pin one fixed port instead (for example so a committed agent config is identical across a team), turn off Auto-derive Port From Project Path under Edit → Editor Preferences → Plugins → PinWright (the HTTP group) and set a fixed Http Port; it defaults to 19880. Either way, onboarding writes the working connection into each agent's config, so you never copy a port by hand.
Some things take a while
Most actions finish instantly. A few are genuinely heavy: dumping a large project, building lighting, or sweeping a big content folder can run from a minute to tens of minutes. Your assistant starts those, waits for them, and tells you when they finish, so you never have to babysit a request or re-issue it. You can keep working in the editor while it runs.
Security model
- The module is editor-only and the endpoint is loopback-only by default.
- Connections are authenticated: the Install/Update button sets this up automatically, so only your configured agent can reach the server.
- Requests can inspect and mutate assets and editor state: create, edit, save, delete, compile. Treat it as a local dev tool with write access to your project.
- Don't expose the port beyond localhost; use only trusted local agents.