MCP server that drives OnShape CAD (parametric modeling, queries, STL export/verify) via the OnShape REST API
Server has 15 well-named tools with complete input schemas and descriptions. Naming follows verb_noun convention (list_, create_, export_, etc.). All tools have descriptions (avg ~80 chars, within baseline 34-392). Input schemas are properly typed with parameter descriptions. However, output schemas are not documented, LLMs cannot predict return structure for chaining. Error handling is minimal; no recovery guidance or actionable error messages visible. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. Parameter descriptions lack format constraints (e.g., file_path accepts any string; no validation guidance). Some complex params like 'feature' object in add_feature/update_feature lack schema detail.
Add a new feature (extrude, sketch, fillet, etc.) to a Part Studio
Create a private OnShape document with optional description and parent folder
Create a new Part Studio element in a document workspace
Delete a feature from a Part Studio
Evaluate a FeatureScript function in the context of a Part Studio with optional query parameters
Export a Part Studio or selected parts as a STEP B-rep solid to an absolute file path using asynchronous translation
Output schemas not documented. LLMs cannot predict return structure for downstream tool chaining. E.g., list_documents returns {documentId, name, defaultWorkspaceId} but this is inferred from code, not declared in tool schema.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels. delete_feature is DESTRUCTIVE, export_* are READ_ONLY, but MCP schema does not declare these hints.
Complex object parameters lack schema detail. add_feature and update_feature accept 'feature' as type:object with only a description referencing BTMFeature-134 or BTFeatureDefinitionCall-1406. No properties, required fields, or examples provided. LLMs cannot construct valid payloads.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Export a Part Studio or selected parts as binary STL to an absolute file path with configurable tessellation quality
List all features in a Part Studio with their IDs, names, types, and regeneration status
Get all variables visible to a Part Studio element (assignVariable features and referenced Variable Studios)
Upload and translate a local CAD file (e.g. Inventor assembly, STEP) into an existing OnShape document workspace
List OnShape documents with optional search query and limit
List all elements (Part Studios, Assemblies, etc.) in a document workspace
List all parts in a Part Studio with their IDs, names, and body types
Get volume, centroid, and bounding box per part in SI and imperial units
Update an existing feature in a Part Studio
No error handling guidance. Code shows OnshapeApiError exists but tool descriptions do not explain what errors can occur, when to retry, or how to recover. E.g., import_cad with timeout_s=900 could hang, no guidance on timeout behavior.
File path parameters accept any string with no validation guidance. export_stl, export_step, import_cad all accept 'file_path' as string. No description of allowed directories, path traversal prevention, or format constraints. LLMs may pass invalid or unsafe paths.