Unity API Communicator MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| UAC_HOST | No | Unity API Communicator host | localhost |
| UAC_PORT | No | Unity API Communicator port | 7777 |
| UAC_TIMEOUT | No | Request timeout in milliseconds | 10000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| statusA | Get server status (read-only, no parameters required) [Category: core] |
| project_infoA | Get project info (read-only, no parameters required) [Category: core] |
| gameobject_createA | Create a new GameObject in the active Unity scene. Can create primitives (Cube, Sphere, Capsule, Cylinder, Plane, Quad) or empty GameObjects. Supports setting initial transform and parent. |
| gameobject_deleteA | Delete a GameObject from the scene by name. The object and all its children will be destroyed. |
| gameobject_transformA | Set the transform (position, rotation, scale) of a GameObject. Only provided fields are modified. |
| gameobject_listA | List all root GameObjects in the active scene with a 2-level hierarchy (root objects and their direct children). Returns name, active state, tag, layer, and child count. |
| gameobject_cloneB | Duplicate/clone a GameObject. The clone appears at the same position as the original. |
| gameobject_activeB | Enable or disable a GameObject (set active/inactive). |
| gameobject_tagC | Set the tag of a GameObject. |
| gameobject_layerA | Set the layer of a GameObject. Accepts layer number (0-31) or layer name. |
| gameobject_find_by_tagA | Find all GameObjects with a specific tag. Returns name, active state, and layer for each match. |
| gameobject_component_addA | Add a component to a GameObject. Use Unity component type names like Rigidbody, BoxCollider, AudioSource, Light, etc. |
| gameobject_component_removeC | Remove a component from a GameObject by type name. |
| gameobject_componentsB | List components (read-only, no parameters required) [Category: gameobject] |
| gameobject_hierarchyC | Set parent (POST /api/gameobject/hierarchy) [Category: gameobject] |
| gameobject_materialD | Set material (POST /api/gameobject/material) [Category: gameobject] |
| scene_activeA | Get information about the currently active scene: name, path, build index, dirty state, root object count. |
| scene_createA | Create a new empty scene. Mode 'Single' replaces current scene, 'Additive' adds alongside existing scenes. |
| scene_openA | Open/load an existing scene by its asset path (e.g. 'Assets/Scenes/Main.unity'). |
| scene_saveB | Save the active scene. Optionally specify a new path to 'Save As'. |
| scene_closeB | Close a scene. Optionally save before closing. |
| scene_loadedA | List all currently loaded scenes with their name, path, dirty state, and which is active. |
| scene_setactiveC | Set a loaded scene as the active scene. |
| asset_createC | Create a new asset in the project. Supported types: Material, Script, Shader, ScriptableObject, AnimationClip, AnimatorController, and more. |
| asset_deleteC | Delete an asset from the project by its path. |
| asset_renameC | Rename an asset. |
| asset_moveC | Move an asset to a different folder. |
| assets_listB | List assets in the project. Filter by type and/or folder. Returns name, path, and type for each asset. |
| material_colorC | Set a color property on a material. Default property is '_Color' (main color). Color values are 0-1 floats. |
| material_floatB | Set a float property on a material (e.g. _Metallic, _Smoothness, _Glossiness). |
| material_textureC | Set a texture on a material. Default property is '_MainTex' (albedo/diffuse). |
| material_shaderC | Change the shader of a material (e.g. 'Standard', 'Universal Render Pipeline/Lit'). |
| material_propertiesB | List all shader properties of a material with their current values, types, and names. |
| prefab_createC | Create a prefab asset from an existing scene GameObject. The prefab is saved as a .prefab file. |
| prefab_instantiateB | Instantiate a prefab in the current scene. Creates a prefab instance linked to the original asset. |
| prefab_applyC | Apply all overrides from a prefab instance back to the original prefab asset. |
| prefab_unpackC | Unpack a prefab instance, breaking the prefab link. Mode 'OutermostRoot' unpacks the top level, 'Completely' unpacks all nested prefabs. |
| build_settingsB | Get current build settings: active platform, enabled scenes, development mode, player settings (company, product, version). |
| build_player_settingsC | Update Player settings. All fields are optional — only provided fields are changed. |
| build_switch_platformB | Switch the active build platform. This may take time as Unity reimports assets. |
| build_startA | Start a build with the current build settings. Uses enabled scenes from Build Settings. This may take a long time. |
| build_platformsB | List all available build platforms and the currently active one. |
| console_logA | Log a message to the Unity Console. Supports Log, Warning, and Error types. |
| console_clearA | Clear the Unity Console and the internal log buffer. |
| console_logsB | Get captured console logs. Requires console listening to be started first. |
| console_startA | Start listening to Unity Console messages. Required before console_logs will capture anything. |
| console_stopA | Stop listening to Unity Console messages. |
| console_errorsB | Get error and warning counts from the console log buffer. |
| console_compilationB | Get compilation errors and warnings directly from Unity's internal log system (up to 100 entries). |
| selection_getA | Get the current editor selection: active GameObject, active object, and all selected objects with their types. |
| selection_setA | Select a GameObject by name in the editor. Optionally add to existing selection. |
| selection_assetB | Select and ping an asset in the Project window by its path. |
| selection_clearB | Clear the current editor selection. |
| selection_allC | Select all (POST /api/selection/all) [Category: selection] |
| selection_focusA | Focus the Scene View camera on the currently selected GameObject (equivalent to pressing F). |
| camera_createB | Create a new Camera GameObject in the scene with optional position, FOV, and orthographic mode. |
| camera_configureC | Configure an existing camera's properties: FOV, clip planes, orthographic mode, background color, depth. |
| camera_listB | List all cameras in the scene with their settings (FOV, orthographic, depth, clip planes). |
| camera_screenshotC | Take a screenshot using ScreenCapture. |
| camera_captureB | Capture what a specific camera sees using RenderTexture. Higher quality than screenshot. Falls back to main camera if not specified. |
| discoverA | Discover all endpoints (read-only, no parameters required) [Category: discovery] |
| categoriesA | List categories (read-only, no parameters required) [Category: discovery] |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 62 tools
Most tools have distinct purposes with clear resource-action pairs (e.g., asset_create vs. asset_delete, camera_capture vs. camera_screenshot), but some overlap exists, such as console_errors and console_compilation both handling error reporting, which could cause minor confusion. Overall, the descriptions help differentiate them effectively.
Tool names follow a highly consistent verb_noun pattern throughout, such as asset_create, camera_list, and gameobject_transform. There are no deviations in naming conventions, making the set predictable and easy to parse for agents.
With 62 tools, the count is excessive for a single server, leading to potential cognitive overload and inefficiency. While the domain (Unity API) is broad, the tool set feels bloated and could benefit from consolidation or modularization into sub-servers.
The tool surface provides comprehensive coverage for Unity project management, including asset handling, scene manipulation, camera controls, console logging, and game object operations. It supports full CRUD/lifecycle workflows with no apparent gaps, ensuring agents can perform complex tasks without dead ends.