# io.github.gpambrozio/onshape (npm · @gpambrozio/onshape-mcp)

Drive Onshape CAD from an assistant: documents, sketches, solid features, assemblies and exports.

- Trust score: 80/100 (high trust)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-24

## Components

- npm · `@gpambrozio/onshape-mcp`: 80/100 (this document), [markdown](https://verifymcp.io/servers/gpambrozio-onshape/gpambrozio-onshape-mcp.md), [page](https://verifymcp.io/servers/gpambrozio-onshape/gpambrozio-onshape-mcp)

## Channel facts

- Registry: `npm`
- Package: `@gpambrozio/onshape-mcp`
- Version: `0.1.2`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-24.

- **Supply Chain Security**: 98/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 34 of 121 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 100/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to gpambrozio/onshape-mcp).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 2 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 73/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 12872 tokens (~147/item across 87 items; 87 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 93/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - 5 of 7 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "onshape_eval_featurescript" implies "eval" and declares no destructiveHint at all, which the MCP spec reads as destructive by default.
  - An AI judge read all 88 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### How do I install the io.github.gpambrozio/onshape MCP server?

io.github.gpambrozio/onshape runs locally as an npm package, launched with npx -y @gpambrozio/onshape-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add gpambrozio-onshape -- npx -y @gpambrozio/onshape-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "gpambrozio-onshape": {
      "command": "npx",
      "args": [
        "-y",
        "@gpambrozio/onshape-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "gpambrozio-onshape": {
      "command": "npx",
      "args": [
        "-y",
        "@gpambrozio/onshape-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add gpambrozio-onshape -- npx -y @gpambrozio/onshape-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "gpambrozio-onshape": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@gpambrozio/onshape-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add gpambrozio-onshape --command npx --arg -y --arg @gpambrozio/onshape-mcp
```

### Hermes

```yaml
mcp_servers:
  gpambrozio-onshape:
    command: "npx"
    args: ["-y", "@gpambrozio/onshape-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "gpambrozio-onshape": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@gpambrozio/onshape-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add gpambrozio-onshape -t stdio -c npx -a -y @gpambrozio/onshape-mcp
```

### Other

```json
{
  "mcpServers": {
    "gpambrozio-onshape": {
      "command": "npx",
      "args": [
        "-y",
        "@gpambrozio/onshape-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-22 (score 80)

First indexed and scored.

## MCP tools (87)

### `onshape_login` (~291 tokens)

Sign in to Onshape

Sign in to Onshape by opening a browser. method='api_key' (default) opens a local page that links to the Onshape developer key page and accepts the pasted key pair. method='oauth' runs the OAuth 2.0 authorization-code flow against an app you registered in the Onshape developer portal. The credential is verified against Onshape and stored in the OS keychain. Returns immediately with status 'pending' if the user has not finished yet — poll with onshape_login_status.

Input parameters:

- `base_url` (string): Onshape API base URL (default https://cad.onshape.com).
- `client_id` (string): OAuth client id; also read from ONSHAPE_OAUTH_CLIENT_ID.
- `client_secret` (string): OAuth client secret; also read from ONSHAPE_OAUTH_CLIENT_SECRET.
- `method` (string): Login method (default api_key).
- `oauth_url` (string): OAuth server (default https://oauth.onshape.com).
- `port` (integer): Loopback port for the callback (OAuth default 8471).
- `scope` (string): Space-separated OAuth scopes, when the app needs them stated.
- `store` (string): Where to keep the credential: auto (keychain, else file), keychain, or file.
- `wait_seconds` (integer): Seconds to wait for the browser before returning (default 20).

### `onshape_login_status` (~66 tokens)

Check the pending Onshape login

Wait for, and report on, the login started by onshape_login. Call this repeatedly while the user is in the browser; each call waits up to wait_seconds before returning.

Input parameters:

- `wait_seconds` (integer): Seconds to wait for the browser before returning (default 20).

### `onshape_set_api_key` (~131 tokens)

Store an Onshape API key pair

Store an Onshape access key and secret key directly, without a browser. Use when the user already has a key pair from https://cad.onshape.com/user/developer/apiKeys. The pair is verified against Onshape before it is saved.

Input parameters:

- `access_key` (string, required): Onshape access key.
- `base_url` (string): Onshape API base URL (default https://cad.onshape.com).
- `secret_key` (string, required): Onshape secret key.
- `store` (string): Where to keep the credential: auto (keychain, else file), keychain, or file.

### `onshape_auth_status` (~53 tokens)

Show Onshape sign-in status

Report which Onshape credential is active, where it came from and whether it still works. Secrets are redacted.

Input parameters:

- `verify` (boolean): Also make a live API call to confirm the credential (default true).

### `onshape_logout` (~40 tokens)

Forget stored Onshape credentials

Delete the credential this server stored (keychain entry and config file). Credentials coming from environment variables or from an existing onshape-cli install are not touched.

### `onshape_list_documents` (~88 tokens)

List Onshape documents

List documents visible to the signed-in user, most recently modified first.

Input parameters:

- `filter` (string): Which documents to list (default all).
- `limit` (integer): How many to return (default 20).
- `sort_by` (string): Sort column, e.g. modifiedAt or name (default modifiedAt).
- `sort_order` (string): Sort direction (default desc).

### `onshape_search_documents` (~55 tokens)

Search Onshape documents

Find documents by name. Search before creating, so repeated runs do not make duplicates.

Input parameters:

- `limit` (integer): How many to return (default 20).
- `query` (string, required): Text to match against document names.

### `onshape_get_document` (~53 tokens)

Get an Onshape document

Read one document's metadata, including its default workspace id.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.

### `onshape_get_document_summary` (~73 tokens)

Summarize an Onshape document

Document metadata plus every workspace and the elements (tabs) inside each — the fastest way to orient in an unfamiliar document and collect the ids other tools need.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.

### `onshape_create_document` (~77 tokens)

Create an Onshape document

Create a document. Free Onshape accounts may only create public documents, so pass public=true there. The result carries the new document id and its default workspace id.

Input parameters:

- `description` (string): Document description.
- `name` (string, required): Document name.
- `public` (boolean): Make the document public (required on free accounts).

### `onshape_update_document` (~67 tokens)

Rename an Onshape document

Change a document's name or description.

Input parameters:

- `description` (string): New description.
- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `name` (string): New name.

### `onshape_delete_document` (~59 tokens)

Delete an Onshape document

Move a document to the trash. This affects the whole document, not a single tab.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.

### `onshape_get_workspaces` (~51 tokens)

List workspaces

List a document's workspaces (branches).

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.

### `onshape_get_elements` (~93 tokens)

List elements in a workspace

List the elements (tabs) in a workspace: Part Studios, assemblies, drawings, Feature Studios.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `type` (string): Only return elements of this type.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_find_part_studios` (~92 tokens)

Find Part Studios by name

List the Part Studios in a workspace, optionally filtered by a substring of the name.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `name` (string): Case-insensitive substring to match.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_list_versions` (~52 tokens)

List document versions

List the immutable versions of a document, newest first.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.

### `onshape_create_version` (~124 tokens)

Create a document version

Snapshot the workspace as an immutable version. Do this before restructuring an existing design: it is the only way back to the previous state, and drawings must reference a version.

Input parameters:

- `description` (string): Why this snapshot was taken.
- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `name` (string, required): Version name, e.g. what is about to change.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_delete_element` (~92 tokens)

Delete an element

Delete one element (tab) from a workspace.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_create_part_studio` (~90 tokens)

Create a Part Studio

Add a Part Studio tab to a workspace. The new element id is at result.response.id.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `name` (string, required): Tab name.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_get_features` (~136 tokens)

List Part Studio features

The full feature tree with each feature's id, type, parameters and regeneration state. Large — prefer onshape_measure or onshape_get_parts when you only need the result of the tree.

Input parameters:

- `configuration` (string): Encoded configuration string from onshape_encode_configuration.
- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_get_feature_specs` (~116 tokens)

Get feature specifications

The parameter ids, enum names and defaults Onshape expects for every feature type in this Part Studio. Read this before hand-writing a payload for onshape_add_feature.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_get_sketch_info` (~114 tokens)

Get sketch geometry

Entities and solved geometry for every sketch in a Part Studio, or for one sketch.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `sketch` (string): Limit to this sketch feature id.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_get_body_details` (~100 tokens)

Get body topology

Bodies, faces and edges with their deterministic ids — the source for explicit edge selection.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_get_parts` (~98 tokens)

List parts

The parts a Part Studio produces, with part ids for export and assembly insertion.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_mass_properties` (~112 tokens)

Get mass properties

Volume, mass, centroid and inertia for the Part Studio's bodies.

Input parameters:

- `configuration` (string): Encoded configuration string from onshape_encode_configuration.
- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_measure` (~106 tokens)

Measure the model

Body count, overall bounding box in inches and total volume. Use this to check a model matches its intended dimensions before exporting.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_validate_part_studio` (~148 tokens)

Validate a Part Studio

Count parts and bodies, and fail when the counts do not match the expectations you pass. A cheap regression check after a run of feature edits.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `expect_bodies` (integer): Fail unless it has exactly this many bodies.
- `expect_parts` (integer): Fail unless the Part Studio has exactly this many parts.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_add_feature` (~163 tokens)

Add a raw feature

Post a hand-written BTM feature payload to a Part Studio. The escape hatch for feature types this server has no dedicated tool for — read onshape_get_feature_specs first.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `feature` (object, required): The feature JSON, usually a BTFeatureDefinitionCall-1406 envelope.
- `validate` (boolean): Re-read the feature list afterwards and fail if the feature regenerated with an error (default true).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_update_feature` (~129 tokens)

Update a feature

Replace an existing feature's payload, e.g. to change a dimension. Post the whole feature JSON.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `feature` (object, required): The full replacement feature JSON.
- `feature_id` (string, required): Id of the feature to replace.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_delete_feature` (~112 tokens)

Delete a feature

Remove one feature from the tree. Features added after it may fail to regenerate.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `feature_id` (string, required): Id of the feature to delete.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_rollback` (~123 tokens)

Move the rollback bar

Set the rollback index so features after it are suppressed. Index 0 rolls back to before the first feature.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `index` (integer, required): Rollback index; use a large number to roll fully forward.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_eval_featurescript` (~153 tokens)

Evaluate FeatureScript

Run a FeatureScript function against the Part Studio and return its decoded value. The general-purpose way to inspect geometry: 'function(context is Context, queries) { ... }'.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `raw` (boolean): Return Onshape's raw response instead of the decoded value.
- `script` (string, required): A FeatureScript function expression taking (context, queries).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_sketch_rectangle` (~224 tokens)

Sketch a rectangle

Add a sketch holding one closed rectangle, ready to extrude. Corners are opposite, in inches.

Input parameters:

- `corner1` (required): First corner. As [x, y] inches or "x,y".
- `corner2` (required): Opposite corner. As [x, y] inches or "x,y".
- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `name` (string): Feature name shown in the tree (default "Sketch").
- `plane` (string): Default plane to sketch on (default Front).
- `plane_feature` (string): Sketch on a face created by this feature id instead of a default plane.
- `validate` (boolean): Re-read the feature list afterwards and fail if the feature regenerated with an error (default true).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_sketch_circle` (~199 tokens)

Sketch a circle

Add a sketch holding one circle.

Input parameters:

- `center` (required): Circle centre. As [x, y] inches or "x,y".
- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `name` (string): Feature name shown in the tree (default "Sketch circle").
- `plane` (string): Default plane to sketch on (default Front).
- `plane_feature` (string): Sketch on a face created by this feature id instead of a default plane.
- `radius` (number, required): Radius in inches.
- `validate` (boolean): Re-read the feature list afterwards and fail if the feature regenerated with an error (default true).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_sketch_line` (~223 tokens)

Sketch a line

Add a sketch holding one line segment. A line alone encloses no region, so it cannot be extruded.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `end` (required): End point. As [x, y] inches or "x,y".
- `name` (string): Feature name shown in the tree (default "Sketch").
- `plane` (string): Default plane to sketch on (default Front).
- `plane_feature` (string): Sketch on a face created by this feature id instead of a default plane.
- `start` (required): Start point. As [x, y] inches or "x,y".
- `validate` (boolean): Re-read the feature list afterwards and fail if the feature regenerated with an error (default true).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_sketch_circle_axis` (~249 tokens)

Sketch a circle with a revolve axis

Add a sketch with a circle profile and a construction line. onshape_revolve spins the profile around that construction line, which is how you get a torus or a ring.

Input parameters:

- `axis_end` (required): Axis end. As [x, y] inches or "x,y".
- `axis_start` (required): Axis start. As [x, y] inches or "x,y".
- `center` (required): Circle centre. As [x, y] inches or "x,y".
- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `name` (string): Feature name shown in the tree (default "Sketch circle and axis").
- `plane` (string): Default plane to sketch on (default Front).
- `radius` (number, required): Radius in inches.
- `validate` (boolean): Re-read the feature list afterwards and fail if the feature regenerated with an error (default true).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_create_sketch` (~216 tokens)

Sketch arbitrary entities

Add a sketch from a list of entities: lines, circles, rectangles and arcs. Use this when the single-shape sketch tools cannot express the profile. Close the profile if you intend to extrude it.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `entities` (array, required): Entities making up the sketch.
- `name` (string): Feature name shown in the tree (default "Sketch").
- `plane` (string): Default plane to sketch on (default Front).
- `plane_feature` (string): Sketch on a face created by this feature id instead of a default plane.
- `validate` (boolean): Re-read the feature list afterwards and fail if the feature regenerated with an error (default true).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_sketch_candy_cane_path` (~273 tokens)

Sketch a hooked sweep path

Add a sketch of a straight stem joined to a hooked arc, approximated by segments — a ready-made path for onshape_sweep.

Input parameters:

- `bottom` (number): Y of the stem's bottom (default 0).
- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `hook_angle` (number): Sweep of the hook in degrees (default 210).
- `hook_radius` (number, required): Radius of the hook, inches.
- `name` (string): Feature name shown in the tree (default "Candy cane centerline").
- `plane` (string): Default plane to sketch on (default Front).
- `segments` (integer): Total segments used to approximate the path (default 24).
- `straight_height` (number, required): Length of the straight stem, inches.
- `validate` (boolean): Re-read the feature list afterwards and fail if the feature regenerated with an error (default true).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.
- `x` (number): X position of the stem (default 0).

### `onshape_extrude` (~237 tokens)

Extrude a sketch

Extrude the closed regions of a sketch into a solid. op=NEW makes a body, ADD merges into existing bodies, REMOVE cuts them, INTERSECT keeps the overlap.

Input parameters:

- `depth` (number, required): Extrusion depth in inches.
- `depth_variable` (string): Use a Part Studio variable (by name) for the depth instead.
- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `name` (string): Feature name shown in the tree (default "Extrude").
- `op` (string): NEW makes a new body; ADD/REMOVE/INTERSECT combine with existing bodies (default NEW).
- `sketch` (string, required): Feature id of the sketch to extrude.
- `validate` (boolean): Re-read the feature list afterwards and fail if the feature regenerated with an error (default true).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_hole` (~200 tokens)

Cut a hole

Extrude a sketch as a cut (op=REMOVE). Sketch a circle first, then cut it through the body.

Input parameters:

- `depth` (number, required): Cut depth in inches; make it deeper than the body to cut through.
- `depth_variable` (string): Use a Part Studio variable for the depth.
- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `name` (string): Feature name shown in the tree (default "Hole").
- `sketch` (string, required): Feature id of the sketch to cut with.
- `validate` (boolean): Re-read the feature list afterwards and fail if the feature regenerated with an error (default true).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_thicken` (~235 tokens)

Thicken a sketch

Give a sketch region a wall thickness instead of a solid depth.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `midplane` (boolean): Grow symmetrically about the sketch plane.
- `name` (string): Feature name shown in the tree (default "Thicken").
- `op` (string): NEW makes a new body; ADD/REMOVE/INTERSECT combine with existing bodies (default NEW).
- `opposite` (boolean): Thicken in the opposite direction.
- `sketch` (string, required): Feature id of the sketch to thicken.
- `thickness` (number, required): Thickness in inches.
- `thickness_variable` (string): Use a Part Studio variable for the thickness.
- `validate` (boolean): Re-read the feature list afterwards and fail if the feature regenerated with an error (default true).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_revolve` (~273 tokens)

Revolve a sketch

Revolve a sketch profile around an axis. With no axis given, the sketch's own construction line is used (see onshape_sketch_circle_axis); otherwise pass axis_ids or an axis query.

Input parameters:

- `angle` (number): Revolve angle in degrees (default 360).
- `axis` (string): FeatureScript query selecting the axis.
- `axis_ids` (array): Deterministic ids of the axis entity.
- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `name` (string): Feature name shown in the tree (default "Revolve").
- `op` (string): NEW makes a new body; ADD/REMOVE/INTERSECT combine with existing bodies (default NEW).
- `sketch` (string, required): Feature id of the sketch holding the profile.
- `type` (string): FULL revolves all the way around (default FULL when an axis is given).
- `validate` (boolean): Re-read the feature list afterwards and fail if the feature regenerated with an error (default true).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_sweep` (~190 tokens)

Sweep a profile along a path

Sweep the closed regions of one sketch along the edges of another.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `name` (string): Feature name shown in the tree (default "Sweep").
- `op` (string): NEW makes a new body; ADD/REMOVE/INTERSECT combine with existing bodies (default NEW).
- `path` (string, required): Feature id of the path sketch.
- `profile` (string, required): Feature id of the profile sketch.
- `validate` (boolean): Re-read the feature list afterwards and fail if the feature regenerated with an error (default true).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_fillet` (~291 tokens)

Fillet edges

Round the selected edges. Name the edges with one of: edges (ids), query (FeatureScript), feature (every edge that feature made), all, or circular.

Input parameters:

- `all` (boolean): Select all edges of all solid bodies.
- `circular` (boolean): Select only circular edges.
- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `edges` (array): Explicit deterministic edge ids, from onshape_get_edges.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `feature` (string): Select every edge created by this feature id.
- `name` (string): Feature name shown in the tree (default "Fillet").
- `query` (string): FeatureScript query, e.g. query = qCreatedBy(makeId("FID"), EntityType.EDGE);
- `radius` (number): Fillet radius in inches (default 0.1).
- `radius_variable` (string): Use a Part Studio variable for the radius.
- `type` (string): Fillet type (default EDGE).
- `validate` (boolean): Re-read the feature list afterwards and fail if the feature regenerated with an error (default true).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_chamfer` (~294 tokens)

Chamfer edges

Bevel the selected edges. Selection works exactly as for onshape_fillet.

Input parameters:

- `all` (boolean): Select all edges of all solid bodies.
- `angle` (number): Angle in degrees, for type=OFFSET_ANGLE.
- `circular` (boolean): Select only circular edges.
- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `edges` (array): Explicit deterministic edge ids, from onshape_get_edges.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `feature` (string): Select every edge created by this feature id.
- `name` (string): Feature name shown in the tree (default "Chamfer").
- `query` (string): FeatureScript query, e.g. query = qCreatedBy(makeId("FID"), EntityType.EDGE);
- `type` (string): Chamfer type (default EQUAL_OFFSETS).
- `validate` (boolean): Re-read the feature list afterwards and fail if the feature regenerated with an error (default true).
- `width` (number): Chamfer width in inches (default 0.1).
- `width_variable` (string): Use a Part Studio variable for the width.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_shell` (~216 tokens)

Shell a body

Hollow the body out to a wall thickness, removing the selected faces to open it.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `faces` (array): Deterministic ids of faces to remove.
- `name` (string): Feature name shown in the tree (default "Shell").
- `outward` (boolean): Thicken outward instead of inward.
- `query` (string): FeatureScript query selecting the faces to remove.
- `thickness` (number): Wall thickness in inches (default 0.125).
- `thickness_variable` (string): Use a Part Studio variable for the thickness.
- `validate` (boolean): Re-read the feature list afterwards and fail if the feature regenerated with an error (default true).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_draft` (~189 tokens)

Draft faces

Taper faces away from a neutral plane — the usual requirement for moulded or cast parts.

Input parameters:

- `angle` (number): Draft angle in degrees (default 3).
- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `faces` (string, required): FeatureScript query selecting the faces to draft.
- `name` (string): Feature name shown in the tree (default "Draft").
- `neutral` (string, required): FeatureScript query selecting the neutral plane or face.
- `validate` (boolean): Re-read the feature list afterwards and fail if the feature regenerated with an error (default true).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_boolean` (~218 tokens)

Boolean bodies

Combine bodies: UNION, SUBTRACTION or INTERSECTION. Subtraction also needs the targets query.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `keep_tools` (boolean): Keep the tool bodies after the operation.
- `name` (string): Feature name shown in the tree (default "Boolean").
- `op` (string): Boolean operation (default UNION).
- `targets` (string): FeatureScript query selecting the target bodies (SUBTRACTION).
- `tool_ids` (array): Deterministic ids of the tool bodies.
- `tools` (string): FeatureScript query selecting the tool bodies.
- `validate` (boolean): Re-read the feature list afterwards and fail if the feature regenerated with an error (default true).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_boolean_union` (~143 tokens)

Union every body

Merge all modifiable solid bodies into one. The usual cleanup before exporting a single part.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `name` (string): Feature name shown in the tree (default "Union bodies").
- `validate` (boolean): Re-read the feature list afterwards and fail if the feature regenerated with an error (default true).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_mirror` (~204 tokens)

Mirror geometry

Mirror parts, bodies or faces across a plane.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `entities` (string, required): FeatureScript query selecting what to mirror.
- `name` (string): Feature name shown in the tree (default "Mirror").
- `plane_ids` (array): Deterministic id of the mirror plane, e.g. JCC for Front.
- `plane_query` (string): FeatureScript query selecting the mirror plane.
- `type` (string): What kind of thing is being mirrored (default PART).
- `validate` (boolean): Re-read the feature list afterwards and fail if the feature regenerated with an error (default true).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_linear_pattern` (~238 tokens)

Linear pattern

Repeat geometry along a direction, at a fixed spacing.

Input parameters:

- `count` (integer, required): Total number of instances, including the original.
- `direction` (string): FeatureScript query selecting the direction entity.
- `direction_ids` (array): Deterministic id of an edge giving the direction.
- `distance` (number, required): Spacing between instances, inches.
- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `entities` (string, required): FeatureScript query selecting what to pattern.
- `name` (string): Feature name shown in the tree (default "Linear Pattern").
- `opposite` (boolean): Pattern in the opposite direction.
- `type` (string): What kind of thing is patterned (default PART).
- `validate` (boolean): Re-read the feature list afterwards and fail if the feature regenerated with an error (default true).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_circular_pattern` (~239 tokens)

Circular pattern

Repeat geometry around an axis.

Input parameters:

- `angle` (number): Total angle covered, degrees (default 360).
- `axis` (string): FeatureScript query selecting the axis.
- `axis_ids` (array): Deterministic id of the axis entity.
- `count` (integer, required): Total number of instances, including the original.
- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `entities` (string, required): FeatureScript query selecting what to pattern.
- `equal_spacing` (boolean): Space instances evenly over the angle (default true).
- `name` (string): Feature name shown in the tree (default "Circular Pattern").
- `type` (string): What kind of thing is patterned (default PART).
- `validate` (boolean): Re-read the feature list afterwards and fail if the feature regenerated with an error (default true).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_offset_plane` (~210 tokens)

Create an offset plane

Add a construction plane offset from a default plane, a face, or another plane.

Input parameters:

- `base_ids` (array): Deterministic ids of the plane or face to offset from.
- `base_plane` (string): Default plane to offset from (default Front).
- `base_query` (string): FeatureScript query selecting the base plane or face.
- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `name` (string): Feature name shown in the tree (default "Offset plane").
- `offset` (number): Offset distance in inches (default 1).
- `validate` (boolean): Re-read the feature list afterwards and fail if the feature regenerated with an error (default true).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_get_edges` (~104 tokens)

List edges

Every edge of every solid body, with its deterministic id, owning body, type and radius (inches).

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_find_circular_edges` (~139 tokens)

Find circular edges

Circular edges, optionally only those matching a radius — the usual way to pick hole rims to fillet.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `radius` (number): Only return edges with this radius, in inches.
- `tolerance` (number): Radius match tolerance in inches (default 0.001).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_find_edges_by_feature` (~114 tokens)

Find edges created by a feature

Deterministic ids of the edges a given feature created, evaluated by Onshape.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `feature` (string, required): Feature id whose edges you want.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_get_variables` (~96 tokens)

List Part Studio variables

The variable table of a Part Studio: names, expressions and descriptions.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_set_variable` (~208 tokens)

Set a Part Studio variable

Create or update a variable. Feature tools can then reference it by name (depth_variable, radius_variable, ...) so a dimension lives in one place. Uses the variable table where the account supports it and falls back to an assignVariable feature otherwise; result.route says which was used.

Input parameters:

- `description` (string): What the variable means.
- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `expression` (string, required): Value expression with units, e.g. "0.25 in" or "2 * #wall".
- `name` (string, required): Variable name, without the leading #.
- `type` (string): Variable type; inferred from the expression's units when omitted.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_get_configuration` (~96 tokens)

Get element configuration

The configuration parameters an element exposes, with their ids and allowed values.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_encode_configuration` (~111 tokens)

Encode a configuration

Turn configuration parameter values into the encoded string other tools accept as `configuration`.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `params` (array, required): Parameter ids and the values to set.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_export_stl` (~176 tokens)

Export STL

Export the Part Studio as STL, for 3D printing. Measure the model before exporting it.

Input parameters:

- `ascii` (boolean): Write ASCII STL instead of binary.
- `configuration` (string): Encoded configuration string.
- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `out` (string): Output file path (default onshape-<timestamp>.stl in the output directory).
- `resolution` (string): Tessellation quality (default medium).
- `units` (string): STL units (default inch).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_export` (~203 tokens)

Export CAD format

Export through Onshape's translation service: STEP, IGES, 3MF, PARASOLID, SOLIDWORKS and others. Slower than STL because the translation is queued server-side.

Input parameters:

- `configuration` (string): Encoded configuration string.
- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `format` (string): Format name, e.g. STEP, IGES, 3MF, PARASOLID (default STEP).
- `kind` (string): Element kind being exported (default partstudios).
- `out` (string): Output file path (default onshape-<timestamp>.<format> in the output directory).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_shaded_view` (~255 tokens)

Render the model

Render the element server-side and return the image. Unlike a thumbnail this is generated on demand, so it always shows the current geometry — use it to check a model visually before exporting.

Input parameters:

- `configuration` (string): Encoded configuration string.
- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `height` (integer): Image height in pixels (default 340).
- `kind` (string): Element kind being exported (default partstudios).
- `no_edges` (boolean): Hide edges in the render.
- `out` (string): Output PNG path (default onshape-<timestamp>.png in the output directory).
- `return_image` (boolean): Also return the PNG inline (default true).
- `view_matrix` (string): 3x4 row-major camera matrix as 12 comma-separated numbers (default isometric).
- `width` (integer): Image width in pixels (default 600).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_get_thumbnail` (~176 tokens)

Download the element thumbnail

Save Onshape's stored thumbnail. Thumbnails are generated asynchronously and lag edits — prefer onshape_shaded_view to see the current state.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `out` (string): Output PNG path (default onshape-thumb-<timestamp>.png).
- `return_image` (boolean): Also return the PNG inline (default true).
- `size` (string): Thumbnail size, e.g. "600x340" or "300x300" (default 600x340).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_thumbnail_info` (~98 tokens)

List thumbnail sizes

The thumbnail sizes Onshape has rendered for this element, with their hrefs.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_create_assembly` (~78 tokens)

Create an assembly

Add an assembly tab to a workspace.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `name` (string, required): Tab name.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_get_assembly` (~146 tokens)

Get assembly structure

The assembly's instances, occurrences, mate features and mate connectors.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `include_mate_connectors` (boolean): Include mate connectors (default true).
- `include_mate_features` (boolean): Include mate features (default true).
- `include_non_solids` (boolean): Include non-solid instances (default false).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_insert_instance` (~220 tokens)

Insert an instance

Insert a part, a whole Part Studio or another assembly into an assembly. Insert from a version when pulling from a different document.

Input parameters:

- `configuration` (string): Encoded configuration for the inserted element.
- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `is_assembly` (boolean): The source element is an assembly.
- `part` (string): Part id, to insert a single part.
- `src_doc` (string): Source document id (defaults to the target document).
- `src_elem` (string, required): Element id of the source Part Studio or assembly.
- `src_version` (string): Source version id, required when inserting across documents.
- `whole_studio` (boolean): Insert every part of the source Part Studio.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_delete_instance` (~108 tokens)

Delete an instance

Remove one instance from an assembly by its occurrence node id.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `node` (string, required): Occurrence node id of the instance.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_transform_instance` (~150 tokens)

Transform instances

Apply a 4x4 row-major transform (16 numbers, metres) to the given occurrence paths.

Input parameters:

- `absolute` (boolean): Treat the transform as absolute rather than relative.
- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `paths` (array, required): Occurrence paths, each an array of node ids.
- `transform` (array, required): Row-major 4x4 transform matrix.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_get_assembly_features` (~101 tokens)

List assembly features

The mates, mate connectors and groups defined in an assembly, with their feature ids.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_assembly_mate_connector` (~173 tokens)

Add a mate connector

Place an implicit mate connector on an instance by inference (CENTROID, TOP, ...). Its feature id is what onshape_assembly_mate then joins.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `inference` (string): Inference type, e.g. CENTROID, TOP, MID_PLANE (default CENTROID).
- `name` (string): Feature name (default "Mate connector").
- `occurrence` (string, required): Occurrence id of the instance to attach to.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_assembly_mate` (~154 tokens)

Add a mate

Join two or more mate connectors with a mate: FASTENED, REVOLUTE, SLIDER, PLANAR, and so on.

Input parameters:

- `connectors` (array, required): Feature ids of the mate connectors to join.
- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `name` (string): Feature name (default "Mate").
- `type` (string): Mate type (default FASTENED).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_assembly_group` (~116 tokens)

Group instances

Lock several instances together without individual mates.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `name` (string): Feature name (default "Group").
- `occurrences` (array, required): Occurrence ids to group.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_assembly_add_feature` (~114 tokens)

Add a raw assembly feature

Post a hand-written assembly feature payload — the escape hatch for mate types with no tool here.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `feature` (object, required): The assembly feature JSON.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_get_bom` (~121 tokens)

Get the bill of materials

The assembly's BOM table.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `indented` (boolean): Return the indented BOM (default true).
- `multi_level` (boolean): Expand sub-assemblies (default false).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_assembly_mass_properties` (~96 tokens)

Get assembly mass properties

Mass, volume, centroid and inertia for a whole assembly.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_create_drawing` (~162 tokens)

Create a drawing

Create a drawing of a part, Part Studio or assembly. The source must be referenced by version — call onshape_create_version first and pass its id as src_version.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `name` (string, required): Drawing name.
- `part` (string): Part id, to draw a single part.
- `src_doc` (string): Source document id (defaults to the target document).
- `src_elem` (string, required): Element id being drawn.
- `src_version` (string, required): Version id of the source element.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_get_drawing_views` (~92 tokens)

List drawing views

The views placed on a drawing sheet.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_export_drawing` (~143 tokens)

Export a drawing

Export a drawing as PDF (or DWG/DXF) through the translation service.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `format` (string): Format name: PDF, DWG, DXF (default PDF).
- `out` (string): Output file path (default onshape-drawing-<timestamp>.<format>).
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_create_feature_studio` (~81 tokens)

Create a Feature Studio

Add a Feature Studio tab for custom FeatureScript.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `name` (string, required): Tab name.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_get_feature_studio` (~93 tokens)

Read a Feature Studio

The FeatureScript source of a Feature Studio.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_set_feature_studio` (~113 tokens)

Write a Feature Studio

Replace the FeatureScript source of a Feature Studio. The whole file is overwritten.

Input parameters:

- `contents` (string, required): The complete new FeatureScript source.
- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_get_feature_studio_specs` (~99 tokens)

Get Feature Studio specs

The feature specifications a Feature Studio defines, for calling its custom features.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_get_metadata` (~114 tokens)

Get element or part metadata

Read the properties of an element, or of one part when part is given.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `part` (string): Part id, to read that part's properties.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_set_metadata` (~145 tokens)

Set element or part metadata

Write properties such as part number, description or material. Only editable properties are accepted; read onshape_get_metadata first to find the property ids.

Input parameters:

- `doc` (string, required): Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>.
- `elem` (string, required): Element id (tab) — the <elem> segment of the document URL.
- `part` (string): Part id, to set that part's properties instead of the element's.
- `properties` (array, required): Property ids and their new values.
- `ws` (string, required): Workspace id — the <ws> segment of the document URL.

### `onshape_request` (~134 tokens)

Call any Onshape REST endpoint

Make an authenticated request to an arbitrary Onshape REST endpoint, for anything the dedicated tools do not cover. Paths start with /api/ and are documented at https://cad.onshape.com/glassworks/explorer. Prefer a dedicated tool when one exists — they normalise the response and validate the result.

Input parameters:

- `body`: JSON request body, for POST.
- `method` (string, required): HTTP method.
- `params` (object): Query string parameters.
- `path` (string, required): API path, e.g. /api/v6/documents/d/{did}/w/{wid}/elements. Must begin with /api/.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/gpambrozio-onshape/gpambrozio-onshape-mcp#diagnostics

## Score history

- 2026-09-24: 80
- 2026-09-23: 80
- 2026-09-22: 80

## Common questions

### What is the io.github.gpambrozio/onshape MCP server?

io.github.gpambrozio/onshape is an MCP server listed in the public MCP registry as io.github.gpambrozio/onshape. Drive Onshape CAD from an assistant: documents, sketches, solid features, assemblies and exports. This page covers its npm package (@gpambrozio/onshape-mcp).

### Is the io.github.gpambrozio/onshape MCP server safe to use?

io.github.gpambrozio/onshape scores 80 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 24 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the io.github.gpambrozio/onshape MCP server expose?

io.github.gpambrozio/onshape exposes 87 tools: onshape_login, onshape_login_status, onshape_set_api_key, onshape_auth_status, onshape_logout, and 82 more. Their descriptions and schemas cost roughly 12,547 tokens of context every time the server is loaded.

### Is the io.github.gpambrozio/onshape MCP server still maintained?

io.github.gpambrozio/onshape is still listed as active in the MCP registry. We last reached this channel on 24 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the io.github.gpambrozio/onshape MCP server under?

io.github.gpambrozio/onshape declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/@gpambrozio/onshape-mcp
- Socket report: https://socket.dev/npm/package/@gpambrozio/onshape-mcp
- Repository: https://github.com/gpambrozio/onshape-mcp
- Changelog RSS feed: https://verifymcp.io/servers/gpambrozio-onshape/gpambrozio-onshape-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/gpambrozio-onshape/gpambrozio-onshape-mcp.json
- HTML version of this page: https://verifymcp.io/servers/gpambrozio-onshape/gpambrozio-onshape-mcp
