Unity MCP

Your agent can drive Unity itself.

Most Unity AI integrations let an agent write C# and hope. This one hands it the editor: open a scene, press Play, run code in the live session, read the console and record the run. When a value needs a human eye, the agent opens it for you in the Tuner, and when it's done it shows you a report.

unity_editor_status unity_open_scene unity_stop_play unity_refresh unity_relaunch unity_shutdown unity_exec unity_screenshot unity_video unity_logs unity_trace unity_resolve_dialog unity_tuner unity_clip satura_report unity_scratchpad unity_scratchpad_copy satura_env_files satura_exec unity_source unity_docs

An agent that can't press Play

A coding agent can write a Unity system in a minute, but it usually can't press Play or read the console. So you run it and paste back the errors.

This Model Context Protocol server exposes a live Unity editor as tools, so the agent runs its own experiment and reads the result.

Registered for you

Satura Space writes the server into .mcp.json, .claude/settings.local.json, .cursor/mcp.json and Codex's config, so Claude Code, Codex and Cursor come pre-wired, with no API key. It talks to the editor over local loopback.

Anything else still works. Every terminal is a real shell; agents without MCP just edit files.

Why 21 and not 347

A narrow tool does one thing per round trip, and its schema rides along in every request. That's why the largest catalog hides 269 of its 347 tools behind a discovery proxy.

The widest tool here is a compiler: unity_exec runs a C# body in the live editor, so one call can place twelve objects, wire them and report back. It reaches every Editor API and package you have, and your project's handles.

The named tools do what C# inside the editor can't: relaunch it, clear a native modal blocking its main thread, read Unity's source or work the app around it.

The 21 tools

Run the editor

unity_editor_statusRUNNING, BUSY or DOWN, plus play state, open and unsaved scenes, dialogs, compile errors and stream fps.
unity_open_sceneOpen a scene on every player, and optionally enter Play with hot reload armed.
unity_stop_playExit Play Mode on every player at once. Safe when nothing is playing.
unity_refreshImport changed assets, recompile and return the compile errors.
unity_relaunchRestart a wedged editor, or start one that's down, and wait until it's ready.
unity_shutdownTurn the editor off until something relaunches it.

Change and inspect the running game

unity_execRun C# in the editor with no recompile or domain reload, on any player, and call your project's handles.
unity_screenshotRender 1 to 16 camera poses as one grid, headless editors included.
unity_videoRecord the Unity panel as you see it, in segments, into one .mp4.
unity_logsConsole, compile errors, the editor log or SaturaLog tag files, per player, filtered. Works while the editor boots, crashes or is off.
unity_traceA data breakpoint: who writes a property, in frame order with call stacks.
unity_resolve_dialogClick or close native modals from outside the editor process.

Hand it to a human

unity_tunerOpen a Tuner on just the objects, UI, prefabs or assets the agent picks. Your changes come back when you press Done.
unity_clipRead and write .anim keys, tangents, events and settings.
satura_reportShow a report the agent writes as report.tsx: checks, the run video, logs and before and after shots, in a panel next to its terminal.

Side projects and env files

unity_scratchpadRun scratchpads: empty projects at your Unity version and packages.
unity_scratchpad_copyMove assets in or out by GUID, never overwriting unless asked.
satura_env_filesCheck and stage "never commit" files from Source Control safely, so git add can't sweep in your keys.

Drive the app

satura_execDrive Satura Space with a Playwright-style page: click, add players, set the stream, open a video or report, read logs, start helper agents.

Ground the agent in real Unity

unity_sourceGrep UnityCsReference at your editor version, from a 100-token signature to full bodies.
unity_docsThe version-matched ScriptReference page for an API.

The app, not just the editor

Player count, stream resolution and other agents' tabs live in Satura Space, and satura_exec covers them over Chromium's DevTools protocol, so your cursor and focus stay put. By default nothing is drawn on screen while a script runs. Drift, the Satura Space mascot, comes in only when you ask: press Ask Drift in a Tuner, or ask the agent to show you. Then Drift does each step on screen and pauses when you use the window.

agents.spawn starts a helper agent in a new tab, and its report lands in the parent's terminal. An agent can run four at a time. Scripts get no file access and 60 seconds by default.

The specifics.

Protocol

MCPModel Context Protocol, over stdio. 21 tools against a live editor.

Auto-registered

Claude · Codex · CursorWritten into .mcp.json and the per-agent config for you.

Network

Local onlyLoopback and a file bridge. No cloud, no API key, no prompt proxying.

Source grounding

Version-pinnedUnityCsReference and ScriptReference matched to your editor version.

Straight answers

MCP questions.

Which agents get it automatically?

Claude Code, Codex and Cursor. Any MCP client can be pointed at it, and other agents still work in a normal shell. See coding agents.

Does my code leave my machine?

No. The server runs locally and everything rides local loopback. Crash reports are anonymous and scrubbed.

What if a modal dialog freezes the editor?

Tools return BLOCKED BY DIALOG in about a second instead of hanging, and unity_resolve_dialog clears it from outside the editor process.

Related

Give your agent the editor.

Twenty-one tools, registered for you, on a Unity session that's already running.

7-day free trial (no card required)macOS & Windows