Onshape MCP Server
Click on "Install 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 MCP Serverlist my Onshape documents"
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
Enhanced Model Context Protocol (MCP) server for programmatic CAD modeling with Onshape.
Features
This MCP server provides comprehensive programmatic access to Onshape's REST API, enabling:
Core Capabilities (45 tools)
Document Discovery - Search and list projects, find Part Studios, navigate workspaces
Parametric Sketches - Rectangles, circles, lines, and arcs on standard planes
Feature Management - Extrude, revolve, thicken, fillet, chamfer, boolean, and pattern features
Assembly Management - Create assemblies, add instances, position parts, create mates (fastened, slider, revolute, cylindrical)
Assembly Analysis - Interference checking, position verification, face coordinate systems, body details
Variable Tables - Read and write Onshape variable tables for parametric designs
FeatureScript - Evaluate FeatureScript expressions, get bounding boxes
Export - Export Part Studios and Assemblies to STL, STEP, PARASOLID, GLTF, OBJ
Part Studio Management - Create and manage Part Studios programmatically
Related MCP server: Onshape MCP Server
Installation
Prerequisites
Python 3.10 or higher
Onshape account with API access
Onshape API keys (access key and secret key)
Setup
Clone the repository:
git clone https://github.com/hedless/onshape-mcp.git
cd onshape-mcpCreate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activateInstall dependencies:
pip install -e .Set up environment variables:
export ONSHAPE_ACCESS_KEY="your_access_key"
export ONSHAPE_SECRET_KEY="your_secret_key"Or create a .env file:
ONSHAPE_ACCESS_KEY=your_access_key
ONSHAPE_SECRET_KEY=your_secret_keyGetting Onshape API Keys
Go to Onshape Developer Portal
Sign in with your Onshape account
Create a new API key
Copy the Access Key and Secret Key
Usage
Running the Server
onshape-mcpOr directly with Python:
python -m onshape_mcp.serverConfiguring with Claude Code
Add to your ~/.claude/mcp.json:
{
"mcpServers": {
"onshape": {
"command": "/absolute/path/to/onshape-mcp/venv/bin/python",
"args": ["-m", "onshape_mcp.server"],
"env": {
"ONSHAPE_ACCESS_KEY": "your_access_key_here",
"ONSHAPE_SECRET_KEY": "your_secret_key_here"
}
}
}
}Important Notes:
Use the absolute path to your virtual environment's Python executable
Find your path:
cd onshape-mcp && pwdto get the directory pathOn Windows: Use
C:/path/to/onshape-mcp/venv/Scripts/python.exeReplace the API keys with your actual keys from Onshape Developer Portal
Restart Claude Code after editing
mcp.json
Verify it works: Ask Claude Code: "Can you list my Onshape documents?"
For complete setup instructions, see docs/QUICK_START.md.
Available Tools
Document & Navigation Tools
Tool | Description |
| List documents with filtering and sorting |
| Search documents by name or description |
| Get detailed document information |
| Get comprehensive summary with workspaces and elements |
| Find Part Studios with optional name filtering |
| Get all elements (Part Studios, Assemblies, BOMs) in a workspace |
| Get all parts from a Part Studio |
| Create a new Onshape document |
| Create a new Part Studio in a document |
Assembly Tools
Tool | Description |
| Create a new Assembly in a document |
| Add a part or sub-assembly instance to an assembly |
| Get assembly structure with instances and occurrences |
| Apply a relative transform (inches/degrees). Fails on fixed instances. |
| Set absolute position (resets rotation). Fails on fixed instances. |
| Align one instance flush against a face of another |
| Create an explicit mate connector on a face with offsets |
| Create a rigid (fastened) mate between two instances |
| Create a linear motion mate. First instance slides relative to second. |
| Create a rotational mate. First instance rotates relative to second. |
| Create a slide+rotate mate. First instance moves relative to second. |
| Delete a feature (mate, mate connector, etc.) from an assembly or Part Studio |
Assembly Analysis Tools
Tool | Description |
| Get positions, sizes, and bounds of all instances (in inches) |
| Get all features with their state (OK/ERROR/SUPPRESSED) |
| Get face IDs, surface types, normals, and origins for all parts |
| Query the outward-facing coordinate system for a specific face |
| Check for overlapping/interfering parts using bounding box detection |
Sketch Tools
Tool | Description |
| Rectangle with optional variable references for width/height |
| Circle with center point and radius |
| Line from start point to end point |
| Arc with center, radius, start angle, and end angle |
All sketch tools support plane (Front/Top/Right) and name parameters. Dimensions are in inches.
Feature Tools
Tool | Description |
| Extrude a sketch with depth, optional variable reference, and operation type |
| Thicken a sketch into a solid with optional midplane/opposite direction |
| Revolve a sketch around an axis (X/Y/Z) with angle and operation type |
| Round edges by edge IDs with radius (supports variable references) |
| Bevel edges by edge IDs with distance (supports variable references) |
| Repeat features along an axis (X/Y/Z) with distance and count |
| Repeat features around an axis with count and angle spread |
| Union, subtract, or intersect bodies by deterministic IDs |
Variable & Feature Tools
Tool | Description |
| Get all variables from a Part Studio variable table |
| Set or update a variable (e.g., |
| Get all features from a Part Studio |
FeatureScript Tools
Tool | Description |
| Evaluate a FeatureScript lambda expression (read-only) |
| Get the tight bounding box of all parts in a Part Studio |
Export Tools
Tool | Description |
| Export to STL, STEP, PARASOLID, GLTF, or OBJ (optional |
| Export to STL, STEP, or GLTF |
Architecture
onshape_mcp/
├── api/
│ ├── client.py # HTTP client with HMAC authentication
│ ├── documents.py # Document discovery & navigation
│ ├── partstudio.py # Part Studio management
│ ├── variables.py # Variable table management
│ ├── assemblies.py # Assembly lifecycle, mates & features
│ ├── export.py # Part Studio & Assembly export
│ └── featurescript.py # FeatureScript evaluation
├── builders/
│ ├── sketch.py # Sketch builder (rectangle, circle, line, arc, polygon)
│ ├── extrude.py # Extrude feature builder
│ ├── revolve.py # Revolve feature builder
│ ├── fillet.py # Fillet feature builder
│ ├── chamfer.py # Chamfer feature builder
│ ├── boolean.py # Boolean operations (union, subtract, intersect)
│ ├── pattern.py # Linear & circular pattern builders
│ ├── mate.py # Mate connector & mate builders (face-based)
│ └── thicken.py # Thicken feature builder
├── analysis/
│ ├── interference.py # Bounding-box interference detection
│ ├── positioning.py # Instance position queries & alignment
│ └── face_cs.py # Face coordinate system queries
├── tools/
│ └── __init__.py # MCP tool definitions
└── server.py # Main MCP server (45 tools)Examples
Example 1: Finding and Working on a Project
# Search for your project
documents = await search_documents(query="robot arm", limit=5)
# Get the first matching document
doc_id = documents[0].id
# Get comprehensive summary
summary = await get_document_summary(doc_id)
# Find Part Studios in main workspace
workspace_id = summary['workspaces'][0].id
part_studios = await find_part_studios(doc_id, workspace_id, namePattern="base")
# Now work with the Part Studio
elem_id = part_studios[0].idExample 2: Creating a Parametric Cabinet
# Set variables
await set_variable(doc_id, ws_id, elem_id, "width", "39.5 in")
await set_variable(doc_id, ws_id, elem_id, "depth", "16 in")
await set_variable(doc_id, ws_id, elem_id, "height", "67.125 in")
await set_variable(doc_id, ws_id, elem_id, "wall_thickness", "0.75 in")
# Create side panel sketch
await create_sketch_rectangle(
doc_id, ws_id, elem_id,
name="Side Panel",
plane="Front",
corner1=[0, 0],
corner2=[16, 67.125],
variableWidth="depth",
variableHeight="height"
)
# Extrude to create side
await create_extrude(
doc_id, ws_id, elem_id,
name="Side Extrude",
sketchFeatureId="<sketch_id>",
depth=0.75,
variableDepth="wall_thickness"
)Development
Running Tests
The project has comprehensive test coverage with 471 unit tests.
# Run all tests
pytest
# Run with coverage
pytest --cov
# Run specific module tests
pytest tests/api/test_documents.py -v
# Use make commands
make test
make test-cov
make coverage-htmlFor detailed testing documentation, see docs/TESTING.md.
Code Formatting
ruff format .
ruff check .Documentation
Getting Started
docs/QUICK_START.md - Quick start guide for Claude Code users
docs/DEV_SETUP.md - Development environment setup with SSE mode and debugging
Development & Testing
docs/TESTING.md - Testing guide and best practices
docs/TEST_SUMMARY.md - Test suite overview
docs/FEATURE_SUMMARY.md - Implementation details and statistics
API & Implementation
docs/ONSHAPE_API_IMPROVEMENTS.md - API format fixes and BTMSketch-151 implementation
docs/SKETCH_PLANE_REFERENCE_GUIDE.md - Advanced: Geometry-referenced sketch planes
docs/NEXT_STEPS_GEOMETRY_REFERENCES.md - Roadmap for geometry reference implementation
docs/DOCUMENT_DISCOVERY.md - Complete guide to document discovery features
docs/PARTS_ASSEMBLY_TOOLS.md - Parts and assembly tool documentation
Project Analysis & Research
docs/CARPENTRY_PRINCIPLES_FOR_CAD.md - How to think like a carpenter in CAD
docs/LEARNING_SUMMARY.md - Summary of side panel analysis and learnings
docs/DISPLAY_CABINETS_ANALYSIS_SUMMARY.md - Analysis of display cabinets project
docs/AGENT_CREATION_GUIDE.md - Guide for creating CAD agents
docs/CREATING_CAD_EXPERT_AGENT.md - Creating specialized CAD expert agents
Knowledge Base & Examples
knowledge_base/assembly_workflow_guide.md - Comprehensive assembly methodology (positioning, mates, solver behavior)
examples/cabinet_assembly.md - Complete worked example: cabinet with sliding drawers
knowledge_base/ - Onshape feature examples and research
Roadmap
Current Status
Document discovery and navigation (10 tools)
Sketch creation with rectangles, circles, lines, and arcs
Feature tools: extrude, revolve, thicken, fillet, chamfer, boolean, patterns
Full assembly management: fastened, slider, revolute, and cylindrical mates with face-based mate connectors
Assembly analysis: interference checking, position verification, face coordinate systems
Variable table management
FeatureScript evaluation and bounding box queries
Export to STL, STEP, PARASOLID, GLTF, OBJ
471 comprehensive unit tests
Live-tested on multi-part assemblies (25-instance cabinet with 66 features)
In Research
Geometry-referenced sketch planes - Create sketches on faces from existing features (see docs/SKETCH_PLANE_REFERENCE_GUIDE.md)
Query API investigation - How to programmatically reference geometry
Entity ID mapping - Understanding Onshape's internal ID system
Near-Term Priorities
Implement
create_sketch_on_geometry()for carpentry-correct cabinet assemblySketch constraints (coincident, parallel, tangent, etc.)
Pocket cuts and profiles for joinery (dados, rabbets)
Long-Term Goals
Drawing creation
Bill of Materials (BOM) generation
Advanced constraints and relations
Configuration parameter support
Woodworking-Specific Features
Joinery library (dado, rabbet, mortise & tenon, dovetail)
Standard hardware patterns (shelf pins, drawer slides)
Cut list generation
Material optimization (sheet layout)
Assembly instructions generation
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License
Acknowledgments
Inspired by OnPy
Built on the Model Context Protocol
Onshape API documentation: https://onshape-public.github.io/docs/
Support
For issues and questions:
GitHub Issues: https://github.com/hedless/onshape-mcp/issues
Onshape API Forum: https://forum.onshape.com/
Available Tools
45 toolsadd_assembly_instanceB
Add a part or sub-assembly instance to an assembly
| Name | Required | Description | Default |
|---|---|---|---|
| partId | No | Optional specific part ID. If omitted, instances entire Part Studio. | |
| elementId | Yes | Assembly element ID | |
| documentId | Yes | Document ID | |
| isAssembly | No | Whether to instance an assembly (vs a part studio) | |
| workspaceId | Yes | Workspace ID | |
| partStudioElementId | Yes | Element ID of the Part Studio or Assembly to instance |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It only states the action without disclosing side effects (e.g., whether duplicates are allowed, required permissions, or if instances are placed at origin), leaving agents unaware of important behavioral traits.
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 with no excess words. It is appropriately brief for a straightforward tool, though additional context could be included without significant 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?
The description is too minimal for a 6-parameter tool with no output schema. It lacks explanation of the process (e.g., adding to which assembly element, how partStudioElementId is affected by isAssembly) and omits return value or error conditions.
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 description adds minimal value beyond the schema. It does not clarify parameter relationships (e.g., isAssembly affecting partStudioElementId interpretation) nor provide usage tips for optional partId.
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 verb 'Add' and the resource 'part or sub-assembly instance to an assembly', effectively distinguishing it from siblings like create_assembly (create new) and set_instance_position (modify existing).
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 (adding to an assembly) but provides no explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives like create_assembly for new assemblies or transform_instance for repositioning.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
align_instance_to_faceA
Position source instance flush against a face of target instance. Faces: front (min Y), back (max Y), left (min X), right (max X), bottom (min Z), top (max Z). Only moves the perpendicular axis; other axes stay unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| face | Yes | Face of target to align source against | |
| elementId | Yes | Assembly element ID | |
| documentId | Yes | Document ID | |
| workspaceId | Yes | Workspace ID | |
| sourceInstanceId | Yes | Instance ID to move | |
| targetInstanceId | Yes | Instance ID to align against |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given no annotations, the description provides good behavioral insight: 'Only moves the perpendicular axis; other axes stay unchanged.' This explains the specific movement behavior without requiring 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 sentences that efficiently convey the core function and constraints. No superfluous words, and the most important information is 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 tool with 6 required parameters and no output schema, the description sufficiently explains the behavior and scope. It covers the key constraint (only perpendicular axis changes) without needing further elaboration.
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 some value by clarifying that face values correspond to axes (e.g., front = min Y), but this is largely redundant with the enum schema. No extra explanation for other parameters.
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 'Position source instance flush against a face of target instance' with a specific verb and resource. It distinguishes itself from sibling tools like set_instance_position or transform_instance by focusing on flush alignment to a face.
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 this tool (when aligning to a face), but it does not explicitly state when not to use it or mention alternative tools. No exclusions or context for selection are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_assembly_interferenceA
Check for overlapping/interfering parts in an assembly using bounding box detection. Returns which parts overlap and by how much.
| Name | Required | Description | Default |
|---|---|---|---|
| elementId | Yes | Assembly element ID | |
| documentId | Yes | Document ID | |
| workspaceId | Yes | Workspace ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the use of bounding box detection (suggesting approximation) and states that it returns overlap information. However, it does not disclose potential limitations, side effects (e.g., read-only nature), or permission requirements. The disclosure is adequate but not thorough.
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 consists of two concise sentences that front-load the action and core functionality. Every word adds value, and there is no redundancy or fluff.
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 having no output schema, the description explains the return type ('which parts overlap and by how much') but lacks details on the format or structure of the output. For a simple analysis tool, the description is moderately complete but could benefit from specifying output details or clarifying that it does not modify the assembly.
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 covers all 3 parameters with descriptions (100% coverage). The description 'Check for overlapping/interfering parts...' does not add additional semantic meaning beyond what the schema provides; it remains at 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 clearly states the tool's purpose: 'Check for overlapping/interfering parts in an assembly using bounding box detection.' It identifies the specific verb ('check'), resource ('assembly interference'), and method ('bounding box detection'). Among sibling tools, there is no other interference-checking tool, so it is well-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 description does not provide any guidance on when to use this tool versus alternatives, nor does it mention prerequisite conditions or situations where this tool is not appropriate. It lacks explicit context for usage decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_assemblyC
Create a new Assembly in an existing document
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name for the new Assembly | |
| documentId | Yes | Document ID | |
| workspaceId | Yes | Workspace ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states 'Create new Assembly' without discussing side effects, permissions, or what happens if an assembly already 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?
One succinct sentence with no wasted words. While clear, it could be slightly improved by front-loading the key 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?
Given the lack of annotations and no output schema, the description is too sparse for a tool with multiple siblings. It does not explain return values, constraints, or how the assembly relates to the document.
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 covers all three parameters with descriptions. The tool description adds no additional meaning beyond what the schema already provides, so 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 action (create) and resource (Assembly) with the context (in an existing document). It distinguishes from siblings like create_document or create_part_studio, though it could be more specific about the assembly's role.
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 on when to use this tool vs. alternatives such as add_assembly_instance or create_part_studio. No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_booleanC
Perform a boolean operation (union, subtract, intersect) on bodies
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Boolean name | Boolean |
| elementId | Yes | Part Studio element ID | |
| documentId | Yes | Document ID | |
| booleanType | Yes | Boolean operation type | |
| toolBodyIds | Yes | Deterministic IDs of tool bodies | |
| workspaceId | Yes | Workspace ID | |
| targetBodyIds | No | Deterministic IDs of target bodies (for SUBTRACT/INTERSECT) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description bears full responsibility. It only states it performs boolean operations without disclosing behavioral traits like permanent geometry modification, potential failure cases (e.g., non-intersecting bodies), or the need for specific permissions. The mutating nature is implied but not explicit.
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 of 10 words, very concise and front-loaded with the essential purpose. However, it omits critical information about parameter dependencies, which could be added without much verbosity. Still, it earns a high score for efficiency.
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 full schema coverage and no output schema, the description is adequate but not complete. It lacks context like the feature being created in a part studio, the relationship between toolBodyIds and targetBodyIds, and error conditions. The agent may need to infer usage from 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%, so baseline is 3. The description itself adds no additional meaning to the parameters beyond the schema; e.g., it doesn't explain that targetBodyIds is required for SUBTRACT/INTERSECT, which is a key dependency. The description is too terse to compensate for the schema's 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 clearly states the tool performs boolean operations (union, subtract, intersect) on bodies, using a specific verb and resource. It distinguishes from sibling feature creation tools like create_fillet or create_extrude by naming the operation types, but doesn't explicitly differentiate beyond that.
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 on when to use this tool versus alternatives, such as when creating a boolean feature versus using direct modeling. No mention of prerequisites (e.g., existing bodies) or scenarios where this tool should not be used. The description is purely functional.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_chamferC
Create a chamfer (beveled edge) on one or more edges
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Chamfer name | Chamfer |
| edgeIds | Yes | Deterministic IDs of edges to chamfer | |
| distance | Yes | Chamfer distance in inches | |
| elementId | Yes | Part Studio element ID | |
| documentId | Yes | Document ID | |
| workspaceId | Yes | Workspace ID | |
| variableDistance | No | Optional variable name for distance |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It fails to mention any side effects (e.g., whether it modifies the existing geometry destructively), required permissions, or return 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?
The description is a single sentence with no wasted words. While very concise, it could benefit from a note about when to use it vs. fillet.
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 7 parameters, 5 required, and no output schema, the description is too minimal. It does not explain return values, error conditions, or prerequisites (e.g., existence of a part studio with edges).
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 parameters. The description adds the phrase 'on one or more edges' which maps to edgeIds, but does not elaborate on parameter units or constraints beyond what the schema provides.
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 chamfer') and the resource ('on one or more edges'), with a parenthetical 'beveled edge' clarifying the type. This distinguishes it from the sibling 'create_fillet' tool.
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 on when to use this tool versus alternatives (e.g., create_fillet for rounded edges), nor any preconditions or limitations. The description is purely declarative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_circular_patternC
Create a circular pattern of features around an axis
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | Pattern axis | Z |
| name | No | Pattern name | Circular pattern |
| angle | No | Total angle spread in degrees | |
| count | Yes | Total number of instances | |
| elementId | Yes | Part Studio element ID | |
| documentId | Yes | Document ID | |
| featureIds | Yes | Feature IDs to pattern | |
| workspaceId | Yes | Workspace ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose any behavioral traits such as destructive nature, authorization requirements, side effects, or return behavior. The description only states the basic function without additional 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 only one sentence long, which is concise but overly brief for a tool with 8 parameters. Important information is omitted, making it too minimal to be useful.
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 complexity (8 parameters, no output schema, no annotations), the description is insufficient. It fails to explain required parameters, return values, or any post-conditions, leaving the agent without enough context to 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?
While the schema covers 100% of parameters, the description adds no meaning beyond the schema. It mentions 'around an axis' which relates to the 'axis' parameter, but does not clarify usage, formatting, or constraints for any parameters.
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 action ('Create') and object ('circular pattern of features around an axis'), which distinguishes it from siblings like 'create_linear_pattern'. It is specific and directly communicates the tool's 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 provides no guidance on when to use this tool versus alternatives (e.g., create_linear_pattern). No context about appropriate use cases, prerequisites, or when not to use it is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_cylindrical_mateA
Create a cylindrical (slide + rotate) mate between two assembly instances. The first instance slides and rotates relative to the second along the mate connector Z-axis. Requires face IDs from Part Studio body details. Optional offsets shift connectors from face centers.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Mate name | Cylindrical mate |
| maxLimit | No | Optional maximum axial travel limit in inches | |
| minLimit | No | Optional minimum axial travel limit in inches | |
| elementId | Yes | Assembly element ID | |
| documentId | Yes | Document ID | |
| firstFaceId | Yes | Face deterministic ID on the first instance | |
| workspaceId | Yes | Workspace ID | |
| firstOffsetX | No | First connector X offset in inches | |
| firstOffsetY | No | First connector Y offset in inches | |
| firstOffsetZ | No | First connector Z offset in inches | |
| secondFaceId | Yes | Face deterministic ID on the second instance | |
| secondOffsetX | No | Second connector X offset in inches | |
| secondOffsetY | No | Second connector Y offset in inches | |
| secondOffsetZ | No | Second connector Z offset in inches | |
| firstInstanceId | Yes | First instance ID | |
| secondInstanceId | Yes | Second instance ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden. It discloses the core behavior: slide and rotate along the Z-axis, and mentions that offsets shift connectors from face centers. However, it does not describe side effects (e.g., impact on assembly, editability, or error conditions). The transparency is adequate but not thorough.
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, front-loaded with the main purpose and relative motion, followed by a prerequisite and optional behavior. Every sentence contributes meaning without redundancy or 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?
For a tool with 16 parameters and no output schema, the description covers the essential aspects: behavior, prerequisite (face IDs), and optional offsets. However, it could be more complete by clarifying the coordinate system (e.g., how the Z-axis is defined) or the required face geometry (e.g., cylindrical faces). It is moderately 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 baseline is 3. The description adds context by explaining that offsets shift from face centers and that face IDs come from Part Studio body details. This adds value beyond the schema descriptions, which are already present. No further parameter details 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's purpose: 'Create a cylindrical (slide + rotate) mate between two assembly instances.' It specifies the relative motion (slide and rotate along Z-axis), which distinguishes it from other mate types like fastened, revolute, or slider. The verb 'Create' and resource 'cylindrical mate' are explicit and 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 provided on when to use this tool over alternatives (e.g., revolute or slider mates). The description mentions a prerequisite ('Requires face IDs from Part Studio body details') but does not clarify contexts or exclusions. The agent receives no help in deciding between sibling mate creation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_documentB
Create a new Onshape document
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name for the new document | |
| isPublic | No | Whether the document should be public | |
| description | No | Optional description for the document |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It only states that the tool creates a document, without disclosing return values, authentication needs, or error behavior. This is insufficient 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 sentence that is concise and to the point. It could be slightly improved by front-loading the key verb, but it is effective.
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 three parameters and lack of output schema or annotations, the description is too minimal. It does not explain what happens upon success or failure, or any side effects like ownership or duplicates.
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 described in the input schema (100% coverage). The description adds no additional meaning beyond what the schema provides, so a 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 'Create a new Onshape document' is a clear verb+resource statement. It distinguishes from sibling tools, which create other entities like assemblies or extrudes.
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 guidance on when to use this tool versus alternatives, but its purpose is self-explanatory. There are no siblings that also create documents, so the need for guidance is lower.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_extrudeB
Create an extrude feature from a sketch
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Extrude name | Extrude |
| depth | Yes | Extrude depth in inches | |
| elementId | Yes | Part Studio element ID | |
| documentId | Yes | Document ID | |
| workspaceId | Yes | Workspace ID | |
| operationType | No | Extrude operation type | NEW |
| variableDepth | No | Optional variable name for depth | |
| sketchFeatureId | Yes | ID of sketch to extrude |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral transparency. It only states what the tool does but gives no details on side effects, permissions required, or state changes. For a mutation tool like creating a feature, this is insufficient.
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, well-structured sentence. It is concise with no fluff, but suffers from being too brief.
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 8 parameters (5 required), no output schema, and no annotations, the description is too minimal. It lacks context about the workflow, such as the need for a sketch, operation types, or return values. The description does not compensate for the sparse structured fields.
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 parameters have descriptions in the schema (100% coverage), so the description adds no additional parameter meaning. The baseline of 3 is appropriate; the description does not enhance understanding of the parameters 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 clearly states the action 'Create an extrude feature from a sketch', which is a specific verb and resource. It distinguishes itself from sibling tools like create_revolve or create_fillet by naming the extrude operation and its source (sketch).
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 usage guidelines are provided. The description does not indicate when to use this tool over alternatives like create_revolve or create_thicken, nor does it mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_fastened_mateA
Create a fastened (rigid) mate between two assembly instances. Requires face IDs from Part Studio body details to place mate connectors on specific faces. Optional offsets shift connectors from face centers (in the face's local XY plane + Z along normal).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Mate name | Fastened mate |
| elementId | Yes | Assembly element ID | |
| documentId | Yes | Document ID | |
| firstFaceId | Yes | Face deterministic ID on the first instance (from body details) | |
| workspaceId | Yes | Workspace ID | |
| firstOffsetX | No | First connector X offset from face center in inches | |
| firstOffsetY | No | First connector Y offset from face center in inches | |
| firstOffsetZ | No | First connector Z offset (along face normal) in inches | |
| secondFaceId | Yes | Face deterministic ID on the second instance (from body details) | |
| secondOffsetX | No | Second connector X offset from face center in inches | |
| secondOffsetY | No | Second connector Y offset from face center in inches | |
| secondOffsetZ | No | Second connector Z offset (along face normal) in inches | |
| firstInstanceId | Yes | First instance ID | |
| secondInstanceId | Yes | Second instance ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral context. It indicates the tool creates a mate (a mutation) and explains the offset behavior. However, it does not disclose potential side effects, such as what happens on failure or whether the assembly is modified.
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 long, front-loading the core purpose and then explaining offsets. Every sentence adds value without redundancy.
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 complexity (14 parameters) and lack of output schema, the description covers the essential inputs and offsets. However, it does not describe the return value (e.g., a mate feature ID) or what the tool does beyond creating the mate, leaving some ambiguity.
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%, but the description adds meaning beyond the schema by explaining that face IDs come from body details and that offsets are relative to face centers and normals. This helps the agent understand how to use the parameters.
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 'Create a fastened (rigid) mate between two assembly instances,' specifying the action and the resource. It differentiates from sibling mate tools like create_revolute_mate or create_slider_mate by naming the mate type.
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 mentions a prerequisite ('Requires face IDs from Part Studio body details') and optional offsets. However, it does not explicitly state when to use this tool versus alternatives, such as when other mate types are more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_filletC
Create a fillet (rounded edge) on one or more edges
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Fillet name | Fillet |
| radius | Yes | Fillet radius in inches | |
| edgeIds | Yes | Deterministic IDs of edges to fillet | |
| elementId | Yes | Part Studio element ID | |
| documentId | Yes | Document ID | |
| workspaceId | Yes | Workspace ID | |
| variableRadius | No | Optional variable name for radius |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It does not mention that creating a fillet modifies geometry, whether it is destructive, or any side effects. The minimal description lacks behavioral context beyond the basic action.
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, which is concise but under-specified for a tool with 7 parameters. Important details are omitted, making it inadequate for correct selection.
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 complexity (7 parameters, no output schema, no annotations), the description is too sparse. It fails to explain the nature of the fillet operation, expected outcomes, or how parameters interact, leaving significant gaps for an AI agent.
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 in the schema. The description adds no additional meaning beyond the schema. 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 identifies the action ('Create a fillet') and the target resource ('rounded edge on one or more edges'), distinguishing it from siblings like create_chamfer. The verb+resource combination is specific and 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 on when to use this tool versus alternatives like create_chamfer or other edge treatments. The description does not provide any context for appropriate usage, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_linear_patternC
Create a linear pattern of features
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Pattern name | Linear pattern |
| count | No | Total number of instances | |
| distance | Yes | Distance between instances in inches | |
| direction | No | Pattern direction axis | X |
| elementId | Yes | Part Studio element ID | |
| documentId | Yes | Document ID | |
| featureIds | Yes | Feature IDs to pattern | |
| workspaceId | Yes | Workspace ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must fully disclose behavior. It only says 'create' without mentioning side effects, permissions, whether existing features are modified, or return values. The description is insufficient 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 a single 6-word sentence. While concise, it is under-specified and does not front-load key information like the type of pattern or required inputs.
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 8 parameters, 5 required, and no output schema, the description should provide more context on typical usage, axis constraints, distance units, or expected results. The current description leaves many 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 coverage is 100%, so each parameter has a description. The tool description adds no additional meaning beyond the schema, meeting the baseline for high 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 the action 'Create' and the resource 'linear pattern of features'. It distinguishes from the sibling tool 'create_circular_pattern' by specifying the pattern type.
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 on when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or comparisons to other pattern-related tools like 'create_circular_pattern'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_mate_connectorA
Create an explicit mate connector on a face of an assembly instance. The connector is placed at the face center with its Z-axis along the face normal. Offsets are in the connector's LOCAL coordinate system (X/Y in-plane, Z along normal). Flipping the Z-axis also reverses the other axes via the right-hand rule, which affects how offset translations map to world space.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Mate connector name | Mate connector |
| faceId | Yes | Face deterministic ID (from Part Studio body details) | |
| offsetX | No | X offset from face center in inches | |
| offsetY | No | Y offset from face center in inches | |
| offsetZ | No | Z offset (along face normal) from face center in inches | |
| elementId | Yes | Assembly element ID | |
| documentId | Yes | Document ID | |
| instanceId | Yes | Instance ID to attach the connector to | |
| flipPrimary | No | Flip the primary (Z) axis direction | |
| workspaceId | Yes | Workspace ID | |
| secondaryAxisType | No | Reorient secondary axis | PLUS_X |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden. It explains coordinate system orientation, flip behavior, and local offsets, but does not cover potential side effects, preconditions, or whether the operation is undoable.
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 concise (two sentences) and front-loaded with the main purpose. However, the coordinate system explanation could be more structured for easier parsing.
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 11 parameters and no output schema, the description provides thorough context on placement, orientation, and axis behavior. It lacks only a brief statement on return value or side effects.
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%, but the description adds significant value by explaining the local coordinate system, axis orientation, and how flipping affects offset mapping, which is not obvious from parameter names alone.
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 creates an explicit mate connector on a face, specifying placement at face center with Z-axis along normal, which distinguishes it from other mate creation tools (e.g., create_revolute_mate, create_fastened_mate).
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 like other mate connectors or fasteners. It does not mention prerequisites or scenarios where this tool is inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_part_studioB
Create a new Part Studio in an existing document
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name for the new Part Studio | |
| documentId | Yes | Document ID | |
| workspaceId | Yes | Workspace ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states 'Create a new Part Studio', implying a write operation, but discloses no behavioral traits such as idempotency, error handling, or permissions required.
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 that is clear and front-loaded. There is no fluff or unnecessary 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?
The tool is simple with no output schema and few parameters, but the description lacks context about what a Part Studio is or how it fits into the document hierarchy. Given the low complexity, it is minimally adequate but could be more helpful.
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 all three parameters documented. The description adds no additional meaning beyond the schema, 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 verb 'Create', the resource 'Part Studio', and the context 'in an existing document'. This distinguishes it from sibling tools like 'create_document' or 'find_part_studios'.
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. There is no mention of prerequisites (e.g., document must exist), nor any exclusion criteria. The description simply states what it does without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_revolute_mateA
Create a revolute (rotation) mate between two assembly instances. The first instance rotates relative to the second around the mate connector Z-axis. Requires face IDs from Part Studio body details. Optional offsets shift connectors from face centers.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Mate name | Revolute mate |
| maxLimit | No | Optional maximum rotation limit in degrees | |
| minLimit | No | Optional minimum rotation limit in degrees | |
| elementId | Yes | Assembly element ID | |
| documentId | Yes | Document ID | |
| firstFaceId | Yes | Face deterministic ID on the first instance | |
| workspaceId | Yes | Workspace ID | |
| firstOffsetX | No | First connector X offset in inches | |
| firstOffsetY | No | First connector Y offset in inches | |
| firstOffsetZ | No | First connector Z offset in inches | |
| secondFaceId | Yes | Face deterministic ID on the second instance | |
| secondOffsetX | No | Second connector X offset in inches | |
| secondOffsetY | No | Second connector Y offset in inches | |
| secondOffsetZ | No | Second connector Z offset in inches | |
| firstInstanceId | Yes | First instance ID | |
| secondInstanceId | Yes | Second instance ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It explains the rotation axis and offset functionality, but does not mention permissions, destructive nature, side effects, or return behavior. Adequate but not comprehensive.
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, front-loaded with purpose, no filler. Every sentence adds 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?
Given 16 parameters, no output schema, and no annotations, the description covers the core functionality well. It could mention the result (e.g., mate created) or error handling, but overall sufficiently complete for a creation 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 baseline is 3. The description adds context about face IDs and offsets, but otherwise does not provide significant new meaning beyond the schema 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 clearly states the tool creates a revolute (rotation) mate between two assembly instances, specifying the rotation axis (Z-axis) and which instance rotates relative to which. This distinguishes it from sibling mate tools like create_cylindrical_mate or create_fastened_mate.
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 mentions requirements (face IDs from Part Studio) and optional offsets, but does not explicitly state when to use this mate versus other mate types, nor provide when-not-to-use guidance or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_revolveB
Create a revolve feature by rotating a sketch around an axis
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | Axis of revolution | Y |
| name | No | Revolve name | Revolve |
| angle | No | Revolve angle in degrees | |
| elementId | Yes | Part Studio element ID | |
| documentId | Yes | Document ID | |
| workspaceId | Yes | Workspace ID | |
| operationType | No | Revolve operation type | NEW |
| sketchFeatureId | Yes | ID of sketch to revolve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the basic operation without mentioning default values, operation types, axis options, or any side effects. Important behavioral aspects like default angle (360°) and operation type options are not 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, front-loaded sentence that efficiently conveys the tool's purpose. No 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?
The tool has 8 parameters, including those with defaults and enums, and no output schema. The description does not explain return values, error conditions, or behavior under different parameter combinations, making it insufficient for a complete understanding.
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 all 8 parameters having descriptions in the input schema. The description adds no additional meaning beyond what the schema provides, so a 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 states the tool's purpose: creating a revolve feature by rotating a sketch around an axis. It uses a specific verb ('create') and resource ('revolve feature'), and distinguishes from sibling tools like extrude or fillet.
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 guidance on when to use this tool versus alternatives (e.g., extrude, boolean, etc.). The usage is implied through the description but lacks when-not-to-use or alternative suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sketch_arcC
Create an arc sketch on a standard plane
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Sketch name | Sketch |
| plane | No | Sketch plane | Front |
| radius | Yes | Radius in inches | |
| centerX | No | Center X in inches | |
| centerY | No | Center Y in inches | |
| endAngle | No | End angle in degrees | |
| elementId | Yes | Part Studio element ID | |
| documentId | Yes | Document ID | |
| startAngle | No | Start angle in degrees (0 = positive X) | |
| workspaceId | Yes | Workspace ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose any behavioral traits beyond the basic action, such as that it will create a new sketch (not add to existing) or that it will add arcs inside a part studio. The description lacks details on side effects 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?
The description is a single sentence, very concise and efficient. It gets straight to the point. However, it lacks structure (no bullet points or sections) but given the brevity, it is acceptable. The description could be slightly expanded without losing conciseness.
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 is incomplete for a tool with 10 parameters and no output schema. It does not explain what happens after creation (e.g., does it return the sketch ID?) or any constraints (e.g., that the arc is placed on the specified plane). The agent would need to infer from parameter names or trial and error.
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 does not add meaning beyond the schema; it is too short to provide additional context. However, the schema already explains each parameter adequately, so no deduction is 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 action (create an arc sketch) and the location (on a standard plane). It distinguishes from sibling tools like create_sketch_circle, create_sketch_line, etc., which create different geometry types. However, it could be more specific about the nature of an arc (partial circle) and the fact that it creates a 2D sketch on one of the standard planes.
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 (e.g., when to use sketch arc vs. circle) or any prerequisites. The description does not mention required context like document, workspace, or element IDs, which are implied by the required parameters but not explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sketch_circleC
Create a circular sketch on a standard plane
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Sketch name | Sketch |
| plane | No | Sketch plane | Front |
| radius | Yes | Radius in inches | |
| centerX | No | Center X in inches | |
| centerY | No | Center Y in inches | |
| elementId | Yes | Part Studio element ID | |
| documentId | Yes | Document ID | |
| workspaceId | Yes | Workspace ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It fails to mention that the tool requires an existing elementId (Part Studio element) or whether the circle is created in a new sketch or added to an existing sketch. The phrase 'on a standard plane' is vague.
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 with a single sentence. While it lacks structure, every word serves a purpose. It could benefit from more detail, but it is not bloated.
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 is adequate for a simple tool with full schema coverage. However, it does not explain required relationships (e.g., elementId must refer to a Part Studio element) or the tool's output (e.g., it creates a sketch circle entity).
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 baseline is 3. The description adds no additional parameter meaning beyond what the schema provides. It neither clarifies nor contradicts 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 clearly states the action (create) and resource (circular sketch on a standard plane), distinguishing it from sibling tools like create_sketch_arc or create_sketch_rectangle. However, it does not mention the specific standard planes available (Front, Top, Right) which are defined in the 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?
No guidance is provided on when to use this tool versus alternatives like create_sketch_arc or create_sketch_rectangle. There are no usage conditions, prerequisites, or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sketch_lineB
Create a line sketch on a standard plane
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Sketch name | Sketch |
| plane | No | Sketch plane | Front |
| endPoint | Yes | End point [x, y] in inches | |
| elementId | Yes | Part Studio element ID | |
| documentId | Yes | Document ID | |
| startPoint | Yes | Start point [x, y] in inches | |
| workspaceId | Yes | Workspace ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden but adds no behavioral details such as whether it modifies an existing sketch, requires specific permissions, or has side effects. It only states the basic action.
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 unnecessary words, making it concise. However, it sacrifices important content 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?
Given the complexity (7 parameters, no output schema, no annotations), the description is insufficient. It does not explain return values, prerequisites, or behavior beyond the basic action.
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 parameters. The description adds no additional meaning beyond what is in the schema, meeting the baseline for well-covered schemas.
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 verb 'create' and resource 'line sketch' within the context of a standard plane, effectively distinguishing it from sibling tools like create_sketch_arc and create_sketch_circle.
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, nor any conditions or prohibitions. The single sentence lacks any usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sketch_rectangleC
Create a rectangular sketch in a Part Studio with optional variable references
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Sketch name | Sketch |
| plane | No | Sketch plane | Front |
| corner1 | Yes | First corner [x, y] in inches | |
| corner2 | Yes | Second corner [x, y] in inches | |
| elementId | Yes | Part Studio element ID | |
| documentId | Yes | Document ID | |
| workspaceId | Yes | Workspace ID | |
| variableWidth | No | Optional variable name for width | |
| variableHeight | No | Optional variable name for height |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral disclosure. It mentions creating a sketch but does not explain side effects (e.g., whether it overwrites existing sketches, how variables are used, or confirmation of success). The behavioral impact is minimally 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?
The description is very concise at one sentence and 12 words. However, it sacrifices necessary detail for brevity. Front-loaded with the core action, but missing critical context for a multi-parameter 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?
Given the tool has 9 parameters, 5 required, and no output schema, the description is incomplete. It fails to explain the coordinate system, units, plane options, the role of variable references, or what happens upon creation. Significant gaps remain.
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 has 100% description coverage, so the baseline is 3. The description adds 'optional variable references' but does not elaborate on how variableWidth and variableHeight are used beyond the schema's own descriptions. No significant added 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 clearly states it creates a rectangular sketch in a Part Studio with optional variable references. However, it does not explicitly differentiate from sibling sketch tools like create_sketch_circle or create_sketch_line, though the name and context make the purpose 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 description provides no guidance on when to use this tool versus alternatives, no exclusions, and no information about prerequisites or context (e.g., requiring an existing Part Studio element). The agent is left to infer usage 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.
create_slider_mateA
Create a slider (linear motion) mate between two assembly instances. The first instance slides relative to the second — positive travel moves the first instance along the face normal direction away from the second. Swap instance order to reverse slide direction. Requires face IDs from Part Studio body details. Optional offsets shift connectors from face centers.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Mate name | Slider mate |
| maxLimit | No | Optional maximum travel limit in inches | |
| minLimit | No | Optional minimum travel limit in inches | |
| elementId | Yes | Assembly element ID | |
| documentId | Yes | Document ID | |
| firstFaceId | Yes | Face deterministic ID on the first instance | |
| workspaceId | Yes | Workspace ID | |
| firstOffsetX | No | First connector X offset in inches | |
| firstOffsetY | No | First connector Y offset in inches | |
| firstOffsetZ | No | First connector Z offset in inches | |
| secondFaceId | Yes | Face deterministic ID on the second instance | |
| secondOffsetX | No | Second connector X offset in inches | |
| secondOffsetY | No | Second connector Y offset in inches | |
| secondOffsetZ | No | Second connector Z offset in inches | |
| firstInstanceId | Yes | First instance ID | |
| secondInstanceId | Yes | Second instance ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the sliding behavior, direction relative to face normal, and offset effects. However, it lacks details on required permissions, error handling, or side effects of setting limits beyond optional max/min.
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 paragraph of about 80 words. It front-loads the main purpose and then provides necessary details. Every sentence adds value without redundancy.
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 complexity (16 parameters, 7 required, no output schema), the description covers the core behavior but does not explain what the tool returns (e.g., mate ID) or address error conditions. It is adequate but leaves gaps for a complete 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%, so baseline is 3. The description adds value by explaining the relationship between instances and the direction of travel, which enriches the understanding of parameters like firstInstanceId and secondFaceId. It also clarifies how offsets shift connectors from face centers.
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 starts with 'Create a slider (linear motion) mate between two assembly instances,' which is a specific verb+resource combination. It clearly distinguishes this tool from sibling mates like create_cylindrical_mate or create_revolute_mate by specifying linear motion.
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 explains when to use it (sliding), how travel direction works, and that swapping instances reverses direction. It also mentions prerequisites (face IDs from Part Studio) and optional offsets. However, it does not explicitly state when not to use it or list alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_thickenC
Create a thicken feature from a sketch
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Thicken name | Thicken |
| midplane | No | Thicken symmetrically from sketch plane | |
| elementId | Yes | Part Studio element ID | |
| thickness | Yes | Thickness in inches | |
| documentId | Yes | Document ID | |
| workspaceId | Yes | Workspace ID | |
| operationType | No | Thicken operation type | NEW |
| sketchFeatureId | Yes | ID of sketch to thicken | |
| oppositeDirection | No | Thicken in opposite direction | |
| variableThickness | No | Optional variable name for thickness |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the action without mentioning side effects (e.g., modifying the part studio), required permissions, or whether the operation is destructive. Minimal 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 a single sentence with no waste, but it is too brief to be highly useful. It lacks front-loading of critical information; however, it is appropriately concise.
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 10 parameters, no output schema, and no annotations, the description is insufficient. It fails to explain return values, prerequisites, or the overall effect of the operation (e.g., adding a feature to the feature tree).
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 for all parameters, providing adequate meaning. The tool description adds no additional parameter context beyond the schema, but the baseline of 3 is appropriate given this 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 the action ('Create') and the resource ('thicken feature from a sketch'). It distinguishes from sibling tools which create other features (e.g., extrude, revolve) due to the feature type being specified.
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 or why to use this tool over alternatives. No prerequisites, limitations, or context for usage are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_featureA
Delete a feature from a Part Studio or Assembly
| Name | Required | Description | Default |
|---|---|---|---|
| elementId | Yes | Part Studio or Assembly element ID | |
| featureId | Yes | Feature ID to delete | |
| documentId | Yes | Document ID | |
| elementType | No | Type of element containing the feature | PARTSTUDIO |
| workspaceId | Yes | Workspace ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It only states 'Delete' without revealing reversibility, side effects, required permissions, or error conditions. For a destructive tool, this is insufficient.
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 immediately conveys the tool's purpose. No 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?
The description covers the basic purpose but lacks details about return values (no output schema) and operational context (e.g., what happens after deletion). For a moderate-complexity tool with 5 parameters, more completeness would be beneficial.
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 describes all parameters. The description does not add extra meaning beyond the action. 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 verb 'delete' and the resource 'feature' with context 'from a Part Studio or Assembly'. It is specific and distinguishes itself from sibling tools which are mostly creation-oriented.
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 guidelines on when to use this tool versus alternatives, nor any prerequisites or exclusions. It is implied for deletion tasks, but lacks explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eval_featurescriptA
Evaluate a FeatureScript expression in a Part Studio (read-only, for querying geometry)
| Name | Required | Description | Default |
|---|---|---|---|
| script | Yes | FeatureScript lambda expression to evaluate | |
| elementId | Yes | Part Studio element ID | |
| documentId | Yes | Document ID | |
| workspaceId | Yes | Workspace ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool is read-only, which is a key behavioral trait. However, with no annotations provided, it fails to mention any other important behaviors such as authentication needs, rate limits, or 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, front-loaded sentence that efficiently conveys purpose and read-only nature. It is concise, but could be slightly improved by mentioning the return value or output type.
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 lacks critical information about what the expression returns or how it is used for querying. Without an output schema, the agent needs to know the format of the result (e.g., geometry data, boolean success). Additionally, no error handling or prerequisite info is provided.
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 parameter names and descriptions are self-explanatory. The description adds no additional meaning beyond what the schema already provides, 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 clearly states the action (evaluate), the resource (FeatureScript expression in a Part Studio), and its nature (read-only, for querying geometry). It distinguishes from sibling tools that create or modify 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?
The description implies usage for querying geometry without modification, but it does not explicitly state when to use this tool over siblings like get_body_details or get_features, nor does it mention when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_assemblyC
Export an Assembly to STL, STEP, or other format
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Export format | STL |
| elementId | Yes | Assembly element ID | |
| documentId | Yes | Document ID | |
| workspaceId | Yes | Workspace ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as side effects, permissions, rate limits, or whether the operation is read-only. The description only states the action without any behavioral 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, concise sentence with no unnecessary words. However, it is slightly under-specified for the tool's complexity, but still 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?
Given no output schema and 4 parameters, the description lacks completeness. It does not mention return value, success conditions, error handling, or any post-export effects.
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 parameters. The description adds no additional meaning beyond the schema. 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 verb 'Export' and resource 'Assembly', and mentions specific formats (STL, STEP, GLTF) from the enum. It distinguishes from sibling 'export_part_studio' by targeting assemblies. However, 'or other format' is slightly vague.
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 vs alternatives like 'export_part_studio'. It does not specify prerequisites, context, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_part_studioB
Export a Part Studio to STL, STEP, or other format
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Export format | STL |
| partId | No | Optional specific part ID to export | |
| elementId | Yes | Part Studio element ID | |
| documentId | Yes | Document ID | |
| workspaceId | Yes | Workspace ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description fails to disclose what the tool returns (e.g., file URL, download link, raw data) or any side effects, limits, or permissions needed. For a file export, 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?
Single sentence, front-loaded with key information, no unnecessary 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?
Given no output schema and no annotations, the description is too brief. It fails to inform the agent about the output type (e.g., file URL, binary) or how to handle the result, making it incomplete for reliable 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 has 100% description coverage; the tool description adds little beyond listing export formats. It does not elaborate on the optional partId or clarify 'other format' beyond the enum.
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?
Description clearly states the verb 'Export', the resource 'Part Studio', and lists specific formats (STL, STEP, etc.), distinguishing it from sibling like export_assembly.
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 guidance on when to use this tool or alternatives; usage is implied by the verb and resource, but no exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_part_studiosA
Find Part Studio elements in a specific workspace, optionally filtered by name
| Name | Required | Description | Default |
|---|---|---|---|
| documentId | Yes | Document ID | |
| namePattern | No | Optional name pattern to filter by (case-insensitive) | |
| workspaceId | Yes | Workspace ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes a read operation ('Find') but does not disclose any behavioral details (e.g., permissions, side effects, limits) beyond the basic function.
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?
Single sentence, front-loaded with the verb and resource, no unnecessary words. Every part 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?
Given no output schema, the tool is simple enough that the description covers the essential purpose. However, it could briefly note that the result is a list of elements, but the current text is sufficient for a basic 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%; the description mentions the optional name filter, but this adds no value over the schema's description of namePattern. 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 states the action (Find), the resource (Part Studio elements), and the scope (in a specific workspace, optionally filtered by name). It distinguishes the tool from siblings like create_part_studio and get_elements.
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 on when to use this tool vs alternatives (e.g., get_elements, search_documents). The description only states what it does without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_assemblyB
Get assembly structure including instances and occurrences
| Name | Required | Description | Default |
|---|---|---|---|
| elementId | Yes | Assembly element ID | |
| documentId | Yes | Document ID | |
| workspaceId | Yes | Workspace ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It only states purpose without mentioning side effects, permissions, or error handling. Being a 'get' operation, read-only behavior is implied but not explicit.
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, front-loading the purpose. However, it could include more context without being 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?
Given the complexity (3 required params, no output schema, no annotations), the description mentions return structure (instances and occurrences) but lacks details on response format, behavioral traits, and usage distinctions from sibling 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?
Schema description coverage is 100%, so each parameter has a description. The tool description adds no additional semantic meaning beyond the schema, hence baseline score 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 'Get assembly structure including instances and occurrences' specifies a clear verb and resource, and distinguishes from sibling tools like get_assembly_features and get_assembly_positions.
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 on when to use this tool versus alternatives such as get_assembly_features or add_assembly_instance. The description lacks context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_assembly_featuresA
Get all features (mates, mate connectors, etc.) from an assembly with their current state (OK, ERROR, SUPPRESSED). Useful for inspecting existing mates and debugging assembly issues.
| Name | Required | Description | Default |
|---|---|---|---|
| elementId | Yes | Assembly element ID | |
| documentId | Yes | Document ID | |
| workspaceId | Yes | Workspace ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It implies read-only behavior but does not mention auth needs, rate limits, side effects, or return format. This is adequate for a simple query but lacks explicit 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 concise sentences front-load the purpose and usage. Every word adds value, with 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?
The description covers what the tool returns (features with states) and its use case (debugging). It is complete for a simple query tool with three required params and no output schema, though it could mention error handling or result 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 schema already documents each parameter. The description does not add additional meaning beyond the schema, meeting the baseline but not 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 clearly states the verb 'Get', resource 'assembly features', and provides examples like mates and mate connectors. It differentiates from siblings by specifying assembly context and including state information, making the purpose unmistakable.
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 suggests usage for inspecting mates and debugging assemblies, providing clear context. However, it does not explicitly compare to alternatives like 'get_features' or specify when not to use it, which slightly limits full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_assembly_positionsB
Get positions, sizes, and world-space bounds of all instances in an assembly (in inches)
| Name | Required | Description | Default |
|---|---|---|---|
| elementId | Yes | Assembly element ID | |
| documentId | Yes | Document ID | |
| workspaceId | Yes | Workspace ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It mentions units (inches) but lacks details on side effects (none), performance, required permissions, or behavior with empty assemblies. 'World-space bounds' is not clarified, and there is no mention of return structure or pagination.
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 with no filler. It immediately conveys the tool's purpose and key detail (inches). Every word serves a purpose.
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 returns spatial data for multiple instances, the lack of an output schema means the description should clarify return structure. It does not explain what 'positions' (e.g., translation/rotation) or 'sizes' mean, nor whether results are flat or hierarchical. This is insufficient for an agent to interpret the output.
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 descriptions for all three parameters. The tool description does not add new meaning beyond what the schema provides, so baseline score of 3 is appropriate. No extra constraints or usage notes are given.
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 retrieves 'positions, sizes, and world-space bounds of all instances in an assembly' with units specified. It distinguishes from siblings like add_assembly_instance or get_assembly_features, 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 explicit when-to-use or when-not-to-use guidance is provided. The description implies usage for reading instance properties, but does not differentiate from alternatives like get_assembly or list documents. Without exclusions or prerequisites, the agent may not know if this is appropriate for nested assemblies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_body_detailsA
Get face-level geometry details for all parts in a Part Studio. Returns face deterministic IDs, surface types (PLANE, CYLINDER, etc.), and for planar faces: normal vectors and origin points. Use face IDs with mate connector tools.
| Name | Required | Description | Default |
|---|---|---|---|
| elementId | Yes | Part Studio element ID | |
| documentId | Yes | Document ID | |
| workspaceId | Yes | Workspace ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the returned data but does not mention read-only behavior, safety, or potential side effects. The term 'get' implies read-only, but explicit confirmation would improve 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?
Two concise sentences: one describing the function and output, and one providing usage guidance. No 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?
Given no output schema, the description adequately lists key return values (face IDs, surface types, normal vectors, origin points). It also mentions a downstream use case. Missing information about pagination or error handling, but the tool appears simple enough.
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% (all three parameters described), so baseline is 3. The description does not add any additional meaning beyond the schema; it neither repeats nor elaborates on parameter details.
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 retrieves face-level geometry details for all parts in a Part Studio, specifying the output: face IDs, surface types, and for planar faces normal vectors and origin points. This distinguishes it from sibling tools like get_face_coordinate_system or align_instance_to_face.
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 indicates usage context: 'Use face IDs with mate connector tools.' This tells the agent when the output is applicable. However, it does not explicitly state when to use this tool over alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bounding_boxC
Get the tight bounding box of all parts in a Part Studio
| Name | Required | Description | Default |
|---|---|---|---|
| elementId | Yes | Part Studio element ID | |
| documentId | Yes | Document ID | |
| workspaceId | Yes | Workspace ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the burden. It only states 'Get', implying read-only, but does not explain what the bounding box represents (e.g., coordinates, units) or any side effects. Minimal behavioral 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?
A single sentence with no wasted words. Could benefit from more structure, but is efficient given the simple purpose.
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?
No output schema is provided, and the description does not clarify return value format (e.g., coordinates, units). For a query tool, this is insufficient for an agent to understand what the tool returns.
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 descriptions for each parameter. The description adds no additional meaning beyond the schema. 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 verb 'Get' and the resource 'tight bounding box of all parts in a Part Studio'. It distinguishes from most sibling tools which are creation or manipulation functions, though no explicit differentiation is provided.
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 alternative get tools like get_body_details or get_parts. No context for prerequisites or exclusion cases is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_documentB
Get detailed information about a specific document
| Name | Required | Description | Default |
|---|---|---|---|
| documentId | Yes | Document ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully convey behavioral traits. It only states 'Get detailed information' but does not specify what information is included, whether the operation is read-only, or what happens on error (e.g., document not found). 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 a single, front-loaded sentence with no wasted words. It is efficiently concise, though it could be slightly expanded without losing 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 simple read operation with one parameter and no output schema, the description is minimally adequate. However, it does not clarify what 'detailed information' includes, which is important given the existence of a sibling tool 'get_document_summary'.
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 description coverage is 100% with one parameter 'documentId' described as 'Document ID'. The description adds no additional meaning or format details beyond the schema. Baseline 3 is appropriate as 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 clearly states the verb 'Get' and the resource 'document', specifying it returns detailed information. It is distinct from sibling tools like list_documents, search_documents, and get_document_summary, indicating a specific 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 provides no guidance on when to use this tool over alternatives such as get_document_summary or search_documents. No context about prerequisites or limitations is given, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_document_summaryC
Get a comprehensive summary of a document including all workspaces and elements
| Name | Required | Description | Default |
|---|---|---|---|
| documentId | Yes | Document ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must communicate behavioral traits. It fails to state that the operation is read-only, what happens on missing documents, or any potential side effects. Only the basic purpose is conveyed.
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 extraneous words, but it could be more informative without sacrificing conciseness. Still, it earns a high score 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?
Given the lack of an output schema and the likely complex return value (a summary of workspaces and elements), the description is too sparse. It does not clarify what the summary contains, which limits its usefulness.
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 parameter 'documentId' is fully described in the schema, and the description adds no additional meaning. With 100% schema coverage, the baseline is 3; no extra value is provided.
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 returns a comprehensive summary of a document including workspaces and elements. However, 'comprehensive summary' is vague and does not specify what exactly is included, which leaves some 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?
No guidance is provided on when to use this tool versus siblings like 'get_document' or 'get_elements'. There is no mention of prerequisites or context for optimal use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_elementsC
Get all elements (Part Studios, Assemblies, etc.) in a workspace
| Name | Required | Description | Default |
|---|---|---|---|
| documentId | Yes | Document ID | |
| elementType | No | Optional filter by element type (e.g., 'PARTSTUDIO', 'ASSEMBLY') | |
| workspaceId | Yes | Workspace ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits like pagination, limits, or sort order. It only states it returns 'all elements' without any such 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 a single, concise sentence without superfluous words. However, it is perhaps too brief, missing opportunities to add 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?
With no output schema, the description should explain what data is returned for each element (e.g., id, name, type). It fails to do so, leaving the agent uncertain about the response structure.
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 descriptions for all three parameters. The description adds minimal value beyond the schema, only hinting at the elementType filter via the parenthetical examples.
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 action (Get) and resource (all elements) with examples in parentheses. It distinguishes from sibling tools that target specific element types like get_assembly or get_parts.
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. For instance, it doesn't mention that for a specific element type, a dedicated get tool might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_face_coordinate_systemA
Query the true outward-facing coordinate system for a face on an assembly instance. Returns the guaranteed outward normal (Z-axis), tangent axes (X/Y), and origin. More reliable than body details normals. Use this to verify face orientations before creating mates.
| Name | Required | Description | Default |
|---|---|---|---|
| faceId | Yes | Face deterministic ID (from body details) | |
| elementId | Yes | Assembly element ID | |
| documentId | Yes | Document ID | |
| instanceId | Yes | Instance ID containing the face | |
| workspaceId | Yes | Workspace ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It only describes output but does not disclose behavioral traits such as read-only nature, permission requirements, or computational cost. The description is missing behavioral details beyond what the output 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?
Two sentences, front-loaded with purpose, followed by output, reliability, and usage. No wasted words, highly 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?
Given the lack of output schema, the description adequately explains return values. With 5 well-described parameters and no enums or nested objects, the description covers purpose, usage, and outputs. Minor gap in behavioral transparency, but overall complete for a query 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% with all parameters already described. The description adds no additional meaning beyond the parameter names and schemas, so 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 states the tool queries the true outward-facing coordinate system for a face, specifies return values (normal, tangent axes, origin), and distinguishes itself from body details normals by claiming higher reliability.
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?
Explicit usage context is provided: 'Use this to verify face orientations before creating mates.' It also implies an alternative (body details normals) by stating 'More reliable than body details normals', though no explicit exclusions or when-not-to-use guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_featuresB
Get all features from a Part Studio
| Name | Required | Description | Default |
|---|---|---|---|
| elementId | Yes | Part Studio element ID | |
| documentId | Yes | Document ID | |
| workspaceId | Yes | Workspace ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, leaving the description to fully disclose behavior. It only states 'Get all features' without mentioning performance, pagination, or what 'features' entails (e.g., order, nesting).
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 with no extraneous words, effectively conveying the tool's core purpose.
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 absence of an output schema, the description should explain what is returned. It only states 'all features', which is incomplete for understanding the response format or structure.
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 have descriptions in the schema (100% coverage), so the baseline is 3. The tool description adds no additional meaning beyond what the schema already provides.
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 verb-resource relationship ('Get all features from a Part Studio'), but does not explicitly distinguish it from similar siblings like 'get_assembly_features'. However, the context of 'Part Studio' provides implicit 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?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or exclusions. The description simply states what it does without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_partsB
Get all parts from a Part Studio element
| Name | Required | Description | Default |
|---|---|---|---|
| elementId | Yes | Part Studio element ID | |
| documentId | Yes | Document ID | |
| workspaceId | Yes | Workspace ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only states read operation ('Get all parts') but lacks details on side effects, permissions, pagination, or output format.
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?
Single sentence, front-loaded with action and resource. No unnecessary 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?
Minimal but adequate for a simple getter. Lacks explanation of what a 'Part Studio element' is or how to obtain elementId. No output schema, so return values are not described.
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 has 100% coverage with descriptions, but they are generic. The tool description adds no extra 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?
Clearly states the action ('Get all parts') and the resource ('from a Part Studio element'). Distinguishes from sibling tools like 'get_assembly' or 'get_features' by specifying 'parts'.
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 on when to use this tool versus alternatives like 'get_elements' or 'get_body_details'. No prerequisites or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_variablesB
Get all variables from a Part Studio variable table
| Name | Required | Description | Default |
|---|---|---|---|
| elementId | Yes | Part Studio element ID | |
| documentId | Yes | Document ID | |
| workspaceId | Yes | Workspace ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states the action without disclosing behavioral traits like read-only nature, return format, or any side effects. The minimal description fails to add value beyond the obvious.
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?
Very concise, single sentence with no wasted words. Front-loaded with the core action and resource.
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 is simple with 3 required parameters and no output schema. The description is minimal but sufficient for a basic read operation, though it could be more complete by mentioning the return structure or scope (e.g., 'from a Part Studio element's variable table').
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 does not add any extra meaning to the parameters beyond what the schema already provides.
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 'Get' and resource 'all variables from a Part Studio variable table', clearly distinguishing it from sibling 'set_variable' which performs the write operation.
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 any guidance on when to use this tool versus alternatives, such as when to read vs write variables, or mention any prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_documentsA
List documents in your Onshape account with optional filtering and sorting
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of documents to return | |
| sortBy | No | Sort field | modifiedAt |
| sortOrder | No | Sort order | desc |
| filterType | No | Filter documents by type | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description only states it lists documents, which implies a read operation. It does not disclose additional behavioral traits such as rate limits, authentication needs, or pagination 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?
The description is a single, concise sentence that is front-loaded with the main action. It could potentially include more detail, but it is compact 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 listing tool with well-documented parameters, the description is reasonably complete. However, it does not mention output format or behavior when no documents match, and there is no output 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% with all parameters described. The description adds no extra meaning beyond the schema, so 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?
Description clearly states verb 'List' and resource 'documents' with scope 'in your Onshape account'. It specifies optional filtering and sorting, but does not differentiate from sibling tool 'search_documents', which may have overlapping functionality.
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 listing documents with filters, but provides no explicit when-to-use, when-not-to-use, or alternatives. It lacks guidance on choosing between this and 'search_documents'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_documentsB
Search for documents by name or description
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results | |
| query | Yes | Search query string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does not mention side effects, matching behavior (e.g., partial matching, case sensitivity), or what happens with empty results. The description adds minimal value 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 sentence with no extraneous information. It is appropriately concise 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?
The tool is simple, but the description does not mention the output format or pagination behavior. Given the lack of output schema and the presence of sibling tools like 'list_documents', the description could be more complete to guide the agent.
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 does not add any additional meaning to the parameters beyond what is in the schema. The 'query' parameter description is generic ('Search query string'), and 'limit' is clear.
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 'Search for documents by name or description' specifies the verb 'search' and the resource 'documents', and clarifies the search criteria. However, it does not differentiate from the sibling tool 'list_documents', which may have overlapping functionality.
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 like 'list_documents'. The description lacks any context about prerequisites, limitations, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_instance_positionA
Set an instance to an ABSOLUTE position in inches (unlike transform_instance which is relative). Resets rotation to identity. Note: fails on fixed/grounded instances (API returns 400).
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | Absolute X position in inches | |
| y | Yes | Absolute Y position in inches | |
| z | Yes | Absolute Z position in inches | |
| elementId | Yes | Assembly element ID | |
| documentId | Yes | Document ID | |
| instanceId | Yes | Instance ID to position | |
| workspaceId | Yes | Workspace ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses rotation reset and error condition (400 on fixed/grounded). Missing possible side effects like permission requirements, but the disclosed behaviors are valuable.
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 plus a note, front-loaded with key info. No wasted words; every sentence adds 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?
Given no output schema, the description covers the core operation, key behavioral traits, and a failure case. Could mention prerequisites like document state or permissions, but overall sufficient for agent decision-making.
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 baseline is 3. The description reinforces that coordinates are absolute and in inches, which the schema already states. No additional meaning added for other parameters.
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 ('Set') and resource ('instance to an ABSOLUTE position'), clearly distinguishing from the sibling tool 'transform_instance' which is relative. It also states the unit (inches) and additional behavior (resets rotation).
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 contrasts with 'transform_instance' (relative) and notes failure on fixed/grounded instances, giving clear when-to-use and 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.
set_variableB
Set or update a variable in a Part Studio variable table
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Variable name | |
| elementId | Yes | Part Studio element ID | |
| documentId | Yes | Document ID | |
| expression | Yes | Variable expression (e.g., '0.75 in') | |
| description | No | Optional variable description | |
| workspaceId | Yes | Workspace ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the basic operation but omits important behavior: whether it creates or updates, side effects, permissions needed, or error responses.
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, well-structured sentence that front-loads the key information without extraneous 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?
Given the lack of output schema and annotations, the description fails to provide return value expectations, error conditions, or behavioral details necessary for an agent to confidently 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?
Schema coverage is 100%, so the schema already describes each parameter. The description adds no new information beyond what the schema provides, meeting the baseline for high 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 the action ('Set or update') and the resource ('variable in a Part Studio variable table'), making the tool's purpose unambiguous and distinct from siblings like get_variables.
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, nor does it mention prerequisites or exclusions. For example, it doesn't clarify that get_variables is for reading variables.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transform_instanceA
Apply a RELATIVE transform to an assembly instance (inches and degrees). Note: fails on fixed/grounded instances — use get_assembly_positions to check the 'fixed' flag first.
| Name | Required | Description | Default |
|---|---|---|---|
| rotateX | No | X rotation in degrees | |
| rotateY | No | Y rotation in degrees | |
| rotateZ | No | Z rotation in degrees | |
| elementId | Yes | Assembly element ID | |
| documentId | Yes | Document ID | |
| instanceId | Yes | Instance ID to transform | |
| translateX | No | X translation in inches | |
| translateY | No | Y translation in inches | |
| translateZ | No | Z translation in inches | |
| workspaceId | Yes | Workspace ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the relative nature and the failure condition on fixed instances, which is key behavioral info. Could be improved by mentioning if it returns any value or has 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 sentences with no wasted words. First sentence states purpose and units, second provides critical behavioral note and alternative. Highly 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?
Given no output schema and 10 parameters, the description covers the most critical behavioral aspect (fails on fixed). It could mention whether the function returns success or the new position, but it is sufficient for safe 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% with individual parameter descriptions. The description adds high-level semantics by stating 'relative transform' and explicit units (inches and degrees), which contextualizes the parameters 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 clearly states the tool applies a RELATIVE transform to an assembly instance in inches and degrees. It distinguishes itself from siblings like set_instance_position by specifying 'relative' and including units.
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 states the tool fails on fixed/grounded instances and directs the user to use get_assembly_positions to check the 'fixed' flag first, providing clear when-not-to-use and alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a specific CAD operation (create, get, export, mate, etc.) with clear boundaries. Even similar tools like different mate types have detailed descriptions that distinguish them.
All tools use a consistent verb_noun snake_case pattern (e.g., create_extrude, get_body_details, set_variable), making them predictable for an agent.
45 tools is on the higher side but appropriate for a full-featured CAD server covering documents, part studios, assemblies, features, mates, and exports. The scope justifies the count.
Covers major CRUD operations and common CAD workflows (create, read, update, delete, export). Missing some edit operations on features beyond deletion, but core modeling and assembly tasks are well-supported.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
327 dev tools via REST API and MCP. Generate Dockerfiles, schemas, K8s, APIs, and more.
Composable APIs for document extraction, image transformation, and document & sheet generation.
Agent-first CAD: editable .kcad.ts source, deterministic review, OpenCASCADE kernel.
Remote MCP for 1,500+ APIs. Vault-managed credentials; OAuth or API key. Search, load, and execute.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact programmatically with Autodesk Fusion 360 for creating parametric 3D models through simple API calls.19
- FlicenseNot gradedqualityDmaintenanceEnables programmatic CAD modeling with Onshape through document discovery, parametric sketching, feature management, and gear creation.
- AlicenseBqualityBmaintenanceAn MCP server for parametric part modeling in Onshape, producing fully-defined, variable-driven sketches and features. It enables LLMs to create editable CAD models using semantic selection and geometrically grounded constraints.33MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to programmatically build, analyze, and export 3D CAD geometry using FreeCAD through REST or MCP tools.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/hedless/onshape-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server