Skip to main content
Glama
ottonic

cad-mcp-server

by ottonic

Find Model Entities

find_entities
Read-onlyIdempotent

Locate faces, edges, vertices, or bodies in a revision-bound STEP artifact with area, radius, and type filters, returning entity IDs needed for measurements. Use before measure.

Instructions

Find faces, edges, vertices, or solid bodies in the revision-bound artifact returned by inspect, optionally scoped to an assembly component_name. Use this before measure, because every measurement names entity IDs rather than coordinates, and follow pagination until has_more is false whenever a count or a minimum matters. Faces support surface_type, area, and radius filters (e.g. { surface_type: "cylinder", min_radius: 2 }); edges support curve_type, length, and radius; vertices return coordinates and bodies return volume. IDs are producer- and revision-scoped: they are valid only for this server and only for the artifact revision that returned them, so never reuse them after the file changes or in another tool. Occurrence IDs distinguish repeated component instances. distance takes sources/targets; every other measure kind takes entity_ids, and cad://help lists the required fields for each kind.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum entities to return in this page (default 50).
offsetNoEntities to skip; follow pagination.has_more to page.
artifactYesRevision-bound STEP reference from inspect (uri + sha256 revision). The revision must still match the file on disk.
max_areaNoFaces only: maximum face area in mm².
min_areaNoFaces only: minimum face area in mm².
curve_typeNoEdges only: keep edges of this curve type.
entity_idsNoOptional explicit ids to return; each must match entity_type (e.g. ["face:3"]).
max_lengthNoEdges only: maximum edge length in mm.
max_radiusNoFaces/edges only: maximum radius in mm.
min_lengthNoEdges only: minimum edge length in mm.
min_radiusNoFaces/edges only: minimum radius in mm.
entity_typeYesEntity category to search.
surface_typeNoFaces only: keep faces of this surface type.
component_nameNoOptional component scope from inspect.structure.component_occurrences; use the base name for all repeated instances or the full name#instance ID for one occurrence.

Output Schema

NameRequiredDescriptionDefault
queryYes
unitsYes
artifactYes
entitiesYes
unit_noteNo
paginationYes
bounds_methodNo
coordinate_frameYes
entity_id_schemeYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.8.1

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations, the description discloses revision-bound ID validity, producer/server scoping, pagination behavior, occurrence ID semantics, and the distinction between distance and other measure inputs. These are important behavioral constraints that are not captured by readOnlyHint, idempotentHint, or destructiveHint.

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 dense but generally front-loaded, starting with what the tool finds and when to use it. Most sentences earn their place, though the final measure-related guidance is tangential enough to keep it from being maximally concise.

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 14 parameters, nested artifact object, output schema, and annotations, the description provides enough context to call the tool correctly: it covers filters, pagination, revision binding, component scoping, and downstream use by measure. No critical agent-facing behavior appears missing.

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 schema already documents all 14 parameters. The description adds useful semantic context by explaining face and edge filter combinations, giving an example such as { surface_type: "cylinder", min_radius: 2 }, and clarifying component_name occurrence scoping.

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 states a specific verb and resource: find faces, edges, vertices, or solid bodies in the revision-bound artifact returned by inspect. It also distinguishes the tool from its sibling measure by explaining that find_entities should be used first because measurements name entity IDs rather than coordinates.

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?

It gives explicit usage guidance: use before measure, follow pagination until has_more is false when counts or minimums matter, scope by component_name when needed, and never reuse IDs after the file changes or in another tool. It also explains that distance measurements use sources/targets while every other measure kind uses entity_ids, and points to cad://help for required fields.

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