Skip to main content
Glama

Server Details

Fast multi-format CAD previews, geometry checks and conversion; measure and share in the workspace.

Ownership verified
Status
Healthy
Uptime
99.9% over 20 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct role: inspect_cad opens and reports on a file, convert_cad exports it, open_in_workspace moves it into the web workspace, and refresh_view_token renews the preview token. The dependency between inspect_cad and convert_cad is explicitly stated, so an agent can tell them apart easily.

Naming Consistency4/5

All names use snake_case and begin with a clear verb, which is consistent and readable. open_in_workspace is slightly longer and uses a prepositional pattern, but this is a minor deviation rather than a real inconsistency.

Tool Count5/5

Four tools is a well-scoped surface for a focused CAD inspection and conversion server. Each tool covers a distinct step in the workflow and no tool feels redundant or extraneous.

Completeness4/5

The core lifecycle is covered: upload via inspect_cad when no file is supplied, inspect, convert, and open in the workspace for deeper operations. Minor gaps exist around explicit cleanup/deletion or direct measurement tools, but the workspace link largely covers those needs.

Available Tools

4 tools
convert_cadConvert CAD fileA
Idempotent
Inspect

Convert a file opened with inspect_cad to STEP, STL or GLB and return a download link that expires in 30 minutes. STEP is a solid B-Rep when the source was read exactly; otherwise it is a triangulated STEP that CAD software cannot edit as a solid. STL and GLB are always triangulated meshes.

NameRequiredDescriptionDefault
refYesThe ref from an inspect_cad result. An upload_ticket is not a ref.
targetYesOutput format: step (CAD B-Rep or mesh STEP), stl (triangle mesh), or glb (glTF binary mesh).
step_kindNoOnly for target=step: auto picks solid B-Rep when the source was exact else mesh STEP; solid forces B-Rep; mesh forces triangulated STEP.auto
wait_secondsNoSeconds to wait for conversion to finish before returning status=running, 0–20, default 15.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare it is non-read-only, idempotent, non-destructive, and closed-world, so the bar is lower. The description nevertheless adds real value: the download link expires in 30 minutes and the fidelity of STEP output depends on whether the source was read exactly, which is the key caveat an agent needs. It does not mention the async/running status behavior, but the schema's wait_seconds covers that.

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 tight sentences: purpose and return value first, then the fidelity caveat, then the mesh-format rule. Every sentence carries distinct information and nothing is redundant.

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 no output schema, the description properly discloses the return value (download link, 30-minute expiry) and format trade-offs. The only gap is not describing the status=running polling outcome, which the schema only hints at via wait_seconds.

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 baseline is 3, but the description adds meaning beyond the schema by explaining what the solid-vs-triangulated STEP distinction actually implies for downstream editability in CAD software. That interpretive context is not in the enum 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?

States a specific verb (convert), the resource (a file opened with inspect_cad), the three supported targets, and the return value (download link). It also implicitly distinguishes itself from inspect_cad by naming it as the prerequisite 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?

"Convert a file opened with inspect_cad" gives a clear prerequisite that selects this tool over its sibling. It does not state when not to use it or what to do with an upload_ticket flow (the schema covers the latter), so it stops short of full routing guidance.

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

inspect_cadInspect CAD fileA
Read-only
Inspect

Open a CAD file on CADProps servers and report its format, size, volume, area, units and accuracy, with an interactive 3D preview. Supported: 3DM, 3DXML, 3MF, 7Z, AMF, ASM, BMP, CATDRAWING, CATPART, CATPRODUCT, CGM, DFT, DRW, DWF, DWFX, DWG, DXF, EMF, F3D, GCODE, GIF, GLB, GLTF, GZ, IAM, ICO, IDW, IFC, IFCZIP, IGES, IGS, IPT, JPG, JT, NEU, OBJ, PAR, PCX, PDF, PLT, PLY, PNG, PRC, PRT, PSM, RAR, SAB, SAT, SLDASM, SLDDRW, SLDPRT, STEP, STL, STP, SVG, TGA, TGZ, TIFF, U3D, UNV, VDA, VDAFS, VRML, WEBP, WMF, WRL, WRZ, X3D, X3DV, X_B, X_T, ZIP. Creo .prt files with supported saved triangle strips show a partial 3D preview with unverified units and no physical measurements. Other Creo .prt files, Creo .asm files and CATIA .CATProduct files show only the thumbnail saved in the file when available. Call with no file to get a one-time upload link. Files are deleted about one hour after upload.

NameRequiredDescriptionDefault
refNoReference returned by an earlier inspect_cad call.
fileNoHosted CAD file from the chat platform. Prefer this when the host already uploaded the attachment; otherwise omit and use the upload link flow.
wait_secondsNoSeconds to wait for inspect to finish before returning status=running, 0–20, default 15.
upload_ticketNoTicket from a previous upload link, after the user says the upload is done.

Output Schema

NameRequiredDescription
refNo
unitsNo
formatNo
statusNo
failureNo
area_mm2No
filenameNo
warningsNo
expires_atNo
incompleteNo
part_countNo
upload_urlNo
volume_mm3No
step_outputNo
upload_ticketNo
representationNo
bounding_box_mmNo
precision_gradeNo
precision_summaryNo
missing_componentsNo
measurement_accuracyNo
source_precision_qualifiedNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare read-only, non-destructive and closed-world, so the safety profile is covered. The description goes beyond them usefully: one-hour file retention, and the important caveat that Creo .prt files with triangle strips yield a partial preview with unverified units and no physical measurements, while other Creo and CATIA .CATProduct files show only a thumbnail. That is exactly the kind of degraded-output disclosure an agent needs; it only lacks detail on status=running behavior, which is left to 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?

Purpose and behavior lead, with the caveats and upload flow before the format list. The 70+ entry format enumeration is bulky but genuinely useful for deciding whether a file is supported, so it earns its place, though it could be trimmed or grouped to reduce scan cost.

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?

An output schema exists, so return values need no explanation, and annotations cover the safety profile. The description still supplies the retention window, the upload-link fallback, and the per-format fidelity caveats that determine whether results are trustworthy. Minor gap: nothing about the asynchronous status=running outcome beyond what the wait_seconds schema field implies.

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 four parameters (ref, file, wait_seconds, upload_ticket) are already documented, which sets the baseline at 3. The description adds only the framing that omitting a file triggers the upload-link flow; it does not explain ref reuse or the wait_seconds/running semantics beyond what the schema states.

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 and resource ('Open a CAD file on CADProps servers') and enumerates exactly what it reports: format, size, volume, area, units, accuracy, plus an interactive 3D preview. That is far more than a restatement of the title and lets an agent distinguish it from convert_cad or open_in_workspace.

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 routing guidance for the upload flow ('Call with no file to get a one-time upload link', files deleted about one hour after upload) and the schema reinforces 'prefer this when the host already uploaded the attachment'. It does not explicitly contrast against the sibling tools convert_cad or open_in_workspace, so it stops short of a 5.

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

open_in_workspaceOpen in CADProps workspaceAInspect

Return a one-time link (valid 15 minutes) that opens this file in the CADProps web workspace for measuring, sectioning and sharing. After it is opened, the chat preview and links for this file stop working.

NameRequiredDescriptionDefault
refYesThe ref from an inspect_cad result. An upload_ticket is not a ref.

TDQS

A3.8/5.0
Behavior4/5

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

With annotations declaring readOnlyHint=false and destructiveHint=false, the description supplies the crucial context the annotations omit: the link is one-time, expires in 15 minutes, and opening it disables the chat preview and links for that file. That side effect sits in tension with destructiveHint=false, but it describes invalidation of an access artifact rather than data destruction, so it reads as added disclosure rather than a 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?

Two sentences, no filler, with the return value and its expiry front-loaded and the irreversible side effect placed second where it lands hardest.

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 one-param tool with no output schema and no nested objects, the description covers the return value, its lifetime, and the consequence of use — the essentials an agent needs. It does not address what happens on a second call or whether the ref remains usable elsewhere, minor gaps given the tool's simplicity.

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% and the single 'ref' parameter is fully documented in the schema, including the explicit contrast that 'An upload_ticket is not a ref.' The description adds nothing about parameters, so the 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 states a specific verb and outcome — 'Return a one-time link ... that opens this file in the CADProps web workspace' — and scopes the resource to a single file. It is clearly distinct from inspect_cad/convert_cad/refresh_view_token in effect, though it never names a sibling to sharpen the contrast.

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?

Usage is only implied: 'for measuring, sectioning and sharing' hints at the intent, and the warning about previews/links stopping implies a point-of-no-return condition. There is no explicit when-to-use statement, no prerequisites, and no named alternative.

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

refresh_view_tokenRefresh previewA
Read-only
Inspect

Used by the CADProps preview to renew its read-only token.

NameRequiredDescriptionDefault
refYesThe ref from an inspect_cad result whose preview token should be renewed.

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, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds that the token being renewed is read-only, but says nothing about token lifetime, whether the old token is invalidated, or rate limits on renewal — notable gaps for a credential-issuing operation.

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 dense sentence with zero filler that front-loads the consumer and the action. Nothing could be removed without losing 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 one-parameter, fully documented, annotated tool with no output schema, the description covers what it does and who uses it. It could go further by explaining the renewal trigger and what a successful call returns, but the essentials are present.

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?

There is one parameter with 100% schema description coverage, and the schema explains it fully ("The ref from an inspect_cad result whose preview token should be renewed"). The description adds no parameter-level detail, which is acceptable but not value-adding, so the baseline 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 names a specific verb (renew) and resource (read-only preview token) and identifies the consumer (CADProps preview), so an agent knows exactly what the tool does. Sibling tools (convert_cad, inspect_cad, open_in_workspace) are unrelated, so no explicit differentiation is needed, though none is offered.

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?

"Used by the CADProps preview" implies the tool is scoped to that internal workflow, which indirectly signals it isn't a general-purpose call. However, it never states when the token should be renewed (e.g., on expiry/401) or what to do instead, leaving the trigger condition to inference.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updates
    • Changedconvert_cad3 fields changed
      • addedInput schema / properties / step_kind / description
        Added value: +"Only for target=step: auto picks solid B-Rep when the source was exact else mesh STEP; solid forces B-Rep; mesh forces triangulated STEP."
      • addedInput schema / properties / target / description
        Added value: +"Output format: step (CAD B-Rep or mesh STEP), stl (triangle mesh), or glb (glTF binary mesh)."
      • addedInput schema / properties / wait_seconds / description
        Added value: +"Seconds to wait for conversion to finish before returning status=running, 0–20, default 15."
    • Changedinspect_cad6 fields changed
      • addedInput schema / properties / file / description
        Added value: +"Hosted CAD file from the chat platform. Prefer this when the host already uploaded the attachment; otherwise omit and use the upload link flow."
      • addedInput schema / properties / file / properties / download_url / description
        Added value: +"HTTPS URL the connector may fetch once, e.g. https://files.oaiusercontent.com/.../part.step"
      • addedInput schema / properties / file / properties / file_id / description
        Added value: +"Host file id for the attachment, e.g. file-abc123"
      • addedInput schema / properties / file / properties / file_name / description
        Added value: +"Optional original file name with extension, e.g. bracket.sldprt"
      • addedInput schema / properties / file / properties / mime_type / description
        Added value: +"Optional MIME type from the host, e.g. application/step or model/stl"
      • addedInput schema / properties / wait_seconds / description
        Added value: +"Seconds to wait for inspect to finish before returning status=running, 0–20, default 15."
    • Changedrefresh_view_token1 field changed
      • addedInput schema / properties / ref / description
        Added value: +"The ref from an inspect_cad result whose preview token should be renewed."
  2. 1 tool update
    • Changedinspect_cad5 fields changed
      • addedOutput schema / $defs
        Added value: +{
        +  "BRepPrecisionSummary": {
        +    "properties": {
        +      "actual_pc_occurrences": {
        +        "minimum": 1,
        +        "title": "Actual Pc Occurrences",
        +        "type": "integer"
        +      },
        +      "actual_pc_samples": {
        +        "maximum": 524288,
        +        "minimum": 129,
        +        "title": "Actual Pc Samples",
        +        "type": "integer"
        +      },
        +      "certificate_sha256": {
        +        "pattern": "^[0-9a-f]{64}$",
        +        "title": "Certificate Sha256",
        +        "type": "string"
        +      },
        +      "geometry_error_limit_mm": {
        +        "const": 0.01,
        +        "title": "Geometry Error Limit Mm",
        +        "type": "number"
        +      },
        +      "maximum_curve_surface_error_mm": {
        +        "maximum": 0.01,
        +        "minimum": 0,
        +        "title": "Maximum Curve Surface Error Mm",
        +        "type": "number"
        +      },
        +      "reference_validation": {
        +        "const": "not_measured_at_runtime",
        +        "title": "Reference Validation",
        +        "type": "string"
        +      },
        +      "samples_per_actual_pc_span": {
        +        "const": 129,
        +        "title": "Samples Per Actual Pc Span",
        +        "type": "integer"
        +      },
        +      "scope": {
        +        "const": "finite65-native-span/129-actual-pcurve-span",
        +        "title": "Scope",
        +        "type": "string"
        +      },
        +      "step_readback_relative_volume_error": {
        +        "maximum": 0.000001,
        +        "minimum": 0,
        +        "title": "Step Readback Relative Volume Error",
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "certificate_sha256",
        +      "geometry_error_limit_mm",
        +      "maximum_curve_surface_error_mm",
        +      "actual_pc_occurrences",
        +      "actual_pc_samples",
        +      "samples_per_actual_pc_span",
        +      "step_readback_relative_volume_error",
        +      "scope",
        +      "reference_validation"
        +    ],
        +    "title": "BRepPrecisionSummary",
        +    "type": "object"
        +  },
        +  "SourceSPPrecisionSummary": {
        +    "additionalProperties": false,
        +    "description": "Public finite-tier facts only; private qualification objects never enter it.",
        +    "properties": {
        +      "added_error_limit_mm": {
        +        "const": 0.01,
        +        "title": "Added Error Limit Mm",
        +        "type": "number"
        +      },
        +      "certificate_sha256": {
        +        "pattern": "^[0-9a-f]{64}$",
        +        "title": "Certificate Sha256",
        +        "type": "string"
        +      },
        +      "excluded_incident_feature_pairs": {
        +        "minimum": 0,
        +        "title": "Excluded Incident Feature Pairs",
        +        "type": "integer"
        +      },
        +      "feature_scope": {
        +        "const": "finite-nonincident-FF/EE/FE+trimwire;incident/self-fold-unverified",
        +        "title": "Feature Scope",
        +        "type": "string"
        +      },
        +      "finite_feature_pairs": {
        +        "minimum": 0,
        +        "title": "Finite Feature Pairs",
        +        "type": "integer"
        +      },
        +      "finite_features_verified": {
        +        "const": true,
        +        "title": "Finite Features Verified",
        +        "type": "boolean"
        +      },
        +      "global_error_or_clearance_certified": {
        +        "const": false,
        +        "title": "Global Error Or Clearance Certified",
        +        "type": "boolean"
        +      },
        +      "inherited_consistency_max_mm": {
        +        "minimum": 0,
        +        "title": "Inherited Consistency Max Mm",
        +        "type": "number"
        +      },
        +      "inherited_consistency_scope": {
        +        "const": "private-per-entity-caps-verified;global-maxima-are-summary-only",
        +        "title": "Inherited Consistency Scope",
        +        "type": "string"
        +      },
        +      "inherited_per_entity_caps_verified": {
        +        "const": true,
        +        "title": "Inherited Per Entity Caps Verified",
        +        "type": "boolean"
        +      },
        +      "inherited_source_cap_max_mm": {
        +        "exclusiveMinimum": 0,
        +        "title": "Inherited Source Cap Max Mm",
        +        "type": "number"
        +      },
        +      "maximum_added_source_error_mm": {
        +        "maximum": 0.01,
        +        "minimum": 0,
        +        "title": "Maximum Added Source Error Mm",
        +        "type": "number"
        +      },
        +      "readback_actual_occurrences": {
        +        "minimum": 1,
        +        "title": "Readback Actual Occurrences",
        +        "type": "integer"
        +      },
        +      "readback_actual_samples": {
        +        "maximum": 262144,
        +        "minimum": 129,
        +        "title": "Readback Actual Samples",
        +        "type": "integer"
        +      },
        +      "readback_metadata_normalized": {
        +        "title": "Readback Metadata Normalized",
        +        "type": "boolean"
        +      },
        +      "readback_original_undercoverage_occurrences": {
        +        "minimum": 0,
        +        "title": "Readback Original Undercoverage Occurrences",
        +        "type": "integer"
        +      },
        +      "readback_source_events_renewed": {
        +        "const": false,
        +        "title": "Readback Source Events Renewed",
        +        "type": "boolean"
        +      },
        +      "readback_source_identity_renewed": {
        +        "const": false,
        +        "title": "Readback Source Identity Renewed",
        +        "type": "boolean"
        +      },
        +      "readback_tol_coverage_verified": {
        +        "const": true,
        +        "title": "Readback Tol Coverage Verified",
        +        "type": "boolean"
        +      },
        +      "reference_validation": {
        +        "const": "not_measured_at_runtime",
        +        "title": "Reference Validation",
        +        "type": "string"
        +      },
        +      "samples_per_native_span": {
        +        "const": 129,
        +        "title": "Samples Per Native Span",
        +        "type": "integer"
        +      },
        +      "source_analytic_occurrences": {
        +        "minimum": 0,
        +        "title": "Source Analytic Occurrences",
        +        "type": "integer"
        +      },
        +      "source_fin_occurrences": {
        +        "minimum": 1,
        +        "title": "Source Fin Occurrences",
        +        "type": "integer"
        +      },
        +      "source_finite_occurrences": {
        +        "minimum": 1,
        +        "title": "Source Finite Occurrences",
        +        "type": "integer"
        +      },
        +      "source_geometry_verified": {
        +        "const": true,
        +        "title": "Source Geometry Verified",
        +        "type": "boolean"
        +      },
        +      "source_original_precision": {
        +        "const": false,
        +        "title": "Source Original Precision",
        +        "type": "boolean"
        +      },
        +      "source_schedule_paid_samples": {
        +        "minimum": 0,
        +        "title": "Source Schedule Paid Samples",
        +        "type": "integer"
        +      },
        +      "source_schedule_required_samples": {
        +        "minimum": 129,
        +        "title": "Source Schedule Required Samples",
        +        "type": "integer"
        +      },
        +      "source_schedule_reused_samples": {
        +        "minimum": 0,
        +        "title": "Source Schedule Reused Samples",
        +        "type": "integer"
        +      },
        +      "source_scope": {
        +        "const": "finite-source-primary-bindings/native65/129",
        +        "title": "Source Scope",
        +        "type": "string"
        +      },
        +      "step_per_entity_tolerance_preserved": {
        +        "const": false,
        +        "title": "Step Per Entity Tolerance Preserved",
        +        "type": "boolean"
        +      },
        +      "step_readback_relative_volume_error": {
        +        "maximum": 0.000001,
        +        "minimum": 0,
        +        "title": "Step Readback Relative Volume Error",
        +        "type": "number"
        +      },
        +      "step_volume_error_limit": {
        +        "const": 0.000001,
        +        "title": "Step Volume Error Limit",
        +        "type": "number"
        +      },
        +      "trimwire_checks": {
        +        "minimum": 1,
        +        "title": "Trimwire Checks",
        +        "type": "integer"
        +      },
        +      "writer_tolerance_mm": {
        +        "exclusiveMinimum": 0,
        +        "title": "Writer Tolerance Mm",
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "certificate_sha256",
        +      "maximum_added_source_error_mm",
        +      "inherited_consistency_max_mm",
        +      "inherited_source_cap_max_mm",
        +      "source_fin_occurrences",
        +      "source_finite_occurrences",
        +      "source_analytic_occurrences",
        +      "source_schedule_required_samples",
        +      "source_schedule_paid_samples",
        +      "source_schedule_reused_samples",
        +      "readback_actual_occurrences",
        +      "readback_actual_samples",
        +      "step_readback_relative_volume_error",
        +      "writer_tolerance_mm",
        +      "readback_metadata_normalized",
        +      "readback_original_undercoverage_occurrences",
        +      "finite_feature_pairs",
        +      "excluded_incident_feature_pairs",
        +      "trimwire_checks",
        +      "source_geometry_verified",
        +      "inherited_per_entity_caps_verified",
        +      "readback_tol_coverage_verified",
        +      "finite_features_verified",
        +      "added_error_limit_mm",
        +      "samples_per_native_span",
        +      "source_original_precision",
        +      "source_scope",
        +      "inherited_consistency_scope",
        +      "readback_source_events_renewed",
        +      "readback_source_identity_renewed",
        +      "step_volume_error_limit",
        +      "step_per_entity_tolerance_preserved",
        +      "feature_scope",
        +      "global_error_or_clearance_certified",
        +      "reference_validation"
        +    ],
        +    "title": "SourceSPPrecisionSummary",
        +    "type": "object"
        +  }
        +}
      • changedOutput schema / properties / measurement_accuracy / enum
        Previous value: -[
        -  "exact",
        -  "mesh_approximate",
        -  "unavailable"
        -]New value: +[
        +  "exact",
        +  "bounded_brep_approximate",
        +  "mesh_approximate",
        +  "unavailable"
        +]
      • addedOutput schema / properties / precision_grade
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "trial-001",
        +        "source-sp-engineering-v1"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Precision Grade"
        +}
      • addedOutput schema / properties / precision_summary
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/BRepPrecisionSummary"
        +    },
        +    {
        +      "$ref": "#/$defs/SourceSPPrecisionSummary"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Precision Summary"
        +}
      • addedOutput schema / properties / source_precision_qualified
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Source Precision Qualified"
        +}
  3. 4 tool updates
    • First observedconvert_cad
    • First observedinspect_cad
    • First observedopen_in_workspace
    • First observedrefresh_view_token

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Turn STEP, BREP and IGES files into CAD-style views, ISO drawing sheets, photorealistic renders, GIF animations and MP4 videos, with exact measurements and clash checks.
    Apache 2.0
  • A
    license
    A
    quality
    B
    maintenance
    Enables MCP clients to inspect and measure native B-rep geometry, create and edit CAD models, export results, and optionally review models or prepare print jobs locally.
    11
    MIT
  • A
    license
    A
    quality
    Not graded
    maintenance
    IFC/BIM toolkit with a free browser 3D viewer: validate IFC with a 0–100 Health Score, check buildingSMART IDS 1.0, read DXF drawings, and open models, floor plans, 3D sketches and live digital twins in 3D. Validation runs locally and files are not uploaded.
    10
    5 npm
    18
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Give your AI assistant the ability to inspect, measure, and compare 3D CAD models by dropping in a STEP file and asking engineering questions. Runs entirely on your machine with no cloud, no CAD license, and no setup.
    5
    207 npm
    7
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources