MCP
R3NE ships a Model Context Protocol (MCP) server that lets any MCP-compatible client, Claude Desktop, Claude Code, Codex, or your own agent, inspect the live graph and propose edits that R3NE applies on the next frame.
How it works
The R3NE app exposes a local HTTP API on localhost:19780 while it’s running. The mcp-r3ne bridge is a small Node CLI that speaks MCP over stdio to your client and forwards each tool call to that local API. Pointing any MCP client at the bridge is enough to give the model live access to your composition.
Install the bridge
Clone and build the bridge once, every client below shares the same binary.
You need Node 18+ on your PATH. Then launch R3NE and open the composition you want to expose, the API server starts automatically.
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (create it if it doesn’t exist) and add the r3ne server. Substitute the path you echoed above.
Quit and relaunch Claude Desktop. The R3NE tools (get_graph, create_node, set_params, …) appear in the tools picker.
Claude Code
Register the server from a terminal, the path you saved earlier goes after the --.
Verify it’s wired up:
Codex
Codex reads ~/.codex/config.toml. Add an mcp_servers entry:
Restart Codex and the r3ne server shows up on the next session.
Tools the model can call
health, ping the app to confirm the API is reachable.get_graph, full state of the live graph: nodes, parameters, connections, shader sources.list_node_types, every node category R3NE can spawn.create_node/delete_node, add or remove a node.connect_nodes/disconnect, wire ports together.set_params, change parameter values, with optional easing.create_shader/edit_shader/get_shader_errors, author MSL fragments; compile errors come back to the model.list_presets, built-in preset compositions to seed off of.create_composition, bundle a whole graph in a single call.clear_graph, wipe the canvas back to a fresh Root.
Try it
With the server connected and R3NE open, try a prompt like:
The model proposes a sequence of tool calls, R3NE shows them as a diff in the inspector before applying.
Safety
- The API listens on
localhostonly. Expose it remotely only behind a tunnel you control (ngrok, Tailscale, etc.). - Every mutation is undoable,
⌘Zrolls back the last batch of model edits as a single step. - Quit R3NE and the API server goes down with it, there’s no background process left running.