onshape-mcp
Drive Onshape CAD from an AI assistant through 93 MCP tools.
Sign in via browser API-key flow, OAuth, direct key storage, keychain/env credentials, and check/logout status.
Manage documents: list, search, get, summarize, create, update, delete, workspaces, elements, and versions.
Build and edit Part Studios: create tabs, inspect features/sketches/bodies/parts, add/update/delete features, rollback, and run FeatureScript.
Sketch shapes and create solids with extrude, hole, thicken, revolve, sweep, fillet, chamfer, shell, draft, booleans, mirror, patterns, and offset planes.
Inspect geometry: edges, circular edges, edges by feature, mass properties, measurements, clearance/interference, and part-studio validation.
Use variables and configurations: get/set variables and read/encode configurations.
Export/render: STL, STEP/IGES/3MF/PARASOLID, shaded PNG renders, thumbnails, and drawing PDF/DWG/DXF.
Work with assemblies: create, insert/delete/transform instances, mate connectors, mates, groups, relations, mate values, BOM, and mass properties.
Work with drawings, Feature Studios, and metadata.
Use onshape_request as an authenticated raw REST escape hatch.
Safety/UX: validates features by default, returns ok/error envelopes, renders inline images, spills large responses to disk, and uses inches/degrees except STL millimetres.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@onshape-mcpMake a 60 × 40 × 10 mm bracket with 4 mm mounting holes and 2 mm fillets, then show me a render"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Onshape MCP server
Drive Onshape CAD from an AI assistant. 93 tools for documents, part studios, sketching, solid features, assemblies, drawings, measurement and export — and no setup beyond installing it: the first tool call that needs Onshape opens a browser and asks you to connect.
"Make a 60 × 40 × 10 mm bracket with 4 mm mounting holes and 2 mm fillets, then show me a render"The assistant sketches it, extrudes it, fillets the edges, measures the result, renders it back into the conversation, and exports an STL you can print.
Install
Claude Code
claude mcp add onshape -- npx -y @gpambrozio/onshape-mcpClaude Desktop — download onshape-mcp-<version>.mcpb from the
latest release and
double-click it. Nothing else to install.
Cursor, VS Code, Windsurf, Zed and other MCP clients — add the server to the client's MCP config:
{
"mcpServers": {
"onshape": {
"command": "npx",
"args": ["-y", "@gpambrozio/onshape-mcp"]
}
}
}The file differs per client: ~/.cursor/mcp.json (Cursor), .vscode/mcp.json
(VS Code), ~/.codeium/windsurf/mcp_config.json (Windsurf), ~/.config/zed/settings.json
under context_servers (Zed).
Node 20 or newer is required. npx fetches the package on first run.
Related MCP server: onshape-mcp
Signing in
Nothing to configure. The first tool call that needs Onshape starts a sign-in and asks your client to show you the link; clients that support MCP's URL elicitation render it as a prompt, and the rest get the URL in the reply. The page that opens links straight to the key page for your Onshape stack and takes the pasted pair; tick Read, Write and Delete when you create the key so every tool here works. Keys are verified against Onshape, then stored in your OS keychain.
Your credentials never pass through the assistant, the model or this project's
authors — the exchange happens between your browser and a server bound to
127.0.0.1 in this process, which is exactly why MCP has URL elicitation.
Other ways in, if you prefer:
onshape_login— start the same flow deliberately.onshape_set_api_key— paste a key pair you already have.OAuth 2.0 —
onshape_loginwithmethod: "oauth", for an app you registered at the Onshape developer portal with redirect URLhttp://localhost:8471/oauth/callback. Tokens refresh automatically.Environment variables — set
ONSHAPE_ACCESS_KEYandONSHAPE_SECRET_KEYfor unattended installs, andONSHAPE_MCP_AUTO_LOGIN=0to stop the server ever opening a browser.
An existing onshape-cli credential at
~/.onshape/credentials.json is picked up automatically.
onshape_auth_status shows what is in use (redacted); onshape_logout forgets it.
Tools
Area | Tools |
Sign-in |
|
Documents |
|
Part studios |
|
Sketching |
|
Solids |
|
Geometry |
|
Variables |
|
Export |
|
Assemblies |
|
Drawings |
|
Feature studios |
|
Metadata |
|
Escape hatch |
|
All names are prefixed onshape_, and every tool returns {"ok": true, "result": …}
or {"ok": false, "error": …, "detail": …}.
Worth knowing:
Units are inches and degrees throughout, except STL exports, which are millimetres by default because that is what slicers assume.
Feature tools validate by default. Onshape answers
200for a feature that fails to regenerate, so each tool re-reads the feature state and fails loudly instead.update_featurealso fails when the edit puts another feature into ERROR; errors that were already there before the edit are listed invalidation.preexistingErrorsinstead. Passvalidate: falseto skip it.Assemblies:
assembly_matejoins Part Studio mate connectors directly ({path: [instance id], connector: "FabC_0.mcPinion"}, asget_assemblylists them),insert_instancetakesfixed: trueto ground an instance, andassembly_relationcouples mates as gear, rack and pinion, screw or linear.set_mate_valuesdrives mates in inches and degrees and fails when Onshape ignores a value, which it does for mates with limits enabled.Part Studio writes acknowledge applied changes. Creation replies include
creationApplied: true; updates includeupdateApplied: trueafter the POST completes. Validation errors do not undo the change: inspect the model before retrying. A failed POST does not establish whether the server applied a change. Large replies retain the feature ID and validation outcome inline, with the full response insaved_to. If that file cannot be saved,responseStorageErrorreports the storage problem without changing the write/validation outcome.validate: falseis reported asvalidationSkipped: true.Renders come back as images.
shaded_viewandget_thumbnailreturn the PNG inline as well as writing it, so the model can see the part.Big reads spill to disk. Anything over
ONSHAPE_MCP_MAX_RESPONSE_BYTES(default 200 kB) is written to a file and summarised, keeping a feature tree from swallowing the context window.onshape_requestreaches any REST endpoint the dedicated tools miss.
Configuration
Every setting is optional.
Variable | Effect |
| Use this key pair instead of signing in |
| Onshape API host (default |
| OAuth app to sign in with, instead of an API key |
|
|
|
|
| How long a call waits for sign-in (default 120000) |
| Default target; these arguments become optional when set |
| Where relative export paths land (default: working directory) |
| Response size before spilling to a file (default 200000) |
| Credential file path (default |
| Per-request timeout (default 120000) |
Secrets go to the OS keychain (service onshape-mcp) when one is available, and
the config file then holds only non-secret metadata. Without a keychain the file
holds the secret and is written 0600 inside a 0700 directory.
Onshape account limits
These come from Onshape, not from this server:
Free accounts can only create public documents — pass
public: truetoonshape_create_document.Deleting needs a key with delete permission. Without it Onshape answers
403 Invalid API key state; re-create the key at cad.onshape.com/user/developer/apiKeys with Delete ticked.An instance can only be fixed when it is inserted. There is no public call to fix or unfix one later; insert it again with
fixedand delete the old one.Mate values need API version 10. Older versions accept a write and ignore it;
get_mate_valuesandset_mate_valuesuse v10.The variable-table endpoint 404s on some accounts.
onshape_set_variableandonshape_get_variablesfall back toassignVariablefeatures, which work everywhere;result.route/result.sourcesays which path was taken. Setting a name that already has a Variable feature rewrites that feature in place.
Development
npm install
npm run check # type-check
npm test # unit tests, no network and no browser
npm run build
npm run bundle # build the Claude Desktop .mcpb
node scripts/smoke.mjs # live read-only check against your account
node scripts/smoke.mjs --write # also builds a throwaway part
node scripts/smoke.mjs --assembly <doc> # rack and pinion assembly in a scratch documentLayout: src/auth (credential store, keychain, login flows, OAuth, elicitation),
src/api (REST wrappers), src/builders (Onshape BTM feature payloads),
src/tools (the MCP surface), src/server.ts (registration and the auth gate).
Contributions welcome — see CONTRIBUTING.md. Security reports: SECURITY.md.
Licence
MIT. Portions derived from onshape-cli
— see NOTICE.
Not affiliated with, endorsed by, or supported by Onshape or PTC. "Onshape" is a trademark of PTC Inc.
Available Tools
93 toolsonshape_add_featureAdd a raw featureA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| feature | Yes | The feature JSON, usually a BTFeatureDefinitionCall-1406 envelope. | |
| validate | No | Re-read the feature list afterwards and fail if the feature regenerated with an error (default true). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide a title, so the description carries the behavioral burden. It discloses that the tool posts a raw BTM payload (a low-level, hand-written operation), and the 'validate' parameter description adds that it re-reads the feature list and fails on regeneration errors. It does not explicitly state that this is a mutating operation, but 'Post' and 'add' clearly imply it. The escape-hatch framing also warns the agent this is advanced usage. Minor gap: no mention of auth requirements or failure modes beyond validation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler. The core action and the escape-hatch purpose are front-loaded, and the prerequisite sibling is named in the same breath. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-level raw-payload tool with no output schema, the description gives the essential context: what it posts, where, when to use it, and what to read first. The validate parameter's behavior is documented in the schema. It could add a note about the response shape or error behavior, but the escape-hatch framing plus the prerequisite pointer is enough for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The description adds context for the 'feature' parameter by calling it a BTM payload and mentioning the BTFeatureDefinitionCall-1406 envelope, which is genuinely useful beyond the schema. However, the description does not explain the doc/ws/elem URL-segment pattern beyond what the schema already says, so the added value is modest. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Post'), a specific resource ('a hand-written BTM feature payload to a Part Studio'), and explicitly frames it as the escape hatch for feature types with no dedicated tool. This clearly distinguishes it from the many sibling feature-creation tools (extrude, hole, fillet, etc.) and from onshape_update_feature/onshape_delete_feature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use it: for feature types this server has no dedicated tool for. It also names the prerequisite sibling, onshape_get_feature_specs, telling the agent to read that first. This is strong routing guidance that prevents misuse of the raw-payload tool when a dedicated tool exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_assembly_add_featureAdd a raw assembly featureB
Post a hand-written assembly feature payload — the escape hatch for mate types with no tool here.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| feature | Yes | The assembly feature JSON. | |
| validate | No | Re-read the feature list afterwards and fail if the feature regenerated with an error (default true). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations carry only a title, so the description bears the full behavioral burden. 'Post' reveals it is a mutation, but there is no mention of permissions/auth needs, that a raw payload bypasses the safety of typed mate tools, what happens to the assembly on partial failure, or the practical consequence of the schema's 'validate' default (a re-read that fails the call on regeneration error). For a low-level write escape hatch, that is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, front-loaded with the action and closed with the routing rule. Nothing redundant, nothing padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With five parameters, a free-form nested 'feature' object (additionalProperties), no output schema, and no annotations, the description is too thin: it does not say where a valid payload comes from (e.g. onshape_get_assembly_features), what the response returns, or what 'validate' failure means in practice. An agent could not confidently construct a correct call from this definition alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so doc/ws/elem and the 'validate' semantics are already documented in the schema; baseline 3 applies. The description adds only the phrase 'hand-written payload', hinting that 'feature' is unvalidated free-form JSON, and gives no hint about where to obtain a valid payload shape.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action (post a hand-written assembly feature payload) on a specific resource, and the phrase 'escape hatch for mate types with no tool here' implicitly distinguishes it from the sibling mate tools (onshape_assembly_mate, onshape_assembly_relation) and from onshape_update_assembly_feature. It never names those siblings explicitly, so the differentiation is inferential rather than declarative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'the escape hatch for mate types with no tool here' signals the when-to-use condition (only when no dedicated tool covers the mate type), which is genuine routing guidance. However, no alternative is named, no prerequisite is given (does the element need to be an assembly tab?), and there is no when-not-to-use statement beyond the implication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_assembly_groupGroup instancesB
Lock several instances together without individual mates.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| name | No | Feature name (default "Group"). | |
| validate | No | Re-read the feature list afterwards and fail if the feature regenerated with an error (default true). | |
| occurrences | Yes | Occurrence ids to group. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide only a title, so the description carries the burden. It conveys the key behavior (rigid grouping that locks instances without mates), but omits that it creates a feature in the assembly, whether it's reversible, error behavior, or permission needs—relevant for a mutation tool with minimal annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. Efficient, though it is so terse that a bit more context could have been added without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and title-only annotations, the description is thin—it doesn't mention the feature-creation side effect or validation behavior, though the fully documented schema covers the inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all six parameters are already documented in the schema. The description adds no parameter-level meaning beyond that, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action (lock instances together) with a clear mechanism (no individual mates), which distinguishes it from mate-based siblings like onshape_assembly_mate. It doesn't explicitly name the alternate tool, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Without individual mates" implies when this is preferable to mating, but there is no explicit when-to-use/when-not guidance or named alternative. Usage is only inferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_assembly_mass_propertiesGet assembly mass propertiesARead-only
Mass, volume, centroid and inertia for a whole assembly.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes that this is a safe read operation. The description adds some value by enumerating the returned quantities (mass, volume, centroid, inertia) and the whole-assembly scope, but it does not mention units, coordinate system, or response structure. No contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is nine words and contains no filler or repetition. The key target ('whole assembly') and the output list are front-loaded, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only query tool with all parameters fully documented in the schema, this description is largely complete: it names the object scope and all returned value categories. It could be more complete by stating units or coordinate frame, and there is no output schema to fall back on, but an agent has enough information to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each required identifier (doc, ws, elem) explained in the context of the Onshape URL. The tool description itself adds no parameter-level meaning, so the schema carries the full burden; the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool produces—mass, volume, centroid, and inertia—for a whole assembly, and the 'whole assembly' qualifier narrows the scope. However, it does not explicitly contrast this with the closely named sibling onshape_mass_properties, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for a whole assembly' implies the intended use case (assembly-level mass properties) and suggests it is not for individual parts. It gives no explicit when-to-use or when-not-to-use guidance and does not name alternatives such as onshape_mass_properties or onshape_measure.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_assembly_mateAdd a mateA
Join two mate connectors with a mate: FASTENED, REVOLUTE, SLIDER, CYLINDRICAL, PLANAR, and so on. Each connector is an assembly-level mate connector's feature id, or a Part Studio mate connector given as {path: [instance id], connector: feature id} from onshape_get_assembly. The mate's value measures the first connector against the second, so list the moving part first.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| name | No | Feature name (default "Mate"). | |
| type | No | Mate type (default FASTENED). | |
| validate | No | Re-read the feature list afterwards and fail if the feature regenerated with an error (default true). | |
| connectors | Yes | The mate connectors to join, moving part first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses useful semantics like mate-type options and connector-ordering effects, but it never explicitly states that this creates a persistent assembly mate feature, what permissions are required, or what the validate parameter does on failure — schema covers validate but the description does not surface the mutation profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, zero waste. The operation is front-loaded, followed by connector-format details and then the ordering caveat, which is exactly the order an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, no output schema, and seven parameters, the description leaves key operational facts unsaid: that it creates a feature, error/failure behavior, and what validate actually gates. The connector semantics are complete, but the mutation and validation story is only inferable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, establishing a baseline of 3, and the description genuinely adds meaning: it enumerates concrete mate types beyond the schema's bare 'Mate type (default FASTENED)', explains the two connector representation shapes, and clarifies that the first connector is the moving part. It does not document name or validate behavior, but it improves on the schema's semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — joining two mate connectors with a mate — and enumerates mate types, so the agent knows exactly what operation it performs. It does not explicitly distinguish itself from sibling tools such as onshape_assembly_mate_connector or onshape_assembly_relation, which keeps it short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete procedural guidance: where to obtain connectors (onshape_get_assembly), the two accepted connector formats, and the ordering rule (moving part first). It stops short of stating when not to use it or naming the alternative sibling for other join operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_assembly_mate_connectorAdd a mate connectorA
Place an implicit mate connector on an instance by inference (CENTROID, TOP, ...). Its feature id is what onshape_assembly_mate then joins.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| name | No | Feature name (default "Mate connector"). | |
| validate | No | Re-read the feature list afterwards and fail if the feature regenerated with an error (default true). | |
| inference | No | Inference type, e.g. CENTROID, TOP, MID_PLANE (default CENTROID). | |
| occurrence | Yes | Occurrence id of the instance to attach to. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations carry only a title, so the description bears most of the disclosure burden: it correctly frames the operation as creating a feature via inference and discloses that the return value is a feature id. It does not mention that this mutates the assembly feature list, whether the connector is persisted, or what happens if 'validate' fails beyond what the schema already spells out. Useful context, but an incomplete behavioral picture for a mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core action front-loaded and the downstream dependency in the second clause; nothing extraneous. It could be marginally clearer by naming the return type explicitly ('returns the feature id'), but there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-param mutation with no output schema, the description does cover what the agent most needs: what gets created, how it's inferred, and that the output feeds onshape_assembly_mate. The one real gap is the absence of any note on error behavior or side effects, which 'validate' hints at only in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (doc/ws/elem/occurrence/name/validate/inference) is already documented with defaults and URL-segment hints. The description only echoes the inference examples already present in the schema, adding no syntax or value guidance beyond it — baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — 'Place an implicit mate connector on an instance by inference' — and immediately ties it to the sibling that consumes its output ('what onshape_assembly_mate then joins'). The parenthetical inference examples (CENTROID, TOP) make the mechanism concrete, so an agent can distinguish this from onshape_assembly_mate and onshape_assembly_add_feature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sequencing hint ('Its feature id is what onshape_assembly_mate then joins') tells the agent this is a prerequisite step in the mating workflow, which is genuine when-to-use guidance. It stops short of explicit exclusions — e.g., it never says when to use an explicit mate connector feature instead of inference — so it earns a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_assembly_relationRelate two matesA
Couple mates so one drives the other: GEAR (two revolutes, ratio), RACK_AND_PINION (a revolute and a slider, distance per revolution), SCREW (one cylindrical mate, distance per revolution) or LINEAR (two sliders, ratio). Each mate's degree of freedom follows from its type; cylindrical mates contribute whichever the relation needs. Mates missing the parameter relations need (made by hand-written payloads) are completed first and listed in completedMates. Fails if the relation does not regenerate.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| dofs | No | Override the degree of freedom per mate: Rz rotation about, Tz translation along, its Z axis. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| name | No | Feature name (default "Relation"). | |
| type | Yes | Relation type. | |
| mates | Yes | Mate feature ids: two, or one for SCREW. | |
| ratio | No | GEAR and LINEAR: the ratio between the mates (default 1). | |
| reverse | No | Reverse the direction of the coupling. | |
| distance_per_revolution | No | RACK_AND_PINION and SCREW: travel per full turn, inches. A pinion's is its pitch circumference. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations carry only a title, so the description bears the full burden and does disclose meaningful behavior beyond the schema: it mutates other features by completing missing mate parameters and reports them in completedMates, and it fails if the relation does not regenerate. It does not state permission requirements or whether an existing relation is overwritten, but the side-effect and failure disclosures are unusually concrete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then the type enumeration, then the side-effect and failure notes. Dense but every sentence adds information; the first sentence is long with nested parentheticals but remains scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter mutation tool with no annotations and no output schema, the description covers the valid type/mate combinations, the dof derivation, the completedMates return value, and the failure mode. Missing only permission/prerequisite and overwrite semantics to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it explains that each mate's degree of freedom follows from its type and that cylindrical mates contribute whichever the relation needs, which clarifies the purpose of the dofs override. It also maps ratio and distance_per_revolution to their relation types, though that partly duplicates the schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — coupling two existing mates so one drives the other — and then enumerates the four relation types with the mate types each requires (GEAR = two revolutes, SCREW = one cylindrical mate). This clearly separates it from the sibling mate-creation tools like onshape_assembly_mate, since it operates on already-existing mates rather than creating them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The per-type prerequisites (e.g. 'RACK_AND_PINION (a revolute and a slider)', 'SCREW (one cylindrical mate)') effectively tell an agent when a given relation is valid. There is no explicit exclusion or named alternative, but the context for selecting among the four relation types is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_auth_statusShow Onshape sign-in statusARead-only
Report which Onshape credential is active, where it came from and whether it still works. Secrets are redacted.
| Name | Required | Description | Default |
|---|---|---|---|
| verify | No | Also make a live API call to confirm the credential (default true). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true. The description adds value by noting that secrets are redacted and that the tool reports credential origin and validity, going beyond the annotation. It does not explicitly state that the verify parameter controls whether a live check is performed, but that is captured in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no redundant wording. The main purpose is front-loaded, and the additional note about redaction is concise and relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only status tool with one optional parameter and no output schema, the description covers the core behavior and adds redaction context. It is adequate for an agent to understand the tool's function, though it could mention the verify parameter's effect explicitly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'verify' parameter, which is fully described in the input schema. The description adds no additional semantics beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reports which credential is active, its source, and validity. It is specific and not a tautology, but it does not differentiate from the similarly named sibling onshape_login_status, which could overlap in purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like onshape_login_status or onshape_login. It does not mention conditions for use or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_booleanBoolean bodiesB
Combine bodies: UNION, SUBTRACTION or INTERSECTION. Subtraction also needs the targets query.
| Name | Required | Description | Default |
|---|---|---|---|
| op | No | Boolean operation (default UNION). | |
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| name | No | Feature name shown in the tree (default "Boolean"). | |
| tools | No | FeatureScript query selecting the tool bodies. | |
| targets | No | FeatureScript query selecting the target bodies (SUBTRACTION). | |
| tool_ids | No | Deterministic ids of the tool bodies. | |
| validate | No | Re-read the feature list afterwards and fail if the feature regenerated with an error (default true). | |
| keep_tools | No | Keep the tool bodies after the operation. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations contain only a title, so the description carries the full burden of behavioral disclosure. It identifies the operation type but does not mention that boolean operations typically consume tool bodies unless keep_tools is set, that the feature is validated by default, or what happens on regeneration errors. For a mutating CAD operation, this is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The core action and operation modes are front-loaded, and the special subtraction requirement is stated economically. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This tool has 10 parameters, a destructive editing effect, and no output schema or meaningful annotations. The description only covers the basic operation and one parameter dependency. It omits default behavior for tools/keep_tools, validation behavior, and side effects, leaving an agent without enough context to anticipate the tool's full impact.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds genuine value beyond the schema by explicitly calling out that SUBTRACTION also requires the targets query, which is a critical conditional dependency not stated in the parameter descriptions themselves.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Combine bodies') on a specific resource (bodies) and enumerates the operation modes (UNION, SUBTRACTION, INTERSECTION). However, it does not differentiate from the closely named sibling tool onshape_boolean_union, leaving the agent to infer which of the two boolean tools to choose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives one useful operational guideline: subtraction requires the targets query. But it provides no general guidance on when to use this tool versus onshape_boolean_union or any other feature-creation sibling, and no exclusions or prerequisites. The context is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_boolean_unionUnion every bodyA
Merge all modifiable solid bodies into one. The usual cleanup before exporting a single part.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| name | No | Feature name shown in the tree (default "Union bodies"). | |
| validate | No | Re-read the feature list afterwards and fail if the feature regenerated with an error (default true). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only contain a title, so the description carries the behavioral burden. It states that the operation merges all modifiable solid bodies, implying a mutation. However, it does not disclose side effects such as whether original bodies are removed, whether the operation is destructive, or failure conditions (e.g., what happens if no bodies are modifiable). It also does not mention that this adds a feature to the tree. This is a minimal but honest description; it conveys the core behavior without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The primary action is front-loaded ('Merge all modifiable solid bodies into one'), and the second sentence provides a practical use case. Every word earns its place, and the structure is optimal for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and that the schema fully documents parameters, the description covers the essential purpose and context. It explains what the tool does and when to use it, which is enough for an agent to select and call it. The lack of an output schema means return values are not expected to be detailed, and the description does not need to explain them. Minor gaps exist (e.g., failure behavior), but overall it is complete for its role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters already have detailed descriptions in the schema. The tool description adds no parameter-specific information beyond what the schema provides. Per the rubric, when coverage is high, the baseline is 3. The description does not clarify any parameter semantics further, which is acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Merge all modifiable solid bodies into one.' It identifies the resource (solid bodies) and the operation (union). It also adds context about the typical use case ('cleanup before exporting a single part'), which helps an agent understand when it applies. The phrase 'all modifiable' distinguishes it from a generic boolean tool like onshape_boolean.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case: 'The usual cleanup before exporting a single part.' This signals when an agent should consider this tool. It does not explicitly name alternatives or exclusions (e.g., when to use onshape_boolean instead), but the context implies it is for merging everything into one body. This is sufficient guidance for most scenarios, though explicit sibling differentiation would be stronger.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_chamferChamfer edgesB
Bevel the selected edges. Selection works exactly as for onshape_fillet.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| all | No | Select all edges of all solid bodies. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| name | No | Feature name shown in the tree (default "Chamfer"). | |
| type | No | Chamfer type (default EQUAL_OFFSETS). | |
| angle | No | Angle in degrees, for type=OFFSET_ANGLE. | |
| edges | No | Explicit deterministic edge ids, from onshape_get_edges. | |
| query | No | FeatureScript query, e.g. query = qCreatedBy(makeId("FID"), EntityType.EDGE); | |
| width | No | Chamfer width in inches (default 0.1). | |
| feature | No | Select every edge created by this feature id. | |
| circular | No | Select only circular edges. | |
| validate | No | Re-read the feature list afterwards and fail if the feature regenerated with an error (default true). | |
| width_variable | No | Use a Part Studio variable for the width. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide a title, with no readOnly or destructive hints, so the description carries the full burden. It discloses that selection behavior mirrors onshape_fillet, which is a behavioral note, but it does not mention any other behavioral traits like whether the operation modifies the document, requires specific permissions, or has side effects on existing features. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at two sentences, front-loading the primary purpose and then providing a helpful pointer to onshape_fillet. It wastes no words, but it could arguably include a bit more context without losing conciseness. It is well-structured and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 14 parameters (3 required) and no output schema, the description is incomplete. It does not explain how the parameters interact (e.g., which chamfer type requires which fields), any prerequisites, or what happens after execution. The only guidance is on selection, which is helpful but insufficient for a tool of this complexity. The schema descriptions cover parameters individually, but the description does not tie them together or provide workflow context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, meaning all 14 parameters have descriptions in the schema. The tool description itself adds no parameter-specific meaning, but per the rubric, high schema coverage earns a baseline of 3. The description does not compensate beyond that, so 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Bevel the selected edges') with a clear resource (edges). It also references onshape_fillet for selection, which helps distinguish it from that sibling (fillet rounds edges while chamfer bevels them). This is unambiguous and specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives one usage guideline: 'Selection works exactly as for onshape_fillet.' This tells the agent how to select edges, but it does not explain when to use chamfer vs. fillet or other edge-modification tools. The when-to-use guidance is only implied by the tool name and 'bevel' verb, not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_circular_patternCircular patternB
Repeat geometry around an axis.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| axis | No | FeatureScript query selecting the axis. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| name | No | Feature name shown in the tree (default "Circular Pattern"). | |
| type | No | What kind of thing is patterned (default PART). | |
| angle | No | Total angle covered, degrees (default 360). | |
| count | Yes | Total number of instances, including the original. | |
| axis_ids | No | Deterministic id of the axis entity. | |
| entities | Yes | FeatureScript query selecting what to pattern. | |
| validate | No | Re-read the feature list afterwards and fail if the feature regenerated with an error (default true). | |
| equal_spacing | No | Space instances evenly over the angle (default true). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations contain only the title, so the description carries the full burden of behavioral disclosure. It does not mention that this tool creates a feature (mutates the document), any permission requirements, or postconditions. For a feature-creation operation, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence) and front-loaded with the action, but it is under-specified for a tool with 12 parameters. It is not verbose, yet it lacks any structural breakdown or additional context that would justify its brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 12 parameters, no output schema, and no behavioral annotations, the description is far from complete. It does not explain how parameters relate (e.g., axis query syntax), prerequisites, or typical usage scenarios. The schema provides parameter details but the description fails to tie them together.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each of the 12 parameters having a description. The tool description adds no parameter semantics beyond what the schema already provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Repeat geometry around an axis' clearly identifies the verb (repeat), the resource (geometry), and the distinguishing axis concept. This differentiates it from siblings like onshape_linear_pattern (linear translation) and onshape_mirror (reflection). The purpose is unambiguous and specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as onshape_linear_pattern or onshape_mirror. The description only states what it does, leaving the agent to infer appropriate use cases from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_clearanceMeasure clearance between two bodiesARead-only
Minimum distance between two solid bodies in the same Part Studio, each named by part id or by the feature that created it. 0 (clear: false) means they touch or overlap, so this is also the interference check — e.g. a bracket against a dummy servo body. Returns inches and millimetres, plus the closest point on each body.
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | The first body: give exactly one of part or feature. | |
| b | Yes | The second body: give exactly one of part or feature. | |
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true; the description adds real behavioral context by defining what a 0 result means (touch or overlap) and by disclosing the return payload (inches and millimetres, closest point on each body). It leaves error behavior for a missing or ambiguous body reference unstated, which keeps it off a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core measurement semantics, then the zero-case interpretation, then the return format. The bracket/servo example is short and materially illustrates the interference use case rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly takes on return-value disclosure — units, closest points, and the clear flag — and states the same-Part-Studio scope constraint. A read-only, fully-schema'd tool needs little more; only failure modes are omitted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested a/b objects already document 'give exactly one of part or feature', so the description's restatement of that naming scheme adds reinforcement rather than new meaning. Baseline 3 is correct when the schema carries the parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — minimum distance between two solid bodies in the same Part Studio — and pins the body identification scheme (part id or creating feature). This cleanly separates it from onshape_measure (generic measurement), onshape_mass_properties, and onshape_get_body_details without needing to open any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly frames the tool as the interference check and gives a concrete use case (a bracket against a dummy servo body), plus the same-Part-Studio precondition. It stops short of naming when to prefer the sibling onshape_measure instead, so there is no true when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_create_assemblyCreate an assemblyB
Add an assembly tab to a workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| name | Yes | Tab name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide only a title, so the description carries the full behavioral disclosure burden. It does state the side effect: adding an assembly tab to a workspace. However, it does not disclose what happens on success, whether duplicate names are handled, failure conditions, or prerequisites for the workspace/document.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one efficient sentence with a clear verb, object, and target location. It is front-loaded and contains no filler or redundant restatement of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation action with fully documented parameters, the description is minimally viable. It does not mention return values, error behavior, or when this tool should be chosen over similar creation tools, so an agent gets the gist but not full operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: all three parameters (doc, ws, name) already have descriptions. The tool description adds little parameter-level meaning beyond the schema, which matches the baseline expectation for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and object: 'Add an assembly tab to a workspace.' It clearly identifies the operation and target resource. It does not explicitly differentiate itself from siblings like onshape_create_part_studio or onshape_create_document, but the assembly-tab scope makes the purpose reasonably unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives. It does not mention related tools such as onshape_create_part_studio, onshape_get_assembly, or onshape_insert_instance, nor does it give conditions or exclusions. The only usage signal is implied by the tool's name and the one-line description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_create_documentCreate an Onshape documentA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Document name. | |
| public | No | Make the document public (required on free accounts). | |
| description | No | Document description. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No substantive annotations exist beyond the title, so the description carries the burden. It discloses that creation is performed, that free accounts are restricted to public documents, and that the result includes the new document id and default workspace id. It does not mention authentication requirements or broader side effects, but the disclosed result details go beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The core action is front-loaded, the free-account caveat directly affects a parameter choice, and the return-value note is placed at the end where it naturally completes the description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description usefully tells the agent that the response contains the document id and default workspace id. The tool is simple, has only one required parameter, and the description covers the main call requirement. Minor gaps such as clarifying the default visibility for paid accounts are not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline applies. The description adds a small amount of parameter context by clarifying that free accounts must pass public=true, but this largely restates the schema's 'required on free accounts' note. It adds no meaningful semantics for name or description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — 'Create a document' — and adds context about free-account public visibility and the returned id/workspace id. This clearly differentiates it from sibling tools like onshape_list_documents, onshape_get_document, onshape_update_document, and onshape_delete_document.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its use case ('Create a document') and provides account-specific guidance for when public=true is needed. However, it does not explicitly contrast this tool with alternatives such as onshape_update_document or onshape_create_part_studio, so the agent must infer the boundary from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_create_drawingCreate a drawingA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| name | Yes | Drawing name. | |
| part | No | Part id, to draw a single part. | |
| src_doc | No | Source document id (defaults to the target document). | |
| src_elem | Yes | Element id being drawn. | |
| src_version | Yes | Version id of the source element. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (only a title), so the description carries the full burden of behavioral disclosure. It mentions the version requirement, which is a key constraint, but does not describe side effects (e.g., creating a new element), permission needs, or return values. For a mutation tool with no other safety hints, this is a partial gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first states the purpose, the second gives the critical usage instruction. No fluff, fully front-loaded. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 parameters and no output schema, the description covers the essential prerequisite but omits what the tool returns (e.g., the new drawing element id) and any post-creation steps. An agent would need additional context to know how to use the result. Given the tool's complexity and minimal annotations, this is a noticeable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter described, so the baseline is 3. The description adds value by clarifying that src_version must come from onshape_create_version, which is a dependency not evident from the schema alone. This goes beyond the schema's individual parameter descriptions, earning a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a drawing') and the resource types (part, Part Studio or assembly). It distinguishes this tool from sibling creation tools like onshape_create_document or onshape_create_part_studio by its specific resource focus. The additional note about version reference adds specificity without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs the agent to call onshape_create_version first and pass its id as src_version. This provides a clear prerequisite and a direct call sequence, leaving no room for misinterpretation. It also implicitly states when to use this tool: whenever a drawing is needed from a versioned source.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_create_feature_studioCreate a Feature StudioB
Add a Feature Studio tab for custom FeatureScript.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| name | Yes | Tab name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no behavioral hints (no readOnly/destructive flags). The description mentions 'Add' implying a mutation, but does not disclose permissions, side effects, idempotency, or what happens on success. With no annotation coverage, the description fails to inform the agent about expected behavior beyond the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no filler. It front-loads the action and resource, making it immediately scannable and appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple create tool with three required parameters and no output schema, but the description offers no information about return values, potential errors, or necessary prerequisites. Given the lack of annotations and behavioral disclosure, the tool feels under-specified for an agent that needs to know what to expect after invoking it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning for the parameters (doc, ws, name) beyond what the schema already documents. No extra context is provided to enrich parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Add' and names the resource 'Feature Studio tab' along with its purpose 'custom FeatureScript'. It clearly distinguishes this create tool from sibling get/set feature studio tools without needing to reference them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage — you use this tool to create a feature studio — but does not explicitly state when to choose it over alternatives like onshape_get_feature_studio or onshape_set_feature_studio. There is no exclusion or alternative routing, which limits guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_create_part_studioCreate a Part StudioA
Add a Part Studio tab to a workspace. The new element id is at result.response.id.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| name | Yes | Tab name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no readOnly/destructive annotations, the description carries the behavioral disclosure burden. 'Add' clearly signals a mutating operation, and 'The new element id is at result.response.id' usefully states where the result appears. However, it does not mention permissions, failure behavior, or any workspace-level side effects beyond adding the tab.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler: the first states the core action and target, and the second gives the key output location. It is front-loaded, scannable, and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with three fully documented required parameters)Skip, the description and schema cover the essential invocation details, and the response-location note helps the agent use the result. It could mention that the document/workspace must already exist or explicitly note that this creates a new tab rather than modifying an existing one, but the definition is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema documents all three parameters with clear descriptions, including the exact URL context for doc and ws, so schema coverage is 100%. The tool description itself adds no additional parameter detail, but none is required because the schema already provides sufficient meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Add a Part Studio tab to a workspace' uses a specific verb and resource, and clearly identifies the operation as creating an element inside an existing workspace. This distinguishes it from sibling creation tools such as onshape_create_assembly or onshape_create_document.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'to a workspace' implies that the tool is used when adding a Part Studio tab to an existing document/workspace, but there is no explicit guidance about when to choose this over sibling tools or what prerequisites must be satisfied. Usage is primarily inferred from the name and one-line description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_create_sketchSketch arbitrary entitiesA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| name | No | Feature name shown in the tree (default "Sketch"). | |
| plane | No | Default plane to sketch on (default Front). | |
| entities | Yes | Entities making up the sketch. | |
| validate | No | Re-read the feature list afterwards and fail if the feature regenerated with an error (default true). | |
| plane_feature | No | Sketch on a face created by this feature id instead of a default plane. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no read-only or destructive hints, so the description carries the behavioral burden. It clearly indicates that the tool creates/adds a sketch and adds the useful closed-profile constraint, but it does not disclose side effects like feature-tree insertion, error behavior, or what happens with an open profile. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler. The core purpose is front-loaded, the usage condition is stated next, and the extrusion tip is a practical final note. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema fully documents all 8 parameters, and the description covers tool selection plus a critical geometric constraint. It lacks explicit return/error information, but with no output schema and a fully covered input schema, the essential invocation context is present enough for an agent to proceed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds semantic value beyond the schema by emphasizing that the profile should be closed if extruding and by implicitly framing entities as the core payload. It does not need to repeat parameter details the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: "Add a sketch from a list of entities: lines, circles, rectangles and arcs." It also distinguishes this tool from "single-shape sketch tools," so an agent can immediately tell it apart from onshape_sketch_line, onshape_sketch_circle, and onshape_sketch_rectangle.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit selection guidance: "Use this when the single-shape sketch tools cannot express the profile." It also adds a conditional follow-up instruction about closing the profile before extruding, which helps the agent use the tool correctly in a downstream workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_create_versionCreate a document versionA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| name | Yes | Version name, e.g. what is about to change. | |
| description | No | Why this snapshot was taken. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no readOnly or destructive hints in annotations, the description carries the full burden of behavioral disclosure. It transparently states the result (immutable version) and its implications (only way back, drawings require version). While it doesn't cover permissions or return format, it provides meaningful behavioral context beyond the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero wasted words. The primary action is front-loaded, followed by the critical usage guidance. Every word earns its place, and the structure prioritizes the most decision-relevant information first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create operation with no output schema, the description adequately explains the action, its consequence (immutability), and when to use it. It lacks details on return value or potential errors, but those are less critical for a straightforward creation tool with well-documented parameters. The context is sufficient for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema documentation covers all 4 parameters at 100% coverage, so the schema already explains each field. The description adds no parameter-specific details beyond what's in the schema, maintaining the baseline 3. It does hint at the purpose of 'name' via 'what is about to change' in the schema, but the description itself offers no additional parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Snapshot the workspace as an immutable version') and the resource (workspace). It also conveys the purpose (creating a safe, immutable checkpoint) and distinguishes it from other version-related operations by emphasizing immutability and its role as the only way back.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent when to use this tool: 'Do this before restructuring an existing design'. It explains the rationale ('only way back' and 'drawings must reference a version'), giving clear contextual guidance on when this tool is appropriate versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_delete_assembly_featureDelete an assembly featureADestructive
Remove a mate, mate connector, group or relation. Relations on a deleted mate stop solving.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| feature_id | Yes | Id of the feature to delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation already declares destructiveHint=true, so the description isn't required to establish that this mutates state. It does add genuinely new behavioral information beyond the annotation: "Relations on a deleted mate stop solving," which discloses a cross-entity side effect an agent could not infer from the schema. It stops short of addressing irreversibility/undo or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero filler: the scope list comes first and the side-effect caveat second. Nothing is redundant with the title or restates the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema, the description covers what is removed and one downstream consequence, with annotations covering the safety profile and the schema covering all inputs. However, it omits whether deletion is permanent/undoable and whether dependent mates or instances are also affected — meaningful gaps for a delete tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (all four params, including URL-segment guidance for doc/ws/elem and the meaning of feature_id), so the schema fully carries parameter semantics and the baseline applies. The description adds no parameter-level detail beyond what the schema already explains.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Remove") and enumerates the exact resource types it operates on (mate, mate connector, group, relation), which makes clear this is an assembly-level deletion rather than a part-studio feature deletion. It never explicitly contrasts itself with siblings like onshape_delete_feature or onshape_delete_element, but the entity list does most of that work implicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the entity list — an agent can infer this is the tool for removing assembly mates/groups/relations, but there is no explicit "use this when…" or exclusion against onshape_delete_feature, onshape_delete_instance, or onshape_update_assembly_feature. No preconditions (e.g., mate must exist, assembly must not be locked) are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_delete_documentDelete an Onshape documentADestructive
Move a document to the trash. This affects the whole document, not a single tab.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already supply destructiveHint=true, and the description adds meaningful context by clarifying that deletion means moving to trash rather than permanent destruction, and that the entire document is affected. This goes beyond the annotation without contradicting it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences carry all essential information with no filler. The deletion behavior is stated first, and the scoping clarification is front-loaded immediately afterward.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with a destructive annotation, the description is complete: it names the action, the target scope, and the non-tab exclusion. No return format is needed for a simple delete operation, and no additional prerequisites or side effects are necessary to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single 'doc' parameter is fully documented in the schema. The description does not add new meaning to the parameter itself, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Move a document to the trash') and a specific resource ('a document'), and immediately distinguishes itself from tab-level operations with 'not a single tab.' This makes the tool's purpose unmistakable and separates it from siblings like onshape_delete_element.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'affects the whole document, not a single tab' provides a clear exclusion boundary: use this only for whole documents, not individual elements. It does not explicitly name an alternative tool such as onshape_delete_element, but the when-not condition is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_delete_elementDelete an elementBDestructive
Delete one element (tab) from a workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the destructiveHint annotation. It does not mention irreversibility, potential impact on dependent features, or any side effects. Since the annotation already signals destructiveness, the description contributes nothing extra.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly worded sentence that front-loads the action and object. Every word earns its place, and there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation with three fully documented parameters and no output schema, the description is minimal but adequate. It does not mention potential errors or permission requirements, but the destructiveHint annotation covers the primary caveat, and the schema covers the inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter (doc, ws, elem) having a descriptive comment. The tool description does not add further meaning beyond what the schema already provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('delete') and specific resource ('element (tab)'), which distinguishes it from sibling tools like onshape_delete_document and onshape_delete_feature. The parenthetical clarifies the exact entity type, leaving no ambiguity about what is being removed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites (e.g., being in a workspace, having edit permissions). It simply states the action without contextual routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_delete_featureDelete a featureADestructive
Remove one feature from the tree. Features added after it may fail to regenerate.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| feature_id | Yes | Id of the feature to delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The destructiveHint annotation already flags that this operation is destructive. The description adds a valuable behavioral warning: features added after the deleted one may fail to regenerate. This goes beyond the annotation and informs the agent of downstream consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences deliver the core action and the most important risk in a front-loaded, efficient way. There is no filler or redundant restating of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive single-feature deletion, the description provides the essential target and consequence. It does not explain return behavior or mention irreversibility explicitly, but the destructive annotation and regeneration warning cover the main context an agent needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters are fully documented in the schema with clear descriptions, so the baseline is 3. The tool description adds no parameter-specific meaning beyond the schema, but none is needed because schema coverage is 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Remove one feature') and a clear resource ('from the tree'), so an agent knows exactly what this tool does. It is naturally distinguished from siblings like update_feature and add_feature by the delete semantics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives such as delete_element or update_feature. It implies the use case by describing the action, but it does not state prerequisites, exclusions, or when a different tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_delete_instanceDelete an instanceADestructive
Remove one instance from an assembly by its occurrence node id.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| node | Yes | Occurrence node id of the instance. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the description is not required to repeat destructiveness. However, it adds no additional behavioral context—such as irreversibility, effects on sub-assemblies, or required permissions—beyond what the annotation provides. It also leaves ambiguity about the scope of the deletion (e.g., does it cascade to child instances?).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that directly states the action and target. There is no fluff, and every word contributes to the meaning, making it highly concise and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation with all parameters fully described in the schema, the description provides sufficient context—the action and the key identifier. It does not explain return values or error handling, but no output schema exists, and the description clarifies that the node is an occurrence node id, which is the critical detail. It is adequate for an agent to correctly invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides descriptions for all four parameters (doc, ws, elem, node) with full coverage. The description reiterates the role of 'node' (occurrence node id) but adds no syntax, format, or additional meaning beyond what the schema already specifies. Baseline 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Remove'), a specific resource ('instance from an assembly'), and the key input ('occurrence node id'). This clearly differentiates it from sibling delete tools like onshape_delete_feature or onshape_delete_document, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by mentioning 'assembly', but it does not explicitly state when to use this tool versus alternatives (e.g., delete_feature for features, delete_document for documents). An agent must infer the appropriate scenario from the name and context rather than receiving direct routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_draftDraft facesA
Taper faces away from a neutral plane — the usual requirement for moulded or cast parts.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| name | No | Feature name shown in the tree (default "Draft"). | |
| angle | No | Draft angle in degrees (default 3). | |
| faces | Yes | FeatureScript query selecting the faces to draft. | |
| neutral | Yes | FeatureScript query selecting the neutral plane or face. | |
| validate | No | Re-read the feature list afterwards and fail if the feature regenerated with an error (default true). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no behavioral hints, so the description carries the burden. It does disclose the core geometric behavior and taper direction. However, it does not mention that this is a model-mutating feature addition, potential failure behavior, or validation implications beyond what the schema's 'validate' parameter implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence states the operation and its typical use case with zero filler. The explanation is compact and easy to parse before considering parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and only a title annotation, the description carries significant context burden. It explains the geometric purpose but omits side effects, failure modes, and explicit selection guidance for the required FeatureScript queries, leaving part of the operational context to be inferred.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all eight parameters. The description adds little beyond the phrase 'away from a neutral plane', which helps interpret 'neutral' and 'faces', but it does not go beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pair: 'Taper faces away from a neutral plane'. This clearly identifies the draft feature and differentiates it from sibling operations like chamfer, fillet, or shell. The molded/cast context reinforces the geometric intent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'the usual requirement for moulded or cast parts' gives clear context for when this tool is appropriate. It does not explicitly name alternatives or state when not to use it, but the use case is specific enough for an agent to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_encode_configurationEncode a configurationA
Turn configuration parameter values into the encoded string other tools accept as configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| params | Yes | Parameter ids and the values to set. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotation hints (readOnly, destructive, etc.), the description carries the burden of behavioral disclosure. It states the tool produces an encoded string, but doesn't mention any side effects, error behavior, or whether it's a pure transformation. For a simple encoding utility, this is adequate but not rich; it could mention that it has no side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It front-loads the action ('Turn... into...') and immediately communicates the output's purpose. Perfectly concise for a simple utility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward encoding tool, the description covers the essential purpose. It doesn't describe the exact format of the encoded string or any constraints, but given the tool's simplicity and other context (schema covers parameters), it's sufficiently complete. No output schema exists, but the return value is implied as an encoded string.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented in the input schema. The description does not add extra meaning beyond what the schema provides; it generically refers to 'configuration parameter values' without specific details. With high schema coverage, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: converting configuration parameter values into an encoded string used by other tools. It identifies the resource (configuration) and the specific action (encode), and distinguishes itself from sibling tools like onshape_get_configuration by noting it produces a string others accept.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: when you need to provide a `configuration` string to other tools. It doesn't explicitly name alternatives or say when not to use it, but the context of 'other tools accept' gives clear guidance. No exclusions are stated, but the purpose is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_eval_featurescriptEvaluate FeatureScriptA
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) { ... }'.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| raw | No | Return Onshape's raw response instead of the decoded value. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| script | Yes | A FeatureScript function expression taking (context, queries). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no behavioral annotations besides a title, the description carries the burden of disclosure. It does clarify that the tool returns a decoded value (or raw response via the 'raw' parameter) and frames the operation as inspection, which suggests it is non-mutating. However, it does not explicitly guarantee no side effects on the document or mention required permissions, which would be valuable for an arbitrary-code evaluation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two efficient sentences with the purpose, the general-use context, and the required script signature all front-loaded. It contains no filler, though it could slightly improve structure by separating the signature example more clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basics: what the script should look like, where it runs, and what kind of output to expect. However, with no output schema and no annotations, it leaves gaps around return value types, error behavior, whether evaluation can have side effects, and common usage patterns—significant for an advanced, open-ended evaluation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The description adds the exact function signature 'function(context is Context, queries) { ... }', but this largely restates the script parameter's schema description ('function expression taking (context, queries)'). Thus the description provides no substantial parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Run a FeatureScript function'), identifies the target resource ('against the Part Studio'), and explains the result ('return its decoded value'). It also brands itself as 'the general-purpose way to inspect geometry,' which differentiates it from the many specific feature-creation and inspection siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'The general-purpose way to inspect geometry' implies this is the fallback tool when no dedicated sibling applies, but it never explicitly says when to prefer it or when to avoid it. The usage guidance is implied rather than stated as direct selection criteria or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_exportExport CAD formatA
Export through Onshape's translation service: STEP, IGES, 3MF, PARASOLID, SOLIDWORKS and others. Slower than STL because the translation is queued server-side.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| out | No | Output file path (default onshape-<timestamp>.<format> in the output directory). | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| kind | No | Element kind being exported (default partstudios). | |
| format | No | Format name, e.g. STEP, IGES, 3MF, PARASOLID (default STEP). | |
| configuration | No | Encoded configuration string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context beyond the sparse title-only annotation: exports are handled by a server-side translation service and are queued, making them slower than STL. This warns the agent about latency and async behavior. It does not mention return values or side effects, but the disclosed queuing trait is genuinely useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences deliver the core purpose, supported formats, and a key behavioral caveat with no filler. The format list is front-loaded and the latency note is placed after the main purpose, making the description easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with seven parameters and no output schema, the description covers the essential purpose and latency behavior, and the schema covers parameter semantics. However, it does not explain what the tool returns (e.g., a job status, output path, or confirmation), which the agent would need since no output schema is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all seven parameters, including doc/ws/elem and format examples. The description's format list mostly duplicates the schema's format example and adds no additional parameter-level detail or constraints, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Export through Onshape's translation service') and enumerates the relevant formats (STEP, IGES, 3MF, PARASOLID, SOLIDWORKS). It also distinguishes itself from the STL export path by explicitly noting that this path is slower, which helps an agent separate it from the onshape_export_stl sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context by listing supported CAD formats and contrasting the queued translation service with STL. It does not explicitly name onshape_export_stl as the alternative for STL exports, but the comparison is concrete enough for an agent to infer the appropriate selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_export_drawingExport a drawingB
Export a drawing as PDF (or DWG/DXF) through the translation service.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| out | No | Output file path (default onshape-drawing-<timestamp>.<format>). | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| format | No | Format name: PDF, DWG, DXF (default PDF). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide a title, so the description carries most of the behavioral burden. It adds useful context by mentioning formats and the translation service, but it does not disclose whether a file is written locally, what the response contains, or whether the operation is non-destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that communicates purpose and formats without any filler. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no behavioral annotations, the agent is not told what happens after the export is requested: whether a file is returned, written to the output path, or whether translation is asynchronous. Parameter documentation is complete, but post-invocation behavior is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and all parameters already have descriptions well beyond the tool description. The description only repeats the format options already present in the schema, adding no new parameter-level insight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Export a drawing' as PDF, DWG, or DXF through the translation service. This clearly distinguishes it from sibling tools like onshape_export_stl and generic onshape_export.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives. Sibling tools such as onshape_export_stl and onshape_export exist, but the description does not mention them or provide selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_export_stlExport STLA
Export the Part Studio as STL, for 3D printing. The file is in millimetres by default, which is what slicers assume; STL carries no unit, so only change units if the consumer expects otherwise. Measure the model before exporting it.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| out | No | Output file path (default onshape-<timestamp>.stl in the output directory). | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| ascii | No | Write ASCII STL instead of binary. | |
| units | No | STL units (default millimeter). | |
| resolution | No | Tessellation quality (default medium). | |
| configuration | No | Encoded configuration string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations carry only a title, so the description carries the behavioral burden. It usefully explains that STL is unitless and that millimetres match slicer assumptions, but says nothing about file-writing side effects (overwrite behavior of `out`, partial-write failure) or auth requirements for a tool that produces a file on disk.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with zero padding; the format and unit default are front-loaded. The closing line 'Measure the model before exporting it' is advice rather than an instruction about this tool and is slightly cryptic, but it is compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Eight parameters with 3 required, no output schema and no safety annotations — the description covers the one parameter with real semantic ambiguity (units) and the tool's purpose. It leaves resolution/ascii/configuration guidance and the shape of the return value unexplained, which is acceptable given the full schema coverage but not ideal for an 8-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description earns above that by explaining the semantics of `units` beyond the enum and default — why millimetres is the safe choice and when a consumer would want otherwise. The remaining parameters (resolution, ascii, configuration) get no added meaning in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource plus the output format: 'Export the Part Studio as STL'. This distinguishes it in practice from onshape_export_drawing and the generic onshape_export, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a conditional rule for the `units` parameter ('only change `units` if the consumer expects otherwise') and an advisory to measure first, which implies calling onshape_measure. It offers no explicit when-not guidance and never points to an alternative export tool for non-STL needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_extrudeExtrude a sketchA
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. end_type picks blind, symmetric or through-all; opposite flips the direction.
| Name | Required | Description | Default |
|---|---|---|---|
| op | No | NEW makes a new body; ADD/REMOVE/INTERSECT combine with existing bodies (default NEW). | |
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| name | No | Feature name shown in the tree (default "Extrude"). | |
| depth | No | Extrusion depth in inches; the total depth when symmetric. Required unless THROUGH_ALL or depth_variable. | |
| sketch | Yes | Feature id of the sketch to extrude. | |
| end_type | No | BLIND goes `depth` along the sketch normal (default); SYMMETRIC goes `depth` in total, half each side of the sketch plane; THROUGH_ALL goes past every body and ignores `depth`. | |
| opposite | No | Go against the sketch normal instead of along it. Not with SYMMETRIC. | |
| validate | No | Re-read the feature list afterwards and fail if the feature regenerated with an error (default true). | |
| depth_variable | No | Use a Part Studio variable (by name) for the depth instead. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations carry only a title, so the description bears full behavioral burden. It does usefully disclose that REMOVE cuts existing bodies and INTERSECT keeps overlap, which signals destructive potential. However, it never says the call appends a feature to the tree, that it mutates the Part Studio, or what is returned (feature id?) for chaining.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: operation first, then the op enum semantics, then the direction/depth knobs. No filler, no repetition, front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter mutation tool with full schema coverage and no output schema, the description covers the two semantically weighty enums well. The remaining gap is the return value and the Part Studio context requirement, which is minor given how complete the schema is.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter including the op and end_type enums is already fully documented, and the description largely restates the op enum plus a compressed end_type gloss. It adds no syntax, units, or default detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence names a specific CAD operation and its exact input/output: 'Extrude the closed regions of a sketch into a solid'. It is unambiguous against siblings like onshape_revolve or onshape_sweep, though it never explicitly names an alternative to route away from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explaining what NEW/ADD/REMOVE/INTERSECT do implicitly tells the agent which mode to pick for a given modeling intent, but there is no explicit when-to-use guidance, no prerequisites (sketch must contain closed regions, must live in the same Part Studio as `elem`), and no routing to onshape_boolean for subtractive work.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_filletFillet edgesC
Round the selected edges. Name the edges with one of: edges (ids), query (FeatureScript), feature (every edge that feature made), all, or circular.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| all | No | Select all edges of all solid bodies. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| name | No | Feature name shown in the tree (default "Fillet"). | |
| type | No | Fillet type (default EDGE). | |
| edges | No | Explicit deterministic edge ids, from onshape_get_edges. | |
| query | No | FeatureScript query, e.g. query = qCreatedBy(makeId("FID"), EntityType.EDGE); | |
| radius | No | Fillet radius in inches (default 0.1). | |
| feature | No | Select every edge created by this feature id. | |
| circular | No | Select only circular edges. | |
| validate | No | Re-read the feature list afterwards and fail if the feature regenerated with an error (default true). | |
| radius_variable | No | Use a Part Studio variable for the radius. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide only a title, so the description carries the full burden of behavioral disclosure. It states the action ('Round the selected edges') but does not mention that this creates or modifies a feature, implies write access, or describe any side effects or validation behavior. This is similar to the 'update_drive' example—mutation is implied but not elaborated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff. The core purpose is front-loaded, and the edge-selection options are listed compactly. It is efficient and scannable, though the phrase 'Name the edges' is slightly unusual, it does not waste words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 13 parameters, no output schema, and sparse annotations, this tool is complex, yet the description only addresses edge selection. It omits context about radius, type, validation, and the overall feature-creation workflow. An agent has to rely entirely on the schema for everything except edge selection, leaving significant gaps in understanding how to call the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds a minor but useful clarification that the edge selection parameters (edges, query, feature, all, circular) are mutually exclusive alternatives, which the schema does not explicitly state. However, it does not expand on any parameter beyond what the schema already describes, so it only marginally exceeds the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Round the selected edges,' which is a clear verb+resource statement that unambiguously conveys the tool's purpose of filleting edges. It distinguishes from the sibling onshape_chamfer by using 'round' instead of 'bevel.' However, it doesn't explicitly name the sibling or contrast with it, so it stops short of strong differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for rounding edges but gives no explicit guidance on when to choose it over alternatives like onshape_chamfer or onshape_shell. No exclusions or alternative tool mentions are present. The edge-selection instructions are about how to pick edges, not about when to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_find_circular_edgesFind circular edgesARead-only
Circular edges (full circles and arcs), optionally only those matching a radius, with each one's centre in inches — the usual way to pick hole rims to fillet, or to check where the holes are.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| radius | No | Only return edges with this radius, in inches. | |
| tolerance | No | Radius match tolerance in inches (default 0.001). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered; the description adds the useful specifics that centres are reported in inches and that the radius filter is optional. It still doesn't say what identifying info accompanies each centre (edge id, radius value) or how the tolerance affects results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the resource and the radius-filter qualifier, with the use cases trailing as motivation. Efficient, though the stacked parenthetical and em-dash clause makes it slightly harder to scan than a two-clause form would.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must carry the return shape, and it only partly does: centres in inches, radius filtering. It omits whether radii, edge ids or counts are returned, which an agent needs to chain this into a fillet call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all five parameters, their units and the tolerance default are already documented in the schema. The description only restates the radius filter, adding nothing beyond the schema — baseline 3 is correct here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource — find circular edges, full circles and arcs — and the returned content (each edge's centre in inches). It doesn't name sibling tools like onshape_get_edges or onshape_find_edges_by_feature, so the boundary is inferred from the word 'circular' rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It hints at the two main use cases (picking hole rims to fillet, checking hole locations), which implies when to reach for it. But it never says when to use onshape_get_edges or onshape_find_edges_by_feature instead, nor any prerequisites for the doc/ws/elem identifiers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_find_edges_by_featureFind edges created by a featureARead-only
Deterministic ids of the edges a given feature created, evaluated by Onshape.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| feature | Yes | Feature id whose edges you want. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds 'deterministic ids' and 'evaluated by Onshape,' which go beyond the readOnlyHint annotation by implying the output is stable and computed server-side. This is useful context for an agent. No contradictions with annotations are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence that immediately conveys the core purpose. It is front-loaded with the key information and contains no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only query with four well-documented parameters and no output schema, the description fully explains what the tool returns (edge ids) and how it operates. An agent has enough information to call it correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and each parameter has a description. The tool description adds no additional parameter semantics beyond the schema. The 'feature' parameter is already explained in the schema as 'Feature id whose edges you want.' Baseline 3 is appropriate given full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: find edges created by a feature. It is specific and distinct from siblings like onshape_get_edges or onshape_find_circular_edges because it explicitly ties edges to the feature that created them. The phrase 'deterministic ids' also adds precision about the output nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as onshape_get_edges or onshape_find_circular_edges. The description does not mention when this tool is preferred or when to avoid it. The usage context is only implied by the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_find_part_studiosFind Part Studios by nameARead-only
List the Part Studios in a workspace, optionally filtered by a substring of the name.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| name | No | Case-insensitive substring to match. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes that this is a safe read operation. The description adds the workspace scope and filtering behavior, but does not disclose return format, pagination, or failure behavior; for a simple list tool this is acceptable but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no fluff; it states the action, scope, and optional behavior in a compact way.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool, the description plus fully covered schema and readOnlyHint give an agent everything needed to call it appropriately. No output schema is present, but 'List' reasonably implies the return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all three parameters. The description adds little semantic value beyond the schema, simply restating workspace scope and substring filtering.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('Part Studios'), and scopes it to a workspace with an optional name-substring filter. This makes it clearly distinct from general element listing and part-listing siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the context clearly: use it to list Part Studios in a given workspace, optionally filtered by a name substring. It does not explicitly name alternatives or exclusion conditions, but the use case is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_get_assemblyGet assembly structureBRead-only
The assembly's instances, occurrences, mate features and mate connectors.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| include_non_solids | No | Include non-solid instances (default false). | |
| include_mate_features | No | Include mate features (default true). | |
| include_mate_connectors | No | Include mate connectors (default true). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already signals a safe read operation, and the description is consistent with that. The description adds the content scope (instances, occurrences, mate features, connectors) but does not disclose any additional behavioral traits such as output size, no-return-value cases, or performance characteristics. With annotations covering the safety profile, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and free of fluff, and the key returned content is listed compactly. It is under-specified as a sentence fragment but appropriately sized for a simple read-only assembly-structure tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with complete parameter schema coverage, the description lists the main content of the result, partially compensating for the absent output schema. However, it does not explain how the include_* flags affect the result, whether the response is nested/hierarchical, or how occurrences relate to instances, which an agent might need for correct interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six parameters including defaults. The description repeats some concepts (mate features, mate connectors) but adds no parameter-level meaning beyond what the schema provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title 'Get assembly structure' provides the verb and resource, and the description lists the specific components (instances, occurrences, mate features, mate connectors) that the tool returns. It is clear what the tool does, though the description itself is a noun fragment and does not explicitly differentiate itself from sibling tools like onshape_get_assembly_features.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as onshape_get_assembly_features, onshape_get_bom, or onshape_get_parts. The agent is left to infer the use case from the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_get_assembly_featuresList assembly featuresARead-only
The mates, mate connectors, groups and relations defined in an assembly, with their feature ids, payloads and regeneration states.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already declares the safety profile, and the description adds value by disclosing what is returned — feature ids, payloads and regeneration states — which goes beyond the annotation. It stops short of describing shape, pagination or ordering, but that is a minor gap for a read-only listing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with zero filler, front-loading the resource enumeration before the returned fields. It reads as a noun fragment rather than a full statement of action, a small structural weakness but nothing wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, three-parameter listing tool with full schema coverage and no output schema, the description supplies the return contents an agent needs to decide relevance. It could say a bit more about what 'payloads' and 'regeneration states' contain, but the essentials are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all three identifiers (doc, ws, elem) documented in the schema, so the baseline of 3 applies. The description adds no additional meaning about how these identifiers are used or whether they can be defaulted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact resource set — mates, mate connectors, groups and relations in an assembly — which clearly distinguishes it from generic siblings like onshape_get_features or onshape_get_assembly. The verb is implied rather than stated (the title supplies 'List'), but the scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance and no mention of alternatives such as onshape_get_assembly, onshape_get_mate_values, or onshape_get_features. An agent must infer from the noun list alone that this is the tool for inspecting existing assembly mating structure.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_get_body_detailsGet body topologyARead-only
Bodies, faces and edges with their deterministic ids — the source for explicit edge selection.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the deterministic nature of IDs, which is useful context beyond the readOnlyHint annotation. However, it does not disclose other behavioral details such as response structure or limits, and the annotation already covers safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that conveys the essential function and a key attribute (deterministic IDs) without waste. It is front-loaded and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only retrieval tool with three well-documented parameters and no output schema, the description provides the essential context: what is returned and why it is useful. It is sufficient for an agent to understand the tool's role, though it could benefit from a note on how the IDs are structured.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so all three parameters are documented. The description adds no parameter-specific information beyond what the schema provides, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource (bodies, faces, edges) and the purpose (providing deterministic IDs for explicit edge selection). It is specific and distinguishes this tool from a generic 'get' operation, though it does not explicitly name sibling alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'the source for explicit edge selection' implies a use case but does not explicitly mention when to use this tool versus alternatives like onshape_get_edges or onshape_find_edges_by_feature. There is no clear when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_get_bomGet the bill of materialsCRead-only
The assembly's BOM table.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| indented | No | Return the indented BOM (default true). | |
| multi_level | No | Expand sub-assemblies (default false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations provide readOnlyHint=true, so the safe-read behavior is already known. The description adds only that the result is an assembly BOM table, and does not disclose return format, how indented or multi_level affect output, or any other behavioral details. No contradiction exists, but no additional behavioral context is provided either.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no filler and the key subject ('BOM table') is front-loaded. It earns its place, though it is minimal enough that it cannot carry much explanatory weight on its own.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description would need to convey more about what an agent can expect from the tool. It does not mention when to use it, what the returned BOM table contains, or how the boolean parameters change the result. For a five-parameter, read-only retrieval tool, this leaves meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents document/workspace/element IDs plus the two boolean options and their defaults. The description adds no extra parameter meaning beyond the assembly context, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and description together identify a clear resource: the assembly's bill of materials. 'BOM table' is specific enough to distinguish this tool from the many sibling tools, none of which target BOM data. However, the description itself is a noun phrase rather than a full verb statement, so it relies on the title for the action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given for when to use this tool versus alternatives such as onshape_get_assembly or onshape_get_parts. The intended context is only implied by the word 'assembly', with no exclusions or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_get_configurationGet element configurationBRead-only
The configuration parameters an element exposes, with their ids and allowed values.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description confirms a read-only retrieval by describing what is returned. It adds value by specifying the return content (ids and allowed values), but does not disclose other behavioral aspects such as error conditions or configuration applicability. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, concise sentence that front-loads the core concept with no wasted words. It efficiently states what the tool returns.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only getter with fully documented parameters and a readOnly annotation, the description adequately explains the return content. Given no output schema, it could be slightly more explicit about the response structure, but it meets the essential needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% description coverage for all three parameters, so the tool description adds no additional parameter-level meaning. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (configuration parameters of an element) and the kind of information returned (ids and allowed values). It is distinct enough from siblings like onshape_encode_configuration, though it does not explicitly differentiate itself from them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as onshape_encode_configuration or onshape_get_features. The purpose implies a use case, but there is no explicit context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_get_documentGet an Onshape documentBRead-only
Read one document's metadata, including its default workspace id.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes this as a safe read operation, and the description is consistent with that. It adds a small behavioral detail—returned metadata includes the default workspace id—but it does not disclose error behavior or authentication requirements; this is acceptable for a simple read annotated as read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence, front-loaded with the verb 'Read', and contains no filler or repeated information from the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple one-parameter read operation with a fully documented schema and a read-only annotation. The description is largely sufficient for invocation, though because there is no output schema, the return value is only vaguely described as 'metadata' plus one field.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single required parameter 'doc' is already fully described in the schema with a URL template, so schema coverage is 100%. The description adds no additional parameter-level meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action—'Read'—and a specific resource—'one document's metadata'—and adds a concrete returned field ('default workspace id'). It is clear enough, but it does not explicitly differentiate itself from the sibling onshape_get_document_summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool instead of list_documents, search_documents, or get_document_summary. The only hint is 'one document', which weakly implies a single-document lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_get_document_summarySummarize an Onshape documentARead-only
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.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true; the description adds meaningful behavior by stating it returns the full workspace/tab tree, not just one slice. It does not discuss response size or rate limits, but for a read-only aggregate tool those are minor gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence states the return content and the value proposition with no filler. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one fully documented parameter, a read-only annotation, and no output schema, the description still tells the agent what will be returned (metadata, workspaces, elements, ids) and when to use it. Nothing necessary for invoking it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema's doc description already gives the URL format and required semantics. The tool description only repeats that the tool collects ids; it adds no new parameter-level information, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('summarize'), resource ('document'), and the exact payload: metadata plus every workspace and the elements inside each. This clearly differentiates it from sibling tools like get_document, get_workspaces, and get_elements, which cover only a slice of that aggregate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit use case: 'the fastest way to orient in an unfamiliar document and collect the ids other tools need.' It does not name alternative tools or say when not to use it, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_get_drawing_viewsList drawing viewsBRead-only
The views placed on a drawing sheet.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers the read-only safety profile. The description adds the scoping detail that views are those 'placed on a drawing sheet,' but it does not disclose return format, pagination, or how sheets are handled. This is a minor gap given the annotation exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short phrase with no filler, and the drawing-sheet scoping is front-loaded. It is efficient, though the noun-phrase form is less informative than a proper verb-first instruction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only listing with fully documented parameters and a readOnly annotation, the definition is minimally sufficient: an agent knows what to call and what high-level result to expect. The lack of an output schema and any note about multiple drawing sheets or return structure leaves some ambiguity, but it is not blocking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter-level meaning, but the input schema has 100% coverage with clear explanations for doc, ws, and elem as URL segments. With full schema coverage, the schema carries the parameter-semantics burden, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title 'List drawing views' supplies a specific verb and resource, and the description clarifies the scope as 'views placed on a drawing sheet.' This is reasonably distinct from sibling element/feature listing tools, though the description itself is a noun phrase and does not explicitly name an action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The title and description imply the tool should be used when an agent needs the views on a drawing sheet. However, it does not state when not to use it, mention prerequisites, or reference alternatives among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_get_edgesList edgesARead-only
Every edge of every solid body, with its deterministic id, owning body, type, and for circles and arcs the radius and centre (inches).
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already declares the safety profile, so the description's job is to add context — which it partly does by disclosing units (inches) and the deterministic nature of edge ids. It says nothing about scope limits (body visibility, suppressed bodies), pagination, or what happens on a non-part-studio element.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the scope ('every edge of every solid body') before the payload description. Zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must describe returns, and it does — id, owning body, type, plus radius/centre for circular geometry with units. The remaining gap is failure/edge-case behavior (empty body list, wrong element type), which is minor for a simple read.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each of the three identifiers is documented inline with URL-segment mapping, so the schema does the heavy lifting. The description adds no parameter-level detail beyond what is already there; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('every edge of every solid body') and enumerates the returned fields (deterministic id, owning body, type, radius/centre). The exhaustive-all-edges scope implicitly contrasts with siblings like onshape_find_edges_by_feature and onshape_find_circular_edges, though those siblings are never named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use, prerequisites, or named alternatives. The phrase 'every edge of every solid body' implies a whole-part enumeration use case (e.g., pre-selecting targets for fillet/chamfer) as opposed to the filtered sibling tools, but the agent must infer that routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_get_elementsList elements in a workspaceARead-only
List the elements (tabs) in a workspace: Part Studios, assemblies, drawings, Feature Studios.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| type | No | Only return elements of this type. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already signals this is a safe read operation, so the description does not need to repeat that. It adds modest context by enumerating element types, but does not disclose details like whether all elements are returned by default or how filtering behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no wasted words. The examples in the parenthetical add useful context without bloating the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with a fully documented schema and a readOnlyHint annotation, the description is nearly sufficient. It could mention that element identifiers are returned, but the lack of an output schema and the tool's simplicity keep this from being a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully explains doc, ws, and type. The description adds no parameter-level meaning beyond what the schema already provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List'), a resource ('elements/tabs'), and a container ('workspace'), and names the kinds of elements returned. This clearly distinguishes it from sibling tools like onshape_list_documents or onshape_get_features.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as onshape_get_features, onshape_get_workspaces, or onshape_find_part_studios. The usage context is only implicit in the title and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_get_featuresList Part Studio featuresARead-only
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| configuration | No | Encoded configuration string from onshape_encode_configuration. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, so no safety contradiction. The description adds the behavioral context that the output is large and includes regeneration state, which is useful. However, it does not disclose pagination, rate limits, or any specific response format, but given the readOnly annotation, additional behavior is less critical. A 3 is appropriate for adequate but not rich behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. The first sentence states the core functionality, and the second immediately provides routing guidance. The warning about size is front-loaded and helps the agent avoid expensive calls. Excellent structure with no extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with complete schema coverage and no output schema, the description provides everything needed: what it returns, when to use alternatives, and the size warning. The lack of output schema is fine since the description enumerates the major fields (id, type, parameters, regeneration state). Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all four parameters. The description does not add any parameter-specific meaning, but with complete schema coverage, baseline 3 is correct. The description only mentions the 'configuration' indirectly as part of the feature tree, but no extra syntax or constraints are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists the full feature tree, including id, type, parameters, and regeneration state. It names specific sibling tools (onshape_measure, onshape_get_parts) as alternatives, distinguishing it from those that return results rather than the tree. This is specific and actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to prefer onshape_measure or onshape_get_parts when only the result of the tree is needed, providing clear when-to-use vs. when-not-to-use guidance. It also warns about the large size of the output, which helps the agent decide based on cost. This is excellent routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_get_feature_specsGet feature specificationsARead-only
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral context beyond the readOnlyHint annotation by specifying what the tool returns and that it is scoped to 'this Part Studio.' It also frames the tool as a prerequisite for add_feature payload construction. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences carry significant information: the first defines the output content and scope, the second gives the usage trigger. There is no redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema, the description tells the agent what the response will contain and when to invoke this tool. All required parameters are schema-documented, and the workflow purpose is clear. Nothing essential is missing for a read-only lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters are fully documented in the schema (100% coverage), so the description does not need to repeat their meanings. It adds no additional parameter-specific guidance, which matches the baseline for complete schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states a specific verb and resource: it returns the parameter ids, enum names, and defaults Onshape expects for feature types in a Part Studio. This distinguishes it from onshape_get_features, which would retrieve actual features rather than their specifications.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit, actionable usage instruction: 'Read this before hand-writing a payload for onshape_add_feature.' It does not name alternatives or exclusions, but the workflow context is concrete and unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_get_feature_studioRead a Feature StudioBRead-only
The FeatureScript source of a Feature Studio.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already communicates that this is a safe read operation, lowering the burden on the description. The description adds that the content is FeatureScript source, but does not disclose response format, error behavior, or whether it reflects the currently saved state. This is minimal but acceptable given the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single six-word fragment that conveys one essential fact without filler or repetition. It is appropriately brief and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with fully described parameters and no output schema, the description tells the agent that the result is the FeatureScript source. It does not detail response encoding or error cases, but the tool is simple enough that the information provided is sufficient for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: doc, ws, and elem each have clear descriptions referencing the Onshape URL structure. The description adds no parameter-specific meaning, but with full schema coverage the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the returned content specifically as 'FeatureScript source' of a Feature Studio, which distinguishes it from siblings like get_feature_studio_specs or set_feature_studio. It is a noun phrase rather than an explicit verb phrase, but the tool name and title supply the read action clearly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives such as onshape_get_feature_studio_specs or onshape_set_feature_studio. The phrase 'FeatureScript source' weakly implies a read-for-content use case, but no when/when-not conditions or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_get_feature_studio_specsGet Feature Studio specsARead-only
The feature specifications a Feature Studio defines, for calling its custom features.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safe-read behavior is established. The description adds useful context that the result is specifically the custom-feature-calling specs of a Feature Studio, but it does not disclose the return shape, ordering, or any other behavioral details. This is acceptable given the read-only annotation but adds only modest context beyond it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that front-loads the core object (feature specifications from a Feature Studio) and immediately states its purpose. There is no filler, repetition, or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only getter with three fully documented input parameters and no output schema, the description provides a complete enough mental model: the tool returns the feature specs a Feature Studio defines so its custom features can be called. It does not enumerate the spec fields, but the stated purpose is sufficient for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter (doc, ws, elem) has a clear description referencing Onshape URL segments. The tool description adds no parameter-specific meaning, but since the schema already fully documents all three required parameters, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource ('feature specifications a Feature Studio defines') and the purpose ('for calling its custom features'), which distinguishes it from the broader onshape_get_feature_specs sibling. It lacks an explicit verb like 'retrieves' or 'returns,' but the title supplies the action, so the intended operation is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for calling its custom features' implies the appropriate use case: when an agent needs the specs needed to invoke custom features defined by a Feature Studio. However, it does not explicitly state when to prefer this tool over onshape_get_feature_specs or other feature-related siblings, leaving the differentiation mostly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_get_mate_valuesGet mate valuesARead-only
Where every mate currently sits: each degree of freedom's value, translations in inches and rotations in degrees, keyed by unit (translationZ_in, rotationZ_deg).
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered; the description adds genuinely non-structured detail — the returned key naming convention (translationZ_in, rotationZ_deg) and the unit system — which matters because no output schema exists. It stops short of saying the scope of mates returned or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the purpose and then supplies output format and units. Every clause carries information; nothing is padding, though it is packed tightly enough to be slightly harder to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only getter with no output schema, the description covers the essential unknown — what the return looks like, including key shape and units. It does not say which element scope mates are read from or what happens when a mate is suppressed, but the core call-and-interpret loop is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and all three identifiers (doc, ws, elem) are documented in the schema with URL-segment mapping, so the description needn't repeat them. It adds no parameter-level meaning beyond what the schema already provides, which is the baseline case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource — reading every mate's current degree-of-freedom values — with concrete output semantics (translations in inches, rotations in degrees). It is distinguishable from write-side siblings by the 'where every mate currently sits' framing, though it never names onshape_set_mate_values or the assembly tooling it relates to.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The read-only framing ('where every mate currently sits') implies you call this to inspect rather than modify, and onshape_set_mate_values is the obvious counterpart, but the description never states when to use this versus those alternatives or any prerequisite (e.g., that it operates on an assembly element).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_get_metadataGet element or part metadataARead-only
Read the properties of an element, or of one part when part is given.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| part | No | Part id, to read that part's properties. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already signals this is a safe read operation, and the description's 'Read' is consistent with that. The description adds useful conditional behavior (element metadata vs. part metadata), but does not disclose return shape, errors, or any other runtime behavior. With annotations covering safety, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the action and resource, and efficiently handles the optional part behavior. There is no filler or redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only metadata retrieval tool, the description plus the fully documented schema is nearly complete. There is no output schema, so a slightly more explicit statement of what kind of properties are returned would strengthen it, but nothing essential is missing for calling it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so doc, ws, elem, and part are each already explained. The description adds no additional parameter meaning beyond restating that part changes the scope, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Read'), a clear resource ('properties of an element, or of one part'), and the conditional scope when a part id is supplied. It is immediately distinguishable from its write counterpart onshape_set_metadata and from other read tools focused on features or bodies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the tool to use when metadata is needed, but it does not explicitly state when to prefer it over related tools like onshape_get_elements or onshape_get_parts. There are no exclusions or explicit alternative routing, so usage guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_get_partsList partsARead-only
The parts a Part Studio produces, with part ids for export and assembly insertion.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already covers the safety profile, so the description does not need to restate that the operation is read-only. The description adds the useful behavioral detail that the result contains part ids intended for export and assembly insertion. However, it does not mention ordering, configurability, or whether the listing reflects a specific configuration state, which would add further transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one compact sentence with no filler. It front-loads the core meaning and then adds the most important downstream use of the returned data. It could be slightly more direct by starting with 'Lists' instead of 'The parts', but overall it is efficiently written.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only listing tool with fully documented parameters, the description provides enough context: it names the subject, the source, and the intended downstream use of the returned part ids. There is no output schema, so more detail about the exact return shape would be welcome, but the description is adequate for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and all three parameters (doc, ws, elem) have descriptive explanations linked to URL segments. The description itself adds no parameter-specific semantics, so the baseline of 3 applies because the schema already carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (parts) and the producing context (a Part Studio), and it specifies the key content (part ids) for export and assembly insertion. The title 'List parts' supplies the verb, so an agent can infer the action even though the description is a noun phrase. It is distinguishable from sibling tools like get_features or get_elements, though it does not explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when this tool is useful: when a caller needs the parts a Part Studio produces, particularly their part ids for downstream export or assembly insertion. It does not explicitly list exclusions or alternative tools that might be preferable in other cases, but the use case is clear and unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_get_sketch_infoGet sketch geometryBRead-only
Entities and solved geometry for every sketch in a Part Studio, or for one sketch.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| sketch | No | Limit to this sketch feature id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds the specific return content (entities and solved geometry), which is useful context. It doesn't disclose additional behaviors like pagination or error conditions, but with the safety profile covered, this is a reasonable baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core capability. It avoids unnecessary words and is easy to parse, though it could optionally mention the optional parameter's effect more explicitly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should clarify what the agent will receive. It mentions 'entities and solved geometry' but not their structure or any caveats. For a straightforward read-only tool with well-defined inputs, this is adequate but leaves some ambiguity about the response format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are fully documented. The description adds no additional meaning beyond the schema, such as clarifying the 'sketch' parameter's format or how the 'elem' refers to a Part Studio tab. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource (sketch entities and solved geometry) and scope (all sketches in a Part Studio or one sketch), distinguishing it from other get_* tools by its specific focus. However, it lacks an explicit verb like 'retrieves' or 'returns', and doesn't contrast with siblings, though the name already implies a getter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied: if you need sketch geometry, this is the tool. But it doesn't explicitly state when to use it over alternatives, mention when not to use it, or note any prerequisites. For a simple getter this is acceptable but not ideal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_get_thumbnailDownload the element thumbnailA
Save Onshape's stored thumbnail. Thumbnails are generated asynchronously and lag edits — prefer onshape_shaded_view to see the current state.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| out | No | Output PNG path (default onshape-thumb-<timestamp>.png). | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| size | No | Thumbnail size, e.g. "600x340" or "300x300" (default 600x340). | |
| return_image | No | Also return the PNG inline (default true). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses an important behavioral trait: thumbnails are generated asynchronously and can lag behind edits. However, annotations provide no behavioral hints, and the description does not clarify side effects such as writing a file to disk, returning an image, or whether the operation is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The core purpose is front-loaded, and the caveat plus alternative is delivered immediately after.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The critical caveat about stale thumbnails and the pointer to onshape_shaded_view are present, and the schema fully documents parameters. A minor gap is that return/save behavior is not explicitly described, but the schema's out and return_image fields partially cover this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already well documented. The tool description adds no parameter-specific meaning, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: saving Onshape's stored thumbnail. It also distinguishes this tool from onshape_shaded_view by noting that shaded_view shows current state, so the agent can tell which tool serves which need.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly names onshape_shaded_view as the preferred alternative when current state is needed, which tells the agent when not to use this tool. That is clear, actionable usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_get_variablesList Part Studio variablesBRead-only
The variable table of a Part Studio: names, expressions and descriptions.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers the safety profile, and the description adds useful context about what the variable table contains. However, it does not disclose behaviors such as whether all variables are returned, how empty tables are handled, or any error conditions. There is no contradiction with the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that directly conveys the tool's purpose and expected content without extraneous words. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only listing tool with fully documented required parameters and a readOnlyHint annotation, the description is nearly sufficient. It communicates the returned fields, which partially compensates for the missing output schema, though it omits any nuance about version context or empty results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are fully documented in the schema. The description adds no parameter-level semantics beyond the schema, keeping this at the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (Part Studio variable table) and the content returned (names, expressions, descriptions), and the title supplies the 'List' verb. It is clear and distinct from the sibling set_variable, though it never explicitly states 'retrieves' or 'lists'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as onshape_set_variable or other read-only queries. The intended context can be inferred from the name and title, but no explicit usage conditions or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_get_workspacesList workspacesARead-only
List a document's workspaces (branches).
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the clarification that workspaces are 'branches', which is useful domain context. However, it does not disclose what the response contains (e.g., workspace names, IDs, default workspace) or any pagination/ordering behavior. With annotations covering the read-only nature, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the verb and resource. It adds the parenthetical clarification '(branches)' which is valuable domain context without waste. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only list operation with one fully documented parameter, the description is nearly complete. The only minor gap is that it doesn't describe the return format (e.g., list of workspace names/IDs), but since there is no output schema and the tool is simple, this is a small omission. The read-only annotation covers the safety profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents the 'doc' parameter, including its format and example. The description adds no additional parameter semantics beyond what the schema provides. Baseline 3 is correct when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('a document's workspaces (branches)'), which clearly identifies the operation. It does not explicitly differentiate from sibling tools like onshape_list_versions or onshape_get_elements, but the resource is distinct enough that an agent can infer the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: it lists workspaces for a document, which is a read-only operation. However, it does not explicitly state when to use this tool versus alternatives like onshape_list_versions or onshape_get_document, nor does it mention any prerequisites (e.g., needing a document ID). The context is clear but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_holeCut a holeA
Extrude a sketch as a cut (op=REMOVE). Sketch a circle first, then cut it through the body: end_type THROUGH_ALL needs no depth. A sketch on a body's face points out of the body, so pass opposite to cut into it.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| name | No | Feature name shown in the tree (default "Hole"). | |
| depth | No | Cut depth in inches; the total depth when symmetric. Required unless THROUGH_ALL or depth_variable. | |
| sketch | Yes | Feature id of the sketch to cut with. | |
| end_type | No | BLIND goes `depth` along the sketch normal (default); SYMMETRIC goes `depth` in total, half each side of the sketch plane; THROUGH_ALL goes past every body and ignores `depth`. | |
| opposite | No | Go against the sketch normal instead of along it. Not with SYMMETRIC. | |
| validate | No | Re-read the feature list afterwards and fail if the feature regenerated with an error (default true). | |
| depth_variable | No | Use a Part Studio variable for the depth. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations carry only a title, so the description bears the full burden and does disclose that material is removed ('cut it through the body'), making the mutating/destructive nature unambiguous. It omits supporting behavior such as that a feature is added to the tree or how validation failures surface, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with zero filler, front-loaded on what the tool does before moving to the prerequisite and then the directional pitfall. Every sentence contributes operational information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter mutation tool with no annotations and no output schema, the description covers the two things an agent is most likely to get wrong (depth-less THROUGH_ALL and opposite-direction cuts). It does not say what is returned or how the feature id is surfaced, which leaves a small gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning the schema lacks: the sketch-normal orientation rule explains why and when to set `opposite`, and it confirms THROUGH_ALL ignores depth. `name`, `depth_variable` and `validate` are left to the schema, which documents them well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and effect: 'Extrude a sketch as a cut (op=REMOVE)', which immediately distinguishes it from the plain onshape_extrude add operation. It never names onshape_extrude explicitly, so the differentiation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete prerequisite workflow ('Sketch a circle first') and conditional guidance ('end_type THROUGH_ALL needs no depth', 'pass opposite to cut into it'). It does not frame when to choose this over onshape_extrude or other cut-producing tools, so there is no explicit exclusion clause.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_insert_instanceInsert an instanceB
Insert a part, a whole Part Studio or another assembly into an assembly. Insert from a version when pulling from a different document.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| part | No | Part id, to insert a single part. | |
| fixed | No | Fix the new instance in place, to ground the assembly. Onshape has no public call to fix or unfix an instance afterwards; to change it, insert again and delete the old instance. | |
| src_doc | No | Source document id (defaults to the target document). | |
| src_elem | Yes | Element id of the source Part Studio or assembly. | |
| is_assembly | No | The source element is an assembly. | |
| src_version | No | Source version id, required when inserting across documents. | |
| whole_studio | No | Insert every part of the source Part Studio. | |
| configuration | No | Encoded configuration for the inserted element. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations carry only a title, so the description bears the full burden. It confirms this is a mutating insert, but does not mention that the target element must be an assembly, what happens on id collision, whether the inserted instance is grounded (that detail lives only in the `fixed` schema text), or that undoing requires onshape_delete_instance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the primary capability front-loaded and the cross-document caveat second. No filler, though the second sentence is somewhat redundant with the src_version schema text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter tool with no output schema and only a title annotation, the description adequately frames the operation's three modes and the cross-document requirement, while the unusually detailed schema (especially the `fixed` note about no public fix/unfix call) covers the finer mechanics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the definitions already explain doc/ws/elem, part, whole_studio, is_assembly, src_version and fixed. The description adds only the cross-document version rule, which the schema already states for src_version, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a concrete verb and resource — insert a part, a whole Part Studio, or another assembly into an assembly — so the operation and its three input shapes are unambiguous. It does not explicitly contrast with sibling tools like onshape_delete_instance or onshape_transform_instance, which is the only thing separating it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the scenario it describes (building up an assembly), and it adds one targeted rule: use a version when pulling from a different document. It never states when not to use it or names alternatives such as delete_instance or assembly_mate for repositioning/constraining the inserted instance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_linear_patternLinear patternB
Repeat geometry along a direction, at a fixed spacing.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| name | No | Feature name shown in the tree (default "Linear Pattern"). | |
| type | No | What kind of thing is patterned (default PART). | |
| count | Yes | Total number of instances, including the original. | |
| distance | Yes | Spacing between instances, inches. | |
| entities | Yes | FeatureScript query selecting what to pattern. | |
| opposite | No | Pattern in the opposite direction. | |
| validate | No | Re-read the feature list afterwards and fail if the feature regenerated with an error (default true). | |
| direction | No | FeatureScript query selecting the direction entity. | |
| direction_ids | No | Deterministic id of an edge giving the direction. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide the title, so the description carries the behavioral burden. It states the operation is a repeat with fixed spacing, which is a mutation (creating new geometry), but doesn't disclose side effects like whether the original is kept, how errors are handled, or the role of the 'validate' parameter. The description adds minimal behavioral context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the core action and key parameters. It earns its place without redundancy, though it could add a bit more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter mutation tool with no output schema, the description is minimal. The schema covers parameters, but the description doesn't explain the overall behavior (e.g., what 'entities' selects, how direction is determined, or what happens on validation failure). It's adequate but leaves gaps for an agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 12 parameters. The description adds no parameter-specific meaning beyond 'direction' and 'fixed spacing', which are already in the schema. Baseline 3 is appropriate because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Repeat geometry along a direction, at a fixed spacing' clearly states the verb (repeat), the resource (geometry), and the key parameters (direction, fixed spacing). It distinguishes the tool from siblings like onshape_circular_pattern, which repeats around an axis, though it doesn't explicitly name that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for linear repetition of geometry, and the sibling list includes onshape_circular_pattern, which is the obvious alternative. However, it doesn't explicitly state when to use this tool vs. alternatives, nor does it mention prerequisites like needing a selected entity or direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_list_documentsList Onshape documentsARead-only
List documents visible to the signed-in user, most recently modified first.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many to return (default 20). | |
| filter | No | Which documents to list (default all). | |
| sort_by | No | Sort column, e.g. modifiedAt or name (default modifiedAt). | |
| sort_order | No | Sort direction (default desc). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the agent knows this is a safe read operation. The description adds the default ordering ('most recently modified first') and the scope ('visible to the signed-in user'), which are useful. However, it doesn't disclose pagination behavior, whether the result is a list of summaries or full documents, or any rate-limit considerations. With annotations covering the safety profile, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with zero waste. It front-loads the action, resource, and scope, and includes the key default behavior. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a simple list tool whose annotations already carry the safety profile. The schema covers all parameters, and the description covers scope and default ordering. The only minor gap is the lack of an output schema or a note about the return shape, but for a list operation this is not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description adds the default ordering context ('most recently modified first') which aligns with sort_by=modifiedAt and sort_order=desc, but doesn't add syntax or format details beyond what the schema provides. Baseline 3 is correct when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List'), a specific resource ('documents visible to the signed-in user'), and a distinguishing behavior ('most recently modified first'). It clearly differentiates from sibling tools like onshape_search_documents and onshape_get_document.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for listing documents visible to the user, which is clear context. It does not explicitly mention when to use it over onshape_search_documents or onshape_get_document, but the scope ('visible to the signed-in user') and default ordering provide enough context for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_list_versionsList document versionsARead-only
List the immutable versions of a document, newest first.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers the safety profile, and the description adds useful context: versions are immutable and the list is newest-first. Still, it does not disclose return format, pagination, or limits. This is comparable to a simple read-only list tool where annotations carry the main safety burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with the verb and object front-loaded. Every word earns its place, and there is no filler or redundant restating of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only listing tool, the description is complete: the schema documents the parameter, the annotation declares read-only behavior, and the description supplies ordering and version nature. Nothing needed to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage of the single 'doc' parameter, including its exact URL pattern. The description adds no additional parameter semantics, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('versions of a document'), and further characterizes them as 'immutable' and ordered 'newest first'. This clearly distinguishes it from sibling tools like onshape_create_version or onshape_list_documents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: retrieve the immutable version history of a document. However, the description gives no explicit guidance on when to choose this over related tools such as onshape_list_documents, onshape_get_document, or onshape_create_version.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_loginSign in to OnshapeA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | Loopback port for the callback (OAuth default 8471). | |
| scope | No | Space-separated OAuth scopes, when the app needs them stated. | |
| store | No | Where to keep the credential: auto (keychain, else file), keychain, or file. | |
| method | No | Login method (default api_key). | |
| base_url | No | Onshape API base URL (default https://cad.onshape.com). | |
| client_id | No | OAuth client id; also read from ONSHAPE_OAUTH_CLIENT_ID. | |
| oauth_url | No | OAuth server (default https://oauth.onshape.com). | |
| wait_seconds | No | Seconds to wait for the browser before returning (default 20). | |
| client_secret | No | OAuth client secret; also read from ONSHAPE_OAUTH_CLIENT_SECRET. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the openWorldHint annotation, the description discloses real behavioral traits: it opens a browser, supports two distinct credential flows, verifies against Onshape, stores credentials in the OS keychain, and returns early with 'pending'. This is substantial transparency for an interactive login tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence carries distinct information: the core action, each login method, credential handling, and the pending/poll behavior. No filler or redundant restatement of the schema is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the login flow, return behavior, and sibling polling tool, which is strong given 9 optional parameters and no output schema. It stops short of describing the successful-return shape or how to handle already-authenticated users, but those are minor gaps for invoking the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers all parameters with descriptions, so the baseline is solid. The description adds meaningful semantic detail by explaining what the method parameter's api_key and oauth values actually do, going beyond the schema's enum labels.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Sign in to Onshape by opening a browser,' followed by concrete details of the two login methods. It clearly differentiates itself from onshape_login_status by pointing to that tool for polling pending status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells the agent when to poll with onshape_login_status, which is a direct usage directive relative to a sibling. It does not explicitly explain when to choose api_key versus oauth, but the method semantics make the practical context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_login_statusCheck the pending Onshape loginARead-only
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.
| Name | Required | Description | Default |
|---|---|---|---|
| wait_seconds | No | Seconds to wait for the browser before returning (default 20). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide readOnlyHint=true; the description adds genuine behavioral value beyond that by disclosing the blocking/polling nature ('each call waits up to wait_seconds before returning'). This is useful, non-contradictory context that an agent needs to know before calling repeatedly. It does not contradict the read-only annotation since waiting/reporting is a safe read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with zero filler. The core purpose is front-loaded ('Wait for, and report on...'), followed immediately by critical usage guidance about repeated calls. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequately complete for a simple polling tool: it explains the polling loop and wait duration. However, with no output schema, it does not describe what the agent should expect on timeout or how it distinguishes 'still pending' from 'login complete' — a meaningful gap since the agent needs the loop-termination condition to know when to stop calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% — the single parameter wait_seconds is fully documented with min, max, and default value. The description reinforces the wait behavior but adds little semantic value beyond what the schema already provides. Baseline 3 is appropriate when the schema does the heavy lifting for a fully-documented single parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb-resource pair ('Wait for, and report on, the login started by onshape_login') and explicitly ties it to the login flow. 'Call this repeatedly while the user is in the browser' frames it as a polling tool, distinguishing it from siblings like onshape_auth_status and onshape_login without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear contextual usage ('Call this repeatedly while the user is in the browser; each call waits up to wait_seconds before returning'), which precisely instructs the agent on the polling loop. However, it does not explicitly contrast with onshape_auth_status (the closest sibling) or state when NOT to use this tool, leaving the exclusion implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_logoutForget stored Onshape credentialsADestructiveIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and destructiveHint=true. The description adds specific detail about what is deleted (keychain entry and config file) and what is not (env vars, CLI install), going beyond annotations. No contradiction found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: the first states the core action, the second clarifies exclusions. No redundant words, and the primary effect is front-loaded for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no parameters and no output schema, the description fully explains the action and its boundaries. The agent has all necessary information to invoke it correctly without needing additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the schema provides no information to explain. The description appropriately does not add parameter details, meeting the baseline score of 4 for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Delete) and resource (credential stored on server), and specifies the storage locations (keychain entry and config file). It clearly distinguishes from related tools like onshape_login and onshape_set_api_key that manage credentials. Unambiguous and informative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clarifies scope by excluding credentials from environment variables and onshape-cli installs, implicitly indicating when this tool is appropriate. However, it does not explicitly name alternative tools or provide a direct 'use this when' statement, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_mass_propertiesGet mass propertiesBRead-only
Volume, mass, centroid and inertia for the Part Studio's bodies.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| configuration | No | Encoded configuration string from onshape_encode_configuration. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, so the agent knows this is a safe read operation. The description adds that it returns volume, mass, centroid, and inertia, which is useful. It does not disclose details like units, coordinate frame, or whether it returns per-body or aggregate values, but the read-only safety profile is already covered by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the key output quantities. It earns its place with no wasted words, though it could add a brief note about the sibling tool without much cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only query tool with 100% schema coverage and no output schema, the description is adequate but not complete. It does not mention units, whether the result is per-body or aggregate, or how it differs from onshape_assembly_mass_properties. An agent could call it correctly, but might misinterpret the scope of the returned values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description adds no parameter-specific meaning beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('mass properties') and lists the computed quantities (Volume, mass, centroid and inertia) for the Part Studio's bodies. It is clear enough to distinguish from the sibling onshape_assembly_mass_properties, though it does not explicitly name that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: call it when you need mass properties of Part Studio bodies. It does not explicitly state when to use this versus onshape_assembly_mass_properties, nor does it mention any prerequisites (e.g., the part studio must have bodies). The context is clear but exclusions/alternatives are not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_measureMeasure the modelARead-only
Body count, overall bounding box in inches and total volume. Use this to check a model matches its intended dimensions before exporting.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=true, the read-only safety profile is already covered by annotations. The description adds useful behavioral detail about the measured quantities, which is sufficient for a simple measurement tool, though it does not describe error behavior or response details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short, purposeful sentences: the first lists measured outputs and the second gives the use case. There is no filler or repetition of schema information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter, read-only tool, the description plus the fully documented schema is largely complete. The only meaningful gap is the lack of explicit guidance for choosing this tool over overlapping siblings such as onshape_mass_properties.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with doc, ws, and elem fully documented in the input schema. The description adds no parameter-specific guidance, so the high-coverage baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool returns: body count, overall bounding box in inches, and total volume. It also gives the intended use case, checking dimensions before export, but it does not explicitly distinguish itself from overlapping sibling tools such as onshape_mass_properties.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use this to check a model matches its intended dimensions before exporting" provides clear invocation context. However, it does not mention exclusions or alternatives, so it stops short of a fully explicit when-to-use/when-not-to-use guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_mirrorMirror geometryB
Mirror parts, bodies or faces across a plane.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| name | No | Feature name shown in the tree (default "Mirror"). | |
| type | No | What kind of thing is being mirrored (default PART). | |
| entities | Yes | FeatureScript query selecting what to mirror. | |
| validate | No | Re-read the feature list afterwards and fail if the feature regenerated with an error (default true). | |
| plane_ids | No | Deterministic id of the mirror plane, e.g. JCC for Front. | |
| plane_query | No | FeatureScript query selecting the mirror plane. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide a title, so the description carries the full burden of behavioral disclosure. It states the action but not that mirroring is a model-mutating feature operation, that it creates new geometry, or that it depends on a valid plane selection. No side effects, failure behavior, or validation behavior are mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly written sentence with a clear verb, object, and target. There is no redundant wording or repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With nine parameters, four required, and no output schema, a one-line description is insufficient context. The parameter schema covers field semantics, but the description does not clarify key operational details such as how plane_query and plane_ids relate, what entities expects, or what happens after mirroring.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters already have meaningful documentation. The description does not add parameter-level semantics beyond naming parts, bodies, facesainer and plane, but the schema fully compensates, yielding the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Mirror') with a specific resource ('parts, bodies or faces') and a clear spatial target ('across a plane'). It stands apart from sibling feature-construction tools and directly tells an agent what operation this tool performs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance about when to use this tool versus alternatives, nor any exclusions or prerequisites. An agent must infer from the tool name and one-liner that this is the mirror operation, and nothing explains how it relates to similar geometry-modification tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_offset_planeCreate an offset planeA
Add a construction plane offset from a default plane, a face, or another plane.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| name | No | Feature name shown in the tree (default "Offset plane"). | |
| offset | No | Offset distance in inches (default 1). | |
| base_ids | No | Deterministic ids of the plane or face to offset from. | |
| validate | No | Re-read the feature list afterwards and fail if the feature regenerated with an error (default true). | |
| base_plane | No | Default plane to offset from (default Front). | |
| base_query | No | FeatureScript query selecting the base plane or face. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations contain only a title; no readOnlyHint or destructiveHint. The description's 'Add' implies a mutating operation but does not disclose that it modifies the document, whether it requires write permissions, or what side effects occur (e.g., feature list changes). For a mutation tool with zero annotation coverage, this is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence of 14 words that leads with the core action, 'Add a construction plane.' No filler, no repetition of schema content. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 9 parameters and no output schema, yet the description only covers the core purpose. It does not explain how to select among the base parameters, the meaning of the offset in the document, or validation behavior. The schema descriptions are rich, so the description can be minimal, but it leaves some operational context to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the structured parameter documentation is thorough. The description adds a small semantic layer by summarizing base sources, but it does not clarify how base_plane, base_ids, and base_query interact (e.g., exclusivity or precedence). This is baseline behavior for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Add a construction plane offset from a default plane, a face, or another plane.' This clearly distinguishes the tool from sibling feature-creation tools like extrusions or sketches, leaving no ambiguity about what it creates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage—create an offset construction plane—and lists valid base types (default plane, face, another plane). However, it offers no explicit guidance about when to prefer this tool over alternatives, no exclusions, and no mention of prerequisites such as needing a part studio context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_requestCall any Onshape REST endpointA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | JSON request body, for POST. | |
| path | Yes | API path, e.g. /api/v6/documents/d/{did}/w/{wid}/elements. Must begin with /api/. | |
| method | Yes | HTTP method. | |
| params | No | Query string parameters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only carry openWorldHint, so the description carries the burden of behavioral disclosure. It mentions authentication and implicitly communicates a raw/unvalidated response by contrasting with dedicated tools, but it does not warn that arbitrary POST/DELETE calls can create, modify, or destroy data, nor does it describe response/error behavior or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each with a distinct job: scope/fallback, endpoint documentation, and routing rule. No filler or duplicated schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an arbitrary-endpoint tool the link to the Onshape REST explorer is essential and provided, along with the path prefix, auth context, and the clear instruction to prefer dedicated tools. It stops short of stating that the raw response is returned as-is and that no validation occurs, but this is strongly implied by the contrast with dedicated tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers 100% of parameters with descriptions, including a path example, method enum, body, and query params; the description adds only the /api/ requirement and a link to endpoint docs. Since the schema does the heavy lifting, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pair ('Make an authenticated request to an arbitrary Onshape REST endpoint') and explicitly scopes it as a fallback ('for anything the dedicated tools do not cover'), which distinguishes it from the many sibling endpoints. It also defines the path convention (/api/) and points to the authoritative endpoint reference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The decision rule is explicit: prefer a dedicated tool when one exists, because dedicated tools 'normalise the response and validate the result.' This gives the agent a clear when-to-use/when-not-to-use criterion instead of leaving it to infer from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_revolveRevolve a sketchA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| op | No | NEW makes a new body; ADD/REMOVE/INTERSECT combine with existing bodies (default NEW). | |
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| axis | No | FeatureScript query selecting the axis. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| name | No | Feature name shown in the tree (default "Revolve"). | |
| type | No | FULL revolves all the way around (default FULL when an axis is given). | |
| angle | No | Revolve angle in degrees (default 360). | |
| sketch | Yes | Feature id of the sketch holding the profile. | |
| axis_ids | No | Deterministic ids of the axis entity. | |
| validate | No | Re-read the feature list afterwards and fail if the feature regenerated with an error (default true). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses one useful, non-obvious behavior: if no axis is supplied, the sketch's own construction line is used; otherwise axis_ids or an axis query must be passed. However, annotations provide no readOnly/destructive hints, and the description never states that this is a document-modifying feature or what the operation produces/side effects. Some behavioral context is added, but the mutation implications are left implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste: the core purpose is front-loaded, and the optional-axis behavior follows in a structured parenthetical with a useful sibling cross-reference. Every clause earns its place and the description is easy to scan for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 11 parameters, no output schema, and only a title annotation, the single behavioral sentence plus axis note is thin. The schema covers all parameter semantics, but the description does not mention that the tool mutates the document, what the return/result looks like, or prerequisites such as a closed sketch profile. A mutating feature with no safety annotations needs a bit more context than this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description goes beyond the schema by explaining the axis fallback rule ('the sketch's own construction line is used') and the two ways to specify an axis ('axis_ids or an axis query'). It also clarifies that the sketch parameter refers to the profile being revolved, adding semantic value beyond the terse schema field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the specific verb 'Revolve' and the resource 'a sketch profile around an axis,' clearly naming the operation and its target. It also distinguishes itself from modeling siblings like extrude/sweep by emphasizing rotational geometry and axis handling. No ambiguity remains about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use revolve rather than extrude, sweep, or other solid-modeling alternatives. The only conditionals address axis handling within the tool ('with no axis given' vs 'otherwise pass axis_ids'), not when to select this tool. The cross-reference to onshape_sketch_circle_axis helps prepare an axis but does not substitute for tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_rollbackMove the rollback barA
Set the rollback index so features after it are suppressed. Index 0 rolls back to before the first feature.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| index | Yes | Rollback index; use a large number to roll fully forward. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide a title, so the description carries the behavioral burden. It discloses the core side effect: features after the index are suppressed, and explains the index-0 edge case. However, it does not mention whether this is a persistent document mutation, whether it requires write permissions, or whether it affects the saved state of the document. The suppression effect is the key behavior and is disclosed, but other behavioral context is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The core action and the critical edge case are front-loaded. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple mutation tool with four well-documented parameters and no output schema, the description covers the essential semantics. However, it doesn't state what the response looks like (e.g., whether it returns the updated feature list) or whether the operation is reversible. Given the tool's simplicity, this is a minor gap, but the description could be more complete about the effect on the document state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description adds meaning for the 'index' parameter by explaining the rollback semantics and the index-0 special case, which goes beyond the schema's 'Rollback index; use a large number to roll fully forward.' The other parameters (doc, ws, elem) are standard identifiers already well-described in the schema, so the description doesn't need to add more.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Set') and resource ('rollback index'), and explains the effect ('features after it are suppressed'). It also clarifies the special case of index 0. It doesn't explicitly distinguish from sibling tools, but the resource and effect are clear enough that an agent can tell it apart from feature-editing tools like onshape_add_feature or onshape_update_feature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: when you want to suppress features after a certain point in the feature list. It does not explicitly state when not to use it or name alternatives (e.g., onshape_get_features to inspect the current rollback state, or onshape_update_feature for editing a feature). The context is clear but exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_search_documentsSearch Onshape documentsARead-only
Find documents by name. Search before creating, so repeated runs do not make duplicates.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many to return (default 20). | |
| query | Yes | Text to match against document names. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, covering the read-only safety profile. The description adds 'Find documents by name' and the pre-creation workflow hint, but does not disclose additional behavioral details such as return format or matching semantics. With annotation coverage, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero filler. The core action ('Find documents by name') is front-loaded in the first sentence, and the second sentence provides a relevant, actionable usage tip. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only search with two fully documented parameters and no output schema, the description plus schema cover the essential calling context. The workflow tip adds practical value. It could mention the nature of the returned result list, but the lack of an output schema makes this less critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both 'query' and 'limit', so the schema already fully documents the parameters. The description's 'by name' aligns with the query parameter description but adds no new semantic meaning beyond what is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Find' with the resource 'documents' and the search criterion 'by name', clearly distinguishing it from siblings like onshape_list_documents (which would list all documents) and onshape_get_document (which fetches by ID). It leaves no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit workflow guidance: 'Search before creating, so repeated runs do not make duplicates,' which tells the agent when to use this tool relative to create_document. However, it does not explicitly name alternatives or state when not to use it (e.g., when listing all documents), so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_set_api_keyStore an Onshape API key pairA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| store | No | Where to keep the credential: auto (keychain, else file), keychain, or file. | |
| base_url | No | Onshape API base URL (default https://cad.onshape.com). | |
| access_key | Yes | Onshape access key. | |
| secret_key | Yes | Onshape secret key. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations carry only a title with no read-only or destructive hints, so the description bears the full burden. It discharges most of it with 'The pair is verified against Onshape before it is saved,' which tells the agent this tool makes a network round-trip and will decline to persist invalid credentials. It does not cover overwrite behavior for an already-stored key, but the core safety-relevant behavior is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: the first states the action and differentiates it from browser login, the second gives the use condition, and the third discloses the verification behavior. The core purpose is front-loaded with no repetition of the title or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity credential-store tool with full schema coverage and only two required parameters, the description covers purpose, usage condition, and the key verification behavior. The only gaps are overwrite semantics and the success/failure response shape, but with no output schema expected, the description is close to complete for this tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters (access_key, secret_key, store, base_url), earning the baseline 3. The description adds marginal semantic context by pointing users to where keys originate and stating the verification requirement implies the two keys must be a valid pair.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource — 'Store an Onshape access key and secret key directly' — and adds the distinguishing phrase 'without a browser,' which separates it from the browser-based onshape_login flow. A second sentence notes the pair is 'verified against Onshape before it is saved,' further pinning down what the tool does. This is clearly differentiated from its roughly ninety siblings, none of which store credentials.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The instruction 'Use when the user already has a key pair from https://cad.onshape.com/user/developer/apiKeys' gives an explicit condition for choosing this tool, and it routes the agent to the browser-based login path when that condition is absent by implication. It stops short of naming the alternative explicitly or stating when not to use it, but the condition is concrete enough that an agent can make the call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_set_feature_studioWrite a Feature StudioA
Replace the FeatureScript source of a Feature Studio. The whole file is overwritten.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| contents | Yes | The complete new FeatureScript source. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no readOnly or destructive hints, so the description carries the transparency burden. It explicitly discloses the key destructive behavior: 'The whole file is overwritten.' This goes beyond a generic write description by making the irreversible nature of the operation clear. It does not cover permissions, validation, or failure behavior, but the main risk is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The primary action is stated first, and the important destructive consequence is front-loaded in the second sentence. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple write tool with four fully documented parameters and no nested objects or output schema, the description is largely complete: it names the operation, the resource, and the destructive consequence. A minor gap is not stating whether the Feature Studio must already exist or whether invalid FeatureScript is validated before overwriting.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented with clear descriptions. The tool description adds no additional param-level meaning beyond reinforcing that contents replace the complete source. This matches the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Replace the FeatureScript source of a Feature Studio'. It also adds the crucial scope detail that the whole file is overwritten, distinguishing this write operation from related tools like get_feature_studio or create_feature_studio.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is used when you want to overwrite an existing Feature Studio's source, and the sibling names (create_feature_studio, get_feature_studio) provide indirect contrast. However, it does not explicitly state when to prefer this over alternatives, nor does it mention any preconditions such as the Feature Studio needing to already exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_set_mate_valuesSet mate valuesA
Drive top-level mates to new positions — turn a revolute, slide a slider — and read them back; relations move the coupled mates too. Values are inches and degrees. Fails when Onshape does not apply a value, which it does silently for mates with limits enabled and for positions the rest of the assembly cannot reach.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| values | Yes | One entry per mate, naming only the degrees of freedom to change. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations beyond a title, the description carries the full burden and does well: it discloses that Onshape can silently ignore a value when limits are enabled or the assembly cannot reach the position, and that coupled mates move via relations. It omits permission requirements and whether unspecified degrees of freedom are preserved, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The capability statement and the two gotchas are front-loaded with almost no filler, and the em-dash examples make the behavior scannable. It is slightly dense — the failure clause could be split for readability — but every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description covers units, propagation through relations, implicit return of values, and the silent-failure conditions that would otherwise confuse an agent. Missing pieces are auth prerequisites and the effect on degrees of freedom not named in the values array.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents doc/ws/elem and each rotation/translation axis with units. The description's unit statement (inches, degrees) repeats what field names and descriptions already convey, adding little beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a concrete verb ('Drive ... to new positions') with tangible examples ('turn a revolute, slide a slider') and notes it can read values back, which implicitly separates it from onshape_get_mate_values. It stops short of explicitly naming the read-only sibling, so an agent must infer the division of labor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It supplies useful operating context (units are inches and degrees, relations propagate motion to coupled mates) but never states when to prefer this over onshape_get_mate_values or onshape_assembly_mate. Usage is implied by the examples rather than spelled out as a when/when-not rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_set_metadataSet element or part metadataA
Write properties such as part number, description or material. Only editable properties are accepted; read onshape_get_metadata first to find the property ids.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| part | No | Part id, to set that part's properties instead of the element's. | |
| properties | Yes | Property ids and their new values. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no readOnlyHint or destructiveHint annotations, the description carries the behavioral burden. It clearly signals a write operation, warns that non-editable properties are rejected, and instructs the agent to fetch property ids beforehand. It does not disclose permission requirements or partial-update behavior, but the core mutation semantics and precondition are well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: the purpose is front-loaded, and the second sentence delivers the key prerequisite and constraint. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description plus fully documented schema covers the essentials: what to write, which ids are needed, and where to get them. It omits response/error behavior, but there is no output schema and the read-first instruction compensates for the main usage risk.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The description adds useful semantic color with examples like part number, description, and material, but it does not materially expand parameter meaning beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Write') and resource ('properties such as part number, description or material') for element/part metadata, making the tool's function unambiguous. It also positions itself against the sibling onshape_get_metadata by prescribing a read-first workflow, helping an agent distinguish the setter from the getter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for use: read onshape_get_metadata first to obtain valid property ids, and only editable properties are accepted. It does not explicitly state when not to use this tool or mention alternative setters, but the prerequisite and constraint provide adequate usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_set_variableSet a Part Studio variableA
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. On the feature route an existing variable of the same name is rewritten in place, so features built after it pick up the new value (result.action is updated or created).
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| name | Yes | Variable name, without the leading #. | |
| type | No | Variable type; inferred from the expression's units when omitted. | |
| expression | Yes | Value expression with units, e.g. "0.25 in" or "2 * #wall". | |
| description | No | What the variable means. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With only a title annotation, the description carries the full burden and does well: it discloses the dual route (variable table vs. assignVariable feature), the fallback, the in-place rewrite on the feature route, and the result.route/result.action indicators. It stops short of explaining what happens on the variable table route when a variable of the same name already exists, or what permissions/errors to expect, so a meaningful gap remains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tightly packed sentences with zero filler, front-loaded with the verb phrase. Every sentence contributes a distinct fact—purpose, value, route mechanism, and rewrite behavior—so no trimming is warranted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description usefully previews result.route and result.action, which an agent would otherwise have to discover by trial. It does not state the full return shape, error conditions, or authentication requirements, and omits whether the variable-table route also overwrites same-named variables, so it is strong but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all seven parameters (including units and the no-leading-# rule). The description adds no parameter-specific syntax or constraints beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create or update a variable') and immediately distinguishes it from read-only siblings like onshape_get_variables by describing the write/upsert semantics. It also names what the variable is for (feature tools referencing it by name), so an agent can tell exactly what this tool accomplishes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The rationale ('so a dimension lives in one place') implies when to use it, but there is no explicit guidance on when not to use it or which sibling to prefer. Alternatives such as onshape_get_variables or onshape_delete_feature are never named, leaving the agent to infer the selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_shaded_viewRender the modelA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| out | No | Output PNG path (default onshape-<timestamp>.png in the output directory). | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| kind | No | Element kind being exported (default partstudios). | |
| width | No | Image width in pixels (default 600). | |
| height | No | Image height in pixels (default 340). | |
| no_edges | No | Hide edges in the render. | |
| view_matrix | No | 3x4 row-major camera matrix as 12 comma-separated numbers (default isometric). | |
| return_image | No | Also return the PNG inline (default true). | |
| configuration | No | Encoded configuration string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide only a title, so the description must carry the behavioral burden. It discloses that rendering is server-side, on-demand, and shows current geometry. However, it does not mention that it may write a file to disk via the 'out' parameter, nor does it discuss authentication requirements or side effects. This is adequate but leaves some behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The core purpose is front-loaded, and the alternative (thumbnail) is mentioned immediately. The usage hint is concise and actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a render tool with 11 parameters and no output schema, the description covers the essential usage and distinguishes it from thumbnails. It does not explain advanced parameters like 'configuration' or 'view_matrix', but these are self-explanatory in the schema. The tool's complexity is moderate, and the description is adequately complete for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 11 parameters. The description adds no additional meaning beyond the schema, such as how the 'view_matrix' should be formatted or when to set 'return_image' to false. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Render the element server-side and return the image') and names the resource (element). It explicitly differentiates from thumbnails by emphasizing on-demand generation and current geometry, which distinguishes it from sibling tools like onshape_get_thumbnail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear use case ('use it to check a model visually before exporting') and contrasts with thumbnails. It does not explicitly mention when not to use it or other alternatives (e.g., export tools), but the context is sufficient for an agent to understand its primary purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_shellShell a bodyA
Hollow the body out to a wall thickness, removing the selected faces to open it.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| name | No | Feature name shown in the tree (default "Shell"). | |
| faces | No | Deterministic ids of faces to remove. | |
| query | No | FeatureScript query selecting the faces to remove. | |
| outward | No | Thicken outward instead of inward. | |
| validate | No | Re-read the feature list afterwards and fail if the feature regenerated with an error (default true). | |
| thickness | No | Wall thickness in inches (default 0.125). | |
| thickness_variable | No | Use a Part Studio variable for the thickness. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide only a title, so the description carries the behavioral burden. It does state the core effect (hollowing and removing faces) which implies mutation, but it does not disclose side effects like feature tree insertion, failure conditions, or requirements for a solid body. Adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that states the verb, object, and outcome without any fluff. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema thoroughly describes each parameter, including defaults and the purpose of faces vs query, outward, and thickness_variable. The description provides minimal high-level context but does not explain relationships between parameters or typical usage scenarios, which is acceptable given the schema richness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 10 parameters are fully documented in the schema. The description adds no additional meaning about parameters, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Hollow' and a clear resource 'the body', and explicitly states the outcome: removing selected faces to open it. This clearly distinguishes it from sibling tools like extrude, thicken, or hole, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as onshape_thicken or onshape_hole. The description does not mention any prerequisites, exclusions, or context where a different tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_sketch_candy_cane_pathSketch a hooked sweep pathA
Add a sketch of a straight stem joined to a hooked arc, approximated by segments — a ready-made path for onshape_sweep.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | X position of the stem (default 0). | |
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| name | No | Feature name shown in the tree (default "Candy cane centerline"). | |
| plane | No | Default plane to sketch on (default Front). | |
| bottom | No | Y of the stem's bottom (default 0). | |
| segments | No | Total segments used to approximate the path (default 24). | |
| validate | No | Re-read the feature list afterwards and fail if the feature regenerated with an error (default true). | |
| hook_angle | No | Sweep of the hook in degrees (default 210). | |
| hook_radius | Yes | Radius of the hook, inches. | |
| straight_height | Yes | Length of the straight stem, inches. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no behavioral hints beyond the title (no readOnlyHint, destructiveHint, etc.), so the description carries the full burden. It only says 'Add a sketch', which implies a mutation, but discloses nothing about side effects, permission requirements, or what happens on failure. The schema's 'validate' parameter hints at verification behavior, but that is not reinforced in the description. This is a notable gap for a creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the action and purpose. It contains no filler, and every clause earns its place by clarifying what is sketched and why.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 12 parameters and no output schema, the description is adequate but sparse. It mentions the intended downstream tool (onshape_sweep) and the approximation via segments, which helps, but it does not explain the overall workflow (e.g., that a sketch is added to an existing element) or what the tool returns. Since the schema covers parameter details, the description meets minimum viability but lacks richer context that would help an agent integrate it into a multi-step operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all 12 parameters are already documented. The description adds a high-level notion of geometry ('straight stem', 'hooked arc') that maps to straight_height and hook_radius, but the schema already describes those fields. The description does not add relational information, defaults, or unit clarifications beyond what the schema provides, so it meets the baseline without exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Add a sketch'), describes the geometry precisely ('straight stem joined to a hooked arc'), and names its intended use ('a ready-made path for onshape_sweep'). This clearly distinguishes it from sibling sketch tools like onshape_sketch_circle or onshape_sketch_line, so an agent knows exactly what this tool creates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly positions the tool as a prerequisite for onshape_sweep, giving a clear usage context. It does not name alternatives or state when not to use it, but the mention of 'ready-made path for onshape_sweep' gives sufficient guidance for an agent to select it when building a candy-cane sweep path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_sketch_circleSketch a circleC
Add a sketch holding one circle.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| name | No | Feature name shown in the tree (default "Sketch circle"). | |
| plane | No | Default plane to sketch on (default Front). | |
| center | Yes | Circle centre. As [x, y] inches or "x,y". | |
| radius | Yes | Radius in inches. | |
| validate | No | Re-read the feature list afterwards and fail if the feature regenerated with an error (default true). | |
| plane_feature | No | Sketch on a face created by this feature id instead of a default plane. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (only a title), so the description carries the full burden of disclosing behavior. It only states 'Add a sketch holding one circle,' which restates the title and implies a mutating operation but does not mention validation, regeneration, or any side effects on the document. The 'validate' parameter suggests a failure-checking behavior that is not mentioned in the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no fluff, which is concise and to the point. However, it is so brief that it omits useful context that could be added without excessive length, such as a hint about plane selection or feature naming. Still, it earns a 4 for being appropriately compact relative to its simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 9 parameters and operates in a complex CAD context, the description is insufficient. It does not clarify whether it creates a new sketch element or adds to an existing one, how it interacts with other tools like onshape_create_sketch, or any prerequisites. The schema covers parameter syntax, but the overall workflow and relationship to sibling tools remain unclear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions, so the schema already explains all parameters. The description adds no additional meaning about parameters. Baseline of 3 is appropriate because the description is not required to compensate for schema gaps, but it offers no extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Add') and resource ('a sketch holding one circle'), which distinguishes it from other sketch tools like onshape_sketch_rectangle or onshape_sketch_line. It is specific enough for an agent to infer the tool's primary function, though it does not explicitly contrast with sibling sketch tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as onshape_create_sketch or other sketch tools. It does not mention any prerequisites, typical use cases, or when a different tool should be selected instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_sketch_circle_axisSketch a circle with a revolve axisB
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| name | No | Feature name shown in the tree (default "Sketch circle and axis"). | |
| plane | No | Default plane to sketch on (default Front). | |
| center | Yes | Circle centre. As [x, y] inches or "x,y". | |
| radius | Yes | Radius in inches. | |
| axis_end | Yes | Axis end. As [x, y] inches or "x,y". | |
| validate | No | Re-read the feature list afterwards and fail if the feature regenerated with an error (default true). | |
| axis_start | Yes | Axis start. As [x, y] inches or "x,y". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide only a title, so the description carries the full behavioral burden. 'Add a sketch' implies a document mutation, but the description does not disclose that this modifies the document, whether it validates/regenerates features, or what side effects occur. No conflict with annotations exists, but transparency is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The core action is front-loaded, and the second sentence earns its place by explaining why the construction line matters and what kind of result this enables.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter tool with no output schema and sparse annotations, the description explains the overall intent but does not address coordinate semantics, plane choice, validation behavior, or the relationship between the parameters. The rich schema covers invocation details, so this is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are fully documented in structured form. The description adds the conceptual link between the construction line and axis_start/axis_end, but this is not enough to exceed the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds a sketch with a circle profile and a construction line, naming the revolve axis as its distinguishing resource. It differentiates from onshape_sketch_circle by mentioning the line and the revolve workflow, though it does not explicitly name sibling alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives implied usage context: it explains that onshape_revolve spins the profile around the construction line to create a torus or ring. It does not explicitly state when to prefer this tool over onshape_sketch_circle or onshape_create_sketch, nor does it list exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_sketch_lineSketch a lineA
Add a sketch holding one line segment. A line alone encloses no region, so it cannot be extruded.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| end | Yes | End point. As [x, y] inches or "x,y". | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| name | No | Feature name shown in the tree (default "Sketch"). | |
| plane | No | Default plane to sketch on (default Front). | |
| start | Yes | Start point. As [x, y] inches or "x,y". | |
| validate | No | Re-read the feature list afterwards and fail if the feature regenerated with an error (default true). | |
| plane_feature | No | Sketch on a face created by this feature id instead of a default plane. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With only the title as annotation, the description carries the burden of behavioral disclosure. It does disclose the key side effect (adds a sketch) and a key geometric limitation (no enclosed region, not extrudable), but it does not mention what the call returns, whether validation can fail, or other side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler; the action is front-loaded and the caveat earns its place by preventing a common misuse. Nothing could be removed without losing value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple sketch-creation tool, the complete parameter schema plus the added extrusion caveat give an agent enough to invoke it correctly. It could be more complete by describing the returned feature or typical construction-line use cases, but those are not required for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 9 parameters are already described in the schema, including the coordinate format for start/end and the enum for plane, so the baseline of 3 applies. The prose adds no parameter-level details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Add') and a concrete resource ('a sketch holding one line segment'), and it states a distinguishing consequence ('cannot be extruded') that separates it from closed-shape sketch tools. An agent can tell this tool creates line geometry rather than a circle or rectangle.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The warning that a line encloses no region and cannot be extruded gives an implied when-not-to-use signal, but no alternative tools or explicit selection conditions are named. The usage context is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_sketch_rectangleSketch a rectangleB
Add a sketch holding one closed rectangle, ready to extrude. Corners are opposite, in inches.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| name | No | Feature name shown in the tree (default "Sketch"). | |
| plane | No | Default plane to sketch on (default Front). | |
| corner1 | Yes | First corner. As [x, y] inches or "x,y". | |
| corner2 | Yes | Opposite corner. As [x, y] inches or "x,y". | |
| validate | No | Re-read the feature list afterwards and fail if the feature regenerated with an error (default true). | |
| plane_feature | No | Sketch on a face created by this feature id instead of a default plane. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no readOnly or destructive annotations, the description carries the full burden, but it only says the sketch is 'ready to extrude'. It does not disclose that this creates a feature in the document, whether the operation is reversible, or what side effects occur on the Onshape element.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler. It front-loads the core purpose and includes the essential geometric constraint without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The parameter schema is thorough, but no output schema exists and no annotations are provided. The description does not explain what the agent should expect after calling it, such as the created feature or errors, leaving the context incomplete for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all nine parameters. The description's mention of inches and opposite corners mostly repeats schema information rather than adding new meaning; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Add a sketch holding one closed rectangle'. It also clarifies the geometry ('Corners are opposite') and intent ('ready to extrude'), which distinguishes it from sibling sketch tools like onshape_sketch_circle and onshape_sketch_line.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a use case—creating a rectangular sketch for extrusion—but gives no explicit guidance on when to choose this tool over alternatives like onshape_sketch_line or onshape_create_sketch. There are no exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_sweepSweep a profile along a pathA
Sweep the closed regions of one sketch along the edges of another.
| Name | Required | Description | Default |
|---|---|---|---|
| op | No | NEW makes a new body; ADD/REMOVE/INTERSECT combine with existing bodies (default NEW). | |
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| name | No | Feature name shown in the tree (default "Sweep"). | |
| path | Yes | Feature id of the path sketch. | |
| profile | Yes | Feature id of the profile sketch. | |
| validate | No | Re-read the feature list afterwards and fail if the feature regenerated with an error (default true). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide only a title, so the description must carry the behavioral burden. It adds a key prerequisite: the profile must have closed regions and the path is the edges of another sketch. It does not disclose mutation behavior, validation behavior, or failure modes, but it is not misleading and gives useful operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It communicates the essential operation clearly and compactly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter CAD feature tool with no output schema, the description provides the core mechanics but lacks operational context such as how the sweep interacts with existing bodies beyond the op enum, what the result looks like, and when the operation is likely to fail. The schema covers all parameters, making it minimally viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 8 parameters in sufficient detail. The description itself adds no parameter-level meaning, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Sweep'), a specific resource ('closed regions of one sketch'), and the mechanism ('along the edges of another'). This clearly distinguishes it from sibling modeling operations like extrusion or revolution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the intended use case: sweeping a sketch profile along a path defined by another sketch's edges. However, it does not explicitly name alternatives such as onshape_extrude or onshape_revolve, nor does it state when sweep should be preferred over them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_thickenThicken a sketchC
Give a sketch region a wall thickness instead of a solid depth.
| Name | Required | Description | Default |
|---|---|---|---|
| op | No | NEW makes a new body; ADD/REMOVE/INTERSECT combine with existing bodies (default NEW). | |
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| name | No | Feature name shown in the tree (default "Thicken"). | |
| sketch | Yes | Feature id of the sketch to thicken. | |
| midplane | No | Grow symmetrically about the sketch plane. | |
| opposite | No | Thicken in the opposite direction. | |
| validate | No | Re-read the feature list afterwards and fail if the feature regenerated with an error (default true). | |
| thickness | Yes | Thickness in inches. | |
| thickness_variable | No | Use a Part Studio variable for the thickness. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no read-only or destructive hints, so the description carries the behavioral burden. It mentions that the operation gives thickness but does not disclose that it modifies the document, creates or mutates bodies, requires an existing sketch feature, or what side effects occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one tight sentence with no filler. The core idea is front-loaded and the clarifying contrast with a solid-depth operation is included without wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is an 11-parameter mutation tool with no output schema and minimal annotations, but the description only restates its basic purpose. It omits context about document modification, body-combination behavior, defaults, and what the caller should expect after invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented with meaningful descriptions. The tool description itself adds no parameter-level meaning, which is acceptable under the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific operation: giving a sketch region wall thickness. The phrase 'instead of a solid depth' helps distinguish it from extrusion, though it does not explicitly name sibling tools like onshape_extrude or onshape_shell.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as extrude, shell, or revolve. The description does not state prerequisites, when it should be preferred, or when a different feature tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_thumbnail_infoList thumbnail sizesBRead-only
The thumbnail sizes Onshape has rendered for this element, with their hrefs.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes that this is a read-only operation. The description adds a small behavioral nuance: it lists only thumbnail sizes that Onshape has actually rendered, and it includes hrefs. This is consistent with the annotation and provides slight extra context, but no deeper behavior (such as pagination or auth requirements) is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence that directly conveys the tool's output. It is front-loaded and contains no filler, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only listing tool, the description plus the well-documented schema covers the essentials: which element to target and what the output contains (thumbnail sizes and hrefs). It does not detail the return structure or explain the relationship to onshape_get_thumbnail, but the data shape is simple enough that an agent can proceed without that detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: doc, ws, and elem all have clear explanations referencing document/workspace/element URL segments. The description adds no additional parameter meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource ('thumbnail sizes' for an element) and notes the output includes their hrefs, making it clear this is a metadata-listing tool rather than a thumbnail fetcher. However, it lacks an explicit verb such as 'lists' or 'returns', and it does not distinguish itself from the sibling tool onshape_get_thumbnail by name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus onshape_get_thumbnail or other related tools. The description only states what the tool returns, leaving the agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_transform_instanceTransform instancesB
Apply a 4x4 row-major transform (16 numbers, metres) to the given occurrence paths.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| paths | Yes | Occurrence paths, each an array of node ids. | |
| absolute | No | Treat the transform as absolute rather than relative. | |
| transform | Yes | Row-major 4x4 transform matrix. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide only a title and no readOnly/destructive hints, so the description carries the full behavioral burden. It conveys that a transform is applied, but it does not disclose whether the operation is relative or absolute by default, whether it modifies existing instance positions destructively, or what response/return value is expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that names the operation, the transform format, the unit, and the target. Every word contributes meaning and there is no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with six parameters, no output schema, and minimal annotations, one sentence is not enough to fully contextualize the call. It omits when/why to transform instances versus other operations, the semantics of the optional 'absolute' flag, and what outcome or response the agent should expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 even though the description adds little beyond the schema. The mention of 'metres' and 'row-major' is useful but largely restates the schema's own transform matrix description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Apply'), a precise resource ('4x4 row-major transform'), and the target ('occurrence paths'). This clearly differentiates the tool from instance insertion/deletion siblings like onshape_insert_instance and onshape_delete_instance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives, nor are any exclusions or prerequisites mentioned. Given the large sibling list full of modeling and assembly operations, an agent is left to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_update_assembly_featureUpdate an assembly featureA
Replace an assembly feature's payload — a mate's type, connectors or limits, a relation's ratio. Post the whole feature JSON, e.g. as onshape_get_assembly_features returns it, inside a BTFeatureDefinitionCall-1406 envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| feature | Yes | The full replacement feature JSON. | |
| validate | No | Re-read the feature list afterwards and fail if the feature regenerated with an error (default true). | |
| feature_id | Yes | Id of the feature to replace. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations carry only a title, so the description bears the full burden. It does disclose the key behavioral fact that this is a full replacement ('Replace ... payload', 'the whole feature JSON'), implying omitted fields are dropped, but it never says so outright, nor does it mention downstream regeneration, permissions, or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with no filler; the replacement semantics lead and the envelope/format requirement follows. Every clause carries information the caller needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and thin annotations, the description covers the hard part: where the payload comes from and how it must be shaped. The gaps are the consequences of an incomplete payload (silent reset of unspecified fields) and validation/regeneration behavior, which the validate parameter only partly covers in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds genuine meaning for the free-form `feature` object: it must be the complete feature JSON as returned by onshape_get_assembly_features, wrapped in a BTFeatureDefinitionCall-1406 envelope. That envelope requirement is invisible in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb (Replace) and resource (an assembly feature's payload) and enumerates the concrete cases it covers (mate type, connectors, limits, relation ratio). An agent can tell this is the assembly-feature mutator rather than the part-studio onshape_update_feature, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The instruction to post the whole feature JSON 'e.g. as onshape_get_assembly_features returns it' gives a real workflow entry point — fetch, then replace. But there is no guidance on when to prefer this over onshape_set_mate_values, onshape_assembly_add_feature, or onshape_assembly_mate, nor any exclusion for partial edits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_update_documentRename an Onshape documentC
Change a document's name or description.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| name | No | New name. | |
| description | No | New description. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no read-only or destructive hints, so the description carries the full burden of behavior disclosure. It reveals that the tool mutates a document's name/description, but does not explain partial-update semantics, whether providing no new values is valid, or what the response or side effects are.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is concise and immediately readable, though it sacrifices behavioral detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with no annotations and no output schema, the description is too thin. It does not clarify that at least one of name or description should likely be provided, how partial updates behave, or what happens if only doc is supplied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for doc, name, and description. The tool description adds no meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action — "Change a document's name or description" — on a specific resource (the document). It distinguishes itself from create/delete/get document siblings by targeting metadata updates, though it does not explicitly contrast with onshape_set_metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, nor any mention of prerequisites such as ownership or write permissions. It simply states what it does without explaining the intended selection context beyond the tool's name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_update_featureUpdate a featureA
Replace an existing feature's payload, e.g. to change a dimension. Post the whole feature JSON.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| feature | Yes | The full replacement feature JSON. | |
| feature_id | Yes | Id of the feature to replace. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations beyond the title, the description carries the full burden. It discloses the key behavioral requirement that the whole feature JSON must be posted, not a partial update. However, it does not mention other potential side effects, idempotency, or error conditions. This is adequate but minimal, so a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences that front-load the action and purpose, with no fluff. Every word contributes: the verb, the resource, an example, and the critical posting requirement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 5 parameters and no output schema, the description covers the core operation and the key behavioral requirement, but it does not mention the typical workflow of first fetching the current feature via get_features before modifying. This is a notable gap that could leave an agent guessing. Thus a 3.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for all 5 parameters. The description adds an example use case and reiterates the 'whole feature JSON' requirement, but the schema already states 'The full replacement feature JSON.' Thus the description adds marginal semantic value beyond the schema, so a baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Replace) and the resource (an existing feature's payload), with a concrete example (change a dimension). It is distinct from sibling tools like onshape_add_feature and onshape_delete_feature because 'replace' implies modification of an existing feature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for modifying existing features but does not explicitly contrast with adding or deleting features. It gives a clear context (replace to change dimensions) but no exclusions or mention of when not to use it. Since it's clear but lacks explicit alternative routing, a 4 is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onshape_validate_part_studioValidate a Part StudioARead-only
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ws | Yes | Workspace id — the <ws> segment of the document URL. | |
| doc | Yes | Document id — the <doc> in cad.onshape.com/documents/<doc>/w/<ws>/e/<elem>. | |
| elem | Yes | Element id (tab) — the <elem> segment of the document URL. | |
| expect_parts | No | Fail unless the Part Studio has exactly this many parts. | |
| expect_bodies | No | Fail unless it has exactly this many bodies. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish readOnlyHint=true, so the safety profile is covered. The description adds useful behavioral context beyond that: it counts parts/bodies and fails on mismatch, and characterizes itself as a 'cheap' operation. It does not detail the exact success/failure return shape, but the core behavioral contract is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The first sentence delivers the core function immediately, and the second adds the valuable regression-check context. It is compact and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple validation tool with readOnlyHint and fully documented parameters, the description is largely complete. The only mild gap is that without an output schema it does not explicitly spell out what the tool returns on success/failure, but 'fail when counts do not match' conveys the operational intent well enough for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already documented (doc/ws/elem identifiers and the expect_parts/expect_bodies meanings). The description only refers to 'expectations you pass' and does not add new constraint information, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action — 'Count parts and bodies, and fail when the counts do not match the expectations' — tied to a concrete resource, the Part Studio. The phrasing clearly distinguishes it from sibling retrieval tools like onshape_get_parts and onshape_get_body_details by framing it as an assertion/regression check rather than a data fetch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly identifies the use case: 'A cheap regression check after a run of feature edits.' This gives clear context for when to reach for this tool arena. It does not explicitly name alternatives or state when not to use it, but the intended workflow is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
14 tool updates
v0.3.0- Changed
onshape_assembly_add_feature1 field changed- added
Input schema / properties / validateAdded value: +{ + "description": "Re-read the feature list afterwards and fail if the feature regenerated with an error (default true).", + "type": "boolean" +}
- Changed
onshape_assembly_group1 field changed- added
Input schema / properties / validateAdded value: +{ + "description": "Re-read the feature list afterwards and fail if the feature regenerated with an error (default true).", + "type": "boolean" +}
- Changed
onshape_assembly_mate4 fields changed- changed
Input schema / properties / connectors / descriptionPrevious value: -"Feature ids of the mate connectors to join."New value: +"The mate connectors to join, moving part first." - added
Input schema / properties / connectors / items / anyOfAdded value: +[ + { + "description": "Feature id of an assembly-level mate connector.", + "minLength": 1, + "type": "string" + }, + { + "description": "A mate connector defined in the Part Studio, as onshape_get_assembly lists it.", + "properties": { + "connector": { + "description": "Part Studio mate connector id, e.g. \"FabC_0.mcPinion\" (parts[].mateConnectors[].featureId).", + "minLength": 1, + "type": "string" + }, + "path": { + "description": "Occurrence path of the instance that owns the connector, e.g. [instance id].", + "items": { + "minLength": 1, + "type": "string" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "path", + "connector" + ], + "type": "object" + } +] - removed
Input schema / properties / connectors / items / typeRemoved value: -"string" - added
Input schema / properties / validateAdded value: +{ + "description": "Re-read the feature list afterwards and fail if the feature regenerated with an error (default true).", + "type": "boolean" +}
- Changed
onshape_assembly_mate_connector1 field changed- added
Input schema / properties / validateAdded value: +{ + "description": "Re-read the feature list afterwards and fail if the feature regenerated with an error (default true).", + "type": "boolean" +}
- Added
onshape_assembly_relation - Added
onshape_clearance - Added
onshape_delete_assembly_feature - Changed
onshape_export_stl1 field changed- changed
Input schema / properties / units / descriptionPrevious value: -"STL units (default inch)."New value: +"STL units (default millimeter)."
- Changed
onshape_extrude4 fields changed- changed
Input schema / properties / depth / descriptionPrevious value: -"Extrusion depth in inches."New value: +"Extrusion depth in inches; the total depth when symmetric. Required unless THROUGH_ALL or depth_variable." - added
Input schema / properties / end_typeAdded value: +{ + "description": "BLIND goes `depth` along the sketch normal (default); SYMMETRIC goes `depth` in total, half each side of the sketch plane; THROUGH_ALL goes past every body and ignores `depth`.", + "enum": [ + "BLIND", + "SYMMETRIC", + "THROUGH_ALL" + ], + "type": "string" +} - added
Input schema / properties / oppositeAdded value: +{ + "description": "Go against the sketch normal instead of along it. Not with SYMMETRIC.", + "type": "boolean" +} - changed
Input schema / requiredPrevious value: -[ - "doc", - "ws", - "elem", - "sketch", - "depth" -]New value: +[ + "doc", + "ws", + "elem", + "sketch" +]
- Added
onshape_get_mate_values - Changed
onshape_hole4 fields changed- changed
Input schema / properties / depth / descriptionPrevious value: -"Cut depth in inches; make it deeper than the body to cut through."New value: +"Cut depth in inches; the total depth when symmetric. Required unless THROUGH_ALL or depth_variable." - added
Input schema / properties / end_typeAdded value: +{ + "description": "BLIND goes `depth` along the sketch normal (default); SYMMETRIC goes `depth` in total, half each side of the sketch plane; THROUGH_ALL goes past every body and ignores `depth`.", + "enum": [ + "BLIND", + "SYMMETRIC", + "THROUGH_ALL" + ], + "type": "string" +} - added
Input schema / properties / oppositeAdded value: +{ + "description": "Go against the sketch normal instead of along it. Not with SYMMETRIC.", + "type": "boolean" +} - changed
Input schema / requiredPrevious value: -[ - "doc", - "ws", - "elem", - "sketch", - "depth" -]New value: +[ + "doc", + "ws", + "elem", + "sketch" +]
- Changed
onshape_insert_instance1 field changed- added
Input schema / properties / fixedAdded value: +{ + "description": "Fix the new instance in place, to ground the assembly. Onshape has no public call to fix or unfix an instance afterwards; to change it, insert again and delete the old instance.", + "type": "boolean" +}
- Added
onshape_set_mate_values - Added
onshape_update_assembly_feature
87 tool updates
v0.1.0- First observed
onshape_add_feature - First observed
onshape_assembly_add_feature - First observed
onshape_assembly_group - First observed
onshape_assembly_mass_properties - First observed
onshape_assembly_mate - First observed
onshape_assembly_mate_connector - First observed
onshape_auth_status - First observed
onshape_boolean - First observed
onshape_boolean_union - First observed
onshape_chamfer - First observed
onshape_circular_pattern - First observed
onshape_create_assembly - First observed
onshape_create_document - First observed
onshape_create_drawing - First observed
onshape_create_feature_studio - First observed
onshape_create_part_studio - First observed
onshape_create_sketch - First observed
onshape_create_version - First observed
onshape_delete_document - First observed
onshape_delete_element - First observed
onshape_delete_feature - First observed
onshape_delete_instance - First observed
onshape_draft - First observed
onshape_encode_configuration - First observed
onshape_eval_featurescript - First observed
onshape_export - First observed
onshape_export_drawing - First observed
onshape_export_stl - First observed
onshape_extrude - First observed
onshape_fillet - First observed
onshape_find_circular_edges - First observed
onshape_find_edges_by_feature - First observed
onshape_find_part_studios - First observed
onshape_get_assembly - First observed
onshape_get_assembly_features - First observed
onshape_get_body_details - First observed
onshape_get_bom - First observed
onshape_get_configuration - First observed
onshape_get_document - First observed
onshape_get_document_summary - First observed
onshape_get_drawing_views - First observed
onshape_get_edges - First observed
onshape_get_elements - First observed
onshape_get_feature_specs - First observed
onshape_get_feature_studio - First observed
onshape_get_feature_studio_specs - First observed
onshape_get_features - First observed
onshape_get_metadata - First observed
onshape_get_parts - First observed
onshape_get_sketch_info - First observed
onshape_get_thumbnail - First observed
onshape_get_variables - First observed
onshape_get_workspaces - First observed
onshape_hole - First observed
onshape_insert_instance - First observed
onshape_linear_pattern - First observed
onshape_list_documents - First observed
onshape_list_versions - First observed
onshape_login - First observed
onshape_login_status - First observed
onshape_logout - First observed
onshape_mass_properties - First observed
onshape_measure - First observed
onshape_mirror - First observed
onshape_offset_plane - First observed
onshape_request - First observed
onshape_revolve - First observed
onshape_rollback - First observed
onshape_search_documents - First observed
onshape_set_api_key - First observed
onshape_set_feature_studio - First observed
onshape_set_metadata - First observed
onshape_set_variable - First observed
onshape_shaded_view - First observed
onshape_shell - First observed
onshape_sketch_candy_cane_path - First observed
onshape_sketch_circle - First observed
onshape_sketch_circle_axis - First observed
onshape_sketch_line - First observed
onshape_sketch_rectangle - First observed
onshape_sweep - First observed
onshape_thicken - First observed
onshape_thumbnail_info - First observed
onshape_transform_instance - First observed
onshape_update_document - First observed
onshape_update_feature - First observed
onshape_validate_part_studio
TDQS
Scored across 93 tools
Most tools have clearly distinct resource/action targets, and descriptions do a good job separating close pairs like fillet/chamfer, boolean/boolean_union, and feature/add_feature. Some overlap remains between generic escape-hatch tools and dedicated tools, and between several edge/body inspection tools.
Names consistently use the onshape_ prefix and snake_case, generally following a verb_noun or clear domain-noun pattern. Minor noun-style names like onshape_draft or onshape_mass_properties still fit the predictable scheme.
Although Onshape is a broad CAD domain, 93 tools is far beyond a practical MCP surface and imposes heavy selection overhead. Many low-level variants and escape hatches could be consolidated or deferred.
The surface covers authentication, documents, workspaces, elements, Part Studios, assemblies, drawings, Feature Studios, exports, metadata, and measurement quite thoroughly. Some lifecycle gaps remain, such as workspace creation/management and broader drawing annotation operations.
Maintenance
Related MCP Connectors
Parametric 3D CAD for AI agents: build print-ready parts, check them, export STL, 3MF or STEP.
CAD in ChatGPT and Claude: editable parts, STEP/STL/drawings, in-chat 3D, automatic checks.
150+ hosted tools: describe-to-build CAD, scan-to-CAD, architecture studio, web research, media.
Connect AI assistants to your approved computer for files, commands, browser and desktop tasks.
Related MCP Servers
- FlicenseBqualityAmaintenanceEnables programmatic CAD modeling with Onshape's REST API, offering 45 tools for parametric sketches, feature management, assemblies, analysis, variables, and exports.48162-
- AlicenseNot gradedqualityCmaintenanceEnables Claude Code to drive OnShape CAD through the REST API for parametric modeling, FeatureScript queries, and STL export/verification.MIT
- AlicenseBqualityCmaintenanceEnables OpenAI Codex to drive real Onshape parametric CAD via 69 tools for documents, sketches, features, assemblies, parametric updates, FeatureScript, vision, and export.69MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to build and edit native CAD parts and assemblies, inspect saved geometry and measurements, retain revisions, run mechanism and interference checks, and export STEP/STL/GLB artifacts through MCP tools.MIT