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,200
The plugin exposes a single tool, call, instead of 1,200 separate ones. That is
deliberate, and it is the point: a flat list of 1,200 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 the port is a fixed
19880, the same on every machine, so committed agent configs stay portable. Two editors
both binding 19880 will collide, and the one that loses the bind refuses to serve.
To run several projects at once, enable Auto-derive Port From Project Path under
Edit → Editor Preferences → Plugins → PinWright (the HTTP group): each
project folder gets a stable, distinct port in 19880–30119. Or set a
fixed Http Port there. Onboarding bakes the resolved address into each agent's config, so
agents never discover the port at runtime.
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.
- 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.