Skip to main content
Glama
hellstein-dev

fusion-mcp

inspect_query

Query 3D model geometry by kind and filters to locate faces, edges, vertices, or bodies without writing code; returns brief descriptions with refs for downstream edits.

Instructions

Find faces, edges, vertices or bodies by geometry instead of writing code. All given filters must match; results are brief descriptions with refs (lengths mm, areas mm²). Filters only apply to their kind (e.g. surface_type needs kind="face") — a wrong combination or min > max fails with INVALID_PARAMS.

Returns {"items": [...], "total": , "truncated": bool}. On large models narrow scope to one body.

Examples:

  • largest face: inspect_query(kind="face", sort_by="area", limit=1)

  • planar faces facing +Z: inspect_query(kind="face", surface_type="plane", normal=[0, 0, 1])

  • edges longer than 25 mm of one body: inspect_query(kind="edge", scope=[""], length_min_mm=25)

  • 10 mm holes: inspect_query(kind="face", surface_type="cylinder", radius_min_mm=4.9, radius_max_mm=5.1)

  • vertical edges: inspect_query(kind="edge", curve_type="line", direction=[0, 0, 1])

Input Schema

NameRequiredDescriptionDefault
axisNoCylinder/cone faces with this axis (either way)
kindYesWhat to return
limitNo
orderNodesc
scopeNoBodies, components, occurrences or faces to search; default: all visible bodies
normalNoPlanar faces facing this direction
sort_byNoSort key
directionNoLine edges parallel to this (either way)
curve_typeNoEdges only
within_boxNo{"min_mm": [x, y, z], "max_mm": [x, y, z]}
area_max_mm2No
area_min_mm2No
surface_typeNoFaces only
length_max_mmNo
length_min_mmNo
radius_max_mmNo
radius_min_mmNoFaces: cylinder/cone/sphere radius, torus tube; edges: arc/circle
normal_tolerance_degNoTolerance for normal/axis
direction_tolerance_degNoTolerance for direction

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations the description carries the full burden and mostly does: it discloses AND semantics for filters, kind-scoped filter applicability, that mismatched combos or min>max raise INVALID_PARAMS, units (mm, mm²), result format ('brief descriptions with refs'), truncation semantics, and the default scope of all visible bodies. It omits execution cost/volume limits beyond the scope hint and doesn't state read-only nature explicitly (only implied by 'find').

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?

Purpose is front-loaded in the first clause, followed by contract rules and then a compact example block. The examples occupy roughly half the text but each demonstrates a distinct useful filter combination, so they earn their space; a little trimming of the return-shape sentence into the examples would be tighter.

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 19-parameter, annotation-free tool with no output schema, the description supplies the error model, default scope, units, truncation behavior and return shape. Remaining gaps are secondary: relationship of returned `ref`s to other tools and the meaning of ordering/sorting options.

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?

At 63% schema coverage the description adds real meaning: the kind-gating rule for filters (surface_type needs kind="face"), the AND-of-all-filters rule, units for length/area/radius, and example pairings that show how filters combine (surface_type+normal, curve_type+direction, radius range for holes). It leaves `order`, `axis`, and `sort_by` semantics largely to the schema, so it doesn't fully close the coverage gap.

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 ('find') and resource ('faces, edges, vertices or bodies') plus the defining scope: by geometry filters. The phrase 'instead of writing code' implicitly contrasts it with execute_python, making the tool's role in the sibling set unmistakable.

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?

Gives concrete invocation patterns via five worked examples and a real usage rule ('On large models narrow `scope` to one body'), plus a constraint that filters are ANDed. It does not explicitly route the agent away from siblings like inspect_tree, inspect_describe or inspect_bounding_box, so no exclusion guidance.

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

Deploy Server

Other Tools