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 |
Capabilities
Features and capabilities supported by this server
| 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 | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SamDreamsMaker/unity-api-communicator-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server