mesh2cad
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| convertA | Convert an STL/OBJ/PLY mesh into a STEP B-rep with fitted planes, cylinders, spheres, cones, and constant-radius fillets. Args: input_path: path to the mesh file. output_path: STEP path to write (default: input with .step suffix). tol: fit tolerance in model units (~ mesh noise); default 0.1% of bbox diagonal. cylinders: also fit cylinders (holes, bosses, plane-plane fillets). spheres: also fit spheres (domes, spherical bosses). cones: also fit cones (chamfers, countersinks, tapered bosses). Returns the fidelity report (method, faces, deviation, volume error) and output path. |
| analyzeC | Segment a mesh and report detected surfaces without writing STEP. |
| reportC | Full Markdown fidelity report for converting this mesh. |
| to_cadqueryB | Write an editable parametric CadQuery script (.py) for a simple part. Works for a box/plate base with rectangular pads, holes along X, Y, or Z (through, blind, counterbored, and countersunk when the axis is vertical), bosses along X, Y, or Z (straight, and drafted or chamfered when the axis is vertical), a fillet at the base of a vertical boss (boss_N_fillet), a round on a vertical hole rim (hole_N_rim_r, hole_N_bot_rim_r) and a blind-hole floor fillet (hole_N_floor_r), a straight extrusion of a 2D outline along X, Y, or Z, and a small boolean of those extrusions (intersection, or one minus a cut along another axis) with round through-holes, counterbores, and a few planar clips. Each dimension is a named parameter (e.g. hole_1_d = 6.0, extrude_len): edit it and run the script with Python to regenerate the part. Returns the parameters and the measured deviation of the script's output from the mesh. Returns an "error" key when the part is outside that vocabulary. |
| to_openscadA | Write an editable parametric OpenSCAD script (.scad) for a simple part. Same parts as to_cadquery: a box/plate base with rectangular pads, holes and bosses along X, Y, or Z (countersink, draft, and chamfer only when the axis is vertical), one radius on the four vertical corners, a quarter-torus fillet on a vertical boss or hole (boss_N_fillet, hole_N_rim_r, hole_N_floor_r), a straight extrusion of a 2D outline, and a small boolean of those extrusions. Parameter names match the CadQuery script (hole_1_d, boss_1_h, fillet_r, boss_1_fillet, extrude_len, ...). Edit one and render in OpenSCAD. Returns the parameters, whether the openscad CLI verified the script against the mesh, and the measured deviation when it did. Without the openscad program the script is still written and verified is false. Returns an "error" key when the part is outside that vocabulary. |
| to_freecadA | Write an editable parametric FreeCAD macro (.FCMacro) for a simple part. Same parts as to_cadquery: a box/plate base with rectangular pads, holes and bosses along X, Y, or Z (countersink, draft, and chamfer only when the axis is vertical), one radius on the four vertical corners, a quarter-torus fillet on a vertical boss or hole (boss_N_fillet, hole_N_rim_r, hole_N_floor_r), a straight extrusion of a 2D outline, and a small boolean of those extrusions. Parameter names match the CadQuery script (hole_1_d, boss_1_h, fillet_r, boss_1_fillet, extrude_len, ...). Edit one and run the macro in FreeCAD, or with freecadcmd. Returns the parameters, whether freecadcmd verified the macro against the mesh, and the measured deviation when it did. Without freecadcmd the macro is still written and verified is false. Returns an "error" key when the part is outside that vocabulary. |
| list_paramsA | List the editable parameters of a CadQuery, OpenSCAD, or FreeCAD script mesh2cad generated. Args: script_path: path to a .py, .scad, or .FCMacro file written by mesh2cad. Returns name, value, kind, and unit for each parameter. Outline and cutout point lists are included and are not single numbers. Returns an "error" key when the file is not a script mesh2cad generated. |
| edit_paramsA | Change named parameters in a script mesh2cad generated and re-render the solid. Args: script_path: path to a .py, .scad, or .FCMacro file written by mesh2cad. changes: mapping of parameter name to a new number, or to a string that starts with + or - to add that delta (for example {"hole_1_d": 8, "base_x": "+2"}). output_path: STEP or STL to write. CadQuery and FreeCAD accept .step or .stl. OpenSCAD accepts .stl. When omitted, a .step (or .stl for OpenSCAD) is written next to the script if that backend is available. The script is updated in place. Every byte outside the replaced numbers stays the same. Unknown names are refused with the valid list. An edit that does not produce one valid solid, or a hole larger than the wall it sits in, is refused and nothing is written. Returns old and new values, the rendered path, validity, volume and bounding-box delta, and warnings. Returns an "error" key when the edit is refused or the backend needed for output_path is not available. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
The two families are clearly split: convert produces a STEP B-rep by surface fitting, while to_cadquery/to_openscad/to_freecad emit editable parametric scripts for three distinct backends, and list_params/edit_params are obvious companions. The only mild overlap is analyze vs report, since both are read-only mesh analyses, though 'segments and lists surfaces' versus 'full Markdown fidelity report' distinguishes them.
The set mixes three conventions: bare verbs (convert, analyze, report), a to_<backend> prefix group (to_cadquery, to_openscad, to_freecad), and verb_noun pairs (list_params, edit_params). Each name is readable and the groupings are intuitive, but there is no single predictable pattern an agent can extrapolate from.
Eight tools is well within the sweet spot, and each one earns its place: one mesh-to-B-rep converter, three backend script generators, two script parameter operations, and two inspection tools. Nothing looks like filler or a redundant variant of another tool.
The core lifecycle is covered: analyze the mesh, convert to STEP, generate an editable script in three CAD ecosystems, then list and edit its parameters to re-render. Gaps are minor, e.g. no explicit verification/inspection tool for a written STEP file and no output-format choice for convert beyond STEP, but agents can work around these via edit_params or external tooling.