Onshape integration
Onshape is a cloud CAD and PDM platform. Find, create, copy, share, version and branch documents; read parts, Part Studios and assemblies (features, mass properties, bounding boxes, bills of materials, configurations, metadata) and update metadata; import CAD files and export to STEP, glTF, OBJ, Parasolid, STL, PDF and other formats (asynchronous: poll get_translation); manage comments, tasks and webhooks; read revisions, companies, teams and users. Authentication is OAuth2 with your own Onshape OAuth application (Developer settings), and the connection asks for your Onshape address: cad.onshape.com, or companyname.onshape.com for an Enterprise. Every successful call counts toward Onshape's annual API call limit (2,500 per user on Free and Standard plans, 5,000 on Professional, 10,000 per full Enterprise user); past it Onshape answers HTTP 402. Onshape's API terms forbid automated data gathering from public documents. Not exposed: feature, assembly, configuration, variable and Feature Studio editing; workspace merge and restore; release packages, workflows, items, publications and aliases; folder sharing and public or anonymous access; tessellation, sketches and named views; file downloads and thumbnails (binary); company user management, billing and app settings.
Say what should happen.
The workflow builds itself.
What you can do with Onshape
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Each badge shows the default agent permission of an endpoint (allowed: an agent calls it without asking; ask first: you are asked before an agent calls it, when the agent or chat asks permission for sensitive actions; never: no agent may call it), which every user can change endpoint by endpoint in their credential settings.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
E, 8 operations
delete_elementDelete elementDELETEAgents: ask firstDeletes a tab (element) from a document workspace. Deleting the last element of a document fails.get_assemblyGet assemblyGETAgents: ask firstReturns an assembly's structure: root instances, sub-assemblies, occurrences with their transforms (meters), mates and parts. Use it to find instance and occurrence ids.get_element_metadataGet element metadataGETAgents: ask firstReturns the metadata of one tab (element): each property's id, name, value, type and editability (name, description, part number, revision, custom properties).get_part_metadataGet part metadataGETAgents: ask firstReturns the metadata of one part: each property's id, name, value, type and editability. Read it before update_part_metadata to get the property ids.list_element_partsList element partsGETAgents: ask firstLists the parts of one Part Studio (or the parts used in an Assembly): part id, name, body type, material, appearance, part number, revision and custom properties.list_elements_metadataList elements metadataGETAgents: ask firstReturns the metadata of every tab (element) of a document: each property's id, name, value, type and editability. Use the property ids to update with update_element_metadata.update_element_metadataUpdate element metadataPOSTAgents: ask firstSets metadata properties of a tab (element), such as name, description, part number or a custom property. Pass properties as [{propertyId, value}] using ids from get_element_metadata.update_part_metadataUpdate part metadataPOSTAgents: ask firstSets metadata properties of one part (part number, description, material, custom properties). Pass properties as [{propertyId, value}] using ids from get_part_metadata.
Comment, 5 operations
create_commentCreate commentPOSTAgents: ask firstPosts a comment on a document (documentId, message), optionally on an element or as a reply (parentId), and can assign it to a user. Posts a comment other people with access to the document can read.delete_commentDelete commentDELETEAgents: ask firstDeletes a comment.get_commentGet commentGETAgents: ask firstReturns one comment: message, author, assignee, element it is attached to, replies count and resolved state.list_commentsList commentsGETAgents: ask firstLists the comments of a document (did required), optionally of one element or part, resolved or not: message, author, assignee, replies and state. Contains user names (personal data).update_commentUpdate commentPOSTAgents: ask firstChanges the message of an existing comment. The assignee cannot be changed by an update.
D, 5 operations
get_workspace_metadataGet workspace metadataGETAgents: ask firstReturns the metadata of a document workspace or version: each property's id, name, value and editability.list_document_partsList document partsGETAgents: ask firstLists every part in a document workspace, version or microversion, across all Part Studios: part id, name, element id, body type, material, appearance, part number, revision and custom properties.list_document_revisionsList document revisionsGETAgents: ask firstLists the revisions that exist in a document and are owned by the document's owning company.list_document_translationsList document translationsGETAgents: ask firstLists the imports and exports (translations) of a document with their ids, state (ACTIVE, DONE, FAILED), format and result ids.update_workspace_metadataUpdate workspace metadataPOSTAgents: ask firstSets metadata properties of a document workspace or version. Pass properties as [{propertyId, value}] using ids from get_workspace_metadata.
Document, 5 operations
create_documentCreate documentPOSTAgents: ask firstCreates a new document (name required) owned by the signed-in user or a company, optionally in a folder (parentId) or project. Returns the document with its id and defaultWorkspace.id, which most other tools need.delete_documentDelete documentDELETEAgents: ask firstDeletes a document. The vendor does not describe the forever flag beyond its name; its own guide deletes with forever=false. Destructive: confirm the document id first.get_documentGet documentGETAgents: ask firstReturns one document: name, description, owner, created and modified by (user summaries), default workspace, latest version, permissions, tags and whether it is public or in the trash.list_documentsList documentsGETAgents: ask firstLists documents visible to the signed-in user, 20 per page at most (offset/limit), filtered by name text (q), category (filter), owner, folder (parentId), label or project. Returns ids, names, owner, default workspace and dates.update_documentUpdate documentPOSTAgents: ask firstChanges a document's name, description, tags, owner or folder. Send only the attributes to change; leave the others out to keep them.
Task, 5 operations
create_taskCreate taskPOSTAgents: ask firstCreates a task in draft state for a company (companyId required) with a name, description, document and referenced items. Returns the task with its id.get_taskGet taskGETAgents: ask firstReturns one task: name, description, state, assignees, creator, referenced items, comments and workflow state.list_tasksList tasksGETAgents: ask firstLists tasks assigned to a user (userId), filterable by status, role, type and document, 50 per page by default (at most 100). Only company admins see tasks they did not create and are not assigned to.transition_taskTransition taskPOSTAgents: ask firstMoves a task through its workflow (for example submit, accept or close it) by executing one of the transitions get_task lists. Changes the task's state.update_taskUpdate taskPOSTAgents: ask firstChanges a task's name, description, metadata properties or referenced items (itemParams to add, deleteItemIds to remove).
Translation, 5 operations
delete_translationDelete translationDELETEAgents: ask firstDeletes a translation (import or export) request record.export_assemblyExport assemblyPOSTAgents: ask firstStarts an export of an assembly to a file format (formatName from list_translation_formats with couldBeAssembly true). Returns a translation; poll get_translation until requestState is DONE or FAILED.export_drawingExport drawingPOSTAgents: ask firstStarts an export of a drawing (formatName from list_drawing_export_formats, such as PDF, DWG or DXF). Returns a translation; poll get_translation until requestState is DONE or FAILED.export_part_studioExport part studioPOSTAgents: ask firstStarts an export of a Part Studio to a file format (formatName from list_translation_formats, such as PARASOLID, STL, IGES). Returns a translation; poll get_translation until requestState is DONE or FAILED.get_translationGet translationGETAgents: ask firstReturns the state of an import or export: requestState ACTIVE, DONE or FAILED, failureReason, and the result element, document or external data ids. Poll it after an export or import tool.
Webhook, 5 operations
create_webhookCreate webhookPOSTAgents: ask firstRegisters a webhook that Onshape calls at url for the listed events of a document, folder, company or user. Onshape posts a test event at once and cancels the webhook unless the URL answers HTTP 200.delete_webhookDelete webhookDELETEAgents: ask firstUnregisters a webhook so Onshape stops calling it.get_webhookGet webhookGETAgents: ask firstReturns one webhook: URL, events, scope, filter, options and dropped event count.list_webhooksList webhooksGETAgents: ask firstLists the webhooks registered by the signed-in user (or by user or company): id, URL, events, scope and dropped event count.update_webhookUpdate webhookPOSTAgents: ask firstChanges a webhook's URL, events, scope or options. The vendor does not say whether fields left out are kept, so read it first with get_webhook and send the full intended settings.
Workspace, 4 operations
copy_elementCopy elementPOSTAgents: ask firstCopies a tab (element) from a source document into this document workspace, after anchorElementId or at the end of the tab list. Returns the new element.create_workspaceCreate workspacePOSTAgents: ask firstCreates a new workspace (branch) of a document from a version (versionId). Returns the workspace with its id.delete_workspaceDelete workspaceDELETEAgents: ask firstDeletes a workspace (branch) of a document, with the changes made in it that no version captured. Destructive.list_workspacesList workspacesGETAgents: ask firstLists the workspaces (editable branches) of a document with their ids, names and modification dates. The main workspace id is what wvm=w and wid expect.
Boundingbox, 3 operations
get_assembly_bounding_boxGet assembly bounding boxGETAgents: ask firstReturns the bounding box of an assembly (lowX..highZ, in meters).get_part_bounding_boxGet part bounding boxGETAgents: ask firstReturns the bounding box of one part (lowX..highZ, in meters).get_part_studio_bounding_boxGet part studio bounding boxGETAgents: ask firstReturns an approximate bounding box (lowX..highZ, meters) of a Part Studio's parts, meant for display: it is not a tight box.
Company, 3 operations
get_companyGet companyGETAgents: ask firstReturns one company, classroom or enterprise: name, type, domain prefix, enterprise base URL, address, owner and whether public documents are allowed.list_companiesList companiesGETAgents: ask firstLists the companies, classrooms or enterprises the signed-in user (or uid) belongs to, with id, name, type, domain prefix and enterprise base URL. Company ids feed the revision, task and where-used tools.list_company_revisionsList company revisionsGETAgents: ask firstLists all released revisions of a company page by page (follow next, keep the other params unchanged). Company admins only.
Massproperty, 3 operations
get_assembly_mass_propertiesGet assembly mass propertiesGETAgents: ask firstReturns mass, volume, centroid and inertia of an assembly. Its parts need a material density. Each value is [calculated, minimum, maximum].get_part_mass_propertiesGet part mass propertiesGETAgents: ask firstReturns mass, volume, surface area, centroid, inertia and principal axes of one part. The part needs a material density. Each value is [calculated, minimum, maximum].get_part_studio_mass_propertiesGet part studio mass propertiesGETAgents: ask firstReturns mass, volume, surface area, centroid, inertia and principal axes of a Part Studio's parts (or partId ones). Parts need a material density. Each value is [calculated, minimum, maximum].
Version, 3 operations
create_versionCreate versionPOSTAgents: ask firstSaves a new named version (an immutable snapshot) of a document from a workspace (workspaceId) or a microversion. Returns the version with its id.get_versionGet versionGETAgents: ask firstReturns one version of a document: name, description, creation date, creator, the microversion it captured and its parent version.list_versionsList versionsGETAgents: ask firstLists the versions (named, immutable snapshots) of a document with their ids, names, descriptions, creation dates and creators. Pass a version id as wvm=v to read the document as it was then.
W, 3 operations
create_assemblyCreate assemblyPOSTAgents: ask firstCreates a new, empty Assembly tab in a document workspace. Returns the new element with its id.create_part_studioCreate part studioPOSTAgents: ask firstCreates a new, empty Part Studio tab in a document workspace. Returns the new element with its id.import_fileImport filePOSTAgents: ask firstUploads a CAD or other file into a document workspace and translates it into parts or assemblies (translate=true) or keeps it as a file tab. Returns a translation; poll get_translation until DONE or FAILED.
Bodydetail, 2 operations
get_part_body_detailsGet part body detailsGETAgents: ask firstReturns the topology of one part (faces, edges, vertices with their geometry). Coordinates are in meters.get_part_studio_body_detailsGet part studio body detailsGETAgents: ask firstReturns the topology of the bodies in a Part Studio (faces, edges, vertices with their geometry). Coordinates are in meters.
Configurationencoding, 2 operations
decode_configurationDecode configurationGETAgents: ask firstDecodes an encoded configuration string back into its parameter ids and values.encode_configurationEncode configurationPOSTAgents: ask firstTurns configuration parameter ids and values into the encoded configuration string that the configuration param of other tools expects. Returns encodedId and queryParam.
Feature, 2 operations
list_assembly_featuresList assembly featuresGETAgents: ask firstReturns the feature list of an assembly (mates, mate connectors, patterns...) with each feature's id, type, name and parameters; filter with featureId.list_part_studio_featuresList part studio featuresGETAgents: ask firstReturns the feature list of a Part Studio (sketches, extrudes, fillets...) with each feature's id, type, name, parameters and suppression state, plus the rollback bar index and the default features.
Gltf, 2 operations
export_assembly_gltfExport assembly gltfPOSTAgents: ask firstStarts an export of an assembly to glTF. Returns a translation; poll get_translation until requestState is DONE or FAILED. With storeInDocument=true the file is saved as a tab of the document.export_part_studio_gltfExport part studio gltfPOSTAgents: ask firstStarts an export of a Part Studio to glTF. Returns a translation; poll get_translation until requestState is DONE or FAILED. With storeInDocument=true the file is saved as a tab of the document.
Obj, 2 operations
export_assembly_objExport assembly objPOSTAgents: ask firstStarts an export of an assembly to OBJ. Returns a translation; poll get_translation until requestState is DONE or FAILED. With storeInDocument=true the file is saved as a tab of the document.export_part_studio_objExport part studio objPOSTAgents: ask firstStarts an export of a Part Studio to OBJ. Returns a translation; poll get_translation until requestState is DONE or FAILED. With storeInDocument=true the file is saved as a tab of the document.
Partnumber, 2 operations
get_revisionGet revisionGETAgents: ask firstReturns one released revision of a part number in a company (the latest when revision is left out): revision, document, element, part, release date, approvers and obsolete state.list_part_number_revisionsList part number revisionsGETAgents: ask firstLists every revision of a part number in a company. elementType is required: -1 searches all types, 0 Part Studio, 1 Assembly, 2 Drawing.
Share, 2 operations
share_documentShare documentPOSTAgents: ask firstShares a document with users (by id or email), teams or companies through entries, with a permission set (READ, WRITE, COMMENT, COPY, EXPORT...). Gives those people access to the document.unshare_documentUnshare documentDELETEAgents: ask firstRemoves a user's, team's or company's access to a document. entryType says what kind of id entityId is.
Step, 2 operations
export_assembly_stepExport assembly stepPOSTAgents: ask firstStarts an export of an assembly to STEP. Returns a translation; poll get_translation until requestState is DONE or FAILED. With storeInDocument=true the file is saved as a tab of the document.export_part_studio_stepExport part studio stepPOSTAgents: ask firstStarts an export of a Part Studio to STEP. Returns a translation; poll get_translation until requestState is DONE or FAILED. With storeInDocument=true the file is saved as a tab of the document.
Team, 2 operations
get_teamGet teamGETAgents: ask firstReturns one team: name, description, owner, creation and modification details, and whether the user is a member or admin.list_teamsList teamsGETAgents: ask firstLists the teams the signed-in user belongs to (or those of a company): id, name, description, owner and size.
Translationformat, 2 operations
list_drawing_export_formatsList drawing export formatsGETAgents: ask firstLists the file formats a drawing can be exported to with export_drawing.list_translation_formatsList translation formatsGETAgents: ask firstLists the file formats Onshape can import and export (name, file extensions, whether it can hold an assembly). Not every format supports both directions.
Acl, 1 operation
get_document_aclGet document aclGETAgents: ask firstReturns who a document is shared with (users, teams, companies) and with which permissions, plus its owner and public status. Contains user names and emails (personal data).
Bom, 1 operation
get_bill_of_materialsGet bill of materialsGETAgents: ask firstReturns an assembly's bill of materials: headers (columns) and rows with item, quantity, part number, name, material and other properties, flattened or structured (indented).
Configuration, 1 operation
get_configurationGet configurationGETAgents: ask firstReturns the configuration definition of a Part Studio, Variable Studio or Assembly: its configuration inputs (parameters), their options and the current values.
Copy, 1 operation
copy_documentCopy documentPOSTAgents: ask firstCopies a document workspace into a new document (newName required) owned by the user or a company, optionally in a folder. Returns the new document's id and default workspace id.
Create, 1 operation
create_drawingCreate drawingPOSTAgents: ask firstCreates a drawing tab of a part, Part Studio or assembly (documentId, elementId, partId, version...), optionally from a template, with a title block, standard, size and units. Returns the new drawing element.
Currentmicroversion, 1 operation
get_current_microversionGet current microversionGETAgents: ask firstReturns the current microversion id of a document workspace or version, the id that pins an exact document state for wvm=m reads.
Documenthistory, 1 operation
get_document_historyGet document historyGETAgents: ask firstReturns the change history of a document workspace (or up to a microversion): each entry with its microversion id, description, user and date.
Element, 1 operation
list_elementsList elementsGETAgents: ask firstLists the tabs (elements) of a document in a workspace, version or microversion: id, name, type (Part Studio, Assembly, Drawing, Feature Studio, blob...), units and microversion. Folders are not listed.
Featurescript, 1 operation
evaluate_featurescriptEvaluate featurescriptPOSTAgents: ask firstEvaluates a FeatureScript lambda (script) against a Part Studio without changing it, for computed values such as tight bounds or custom queries. Returns the result value and notices.
Instance, 1 operation
insert_assembly_instanceInsert assembly instancePOSTAgents: ask firstInserts an instance of a part, Part Studio, sketch or assembly (from this or another document) into an assembly. Pass documentId (required) and elementId of the source, plus versionId or microversionId when it is another document.
Latest, 1 operation
get_latest_revisionGet latest revisionGETAgents: ask firstReturns the latest revision of a part number, looked up in a company (cd=c) or a document (cd=d). Answers with no body (HTTP 204) when the part number has no revision.
Matevalue, 1 operation
list_mate_valuesList mate valuesGETAgents: ask firstReturns, for the mates of an assembly, the relative position of the first mate connector to the second along each degree of freedom.
Member, 1 operation
list_team_membersList team membersGETAgents: ask firstLists the members of a team, 20 per page at most: user id, name and admin flag. Personal data.
Nodeid, 1 operation
delete_assembly_instanceDelete assembly instanceDELETEAgents: ask firstDeletes an instance from an assembly. nid is the instance's node id, as returned by get_assembly.
P, 1 operation
list_parts_metadataList parts metadataGETAgents: ask firstReturns the metadata of every part of an element: per part, each property's id, name, value and editability (part number, material, description, custom properties).
Ping, 1 operation
ping_webhookPing webhookPOSTAgents: ask firstMakes Onshape send a webhook.ping event to the webhook's URL now, to test it.
Reopen, 1 operation
reopen_commentReopen commentPOSTAgents: ask firstReopens a resolved comment.
Resolve, 1 operation
resolve_commentResolve commentPOSTAgents: ask firstMarks a comment as resolved.
Search, 1 operation
search_documentsSearch documentsPOSTAgents: ask firstSearches documents by name text (rawQuery) within a category (documentFilter: my documents, created, shared, trash, recent, by owner, company or team), 20 per page at most. Returns the same document records as list_documents.
Sessioninfo, 1 operation
get_session_infoGet session infoGETAgents: ask firstReturns the signed-in user: id, name, email, company, role, global permissions and plan group. Personal data of the connected account.
User, 1 operation
list_company_usersList company usersGETAgents: ask firstLists the members of a company, 20 per page by default, filterable by name or email (q), role and date added: name, admin flag, guest or light user, last login. Personal data.
View, 1 operation
list_drawing_viewsList drawing viewsGETAgents: ask firstLists the views of a drawing with their ids, names, types, scale and position.
Whereused, 1 operation
get_where_usedGet where usedGETAgents: ask firstFinds where a part or assembly is used (documents, elements, versions) by documentId and elementId plus partId or partNumber. Enterprise and Professional plans only.
Use Onshape from Claude Code, Cursor or Codex
Connect Onshape in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Onshape operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect Onshape
- Create your workspace
Sign up free. Nothing to install.
- Connect Onshape once
Add your Onshape connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
Onshape integration FAQ
What can you do with the Onshape integration?
LiveContext exposes 100 operations on Onshape, covering e, comment, d and document.
