Skip to main content
Glama
pzfreo

build123d-mcp

validate

Read-only

Check a shape's CAD validity before export to avoid STEP/STL rejection. Returns PASS/FAIL verdict with volume, manifold, and BRep status.

Instructions

Check whether a shape would pass a CAD validity gate before exporting it. Returns a PASS/FAIL verdict plus JSON (passes_gate, n_solids, volume, is_manifold, brep_valid, reasons). The gate mirrors what strict CAD and mesh consumers require: a well-formed (BRepCheck), watertight, manifold solid with non-zero volume. A FAIL means a STEP/STL export would be rejected outright — common causes are a leftover 2D sketch or open shell as the current shape, an un-fused compound, or a degenerate boolean result. Run this immediately before export() on any part you intend to submit or hand off. object_name: named object from show() (default: current shape).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
object_nameNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.3.51

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description doesn't need to restate that. It adds meaningful behavioral context beyond the annotation: what the gate checks (BRepCheck, watertight, manifold, non-zero volume), what a FAIL means, and common causes. This goes beyond a mere read-only flag and helps the agent interpret results correctly.

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 fairly long but every sentence serves a purpose: purpose, return format, gate criteria, failure meaning, usage timing, and parameter. It is front-loaded with the core purpose and structured logically. It could be slightly trimmed (e.g., the list of failure causes could be shorter), but it remains efficient and readable.

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 tool's complexity, the description is complete: it explains the function, the returned JSON fields (passes_gate, n_solids, volume, is_manifold, brep_valid, reasons), the gate criteria, when to use it, and the parameter. An output schema exists but the description already lists the fields, so nothing essential is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and there is one parameter, object_name. The description explicitly explains it: 'object_name: named object from show() (default: current shape).' This fully compensates for the lack of schema description, giving the agent the source and default of the parameter. No other parameter exists, so nothing is left undocumented.

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 clear verb (check) and a specific resource (whether a shape would pass a CAD validity gate), and explicitly ties it to exporting. It differentiates itself from siblings like export() by framing itself as the pre-export gate, and the phrase 'Run this immediately before export()' reinforces its distinct role.

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 an explicit usage instruction: 'Run this immediately before export() on any part you intend to submit or hand off.' This tells the agent exactly when to invoke it. It also explains the consequence of a FAIL (export would be rejected), which helps the agent decide whether to call this tool before other actions.

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