Skip to main content
Glama

Unity MCP Server

A unified Model Context Protocol (MCP) server that combines Unity Editor integration, Unity knowledge base search, and comprehensive XREAL One Pro mixed reality development capabilities for AI assistants.

Features

Core Unity Editor Integration (22 Tools)

Tool

Description

execute_menu_item

Execute Unity menu items by path

select_gameobject

Select GameObjects in the editor

get_gameobject

Get detailed GameObject information

update_gameobject

Update or create GameObjects

delete_gameobject

Delete GameObjects from the scene

duplicate_gameobject

Duplicate GameObjects

find_gameobjects

Search for GameObjects by name/tag/layer/component

update_component

Add or modify components on GameObjects

add_asset_to_scene

Instantiate prefabs/assets in the scene

create_prefab

Create prefabs from GameObjects

create_scene

Create new scenes

delete_scene

Delete scenes

load_scene

Load scenes (single or additive)

add_package

Add packages via Package Manager

manage_asset

Move, copy, rename, delete assets

run_tests

Run Unity Test Runner tests

send_console_log

Send messages to Unity console

get_console_logs

Retrieve Unity console logs

recompile_scripts

Force script recompilation

play_mode

Control play mode (enter/exit/pause/step)

editor_selection

Get/set editor selection

search_unity_knowledge

Search Unity API docs via RAG


Related MCP server: MCP Unity Editor

XREAL Mixed Reality Tools (32 Tools)

Project Setup (4 Tools)

Tool

Description

setup_xreal_project

Configure Unity project for XREAL One Pro (NRSDK, XR Plugin Management)

configure_android_build

Android build settings optimized for Samsung S24 + XREAL

import_nrsdk

Import NRSDK package from local file or URL

validate_xreal_setup

Validate project configuration and fix issues

Device Control (4 Tools)

Tool

Description

get_xreal_device_info

Query connected device status, tracking state, battery

set_tracking_mode

Switch between 0DoF, 3DoF, and 6DoF tracking

calibrate_glasses

Trigger IPD, brightness, and tracking calibration

get_camera_frame

Capture RGB camera frame for CV/AR development

Hand Tracking (4 Tools)

Tool

Description

enable_hand_tracking

Enable/configure hand tracking with gesture recognition

get_hand_state

Query hand pose, joint positions, detected gestures

configure_hand_gestures

Configure gesture detection (pinch, grab, point, etc.)

create_hand_interactable

Add hand interaction to GameObjects (grab, poke, hover)

Spatial Mapping (5 Tools)

Tool

Description

enable_plane_detection

Detect horizontal/vertical planes (floors, walls, tables)

get_detected_planes

Query all detected planes with poses and classifications

create_spatial_anchor

Create persistent spatial anchors in the real world

manage_spatial_anchors

Load, save, delete, query spatial anchors

enable_meshing

Generate spatial mesh for physics and occlusion

Image Tracking (3 Tools)

Tool

Description

add_tracking_image

Register images for marker-based AR tracking

configure_image_tracking

Set tracking quality, simultaneous image count

get_tracked_images

Query currently detected and tracked images

Mixed Reality (3 Tools)

Tool

Description

configure_passthrough

Enable camera passthrough with blend settings

set_render_mode

Switch between VR, AR, and MR rendering modes

configure_occlusion

Set up depth-based real-world occlusion

Build & Deploy (2 Tools)

Tool

Description

build_xreal_apk

Build optimized APK for XREAL devices

get_connected_devices

List ADB-connected Android devices

XR Interaction Toolkit (4 Tools)

Tool

Description

setup_xr_interaction

Configure XR Interaction Toolkit for XREAL

create_xr_rig

Create XREAL-configured XR Origin camera rig

add_xr_interactor

Add ray/direct/poke interactors to controllers

create_xr_ui

Create world-space UI optimized for XR

Performance & Debug (3 Tools)

Tool

Description

get_xr_performance_metrics

Real-time FPS, GPU, CPU, thermals, memory

profile_xr_scene

Analyze scene for XR performance issues

capture_xr_screenshot

Capture mono/stereo XR viewport screenshots


Resources

Core Unity Resources (7)

Resource

URI

Description

Scene Hierarchy

unity://scenes_hierarchy

All GameObjects in loaded scenes

GameObject

unity://gameobject/{id}

Detailed GameObject info

Menu Items

unity://menu-items

Available Unity menu items

Console Logs

unity://logs/{type}

Console logs with filtering

Packages

unity://packages

Package Manager packages

Assets

unity://assets

Asset Database contents

Tests

unity://tests/{mode}

Test Runner tests

XREAL Resources (6)

Resource

URI

Description

Device State

xreal://device_state

Connection status, tracking quality, thermals

Hand Tracking

xreal://hand_tracking/{hand}

Real-time hand joint positions and gestures

Spatial Anchors

xreal://spatial_anchors

All spatial anchors in scene

Detected Planes

xreal://detected_planes

Environment surfaces with classifications

Tracked Images

xreal://tracked_images

Currently tracked image markers

Build Settings

xreal://build_settings

Android/XREAL build configuration


Prompts

Core Unity Prompts (1)

Prompt

Description

gameobject_handling_strategy

Workflow guidance for GameObject manipulation

XREAL Prompts (4)

Prompt

Description

xreal_project_setup

Step-by-step guide for new XREAL projects

hand_interaction_strategy

Best practices for hand tracking UX

spatial_anchor_workflow

Creating persistent MR experiences

xreal_optimization_guide

Mobile XR performance optimization


Installation

npm install
npm run build

Configuration

Claude Code (Project-Level)

Create .mcp.json in your project:

{
  "mcpServers": {
    "unity-mcp": {
      "command": "node",
      "args": ["C:/path/to/unity-mcp/build/index.js"],
      "env": {
        "UNITY_PORT": "8090",
        "UNITY_HOST": "localhost",
        "LOGGING": "true"
      }
    }
  }
}

Claude Desktop

Add to %APPDATA%/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "unity-mcp": {
      "command": "node",
      "args": ["C:/path/to/unity-mcp/build/index.js"],
      "env": {
        "UNITY_PORT": "8090"
      }
    }
  }
}
{
  "mcpServers": {
    "unity-mcp": {
      "command": "node",
      "args": ["path/to/unity-mcp/build/index.js"],
      "env": {
        "UNITY_PORT": "8090",
        "RAG_PYTHON_PATH": "python",
        "RAG_SERVER_PATH": "path/to/unity-rag-server",
        "RAG_DB_PATH": "path/to/unity-rag-server/data"
      }
    }
  }
}

Environment Variables

Variable

Description

Default

UNITY_PORT

Unity WebSocket server port

8090

UNITY_HOST

Unity WebSocket server host

localhost

LOGGING

Enable console logging

false

LOGGING_FILE

Enable file logging

false

RAG_PYTHON_PATH

Path to Python executable

-

RAG_SERVER_PATH

Path to RAG server directory

-

RAG_DB_PATH

Path to RAG database

-


Quick Start: XREAL Development

1. Setup New XREAL Project

Use prompt: xreal_project_setup
Parameters: { projectType: "MR", targetDevice: "XREALOnePro" }

This will guide you through:

  • Project configuration

  • NRSDK import

  • Android build settings

  • XR rig creation

  • Hand tracking setup

2. Create Hand-Interactive Object

Tool: create_hand_interactable
Parameters: {
  targetGameObject: "MyCube",
  interactionType: "Grab",
  highlightOnHover: true,
  hapticFeedback: true
}

3. Add Spatial Anchor

Tool: create_spatial_anchor
Parameters: {
  anchorName: "my_anchor",
  position: { x: 0, y: 1, z: 2 },
  persistent: true
}

4. Build and Deploy

Tool: build_xreal_apk
Parameters: {
  buildType: "Development",
  developmentBuild: true
}

Architecture

+-------------------+     STDIO      +-------------------+
|   AI Assistant    | <-----------> |   Unity MCP       |
|   (Claude Code)   |               |   Server (Node)   |
+-------------------+               +--------+----------+
                                             |
                            WebSocket (8090) |
                                             v
                                    +--------+----------+
                                    |   Unity Editor    |
                                    |   + NRSDK         |
                                    +--------+----------+
                                             |
                                      USB/WiFi |
                                             v
                                    +--------+----------+
                                    |  Samsung S24      |
                                    |  + XREAL One Pro  |
                                    +-------------------+

Development

# Build
npm run build

# Watch mode
npm run watch

# Run with MCP Inspector
npm run inspector

# Start
npm start

File Structure

unity-mcp/
├── src/
│   ├── index.ts                    # Server entry point
│   ├── unity/
│   │   └── mcpUnity.ts             # Unity WebSocket bridge
│   ├── tools/
│   │   ├── *.ts                    # Core Unity tools (22)
│   │   └── xreal/                  # XREAL tools (32)
│   │       ├── setupXrealProjectTool.ts
│   │       ├── enableHandTrackingTool.ts
│   │       ├── createSpatialAnchorTool.ts
│   │       └── ...
│   ├── resources/
│   │   ├── *.ts                    # Core Unity resources (7)
│   │   └── xreal/                  # XREAL resources (6)
│   │       ├── getDeviceStateResource.ts
│   │       ├── getHandTrackingResource.ts
│   │       └── ...
│   ├── prompts/
│   │   ├── gameobjectHandlingPrompt.ts
│   │   └── xreal/                  # XREAL prompts (4)
│   │       ├── xrealProjectSetupPrompt.ts
│   │       ├── handInteractionPrompt.ts
│   │       └── ...
│   └── utils/
│       ├── logger.ts
│       └── errors.ts               # Includes XREAL error types
├── build/                          # Compiled JavaScript
├── .mcp.json                       # MCP server configuration
└── package.json

Unity Side Requirements

The MCP server sends JSON-RPC messages to Unity. You need a Unity C# plugin that:

  1. Listens on WebSocket port 8090

  2. Handles incoming tool/resource requests

  3. Interfaces with NRSDK for XREAL features

  4. Returns JSON responses with { success: true/false, ... }


Summary

Category

Count

Core Unity Tools

22

XREAL Tools

32

Total Tools

54

Core Resources

7

XREAL Resources

6

Total Resources

13

Prompts

5


License

MIT

Available Tools

84 tools
add_asset_to_sceneA

Adds an asset from the AssetDatabase to the Unity scene

ParametersJSON Schema
NameRequiredDescriptionDefault
guidNoThe GUID of the asset
parentIdNoThe instance ID of the parent GameObject
positionNoPosition in the scene (defaults to Vector3.zero)
assetPathNoThe path of the asset in the AssetDatabase
parentPathNoThe path of the parent GameObject in the hierarchy

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate a write operation, and the description 'Adds' aligns. However, it omits details like side effects, failure conditions, or behavioral constraints beyond the bare action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with 10 words, front-loaded and efficient, no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 5 parameters and no output schema, the description covers the core function but misses context on parameter relationships (e.g., guid vs assetPath) and return behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Adds an asset from the AssetDatabase to the Unity scene' provides a specific verb, resource, and destination, clearly differentiating it from sibling tools like load_scene or manage_asset.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., create_prefab, prefab) or prerequisites (e.g., asset must exist in AssetDatabase).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_external_dllA

Downloads a raw DLL (or any binary asset) from a URL and installs it under the Unity project's Assets//. Use this for native plugins, NuGet DLLs, and CDN-hosted libraries that aren't published as Unity packages — e.g. zxing.unity.dll, Newtonsoft.Json.dll, custom .so/.aar bundles. The Node MCP server downloads the URL to a temp file and asks the Unity Editor to copy it into the Assets tree and refresh the AssetDatabase. Use add_package (source=github) for git-hosted UPM packages instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesDirect download URL for the DLL or binary asset.
fileNameNoFile name to save as (including extension). Defaults to the last segment of the URL.
overwriteNoOverwrite an existing file at the destination. Default true.
destinationFolderYesFolder under Assets/ to place the file in. Will be created if missing. Example: "Plugins/ZXing".

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds context beyond annotations: it explains the download-then-copy process ('The Node MCP server downloads the URL to a temp file and asks the Unity Editor to copy it into the Assets tree and refresh the AssetDatabase'). Annotations already mark it as non-readOnly and non-destructive, so the description provides useful procedural detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise (4 sentences) and front-loaded: first sentence states purpose, second gives use cases, third explains process, fourth contrasts with sibling. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, description still covers essential behavior: where file goes, how it's handled, and the overwrite flag. It mentions AssetDatabase refresh. Could briefly address error handling (e.g., URL failure) but overall sufficient for a simple file operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage with descriptions for all 4 parameters. The description adds value for 'fileName' by explaining it defaults to the last URL segment, but for other parameters it largely repeats schema info (e.g., 'overwrite' description is same). Baseline 3 is appropriate since schema already does heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool downloads a raw DLL or binary asset from a URL and installs it under Assets/<destinationFolder>/<fileName>. It specifies the verb (downloads/installs) and resource (DLL/binary asset), and distinguishes it from sibling tools like add_package by mentioning it is for assets not published as Unity packages.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly provides when to use this tool: for native plugins, NuGet DLLs, CDN-hosted libraries. It also gives examples (zxing.unity.dll, Newtonsoft.Json.dll) and tells when NOT to use it by suggesting add_package for git-hosted UPM packages.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_packageA

Adds packages into the Unity Package Manager

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoThe path to use (folder path for disk method or subfolder for GitHub)
branchNoThe branch to use for GitHub packages (optional)
sourceYesThe source to use (registry, github, or disk) to add the package
versionNoThe version to use for registry packages (optional)
packageNameNoThe package name to add from Unity registry (e.g. com.unity.textmeshpro)
repositoryUrlNoThe GitHub repository URL (e.g. https://github.com/username/repo.git)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already indicate readOnlyHint=false (write operation) and openWorldHint=true (potential side effects). The description adds no further behavioral context, such as error conditions or side effects, but does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that efficiently conveys the tool's purpose without unnecessary words. It is front-loaded and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the schema fully describes parameters, the description lacks an overview of behavior (e.g., different source types, requirements). Minimal but functional given sibling context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with all parameters documented. The description does not elaborate on parameters, but baseline is 3 given high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Adds') and resource ('packages into the Unity Package Manager'), clearly distinguishing it from sibling tools like 'add_asset_to_scene' or 'add_external_dll'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor are any conditions or prerequisites mentioned. The description simply states what it does without context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_tracking_imageB

Adds an image to the image tracking database. The system will detect and track this image in the camera feed, returning its pose in 3D space.

ParametersJSON Schema
NameRequiredDescriptionDefault
imageNameYesUnique name for this tracking image
imagePathYesPath to the image file (PNG or JPG) in the Assets folder
movingImageNoWhether the image may move (enables continuous tracking)
physicalWidthYesPhysical width of the image in meters (required for accurate tracking)
physicalHeightNoPhysical height of the image in meters (calculated from aspect ratio if not provided)
enableAtRuntimeNoWhether to track this image immediately
trackingQualityNoTracking quality vs performance trade-offMedium
maxTrackingDistanceNoMaximum distance in meters for detection

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, confirming mutation. The description adds that the system will 'detect and track this image' and 'return its pose in 3D space,' but does not disclose potential side effects (e.g., image already exists, database modifications) or permissions needed. Minimal additional behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the primary action, and contains no unnecessary words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 8 parameters and no output schema, yet the description ambiguously mentions 'returning its pose in 3D space'—likely referring to tracking later, not the add operation. Missing details on return value, prerequisites (image in Assets folder), and error conditions. Incomplete for a complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptive parameter descriptions. The tool description provides overall context but does not add specific meaning beyond the schema. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies the action 'adds an image to the image tracking database' and explains the resulting behavior (detection and tracking). This clearly distinguishes it from sibling tools like 'configure_image_tracking' (settings) and 'get_tracked_images' (query).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used to add new tracking images but provides no explicit guidance on when to use it versus alternatives, nor any exclusions or prerequisites. Usage is inferred rather than directly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_xr_interactorA

Adds XR interaction components to a GameObject. Interactors enable selection and manipulation of XR Interactables via ray casting or direct touch.

ParametersJSON Schema
NameRequiredDescriptionDefault
handNoWhich hand this interactor is associated withNone
lineTypeNoRay visual line typeStraight
rayWidthNoRay visual width in meters
rayLengthNoRay interactor max length in meters
enableHapticsNoEnable haptic feedback
rayValidColorNoRay color when hovering valid target (hex)#00FF00
interactorTypeYesType of interactor to add
attachTransformNoCreate attach point transform for grabbed objects
rayInvalidColorNoRay color when hovering invalid target (hex)#FF0000
targetGameObjectYesInstance ID, name, or path of the GameObject to add interactor to
selectActionTriggerNoHow select action triggersStateChange

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate a write operation (readOnlyHint=false), and the description's verb 'Adds' aligns with that. The description adds behavioral context about the interactors' capabilities (ray casting/direct touch) but does not disclose side effects like potential game object modifications or dependencies on XR setup.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at two sentences, with the action front-loaded in the first sentence and purpose added in the second. No filler or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (11 params, 4 enum types) and the lack of an output schema, the description provides basic high-level context but lacks details on expected behavior, constraints, or how it fits with sibling tools. It is adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 11 parameters have descriptions in the schema (100% coverage), so the description adds no extra parameter-level context. The baseline is 3, and the description does not enhance understanding of parameter usage beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Adds XR interaction components to a GameObject') and differentiates from sibling tools like 'setup_xr_interaction' by specifying component-level addition rather than system setup. It also provides context on what interactors enable (selection/manipulation), making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any guidance on when to use this tool versus alternatives, nor does it specify prerequisites or exclusions. The mention of 'via ray casting or direct touch' gives limited context but no comparative decision framework.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

animationB

Controls Unity Animation and Timeline systems. Actions:

  • play: Play animation on a GameObject

  • stop: Stop animation

  • pause: Pause animation

  • sample: Sample animation at specific time

  • get_clips: List animation clips on an Animator

  • get_parameters: Get Animator parameters

  • set_parameter: Set an Animator parameter (float, int, bool, trigger)

  • get_state_info: Get current Animator state info

  • crossfade: Crossfade to an animation state

  • get_timeline_state: Get Timeline playback state

  • set_timeline_time: Set Timeline playback position

  • play_timeline: Control Timeline playback

  • record_animation: Start/stop animation recording

  • create_clip: Create a new animation clip

ParametersJSON Schema
NameRequiredDescriptionDefault
speedNoAnimation playback speed
actionYesAnimation action to perform
clipNameNoName of the animation clip
objectIdNoInstance ID of the GameObject
wrapModeNoAnimation wrap mode
stateNameNoName of the Animator state
layerIndexNoAnimator layer index (default: 0)
objectPathNoHierarchy path of the GameObject
newClipPathNoPath for new animation clip
timelineTimeNoTime position for Timeline
parameterNameNoName of the Animator parameter
parameterTypeNoType of the Animator parameter
normalizedTimeNoNormalized time (0-1) for sampling or crossfade
parameterValueNoValue to set for the parameter
timelineActionNoTimeline playback action
recordingActionNoAnimation recording action
transitionDurationNoDuration of crossfade transition in seconds

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only indicate readOnlyHint=false, requiring the description to disclose behavioral traits. The list of actions is provided but without details on side effects, prerequisites, or return values. The description does not explain what each action does beyond its name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with a bullet list, but it is dense and not well-structured for quick agent parsing. It could be more efficient by grouping related information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (17 parameters, multiple actions, no output schema), the description is incomplete. It does not explain which parameters are required for each action or provide usage examples, leaving the agent with insufficient context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the base rating is 3. The description adds the list of actions but does not map parameters to specific actions or provide additional meaning beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it controls Unity Animation and Timeline systems and lists the actions, which differentiates it from sibling tools focused on other domains like lighting or physics. However, it could be more specific about the scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for animation/timeline tasks but lacks explicit guidance on when to use this tool versus alternatives or when not to use it. There are no exclusion criteria or context for action selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

asset_importA

Manages Unity asset import settings and reimport operations. Actions:

  • get_settings: Get import settings for an asset

  • set_settings: Modify import settings

  • reimport: Force reimport an asset

  • reimport_all: Reimport all assets (use with caution)

  • get_importer_type: Get the importer type for an asset

  • apply_preset: Apply an import preset to an asset Types: texture, model, audio, video, font, shader, plugin

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAsset import action to perform
platformNoPlatform-specific settings to get/set
assetPathNoPath to the asset (e.g., "Assets/Textures/myTexture.png")
assetTypeNoType of asset for settings schema (auto-detected if not specified)
presetPathNoPath to import preset to apply
audioSettingsNoAudio clip import settings
modelSettingsNoModel (FBX/OBJ) import settings
textureSettingsNoTexture import settings

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, implying modification. The description adds a caution for 'reimport_all' but does not disclose other behavioral traits like side effects, authorization needs, or error handling. It provides minimal additional value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the main purpose. It uses bullet points effectively to enumerate actions and types, with no redundant or verbose content. Every sentence serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 parameters, nested objects, no output schema), the description covers the scope well but lacks return value descriptions and error conditions. The detailed parameter schemas compensate partially, but completeness is average.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema documents all parameters. The description adds value by grouping actions and asset types, providing context for the 'action' enum and 'assetType' parameter. This aids understanding beyond raw parameter definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it manages Unity asset import settings and reimport operations, listing specific actions and asset types. It distinguishes itself from sibling tools by focusing solely on import-related tasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists actions but does not provide explicit guidance on when to use this tool versus alternatives or how to choose among actions. Usage is implied from the action names, but no exclusion criteria or context is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

asset_storeA

Manages Unity Asset Store assets and Package Manager integration.

Actions:

  • list_my_assets: List all purchased/acquired assets from your Asset Store account

  • search_my_assets: Search your purchased assets by name

  • get_asset_details: Get details about a specific asset

  • download_asset: Download an asset to the local cache

  • import_asset: Import a downloaded asset into the project

  • download_and_import: Download and import in one step

  • get_download_progress: Check download progress

  • cancel_download: Cancel an ongoing download

  • list_cached_assets: List assets already downloaded to local cache

  • clear_cache: Clear the asset cache

  • refresh_my_assets: Refresh the list of purchased assets from server

  • search_store: Search the public Unity Asset Store catalog (no auth required)

Note: Most actions require Unity 2020.1+ and being logged into Unity Hub/Editor. search_store and list_cached_assets work without authentication. Assets must be purchased through the Asset Store website before downloading.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination
actionYesAsset Store action to perform
sortByNoSort order for search_store results (default: relevance)
assetIdNoAsset Store asset ID or package ID
categoryNoFilter by category
pageSizeNoResults per page (default: 50)
assetNameNoAsset name for searching
free_onlyNoOnly return free assets in search_store results
searchQueryNoSearch query for filtering assets
importOptionsNoOptions for importing assets

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that most actions are mutating (readOnlyHint=false) and mentions requirements and constraints. It aligns with annotations (readOnlyHint=false, openWorldHint=true) and adds context about caching and server interactions, though specific side effects per action are not detailed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with a clear summary, but the full list of all 12 actions repeats information from the schema enum. This makes it longer than necessary while still being organized. A more concise listing or referencing the schema would improve structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (10 parameters, multiple sub-actions, no output schema), the description covers overall purpose, prerequisite conditions, and which actions work without authentication. It lacks details on return values per action but provides sufficient context for an AI agent to understand the tool's capabilities.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds minimal insight beyond parameter names; the note about Unity version and authentication is valuable but not linked directly to parameters. The nested importOptions object is only briefly described.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool manages Unity Asset Store assets and Package Manager integration, with a specific verb and resource. It distinguishes from siblings like 'manage_asset' by focusing on the Asset Store, and the listed actions reinforce the scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit prerequisites (Unity 2020.1+, logged into Hub/Editor) and notes which actions need authentication and that assets must be purchased before downloading. It doesn't explicitly mention when not to use or alternatives, but the guidance is clear and helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

audio_mixerB

Manage Unity AudioMixers and AudioSources. Actions:

  • list: List all AudioMixer assets in the project

  • get_groups: Get mixer groups (channels)

  • get_snapshots: Get mixer snapshots

  • set_float: Set an exposed parameter value

  • get_float: Get an exposed parameter value

  • transition_snapshot: Transition to a named snapshot over duration

  • get_exposed_parameters: List all exposed parameters with current values

  • get_audio_sources: List all AudioSource components in the scene

ParametersJSON Schema
NameRequiredDescriptionDefault
valueNoFloat value to set
actionYesAudioMixer action to perform
durationNoTransition duration in seconds (default: 1)
mixerNameNoName of the AudioMixer to find
mixerPathNoAsset path to the AudioMixer
snapshotNameNoName of the snapshot to transition to
parameterNameNoName of the exposed parameter

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only show readOnlyHint=false, so description must disclose behavior. It lists actions but does not explain side effects, persistence, or error handling. Minimal behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very concise: one-line purpose followed by bullet list of actions. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite actions listing, the description lacks context on prerequisites, output expectations, or how actions chain. Complexity is moderate (7 params, 8 actions) and description is too sparse.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with parameter descriptions. The description adds a list of actions but doesn't clarify which parameters correspond to each action. Baseline 3, no extra value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it manages AudioMixers and AudioSources and lists 8 specific actions. It distinguishes from sibling tools which are unrelated to audio.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use vs alternatives. The action list implies use for audio mixer operations, but no exclusions or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_pipelineC

Comprehensive Unity build pipeline control. Actions:

  • build: Execute a build with specified settings

  • get_settings: Get current build settings

  • set_settings: Modify build settings

  • get_scenes: Get scenes in build settings

  • set_scenes: Set scenes in build settings

  • get_report: Get last build report (sizes, errors, warnings)

  • get_player_settings: Get platform-specific player settings

  • set_player_settings: Modify player settings

  • switch_platform: Switch active build target

  • get_platforms: List available build platforms

  • validate: Validate build configuration without building

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesBuild pipeline action to perform
scenesNoScenes for build settings
platformNoTarget build platform
buildPathNoOutput path for the build
buildOptionsNoBuild options
reportFilterNoFilter for build report
playerSettingsNoPlayer settings to modify

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false and openWorldHint=true, but the description does not disclose potential long-running operations, file size implications, or permissions needed. It merely lists actions without behavioral warnings.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with a front-loaded purpose and a bulleted list of actions. It could be more structured (e.g., grouping actions), but it is efficient and easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (many actions, nested objects, no output schema), the description is incomplete. It does not explain return values or side effects for actions like 'build', 'get_report', or 'validate', leaving the agent with gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all parameters with descriptions (100% coverage). The description does not add value beyond the schema, lacking context on defaults or inter-parameter relationships, but the schema is sufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Comprehensive Unity build pipeline control' and lists multiple actions, making the tool's purpose clear. However, the tool name is a noun rather than a verb, and it doesn't differentiate from sibling build tools like build_xreal_apk.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor when to use specific actions. For a multi-action tool, such guidance is critical but absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_xreal_apkA

Queues an asynchronous Android APK build for XREAL One Pro and returns immediately with a jobId. Unity's BuildPipeline.BuildPlayer blocks the editor for minutes; this tool dispatches the build via EditorApplication.delayCall so the MCP request doesn't time out. Poll get_build_status with the returned jobId to follow progress and pick up the final BuildReport summary (output path, size, build time, errors, warnings).

ParametersJSON Schema
NameRequiredDescriptionDefault
scenesNoScene paths to include (defaults to scenes in build settings)
buildTypeNoBuild configuration typeDevelopment
outputPathNoOutput path for the APK. Defaults to Builds/AppName.apk
strictModeNoEnable strict mode for debugging
runAfterBuildNoAutomatically deploy and run after successful build
buildAppBundleNoBuild Android App Bundle (AAB) instead of APK
scriptDebuggingNoEnable script debugging
developmentBuildNoInclude development features (profiler, debug logs)
compressionMethodNoAPK compression methodLZ4
autoconnectProfilerNoAuto-connect Unity profiler on start
deepProfilingSupportNoEnable deep profiling (slower builds)
splitApplicationBinaryNoSplit into base APK and expansion files

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes async dispatch via EditorApplication.delayCall to avoid timeout. Annotations indicate non-readOnly and open world (side effects), which align with starting a build. No contradictions, and description adds useful context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences efficiently convey purpose, rationale for async, and next steps. No redundant information. Excellent structure for agent consumption.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers main workflow: request returns jobId, then poll. With 12 parameters and no output schema, additional details like error handling or prerequisites would improve completeness, but core behavior is well explained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with descriptions, so baseline is 3. Description does not add parameter-specific meaning beyond what schema provides, but that is acceptable given high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool queues an asynchronous Android APK build for XREAL One Pro and returns a jobId immediately. Distinguishes from sibling 'get_build_status' by mentioning polling. The verb 'build' and resource 'APK for XREAL One Pro' are specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains why async is needed (Unity blocks) and instructs to poll 'get_build_status' with jobId. Does not explicitly mention when not to use or alternatives like 'build_pipeline', but the guidance is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calibrate_glassesB

Triggers calibration procedures for XREAL glasses including IPD (interpupillary distance) adjustment, display brightness, and tracking recalibration.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipdValueNoManual IPD value in millimeters (typical range 50-80mm). If not provided, uses automatic calibration.
recenterPoseNoReset the current pose as the new origin
brightnessLevelNoDisplay brightness percentage (0-100)
calibrationTypeYesType of calibration to perform

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate mutation (readOnlyHint=false) and open-world effects (openWorldHint=true). The description adds no additional behavioral context, such as side effects, required device state, or result feedback.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, concise sentence that efficiently communicates the tool's function. No superfluous content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite rich schema and annotations, the description lacks completeness. It does not explain return behavior (no output schema), failure modes, or expected outcomes, which is important for a mutation tool affecting device settings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents parameters. The description lists three calibration types but does not add new insights beyond what the schema provides (e.g., parameter interactions or default behaviors). Baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool triggers calibration procedures for XREAL glasses, specifying three types (IPD, brightness, tracking). It uses a specific verb-resource combination and is distinct from sibling tools like 'set_tracking_mode' which are not calibration-focused.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs. alternatives. It does not mention prerequisites, when not to use, or differentiate from related tools like 'set_tracking_mode' or 'configure_hand_gestures'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

capture_xr_screenshotA
Read-only

Captures a screenshot from the XR camera perspective. Can capture mono, stereo (side-by-side), or individual eye views. Useful for documentation and debugging.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoImage formatPNG
fileNameNoCustom file name. Defaults to timestamp-based name
includeUINoInclude UI elements in screenshot
jpgQualityNoJPEG quality (if format is JPG)
outputPathNoPath to save the screenshot. Defaults to Assets/Screenshots/
resolutionNoScreenshot resolutionNative
captureModeNoEye view(s) to captureMono
customWidthNoCustom width in pixels (if resolution is Custom)
customHeightNoCustom height in pixels (if resolution is Custom)
superSamplingNoSuper sampling multiplier for higher quality
transparentBackgroundNoUse transparent background (PNG only)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, and the description aligns by describing a capture operation without implying state modification. The description adds context about the type of captures (mono, stereo, etc.) beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with key information front-loaded. No unnecessary words or redundancies.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 11 parameters and no output schema, the description covers the core purpose and modes. It could briefly mention file saving behavior (outputPath), but schema descriptions handle details sufficiently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description mentions capture modes (mono, stereo, etc.) which are already enumerated in the schema's captureMode parameter, adding no new meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool captures a screenshot from XR camera perspective, specifying mono, stereo, or individual eye views. This distinguishes it from sibling tools like get_camera_frame, which likely returns raw frame data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description mentions usefulness for documentation and debugging, implying appropriate use cases. However, it does not explicitly state when to use this tool versus alternatives or provide exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

configure_android_buildA

Configures Android build settings optimized for XREAL One Pro on Samsung S24. Sets up ARM64 architecture, IL2CPP scripting backend, minimum API level, and other required settings for mobile XR.

ParametersJSON Schema
NameRequiredDescriptionDefault
gpuSkinningNoEnable GPU skinning
graphicsApisNoGraphics APIs to use (OpenGLES3 recommended for XREAL)
architecturesNoTarget CPU architectures
minSdkVersionNoMinimum Android SDK version (default 29 for XREAL compatibility)
internetAccessNoInternet access requirementAuto
staticBatchingNoEnable static batching
dynamicBatchingNoEnable dynamic batching
installLocationNoAPK install location preferenceAuto
writePermissionNoWrite access permission for storageExternal
optimizeMeshDataNoStrip unused mesh data
scriptingBackendNoScripting backend (IL2CPP recommended for release)IL2CPP
targetSdkVersionNoTarget Android SDK version
multithreadedRenderingNoEnable multithreaded rendering

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, and the description clearly states it configures settings, implying mutation. The description adds context about optimization for specific hardware but doesn't detail side effects or permissions. Still, it is fairly transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff. First sentence states purpose and target device, second lists key settings. Front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 13 parameters with full schema coverage and no output schema, the description adequately covers the tool's purpose and key behaviors. It could mention that the tool sets recommended defaults customizable by parameters, but it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3. The description highlights key parameters (ARM64 architecture, IL2CPP, minimum API level) but does not add significant meaning beyond what the schema already provides for all 13 parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool configures Android build settings optimized for a specific device (XREAL One Pro on Samsung S24) and lists key settings (ARM64, IL2CPP, minimum API), clearly distinguishing it from sibling tools like 'build_pipeline' or 'build_xreal_apk'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for XREAL One Pro on Samsung S24 but does not explicitly state when not to use this tool or provide alternatives among siblings like 'setup_xreal_project' or 'build_pipeline'. Guidance is only implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

configure_hand_gesturesA

Configures which hand gestures are recognized and their sensitivity. Gestures include pinch, grab, point, open palm, thumbs up, and more.

ParametersJSON Schema
NameRequiredDescriptionDefault
grabThresholdNoGrab detection threshold (0-1)
continuousModeNoFire gesture events continuously while gesture is held
pinchThresholdNoPinch detection threshold (0-1)
enabledGesturesNoList of gestures to recognize
gestureHoldTimeNoTime in seconds a gesture must be held before triggering
smoothingFactorNoGesture detection smoothing (0=none, 1=max)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate a write operation (readOnlyHint=false), consistent with 'configures'. The description adds no further behavioral traits beyond what annotations provide, such as side effects or persistence.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, but could be slightly more structured to include key capabilities. It is front-loaded and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, so the description should hint at return behavior or side effects. It lacks mention of prerequisites like hand tracking being enabled. Incomplete for a configuration tool with 6 parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are well-documented in the schema. The description provides a high-level summary but adds minimal meaning beyond the existing parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool configures recognized hand gestures and sensitivity, listing examples like pinch, grab, point. It distinguishes from sibling tools like enable_hand_tracking and get_hand_state.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives or prerequisites (e.g., hand tracking must be enabled). The description implies configuration use but lacks context for proper selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

configure_image_trackingC

Configures image tracking settings including how many images can be tracked simultaneously, tracking quality, and update frequency.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYesEnable or disable image tracking
autoFocusNoEnable camera auto-focus for better detection
trackingModeNoStatic: images don't move. Dynamic: continuous tracking of moving imagesDynamic
lightEstimationNoEnable light estimation from tracked images
maxSimultaneousImagesNoMaximum images to track at once
requestedTrackingModeNoPerformance vs accuracy trade-offDefault

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The tool has readOnlyHint=false (mutation) and the description says 'configures', which implies changes. However, it does not disclose side effects like whether changes reset existing tracking, require the system to be running, or are persistent. The description adds minimal behavioral context beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the verb. It avoids unnecessary details and is easy to parse, though it could be slightly more specific about the tool's domain.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter configuration tool with no output schema, the description is sparse. It does not explain return behavior, error states, or whether settings are applied immediately. More context about the AR image tracking domain and configuration lifecycle would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains each parameter. The description only provides a high-level summary without adding new meaning, thus baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool configures image tracking settings and lists example parameters (how many images, quality, update frequency). This distinguishes it from sibling tools like 'add_tracking_image' or 'get_tracked_images', but does not explicitly contrast with other 'configure_*' tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, such as when to adjust tracking parameters instead of adding images. The description lacks context about prerequisites or typical use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

configure_occlusionC

Configures depth-based occlusion settings. Occlusion allows real-world objects to properly hide virtual objects that are behind them, creating realistic mixed reality.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYesEnable or disable depth occlusion
depthModeNoDepth estimation quality vs performanceMedium
smoothEdgesNoApply edge smoothing to occlusion boundaries
handOcclusionNoEnable occlusion by tracked hands
occlusionTypeNoType of occlusion to useEnvironmentDepth
occlusionLayersNoSpecific layers that participate in occlusion
temporalFilteringNoApply temporal filtering to reduce flickering
humanBodyOcclusionNoEnable human body segmentation for person occlusion

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, and the description confirms it configures settings, but it does not disclose behavioral details such as whether changes take effect immediately, require a scene reload, or permissions needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loaded with the core action, and no unnecessary words. Slightly more detail could be included without breaking conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 8 parameters, no output schema, and minimal annotations, the description is too brief. It does not explain how settings interact, return values, or side effects, leaving the agent underinformed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% parameter description coverage, so the tool description does not add further meaning. Baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it configures depth-based occlusion settings and explains the purpose of occlusion in mixed reality. However, it does not differentiate from sibling tools like configure_passthrough, which might have overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, or any prerequisites. It simply states what it does without context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

configure_passthroughA

Configures the camera passthrough for mixed reality mode. Passthrough shows the real world through the glasses with virtual content overlaid.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYesEnable or disable passthrough
contrastNoPassthrough contrast adjustment
blendModeNoHow virtual content blends with passthroughAlphaBlend
brightnessNoPassthrough brightness multiplier
saturationNoPassthrough color saturation
edgeRenderingNoEnable edge detection rendering for stylized look
colorCorrectionNoEnable automatic color correction
environmentDepthNoUse environment depth for proper occlusion

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate write operation (readOnlyHint=false). Description adds context about passthrough concept but doesn't disclose behavioral details like immediate effect, side effects, or limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with core purpose, no wasted words. Efficiently communicates the tool's function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters, schema covers them all, and annotations provide readOnlyHint. Description explains the concept sufficiently. No output schema but not critical. Slightly lacking in operational context (e.g., persistence of settings).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema provides 100% coverage with descriptions for all 8 parameters. Description adds no parameter-specific meaning, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool configures camera passthrough for mixed reality, and explains what passthrough does (shows real world with virtual overlays). This distinguishes it from siblings like 'configure_occlusion' which handles a different aspect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives like 'configure_occlusion' or other configuration tools. Doesn't mention prerequisites or scenarios where passthrough should not be altered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_hand_interactableA

Adds hand interaction components to a GameObject, making it respond to hand gestures like pinch-to-grab, poke, or hover. Sets up the necessary colliders and interaction scripts.

ParametersJSON Schema
NameRequiredDescriptionDefault
grabTypeNoHow the object moves when grabbedKinematic
pokeDepthNoDepth required for poke interaction (meters)
hoverDistanceNoDistance at which hover detection activates (meters)
twoHandedGrabNoAllow grabbing with both hands simultaneously
hapticFeedbackNoEnable haptic feedback on interaction (if supported)
highlightColorNoHighlight color in hex format#FFD700
throwOnReleaseNoApply velocity when releasing grabbed object
interactionTypeYesType of hand interaction to enable
throwMultiplierNoVelocity multiplier for thrown objects
highlightOnHoverNoVisually highlight object when hand hovers over it
targetGameObjectYesInstance ID, name, or path of the GameObject to make interactable

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, so the tool is a mutation. The description adds context by stating it 'adds components' and 'sets up colliders and scripts', which reveals non-obvious side effects. However, it does not mention potential irreversible changes, performance impact, or required permissions. Given annotations already signal mutation, this is adequate but not exceptional.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, each adding value: first states the primary action, second clarifies what it sets up. No redundant words. Optimal length for conveying the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 11 parameters and no output schema, the description provides adequate context for the overall behavior. The schema handles parameter details. It could mention interaction types briefly, but the description remains sufficient for basic understanding. Missing usage guidelines are the main gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers 100% of parameters with descriptions and defaults. The tool description does not add further detail about parameters beyond the schema. This meets the baseline expectation but does not enhance understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it adds hand interaction components to a GameObject, enabling hand gesture responses like pinch-to-grab, poke, or hover. It specifies it sets up colliders and interaction scripts, making the tool's purpose unmistakable. Among sibling tools, none directly duplicate this functionality, so it distinguishes well.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives (e.g., add_xr_interactor) or any prerequisites (e.g., GameObject must exist). It does not mention when not to use it or what happens if parameters are omitted. The agent lacks context for appropriate invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_prefabB

Creates a prefab with optional MonoBehaviour script and serialized field values

ParametersJSON Schema
NameRequiredDescriptionDefault
prefabNameYesThe name of the prefab to create
fieldValuesNoOptional JSON object of serialized field values to apply to the prefab
componentNameNoThe name of the MonoBehaviour Component to add to the prefab (optional)

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate mutability (readOnlyHint=false), so the description adds value by mentioning optional components and fields. However, it does not disclose side effects, permissions, or return behavior, leaving gaps for a creation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, 12 words, front-loaded with the action and resource. No superfluous content. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and 3 parameters (one required with nested objects), the description is too brief. It lacks context on what a prefab is, how field values are applied, or what happens after creation. Incomplete for an agent to use without additional knowledge.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all parameters. The description aligns with the parameters but does not add extra meaning or clarify the format for 'fieldValues' or how 'componentName' is used beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (creates), the resource (prefab), and the optional features (MonoBehaviour script and serialized field values). It is specific and distinguishes from sibling tools like 'prefab' or 'create_scene'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'create_scene', 'scriptable_object', or other asset creation tools. The description does not provide context for selection or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_sceneB

Creates a new scene and saves it to the specified path

ParametersJSON Schema
NameRequiredDescriptionDefault
sceneNameYesThe name of the scene to create (without extension)
folderPathNoThe folder path under 'Assets' to save into (default: Assets)
makeActiveNoWhether to open/make the new scene active after creating it
addToBuildSettingsNoWhether to add the scene to Build Settings

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate a mutation (readOnlyHint=false, idempotentHint=false). The description adds that it saves to a path, but omits error conditions (e.g., if scene already exists), side effects, or permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence with no wasted words, but slightly too terse for a mutation tool. Could include more context without harming conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lacks information about output (return values), error handling, and behaviors around parameter interactions. With no output schema and minimal annotations, the description should cover more for completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear parameter descriptions. The description adds no extra meaning beyond what the schema already provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('creates') and resource ('new scene'), and adds the detail 'saves it to the specified path', clearly distinguishing from sibling tools like 'load_scene' or 'delete_scene'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., 'duplicate_gameobject' or 'load_scene'), nor prerequisites or consequences like overwriting existing scenes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_spatial_anchorA

Creates a spatial anchor at a specified position or on a detected plane. Spatial anchors persist across sessions and maintain their position in the real world.

ParametersJSON Schema
NameRequiredDescriptionDefault
metadataNoCustom key-value metadata to store with the anchor
positionNoWorld position for the anchor
rotationNoRotation quaternion for the anchor
anchorNameYesUnique name for this spatial anchor
persistentNoSave anchor for persistence across sessions
planeOffsetNoOffset from the plane center when attaching to a plane
cloudEnabledNoEnable cloud sharing of this anchor
attachToPlaneNoID of a detected plane to attach the anchor to

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds persistence and real-world positioning beyond the readOnlyHint annotation. However, it does not disclose error behavior on duplicate names, side effects, or required settings.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two succinct sentences with no wasted words. Could be more structured but is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, no mention of return value. Lacks behavioral context for 8 parameters, such as what happens if anchorName already exists or if attachToPlane fails.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are documented. Description provides a high-level summary but adds minimal detail beyond what's in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (creates), resource (spatial anchor), and options (specified position or detected plane). It distinguishes from sibling tools like 'manage_spatial_anchors' which handle existing anchors.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage for creation, but no explicit guidance on when to use this vs alternatives (e.g., manage_spatial_anchors). Missing prerequisites like plane detection being enabled for attachToPlane.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_xr_rigA

Creates an XR Origin (camera rig) configured for XREAL One Pro. Sets up the head-mounted display camera, hand tracking origins, and interaction components.

ParametersJSON Schema
NameRequiredDescriptionDefault
rigNameNoName for the XR Origin GameObjectXR Origin (XREAL)
positionNoInitial position for the XR Origin
prefabPathNoPath to save prefab (if createAsPrefab is true)
cameraYOffsetNoCamera Y offset for floor-level tracking (typically 1.36m for standing)
createAsPrefabNoSave the rig as a prefab after creation
addUIInteractionNoAdd UI interaction components
addRayInteractorsNoAdd ray interactors for distant selection
addHandControllersNoAdd hand tracking controller objects
trackingOriginModeNoTracking origin referenceDevice
addLocomotionSystemNoAdd locomotion system components
addDirectInteractorsNoAdd direct interactors for touch/grab

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description accurately indicates the tool creates a new GameObject (write operation) without contradicting the readOnlyHint=false annotation. It specifies the components set up, but could add more detail about scene impact (e.g., 'adds to current scene'). No contradiction found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences covering the core action and key setup details. It front-loads the purpose but could improve by listing configurable aspects more explicitly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (11 parameters, nested objects) and absence of an output schema, the description adequately summarizes the creation scope. However, it omits what the tool returns (e.g., the GameObject) and scene-level implications.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add extra semantic meaning beyond the schema; it only provides a high-level overview without parameter-specific detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool creates an XR Origin configured for XREAL One Pro, naming specific components (HMD camera, hand tracking origins, interaction components). This clearly distinguishes it from sibling tools like create_scene or create_prefab.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lacks explicit guidance on when to use this tool versus alternatives like setup_xreal_project or create_xr_ui. While the purpose is clear, no usage context or exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_xr_uiA

Creates a world-space UI canvas configured for XR interaction. Sets up proper scaling, interaction raycasting, and visual settings for comfortable viewing in mixed reality.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNoCanvas width in meters
heightNoCanvas height in meters
positionNoWorld position for the canvas
rotationNoEuler rotation for the canvas
canvasNameNoName for the UI Canvas GameObjectXR Canvas
followHeadNoUI follows head movement (tag-along behavior)
curveRadiusNoCurve radius in meters (if curved)
curvedCanvasNoUse curved canvas for better peripheral visibility
lookAtCameraNoUI always faces the camera
followDistanceNoDistance to maintain when following head
pixelsPerMeterNoUI resolution (pixels per meter)
interactionTypeNoHow users interact with this UIBoth
addSampleContentNoAdd sample UI elements (button, slider, text)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only provide readOnlyHint=false, indicating a write operation. The description adds behavioral context (sets up scaling, raycasting, visual settings) but does not disclose side effects, permissions, or error conditions. Sufficient but not thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no redundancy. The first sentence states the primary action, the second adds key behavioral details. Efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 13 parameters and no output schema, the description provides a reasonable overview but omits details about return values, failure modes, or confirmation of creation. Adequate but not exhaustive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each parameter has its own description. The tool description adds high-level context but no additional parameter-level details beyond the schema. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it creates a world-space UI canvas for XR interaction, with specific details about scaling and raycasting. This differentiates it from sibling tools like create_hand_interactable or create_xr_rig.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for creating XR UI canvases but offers no explicit guidance on when to use this tool versus alternatives, nor does it state prerequisites or conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

debuggerB

Unity debugging utilities for inspection and troubleshooting. Actions:

  • evaluate_expression: Evaluate a C# expression in the current context

  • get_stack_trace: Get current stack trace (when paused or from last exception)

  • list_breakpoints: List all breakpoints (requires external debugger)

  • dump_object: Get detailed dump of an object's fields and properties

  • invoke_method: Invoke a method on a GameObject or component

  • get_static_field: Get value of a static field from a type

  • set_static_field: Set value of a static field

  • call_static_method: Call a static method on a type

  • debug_log: Log structured debug information

  • get_component_values: Get all serialized values from a component

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesDebugger action to perform
maxDepthNoMaximum depth for object dump (default: 3)
objectIdNoInstance ID of the object
typeNameNoFull type name including namespace (e.g., "UnityEngine.Application")
debugDataNoStructured data for debug_log
fieldNameNoStatic field name
expressionNoC# expression to evaluate
fieldValueNoValue to set for static field
methodArgsNoArguments for method invocation
methodNameNoMethod name to invoke
objectPathNoHierarchy path of the object
componentTypeNoComponent type name (e.g., "Transform", "MyScript")
includePrivateNoInclude private fields in dump

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (readOnlyHint=false) indicate possible mutations. The description includes notes like 'when paused or from last exception' for get_stack_trace and 'requires external debugger' for list_breakpoints, adding some context beyond annotations. However, it doesn't detail side effects or auth requirements for other actions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the purpose. It uses a list format which is efficient for a composite tool. However, the list is somewhat lengthy but structured well.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (13 parameters, 10 sub-actions, no output schema), the description is incomplete. It lacks details on output formats, how parameters combine with actions, and typical usage patterns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no additional parameter-specific meaning beyond listing actions. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Unity debugging utilities for inspection and troubleshooting' and lists specific actions, clearly indicating the tool's purpose as a composite debugging meta-tool. However, it doesn't differentiate from sibling tools like get_console_logs or watch_console.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool vs. alternatives. It lists actions but does not explain context or exclusions. For example, it doesn't advise when to use debugger over get_console_logs for logging.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_gameobjectA
Destructive

Deletes a GameObject from the scene by path, name, or instance ID

ParametersJSON Schema
NameRequiredDescriptionDefault
instanceIdNoThe instance ID of the GameObject to delete
objectNameNoThe name of the GameObject to delete
objectPathNoThe path of the GameObject to delete (e.g. "Canvas/Panel/Button")

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, and the description adds value by specifying identification methods (path, name, instance ID). It does not contradict annotations and provides behavioral context beyond the annotation flags.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It conveys the core purpose and identification methods efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description adequately covers the tool's purpose and input methods. For a simple destructive tool with no output schema, it is reasonably complete, though it could mention implications like irreversibility or prerequisites.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear descriptions for all three parameters. The tool description summarizes the methods but adds no new semantic details beyond the schema, meeting the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (delete), resource (GameObject from the scene), and identification methods (path, name, or instance ID), distinguishing it from siblings like duplicate_gameobject or select_gameobject.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (to delete a GameObject) but provides no explicit guidance on when not to use or alternatives. It lacks prerequisites or context for choosing this over other deletion tools like delete_scene.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_sceneA
Destructive

Deletes a scene by path or name and removes it from Build Settings

ParametersJSON Schema
NameRequiredDescriptionDefault
sceneNameNoScene name without extension (used if scenePath not provided)
scenePathNoFull asset path to the scene (e.g., 'Assets/Scenes/MyScene.unity')
folderPathNoOptional folder scope to resolve sceneName under 'Assets'

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, so the description's mention of deletion aligns. It adds the context of removing the scene from Build Settings. However, it does not clarify whether deletion is permanent or if the scene file is removed from the project entirely, leaving some ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence of 12 words, front-loading the action and object. Every word is necessary and there is no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple deletion tool with annotations indicating destructiveness, the description covers the primary action and a secondary effect (Build Settings removal). It could be enhanced by explicitly stating irreversibility, but overall it is sufficient for understanding the tool's purpose and effect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with clear parameter descriptions. The description reiterates that deletion can be 'by path or name' but does not add new semantic meaning beyond what the schema already provides, so it meets the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Deletes a scene' and the specific method 'by path or name', differentiating it from sibling tools like `load_scene` or `create_scene` which have different purposes. It also notes the additional effect of removing from Build Settings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives or provide context for exclusion. It is implicit that you use it to delete scenes, but no guidance is given on prerequisites or scenarios where other tools might be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

duplicate_gameobjectB

Duplicates a GameObject in the scene, optionally with a new name

ParametersJSON Schema
NameRequiredDescriptionDefault
newNameNoOptional new name for the duplicated GameObject
instanceIdNoThe instance ID of the GameObject to duplicate
objectNameNoThe name of the GameObject to duplicate
objectPathNoThe path of the GameObject to duplicate (e.g. "Canvas/Panel/Button")

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, so mutation is expected. The description adds 'Duplicates' and 'optionally with a new name', but does not disclose side effects like position, hierarchy, or component copying. Behavior is minimally transparent beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, 11-word sentence that is front-loaded and concise. Every word adds value, with no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite simple duplication, the description omits details on parameter interaction (e.g., instanceId vs objectName conflict), hierarchy behavior, return values, and selection outcome. Given 4 parameters and no output schema, the description is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 4 parameters. The description only adds 'optionally with a new name', which aligns with the newName parameter but does not add significant meaning beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Duplicates' and the resource 'GameObject', and distinguishes from siblings by mentioning 'optionally with a new name', which sets it apart from tools like delete_gameobject or update_gameobject.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for duplicating a GameObject, but does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives or restrictions. The context is clear but lacks exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

editor_controlB

Controls Unity Editor windows and UI elements. Actions:

  • focus_window: Focus a specific editor window (Inspector, Hierarchy, Project, Scene, Game, Console, Profiler)

  • get_windows: List all open editor windows

  • open_window: Open an editor window

  • close_window: Close an editor window

  • inspector_lock: Lock/unlock the Inspector

  • inspector_mode: Set Inspector to Normal or Debug mode

  • ping_asset: Ping/highlight an asset in the Project window

  • frame_selected: Frame selected object in Scene view

  • set_scene_view: Configure Scene view settings (2D, orthographic, etc.)

  • get_editor_state: Get current editor state (play mode, paused, compiling, etc.)

  • refresh: Force refresh of Project window and AssetDatabase

  • clear_console: Clear the Console window

  • take_screenshot: Capture editor window screenshot

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesEditor control action
lockedNoLock state for Inspector
assetPathNoAsset path for ping_asset
debugModeNoDebug mode for Inspector
windowTypeNoType of editor window
windowIndexNoWindow index when multiple of same type exist
screenshotPathNoPath to save screenshot
sceneViewSettingsNoScene view configuration

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only indicate readOnlyHint: false (mutation allowed). The description lists actions like open/close and lock, implying mutations, but lacks details on side effects, permissions, error handling, or return values. For a tool with many actions, more transparency is needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is fairly long with a bullet list of 13 actions, which is necessary but could be more concise. The structure is clear but not front-loaded; the key purpose is stated first, but the list could be trimmed by removing redundant phrasing like 'List all open editor windows' for get_windows.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters, nested objects, and no output schema, the description should explain what each action returns and how to use parameters. It only gives one-line descriptions of actions, omitting return values and parameter details. This is insufficient for an agent to use the tool correctly without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 100%, with descriptions for all parameters. The tool description adds little beyond listing action names; it does not elaborate on parameter usage or the complex sceneViewSettings object. Baseline score of 3 is appropriate given high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it controls Unity Editor windows and UI elements, and enumerates 13 specific actions. This distinguishes it from sibling tools like editor_selection or play_mode, which have different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool vs alternatives. It lists actions but does not explain when to choose this over other editor control tools or provide context for selecting specific actions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

editor_selectionB
Idempotent

Gets or sets the current Unity Editor selection (GameObjects, assets, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoSingle path to add to selection (for add action)
pathsNoArray of GameObject paths or asset paths to select (for set action)
actionNoAction to perform (default: get)
instanceIdNoSingle instance ID to add to selection (for add action)
instanceIdsNoArray of instance IDs to select (for set action)

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate idempotentHint=true and readOnlyHint=false; the description adds that it gets or sets the selection but does not disclose the clear/add capabilities or any side effects beyond what is inferred.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, but it is concise; however, it could be more precise by listing all supported actions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (5 parameters, multiple actions, no output schema), the description is too brief, lacking details on return values, usage examples, or action-specific guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description adds no extra meaning to parameters beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool operates on the Unity Editor selection with verbs 'gets or sets', but it does not mention the 'clear' and 'add' actions from the schema, and it fails to differentiate from the sibling 'select_gameobject' tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'select_gameobject', nor does it specify prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enable_hand_trackingA

Enables or disables hand tracking on XREAL glasses. When enabled, the system tracks hand poses, joint positions, and recognizes gestures. Required for hand-based interactions.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYesEnable or disable hand tracking
trackedHandsNoWhich hands to trackBoth
trackingModeNoBasic: faster, less accurate. Advanced: full joint tracking with higher accuracyAdvanced
gestureRecognitionNoEnable gesture recognition (pinch, grab, point, etc.)
jointVisualizationNoEnable debug visualization of hand joints
handMeshVisualizationNoEnable visual mesh rendering of tracked hands

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond the readOnlyHint annotation (false): it explains what happens when enabled (tracks hand poses, joint positions, recognizes gestures). It does not mention destructive actions, authorization needs, or rate limits, but the mutation nature is clear. The description adds moderate value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the primary purpose and quickly adding context. Every word is informative, and no extraneous details are present. Excellent conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 6 parameters, all well-documented in the schema, and no output schema. The description provides a general overview but does not explain key parameters like 'trackedHands', 'trackingMode', or visualization options. For a complex tool, additional context about parameter defaults or use cases would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 6 parameters. The tool description does not add new meaning to parameters; it only summarizes the overall behavior. Since the schema is thorough, the description adds minimal additional semantic value, matching the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: enabling or disabling hand tracking on XREAL glasses. It specifies the resource ('hand tracking') and the action ('enables or disables'), and distinguishes from sibling tools like 'configure_hand_gestures' and 'get_hand_state' by focusing on the master toggle.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions it is 'Required for hand-based interactions,' implying when to use it. However, it does not explicitly state when not to use it or provide alternatives among siblings (e.g., 'configure_hand_gestures' for gesture-specific settings). Usage guidance is implied but not comprehensive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enable_meshingA

Enables or disables spatial meshing to generate 3D mesh geometry of the real environment. Used for occlusion, physics collisions, and spatial understanding.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYesEnable or disable spatial meshing
updateRateNoMesh update rate in seconds
volumeSizeNoMeshing volume size in meters (centered on camera)
meshDensityNoMesh triangle densityMedium
classifyMeshNoClassify mesh regions (floor, wall, ceiling, furniture)
meshMaterialNoMaterial type for mesh visualizationOcclusion
visualizeMeshNoRender the spatial mesh visibly
enableOcclusionNoUse mesh for real-world occlusion of virtual objects
generateCollidersNoGenerate mesh colliders for physics

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the toggle behavior (enable/disable) and use cases, which aligns with the readOnlyHint=false annotation. However, it lacks deeper behavioral context such as whether disabling removes existing meshes, performance impact, or permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first states the action and resource, the second lists use cases. It is concise, front-loaded, and contains no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 9 parameters including a nested object, the description is succinct but covers the core functionality. The full schema documentation compensates for lack of detail about optional parameters. Slightly more context about when to adjust parameters would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the schema already fully documents all parameters. The description adds no additional insight beyond the schema, so a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (Enables or disables) and resource (spatial meshing), and explicitly lists use cases (occlusion, physics collisions, spatial understanding). It distinguishes from sibling tools like 'enable_hand_tracking' or 'configure_occlusion' by focusing on mesh generation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. It simply states the function, leaving the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enable_plane_detectionA

Enables or disables plane detection for spatial mapping. Detects horizontal surfaces (floors, tables) and vertical surfaces (walls) in the real environment.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYesEnable or disable plane detection
maxPlanesNoMaximum number of planes to track
planeColorNoVisualization color in hex format#00FF00
planeTypesNoTypes of planes to detect
updateModeNoHow planes are updatedContinuous
mergePlanesNoMerge nearby coplanar surfaces
minPlaneAreaNoMinimum plane area in square meters
classifyPlanesNoClassify planes as floor, ceiling, wall, table, etc.
visualizePlanesNoShow debug visualization of detected planes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, consistent with the mutation described. However, the description does not disclose behavioral traits such as side effects on the spatial mapping system, whether prior state matters, or if enabling plane detection impacts performance. With only one annotation, the description should provide more context but remains minimally adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no redundant information. It is front-loaded with the primary action and then details the surfaces detected. This is efficiently concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 9 parameters, no output schema, and the description does not explain return values or state changes (e.g., whether previously detected planes are cleared), the description is somewhat sparse. It covers the basic toggle action but lacks completeness for an AI agent to fully understand the tool's impact without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Since schema description coverage is 100%, the parameters are fully documented in the schema. The description adds no additional parameter-level details beyond the overview of detection types. Baseline 3 is appropriate as the description does not reduce cognitive load but also does not mislead.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool enables or disables plane detection for spatial mapping, specifying detection of horizontal (floors, tables) and vertical (walls) surfaces. This is a specific verb+resource with clear scope, and it distinguishes from sibling tools like enable_meshing or get_detected_planes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when plane detection is needed, but it provides no explicit guidance on when to use this tool vs alternatives (e.g., when to use enable_meshing instead), no prerequisites, and no conditions where it should not be used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

execute_codeA
Destructive

Execute arbitrary C# code in the Unity Editor context. This is the most powerful tool — it can do anything the Unity Editor API allows.

The code runs with full access to UnityEngine, UnityEditor, System, and all project assemblies.

For simple expressions, just provide the expression (e.g., "Selection.activeGameObject.name"). For multi-statement code, write full C# statements. A return statement determines the output. For void operations, the code runs and any Debug.Log output is captured.

Pre-imported namespaces: System, System.Collections.Generic, System.Linq, System.Reflection, System.IO, UnityEngine, UnityEditor, UnityEditor.SceneManagement, UnityEngine.SceneManagement, UnityEngine.UI

Examples:

  • "PlayerSettings.productName" → returns product name

  • "GameObject.FindObjectsOfType().Length" → returns camera count

  • "var go = new GameObject("MyObject"); return go.name;" → creates object, returns name

  • "Debug.Log("Hello"); return Selection.objects.Length;" → logs + returns count

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesC# code to execute. Can be a single expression, multiple statements, or a full class with an Execute method.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructiveHint=true. Description reinforces this by stating it can do anything the Unity Editor API allows, and provides details on namespaces, execution modes, and capture of Debug.Log output. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with key information first (powerful, access) followed by details and examples. It is slightly verbose but every sentence adds value; could be more concise but remains efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's power and lack of output schema, the description covers all necessary aspects: how to write code, namespaces, examples, and what outputs to expect. It is fully complete for effective usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter 'code' with 100% schema coverage. The description adds significant meaning by explaining how the code is evaluated (expression vs statements), the role of return statements, and pre-imported namespaces, going far beyond the schema's basic description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it executes arbitrary C# code in the Unity Editor context. It distinguishes itself from sibling tools which are specific, targeted operations, making it clear this is the general-purpose code execution tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear guidance on how to use it (expression vs multi-statement, examples) and implies it's for tasks not covered by sibling tools. However, it does not explicitly state when NOT to use it or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

execute_menu_itemB

Executes a Unity menu item by path

ParametersJSON Schema
NameRequiredDescriptionDefault
menuPathYesThe path to the menu item to execute (e.g. "GameObject/Create Empty")

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states 'Executes' but does not disclose side effects, required context, or consequences of execution. Annotations indicate readOnlyHint=false and openWorldHint=true, but the description adds no behavioral context beyond the bare action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that is front-loaded and contains no extraneous words. Every word contributes to the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description is minimal. It omits details about execution results, error conditions, or safety considerations, which are important given the readOnlyHint=false annotation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description and example for the single parameter. The description adds no additional semantic value beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Executes' and identifies the resource as 'Unity menu item by path', clearly distinguishing it from sibling tools which cover different Unity actions like creating objects or building projects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The description does not mention exclusions, prerequisites, or alternative tools, leaving the agent to infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

file_operationsA
Destructive

Read, write, list, and search files within the Unity project.

Actions:

  • read: Read the contents of a file (scripts, shaders, configs, etc.)

  • write: Write/create a file in the project (auto-imports to AssetDatabase)

  • list: List files in a directory with optional pattern filtering

  • exists: Check if a file or directory exists

  • search: Search file contents for a text query (grep-like)

  • get_script_classes: Analyze a C# script to get its classes, methods, and fields

Paths can be absolute or relative to the project root. Examples:

  • "Assets/Scripts/MyScript.cs" (relative)

  • "Assets/Shaders/" (directory)

  • "ProjectSettings/ProjectSettings.asset" (project settings)

Security: All paths must be within the Unity project directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoFile or directory path (relative to project root or absolute). Examples: "Assets/Scripts/MyScript.cs", "Assets/"
queryNoSearch text for search action
actionYesFile operation to perform
contentNoFile content to write (required for write action)
patternNoFile name pattern for list action (e.g., "*.cs", "*.shader"). Default: "*.*"
extensionNoFile extension filter for search action (e.g., ".cs", ".shader"). Default: ".cs"
recursiveNoRecurse into subdirectories for list action. Default: false

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructive and non-readOnly behavior. The description adds that write actions auto-import to AssetDatabase and enforces security constraints (all paths must be within project directory). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is well-organized with a clear action list, path examples, and security note. It is concise yet informative, with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, no output schema), the description covers all actions and provides examples. It lacks return value details, but that is acceptable without an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds path examples but does not significantly enhance understanding beyond the schema's parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs file operations (read, write, list, etc.) and distinguishes it from sibling tools by enumerating specific file-related actions. The verb+resource pairing is explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides path examples and a security note, giving users guidance on how to use the tool. While it does not explicitly state when to avoid it, the clarity of actions and context signals are sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_gameobjectsA
Read-onlyIdempotent

Finds GameObjects in the scene by name pattern, tag, layer, or component type

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoTag to filter by (e.g. "Player", "Enemy")
layerNoLayer number to filter by
maxResultsNoMaximum number of results to return (default: 100)
namePatternNoName pattern to search for (supports * wildcard, e.g. "Player*", "*Enemy*")
componentTypeNoComponent type to filter by (e.g. "Camera", "Rigidbody", "BoxCollider")
includeInactiveNoWhether to include inactive GameObjects (default: true)

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageNoHuman-readable summary or error
successNoWhether the search succeeded
gameObjectsNoMatching GameObjects

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description does not need to cover those. The description adds that it searches by multiple criteria, which is useful but does not disclose behavioral details like wildcard support, pagination (maxResults), or whether inactive objects are included by default (these are in schema but not description). With annotations, the bar is lower, and the description is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the key action and resources. Every part is essential, no fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of an output schema and full parameter documentation, the description is mostly complete. It clearly conveys the core functionality. However, it does not explicitly mention that results are returned as a list or how maxResults affects pagination, though these could be inferred from the schema. Slight room for improvement, but overall adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all parameters are already documented in the schema. The description only lists the parameter categories (name pattern, tag, layer, component type) without adding new meaning or format details beyond what the schema provides. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'finds', the resource 'GameObjects', and the filtering criteria (name pattern, tag, layer, or component type). It effectively distinguishes itself from sibling tools like 'get_gameobject' or 'select_gameobject' by focusing on search/filtering.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any guidance on when to use this tool versus alternatives (e.g., when to use 'get_gameobject' instead), nor does it mention any prerequisites or exclusions. It simply states what the tool does without usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_build_statusA
Read-only

Returns the current status of an asynchronous build started by build_xreal_apk. Provide the jobId returned from that tool. State transitions: Queued -> Building -> Succeeded | Failed. When state is Succeeded the response includes outputPath, fileSizeMb, buildSeconds, and (if runAfterBuild was set) a deployment summary. When state is Failed the response includes an errors array. Omit jobId to get a list of every known build job in this editor session.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdNoThe jobId returned from build_xreal_apk. Omit to list all jobs.

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes state transitions (Queued -> Building -> Succeeded | Failed), response fields per state, and the effect of omitting jobId. Annotations confirm read-only behavior; no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very concise (3 sentences), front-loaded with main purpose. Every sentence adds value: purpose, how to use, and behavior variations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only 1 parameter and no output schema, the description fully covers behavior, state machine, response fields, and edge cases. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage (jobId described). Description adds that jobId comes from build_xreal_apk and that omitting it lists all jobs, plus response details per state.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns the status of an asynchronous build, linking it to build_xreal_apk via jobId. It distinguishes from siblings like build_xreal_apk by being the status checker.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells when to use (after build_xreal_apk with jobId) and when not (omit jobId to list all jobs). Provides clear context for alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_camera_frameA
Read-only

Captures a frame from the XREAL RGB camera for computer vision or AR development. Returns image data or saves to a file. Useful for debugging image tracking and mixed reality features.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoImage format for saved filePNG
filePathNoCustom file path to save the image. If not provided, saves to Assets/CapturedFrames/
cameraTypeNoType of camera data to captureRGB
resolutionNoResolution of captured frameFull
saveToFileNoSave the captured frame to a file
includeMetadataNoInclude camera intrinsics and pose in response

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and openWorldHint=true. The description adds that it returns image data or saves to a file, which is useful but does not elaborate on side effects like file creation or performance impact. Behavioral disclosure is adequate but not detailed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences cover the main action and use cases with no wasted words. The description is front-loaded with the core purpose, making it efficient for an AI agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 6 parameters, no output schema, and many siblings, the description covers the key aspects: core function, use cases, and behavior. It lacks details on return format when not saving, but annotations and schema compensate partially.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 6 parameters. The description adds minimal value beyond restating the save-to-file behavior. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool captures a frame from the XREAL RGB camera, with specific verb and resource. It distinguishes itself from siblings like capture_xr_screenshot and get_tracked_images by focusing on raw camera frames for computer vision and AR development.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context (for computer vision, debugging image tracking) but does not explicitly state when to use this tool instead of alternatives like capture_xr_screenshot or get_tracked_images. Usage is implied rather than clearly delineated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_connected_devicesA
Read-only

Lists all Android devices connected via ADB. Shows device IDs, models, Android versions, and connection status. Useful for verifying device setup before deployment.

ParametersJSON Schema
NameRequiredDescriptionDefault
refreshDevicesNoRefresh device list before returning
includeEmulatorsNoInclude Android emulators in the list
checkXrealSupportNoCheck if devices support XREAL glasses
includeUnauthorizedNoInclude devices pending USB debugging authorization

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and openWorldHint=true. The description adds that it lists via ADB and shows specific fields, but does not disclose other behaviors like caching or performance characteristics. Given annotation coverage, a score of 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, no wasted words. It is front-loaded with the verb and resource, making it easy to understand quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description sufficiently explains what is returned (device IDs, models, versions, connection status). It is complete for a list tool, though it could mention pagination or ordering.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add information about parameters beyond what the schema already provides in its descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists Android devices connected via ADB, specifying the verb 'Lists' and resource. It differentiates from siblings like get_xreal_device_info by focusing on general Android devices, not specifically XREAL.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: 'useful for verifying device setup before deployment'. However, it does not explicitly mention when not to use or alternatives, leaving partial guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_console_logsA
Read-onlyIdempotent

Retrieves logs from the Unity console with pagination support to avoid token limits

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of logs to return (defaults to 50, max 500 to avoid token limits)
offsetNoStarting index for pagination (0-based, defaults to 0)
logTypeNoThe type of logs to retrieve (info, warning, error) - defaults to all logs if not specified
includeStackTraceNoWhether to include stack trace in logs. Set to false to save 80-90% tokens. Default: true

Output Schema

ParametersJSON Schema
NameRequiredDescription
logsNoConsole log entries
limitNoPagination limit used
totalNoTotal number of matching logs available
offsetNoPagination offset used
messageNoHuman-readable summary or error
successNoWhether the logs were retrieved

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds context about pagination preventing token limits, which is useful but does not contradict annotations. Lacks disclosure of any additional behavior such as rate limits or return format, but output schema covers return structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no unnecessary words. Every element serves a purpose: states the action, resource, and key feature (pagination for token limits).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of a comprehensive input schema (100% coverage) and an output schema, the description adequately summarizes the tool's core purpose. It does not need to explain return values due to the output schema. Slightly missing mention of optional filtering by log type, but this is evident from the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description only reiterates the token-saving aspect already detailed in parameter descriptions (e.g., limit, includeStackTrace). It adds no new semantic meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves logs from the Unity console with pagination support. It effectively distinguishes from siblings like 'send_console_log' (sending) and 'watch_console' (real-time monitoring) by focusing on retrieval and pagination, though it doesn't explicitly contrast with alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when logs are needed and token limits are a concern, but provides no explicit guidance on when not to use this tool or alternatives. No prerequisites or context for selection among siblings like 'watch_console' for real-time logs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_detected_planesA
Read-only

Gets information about all currently detected planes in the environment. Returns plane positions, orientations, boundaries, and classifications.

ParametersJSON Schema
NameRequiredDescriptionDefault
minAreaNoMinimum plane area filter (square meters)
planeTypeNoFilter by plane typeAll
includePoseNoInclude plane pose (position and rotation)
classificationNoFilter by plane classificationAll
coordinateSpaceNoCoordinate space for positionsWorld
includeVerticesNoInclude boundary vertex positions

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true and openWorldHint=true, so the description adds value by detailing the returned data (positions, orientations, boundaries, classifications). It does not contradict the annotations and provides context beyond what annotations alone offer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences with no redundancy. It is front-loaded with the purpose and follows with specifics. Every sentence contributes meaningfully.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description lists the returned data types. However, it does not mention preconditions (e.g., that plane detection must be enabled) or potential performance considerations. Given the tool's simplicity and good annotations, it is adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptions for all six parameters, so the description adds little new information about parameters. It indirectly relates to some parameters (e.g., classification) but does not directly explain them. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Gets information about all currently detected planes in the environment.' It specifies what is returned (positions, orientations, boundaries, classifications), making it easy for an AI agent to understand the action and resource. The sibling tools are unrelated, so no confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus alternatives. It is implied that it should be used when plane detection data is needed, but no exclusions or conditions are mentioned. With many siblings not related to plane detection, this is a minor gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_gameobjectA
Read-onlyIdempotent

Retrieves detailed information about a specific GameObject by instance ID, name, or hierarchical path (e.g., 'Parent/Child/MyObject'). Returns all component properties including Transform position, rotation, scale, and more.

ParametersJSON Schema
NameRequiredDescriptionDefault
idOrNameYesThe instance ID (integer), name, or hierarchical path of the GameObject to retrieve. Use hierarchical paths like 'Canvas/Panel/Button' for nested objects.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageNoHuman-readable summary or error
successNoWhether the GameObject was found

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint. The description adds context about returning all component properties including Transform, which is useful beyond the annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the action and includes an example. Every word adds value, no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with output schema and annotations, the description covers input format and output scope sufficiently. No missing critical information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the description repeats the same information about the parameter (instance ID, name, path). No additional semantic detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves detailed information about a specific GameObject, specifying the identifiers (instance ID, name, hierarchical path). It distinguishes from sibling tools like delete_gameobject or update_gameobject.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indirectly implies usage for retrieving details of a single known object, but does not explicitly contrast with siblings like find_gameobjects (for searching) or explain when not to use. No exclusions or alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_hand_stateB
Read-only

Gets the current state of tracked hands including joint positions, detected gestures, pinch strength, and tracking confidence. Returns detailed hand pose data.

ParametersJSON Schema
NameRequiredDescriptionDefault
handNoWhich hand(s) to queryBoth
coordinateSpaceNoCoordinate space for position dataWorld
includeGesturesNoInclude detected gesture information
includeVelocityNoInclude hand velocity data
includeJointPositionsNoInclude all joint world positions
includeJointRotationsNoInclude joint rotation quaternions

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true (no side effects) and openWorldHint=true (data may vary). The description adds that it returns joint positions, gestures, pinch strength, and confidence, which supplements the parameters. However, it doesn't mention that results depend on tracking state or that openWorldHint implies variability.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the primary action, no filler words. Efficient and clear, though a slightly more structured format (e.g., bullet list of returned fields) could improve scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but parameters are well-documented. The description covers core return data but omits error conditions, required setup (e.g., hand tracking enabled), and doesn't address the implications of openWorldHint. Adequate for a simple getter, but could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (all 6 parameters described). The description includes some data fields (e.g., pinch strength) not directly in param descriptions, but doesn't elaborate on parameter behavior or defaults beyond the schema. Baseline 3 applies as schema already does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets the current state of tracked hands and lists included data (joint positions, gestures, pinch strength, tracking confidence). It distinguishes from sibling hand-configuration tools like 'configure_hand_gestures' or 'enable_hand_tracking', but does not explicitly differentiate from other getters.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, prerequisites (e.g., hand tracking must be enabled), or conditions that affect results. The description merely states functionality without usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tracked_imagesA
Read-only

Gets the current state of tracked images including which images are detected, their poses, and tracking quality.

ParametersJSON Schema
NameRequiredDescriptionDefault
imageFilterNoFilter by image name (supports wildcards)
includePoseNoInclude position and rotation data
includeSizeNoInclude detected size information
trackingStateNoFilter by tracking stateAll
coordinateSpaceNoCoordinate space for pose dataWorld

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description's claim of 'Gets' is consistent. The description adds detail on returned data (detected, poses, quality) but no additional behavioral context like auth requirements or rate limits, which is acceptable given annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that is front-loaded with the core action and resource, containing no filler. Every word contributes to understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only query tool with 5 parameters and no output schema, the description covers the main purpose and outputs. It could mention the return format or filtering options, but the parameters handle filtering implicitly. Overall, adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the description adds minimal extra meaning beyond what the schema already provides. It mentions 'poses' and 'tracking quality', which maps to parameters like includePose and trackingState, but does not elaborate on syntax or usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Gets' and the resource 'current state of tracked images', listing specific aspects: which images are detected, poses, and tracking quality. It distinguishes from sibling tools like 'add_tracking_image' (adds) and 'configure_image_tracking' (configures).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for querying tracking state but lacks explicit guidance on when to use versus alternatives like 'get_detected_planes' or 'get_hand_state'. No exclusions or context are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_xreal_device_infoA
Read-only

Gets information about the connected XREAL device including model, connection status, tracking state, battery level, and supported features. Works in both Editor simulation and on-device.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeBatteryInfoNoInclude battery status if available
includeDisplayInfoNoInclude display resolution and refresh rate
includeCapabilitiesNoInclude device capability information (hand tracking, eye tracking, etc.)
includeTrackingStateNoInclude current tracking state and quality

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint. The description adds context about specific data fields (battery, tracking) but does not disclose additional behavioral traits beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences that are clear, front-loaded, and contain no extraneous words. Every sentence provides value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only information tool with no output schema, the description fully covers its purpose, scope, and environment. Parameters are adequately documented in schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with each parameter already described. The description adds no extra meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The tool name 'get_xreal_device_info' and description clearly state it retrieves information about a connected XREAL device, specifying exact data like model, battery, tracking. It is distinct from sibling 'get_connected_devices' which lists devices.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions it works in both Editor simulation and on-device, indicating appropriate context. However, it does not explicitly state when not to use or provide alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_xr_performance_metricsA
Read-only

Gets real-time XR performance metrics including frame rate, frame times, GPU/CPU usage, thermal state, and memory usage. Essential for optimizing mobile XR experiences.

ParametersJSON Schema
NameRequiredDescriptionDefault
averageOverFramesNoNumber of frames to average metrics over
includeCpuMetricsNoInclude CPU utilization by thread
includeGpuMetricsNoInclude GPU utilization and timing
includeFrameMetricsNoInclude FPS, frame times, dropped frames
includeThermalStateNoInclude device thermal throttling state
includeMemoryMetricsNoInclude memory usage statistics
includeTrackingMetricsNoInclude tracking quality metrics

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds that metrics are 'real-time' but does not disclose other behavioral traits (e.g., whether a running XR session is required, if data comes from device or simulation). Not contradictory, but minimal added value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core purpose. The second sentence is somewhat generic but not wasteful. Could be slightly more efficient, but overall concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description lists the types of metrics. It does not mention the return format or clarify that all parameters are optional (though defaults are in schema). Adequate but could provide more operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 7 parameters have 100% schema coverage with descriptions and defaults. The tool description does not add any extra meaning beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool 'gets real-time XR performance metrics' and lists specific metrics (frame rate, GPU/CPU usage, etc.), making the purpose unambiguous and distinct from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Mentions it is 'essential for optimizing mobile XR experiences,' implying when to use, but does not specify when not to use or provide alternatives like profile_xr_scene. Lacks explicit guidance on prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_nrsdkA

Imports the NRSDK (XREAL SDK) into the Unity project. Can import from a local unitypackage file or download a specific version. Configures initial SDK settings after import.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoURL to download NRSDK from (required if source is "url")
pathNoLocal file path to NRSDK .unitypackage file (required if source is "local")
sourceYesImport source: "local" for a unitypackage file path, "url" for download URL
versionNoSDK version being imported (for reference)
importExamplesNoImport example scenes and scripts
importStreamingAssetsNoImport streaming assets required for device operation
configurePlayerSettingsNoAutomatically configure Player Settings for NRSDK

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate a non-read-only, potentially side-effect operation. The description adds that the tool 'configures initial SDK settings after import', which provides behavioral context beyond the annotations. It does not detail what settings or potential destructive actions, but the added context is valuable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three clear sentences, no wasted words. The first sentence states the core purpose, and the following sentences add significant detail efficiently. Perfectly front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool complexity and rich input schema, the description covers the essential aspects (import, source options, configuration). It does not mention return values or error behavior, but for an import tool, the purpose and parameters are sufficiently clear. The annotation 'openWorldHint' hints at side effects, which the description acknowledges.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, the baseline is 3. The description adds meaning by explaining the two import modes ('local' vs 'url'), which maps to the 'path' and 'url' parameters, and the optional import of examples and streaming assets. This goes beyond the schema's descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Imports' and the resource 'NRSDK (XREAL SDK)', and distinguishes two import modes (local file or download). It sets the tool apart from siblings like 'setup_xreal_project' or 'add_package' by focusing specifically on importing and configuring the NRSDK.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly mentions two import sources (local file or download a specific version), giving clear context on when to use each. However, it does not exclude alternatives or provide when-not-to-use guidance relative to sibling tools, which would improve the score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lightingC

Controls Unity lighting and rendering environment. Actions:

  • get_settings: Get current lighting settings

  • set_settings: Modify lighting settings

  • bake_lighting: Start lightmap baking

  • cancel_bake: Cancel ongoing bake

  • get_bake_status: Get baking progress

  • clear_baked_data: Clear baked lighting data

  • get_light_probes: Get light probe data

  • update_light_probes: Refresh light probes

  • set_ambient: Set ambient lighting

  • set_fog: Configure fog settings

  • set_skybox: Set skybox material

  • get_reflection_probes: Get reflection probe data

  • render_reflection_probes: Re-render reflection probes

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesLighting action to perform
skyboxPathNoAsset path to skybox material
bakeOptionsNoOptions for baking
fogSettingsNoFog settings
ambientSettingsNoAmbient lighting settings
lightingSettingsNoLighting settings to modify
reflectionProbeIdNoSpecific reflection probe instance ID

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only indicate readOnlyHint=false, implying mutation. The description does not disclose whether actions are synchronous, have side effects, require specific permissions, or any other behavioral traits beyond the action names. For a complex tool with many actions, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, starting with a one-sentence summary followed by a clear list of actions. It avoids unnecessary text and is well-structured for quick scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks information about parameter-action mappings, return values for getters, or process details for long-running actions like bake_lighting. Given the tool's complexity (7 parameters, nested objects, no output schema), the description is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter has a description in the schema. The tool description adds the action list but adds no additional meaning beyond what the enum already provides. Thus, the description adds marginal value over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Controls Unity lighting and rendering environment' and lists specific actions like get_settings, set_settings, bake_lighting, etc. It clearly identifies the tool's domain and primary actions, distinguishing it from sibling tools that are unrelated topics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It simply enumerates actions without explaining under what circumstances each action should be chosen or any prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

load_sceneB
Idempotent

Loads a scene by path or name. Supports additive loading (default: false)

ParametersJSON Schema
NameRequiredDescriptionDefault
additiveNoLoad additively if true; default false
sceneNameNoScene name without extension (used if scenePath not provided)
scenePathNoFull asset path to the scene (e.g., 'Assets/Scenes/MyScene.unity')
folderPathNoOptional folder scope to resolve sceneName under 'Assets'

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide idempotentHint=true and readOnlyHint=false. The description adds that additive loading is supported with a default false, which is useful. However, it does not disclose side effects like unloading the previous scene when additive=false, nor does it explain error conditions or folderPath resolution behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences convey the essential purpose and a key behavioral option with no unnecessary words. The description is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given four optional parameters and no output schema, the description covers the basic mechanism but omits important details: precedence when both scenePath and sceneName are provided, behavior when additive=false (unloads current scene), folderPath usage, and potential errors. Not fully complete for complex contexts.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all parameters. The description mentions loading by path or name and additive loading, but these concepts are already covered in parameter descriptions. No additional meaning is added beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Loads a scene by path or name', which identifies the verb (loads), resource (scene), and two resolution methods. However, it does not explicitly differentiate from sibling tools like create_scene or delete_scene, so it misses some sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives such as add_asset_to_scene or create_scene. The description lacks context for selecting this tool over siblings, leaving the agent to guess usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_assetB
Destructive

Manages assets in the project: move, delete, rename, copy, create_folder, get_path

ParametersJSON Schema
NameRequiredDescriptionDefault
guidNoAsset GUID (for get_path)
actionYesThe asset management action to perform
newNameNoNew name for the asset (for rename)
destPathNoDestination asset path (for move, copy)
assetPathNoAsset path (for delete, rename, get_path)
folderNameNoNew folder name (for create_folder)
instanceIdNoInstance ID (for get_path)
sourcePathNoSource asset path (for move, copy)
parentFolderNoParent folder path (for create_folder)

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint: true, and the description adds the list of actions, most of which are mutating. However, it does not disclose that get_path is read-only, nor does it explain authorization needs or side effects beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: a single sentence listing actions. Front-loaded with purpose. No wasted words, making it efficient for an AI agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (9 parameters, no output schema), the description is too minimal. It does not explain how actions are selected, parameter dependencies, or what happens on success/failure. Leaves significant gaps for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the description's role is reduced. It groups actions but does not map parameters to actions (e.g., which parameters are required for each action). The schema handles detail, but the description could add relational clarity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it manages assets and lists specific actions (move, delete, rename, copy, create_folder, get_path), providing a specific verb and resource. It distinguishes from sibling tools by enumerating these actions, but does not explicitly contrast with other asset-related tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool vs alternatives like add_asset_to_scene or asset_import. The description lists actions but does not advise on which action to choose based on task context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_spatial_anchorsA

Manages spatial anchors: load from persistence, save current anchors, delete anchors, or query anchor information. Essential for persistent MR experiences.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform on spatial anchors
filterNoFilter criteria for list action
anchorIdNoSpecific anchor ID for load/delete/query actions
anchorNameNoAnchor name for load/delete/query actions (alternative to anchorId)
includeMetadataNoInclude custom metadata in query results
includeTransformNoInclude position/rotation in query results

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, consistent with the write operations described. The description lists actions but does not elaborate on side effects, authentication needs, or error conditions. It adds moderate context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that are front-loaded with the core purpose. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description does not explain return values or behavior for each action. For a tool with 6 parameters and nested objects, more context (e.g., what happens on save/delete) would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add additional meaning beyond what the schema already provides for parameters like 'action', 'filter', etc.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'manages' and the resource 'spatial anchors', listing specific actions (load, save, delete, query). This distinguishes it from sibling tools like 'create_spatial_anchor' which focuses on creation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Essential for persistent MR experiences' implies usage context but does not explicitly state when to use this tool versus alternatives like 'create_spatial_anchor'. No when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

material_shaderC

Manages Unity materials and shaders. Actions:

  • get_material: Get material properties from a renderer

  • set_material_property: Set a material property value

  • create_material: Create a new material

  • assign_material: Assign material to a renderer

  • get_shader_properties: List all properties of a shader

  • get_available_shaders: List available shaders

  • set_shader: Change shader on a material

  • copy_material: Copy material properties

  • get_global_shader_property: Get global shader property

  • set_global_shader_property: Set global shader property

  • get_keywords: Get enabled shader keywords

  • enable_keyword: Enable a shader keyword

  • disable_keyword: Disable a shader keyword

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesMaterial/shader action to perform
keywordNoShader keyword name
objectIdNoInstance ID of the GameObject with renderer
colorValueNoColor value (0-1 range)
objectPathNoHierarchy path of the GameObject
shaderNameNoShader name (e.g., "Standard", "Universal Render Pipeline/Lit")
texturePathNoAsset path to texture
vectorValueNoVector4 value
materialPathNoAsset path to material
propertyNameNoName of the material/shader property
propertyTypeNoType of the property
searchFilterNoFilter for shader search
materialIndexNoMaterial index on the renderer (default: 0)
propertyValueNoValue to set for the property
newMaterialNameNoName for new material
newMaterialPathNoPath to save new material
useSharedMaterialNoUse shared material vs instance (default: false = instance)
sourceMaterialPathNoSource material to copy from

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, so mutation is expected. However, the description does not disclose side effects, required permissions, or undo behavior for actions like assign_material or set_shader. No detail on what gets modified or how changes are applied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description front-loads the general purpose, but the bullet list of 13 actions is lengthy and duplicates the action enum from the schema. Could be more concise by grouping or omitting the full list and focusing on behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description does not explain what each action returns (e.g., 'get_material returns material properties'). With 18 parameters and varied actions, the agent lacks information on expected outcomes, making the description incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each parameter has a description. The tool description does not add semantic meaning beyond the schema. Baseline of 3 is appropriate, as the description neither enhances nor degrades parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Manages Unity materials and shaders' and lists 13 specific actions, clearly indicating the scope. It is distinguishable from sibling tools that cover different domains. However, it lacks a concise overall statement of what the tool does (e.g., 'Provides operations to create, modify, and query materials and shaders').

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. No when-to-use, when-not-to-use, or prerequisite information is given. The lengthy list of actions assumes the agent knows which action to choose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

particle_systemA

Manage Unity ParticleSystems in detail. Actions:

  • create: Create a new ParticleSystem GameObject

  • get_info: Get full particle system state (main, emission, shape modules)

  • set_main: Configure main module (duration, looping, lifetime, speed, size, gravity, etc.)

  • set_emission: Configure emission (rate over time/distance)

  • set_shape: Configure shape module (type, radius, angle, arc)

  • set_renderer: Configure renderer (render mode, material, sorting order)

  • play/stop/pause/restart: Playback control

  • list: List all ParticleSystems in scene

  • set_color_over_lifetime: Set start/end color gradient

  • set_size_over_lifetime: Set start/end size curve

  • set_velocity_over_lifetime: Set velocity min/max per axis

  • get_modules: Check which modules are enabled

ParametersJSON Schema
NameRequiredDescriptionDefault
xNoPosition X
yNoPosition Y
zNoPosition Z
arcNoShape arc
nameNoName for new particle system (create)
xMaxNoVelocity X max
xMinNoVelocity X min
yMaxNoVelocity Y max
yMinNoVelocity Y min
zMaxNoVelocity Z max
zMinNoVelocity Z min
angleNoCone angle
actionYesParticleSystem action to perform
radiusNoShape radius
enabledNoEnable/disable module (true/false)
endSizeNoEnd size for size-over-lifetime curve
loopingNoEnable looping (true/false)
durationNoDuration in seconds
endColorNoEnd color JSON: {"r":0,"g":0,"b":1,"a":0}
objectIdNoInstance ID of the ParticleSystem
shapeTypeNoShape type (Sphere, Hemisphere, Cone, Box, Circle, etc.)
startSizeNoStart size
objectPathNoHierarchy path of the ParticleSystem
parentPathNoParent path (create)
renderModeNoBillboard, Stretch, HorizontalBillboard, VerticalBillboard, Mesh
startColorNoStart color JSON: {"r":1,"g":0,"b":0,"a":1}
startSpeedNoStart speed
playOnAwakeNoPlay on awake (true/false)
startSizeOLNoStart size for size-over-lifetime curve
materialPathNoPath to material asset
maxParticlesNoMaximum particles
rateOverTimeNoEmission rate over time
sortingOrderNoSorting order
startLifetimeNoStart lifetime in seconds
gravityModifierNoGravity modifier
simulationSpaceNolocal, world, or custom
rateOverDistanceNoEmission rate over distance

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only indicate readOnlyHint=false, so description carries burden. It enumerates actions (create, set, play, etc.) that imply modification, but does not disclose side effects, authorization needs, or other behavioral traits beyond the action names.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Bullet-pointed list of actions is well-structured and front-loaded with purpose. Some redundancy (e.g., 'Configure' repeated), but overall efficient and easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 37 parameters and no output schema, description covers all actions and modules. Agent can infer which parameters apply to which action from context, making it complete for invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, baseline 3. Description adds value by grouping actions and including example JSON for color parameters, which helps interpret the input schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it manages Unity ParticleSystems in detail, listing specific actions. It distinguishes from siblings which cover other aspects of Unity (animation, lighting, etc.).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists all possible actions but does not provide explicit when-to-use or when-not-to-use guidance. It implies usage for particle system management, but lacks comparisons to alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

physicsB

Unity Physics system control and queries. Actions:

  • raycast: Perform a raycast and return hit info

  • raycast_all: Raycast returning all hits

  • spherecast: Sphere-based raycast

  • boxcast: Box-based raycast

  • overlap_sphere: Find colliders in a sphere

  • overlap_box: Find colliders in a box

  • simulate: Step physics simulation manually

  • get_contacts: Get contact points between colliders

  • set_gravity: Set physics gravity

  • get_layer_collision: Get layer collision matrix

  • set_layer_collision: Set layer collision matrix

  • add_force: Add force to a Rigidbody

  • add_torque: Add torque to a Rigidbody

  • set_velocity: Set Rigidbody velocity

  • get_rigidbody_state: Get Rigidbody physics state

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoForce vector to apply
actionYesPhysics action to perform
layer1NoFirst layer index for collision matrix
layer2NoSecond layer index for collision matrix
originNoRay/query origin point
radiusNoRadius for sphere cast/overlap
collideNoWhether layers should collide
gravityNoNew gravity vector
objectIdNoInstance ID of the Rigidbody object
velocityNoVelocity vector to set
directionNoRay direction (will be normalized)
forceModeNoForce application mode
layerMaskNoLayer mask for filtering (default: all layers)
maxResultsNoMaximum results for multi-hit queries
objectPathNoHierarchy path of the Rigidbody object
halfExtentsNoHalf extents for box cast/overlap
maxDistanceNoMaximum raycast distance
orientationNoRotation quaternion for box queries
queryTriggersNoInclude trigger colliders
angularVelocityNoAngular velocity to set
simulationStepsNoNumber of physics simulation steps

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description names both read (raycast) and write (add_force) actions but does not expand on behavioral traits like side effects, permissions needed, or state persistence. Given readOnlyHint=false, the description could have added context about what modifications entail (e.g., gravity changes affect all objects). The lack of such detail limits transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: one header sentence followed by a compact list of actions with one-line descriptions. It front-loads the purpose. However, the list format could be better structured (e.g., grouping reads vs writes). Still, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's high complexity (21 parameters, 15 actions, no output schema), the description lacks information on return structures, error handling, or behavior of unmentioned combinations. The schema covers parameters well, but the description doesn't fully compensate for missing output schema or complex interactions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% description coverage for all parameters. The tool description adds no additional parameter meaning beyond listing actions in the description, which maps to the action enum. Baseline of 3 applies because schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it controls Unity Physics system and lists 15 specific actions (raycast, simulate, add_force, etc.), distinguishing it from siblings like physics2d. The verb-resource pair is specific: 'Unity Physics system control and queries'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance. The description lists actions but doesn't indicate which action to choose for a given scenario or when to use this tool over other physics-related tools (e.g., physics2d). The agent must infer usage from action names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

physics2dA

Manage Unity 2D Physics: rigidbodies, colliders, raycasts, joints, effectors. Actions:

  • get_settings: Get Physics2D global settings (gravity, iterations, etc.)

  • set_settings: Modify Physics2D settings

  • raycast: Cast a 2D ray and return hit info

  • overlap_circle: Find all colliders within a circle

  • overlap_box: Find all colliders within a box

  • get_rigidbodies: List all Rigidbody2D components in scene

  • set_rigidbody: Add/configure Rigidbody2D on a GameObject

  • add_force: Apply force to a Rigidbody2D

  • get_colliders: List all Collider2D components in scene

  • add_collider: Add a 2D collider to a GameObject

  • get_joints: List all Joint2D components in scene

  • get_effectors: List all Effector2D components in scene

  • get_layers: Get 2D collision layer matrix

  • set_layer_collision: Enable/disable collision between two layers

ParametersJSON Schema
NameRequiredDescriptionDefault
xNoCenter X
yNoCenter Y
dirXNoRay direction X
dirYNoRay direction Y
massNoRigidbody mass
angleNoBox rotation angle
sizeXNoBox half-width
sizeYNoBox half-height
actionYesPhysics2D action to perform
forceXNoForce X component
forceYNoForce Y component
ignoreNoIgnore collision between layers (true/false)
layer1NoFirst layer name or index
layer2NoSecond layer name or index
radiusNoCircle radius
originXNoRay origin X
originYNoRay origin Y
bodyTypeNodynamic, kinematic, or static
distanceNoMax ray distance
gravityXNoGravity X component
gravityYNoGravity Y component
objectIdNoInstance ID of a GameObject
forceModeNoForce or Impulse
isTriggerNoWhether collider is a trigger (true/false)
simulatedNoWhether rigidbody is simulated (true/false)
objectPathNoHierarchy path of a GameObject
colliderTypeNobox, circle, capsule, polygon, or edge
gravityScaleNoGravity scale
linearDampingNoLinear damping
angularDampingNoAngular damping
positionIterationsNoPosition solver iterations
queriesHitTriggersNoWhether queries hit triggers (true/false)
velocityIterationsNoVelocity solver iterations
defaultContactOffsetNoDefault contact offset
queriesStartInCollidersNoWhether queries start in colliders (true/false)

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description lists actions but does not disclose behavioral traits beyond what the annotations already provide. Annotations indicate readOnlyHint=false, consistent with write actions. However, the description lacks details on side effects (e.g., permanent changes to physics settings), authorization needs, or limitations (e.g., physics engine must be enabled). With only a list of action names and one-line summaries, transparency is low.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a brief intro followed by a bullet list of actions. It front-loads the core purpose. While the list is long, it is necessary given the tool's complexity. Every sentence adds value; no redundancy. Slightly verbose but efficient for the scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers all actions but lacks context on how to sequence them, prerequisites (e.g., existing GameObjects for adding components), or return values. Without an output schema, the description does not explain what each action returns. For a complex tool with 35 parameters, more guidance on typical usage patterns would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter has a basic description. The tool description adds no additional parameter-level detail beyond listing action options. Baseline of 3 is appropriate because the schema already provides the necessary semantics, and the description does not enhance understanding of parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with 'Manage Unity 2D Physics: rigidbodies, colliders, raycasts, joints, effectors.' clearly stating the tool's purpose and domain. It distinguishes from the sibling tool 'physics' by explicitly mentioning 2D, which is the key differentiator. The list of actions further specifies what can be done, leaving no ambiguity about the tool's scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly guides usage by labeling the tool as '2D Physics,' which tells an agent to use this for 2D physics tasks and likely the sibling 'physics' for 3D. However, it does not explicitly state when not to use this tool or provide direct comparisons with alternatives. The list of actions itself gives context for which action to pick based on the task.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

play_modeA

Controls Unity Editor play mode: enter, exit, pause, unpause, step, or get current state

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesThe play mode action to perform

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description implies mutation (controls) consistent with annotations (readOnlyHint: false). However, it does not disclose behavioral traits beyond what annotations provide, such as whether entering play mode recompiles scripts or affects unsaved scenes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one sentence that lists all actions efficiently. It is front-loaded with the verb 'controls' and provides a clear list. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description adequately covers the actions. It does not explain return values for 'get_state', but given the lack of output schema, this is a minor gap. Overall, it is complete enough for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes the single parameter 'action' with an enum and description. The tool description repeats the enum values but adds no additional meaning beyond what the schema provides. Schema coverage is 100%, so baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly lists the specific actions ('enter', 'exit', 'pause', 'unpause', 'step', 'get_state') and states it controls Unity Editor play mode. It clearly distinguishes from sibling tools like 'editor_control' which likely has a broader scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as 'debugger', 'playtest', or 'execute_menu_item'. There is no mention of prerequisites, context, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

playtestB

Autonomous playtesting: observe game state, simulate taps, click UI elements, capture screenshots, and interact with game objects during Unity play mode

ParametersJSON Schema
NameRequiredDescriptionDefault
xNoScreen X coordinate for tap action
yNoScreen Y coordinate for tap action
argsNoComma-separated method arguments for interact action
col1NoSource column for swap_tiles action (0-based)
col2NoTarget column for swap_tiles action (0-based)
nameNoUI element name for click_ui action (deep search across all canvases)
row1NoSource row for swap_tiles action (0-based)
row2NoTarget row for swap_tiles action (0-based)
textNoText to search for in wait_for 'text' condition
end_xNoEnd screen X for swipe action
end_yNoEnd screen Y for swipe action
valueNoValue to set for Slider (float) or InputField (text) in click_ui
widthNoScreenshot width in pixels (default 540)
actionYesobserve: full game state snapshot (scene, UI text, buttons, camera) | tap: simulate tap at screen coordinates (tries UI, Physics2D, Physics3D) | click_ui: click a UI element by name (Button, Toggle, Slider, InputField) | screenshot: capture camera view to PNG file | get_ui: list all active UI elements with types and state | wait_for: check if a condition is met (scene, text, object, playing, paused) | interact: call a method on a game object component via reflection | get_grid: read tile grid state (frequencies, positions, static status) for match-3 games | swap_tiles: swap two tiles by grid coordinates (col1,row1 <-> col2,row2) | swipe: simulate swipe gesture via screen coordinates (start_x,start_y -> end_x,end_y)
heightNoScreenshot height in pixels (default 960)
start_xNoStart screen X for swipe action
start_yNoStart screen Y for swipe action
conditionNoCondition type for wait_for: scene, text, object, playing, paused
sceneNameNoExpected scene name for wait_for 'scene' condition
methodNameNoMethod to invoke for interact action
objectNameNoGameObject name for wait_for 'object' condition
objectPathNoGameObject path for interact action (e.g. 'GameManagers')
componentTypeNoComponent type name for interact (e.g. 'GameFlowManager')

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, consistent with mutation. The description adds no extra behavioral context (e.g., side effects, error conditions); it merely lists actions already detailed in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence efficiently captures the tool's purpose and capabilities, though it could be slightly more structured or bulleted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, so description could explain return values or state after actions. It adequately describes the tool's scope but lacks completeness for a complex 23-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The tool description adds no further parameter details beyond the schema's per-action descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool is for autonomous playtesting in Unity play mode, listing core actions. It distinguishes from sibling tools like play_mode or scene management by focusing on in-play interactions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like find_gameobjects or execute_code. The description omits context for when playtesting is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

prefabB

Advanced Unity prefab operations. Actions:

  • get_info: Get prefab status (instance/asset type, variant, overrides)

  • create_variant: Create a prefab variant from a base prefab

  • get_overrides: List property modifications, added/removed components

  • apply_overrides: Apply all instance overrides back to the prefab asset

  • revert_overrides: Revert all instance overrides

  • unpack: Unpack a prefab instance (outermost or completely)

  • open: Open prefab in prefab editing mode

  • close: Close prefab editing mode, return to main stage

  • instantiate: Instantiate a prefab into the scene with optional position/parent

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesPrefab action to perform
objectIdNoInstance ID of a prefab instance
positionNoJSON position object for instantiate, e.g. {"x":0,"y":1,"z":0}
assetPathNoPath to the prefab asset (e.g. Assets/Prefabs/Player.prefab)
completelyNoFor unpack: "true" to unpack completely, "false" for outermost only
objectPathNoHierarchy path of a prefab instance in the scene
parentPathNoHierarchy path of parent for instantiate
variantPathNoDestination path for create_variant

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description names actions like 'apply_overrides' and 'revert_overrides', which imply mutability, but does not elaborate on side effects, permissions, or destructive potential beyond the annotation 'readOnlyHint: false'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with a clear list of actions. Every sentence serves a purpose with no unnecessary text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity with 9 actions and 8 parameters, the description lacks essential mapping of required parameters per action, leaving the agent without enough context to correctly invoke sub-actions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptions for each parameter, so the tool description adds no additional meaning. The description merely lists actions without linking parameters to specific actions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Advanced Unity prefab operations' and lists 9 specific actions, effectively communicating the tool's purpose and distinguishing it from sibling tools like 'create_prefab' which focuses on creation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives is provided. The description lists actions but does not compare with siblings such as 'create_prefab' or 'update_gameobject', leaving the agent to infer usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

profilerC
Read-only

Controls Unity's Profiler for performance analysis. Actions:

  • start: Begin profiling session

  • stop: End profiling session

  • get_frame_data: Get detailed frame timing data

  • get_memory_snapshot: Capture memory usage snapshot

  • get_render_stats: Get rendering statistics (draw calls, triangles, batches)

  • get_cpu_usage: Get CPU time breakdown by area

  • get_gc_allocs: Get garbage collection allocations

  • save_report: Save profiler data to file

  • clear: Clear profiler data

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesProfiler action to perform
sortByNoSort profiler results by this metric
minTimeNoMinimum time in ms to include in results (filter small items)
savePathNoFile path for saving profiler report
frameCountNoNumber of frames to analyze (default: 1, max: 300)
profileGPUNoInclude GPU profiling data
deepProfileNoEnable deep profiling for detailed call stacks (slower)
profileEditorNoInclude editor overhead in profiling
memoryCategoriesNoMemory categories to include in snapshot
includeCallStacksNoInclude call stacks in GC allocation data

TDQS

C2.9/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description includes mutating actions (start, stop, clear) yet the annotation declares readOnlyHint: true, which is a contradiction. The description does not disclose side effects or behavioral traits beyond the annotation's implication.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the purpose and a list of actions. It avoids unnecessary words but could benefit from grouping related actions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters and no output schema, the description is insufficient. It does not explain return values, default behaviors, or how parameters interact with different actions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the description adds minimal additional meaning. It does not elaborate on parameter usage or relationships beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool controls Unity's Profiler for performance analysis, and lists specific actions (start, stop, get_frame_data, etc.), making the tool's purpose distinct from siblings like profile_xr_scene.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., profile_xr_scene for XR-specific profiling). There is no mention of prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

profile_xr_sceneB
Read-only

Analyzes the current scene for XR performance issues. Checks draw calls, triangle counts, texture memory, shader complexity, and provides optimization recommendations.

ParametersJSON Schema
NameRequiredDescriptionDefault
analyzeAssetsNoAnalyze asset sizes and compression
analyzeMemoryNoAnalyze memory usage and allocations
analyzePhysicsNoAnalyze physics complexity
analyzeScriptsNoAnalyze script performance impact
generateReportNoGenerate detailed report with recommendations
highlightIssuesNoHighlight problematic objects in Scene view
targetFrameRateNoTarget frame rate for recommendations (XREAL typical: 60-90)
analyzeRenderingNoAnalyze rendering performance (draw calls, batching, overdraw)

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the tool is clearly read-only and safe. The description adds specific analysis areas but no additional behavioral traits (e.g., permissions, side effects, or limitations).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is a single sentence that efficiently conveys purpose and scope. It is front-loaded with the core action, but the list of checks could be more structured. No extraneous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 optional parameters and no output schema, the description lacks details on default behavior (all analyses run by default) and output format (just 'recommendations'). It is adequate but leaves important context unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all 8 parameters with descriptions, achieving 100% coverage. The tool description does not add new information about parameters beyond the schema, so it meets the baseline but does not enhance understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool analyzes the current scene for XR performance issues and lists specific checks. It distinguishes itself from sibling tools like 'get_xr_performance_metrics' by offering recommendations beyond raw metrics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives (e.g., 'profiler', 'get_xr_performance_metrics'). The description implies usage for performance profiling but does not state when not to use it or provide comparative context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

project_settingsA

Manages Unity Project Settings including PlayerSettings, QualitySettings, GraphicsSettings, PhysicsSettings, and more. Actions: get (read settings), set (modify settings), list_categories (show available categories). Categories: player, quality, graphics, physics, time, audio, editor, input, tags_layers, preset_manager

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesThe action to perform
filterNoFilter settings by name pattern (supports * wildcard)
categoryNoSettings category to read/modify
platformNoTarget platform for platform-specific settings
settingsNoKey-value pairs of settings to modify
qualityLevelNoQuality level index (0-5 typically) for quality settings

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation readOnlyHint: false indicates potential write operations, and the description confirms 'set (modify settings)'. However, it does not disclose possible destructive consequences of modifying settings, whether changes are reversible, or if specific permissions are required. With no further annotations, the description should provide more behavioral context for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: two short sentences. The first sentence states the purpose, the second lists actions and categories. No redundant information. Front-loaded with essential info.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having a clear purpose and schema, the description lacks details about the output format for 'get' and 'list_categories' actions. Given no output schema, the agent does not know what shape of data to expect. Additionally, there is no mention of how to use the 'settings' parameter (key-value pairs) in the description, although the schema covers it. The description should provide more complete guidance for a tool with multiple actions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all parameters, so the baseline is 3. The description adds value by listing the actions and categories, which correspond to the 'action' and 'category' parameters, but it does not add meaning beyond what the schema already provides. The mapping is clear but not enhanced.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it manages Unity Project Settings, lists the exact actions (get, set, list_categories), and enumerates the supported categories (player, quality, etc.). It distinguishes itself from sibling tools which are more specific to individual features (e.g., physics, animation) by covering a broad umbrella of settings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists the actions and categories, so an agent knows what operations are possible. However, it does not explicitly state when to use this tool versus more specific tools (e.g., for physics settings, should one use project_settings or the physics tool?). It provides clear context but lacks explicit exclusion criteria or alternative recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recompile_scriptsB

Recompiles all scripts in the Unity project.

ParametersJSON Schema
NameRequiredDescriptionDefault
logsLimitNoMaximum number of compilation logs to return
returnWithLogsNoWhether to return compilation logs

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, signaling a write operation. The description confirms it triggers recompilation, but does not elaborate on potential side effects like blocking, error messages, or changes to the project state. It adds minimal value beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that is concise and front-loaded. However, it could be slightly more informative without sacrificing brevity, e.g., by mentioning that recompilation may take time.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (2 optional parameters, no output schema), the description covers the basic action. However, it lacks important context such as the duration of recompilation, that it forces a full rebuild, or how logs are structured when returned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters 'logsLimit' and 'returnWithLogs' are already documented. The description adds no additional meaning or context for these parameters, meeting the baseline but not exceeding it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the verb 'Recompiles' and the resource 'all scripts in the Unity project', clearly identifying the tool's action and scope. It distinguishes from sibling tools like 'execute_code' or 'execute_menu_item' by directly addressing script recompilation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, expected outcomes, or scenarios where other tools (e.g., 'execute_menu_item') might be more appropriate for triggering compilation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

restart_serverA

Rebuild TypeScript and restart the MCP server to pick up code changes. Use after modifying TS tools, C# handlers, or prompts. The server will exit and be auto-restarted by the host (Claude Code).

ParametersJSON Schema
NameRequiredDescriptionDefault
rebuildNoRun npm build before restarting (default: true)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but description discloses that server will exit and be auto-restarted by the host. This is key behavioral information. Could mention potential brief downtime, but adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler. Every sentence adds value: purpose, usage context, side effect. Front-loaded with most critical info.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple restart tool with one optional parameter and no output schema, description covers purpose, when to use, and behavioral effect. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (one boolean parameter). Description adds no extra meaning beyond 'Run npm build before restarting (default: true)', which matches schema description. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb (rebuild and restart), resource (MCP server), and purpose (pick up code changes). Distinct from sibling Unity tools, which are all scene/asset/editor operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use after modifying TS tools, C# handlers, or prompts.' This provides clear context. Doesn't mention when not to use or alternatives, but siblings are unrelated so it's sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_testsC

Runs Unity's Test Runner tests

ParametersJSON Schema
NameRequiredDescriptionDefault
testModeNoThe test mode to run (EditMode or PlayMode) - defaults to EditMode (optional)EditMode
testFilterNoThe specific test filter to run (e.g. specific test name or class name, must include namespace) (optional)
returnWithLogsNoWhether to return the test logs in the results (optional)
returnOnlyFailuresNoWhether to show only failed tests in the results (optional)

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageNoHuman-readable summary or error
resultsNoPer-test results
successNoWhether the test run completed
failCountNoNumber of failing tests
passCountNoNumber of passing tests
skipCountNoNumber of skipped tests
testCountNoTotal tests executed

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, so the tool is expected to mutate state. The description 'runs tests' implies execution but provides no additional behavioral context such as side effects (modification of project files), resource consumption, or output format. Beyond the annotations, the description adds minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, making it very concise and front-loaded. It contains no unnecessary words. However, it could be slightly longer to include key context (e.g., test modes) without losing conciseness. The sentence earns its place but could be more informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (4 optional parameters, output schema exists), the description is too sparse. It does not mention that it runs in the Unity Editor, requires a test setup, or that logs and failure details are configurable via parameters. The output schema exists but the description doesn't complement it. A more complete description would help agents understand the tool's scope and usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each of the 4 parameters (testMode, testFilter, returnWithLogs, returnOnlyFailures) having a functional description. The tool description repeats no parameter details and adds no extra meaning. According to rubric, baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Runs Unity's Test Runner tests' clearly states the verb ('runs') and the resource ('Unity's Test Runner tests'), making the basic function understandable. However, it does not distinguish this tool from sibling tools like 'playtest' or 'execute_code', which could also involve running tests. The description lacks specificity about test modes or filters, which are covered only in the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. There is no mention of when to use it (e.g., for unit tests vs. integration tests), when not to use it, or any prerequisites. Siblings like 'playtest' exist, but the description offers no comparison or selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scriptable_objectB

Manage Unity ScriptableObjects. Actions:

  • create: Create a new ScriptableObject asset

  • get_properties: Inspect all serialized properties

  • set_property: Set a serialized property value

  • list: List ScriptableObjects in a folder

  • find_by_type: Find all assets of a specific SO type

  • duplicate: Duplicate a ScriptableObject asset

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesScriptableObject action to perform
folderNoFolder to search in (default: Assets)
destPathNoDestination path for duplicate
typeNameNoFull or short type name of the ScriptableObject class
assetPathNoPath to the ScriptableObject asset
propertyNameNoName of the serialized property
propertyValueNoValue to set

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, and the description lists mutating actions (create, duplicate, set_property), but lacks additional behavioral details like permission requirements, side effects, or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise with a clear introductory sentence followed by a list of actions; it is efficient but could be slightly more structured (e.g., grouping actions).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers main actions but lacks comprehensive context for each action's behavior, return values, or edge cases; no output schema, so more detail would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are already documented. The description adds no extra semantics or examples beyond the schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it manages Unity ScriptableObjects and lists specific actions (create, get_properties, etc.), distinguishing it from generic asset or script management tools like 'manage_asset' or 'script_management'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives; it does not mention when not to use it or provide context for selecting among sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

script_managementB

Manages Unity scripting configuration including:

  • Scripting Define Symbols (#define directives)

  • Assembly Definitions (asmdef files)

  • Script Execution Order

  • Script compilation state Actions: get_defines, set_defines, add_define, remove_define, get_assemblies, create_assembly, get_execution_order, set_execution_order, get_compilation_state

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesThe script management action to perform
defineNoSingle define symbol for add_define/remove_define
definesNoArray of define symbols for set_defines
platformNoTarget platform for define symbols (defaults to active build target)
assemblyNameNoName for the assembly definition
assemblyPathNoPath for the assembly definition file
executionOrderNoScript execution order entries
assemblySettingsNoSettings for assembly definition

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With only readOnlyHint=false in annotations, the description fails to disclose behavioral traits such as destructive side effects, permission requirements, or whether actions trigger recompilation, leaving significant gaps for safe agent decision-making.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear verb phrase, bulleted categories, and action list, but it could be more concise by avoiding redundant listing of actions already in the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 8 parameters, no output schema, and diverse actions, the description lacks critical context such as return format for get actions, required parameter combinations per action, and behavioral nuances like platform defaults.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions, so the description adds no additional meaning beyond the schema. Baseline of 3 is appropriate as it neither harms nor helps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states it manages Unity scripting configuration and lists specific categories (define symbols, assembly definitions, execution order, compilation state) and actions, clearly distinguishing from sibling tools like execute_code and recompile_scripts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through listing actions but does not provide explicit when-to-use or when-not-to-use guidance, nor does it differentiate from similar tools like recompile_scripts or scriptable_object.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_unity_knowledgeA
Read-onlyIdempotent

Search the Unity knowledge base for relevant documentation and assets.

Args: query: The search query string to find relevant Unity knowledge. filter_source: Optional filter to limit results by source type. Valid values: 'api', 'manual', 'local_asset', 'reach_ui'. If not provided, searches all sources.

Returns: Formatted string containing relevant search results with source info.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe search query string to find relevant Unity knowledge
filter_sourceNoOptional filter to limit results by source type. Valid values: 'api', 'manual', 'local_asset', 'reach_ui'

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description adds that the tool returns a formatted string with source info, providing behavioral context beyond the annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with a clear purpose sentence followed by structured Args and Returns sections. No unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the function, parameters, and return format. Given the presence of annotations and the absence of an output schema, it provides sufficient context. Minor improvement could be noting result ordering or pagination, but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions identical to the tool description. The description adds no new meaning beyond what the schema provides, so baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches the Unity knowledge base for documentation and assets, with a specific verb and resource. It is distinct from sibling tools, which are mostly action-oriented like creating or modifying scene objects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through parameter documentation (e.g., optional filter) but does not explicitly state when to use this tool versus alternatives or when not to use it. No specific exclusions or alternative tool references are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

select_gameobjectA
Idempotent

Sets the selected GameObject in the Unity editor by path, name or instance ID

ParametersJSON Schema
NameRequiredDescriptionDefault
instanceIdNoThe instance ID of the GameObject to select
objectNameNoThe name of the GameObject to select
objectPathNoThe path or name of the GameObject to select (e.g. "Main Camera")

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate idempotentHint=true and readOnlyHint=false, so the description adds no additional behavioral context beyond confirming the mutation. The description does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, complete sentence that efficiently conveys the tool's action without unnecessary words. Perfectly front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, the description is sufficient. It lacks any mention of return value, but that is acceptable since no output schema exists and the action is inherently a set operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the parameters are fully described in the schema. The description merely echoes that selection is by path, name, or instance ID, adding no extra syntax or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sets the selected GameObject in the Unity editor using path, name, or instance ID. It is a specific verb-resource pair that distinguishes it from sibling tools like get_gameobject or delete_gameobject.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as get_gameobject or update_gameobject. The agent receives no context about prerequisites or situations where this tool should be chosen over others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_console_logB

Sends console log messages to the Unity console

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoThe type of message (info, warning, error) - defaults to info (optional)
messageYesThe message to display in the Unity console

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, matching the description's 'Sends' action. The description adds no further behavioral details (e.g., side effects, rate limits, or confirmation). With annotations already covering the write nature, a score of 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, clear sentence with no unnecessary words. Every word adds value, and it front-loads the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (no output schema, 2 params), the description is mostly complete. It captures the purpose and the schema handles parameter details. The only minor gap is the lack of explicit mention of Unity console, but it's implied by the name.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters adequately described in the schema. The tool description adds no additional meaning beyond the schema, so baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Sends' and resource 'console log messages', making the tool's purpose clear. However, it does not explicitly differentiate from sibling tools like get_console_logs, though the name and context imply it's for sending.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like get_console_logs or watch_console. The description does not mention prerequisites, typical use cases, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_render_modeB

Sets the rendering mode for the XREAL experience. VR mode renders only virtual content, AR mode overlays on passthrough, MR mode enables full mixed reality with occlusion.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesRendering mode: VR (virtual only), AR (overlay), MR (full mixed reality)
occlusionModeNoOcclusion quality modeEnvironmentDepth
backgroundTypeNoBackground rendering typePassthrough
backgroundColorNoBackground color when using solid color (hex)#000000
enableOcclusionNoEnable real-world occlusion of virtual objects (MR mode)
stereoRenderingModeNoStereo rendering mode for performanceSinglePassInstanced

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructive mutation (readOnlyHint=false). The description adds context by explaining each rendering mode's visual behavior, but does not disclose side effects on occlusion, background, or other settings when changing modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the core purpose. It is efficient with no filler, though it could be slightly more structured (e.g., bullet points) for readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 6 parameters (1 required), the description covers only the mode parameter. The interplay of occlusionMode, backgroundType, etc., is not explained. Schema covers definitions, but behavioral interactions are missing, leaving gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with good enum descriptions. The description adds no new parameter details beyond the main 'mode' enumeration; it merely restates what the schema already provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sets rendering mode for XREAL and briefly explains VR, AR, MR. It distinguishes the main function from sibling tools like configure_passthrough or set_tracking_mode, but does not explicitly differentiate itself beyond the mode focus.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool vs alternatives, nor any prerequisites or exclusions. It only states the modes, leaving the agent to infer context from sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_tracking_modeA

Sets the tracking mode for the XREAL glasses. 0DoF provides rotation only, 3DoF adds positional tracking relative to start, and 6DoF provides full positional and rotational tracking.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesTracking mode to set
trackingOriginNoTracking origin reference pointDevice
recenterOnSwitchNoRecenter the tracking origin when switching modes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate write operation (readOnlyHint=false) and dynamic environment (openWorldHint=true). Description confirms mutation but adds no additional behavioral context beyond annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words. First sentence states purpose, second explains modes. Efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the primary purpose and mode meanings. No output schema exists, but for a setter this is acceptable. Could mention return values or side effects, but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%. Description adds meaning by explaining the implications of each tracking mode (e.g., 'rotation only'), which goes beyond the schema's enum descriptions. However, 'trackingOrigin' and 'recenterOnSwitch' are not explained in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Sets' and the resource 'tracking mode for the XREAL glasses', and explains each mode value. It distinguishes from sibling tools like 'set_render_mode' by focusing on tracking modes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains what each mode does (0DoF, 3DoF, 6DoF) but does not explicitly state when to use this tool versus alternatives or mention prerequisites like device connection. The guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setup_xreal_projectA

Sets up a Unity project for XREAL One Pro development. Configures Android build target, XR Plugin Management, and imports NRSDK. This is the first step for any new XREAL mixed reality project.

ParametersJSON Schema
NameRequiredDescriptionDefault
companyNameNoOptional company name for the bundle identifier
packageNameNoCustom package name (e.g., com.company.app). If not provided, will be generated from company and project names
projectNameNoOptional project name to set in Player Settings
nrsdkVersionNoNRSDK version to import (default: latest). Examples: "2.2.0", "2.1.0"
targetDevicesNoTarget XREAL devices to support
enableHandTrackingNoEnable hand tracking support in NRSDK configuration
enableImageTrackingNoEnable image tracking support
enablePlaneDetectionNoEnable plane detection for spatial mapping

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false, so the description's job is to add behavioral context. It does so by listing the configuration steps (Android build target, XR Plugin Management, NRSDK import). However, it does not mention whether the tool overwrites existing settings or is idempotent, but this is acceptable for a setup tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no wasted words. The key action and usage are front-loaded. Every sentence adds necessary context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 8 optional parameters and no output schema, the description explains the overall purpose and steps. It could benefit from mentioning the result (e.g., modifies the current project), but it is still reasonably complete for a setup tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with each parameter having a description, so baseline is 3. The description does not add parameter-specific semantics beyond the schema; it names the high-level steps but does not map them to the individual parameters. No extra value beyond the schema is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Sets up'), identifies the resource ('Unity project for XREAL One Pro development'), and lists key actions (configure Android build, XR Plugin Management, import NRSDK). It distinguishes itself from siblings like import_nrsdk by being a broader setup tool and explicitly stating it's the first step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states 'This is the first step for any new XREAL mixed reality project,' which tells the agent when to use it. It does not list when not to use or name alternatives, but the context is clear enough given the sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setup_xr_interactionB

Sets up the XR Interaction Toolkit for XREAL development. Configures interaction systems, input actions, and default interactors for hand-based or controller-based interaction.

ParametersJSON Schema
NameRequiredDescriptionDefault
installXRITNoInstall XR Interaction Toolkit package if not present
xritVersionNoSpecific XR Interaction Toolkit version (defaults to latest compatible)
enableSnapTurnNoEnable snap turn rotation
hapticFeedbackNoEnable haptic feedback for interactions
interactionModeNoPrimary interaction modeHandTracking
createInputActionsNoCreate default XR input action mappings
locomotionProviderNoLocomotion system to configureNone
enableTeleportationNoEnable teleportation locomotion system
setupDefaultInteractorsNoAdd default ray and direct interactors

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description implies state changes (installation, configuration) matching the readOnlyHint=false annotation. However, it does not detail potential side effects like overwriting existing configurations or dependency requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, clear and free of fluff. Could benefit from bullet points but remains efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Does not explain return values, success indicators, or expected outcomes. Missing context about how this tool relates to sibling tools like setup_xreal_project or enable_hand_tracking.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with each parameter described. The tool's description adds no further insight into parameter usage or relationships beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sets up the XR Interaction Toolkit and configures interaction systems, input actions, and interactors. It is specific about the resource and actions, though it does not explicitly differentiate from sibling tools like configure_hand_gestures.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, such as configure_hand_gestures or enable_hand_tracking. No prerequisites or context about the setup order are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

spriteA

Manage Unity Sprites and SpriteAtlases. Actions:

  • get_info: Get sprite import settings and sub-sprites

  • list: List sprite assets in a folder

  • set_import_settings: Configure texture type, pixels per unit, filter, compression

  • slice: Slice a sprite sheet into multiple sprites (grid mode)

  • get_sprite_renderers: List all SpriteRenderer components in scene

  • set_sprite: Set the sprite on a SpriteRenderer

  • get_atlases: List SpriteAtlas assets

  • create_atlas: Create a new SpriteAtlas

  • add_to_atlas: Add sprites/folders to a SpriteAtlas

  • pack_atlas: Pack a SpriteAtlas for the active build target

ParametersJSON Schema
NameRequiredDescriptionDefault
aNoAlpha (0-1)
bNoBlue (0-1)
gNoGreen (0-1)
rNoRed (0-1)
actionYesSprite action to perform
folderNoFolder to search (default: Assets)
offsetXNoGrid offset X
offsetYNoGrid offset Y
paddingNoAtlas padding in pixels
objectIdNoInstance ID of a GameObject
paddingXNoGrid padding X
paddingYNoGrid padding Y
assetPathNoPath to the sprite/texture asset
atlasPathNoPath to a SpriteAtlas asset
cellWidthNoGrid cell width in pixels
sliceModeNoSlice mode: grid
cellHeightNoGrid cell height in pixels
filterModeNopoint, bilinear, or trilinear
objectPathNoHierarchy path of a GameObject with SpriteRenderer
spriteModeNosingle, multiple, or polygon
spritePathNoPath to a sprite asset to assign
compressionNonone, low, normal, or high
spritePathsNoComma-separated sprite paths to add to atlas
textureTypeNosprite or default
pixelsPerUnitNoPixels per unit
enableRotationNoAllow rotation in atlas packing
maxTextureSizeNoMax texture size (e.g. 1024, 2048)
enableTightPackingNoEnable tight packing

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description lists both read actions (get_info, list) and write actions (set_import_settings, create_atlas, etc.), which aligns with the annotation readOnlyHint=false. However, it does not disclose potential side effects (e.g., destructive slicing, permanent atlas packing) or prerequisites (e.g., asset existence). The behavioral traits are implied but not explicitly stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear opening sentence followed by a bulleted list of actions. It is front-loaded with the purpose. While the list is long, it efficiently conveys all capabilities without unnecessary words. A minor improvement would be to group read and write actions, but overall it is appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (28 parameters, no output schema, 10 actions), the description is incomplete. It does not explain return values for any action, nor does it provide workflow examples or context on when each action is appropriate. The list of actions alone is insufficient for an agent to understand usage patterns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage (all 28 parameters have descriptions), so the schema alone provides parameter meaning. The tool description adds no extra parameter details—it only lists actions, which correspond to the action enum already in the schema. Thus it meets the baseline expectation but adds no additional value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Manage Unity Sprites and SpriteAtlases.' It then lists ten specific actions covering read and write operations, which leaves no ambiguity about what the tool does. It distinguishes itself from sibling tools by being the only sprite-focused tool among many.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly defines usage by listing all sprite-related actions, suggesting the tool is for any sprite or atlas operation. However, it provides no explicit guidance on when to use this tool versus alternatives like 'asset_import' for texture imports, nor does it specify when not to use it (e.g., for non-sprite textures).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

terrainA

Manage Unity Terrains. Actions:

  • create: Create a new terrain with specified size and resolution

  • get_info: Get terrain details (size, resolution, layers, trees, details)

  • set_height: Set terrain height at a world position with brush radius

  • get_height: Sample terrain height at a world position

  • flatten: Flatten entire terrain to a uniform height

  • set_detail: Paint detail/grass density at a position

  • paint_texture: Paint a terrain layer/texture at a position

  • add_tree: Add a tree instance at a normalized (0-1) position

  • get_layers: List all terrain layers (textures)

  • add_layer: Add a new terrain layer from a texture asset

  • set_settings: Modify terrain rendering settings

  • list: List all terrains in the scene

ParametersJSON Schema
NameRequiredDescriptionDefault
xNoWorld X position or detail/alphamap X coordinate
zNoWorld Z position or detail/alphamap Z coordinate
layerNoTerrain layer index or detail layer index
scaleNoTree scale
widthNoTerrain width (create)
actionYesTerrain action to perform
heightNoTerrain height / max elevation (create/set_height/flatten)
lengthNoTerrain length (create)
radiusNoBrush radius
densityNoDetail density value
strengthNoPaint strength 0-1
tileSizeNoTexture tile size for add_layer
assetPathNoPath to save terrain data asset
layerPathNoPath to save the TerrainLayer asset
terrainIdNoInstance ID of the terrain
terrainNameNoName of the terrain GameObject
texturePathNoTexture asset path for add_layer
treeDistanceNoMax tree rendering distance
drawHeightmapNoEnable/disable heightmap rendering
prototypeIndexNoTree prototype index
basemapDistanceNoDistance for basemap rendering
drawTreesAndFoliageNoEnable/disable trees and foliage
heightmapPixelErrorNoHeightmap pixel error for LOD
heightmapResolutionNoHeightmap resolution (create, power of 2 + 1)
detailObjectDistanceNoMax detail object distance
treeBillboardDistanceNoDistance to switch trees to billboards

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Each action has a one-line description that indicates its effect (e.g., 'flatten' says it flattens to uniform height). The readOnlyHint annotation is false, consistent with the mutating actions. However, deeper behavioral details (e.g., performance, undo support) are absent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: a single introductory line followed by a bullet list of actions. Every sentence provides useful information with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (26 parameters, 12 actions), the description lacks explicit mapping of parameters to actions. The schema partially compensates by noting which action a parameter applies to (e.g., 'width (create)'), but the description could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema describes each parameter. The description adds no additional parameter semantics; it only lists actions. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Manage Unity Terrains' and lists 12 specific actions, each with a brief explanation. It distinguishes this tool from siblings as the only terrain-related tool among many.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives, but since no sibling tool handles terrain, usage is implied. There is no guidance on which action to choose or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tilemapA

Manage Unity Tilemaps for 2D level design. Actions:

  • create: Create a new Tilemap under a Grid (creates Grid if needed)

  • get_info: Get tilemap details (bounds, tile count, orientation)

  • set_tile: Place a tile at a cell position

  • erase_tile: Remove a tile at a cell position

  • fill_area: Fill a rectangular area with a tile

  • clear: Remove all tiles from a tilemap

  • get_tile: Inspect what tile is at a cell position

  • get_bounds: Get the used cell bounds

  • list: List all tilemaps in the scene

  • list_tiles: List TileBase assets in a folder

  • create_tile: Create a Tile asset from a sprite

  • set_color: Set the color tint of a tile at a position

  • compress_bounds: Compress tilemap bounds to remove empty space

ParametersJSON Schema
NameRequiredDescriptionDefault
aNoAlpha color component (0-1)
bNoBlue color component (0-1)
gNoGreen color component (0-1)
rNoRed color component (0-1)
xNoCell X position
yNoCell Y position
endXNoFill area end X
endYNoFill area end Y
nameNoName for new tilemap (create)
colorNoColor JSON for create_tile: {"r":1,"g":1,"b":1,"a":1}
actionYesTilemap action to perform
folderNoFolder to search for tiles (default: Assets)
startXNoFill area start X
startYNoFill area start Y
tilePathNoAsset path to a TileBase or Tile
tilemapIdNoInstance ID of the Tilemap
parentPathNoParent Grid path (create)
spritePathNoSprite path for create_tile
tilemapNameNoName of the Tilemap GameObject
sortingOrderNoSorting order (create)

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, and the description lists both read and write actions, disclosing mutability. No contradictions with annotations. However, it does not explicitly state which actions are destructive or their side effects beyond the brief action descriptions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description opens with a clear one-line purpose, followed by a structured list of actions. While the list is somewhat lengthy, it is well-organized and front-loaded. Each action description is concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (20 parameters, 13 actions) and lack of output schema, the description provides only high-level action summaries. It does not specify parameter requirements per action or return values, leaving gaps for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so the baseline is 3. The description adds context by grouping parameters under actions, but does not explain parameter relationships or provide additional meaning beyond the schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Manage Unity Tilemaps for 2D level design' and enumerates 13 specific actions, making the tool's purpose unambiguous. It distinguishes itself from sibling tools, none of which target tilemaps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for tilemap operations but provides no explicit guidance on when to use this tool versus alternatives, nor any exclusion criteria. The sibling list is diverse, so the tool is clearly specialized, but no usage context is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

undo_redoA

Controls Unity's Undo/Redo system. Actions:

  • undo: Perform undo operation

  • redo: Perform redo operation

  • get_history: Get undo/redo history stack

  • clear: Clear all undo history

  • begin_group: Begin an undo group (combine multiple operations)

  • end_group: End an undo group

  • set_group_name: Set name for current undo group

  • record_object: Record object state for undo

  • flush: Flush all recorded operations

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesUndo/Redo action to perform
objectIdNoInstance ID of object to record
groupNameNoName for undo group
objectPathNoPath of object to record
historyLimitNoMaximum number of history items to return (default: 20)

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description enumerates actions that modify state (undo, redo, clear, record_object, flush) and a read-only action (get_history), going beyond the annotation readOnlyHint=false. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately sized with a clear bulleted list of actions. It could be more concise by grouping similar actions, but it is not overly verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has multiple actions and no output schema, the description covers each action's purpose adequately. It provides enough context for an agent to understand the tool's capabilities.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema adequately describes parameters. The description adds no additional meaning beyond the action list. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool controls Unity's Undo/Redo system, listing all supported actions. This verb+resource description distinguishes it from sibling tools like animation or play_mode.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of when to prefer undo_redo over other tools that might affect scene state.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unity_hubA

Controls Unity Hub to create projects, manage installations, and open projects. This tool works INDEPENDENTLY of the Unity Editor connection. Editor installs use the Unity Hub CLI; project creation and template listing use the installed Editor and its bundled templates directly (the Hub CLI has no create/templates subcommands).

Actions:

  • create_project: Create a new Unity project

  • open_project: Open an existing project in Unity Editor

  • list_projects: List recent projects from Unity Hub

  • list_installations: List installed Unity Editor versions

  • install_editor: Install a Unity Editor version

  • add_module: Add a module to an installed editor (Android, iOS, WebGL, etc.)

  • list_templates: List available project templates

  • get_hub_path: Get the Unity Hub installation path

Note: Unity Hub must be installed. Default paths:

  • Windows: C:\Program Files\Unity Hub\Unity Hub.exe

  • macOS: /Applications/Unity Hub.app/Contents/MacOS/Unity Hub

  • Linux: ~/Unity Hub/UnityHub.AppImage

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesUnity Hub action to perform
hubPathNoCustom path to Unity Hub executable (auto-detected if not provided)
modulesNoModules to install with editor or add to existing
templateNoProject template (e.g., "com.unity.template.3d", "com.unity.template.urp-blank")
projectNameNoName for the new project (used with projectPath parent directory)
projectPathNoFull path for the new/existing project
waitForExitNoWait for Unity Editor to exit after opening project (default: false)
editorVersionNoUnity Editor version (e.g., "2022.3.20f1", "6000.0.0f1")

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false and openWorldHint=true. The description adds behavioral context: it states that editor installs use the Hub CLI while project creation uses the installed Editor directly. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-organized with a clear overview, bullet-list of actions, and default paths note. It is concise without unnecessary repetition, though slightly verbose in listing actions that are already in the schema enum.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 parameters, multiple actions) and lack of output schema, the description covers the high-level functionality and action types. However, it does not describe return values or error conditions, which would enhance completeness for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with all 8 parameters described. The description adds marginal value beyond the schema, such as noting that projectPath is used with projectName for project creation, but does not provide additional semantic depth for most parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool controls Unity Hub for project creation, installation management, and project opening. It lists all 8 actions explicitly, distinguishing it from sibling tools like editor_control which deal with the Unity Editor itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description explains that the tool works independently of the Unity Editor connection and notes default installation paths. However, it does not explicitly state when to use this tool versus alternatives like editor_control or file_operations, though the context makes it reasonably clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_componentA

Updates component fields on a GameObject or adds it to the GameObject if it does not contain the component

ParametersJSON Schema
NameRequiredDescriptionDefault
instanceIdNoThe instance ID of the GameObject to update
objectPathNoThe path of the GameObject in the hierarchy to update (alternative to instanceId)
componentDataNoAn object containing the fields to update on the component (optional)
componentNameYesThe name of the component to update or add

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate mutation (readOnlyHint=false). Description adds value by explaining the add-if-missing behavior, which is a key behavioral trait not inferred from annotations. Discloses that the tool may create a component, which is important for agent understanding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that is concise, informative, and front-loaded. No unnecessary words. Every part contributes to understanding the tool's function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and description does not hint at return value (e.g., success/error, updated component). With a nested object parameter (componentData), more guidance on expected structure would improve completeness. Overall adequate for basic use but leaves some gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all 4 parameters. Description does not add detailed semantics beyond schema, but effectively summarizes the overall purpose. For componentData, schema defines it as an object, but description offers no additional guidance on structure or constraints. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it updates component fields or adds the component if missing. Specific verb 'updates' and resource 'component on a GameObject' with clear dual behavior. Distinguishes from sibling tools like update_gameobject that handle other properties.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like update_gameobject or delete_gameobject. Does not indicate scenarios where adding is preferred over updating, nor how to choose between instanceId and objectPath. Usage is implied but not clearly delineated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_gameobjectA

Updates properties of a GameObject in the Unity scene by its instance ID or path. If the GameObject does not exist at the specified path, it will be created.

ParametersJSON Schema
NameRequiredDescriptionDefault
instanceIdNoThe instance ID of the GameObject to update
objectPathNoThe path of the GameObject in the hierarchy to update (alternative to instanceId)
gameObjectDataYesAn object containing the fields to update on the GameObject (name, tag, layer, activeSelf, isStatic). If the GameObject does not exist at objectPath, it will be created.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds the creation behavior (if GameObject missing), which is good. However, it does not disclose side effects, error handling, or behavior when both instanceId and objectPath are provided. Annotations indicate non-read-only, but the description carries most of the burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no filler. The key information (verb, resource, alternative identifiers, creation behavior) is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 parameters and no output schema, the description covers basic purpose and creation nuance but omits return value, error conditions, and behavior for missing instanceId. It is adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each parameter already has a description. The description adds context about creation tied to objectPath, but does not further clarify the relationship between instanceId and objectPath or the structure of gameObjectData.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool updates GameObject properties via instance ID or path, and includes the notable creation behavior. This distinguishes it from sibling tools like get_gameobject, delete_gameobject, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool vs alternatives like get_gameobject or delete_gameobject. It does not mention prerequisites, when-not to use, or alternative approaches.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_xreal_setupA
Read-only

Validates the Unity project configuration for XREAL development. Checks NRSDK installation, Android build settings, XR Plugin Management, required permissions, and reports any issues that need to be fixed.

ParametersJSON Schema
NameRequiredDescriptionDefault
autoFixNoAttempt to automatically fix any issues found
checkNrsdkNoValidate NRSDK is properly installed
checkSceneSetupNoValidate current scene has required XREAL components
checkPermissionsNoValidate required Android permissions are set
checkAndroidSettingsNoValidate Android build configuration
checkXrPluginManagementNoValidate XR Plugin Management settings

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, and the description confirms read-only behavior by stating 'validates' and 'reports issues'. No contradictions. Description adds context about what is checked beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first states overall purpose, second enumerates checks. No redundant information. Each sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's function but does not specify the output format or what 'reports issues' means (e.g., list of strings, success/failure). Given no output schema, the description could be more explicit about return value structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with all parameters described. The description lists checks but does not add new information beyond the schema's parameter descriptions. Baseline 3 is appropriate since schema already provides full semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool validates Unity project configuration for XREAL development and lists specific checks (NRSDK, Android settings, XR Plugin Management, permissions). It distinguishes from sibling tools like setup_xreal_project or build_xreal_apk.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for checking configuration before development or deployment, but does not explicitly mention when not to use or alternative tools. However, the purpose is clear enough for an agent to infer appropriate use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

watch_consoleA
Read-only

Monitors the Unity console for new logs with filtering and waiting capabilities. Perfect for recursive iteration - wait for specific messages, errors, or compilation results. Actions:

  • wait_for_message: Block until a message matching pattern appears (with timeout)

  • wait_for_error: Block until an error occurs (with timeout)

  • wait_for_silence: Block until no new logs for specified duration

  • wait_for_compilation: Block until scripts finish compiling

  • wait_for_play_mode: Block until play mode state changes

  • get_new_logs: Get logs since last check (uses internal cursor)

  • reset_cursor: Reset the log cursor to current position

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesWatch action to perform
logTypeNoType of logs to watch (default: all)
maxLogsNoMaximum number of logs to return (default: 100)
patternNoRegex pattern to match in log messages
timeoutNoMaximum time to wait in milliseconds (default: 30000, max: 300000)
targetStateNoTarget play mode state to wait for
silenceDurationNoDuration of silence to wait for in milliseconds (default: 1000)
includeStackTraceNoInclude stack traces in returned logs

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, and the description adds important behavioral details such as 'Block until' for wait actions, timeouts, and internal cursor management. This fully informs the agent about blocking behavior and statefulness.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, starts with the main purpose, and uses a bullet list for actions. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 parameters, multiple actions), the description provides a good overview of capabilities and behaviors. However, it lacks details about return value format (e.g., structure of log entries) and error handling, leaving some gaps despite no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description briefly restates actions but does not add significant semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it monitors the Unity console for new logs with filtering and waiting capabilities, listing specific actions. It distinguishes itself from sibling tools like get_console_logs by focusing on waiting and iterative log checking.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly mentions 'Perfect for recursive iteration' and lists use cases like waiting for messages, errors, or compilation results. However, it does not provide explicit when-not-to-use guidance or compare to alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

C2.9/5.0
Disambiguation2/5

With 84 tools, many have overlapping purposes, such as multiple tools for adding objects (add_asset_to_scene, create_prefab, instantiate) and multiple ways to execute code (execute_code, call_static_method). Descriptions are detailed but the high number of tools with similar functions causes confusion.

Naming Consistency2/5

Tool names follow inconsistent patterns: some use verb_noun (add_asset_to_scene), others are simple nouns (animation, debugger), and some are verb-only (execute_code). Mixing of patterns and lack of a predictable scheme reduces coherence.

Tool Count2/5

84 tools is excessively high for a single MCP server. While the server covers a broad Unity domain, the count makes navigation difficult and suggests many tools could be combined or eliminated. A more focused scope would improve usability.

Completeness3/5

The server covers many Unity areas (XR, animation, physics, terrain, etc.), but has notable gaps like missing standard UI tools (non-XR canvas, buttons) and lack of direct GameObject hierarchy management. It is comprehensive in XR but incomplete for general Unity workflows.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables AI agents to interact with Unity projects through multimodal vision, code analysis, asset management, and scene manipulation. Supports real-time Unity editor control, project search, script creation, and visual debugging through screenshots.
    33
    MIT
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI assistants to interact with Unity Editor through the Model Context Protocol, allowing natural language control of Unity projects including scene manipulation, GameObject creation, component updates, package management, and test execution.
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to interact with Unity Editor projects through 68+ tools for manipulating scenes, GameObjects, components, and assets, plus live access to console logs, hierarchies, and test results.
    17
    9
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with Unity Editor, managing scenes, game objects, animations, materials, scripts, and more via natural language commands.
    1
    MIT

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/joel-wehr/unity-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server