Skip to main content
Glama

AnkleBreaker Unity MCP

Server regression tests Plugin route checks

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.

Watch the AI assistant build a neon brick-breaker prototype in the Unity Editor

▶ 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#main

The 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 ci

3. 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.

Recorded Unity MCP workflow building a medieval village with terrain and reusable houses

▶ 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.

Recorded Unity MCP workflow constructing a castle and testing its lighting and walkthrough

▶ 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.

  1. Call unity_list_instances and identify the project by name and path.

  2. Call unity_select_instance with projectName or a discovered port.

  3. Include that port on editor calls when coordinating simultaneous tasks.

  4. 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

Unity Hub editors and modules

Terrain, navigation, particles

Profiler, memory, Frame Debugger

ProBuilder, UMA, Amplify

UI, audio, input actions

Screenshots and action history

Project-specific context resources

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 test

These 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_list and unity_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 tools
unity_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_execute_menu_itemA

Execute a Unity Editor menu command by its path (e.g. 'File/Save', 'GameObject/3D Object/Cube', 'Window/General/Console').

Inputs: menuPath (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_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

    B3.1/5.0

    Scored across 80 tools

    Disambiguation2/5

    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.

    Naming Consistency3/5

    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.

    Tool Count1/5

    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.

    Completeness4/5

    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

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      F
      maintenance
      Enables 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.
      32
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables 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 npm
      9
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to interact with Unity Editor, managing scenes, game objects, animations, materials, scripts, and more via natural language commands.
      2
      MIT