Skip to content

Tools Reference

Tools are organized into a 13-tool Core and ten task-oriented categories. Use the live catalog to discover the tools available in your installed version.

How Tools Work

TIER1 tools — Always visible to your AI assistant.

Category-gated tools — Enable via discover_tools(category, enable=True) or through the Unity Biome MCP Settings panel.

Custom plugin categories — Tools registered to an explicit custom category are hidden until that category is enabled. A plugin that omits category registration does not receive isolated category gating.

Categories Overview

Category Purpose
Core 13 always-visible tools for hierarchy inspection, component access, object changes, batching, and verification
SCENE Scene and object lifecycle, hierarchy queries, spatial context, and scene changes
COMPONENTS Component references and event wiring
ASSETS Prefabs, materials, shaders, ScriptableObjects, and project settings
UGUI Canvas-based UI creation, layout, event validation, and uGUI authoring
UITOOLKIT UI Toolkit (UXML/USS) inspection, validation, and VisualElement manipulation
MEDIA Animation, Timeline, particles, screenshots, rendering
VERIFY Compile checks, scene validation, diagnostics, and post-change verification
RUNTIME Play Mode state, methods, watches, debugging, and profiling
TESTS Unity tests, Playtest execution, linting, and alias synchronization
SYSTEM Connection, sessions, skills, permissions, intent tools, and maintenance

I want to...

Inspect my scene - get_hierarchy — Tree view of all GameObjects - search_scene — Find objects by name/component/tag - get_component — Read component properties

Create & modify objects - create_object — Spawn new GameObjects - set_property — Change component values - manage_component — Add/remove components - batch — Run compatible operations in one call

Work with prefabs - prefab (save) — Convert scene instance → prefab asset - prefab (edit) — Modify prefab without unpacking - prefab (apply/revert) — Push/discard instance changes

Run tests & playtests - run_playtest — Execute DSL-based test scenarios - run_tests — Low-level nonblocking NUnit dispatch - run_tests_wait — Preferred interactive correlated NUnit runner - get_test_run — Poll one exact durable NUnit run - resolve_test_request — Resolve a lost start acknowledgment - cancel_test_run — Cancel one exact durable NUnit run - list_test_runs — Inspect recent durable NUnit runs - test_step — Single assertion within a test

Take screenshots - screenshot — Capture game view with annotations - screenshot_baseline — Save reference image - screenshot_compare — Visual diff against baseline

Debug & Verify - doctor — Health check with optional stale-file cleanup - verify_after_change — 5-gate verification (compile, errors, console, tests, playtests) - scan_scene — Scene infrastructure audit - scene_health — Hierarchy and health checks - validate_references — ObjectReference field validation - resolve_scene_refs — Resolve paths and aliases - lint_scene_refs — Lint DSL and batch references - get_console — Read console errors & warnings - get_compile_errors — C# compile status - reconnect_unity — Restart TCP connection

Advanced: Animation & VFX - animator_intent — Setup animation controller - vfx_intent — Natural language VFX control

Advanced: Code analysis - compile_preflight — Validate C# before write - execute_code — Run bounded C# in Unity

TIER1 Tools (Always Available)

Core (13): - get_hierarchy, get_component, inspect, set_property, create_object - manage_component, batch, editor, get_console, get_compile_errors - execute_code, compile_preflight, mcp_status

Other TIER1 tools: Run discover_tools(enable=False, structured=True) and look for entries tagged tier1. This keeps the reference aligned with the installed version.

Enabling Tools by Category

To unlock advanced tools, enable the category:

# Enable Canvas-based (uGUI) UI tools
await discover_tools("UGUI", enable=True)

# Enable UI Toolkit (UXML/USS) tools
await discover_tools("UITOOLKIT", enable=True)

# Enable animation, Timeline, particles, screenshots, rendering
await discover_tools("MEDIA", enable=True)

# Enable validation and compile tools
await discover_tools("VERIFY", enable=True)

# Enable asset tools (prefab, material, scriptable_object, etc.)
await discover_tools("ASSETS", enable=True)

After enabling, the tools appear in the advertised tool list. Category gating controls discovery and context budget; it is not authorization, and a client that already knows a hidden Python tool name may still call it. Use the security controls when access must be restricted.

Available categories: - SCENE - COMPONENTS - ASSETS - UGUI (Canvas-based UI) - UITOOLKIT (UI Toolkit / UXML) - MEDIA - VERIFY - RUNTIME - TESTS - SYSTEM

Run discover_tools(enable=False, structured=True) to inspect the current catalog, including each tool's supported surfaces. Legacy category aliases remain available with include_legacy=True.

Custom plugin categories use the same session gate. For example, enable a plugin registered as my_plugin with discover_tools(category="my_plugin", enable=True).

Batch: Combine Operations for Token Savings

Only tools reported with surfaces=direct,batch can be batched. Direct-only tools must be called through their typed MCP interface.

# Before: 3 calls
await create_object(name="Player")
await set_property(path="Player", component="Transform", prop="position", value="0,1,0")
await get_component(path="Player", type="Transform")

# After: 1 batch call (text DSL format)
result = await batch("""
create_object name=Player
set_property path=Player component=Transform prop=position value=0,1,0
get_component path=Player type=Transform
""")

Use discover_tools(enable=False, structured=True) as the source of truth for batch eligibility. See Batch Reference for command syntax, failure handling, and rollback behavior.

Tool Status & Discovery

Check which tools are currently enabled:

# Get all enabled tools in current session
await get_enabled_tools()

# Auto-discover available tools
await discover_tools()

This helps your AI assistant optimize its decision tree — it only offers tools that are actually available in your project.

Troubleshooting: "Tool not found"

Before opening an issue:

  1. Is the tool's category enabled? ```python catalog = await discover_tools(enable=False, structured=True)

Find the tool's category in the catalog, then enable it:

await discover_tools("MEDIA", enable=True) ```

  1. Is the MCP connection alive? python await list_connections()

  2. Check for plugin errors: python await get_console(level="Error,Exception,Assert")

  3. Run diagnostics: python await doctor(fix=True)

Next Steps


Live reference: Run discover_tools(enable=False, structured=True), then use resolve_tool_schema(tools="tool_name") for the installed tool's current parameters.