unity-mcp-server
Unity MCP Server — 268 tools for AI-assisted game development. Connect Claude, Cursor, or any MCP client to Unity Editor & Unity Hub. Scene management, GameObjects, components, builds, profiling, Shader Graph, Amplify, terrain, physics, NavMesh, animation, MPPM multiplayer & more. Free & open source by AnkleBreaker Studio.
How to read this: tool names here are observed from a live tools/list handshake. The Risk label is a heuristic inferred from the tool name (write/destructive verbs), not from executing the tool — a conservative guess, not a verified capability. We never escalate risk from a description. Found one that's wrong? Tell us — we fix on report.
| Tool | Risk | Side effects | Approval |
|---|---|---|---|
| unity_select_instance Select which Unity Editor instance to work with for this session. All subsequent unity_* commands will be routed to the selected instance. You must provide the port number of the instance (get it from unity_list_instances). IMPORTANT: Call unity_list_instances first to see available instances and their ports. PARALLEL SAFETY: After selecting, include 'port: <number>' as a parameter in ALL subsequent unity_* tool calls to guarantee routing to this instance even when multiple agents share the same MCP process. | read | false | unknown |
| unity_hub_install_modules Install additional platform modules to an already-installed Unity Editor version. | unknown | unknown | unknown |
| unity_list_instances List all running Unity Editor instances that the MCP can connect to. Returns each instance's project name, port, Unity version, and whether it's a ParrelSync clone. Use this to see which Unity projects are currently open before selecting one to work with. IMPORTANT: When multiple instances are detected, always call this first and then use unity_select_instance to choose which project to target. | read | false | unknown |
| unity_hub_install_editor Install a specific Unity Editor version. Optionally include platform modules (android, ios, webgl, linux, macos, windows-il2cpp). | unknown | unknown | unknown |
| unity_editor_ping Check if the Unity Editor bridge is running and responsive. Returns editor version, project name, and connection status. | read | false | unknown |
| unity_hub_available_releases List Unity Editor versions available for download from Unity Hub. | read | false | unknown |
| unity_hub_set_install_path Set the default installation directory for Unity Editors. | write | true | unknown |
| unity_scene_open Open a scene by its asset path (relative to Assets/). | unknown | unknown | unknown |
| unity_hub_list_editors List all Unity Editor versions currently installed via Unity Hub, including their installation paths. | read | false | unknown |
| unity_hub_get_install_path Get the current default installation path for Unity Editors. | read | false | unknown |
| unity_scene_info Get information about the currently open scene(s), including name, path, dirty state, and root game objects. | read | false | unknown |
| unity_editor_state Get the current Unity Editor state: play mode, compilation status, active scene, project path. | read | false | unknown |
| unity_scene_save Save the current scene. | unknown | unknown | unknown |
| unity_gameobject_delete Delete a GameObject from the scene by path or name. | destructive | true | true |
| unity_component_remove Remove a component from a GameObject. | destructive | true | true |
| unity_scene_new Create a new empty scene. | unknown | unknown | unknown |
| unity_scene_hierarchy Get the full hierarchy tree of all GameObjects in the active scene, including their components and children. | read | false | unknown |
| unity_gameobject_create Create a new GameObject in the scene. Can specify primitive type (Cube, Sphere, Capsule, Cylinder, Plane, Quad), parent, and initial transform. | write | true | unknown |
| unity_gameobject_info Get detailed info about a specific GameObject: transform, components, children, active state, tags, layer. | read | false | unknown |
| unity_component_get_properties Get all serialized properties of a component on a GameObject. | read | false | unknown |
| unity_component_get_referenceable 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. | read | false | unknown |
| unity_gameobject_set_transform Set the transform (position, rotation, scale) of a GameObject. | write | true | unknown |
| unity_component_add Add a component to a GameObject. Supports built-in types (Rigidbody, BoxCollider, AudioSource, Light, Camera, etc.) and custom scripts. | write | true | unknown |
| unity_component_set_reference Set an object reference on a component property. Dedicated tool for wiring references between GameObjects, components, and assets. More powerful than set_property for ObjectReference fields — supports resolution by asset path, scene GameObject name, component type, or instance ID. | write | true | unknown |
| unity_asset_import Import an external file into the Unity project as an asset. | unknown | unknown | unknown |
| unity_component_set_property Set a property value on a component. Supports floats, ints, strings, bools, vectors, colors, and object references. For ObjectReference properties, pass value as: an asset path string, a scene object name string, null to clear, or an object with {assetPath}, {instanceId}, or {gameObject, componentType}. | write | true | unknown |
| unity_component_batch_wire Wire multiple object references in a single call. Efficient for setting up many references at once (e.g. wiring a UI manager to all its panels, connecting enemy AI to patrol waypoints). Each entry specifies a target GameObject, property, and reference to assign. | unknown | unknown | unknown |
| unity_asset_delete Delete an asset from the project. | destructive | true | true |
| unity_asset_list List assets in the project. Can filter by path, type, and search term. | read | false | unknown |
| unity_asset_instantiate_prefab Instantiate a prefab into the current scene. | unknown | unknown | unknown |
| unity_asset_create_prefab Create a prefab from an existing GameObject in the scene. | write | true | unknown |
| unity_script_update Update the contents of an existing C# script file. | write | true | unknown |
| unity_script_create Create a new C# script file in the project with the given content. | write | true | unknown |
| unity_script_read Read the contents of a C# script file from the project. | read | false | unknown |
| unity_execute_code Execute arbitrary C# code inside the Unity Editor. The code runs in the editor context with access to all Unity APIs. Useful for one-off operations, queries, and automation. Return values are serialized to JSON. | write | true | unknown |
| unity_material_create Create a new material asset with a specified shader and properties. | write | true | unknown |
| unity_console_clear Clear the Unity console log. | unknown | unknown | unknown |
| unity_project_info Get project information: name, path, Unity version, render pipeline, packages, build settings. | read | false | unknown |
| unity_renderer_set_material Assign a material to a GameObject's renderer. | write | true | unknown |
| unity_get_compilation_errors Get C# compilation errors and warnings from the Unity Editor. Uses CompilationPipeline directly — independent of the console log buffer. Not affected by console clear or Play Mode log flooding. Returns errors from the last compilation cycle. Use this instead of unity_console_log when diagnosing script compilation issues. | read | false | unknown |
| unity_build Start a build of the Unity project for a target platform. | unknown | unknown | unknown |
| unity_console_log Get recent Unity console log messages (errors, warnings, info). Useful for debugging. | read | false | unknown |
| unity_execute_menu_item Execute a Unity Editor menu command by its path (e.g. 'File/Save', 'GameObject/3D Object/Cube', 'Window/General/Console'). | write | true | unknown |
| unity_gameobject_duplicate Duplicate a GameObject with all its children and components. | unknown | unknown | unknown |
| unity_play_mode Control Unity Editor play mode: enter play, pause, or stop. | unknown | unknown | unknown |
| unity_set_object_reference [LEGACY — prefer unity_component_set_reference] Set an object reference property on a component via the prefab system. Use unity_component_set_reference instead for richer resolution options. | write | true | unknown |
| unity_selection_get Get the currently selected GameObjects in the Unity Editor. | read | false | unknown |
| unity_prefab_info Get detailed prefab information: overrides, variant status, added/removed components. Works on both prefab assets and scene instances. | read | false | unknown |
| unity_gameobject_reparent Move a GameObject under a new parent in the hierarchy. | unknown | unknown | unknown |
| unity_gameobject_set_active Set a GameObject active or inactive. | write | true | unknown |
| unity_selection_focus_scene_view Control the Scene View camera: frame a GameObject, set pivot/rotation/zoom, toggle orthographic. | read | false | unknown |
| unity_search_by_layer Find all GameObjects on a specific layer. | read | false | unknown |
| unity_selection_set Set the editor selection to specific GameObjects. | write | true | unknown |
| unity_search_by_tag Find all GameObjects with a specific tag. | read | false | unknown |
| unity_selection_find_by_type Find all GameObjects in the scene that have a specific component type (e.g. 'Rigidbody', 'Camera', 'Light', 'AudioSource', or custom scripts). | read | false | unknown |
| unity_search_by_name Find all GameObjects whose name contains a pattern. Supports substring matching or regex. | read | false | unknown |
| unity_undo Undo the last operation in Unity Editor. | unknown | unknown | unknown |
| unity_search_by_component Find all GameObjects in the scene that have a specific component type. Returns their paths and instance IDs. | read | false | unknown |
| unity_search_assets Search for assets in the project by name, type, and folder. Uses Unity's AssetDatabase search. | read | false | unknown |
| unity_redo Redo the last undone operation in Unity Editor. | unknown | unknown | unknown |
| unity_search_missing_references Find all missing/broken object references and missing scripts in the scene. Essential for cleanup and debugging. | read | false | unknown |
| unity_scene_stats Get comprehensive scene statistics: total objects, vertices, triangles, lights, cameras, colliders, and top component types. | read | false | unknown |
| unity_screenshot_game Capture a screenshot of the Game View. The screenshot is saved on the next frame render. | read | false | unknown |
| unity_undo_history Get information about the current undo group. | read | false | unknown |
| unity_graphics_scene_capture Capture the current Scene View as an inline image. Returns base64 PNG that Claude can see directly. Use to visually inspect the scene layout. | read | false | unknown |
| unity_packages_remove Remove/uninstall a Unity package by name. | destructive | true | true |
| unity_screenshot_scene Capture a screenshot of the Scene View camera. Returns immediately with the saved file path. | read | false | unknown |
| unity_packages_list List all installed Unity packages with their name, version, source, and status. | read | false | unknown |
| unity_packages_info Get detailed info about an installed package including versions and dependencies. | read | false | unknown |
| unity_screenshot_editor_window Capture a screenshot of a specific Editor window (Inspector, Project, Console, custom editor windows) to a PNG file, via the Win32 PrintWindow API — occlusion-proof (grabs the real editor UI even when the window is hidden behind others, without raising it or stealing focus). USE ONLY ON EXPLICIT USER REQUEST: call this tool ONLY when the user specifically asks to take a screenshot / screen capture of an editor window. Do NOT call it proactively, to visually inspect the editor for your own reasoning, or as an implicit step toward another task — if you merely think a capture might help, do not call it unless the user asked. WINDOWS EDITOR ONLY: it relies on a Win32 API with no macOS/Linux equivalent. On macOS/Linux it returns { success:false, error, platform }; when that happens (or if you already know the user is not on the Windows editor), do NOT retry — tell the user this feature is unavailable on their operating system. For the game or scene view use unity_screenshot_game / unity_screenshot_scene instead (camera-based, cross-platform). | read | false | unknown |
| unity_graphics_game_capture Capture the Game View camera as an inline image. Returns base64 PNG that Claude can see directly. Use to see what the player sees. | read | false | unknown |
| unity_packages_search Search for Unity packages in the registry. | read | false | unknown |
| unity_packages_add Add/install a Unity package by identifier (e.g. 'com.unity.cinemachine' or 'com.unity.cinemachine@3.0.0'). | write | true | unknown |
| unity_queue_info Get the current state of the multi-agent request queue: total queued requests, active agents, per-agent queue depths, and completed cache size. Useful for monitoring when multiple agents are working on the same Unity project. | read | false | unknown |
| unity_advanced_tool Execute an advanced/specialized Unity tool by name. Use unity_list_advanced_tools to discover available tools and their parameters. This provides access to 200+ specialized tools for animation, prefabs, physics, shaders, terrain, particles, UI, profiling, and more. | unknown | unknown | unknown |
| unity_agents_list 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. | read | false | unknown |
| unity_get_project_context Get project-specific context and documentation that the team has prepared for AI agents. This includes project guidelines, architecture docs, game design documents, networking rules, and any other project knowledge stored in Assets/MCP/Context/. Call this without arguments to get ALL context, or specify a category for a specific document. IMPORTANT: Call this early in your session to understand the project's conventions and architecture. | read | false | unknown |
| unity_agent_log Get the action log for a specific agent, showing the last 100 actions with timestamps. | read | false | unknown |
| unity_list_advanced_tools List all available advanced/specialized Unity tools organized by category. These tools are not directly exposed but can be called via unity_advanced_tool. Categories include: uma, animation, prefab, physics, lighting, audio, shadergraph, amplify, terrain, particle, navmesh, ui, texture, profiler, memory, settings, input, asmdef, scriptableobject, constraint, lod, editorprefs, playerprefs, vfx, graphics, sceneview, and more. | read | false | unknown |
- repohttps://github.com/AnkleBreaker-Studio/unity-mcp-server
- homepagehttps://anklebreaker-consulting.com/en/projects/unity-mcp
- licenseNOASSERTION
- adoption326 stars · 44 forks
The access this server can exercise, inferred from its verified tools — not a declared OAuth scope.
Add the “as seen on MCPExplorer” badge to your README.
This is one server. A loadout combines the right servers, governance, and proven plays for a whole job — assembled deliberately, not tool-dumped.
Explore loadouts →