Unity MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| UNITY_PROJECT_PATH | Yes | Absolute path to your Unity project root |
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 |
|---|---|
| get_project_infoA | Get Unity project info: path, Unity version, build scene count, player/product name. |
| list_build_scenesA | List scenes in EditorBuildSettings (build order) as JSON. |
| read_agent_docsA | Read .agents/AGENT.md and optionally REPO_UNDERSTANDING.md. |
| get_player_settingsB | Get Player/ProjectSettings (product name, company, bundle ID, version, etc.). |
| list_packagesA | List Unity packages from Packages/manifest.json (and optional packages-lock.json). |
| get_quality_settingsA | Get QualitySettings (quality levels) from ProjectSettings. |
| get_scripting_definesB | Get global and per-assembly scripting define symbols. |
| list_assembliesA | List assembly definitions (.asmdef) with path, name, references, platforms. |
| get_assembly_for_pathA | Get the assembly (asmdef name and path) that contains the given asset path (script or folder). |
| list_scripts_by_assemblyA | List C# script paths that belong to a given assembly (by name or asmdef path). |
| list_asmdef_referencesA | List assembly names that reference the given assembly (reverse dependencies). |
| list_scriptsA | List all C# scripts under Assets. Optionally filter by folder prefix (e.g. Scripts). |
| find_scripts_by_contentB | Find C# scripts that contain a type or pattern (e.g. MonoBehaviour, ScriptableObject, or custom). Optionally filter by namespace. |
| list_all_scenesA | List all .unity scene files under Assets (not only build-indexed). |
| get_scene_summaryA | Get a short summary of a scene: root GameObject names and approximate component count. |
| get_scene_components_by_typeA | Get GameObjects in a scene that have a given component type (e.g. Camera, Light). |
| get_scene_objects_by_tagA | Get GameObjects in a scene that have a given tag (e.g. Spawn, Respawn). |
| get_all_components_by_typeA | Get all occurrences of a component type across all scenes (scene path + GameObject name). |
| get_scene_hierarchy_flatA | Get a flat list of all GameObjects in a scene (name and layer). |
| get_lighting_scene_infoB | Get lighting-related info for a scene: referenced lighting assets and GI workflow mode if present. |
| list_prefabsA | List all .prefab files. Optionally filter by path prefix under Assets. |
| list_prefab_variantsC | List prefabs that are variants of another prefab. |
| list_prefabs_with_componentA | List prefabs that contain a given component type (e.g. Animator, Rigidbody). |
| get_prefab_summaryA | Get a short summary of a prefab: root name, component count, and component type names. |
| find_referencesA | Find all assets (scenes, prefabs, materials, etc.) that reference the given asset. Pass asset path (e.g. Assets/Texture.png) or GUID. |
| get_asset_folder_treeA | Get a tree of Assets folder (directories and file names). Useful for understanding project layout. |
| list_assets_by_extensionB | List assets by file extension (e.g. .png, .fbx, .mp3). Optionally under a folder. |
| list_video_clipsB | List video clip assets (.mp4, .mov, .webm, .avi, .asf). |
| list_legacy_font_assetsA | List legacy font assets (.fontsettings, .ttf, .otf) — not TMP. |
| list_render_texturesB | List RenderTexture (.renderTexture) assets. |
| list_terrain_dataA | List TerrainData and TerrainLayer .asset files. |
| list_lighting_settings_assetsB | List lighting-related .asset files (LightingSettings, lightmap, etc.). |
| search_assets_by_nameA | Search Assets (and optionally Packages) by file or folder name pattern (e.g. Player, Menu). |
| get_texture_metaA | Get texture .meta info (maxTextureSize, width/height, spriteMode, spritePixelsToUnits) for a texture path. |
| search_projectA | Combined search: by asset name pattern, script content pattern, and/or referrers of an asset path. Returns assets, scripts, and optionally referrers. |
| get_meta_for_assetA | Read .meta for any asset path (guid and key-value pairs). |
| get_broken_asset_refsA | List prefabs, scenes, materials with any missing GUID reference (not only scripts). |
| list_scriptable_objectsA | List .asset files that are ScriptableObject instances (data assets). |
| list_materialsA | List .mat materials; optionally under a folder. Includes shader GUID when readable. |
| list_materials_using_shaderA | List material paths that use a given shader (pass shader GUID or asset path). |
| list_shadersA | List all .shader files in Assets and Packages. |
| list_animator_controllersA | List all Animator Controller (.controller) assets. |
| list_animation_clipsB | List all Animation Clip (.anim) assets. |
| get_animator_statesB | Get state names from an Animator Controller (.controller) file. |
| get_animator_transitionsB | Get state names and transitions (from/to) from an Animator Controller. |
| list_avatar_masksA | List Avatar Mask (.mask) assets used by Animator. |
| list_animator_override_controllersB | List AnimatorOverrideController .controller assets. |
| list_audio_clipsA | List audio clip files (.wav, .mp3, .ogg, .aiff) under Assets. |
| list_audio_mixersB | List Audio Mixer (.mixer) assets. |
| get_addressables_infoA | Get Addressables groups and config path if the project uses Addressables. |
| get_localization_tablesA | List localization table files under Assets/Localization if present. |
| get_input_axesA | Get input axes from InputManager (name, descriptive name, positive button). |
| get_tags_and_layersB | Get Tags and Layers from TagManager. |
| list_test_assembliesA | List assembly definitions that look like test assemblies (path contains test/editor). |
| get_repo_docsA | Read README, CONTRIBUTING, .cursorrules, CODING_STANDARDS, STYLE if present at project root. |
| get_project_versionB | Get project/bundle version from PlayerSettings. |
| get_changelogA | Read CHANGELOG.md or CHANGELOG if present. |
| get_physics_settingsA | Get Physics/DynamicsManager or Physics2D settings (key-value). |
| get_audio_settingsA | Get AudioManager.asset (global volume, reverb, DSP buffer). |
| get_navigation_settingsB | Get NavMesh/agent settings from ProjectSettings if present. |
| get_xr_settingsB | Get XR/VR project settings (XRSettings.asset). |
| get_script_execution_orderA | Get script execution order (MonoManager: script GUID and order). |
| get_version_control_settingsA | Get Unity version control settings (serialization mode, visible meta files). |
| get_layer_collision_matrixB | Get layer collision matrix and layer names from TagManager/DynamicsManager. |
| get_cloud_services_configA | Get Unity Cloud / Unity Connect config if present. |
| get_package_dependency_graphA | Get package dependency graph (nodes and edges from manifest + lock). |
| list_package_samplesA | List Samples folders or sample paths under Packages. |
| list_unity_hub_projectsA | List Unity Hub projects (basenames only by default; set UNITY_MCP_ALLOW_HUB_PATHS=1 for full paths). Does not require UNITY_PROJECT_PATH. |
| list_render_pipelinesB | List render pipeline assets and volume profiles (URP/HDRP). |
| list_timeline_playablesC | List Timeline .playable assets. |
| list_sprite_atlasesA | List Sprite Atlas (.spriteatlas) assets. |
| list_tilemap_assetsB | List tilemap-related .asset files. |
| list_sprite_assetsA | List textures configured as sprites (spriteMode in .meta). |
| list_shader_graphsA | List Shader Graph (.shadergraph) assets. |
| list_vfx_graphsA | List VFX Graph (.vfx) assets. |
| list_tmp_fontsA | List TMP/font-related assets. |
| get_tmp_settings_pathA | Get path to TMP Settings asset if present. |
| list_ui_documentsC | List UI Toolkit .uxml and .uss files. |
| list_input_action_assetsA | List New Input System .inputactions assets. |
| get_input_actions_summaryB | Get action maps and actions from an .inputactions file. |
| list_presetsB | List .preset assets. |
| list_editor_scriptsA | List C# scripts in Editor folders or with Editor in path. |
| get_prefab_script_guidsB | Get script GUIDs (MonoBehaviour) referenced by a prefab. |
| get_assembly_dependency_graphB | Get assembly definition dependency graph (nodes and edges). |
| list_ci_configsA | List CI config files (.github/workflows, Jenkinsfile, unity-cloud-build). |
| list_large_assetsA | List assets over a size threshold (default 5 MB). |
| get_playfab_configA | Get PlayFab config (title ID, config paths) from project. No secrets. |
| list_figma_related_assetsA | List assets in Figma folder or with figma in path. |
| get_firebase_configA | Get Firebase config (GoogleServices path, project ID). No secrets. |
| get_steam_configB | Get Steam config (steam_appid.txt, Steamworks path). |
| get_discord_configA | Detect Discord SDK path in Plugins. |
| get_fmod_configB | Get FMOD config (banks path, bank files). |
| get_wwise_configB | Get Wwise config (sound banks, project paths). |
| list_substance_assetsB | List Substance .sbsar and .sbs assets. |
| list_speedtree_assetsA | List SpeedTree .spm and .stm assets. |
| list_lottie_assetsB | List Lottie-related JSON assets. |
| get_analytics_or_crash_configA | Detect analytics/crash reporting services (Unity, Sentry, Crashlytics, BugSnag). |
| get_ads_configA | Detect ad SDK presence (Unity Ads, AdMob, ironSource). |
| get_git_lfs_trackedB | Get Git LFS patterns from .gitattributes. |
| get_plastic_configB | Get Plastic SCM config (.plastic, workspace name). |
| get_graphics_settingsB | Get Graphics settings (ProjectSettings/GraphicsSettings.asset). |
| get_time_settingsB | Get Time/Fixed timestep settings (TimeManager.asset). |
| list_subscenesB | List ECS/DOTS .subscene assets. |
| list_visual_scripting_assetsB | List Visual Scripting (Bolt/Unity) .asset files in Ludiq or com.unity.visualscripting. |
| get_script_public_apiB | Parse a C# script and return class name, base type, public methods and fields (no Unity required). |
| get_build_target_infoB | Get active build target / platform from ProjectSettings. |
| get_feature_set_inferenceB | Infer which Unity 6 feature sets (2D, ECS, AR, etc.) are used from package manifest. |
| get_project_statsA | One-shot project stats: script count, prefabs, scenes, materials, animations, assemblies, packages. |
| get_scene_referenced_assetsB | List asset paths referenced by a scene (GUIDs resolved). Helps build size and impact. |
| detect_assembly_cyclesB | Detect circular references in assembly definitions. Speeds up fixing compile errors. |
| find_script_referencesC | Find C# files that reference a type/class name. Speeds up refactoring. |
| get_broken_script_refsB | List prefabs/scenes that reference a script GUID with no .cs in project (missing script refs). |
| get_prefab_dependenciesA | List asset paths referenced by a prefab. Helps impact analysis. |
| get_release_readinessA | One-shot release readiness: version, build scene count, packages, broken refs, assembly cycles, large assets. |
| get_build_size_estimateA | Estimate build size: aggregate assets referenced by all build scenes, total size and largest assets. |
| search_toolsA | Find the most relevant tools by intent. Pass a query (e.g. find references, missing script, texture) to get matching tools with descriptions. Omit query to list all tools by category. |
| get_multiplayer_stackB | Detect Netcode / multiplayer packages and NetworkBehaviour-style scripts (NGO, Relay, Lobby, Mirror, Photon, …). |
| list_build_profilesB | List Unity 6 Build Profile assets (plus whether classic EditorBuildSettings exists). |
| get_physics_stackC | Physics packages (Unity Physics, Physics Core 2D), module hints, and Rigidbody/physics script hits. |
| get_optimization_package_inventoryC | Adaptive Performance and Project Auditor packages, scaler assets, and script usage. |
| get_ugs_cloud_stackC | Unity Gaming Services / Cloud Code / Auth / Economy package and script inventory. |
| get_accessibility_stackC | Accessibility module/package presence and AccessibilityNode / AssistiveSupport script hits. |
| list_cinemachine_assetsC | Cinemachine package + virtual camera assets/prefabs under Assets. |
| get_platform_build_hintsC | PlayerSettings snippets for Android/WebGL/etc., build target, and related packages (Unity 6 platform pass). |
| get_render_pipeline_migration_hintsB | Infer BIRP vs URP/HDRP and flag Built-in RP deprecation / migration risk (Unity 6.5+). |
| get_localization_stackA | Localization package + Locale/StringTable assets (broader than get_localization_tables). |
| get_ai_ml_package_inventoryB | List Unity AI/ML packages in manifest (ML-Agents, Sentis, Barracuda, AI Navigation, Muse, Unity AI). |
| list_ml_model_assetsA | List ML model files under Assets (.onnx, .nn, .pt, .tflite, .pb). |
| find_ai_related_scriptsB | Scan C# scripts for AI/ML patterns: Sentis, ML-Agents, NavMesh, behavior trees, ONNX, LLM API strings. |
| list_ai_prompt_or_config_assetsB | Heuristic scan for JSON/MD assets that look like prompts, RAG, or LLM config under Assets. |
| list_ml_agents_training_configsA | Find ML-Agents trainer YAML configs in project root and common folders. |
| get_ai_stack_summaryB | One-shot AI stack summary: packages, model files, script hits, ML-Agents configs. Set include_prompt_assets for prompt-like JSON/MD scan. |
| list_ai_skillsA | List bundled workflow skills by Unity domain (scenes, prefabs, assets, project, code, ai-ml, performance, …). |
| read_ai_skillA | Read a bundled skill by id from list_ai_skills (e.g. unity-scenes-workflow, unity-runtime-performance). |
| list_test_result_filesA | Find Unity Test Runner XML results (NUnit/JUnit) in the project. No Editor required. |
| get_test_results_summaryB | Summarize Test Runner XML: totals passed/failed/skipped per file with failing test names. |
| get_editor_log_errorsA | Tail the local Unity Editor.log for compile/runtime/test/build errors. Machine-local only, never uploads. |
| list_build_reportsB | List saved build reports (BuildReport JSON/text, build logs) in the project. |
| get_build_report_summaryA | Summarize a build report: size, scenes, errors/warnings. Defaults to newest report. |
| get_unity_ai_stackC | Unity AI platform audit: Muse/Assistant/Inference packages, AI-related ProjectSettings, hints. |
| list_building_blocksC | Unity 6.3 LTS Building Blocks: packages + sample assets with production-ready gameplay components. |
| list_inference_modelsC | On-device model assets: .onnx/.nn/.sentis/.pt/.tflite/.pb + .bytes with model markers. |
| get_llm_runtime_inventoryB | In-game LLM patterns: HTTP calls, SSE/streaming, WebSockets, API-key handling, chat memory, retry. No secrets read. |
| get_addressables_duplicatesB | Addressables duplicate check: asset GUIDs in multiple groups + optional profile path notes. |
| get_shader_variant_riskB | Shader variant risk: multi_compile/shader_feature counts, top shaders by material usage, keyword stats. |
| get_input_conflictsA | New Input System conflict scan: duplicate bindings inside the same action map. |
| get_xr_origin_validationB | XR scene validation: rig/origin/interaction-manager/teleport markers per scene. |
| scan_netcode_rpcB | Netcode RPC scan: ServerRpc/ClientRpc/NetworkVariable markers, unreliable delivery, ownership hints. |
| get_navmesh_bake_stateC | NavMesh bake state: scenes with NavMesh markers, settings presence, agent script hits. |
| get_lod_occlusion_coverageB | LOD/Occlusion coverage: scenes with LODGroup/occlusion markers for perf triage. |
| get_texture_import_heavinessC | Texture import audit: 2048+ caps, Read/Write enabled, missing mipmaps, Crunch usage. |
| get_audio_loudness_riskC | Audio mix risk: PCM vs Vorbis balance, streaming vs compressed-in-memory, music-length candidates. |
| get_timeline_balanceC | Timeline health: playable assets vs bound PlayableDirectors, Signal/Marker coverage. |
| get_unused_assets_estimateA | Unused-asset estimate: assets not referenced by build scenes (confirm via find_references; never auto-delete). |
| get_bridge_statusA | Live Editor bridge status: enabled only when UNITY_MCP_BRIDGE_URL/PORT points at 127.0.0.1. Default disabled. |
| bridge_live_fetchB | Fetch live Editor state via the opt-in localhost bridge (e.g. /hierarchy, /console, /screenshot). Refused when bridge disabled. |
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 156 tools
With 156 tools there is heavy overlap: get_ai_ml_package_inventory / get_ai_stack_summary / get_unity_ai_stack all report AI package stacks, list_ml_model_assets / list_inference_models / list_ml_agents_training_configs all scan model files, and get_localization_stack vs get_localization_tables are near-duplicates. Dozens of narrow list_* asset enumerators (list_assets_by_extension, list_scriptable_objects, list_sprite_assets, list_tmp_fonts) blur into one another, so an agent must guess which one to pick.
Nearly everything follows a predictable snake_case verb_noun pattern (list_*, get_*, find_*, search_*, scan_*, detect_*), which is readable and largely consistent. Minor deviations like bridge_live_fetch (noun_verb) and overlapping verb choices (get_package_dependency_graph vs get_assembly_dependency_graph vs detect_assembly_cycles) prevent a perfect score.
156 tools is roughly ten times a well-scoped surface and far beyond what an agent can reliably select from. Many tools are extremely narrow single-purpose audits (get_audio_loudness_risk, get_timeline_balance, list_lottie_assets) that would be better folded into a few parameterized tools.
Coverage of read-only project inspection is genuinely exhaustive—settings, assets, packages, build, testing, and third-party SDK detection are all present. However the surface is entirely read/analysis: there is no create, update, or delete operation for any resource, and no Editor mutation or build-execution path, leaving a notable gap for an MCP server meant to act on a Unity project.