Headless MCP stdio server for noBS CAD sketch and solid tools, providing CAM operations, drawing management, and modeling capabilities
The noBS CAD MCP server provides 20 tools across CAM and drawing domains with explicit tool definitions, structured schemas, and detailed descriptions. However, there are significant gaps in parameter descriptions, missing input schemas for several tools, and limited error handling guidance. The tool names follow verb-noun conventions well (cam_get_*, cam_regenerate_*, drawing_create_*, etc.), but many parameter objects lack inline documentation of their structure and constraints. Output schemas are not explicitly documented for tools, making it unclear what LLMs should expect after calling them. The server demonstrates above-average schema usage (input parameters are typed JSON objects), but the quality is uneven: some tools like cam_set_document have detailed descriptions of complex nested objects, while others like drawing_add_view reference 'view' and 'presentation' as bare objects with no structure hints. Error handling is minimal, no recovery guidance, retryability classification, or actionable error messages visible in the definitions.
Inspect CAM document. Return the complete machining document, including tools, setups, machine/post settings, generation stamps and associative height/linking intent. Preserve these fields when editing with cam_set_document.
Plan CAM setup. Return the validated toolpath program and warnings. Optionally stop after through_operation_id, inclusive.
Export neutral post events. Return the neutral post-event stream for a setup. Requires current toolpaths and the same pre-post verification as NC export. Returns data only; does not write or execute a private post file.
Post CAM setup. Render NC text using the setup's machine/post snapshot. Posting rejects stale, ungenerated or invalid paths. Optional post overrides must match the bound controller and machine-specific settings; they do not select a different machine. Output follows the document's units. Output requires machine-specific review, not a safety certification.
Regenerate CAM toolpath. Plan one enabled operation against current inputs and record its generation signature only after planning succeeds.
Complex nested object parameters lack internal schema documentation. Tools like drawing_add_view, drawing_add_linear_dimension, and drawing_add_angular_dimension accept 'view', 'first', 'second', 'feature', and 'presentation' objects with type 'object' but no nested field descriptions. LLMs cannot infer what fields these objects require without explicit schema documentation.
Output schemas are not documented. The tool definitions show what inputs are accepted but do not describe what the response will contain. For instance, cam_get_document returns a complex 'complete machining document' but the exact response structure (fields, types, nesting) is not visible. LLMs cannot plan downstream tool calls without knowing response structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Regenerate CAM setup. Plan every enabled operation in a setup and refresh generation signatures only after the complete plan succeeds.
Write CAM document. Replace the whole machining document after validation, not a partial patch. Start from cam_get_document and preserve unedited fields. Supports face, adaptive3d (High Speed Roughing), contour2d, pocket2d, chamfer2d, drill and thread operations; tools and setups are never auto-created. Geometry/tool compatibility and generation freshness remain engine-owned.
Simulate NC program. Interpret supported NC text against the setup and project tools, then run the shared stock simulation. Accepts modeled stock, target comparison and a motion-step prefix. Unsupported codes fail closed; no macros or files are executed.
Simulate CAM setup. Run bounded stock simulation and return remaining stock plus collision/comparison reports. Supply stock_mesh for modeled stock and target for finished-model comparison. Supports operation and playback prefixes, including zero-time uncut stock. This is not whole-machine collision certification.
Inspect CAM toolpath safety. Compare saved generation signatures against current CAD, setup, tool and operation dependencies. Returns current, never_generated, stale or invalid with actionable reasons.
Add associative angular dimension. Dimension the angle between three current topology anchors. Radius is paper millimetres; the angle follows model edits.
Add associative linear dimension. Dimension two current topology anchors from drawing_projection in an existing view. Modes are aligned, horizontal or vertical. Offset is paper millimetres. Stale or excluded references reject atomically; the measured value follows the model, never an entered label.
Add drawing note. Add a free-standing note in paper millimetres. Returns the updated drawing document.
Add associative radius or diameter. Dimension a current circular topology reference in an existing view. Current geometry determines the value; stale references reject atomically.
Add drawing view. Add a standard or custom orthographic view. The engine allocates its ID; direction points toward the viewer, up is page-up, position is paper mm and scale is paper/model mm. Returns the updated drawing document.
Create drawing sheet. Create and select a sheet. ISO and first-angle are defaults; specify ANSI and third-angle explicitly when desired. Dimensions and positions are millimetres.
Delete drawing sheet. Delete an existing sheet and its views/annotations. Select another remaining sheet when necessary.
Inspect drawing sheets. Read persistent sheets, views, notes and annotations in the current completed model.
Select drawing sheet. Select an existing sheet by ID.
Set drawing bill of materials. Replace the sheet BOM with explicit quantities and manufacturing notes. IDs are allocated by the document. Existing balloons must be removed first. Body references are optional for purchased hardware.
No error handling guidance or recovery paths documented. Tools like cam_regenerate_operation, cam_post_setup, and cam_simulate_gcode accept parameters that could fail (stale paths, invalid overrides, unsupported NC codes), but the tool descriptions do not explain what errors are possible, whether they are retryable, or what the LLM should do next. This violates the recovery-guide pattern.
cam_set_document description states 'tools and setups are never auto-created' and 'Geometry/tool compatibility and generation freshness remain engine-owned', but there is no explanation of what validation happens or what errors are returned if invalid references are passed. This makes it impossible for an LLM to know whether a rejected edit is due to a stale reference, invalid tool ID, or geometry mismatch.
Several drawing tools (drawing_add_view, drawing_add_linear_dimension, drawing_add_radial_dimension, drawing_add_angular_dimension) accept 'sheet_id' and 'view_id' parameters but do not document what happens if these IDs do not exist in the current document. No guidance on whether the error is retryable or how to recover.
cam_post_setup and cam_simulate_setup accept optional 'post' and 'stock_mesh' objects of type object/null with no schema. The description mentions 'post overrides must match the bound controller', but the LLM has no way to know what override fields are valid or how to structure them.
cam_simulate_gcode accepts a 'dialect' enum with values 'auto', 'iso', 'fanuc', 'haas', 'siemens828d', but the description does not explain what the difference is or when to use each. An LLM may guess wrong without explicit guidance.
No tool implements pagination for list-like operations. While cam_get_document and drawing_document return complete documents, tools that work with large models (e.g., many setups, many operations, many parts in BOM) could return results too large for the context window. drawing_set_bom accepts items array with maxItems 4096, but no guidance on how to handle batching or pagination.
Tool descriptions inconsistently capitalized and formatted. Some tools use 'Inspect CAM document' style, others use imperative 'Create drawing sheet' or 'Add drawing view'. Inconsistency adds cognitive load for LLMs and makes tools harder to scan visually.