MCP tools for Onshape CAD/PDM operations via the Onshape REST API. Provides ~100 tools for documents, versions, part studios, parts, assemblies, drawings, export/import, configurations, metadata, releases, thumbnails, comments, users/teams, and webhooks.
14 tools with complete schemas and descriptions, but quality is uneven. Naming follows verb_noun convention well (create_, get_, list_, update_, delete_). Descriptions average ~120 chars, below the 194-char baseline for A+ tools. Parameter descriptions are present but often generic ('optional', 'default false'). No output schemas documented. Error handling absent, tools lack recovery guidance. Security concern: no mention of credential injection or permission gates. Composition is reasonable (single responsibility per tool), but missing idempotency hints and batch variants.
Create a new Assembly tab in an Onshape document workspace. Returns the new element metadata including the element ID.
Get the assembly definition tree: root instances, occurrences, sub-assemblies, parts, and optionally mate features/connectors. This is the primary tool to understand the structure of an assembly.
Delete a single instance (occurrence) from an assembly by its node ID.
Insert a part or sub-assembly instance into an assembly. The source can be a part, an assembly, or a whole part studio from any document.
Modify an assembly: transform instances, suppress/unsuppress, change configuration. Accepts a complex JSON body — see Onshape API docs for the modify request schema.
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., what does assembly_definition return? What fields enable chaining to insert_instance?).
onshape_assembly_modify accepts a generic 'body' object with description 'See Onshape API reference', no schema constraints. LLMs cannot validate input; will hallucinate invalid JSON structures.
Destructive tools (delete_instance, comment_delete) lack confirmation/dry-run support and error recovery guidance. No indication of what happens on failure or how to undo.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | <=2025-11-25 | v2 |
Create a comment on an Onshape document. Requires documentId and message. Optionally target a specific object (element, part) via objectId and objectType.
Permanently delete a comment by its comment ID. This action cannot be undone.
List comments on an Onshape document. Requires documentId. Returns a paginated list of comments with author, message, date, and resolved status.
Resolve (close) a comment by its comment ID. Marks the comment as resolved so it no longer appears as an active discussion thread.
Encode configuration parameter values into a URL-safe configuration string. The encoded string can be used in API URLs to reference a specific configuration (e.g. for configured part references in assemblies).
Get the current configuration of an element (Part Studio or Assembly). Returns all configuration parameters with their current values, types, and allowed options.
Update the configuration of an element. Provide an array of configuration parameters with their new values. Each parameter needs parameterId and parameterValue. Get current config with onshape_config_get first to see available parameters.
Get all variables from a Variable Studio element. Returns variable names, expressions, types, and current values.
Set or update variables in a Variable Studio element. Provide an array of variable objects with name and expression. Existing variables are updated, new names create new variables.
Parameter descriptions are generic ('optional', 'default false', 'See Onshape API docs'). LLMs need explicit format/constraint guidance (e.g., 'Document ID: 24 hex characters' is present, but many params lack this specificity).
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Clients cannot infer which tools are safe to retry or which modify state without reading descriptions.