# Unity — MCP Tools Catalog

The complete catalog of the 190 MCP tools the Unity plugin exposes, grouped into 27 families. The flagship catalog — scenes, GameObjects, prefabs, scripting, profiling, and a deep bench of extension packages.

_Last updated: 2026-06-17_

## Scene — Open, save, switch, unload scenes

| Tool | Kind | Description |
| --- | --- | --- |
| scene-create | create | Create a new scene asset. |
| scene-open | action | Open a saved scene for editing in the Editor. |
| scene-get-data | read | Return the hierarchy + object metadata of a loaded scene. |
| scene-list-opened | read | List all scenes currently loaded in the Editor. |
| scene-save | action | Save changes to one or more open scenes. |
| scene-set-active | action | Switch the editor’s active working scene. |
| scene-unload | destroy | Unload a scene without deleting the asset. |

## GameObject — Create, find, parent, modify objects

| Tool | Kind | Description |
| --- | --- | --- |
| gameobject-create | create | Create a new GameObject with optional transform. |
| gameobject-destroy | destroy | Destroy a GameObject (and its children). |
| gameobject-duplicate | create | Clone an existing GameObject in the scene. |
| gameobject-find | read | Search GameObjects by name, tag, or layer. |
| gameobject-modify | write | Update name, active state, layer, tag, or transform. |
| gameobject-set-parent | write | Reparent a GameObject in the hierarchy. |

## Component — Add, get, modify, remove components

| Tool | Kind | Description |
| --- | --- | --- |
| gameobject-component-add | create | Attach a component by type name. |
| gameobject-component-destroy | destroy | Remove a component from a GameObject. |
| gameobject-component-get | read | Retrieve a component’s serialized properties. |
| gameobject-component-list-all | read | List every component attached to a GameObject. |
| gameobject-component-modify | write | Apply a patch to a component’s serialized fields. |

## Object — Serialize & patch live objects

| Tool | Kind | Description |
| --- | --- | --- |
| object-get-data | read | Serialize an object’s live state to JSON. |
| object-modify | write | Apply a JSON patch to an object’s fields. |

## Asset — Find, move, modify, refresh assets

| Tool | Kind | Description |
| --- | --- | --- |
| assets-find | read | Search project assets by name, type, label, or bundle. |
| assets-find-built-in | read | Locate Unity built-in assets (default sprites, meshes, materials). |
| assets-get-data | read | Return an asset’s metadata, GUID, and serialized properties. |
| assets-copy | create | Duplicate an asset to a new path. |
| assets-move | write | Move or rename an asset. |
| assets-delete | destroy | Delete an asset from the project. |
| assets-create-folder | create | Create a folder under Assets/. |
| assets-refresh | action | Trigger an AssetDatabase refresh. |
| assets-modify | write | Update an asset’s importer settings or serialized fields. |

## Prefab — Create, open, save, instantiate

| Tool | Kind | Description |
| --- | --- | --- |
| assets-prefab-create | create | Create a prefab asset from a scene GameObject. |
| assets-prefab-open | action | Open a prefab for editing in prefab mode. |
| assets-prefab-close | action | Close prefab edit mode and save. |
| assets-prefab-save | action | Persist changes to an open prefab. |
| assets-prefab-instantiate | create | Spawn a prefab instance into the active scene. |

## Material — Create materials

| Tool | Kind | Description |
| --- | --- | --- |
| assets-material-create | create | Create a new Material asset. |

## Shader — List & inspect shaders

| Tool | Kind | Description |
| --- | --- | --- |
| assets-shader-get-data | read | Inspect a shader’s property list and tags. |
| assets-shader-list-all | read | Search available shaders in the project. |

## Editor — Selection · play mode · tools list

| Tool | Kind | Description |
| --- | --- | --- |
| editor-selection-get | read | Return GameObjects currently selected in the editor. |
| editor-selection-set | write | Change the editor selection. |
| editor-application-get-state | read | Report play mode, paused state, and compile status. |
| editor-application-set-state | action | Enter or exit play mode, pause or step. |
| unity-tool-list | read | Enumerate every MCP tool available to the client. |
| tool-set-enabled-state | write | Enable or disable individual MCP tools at runtime. |

## Console — Read & clear log messages

| Tool | Kind | Description |
| --- | --- | --- |
| console-get-logs | read | Read recent Editor console messages. |
| console-clear-logs | action | Clear the console. |

## Script — Create, read, delete, execute C#

| Tool | Kind | Description |
| --- | --- | --- |
| script-update-or-create | create | Create or overwrite a C# script file. |
| script-read | read | Read the contents of a C# script. |
| script-delete | destroy | Delete a C# script file from the project. |
| script-execute | action | Execute a method on a script with parameters. |

## Reflection — Invoke C# methods · JSON schemas

| Tool | Kind | Description |
| --- | --- | --- |
| reflection-method-call | action | Invoke a class method via reflection. |
| reflection-method-find | read | Fuzzy-search methods across loaded assemblies. |
| type-get-json-schema | read | Generate a JSON schema for a C# type. |

## Package — Add, list, search, remove packages

| Tool | Kind | Description |
| --- | --- | --- |
| package-add | create | Install a package from registry, Git, or local path. |
| package-list | read | List installed Unity packages with versions. |
| package-search | read | Query the package registry for available packages. |
| package-remove | destroy | Uninstall a Unity package. |

## Profiler — Capture & inspect performance data

| Tool | Kind | Description |
| --- | --- | --- |
| profiler-get-status | read | Report whether profiling is active and which modules are recording. |
| profiler-start | action | Begin a profiling session. |
| profiler-stop | action | End the active profiling session. |
| profiler-capture-frame | action | Capture a single frame of profiling data. |
| profiler-get-memory-stats | read | Return memory usage statistics for the captured frames. |
| profiler-get-rendering-stats | read | Return rendering statistics (draw calls, triangles, batches). |
| profiler-get-script-stats | read | Return per-script CPU timing statistics. |
| profiler-list-modules | read | List all available profiler modules and their state. |
| profiler-enable-module | write | Enable or disable a specific profiler module. |
| profiler-clear-data | action | Clear all captured profiling data. |
| profiler-save-data | action | Save captured profiling data to a .raw file. |
| profiler-load-data | action | Load profiling data from a saved .raw file. |

## Screenshot — Capture camera / game / scene views

| Tool | Kind | Description |
| --- | --- | --- |
| screenshot-camera | action | Render a screenshot from a specific Camera component. |
| screenshot-game-view | action | Capture the current Game view. |
| screenshot-scene-view | action | Capture the current Scene view. |
| screenshot-isolated | action | Render a single GameObject in isolation. |

## Tests — Run Unity test runner suites

| Tool | Kind | Description |
| --- | --- | --- |
| tests-run | action | Execute Unity test runner suites (EditMode / PlayMode). |

## System — Ping & author reusable skills

| Tool | Kind | Description |
| --- | --- | --- |
| ping | read | Health-check the MCP connection. |
| unity-skill-create | create | Author a reusable skill (a saved, parameterised tool sequence). |
| unity-skill-generate | action | Regenerate all skill tool wrappers from their definitions. |

## Animation — AnimationClip & AnimatorController

| Tool | Kind | Description |
| --- | --- | --- |
| animation-create | create | Create AnimationClip assets at supplied paths. |
| animation-get-data | read | Inspect an AnimationClip — curves, frame events, looping flag. |
| animation-modify | write | Edit AnimationClip curves, events, loop settings. |
| animator-create | create | Create an AnimatorController asset (auto-folders included). |
| animator-get-data | read | Inspect an Animator — layers, states, transitions, parameters. |
| animator-modify | write | Edit Animator layers, states, transitions, or blend trees. |

## Particles — Inspect & modify ParticleSystem

| Tool | Kind | Description |
| --- | --- | --- |
| particle-system-get | read | Serialize every ParticleSystem module on a component to JSON. |
| particle-system-modify | write | Apply property changes across any of the 24 ParticleSystem modules. |

## ProBuilder — Mesh modeling · extrude · bevel

| Tool | Kind | Description |
| --- | --- | --- |
| probuilder-create-shape | create | Create a primitive ProBuilder mesh (cube, sphere, cylinder, arch, stairs, etc.). |
| probuilder-create-poly-shape | create | Build a ProBuilder mesh from a 2D polygon of points. |
| probuilder-extrude | write | Extrude selected faces along their normals. |
| probuilder-bevel | write | Chamfer edge loops with a configurable amount. |
| probuilder-bridge | write | Bridge two non-adjacent edges into a new face. |
| probuilder-connect-edges | write | Insert a new face between connected edges. |
| probuilder-subdivide-edges | write | Split edges into multiple segments. |
| probuilder-delete-faces | destroy | Delete selected face geometry. |
| probuilder-flip-normals | write | Reverse face winding on selected faces. |
| probuilder-merge-objects | write | Combine multiple ProBuilder meshes into one. |
| probuilder-get-mesh-info | read | Serialize the vertices, edges, faces, and UVs of a ProBuilder mesh. |
| probuilder-set-face-material | write | Apply a material to selected faces. |
| probuilder-set-pivot | write | Move the pivot point of a ProBuilder mesh. |

## Cinemachine — Virtual cameras · lens · blends

| Tool | Kind | Description |
| --- | --- | --- |
| cinemachine-camera-create | create | Create a new CinemachineCamera (virtual camera) GameObject with optional transform, priority, and Follow/LookAt targets. |
| cinemachine-camera-get | read | Read a CinemachineCamera’s full configuration — lens, targets, priority, and pipeline components. |
| cinemachine-camera-list | read | List every CinemachineCamera in the active scene with name, priority, and live state. |
| cinemachine-set-targets | write | Set the Follow and/or LookAt targets of a CinemachineCamera (or clear them). |
| cinemachine-set-lens | write | Set lens fields — FOV / ortho size, near/far clip planes, dutch — of a CinemachineCamera. Only provided fields change. |
| cinemachine-set-body | write | Add or replace the Body (position-control) component of a CinemachineCamera by type (Follow / Orbital / ThirdPerson / …). |
| cinemachine-set-aim | write | Add or replace the Aim (rotation-control) component of a CinemachineCamera by type (Composer / RotationComposer / …). |
| cinemachine-set-noise | write | Add or configure a CinemachineBasicMultiChannelPerlin (camera shake) on a CinemachineCamera. |
| cinemachine-set-priority | write | Set the Priority value of a CinemachineCamera — higher priority wins control of the brain. |
| cinemachine-set-default-blend | write | Set the CinemachineBrain default blend style and time (seconds) on a Camera’s brain. |
| cinemachine-brain-ensure | create | Ensure a CinemachineBrain component exists on a Camera GameObject (adds it if missing). |
| cinemachine-add-extension | create | Add a CinemachineExtension-derived component (by type name) to a CinemachineCamera. |
| cinemachine-get | read | Serialize any Cinemachine component on a GameObject via ReflectorNet. |
| cinemachine-modify | write | Apply a SerializedMember diff to any Cinemachine component via ReflectorNet. |

## Splines — Knots · tangents · evaluate curves

| Tool | Kind | Description |
| --- | --- | --- |
| splines-container-create | create | Create a new SplineContainer GameObject (with one empty spline) in the active scene. |
| splines-add-spline | create | Add a new empty Spline to an existing SplineContainer. Returns the new spline index. |
| splines-add-knot | create | Append a knot (BezierKnot) to a spline. Returns the appended knot index. |
| splines-insert-knot | create | Insert a knot at a specific index in a spline, shifting later knots forward. |
| splines-set-knot | write | Set position / tangents / rotation of an existing knot. Only provided fields change. |
| splines-remove-knot | destroy | Remove the knot at the given index from a spline, shifting later knots back. |
| splines-set-tangent-mode | write | Set the TangentMode (Linear / Continuous / Broken / AutoSmooth / Mirrored) of a knot. |
| splines-set-closed | write | Toggle whether a spline is a closed loop (last knot connects back to the first). |
| splines-evaluate | read | Evaluate a spline at normalized t in [0,1] — position (local + world), tangent, and up. |
| splines-get-knots | read | Read all knots — position, tangents, rotation, tangent mode — of a spline. |
| splines-list | read | List all SplineContainers in the active scene with name and per-spline knot counts. |
| splines-get | read | Serialize any Splines component on a GameObject via ReflectorNet. |
| splines-modify | write | Apply a SerializedMember diff to any Splines component via ReflectorNet. |

## Terrain — Sculpt · paint · scatter trees

| Tool | Kind | Description |
| --- | --- | --- |
| terrain-create | create | Create a new Terrain GameObject backed by a new TerrainData asset, with heightmap resolution and size. |
| terrain-set-heights | write | Set heightmap values over a region or the whole terrain — uniform fill or an explicit 2D array. |
| terrain-sample-heights | read | Read normalized [0,1] heightmap values over a region (or the whole terrain). |
| terrain-set-size | write | Set the world-space size (width / height / length) of a Terrain’s TerrainData. Omitted axes unchanged. |
| terrain-set-heightmap-resolution | write | Set the heightmap resolution of a Terrain’s TerrainData (rounded to a valid 2^n + 1). |
| terrain-add-layer | create | Add a TerrainLayer to a Terrain — from an existing .terrainlayer asset or a new layer built from a texture. |
| terrain-remove-layer | destroy | Remove a TerrainLayer from a Terrain by index. Returns the remaining layer count. |
| terrain-paint-layer | action | Paint a TerrainLayer over a region by writing the alphamap so the chosen layer has the given strength. |
| terrain-place-trees | action | Place trees on a Terrain from a prototype — random scatter (count) or explicit positions. |
| terrain-set-tree-prototypes | write | Replace the Terrain’s tree prototypes from prefab asset paths. Returns the resulting count. |
| terrain-set-detail-prototypes | write | Replace the Terrain’s detail prototypes (grass / detail meshes) from textures and/or prefabs. |
| terrain-set-neighbors | write | Set the left / top / right / bottom neighbor Terrains of a center Terrain so Unity blends seams. |
| terrain-get | read | Read a Terrain’s configuration — size, resolutions, layers, prototypes, and tree count. |
| terrain-list | read | List all Terrains in the active scene with name, size, heightmap resolution, and layer count. |
| terrain-get-component | read | Serialize a Terrain / TerrainCollider component on a GameObject via ReflectorNet. |
| terrain-modify-component | write | Apply a SerializedMember diff to a Terrain / TerrainCollider component via ReflectorNet. |

## Input System — Action maps · bindings · schemes

| Tool | Kind | Description |
| --- | --- | --- |
| inputsystem-asset-create | create | Create a new .inputactions InputActionAsset at an Assets/ path, optionally with an initial ActionMap. |
| inputsystem-actionmap-add | create | Add a new ActionMap to an existing InputActionAsset and save it. |
| inputsystem-actionmap-remove | destroy | Remove an ActionMap (and its actions / bindings) from an InputActionAsset and save it. |
| inputsystem-action-add | create | Add an Action (type + optional expectedControlType + optional initial binding) to an ActionMap. |
| inputsystem-action-remove | destroy | Remove an Action (and its bindings) from an ActionMap and save the asset. |
| inputsystem-binding-add | create | Add a simple Binding (path / groups / interactions / processors) to an Action. |
| inputsystem-binding-composite-add | create | Add a composite Binding (2DVector / 1DAxis / …) with named parts to an Action. |
| inputsystem-binding-set | write | Update a Binding’s path / groups / interactions / processors by index on an Action. |
| inputsystem-binding-remove | destroy | Remove a Binding by index from an Action and save the asset. |
| inputsystem-controlscheme-add | create | Add a Control Scheme (with required / optional device requirements) to an InputActionAsset. |
| inputsystem-get | read | Read an InputActionAsset’s full structure — maps, actions, bindings, and control schemes. |
| inputsystem-modify | write | Apply a SerializedMember diff to an InputActionAsset via ReflectorNet. |
| inputsystem-save | action | Re-serialize an InputActionAsset to disk and re-import it. |

## Tilemap — 2D grids · paint · tile assets

| Tool | Kind | Description |
| --- | --- | --- |
| tilemap-create | create | Create a Grid GameObject with a child Tilemap + TilemapRenderer in the active scene. |
| tilemap-set-tile | write | Paint a single TileBase asset into a Tilemap at a cell coordinate. A null path erases the cell. |
| tilemap-box-fill | action | Fill a rectangular region of a Tilemap with a TileBase asset via Tilemap.BoxFill. |
| tilemap-clear | destroy | Clear all tiles or a rectangular region from a Tilemap. |
| tilemap-get-tile | read | Read the tile at a single Tilemap cell — presence, asset name/path, color, collider type. |
| tilemap-set-collider-type | write | Set the per-cell collider type (None / Sprite / Grid) of a tile in a Tilemap. |
| tilemap-set-tile-flags | write | Set per-cell color and/or transform (flip / rotate / scale) of a painted tile. |
| tilemap-set-orientation | write | Set the tile anchor and/or layout orientation of a Tilemap. |
| tilemap-list | read | List all Tilemaps in the active scene with name, tile count, bounds, and orientation. |
| tilemap-get | read | Serialize a Tilemap-related component on a GameObject via ReflectorNet. |
| tilemap-modify | write | Apply a SerializedMember diff to a Tilemap-related component via ReflectorNet. |
| tilemap-create-tile-asset | create | Create a Tile asset from a Sprite — color + collider type — and save it at an Assets/ path. |
| tilemap-create-rule-tile | create | Create a RuleTile asset (2D Tilemap Extras) with an optional default Sprite at an Assets/ path. |

## Navigation — NavMesh · bake · agents · links

| Tool | Kind | Description |
| --- | --- | --- |
| navigation-surface-add | create | Add and configure a NavMeshSurface on a GameObject (or a new one) — agent type, collect objects, area. |
| navigation-set-bake-settings | write | Set NavMesh bake settings — agent radius / height / max-slope / step-height and voxel size. |
| navigation-surface-bake | action | Bake (BuildNavMesh) or clear (RemoveData) the NavMesh of a NavMeshSurface. |
| navigation-modifier-add | create | Add and configure a NavMeshModifier on a GameObject — override area, ignore-from-build, apply-to-children. |
| navigation-modifier-volume-add | create | Add and configure a NavMeshModifierVolume on a GameObject — box size / center and the area inside. |
| navigation-link-add | create | Add and configure a NavMeshLink on a GameObject — start/end points, width, bidirectional, cost, area. |
| navigation-agent-add | create | Add and configure a NavMeshAgent on a GameObject (or a new one) — agent type, speed, radius, height. |
| navigation-agent-set-destination | action | Set a NavMeshAgent’s destination from a world point or a target GameObject and start pathfinding. |
| navigation-list | read | List all NavMeshSurfaces and NavMeshAgents in the active scene with key settings. |
| navigation-get | read | Serialize any NavMesh component on a GameObject via ReflectorNet. |
| navigation-modify | write | Apply a SerializedMember diff to any NavMesh component via ReflectorNet. |

## Timeline — Cutscenes · tracks · clips · binding

| Tool | Kind | Description |
| --- | --- | --- |
| timeline-create | create | Create a new empty TimelineAsset (.playable) at a project path, with optional frame rate and duration mode. |
| timeline-track-add | create | Add a track (Animation / Activation / Audio / Signal / Control / Playable / Group) to a TimelineAsset. |
| timeline-track-remove | destroy | Remove a track (by name or root index) and all its clips / markers from a TimelineAsset. |
| timeline-track-list | read | List every track of a TimelineAsset with type, mute / lock state, and clip count. |
| timeline-track-bind | write | Bind a scene object / component to a Timeline output track through a PlayableDirector generic binding. |
| timeline-clip-add | create | Add a clip (animation / audio / default) to a Timeline track, with optional start, duration, and name. |
| timeline-clip-move | write | Move a Timeline clip to an absolute start time or by a relative delta (duration preserved). |
| timeline-clip-set-timing | write | Set clip timing — start, duration, clipIn, blends, eases, timeScale — on a Timeline clip. |
| timeline-marker-add | create | Add a marker (SignalEmitter by default) at a time on a track or the timeline marker track. |
| timeline-director-bind | write | Bind a TimelineAsset to a GameObject’s PlayableDirector (adds it if missing), optionally setting playOnAwake. |
| timeline-list | read | List all TimelineAssets in the project with path, GUID, track count, and duration. |
| timeline-get | read | Serialize a TimelineAsset, a TrackAsset, or a clip’s PlayableAsset via ReflectorNet. |
| timeline-modify | write | Apply a SerializedMember diff to a TimelineAsset / TrackAsset / clip PlayableAsset via ReflectorNet. |

---

Source (HTML): https://ai-game.dev/docs/tools/unity
