Unity MCP Server
Connect AI assistants to one or more Unity Editors to inspect and control projects, scenes, assets, code, builds, packages, monitoring, and advanced/discovered tools.
Discover and select running Unity Editor instances; manage Unity Hub editors, modules, and install paths.
Inspect editor/project/scene state, hierarchy, scene stats, console and compilation errors, play mode, selection, prefabs, and project context/docs.
Create, edit, duplicate, delete, reparent, and transform GameObjects; add/remove/configure components and wire object references.
Manage scenes, assets, materials, prefabs, and C# scripts; run C# code in the editor and execute Unity menu items.
Search objects and assets by name, tag, layer, component, or missing references.
Capture screenshots and render Scene/Game/inline images.
List, add, remove, search, and inspect Unity packages; build for supported platforms.
Monitor queues, agent sessions, action logs, and undo/redo history; revert supported MCP actions.
Discover and call advanced tools on demand for categories such as animation, terrain, shader graph, ProBuilder, UMA, physics, lighting, UI, and more.
Supports triggering and managing Unity project builds targeting the Android platform.
Supports triggering and managing Unity project builds targeting the iOS platform.
Supports triggering and managing Unity project builds targeting the Linux platform.
Supports triggering and managing Unity project builds targeting the macOS platform.
Provides comprehensive control over Unity Hub and the Unity Editor, enabling management of scenes, GameObjects, components, assets, scripts, and project settings through over 200 specialized tools.
Supports triggering and managing Unity project builds targeting the WebGL platform.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Unity MCP Server Create a C# movement script and attach it to the Player object"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AnkleBreaker Unity MCP
Build worlds. Coordinate agents. See every action. Connect your AI assistants to scene authoring, running games, multiplayer scenarios, tests, builds and profiling through Model Context Protocol. Built by AnkleBreaker Studio for workflows that span more than one editor and one assistant.
Get started · Watch the demos · Measured improvements · Multiple projects · Tool catalog · Changelog
347 named operations | 80 exposed MCP tools | 269 advanced tools on demand |
Editor, Hub and integrations | Small initial discovery surface | Search a category, fetch one schema, run it |
Counts reflect the checked-in definitions; optional tools require their corresponding Unity packages. The advanced proxy also discovers routes advertised by newer plugins.
Watch it build a playable prototype
Neon brick breaker: scene construction, materials, gameplay scripts and visual iteration, with the assistant and Unity visible together.

▶ Open video · 25 seconds · Download MP4 · Village and castle demos
Recorded, accelerated excerpts. The silent videos export the same recordings as the GIFs; their duration is not a build-time benchmark. Media details and example prompts.
Related MCP server: Unity MCP Server
Built for demanding Unity workflows
Your workflow | What AnkleBreaker provides |
Several projects and agents | Independent request routing, explicit project selection and a fair queue for each editor. Architecture |
Multiplayer iteration | MPPM scenario/player controls and parent/virtual-player discovery, plus ParrelSync identity. Workflow and live tests |
Work you can inspect | Agent history, named undo for supported actions, queue timings, command errors and the Unity Dashboard. Monitoring |
Mixed versions and interrupted calls | Per-editor capability detection, legacy fallback and protected retries when both components support them. Compatibility / Retry contract |
A full production toolset | Scene authoring, builds, profiling, packages and optional integrations, with advanced schemas discovered on demand. Tool guide |
The combination is the strength: routing, scheduling, multiplayer controls and observable results in one workflow. See choosing a Unity integration for a sourced comparison.
Why choose AnkleBreaker? Each agent keeps its project identity, each editor has its own queue, and supported actions leave a history you can inspect and undo. Advanced tools extend that workflow into multiplayer iteration, Unity Hub and project-specific integrations. Those behaviors have dedicated regression checks and real-editor evidence, not just a feature list.
Get started
Install from source: the commands below install main in both repositories, including the improvements documented here. Published npm packages and version tags may lag behind main.
1. Add the Unity plugin
In Unity, open Window → Package Manager → Add package from git URL:
https://github.com/AnkleBreaker-Studio/unity-mcp-plugin.git#mainThe MCP status dropdown appears automatically in Unity's main toolbar. Open the Dashboard from it, Window → AB Unity MCP, or Tools → AnkleBreaker → Unity MCP. Verify the bridge is running there. If you previously hid the indicator, choose Show Toolbar Status. Toolbar and menu access.
2. Install the server
Use Node.js 18 or newer; a maintained Node.js LTS is recommended.
git clone --branch main https://github.com/AnkleBreaker-Studio/unity-mcp-server.git
cd unity-mcp-server
npm ci3. Connect your assistant
For clients that accept an mcpServers JSON configuration:
{
"mcpServers": {
"unity": {
"command": "node",
"args": ["C:/path/to/unity-mcp-server/src/index.js"]
}
}
}Use the absolute path to your checkout. On macOS and Linux, use its Unix path. Clients with another configuration format need the same command and arguments. Restart or reconnect the client's MCP session after editing the configuration.
Editor discovery is automatic. Unity Hub is only needed for Hub commands; set UNITY_HUB_PATH if it is installed elsewhere. See all configuration options.
4. Try a complete workflow
List my running Unity projects. Select my prototype, inspect its scene and compilation errors, create a platform, then capture the scene so I can review it.
Find the multiplayer tools. List my MPPM scenarios and the players configured in the selected project.
Inspect the scene's memory use and largest objects, then show me the actions performed by each agent.
From environments to playable levels
A village, built and refined in Unity
Terrain, houses, materials, trees, fences and paths: the assistant constructs a scene and inspects the result as it goes.

▶ Open video · 25 seconds · Download MP4
A castle you can walk through
Multi-room construction, lighting adjustment and a first-person walkthrough in the recorded project.

▶ Open video · 18 seconds · Download MP4
All demonstrations, prompts and media formats →
Multiple projects, multiple agents
Keep an agent on your game, another on a package test project, and use the multiplayer tools to inspect Host/Client scenarios. Project routing and per-agent scheduling are separate responsibilities, so requests retain their destination while waiting for Unity.
Call
unity_list_instancesand identify the project by name and path.Call
unity_select_instancewithprojectNameor a discoveredport.Include that
porton editor calls when coordinating simultaneous tasks.Discover again after an editor restart: ports are dynamic.
Discovery checks the live Unity identity before adopting a port, including registry and default-port fallbacks. Named selection keeps that identity through verification, and stale discovery cannot overwrite a newer project choice. Identity, concurrent selection and compatibility.
{"name":"unity_editor_state","arguments":{"port":7891}}7891 is an example; use the port returned by discovery. MCP callers can pass _meta.agentId (or the compatible _meta.agent_id) to keep agent selections and queue attribution separate. Each stdio process has its own default identity.
Within an editor, the plugin serializes writes and batches up to five reads per update. Different editor processes have independent queues. Simultaneous agents can still make conflicting edits to the same object, so assign clear ownership for shared scene work.
Explore the editor
Build & edit | Inspect & verify | Extend & coordinate |
Scenes, GameObjects, components | Console and compilation errors | Multiplayer Play Mode |
Prefabs, materials, ScriptableObjects | EditMode / PlayMode test jobs | ParrelSync instances |
Animation curves and controllers | Physics queries, scene statistics | |
Terrain, navigation, particles | Profiler, memory, Frame Debugger | ProBuilder, UMA, Amplify |
UI, audio, input actions | Screenshots and action history |
Discover advanced capabilities with unity_list_advanced_tools. Filter by category or search, retrieve the schema for the tool you need, then call it through unity_advanced_tool. Full category guide and examples →
Workflows to try next
Goal | Ask your assistant | What makes it useful |
Compare two projects | “List my editors, inspect the package versions and compilation errors in each, then summarize the differences.” | Explicit targets and independent queues. |
Iterate on multiplayer | “Find the MPPM tools, inspect the selected scenario and start its configured Host and Client players.” | Native scenario and virtual-player identity. Guide |
Validate a change | “Run the selected EditMode tests, wait for the job, then show failures and fetch the detailed results in pages.” | Persistent job IDs, diagnostics and paginated reads. Guide |
Review agent work | “Show recent actions by agent and tell me which supported actions can be undone safely.” | Native stack checks and attributed action history. Guide |
Find expensive content | “Inspect memory consumers and mesh statistics, then capture the scene for review.” | Inspection without copying geometry buffers just to count it. Guide |
Maintain a package | “Compare installed packages, check compilation and inspect my build settings before making changes.” | Package requests yield to editor updates. Guide |
These are example prompts, not automatic scripts. Select the intended project first and let the assistant discover the current tool schemas and available packages.
Measured improvements
Recorded workload | Before → after | Why it changed |
20 small code-execution calls | 15.85 s → 1.01 s | Bounded compiler metadata reuse. Measurement |
History repaint with 5,000 retained actions | 72.45 ms → 1.80 ms | Draw only visible rows; avoid per-selection native textures. Measurement |
Construct 20 results from 10,000 stored tests | 14.21 ms → 0.036 ms | Build the requested page instead of every detail record. Measurement |
Measurements use separate before/after fixtures and historical baselines on Unity 6000.6.2f1 / Windows. Each linked report states its scope. These results do not measure whole-editor FPS or establish a speed ranking against other MCP products.
Compatibility and validation
The plugin declares Unity 2021.3.18f1+ support. Server and plugin versions advance independently and do not need matching version numbers. Current live validation uses Unity 6000.6.2f1 on Windows; minimum-version C# compilation also passes. Actual older-editor execution is deferred.
263 server tests pass across eight CI configurations (Node 18/20/22/24 on Windows/Linux), and the plugin's registry check covers 338 routes. Real-editor workflows include mixed released/current components, two editors, MPPM Host/Client, ParrelSync and actual script reloads. These checks have different recorded source checkpoints; the delivery summary identifies them and the remaining coverage limits.
Verified workflow | Evidence and limits |
Released/current components | All four server-plugin pairs on Node 18 and 22, plus concurrent agents across mixed plugin versions. Version matrix |
Multiple editors and reloads | Overlapping calls to two editors, four Play Mode reload configurations and lost-result handling after script reload. Validation record |
Multiplayer Play Mode 3.0 | Host/Client launch, separate agent routing and shared script recompilation. Multiplayer guide |
ParrelSync 1.5.2 | Native clone identity, independent agents, Play Mode, shared recompilation, settings persistence and clone restart. Gameplay connections need separate validation. Clone guide |
Action History | Bounded observers, grouped refreshes and visible-row drawing with stable filters/selection. Notifications · Window costs and cleanup |
History persistence | Retention-aware loading, bounded snapshots and recovery after failed saves/loads. Compatibility and recovery |
Agent-session retention | Recent completed identities are bounded; busy agents, polling results and global history remain protected. Limits and validation |
Scene and asset editing | Enums, references, prefabs, rejected-write preservation and Scene capture cleanup. Editor workflows |
Inline camera images | Explicit camera selection, bounded dimensions, restored render targets and decoded PNG checks with current/released servers. Capture guide |
Asset previews | Loading yields to editor updates and other agents; requested sizes and metadata-only options are honored. Preview guide |
Mesh inspection | Both object-path names work; all eight UV channels and native triangle counts are read without copying geometry buffers. Metadata guide and measurements |
Package Manager | Requests yield between editor updates and remain sequential; list/search/info and local add/remove pass with current and released servers. Package guide |
Code results | Valid JSON for non-finite/Unicode values, bounded conversion and HTTP output, and no replay after response failure. Execution guide |
HTTP downloads | Bounded response reads, including compressed bodies and older plugins; overflow never repeats a command. Response limits |
Request input | Complete HTTP/JSON before dispatch, 8 body readers, 64 MiB reservations and a 30-second upload deadline; server preflight avoids oversized uploads. Input guide |
Undo across agents | Native stack checks, explicit cascade handling, accurate Undo/Redo eligibility and identity preserved through script reload. Undo guide |
Test Runner | Failure cleanup, native cancellation, retained job details through reload and optional pages for large results. Testing guide · Pagination |
Unity 6.6 builds | Five Windows Mono builds verify managed diagnostics and restoration of project settings. Other platforms and IL2CPP remain untested. Build guide |
UMA V3.1f1 | Asset creation, race changes and recipe renames, with the integration isolated from the core bridge. UMA guide |
Run the server's ordinary regression suite:
npm ci
npm testThese tests run the real MCP stdio process against isolated mock bridges. The companion plugin's Unity runner and the server's opt-in live suites are documented with their prerequisites and results in the linked guides. Full evidence and follow-up limits · Final documentation and media checks.
Monitor and troubleshoot
Actual Dashboard capture from a Unity 6.6 validation project. The deliberately long agent/request names exercise layout behavior; displayed counters belong to that test session.
The plugin Dashboard shows queue activity, agent sessions, HTTP activity and recent actions. Agent cards update in place, sections remember their state, and long request text stays readable through tooltips. HTTP counters include input refused before ticket creation, body traffic and domain reloads. Dashboard behavior · HTTP fields and measurements.
Requested editor-window captures preserve keyboard focus, identify ambiguous windows explicitly and bound native image allocations. Docked captures exclude tab chrome; inactive tabs require an explicit temporary-switch option. Owned Windows fixtures verify actual UI Toolkit/IMGUI pixels and Dashboard layouts at 360 and 640 px.
Code execution reuses bounded compiler metadata and reports cache activity in unity_editor_state.codeExecution. A local Unity 6.6 benchmark of twenty small calls fell from 15.85 s to 1.01 s; this measures one workload, not every Unity operation. Execution behavior, measurements and limits.
No editor found: check the plugin dashboard, console and discovered project path. See connection troubleshooting.
Slow calls: inspect
unity_queue_info,unity_agents_listandunity_agent_log. Ticket status separates queue wait and processing time; queue info also exposes inactive-session retention and evictions. Monitoring fields and measurements →Compilation in progress: wait for
isCompiling: false, then inspect compilation errors. An empty error list during compilation is inconclusive.Tool unavailable: check category switches and optional packages in the dashboard. Advanced route discovery supports newer plugins without expanding the initial tool list.
Response too large: request smaller read results; inspect the effects before repeating a write. Response budgets and image handling.
Stopped a request: the server stops waiting and polling; accepted Unity work can still finish. Cancellation behavior.
Client registry limit: set
UNITY_MCP_COMPACT_TOOLS=1. Full parameter documentation remains available through advanced discovery.
Frequently asked questions
Which AI clients can use it? Clients that support spawning an MCP stdio server can connect using the Node command above. Configuration syntax and image/tool support depend on the client; no specific model is required by the bridge.
Do I need every optional Unity package? No. The core bridge works independently of optional integrations. Enable the relevant categories and install the packages needed for your workflow; use advanced discovery to inspect available tools.
Can several assistants work on the same project? Yes. Requests are attributed and scheduled per agent. Assign ownership of shared objects: scheduling does not resolve conflicting design changes.
Can I undo every AI action? Supported Unity writes have named undo groups and history. Filesystem operations, arbitrary code and some deferred workflows have different recovery limits. Inspect the Undo contract before relying on rollback.
Is this already a released upgrade? No. This README documents the modernization branch. Existing server/plugin version numbers remain independent; the installation instructions above select the development preview explicitly.
How does it compare? Start with the sourced comparison: routing, fair scheduling, retry recovery, multiplayer controls, monitoring and tool discovery. The measured gains above compare AnkleBreaker revisions under specific workloads.
From the same studio: Nodary
Your game's design lives in documents too. Nodary is the linked-document workspace AnkleBreaker Studio builds and uses on its own games: design documents, balance sheets with drop-rate simulation, string tables for Unity, Unreal and Godot, branching dialogue, moodboards and art review, on one map. Its remote MCP server lets the same assistant that drives your Unity editor read and update the design: connect https://nodary.ai/api/mcp (setup per client). Included in every Nodary plan, Free included within its limits.
Support and license
Support development through GitHub Sponsors or Patreon. Report reproducible issues with the server version, plugin version, Unity version and the affected tool.
Companion Unity plugin · Model Context Protocol · AnkleBreaker Studio
Distributed under the AnkleBreaker Open License v1.0. See LICENSE for the full terms, including attribution and restrictions on reselling the tool. AI client and model usage costs are separate.
Available Tools
80 toolsunity_advanced_toolA
Execute an advanced Unity tool by name (269 cached + plugin lazy-loaded; discover names via unity_list_advanced_tools search=/category=, parameters via tool=).
Inputs: tool (required), port, params.
unity_agent_logA
Get the action log for a specific agent, showing the last 100 actions with timestamps.
Inputs: agentId (required), port.
unity_agents_listA
List all active agent sessions connected to the AB Unity MCP bridge. Shows each agent's ID, connection time, last activity, current action, total actions count, queued/completed request counts, and average response time.
Inputs: port.
unity_asset_create_prefabB
Create a prefab from an existing GameObject in the scene.
Inputs: savePath (required), gameObjectPath (required), port.
unity_asset_deleteA
Delete an asset — to the OS trash by default (NOT undoable via unity_undo_last). Deleting a FOLDER is recursive and refuses without recursive:true.
Inputs: path (required), port, permanent, recursive.
unity_asset_importB
Import an external file into the Unity project as an asset.
Inputs: sourcePath (required), destinationPath (required), port, overwrite.
unity_asset_instantiate_prefabC
Instantiate a prefab into the current scene.
Inputs: prefabPath (required), name, port, parent, +2 more.
unity_asset_listC
List assets in the project. Can filter by path, type, and search term.
Inputs: port, type, folder, search, +2 more.
unity_buildC
Build the project for a target platform.
Inputs: target (required), outputPath (required), port, scenes, +2 more.
unity_component_addA
Add a component to a GameObject. Supports built-in types (Rigidbody, BoxCollider, AudioSource, Light, Camera, etc.) and custom scripts.
Inputs: componentType (required), gameObjectPath (required), port.
unity_component_batch_wireA
Wire multiple object references in one call (e.g. a manager to all its panels). Each entry: target GameObject, property, reference to assign.
Inputs: references (required), port.
unity_component_get_propertiesB
Get all serialized properties of a component on a GameObject.
Inputs: componentType (required), gameObjectPath (required), port.
unity_component_get_referenceableA
Discover what objects can be assigned to an ObjectReference property. Returns matching scene objects and project assets filtered by the expected type. Useful before wiring references to know what's available.
Inputs: propertyName (required), path, port, instanceId, +2 more.
unity_component_removeB
Remove a component from a GameObject.
Inputs: componentType (required), gameObjectPath (required), port, index.
unity_component_set_propertyC
Set a serialized component property: numbers, strings, bools, vectors, colors, enums or object references.
Inputs: value (required), propertyName (required), componentType (required), gameObjectPath (required), +1 more.
unity_component_set_referenceA
Wire an object reference on a component property. Resolves by asset path, scene GameObject name, component type, or instance ID (richer than set_property for ObjectReference fields).
Inputs: propertyName (required), path, port, clear, +6 more.
unity_console_clearA
Clear the Unity console log.
Inputs: port.
unity_console_logB
Get recent Unity console log messages (errors, warnings, info).
Inputs: port, type, count, maxStackFrames, +1 more.
unity_editor_pingA
Check if the Unity Editor bridge is running and responsive. Returns editor version, project name, and connection status.
Inputs: port.
unity_editor_stateB
Get the current Unity Editor state: play mode, compilation status, active scene, project path.
Inputs: port.
unity_execute_codeA
Run C# in the Unity Editor with Unity API access. Return a small JSON result. If an error has executionCompleted=true, the code already ran; inspect its effects before retrying.
Inputs: code (required), port.
unity_gameobject_createB
Create a new GameObject in the scene. Can specify primitive type (Cube, Sphere, Capsule, Cylinder, Plane, Quad), parent, and initial transform.
Inputs: name (required), port, scale, parent, +3 more.
unity_gameobject_deleteA
Delete a GameObject by path or name. Refuses if its runtime mesh is shared by other objects (ProBuilder clones) — reports sharedWith; pass force:true to override.
Inputs: path, port, force, instanceId.
unity_gameobject_duplicateB
Duplicate a GameObject with all its children and components.
Inputs: path, port, newName, instanceId.
unity_gameobject_infoA
Get detailed info about a specific GameObject: transform, components, children, active state, tags, layer.
Inputs: path, port, instanceId.
unity_gameobject_reparentB
Move a GameObject under a new parent in the hierarchy.
Inputs: path, port, newParent, instanceId, +1 more.
unity_gameobject_set_activeB
Set a GameObject active or inactive.
Inputs: active (required), path, port, instanceId.
unity_gameobject_set_transformC
Set the transform (position, rotation, scale) of a GameObject.
Inputs: path, port, local, scale, +3 more.
unity_get_compilation_errorsA
Get C# compilation errors/warnings via CompilationPipeline — independent of the console buffer (survives console clear and log flooding). Prefer this over unity_console_log for compile issues.
Inputs: port, count, severity.
unity_get_project_contextA
Get the project docs/guidelines the team prepared for AI agents (from Assets/MCP/Context/). No args = all context; pass a category for one document. Call early in a session.
Inputs: port, category.
unity_graphics_game_captureB
Render one camera to inline PNG, without Game View composition or overlay UI. Whole-pixel sizes within device limits, at most 33554432 pixels.
Inputs: port, width, height, cameraName.
unity_graphics_scene_captureB
Render the Scene View camera to inline PNG. Whole-pixel sizes within device limits, at most 33554432 pixels.
Inputs: port, width, height.
unity_hub_available_releasesA
List Unity Editor versions available for download from Unity Hub.
Inputs: no named parameters.
unity_hub_get_install_pathA
Get the current default installation path for Unity Editors.
Inputs: no named parameters.
unity_hub_install_editorB
Install a specific Unity Editor version. Optionally include platform modules (android, ios, webgl, linux, macos, windows-il2cpp).
Inputs: version (required), modules.
unity_hub_install_modulesA
Install additional platform modules to an already-installed Unity Editor version.
Inputs: modules (required), version (required).
unity_hub_list_editorsA
List all Unity Editor versions currently installed via Unity Hub, including their installation paths.
Inputs: no named parameters.
unity_hub_set_install_pathB
Set the default installation directory for Unity Editors.
Inputs: path (required).
unity_list_advanced_toolsA
Discover advanced Unity tools (execute them via unity_advanced_tool) without loading full schemas: search=keywords → matching tools; category=name → its tools with parameter names; tool=name → that tool's full parameter schema; no args → all category names with counts (e.g. animation, terrain, shadergraph, probuilder, uma, physics, lighting, ui, …).
Inputs: port, tool, search, category, +1 more.
unity_list_instancesA
List running Unity Editor instances (name, port, version, clone flag, pluginVersion). With multiple instances, select one with unity_select_instance next.
Inputs: refresh.
unity_material_createC
Create a new material asset with a specified shader and properties.
Inputs: path (required), port, color, shader, +2 more.
unity_packages_addA
Add/install a Unity package by identifier (e.g. 'com.unity.cinemachine' or 'com.unity.cinemachine@3.0.0').
Inputs: identifier (required), port.
unity_packages_infoA
Get detailed info about an installed package including versions and dependencies.
Inputs: name (required), port.
unity_packages_listA
List all installed Unity packages with their name, version, source, and status.
Inputs: port.
unity_packages_removeC
Remove/uninstall a Unity package by name.
Inputs: name (required), port.
unity_packages_searchB
Search for Unity packages in the registry.
Inputs: query (required), port.
unity_play_modeB
Control Unity Editor play mode: enter play, pause, or stop.
Inputs: action (required), port.
unity_prefab_infoA
Get detailed prefab information: overrides, variant status, added/removed components. Works on both prefab assets and scene instances.
Inputs: path, port, assetPath, instanceId.
unity_project_infoA
Get project information: name, path, Unity version, render pipeline, packages, build settings.
Inputs: port.
unity_queue_infoB
Queue depths, agents and results. Plugin metrics: http, httpCommands (admission), completedResults (cost/evictions), historyNotifications (backlog), historyPersistence (file limits/failures). Reset on reload. serverAgentState: Node agent/identity limits, leases, evictions. Accounted bytes are not heap usage.
Inputs: port.
unity_redoA
Redo the last undone operation in Unity Editor.
Inputs: port.
unity_renderer_set_materialC
Assign a material to a GameObject's renderer.
Inputs: materialPath (required), gameObjectPath (required), port, materialIndex.
unity_scene_hierarchyA
Get the hierarchy tree of all GameObjects in the active scene, including their components and children. Dense by default: per-node fields at their default value (active=true, tag=Untagged, layer=Default, origin position, Transform) are omitted — an absent field means the default.
Inputs: port, verbose, maxDepth, maxNodes, +1 more.
unity_scene_infoB
Get information about the currently open scene(s), including name, path, dirty state, and root game objects.
Inputs: port.
unity_scene_newA
Create a new empty scene (REPLACES the current one). Refuses if any loaded scene has unsaved changes — pass saveFirst or discardUnsavedChanges.
Inputs: port, saveFirst, discardUnsavedChanges.
unity_scene_openA
Open a scene by its asset path (relative to Assets/). Refuses if any loaded scene has unsaved changes — pass saveFirst or discardUnsavedChanges.
Inputs: path (required), port, saveFirst, discardUnsavedChanges.
unity_scene_saveA
Save the current scene. A never-saved scene requires path, else Unity opens its interactive Save dialog.
Inputs: path, port, overwrite.
unity_scene_statsA
Get comprehensive scene statistics: total objects, vertices, triangles, lights, cameras, colliders, and top component types.
Inputs: port.
unity_screenshot_editor_windowA
Capture an existing EditorWindow to PNG (Windows PrintWindow) without requesting keyboard focus. Hidden tabs require activateTab:true; ambiguous names return id: candidates. GPU/minimized windows can refuse capture. USE ONLY ON EXPLICIT USER REQUEST; never proactively or for your own inspection. On macOS/Linux report unsupported, do not retry; use Game/Scene captures there.
Inputs: window (required), path, port, activateTab, +1 more.
unity_screenshot_gameA
Capture a screenshot of the Game View. The screenshot is saved on the next frame render.
Inputs: path, port, superSize.
unity_screenshot_sceneB
Capture a screenshot of the Scene View camera. Returns immediately with the saved file path.
Inputs: path, port, width, height.
unity_script_createB
Create a new C# script file in the project with the given content.
Inputs: path (required), content (required), port, className, +1 more.
unity_script_readB
Read the contents of a C# script file from the project.
Inputs: path (required), port.
unity_script_updateB
Update the contents of an existing C# script file.
Inputs: path (required), content (required), port.
unity_search_assetsA
Search for assets in the project by name, type, and folder. Uses Unity's AssetDatabase search.
Inputs: port, type, query, folder, +1 more.
unity_search_by_componentB
Find all GameObjects in the scene that have a specific component type. Returns their paths and instance IDs.
Inputs: componentType (required), port, limit, includeInactive.
unity_search_by_layerB
Find all GameObjects on a specific layer.
Inputs: layer (required), port, limit.
unity_search_by_nameB
Find all GameObjects whose name contains a pattern. Supports substring matching or regex.
Inputs: name (required), port, limit, regex, +1 more.
unity_search_by_tagB
Find all GameObjects with a specific tag.
Inputs: tag (required), port, limit.
unity_search_missing_referencesB
Find all missing/broken object references and missing scripts in the scene. Essential for cleanup and debugging.
Inputs: port, limit, scope.
unity_select_instanceA
Select the Unity Editor instance this session targets; subsequent unity_* calls route there. Identify it by projectName (stable) or port (dynamic — can change across editor restarts). PARALLEL SAFETY: after selecting, include port on every unity_* call when multiple agents share this MCP process.
Inputs: port, projectName.
unity_selection_find_by_typeC
Find all GameObjects in the scene that have a specific component type.
Inputs: typeName (required), port, limit.
unity_selection_focus_scene_viewA
Control the Scene View camera: frame a GameObject, set pivot/rotation/zoom, toggle orthographic.
Inputs: path, port, size, position, +3 more.
unity_selection_getA
Get the currently selected GameObjects in the Unity Editor.
Inputs: port.
unity_selection_setC
Set the editor selection to specific GameObjects.
Inputs: path, port, paths, instanceId.
unity_set_object_referenceA
[LEGACY] Set an object reference on a component. Prefer unity_component_set_reference (richer resolution).
Inputs: propertyName (required), path, port, instanceId, +3 more.
unity_undoA
Undo the single most recent step on Unity's global undo stack (Ctrl+Z). To revert a specific MCP action, prefer unity_undo_last.
Inputs: port.
unity_undo_historyB
Show which recorded MCP actions can still be reverted, with agent, target and current Unity Undo state.
Inputs: port, count, agentId.
unity_undo_lastA
Revert the latest verified MCP Undo group, optionally by agentId. Newer MCP/native groups require force:true. Only Unity-registered changes are covered; this revert creates no Redo step. Use unity_undo for normal Undo/Redo. Reads and execute-code are not targets.
Inputs: port, force, agentId.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 80 tools
Several tools target the same resource/action: unity_search_by_component and unity_selection_find_by_type are effectively duplicates, and unity_screenshot_scene/unity_graphics_scene_capture plus their game-view variants overlap. Legacy unity_set_object_reference also overlaps with unity_component_set_reference, creating real misselection risk despite descriptive text.
All names use snake_case with a unity_ prefix, but verb/noun order is inconsistent: domain_action (unity_scene_save, unity_asset_delete) mixes with action_domain (unity_list_instances, unity_get_project_context) and bare verbs (unity_build, unity_redo). Readable overall, but the pattern is not predictable.
80 direct tools is far beyond the 25+ threshold; additionally unity_advanced_tool fronts 269+ lazy-loaded tools. This is an extreme over-scoping that burdens discovery and selection.
Core Unity editor automation is broadly covered: GameObjects, components, scenes, assets, prefabs, scripts, packages, Hub, play mode, build, and advanced tools. Minor gaps remain (e.g., direct asset move/rename, material property edit, script delete), but most can be handled via execute_code/menu/advanced tools.
Maintenance
Related MCP Connectors
214 tools for AI agents over one MCP endpoint: image, video, audio, 3D, data, storage, mail, GPUs.
Connect AI assistants to your approved computer for files, commands, browser and desktop tasks.
Create and manage AI agents that collaborate and solve problems through natural language interacti…
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceEnables AI agents to interact with Unity projects through multimodal vision, code analysis, asset management, and scene manipulation. Supports real-time Unity editor control, project search, script creation, and visual debugging through screenshots.32MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to interact with Unity Editor projects through 68+ tools for manipulating scenes, GameObjects, components, and assets, plus live access to console logs, hierarchies, and test results.12 npm9MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to query and control the Unity Editor, supporting scene management, GameObject manipulation, asset browsing, play mode control, and real-time editor operations through 52+ tools.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Unity Editor, managing scenes, game objects, animations, materials, scripts, and more via natural language commands.2MIT