Skip to main content
Glama

compare_prims

Compare two USD prims or two variants side by side to inspect mesh counts, bounds, and materials with clear deltas. Use it to spot scene differences or variant changes quickly.

Instructions

Compare two prims or two variants: mesh counts, bounds, materials.

    Two modes:
    1. Prim comparison: provide prim_path_a and prim_path_b
    2. Variant comparison: provide prim_path, variant_set, variant_a, variant_b

    Returns side-by-side stats with deltas. Properly clears BBoxCache between
    variant switches to avoid stale data.
    

Input Schema

NameRequiredDescriptionDefault
prim_pathNoTwo variants: the prim that has them
variant_aNoTwo variants: the first
variant_bNoTwo variants: the second
prim_path_aNoTwo prims: the first
prim_path_bNoTwo prims: the second
variant_setNoTwo variants: their variant set

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.2

TDQS

A4.3/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, and the description supplies the missing context: it explains it clears BBoxCache between variant switches to avoid stale data, which justifies the non-read-only flag and warns about a correctness pitfall. It also states the return shape (side-by-side stats with deltas). It does not describe cost/rate behavior, so not a 5.

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?

Front-loaded with the purpose, then a clean numbered mode list, then return/behavior notes. Dense and mostly waste-free; the BBoxCache sentence is an implementation detail but earns its place as a correctness signal.

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 an output schema present, the description needn't detail return values, and it still summarizes them as side-by-side stats with deltas. For a six-param, two-mode tool this is nearly complete; only the reason readOnlyHint is false (full side-effect scope) and default-empty-string handling are unstated.

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%, so the baseline is 3, but the description adds the crucial grouping semantics: which parameters are mutually exclusive per mode and that all six are optional with mode determining which to supply. That is meaning beyond the per-field 'the first'/'the second' docs, though it does not address defaults or empty-string behavior.

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?

States a specific verb (compare) plus the exact resources (two prims or two variants) and the dimensions compared (mesh counts, bounds, materials). This clearly separates it from siblings like get_mesh_stats or get_prim_bounds, which inspect a single prim.

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 enumerates two modes and the parameter combinations that select each (prim_path_a/prim_path_b vs prim_path/variant_set/variant_a/variant_b), which is exactly the guidance an agent needs to pick a mode. It stops short of naming when to prefer a sibling tool (e.g. get_mesh_stats for a single prim) or any exclusions.

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