Skip to main content
Glama

Inspect Model

inspect
Read-only

Use this when you need to read facts about a model. One reader, selected by of:

  • 'assembly' — physical assembly inventory (parts, bboxes, connectors, mates, disconnected solids).

  • 'robot' — URDF/SDFormat export preview (links, joints, planning groups, end-effectors, issues).

  • 'step' — inspect an imported STEP file: solid tree, exact bbox/volume, cylindrical holes (breached bores flagged partial; holeDetection: 'exact' | 'heuristic').

  • 'shape' — volume / surfaceArea / bbox for one feature ({ feature_id? }).

  • 'mass' — mass, centre of mass, centroidal inertia tensor (inertia6 + 3x3 inertiaMatrix), principalMoments/principalAxes, symmetry flags, and optionally the radius of gyration about an arbitrary axis ({ feature_id?, density?, gyration_axis? }); density in kg/m^3, defaults to 1000 (water).

  • 'features' — features captured by the script (kind, id, params, transforms, suppression).

  • 'assemblies' — assembly intent (assemblies, parts, connectors, joints).

  • 'topology' — canonical face names + edge count for a feature ({ feature_id? }).

  • 'edges' — edges of a shape with optional EdgeQuery ({ feature_id?, query? }); returns @kc[...] refs.

  • 'face-edges' — boundary edges of a named canonical face ({ feature_id?, face_name }).

  • 'faces' — faces of a shape with optional FaceQuery ({ feature_id?, query? }); returns @kc[...] refs.

  • 'face-labels' — user-applied labels visible in the script.

  • 'mates' — mates captured by the script.

  • 'constraints' — sketch constraints captured by the script.

  • 'part-stats' — bundled parts-catalog statistics.

  • 'bend-table' — sheet-metal bend table for a flattened pattern.

  • 'params' — declared model parameters.

  • 'part-categories' — top-level part-catalog categories available in the bundled (and configured remote) catalog.

  • 'part-families' — part families within a category ({ category? }); count + exemplar ids per family.

  • 'bom' — bill of materials ({ assembly? }): one row per distinct part (grouped by geometry/catalog identity, not name) with real instance quantity, kind ('fabricated'|'purchased'), material, density, per-unit and total mass, bbox, a fabrication process hint, catalog provenance for purchased parts, and totals; bom.* diagnostics flag rows with no density source or missing catalog vendor info instead of guessing.

  • 'section' — numeric cross-section probe of a shape: area, perimeter, loop/hole counts, 2D bbox at a plane ({ feature_id?, plane | at+axis, stack?: { from, to, count, axis? } }). stack scans evenly spaced slices and returns minAreaIndex/minAreaPosition — use it to find the neck/thinnest cross-section along an axis.

  • 'continuity' — G0/G1/G2 classification of shared edges ({ feature_id?, edges? }); position gap, normal jump, curvature difference, worst-sample XYZ.

  • 'curvature' — per-face Gaussian and mean curvature min/max/mean, inflections, spikes ({ feature_id?, faces?, spike_factor? }). All params except of are subject-specific and forwarded verbatim. Most subjects accept { file | code }. Hosted: give the file as an https:// URL, a data: URI (base64, max 25 MB) or "asset:" from request_upload (when the file is on the user's device).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
atNoof:'section' — single slice position along `axis` (mm).
ofYesWhich facts to read.
axisNoof:'section' — normal axis for `at` / `stack` (default 'z').
codeNoInline kernelCAD script source.
fileNoPath to a .kcad.ts script file. Hosted server: cannot read files from your machine — pass `code`, or `project:<slug>` for a saved project. Hosted server: pass an https:// URL, a data: URI, or "asset:<id>" from request_upload — not a path on your machine.
edgesNoof:'continuity' — optional EdgeQuery or @kc[...] ref(s) limiting which shared edges are sampled.
facesNoof:'curvature' — optional FaceQuery or @kc[...] ref(s) limiting which faces are sampled.
planeNoof:'section' — section plane. Either a cardinal name string 'xy'|'xz'|'yz', { plane: 'xy'|'xz'|'yz', offset? }, or { origin: [x,y,z], normal: [nx,ny,nz] }. Omit to use `at`+`axis`.
queryNoof:'edges'|'faces' — optional EdgeQuery/FaceQuery filter.
stackNoof:'section' — dense scan: `count` slices evenly spaced from `from` to `to` along `axis`; response reports minAreaIndex/minAreaPosition.
densityNoof:'mass' — material density in kg/m^3 (steel 7850, aluminium 2700, ABS 1050). Defaults to 1000 (water); the response echoes the value used and flags when it was defaulted.
assemblyNoof:'assembly'|'robot'|'bom' — assembly name; defaults to the first captured assembly.
categoryNoof:'part-families' — optional top-level category to filter families by.
face_nameNoof:'face-edges' — canonical face name (required for that subject).
feature_idNoof:'shape'|'mass'|'topology'|'edges'|'faces'|'face-edges'|'face-labels' — FeatureId; defaults to the last returned shape.
spike_factorNoof:'curvature' — spike sensitivity as a multiple of the face's Gaussian stddev (default 6).
gyration_axisNoof:'mass' — optional axis in shape-local mm to report the radius of gyration about. Omit for centroidal quantities only; the result is density-independent and returned in mm.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • removedOutput schema / properties
      Removed value: -{
      -  "error": {
      -    "description": "Failure message (present on failure).",
      -    "type": "string"
      -  },
      -  "errorCode": {
      -    "type": "string"
      -  },
      -  "ok": {
      -    "description": "Whether the read succeeded.",
      -    "type": "boolean"
      -  }
      -}
    • removedOutput schema / required
      Removed value: -[]
  2. Changed1 schema field changed
    • changedInput schema / properties / file / description
      Previous value: -"Path to a .kcad.ts script file. Hosted server: cannot read files from your machine — pass `code`, or `project:<slug>` for a saved project."New value: +"Path to a .kcad.ts script file. Hosted server: cannot read files from your machine — pass `code`, or `project:<slug>` for a saved project. Hosted server: pass an https:// URL, a data: URI, or \"asset:<id>\" from request_upload — not a path on your machine."
  3. Changed1 schema field changed
    • changedInput schema / properties / file / description
      Previous value: -"Path to a .kcad.ts script file."New value: +"Path to a .kcad.ts script file. Hosted server: cannot read files from your machine — pass `code`, or `project:<slug>` for a saved project."
  4. Changed12 schema fields changed
    • changedInput schema / properties / assembly / description
      Previous value: -"of:'assembly'|'robot' — assembly name; defaults to the first captured assembly."New value: +"of:'assembly'|'robot'|'bom' — assembly name; defaults to the first captured assembly."
    • addedInput schema / properties / at
      Added value: +{
      +  "description": "of:'section' — single slice position along `axis` (mm).",
      +  "type": "number"
      +}
    • addedInput schema / properties / axis
      Added value: +{
      +  "description": "of:'section' — normal axis for `at` / `stack` (default 'z').",
      +  "enum": [
      +    "x",
      +    "y",
      +    "z"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / density
      Added value: +{
      +  "description": "of:'mass' — material density in kg/m^3 (steel 7850, aluminium 2700, ABS 1050). Defaults to 1000 (water); the response echoes the value used and flags when it was defaulted.",
      +  "type": "number"
      +}
    • addedInput schema / properties / edges
      Added value: +{
      +  "description": "of:'continuity' — optional EdgeQuery or @kc[...] ref(s) limiting which shared edges are sampled."
      +}
    • addedInput schema / properties / faces
      Added value: +{
      +  "description": "of:'curvature' — optional FaceQuery or @kc[...] ref(s) limiting which faces are sampled."
      +}
    • changedInput schema / properties / feature_id / description
      Previous value: -"of:'shape'|'topology'|'edges'|'faces'|'face-edges'|'face-labels' — FeatureId; defaults to the last returned shape."New value: +"of:'shape'|'mass'|'topology'|'edges'|'faces'|'face-edges'|'face-labels' — FeatureId; defaults to the last returned shape."
    • addedInput schema / properties / gyration_axis
      Added value: +{
      +  "description": "of:'mass' — optional axis in shape-local mm to report the radius of gyration about. Omit for centroidal quantities only; the result is density-independent and returned in mm.",
      +  "properties": {
      +    "direction": {
      +      "description": "Axis direction; normalised internally, so it need not be a unit vector.",
      +      "items": {
      +        "type": "number"
      +      },
      +      "maxItems": 3,
      +      "minItems": 3,
      +      "type": "array"
      +    },
      +    "origin": {
      +      "description": "A point on the axis, shape-local mm.",
      +      "items": {
      +        "type": "number"
      +      },
      +      "maxItems": 3,
      +      "minItems": 3,
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "origin",
      +    "direction"
      +  ],
      +  "type": "object"
      +}
    • changedInput schema / properties / of / enum
      Previous value: -[
      -  "assembly",
      -  "robot",
      -  "step",
      -  "shape",
      -  "features",
      -  "assemblies",
      -  "topology",
      -  "edges",
      -  "face-edges",
      -  "faces",
      -  "face-labels",
      -  "mates",
      -  "constraints",
      -  "part-stats",
      -  "bend-table",
      -  "params",
      -  "part-categories",
      -  "part-families"
      -]New value: +[
      +  "assembly",
      +  "robot",
      +  "step",
      +  "shape",
      +  "mass",
      +  "features",
      +  "assemblies",
      +  "topology",
      +  "edges",
      +  "face-edges",
      +  "faces",
      +  "face-labels",
      +  "mates",
      +  "constraints",
      +  "part-stats",
      +  "bend-table",
      +  "params",
      +  "part-categories",
      +  "part-families",
      +  "bom",
      +  "section",
      +  "continuity",
      +  "curvature"
      +]
    • addedInput schema / properties / plane
      Added value: +{
      +  "description": "of:'section' — section plane. Either a cardinal name string 'xy'|'xz'|'yz', { plane: 'xy'|'xz'|'yz', offset? }, or { origin: [x,y,z], normal: [nx,ny,nz] }. Omit to use `at`+`axis`.",
      +  "type": [
      +    "string",
      +    "object"
      +  ]
      +}
    • addedInput schema / properties / spike_factor
      Added value: +{
      +  "description": "of:'curvature' — spike sensitivity as a multiple of the face's Gaussian stddev (default 6).",
      +  "type": "number"
      +}
    • addedInput schema / properties / stack
      Added value: +{
      +  "description": "of:'section' — dense scan: `count` slices evenly spaced from `from` to `to` along `axis`; response reports minAreaIndex/minAreaPosition.",
      +  "properties": {
      +    "axis": {
      +      "description": "Scan axis (default 'z').",
      +      "enum": [
      +        "x",
      +        "y",
      +        "z"
      +      ],
      +      "type": "string"
      +    },
      +    "count": {
      +      "description": "Number of evenly spaced slices (>= 1).",
      +      "type": "integer"
      +    },
      +    "from": {
      +      "description": "Start position along the axis (mm).",
      +      "type": "number"
      +    },
      +    "to": {
      +      "description": "End position along the axis (mm).",
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "from",
      +    "to",
      +    "count"
      +  ],
      +  "type": "object"
      +}
  5. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "error": {
      +      "description": "Failure message (present on failure).",
      +      "type": "string"
      +    },
      +    "errorCode": {
      +      "type": "string"
      +    },
      +    "ok": {
      +      "description": "Whether the read succeeded.",
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [],
      +  "type": "object"
      +}
  6. Added

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.