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_instanceC
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?
With no annotations provided, the description carries the full burden of behavioral disclosure. It conveys that the operation mutates an assembly by adding an instance, but it does not explain side effects, required ownership, relationship between the two element IDs, or what happens if the part studio or assembly is already instanced. This is a meaningful gap for a mutating CAD operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no filler or redundancy. It is appropriately front-loaded, though it omits useful context that could make it more informative without much added length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This tool has six parameters, no output schema, and no annotations, yet the description provides only a one-line summary. It does not help an agent understand the document/workspace/element ID structure, the optional partId behavior, or how this operation differs from other assembly-related tools. The context is insufficient for confident correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well documented in the schema. The description adds only a high-level hint ('part or sub-assembly') that maps loosely to isAssembly, but it does not clarify the relationships among documentId, workspaceId, elementId, and partStudioElementId. Baseline 3 is appropriate given the schema's completeness.
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 ('Add') and the resource ('a part or sub-assembly instance to an assembly'), which is more specific than a mere restatement of the name. It implies differentiation from siblings like create_assembly, but does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance about when to use this tool versus alternatives such as create_assembly, transform_instance, or set_instance_position. There are no stated prerequisites, exclusions, or decision criteria, so an agent must infer usage from the tool name and schema alone.
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?
With no annotations provided, the description carries the full behavioral burden. It clearly discloses the coordinate semantics for each face, the fact that only the perpendicular axis moves, and that other axes remain unchanged. It does not cover persistence, mate effects, or error behavior, but the core operation is well disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler: purpose first, then a compact face/axis reference, then a key limitation. Every sentence earns its place and the most important constraint is clearly 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 six-parameter operation with no output schema, the description provides sufficient detail to invoke it correctly: what moves, against what, which axes, and what stays unchanged. It omits mention of return behavior or preconditions, but these are minor given the operation's specificity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all six parameters, so the baseline is 3. The description adds meaningful value by defining what each face enum value means in terms of min/max axes, helping the agent choose the correct face parameter. It also reinforces the roles of source and target instances.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Position'), a clear resource ('source instance'), a reference ('face of target instance'), and the expected result ('flush'). The face-to-axis mapping makes the intended operation unambiguous and distinguishes it from generic transform tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: use when a source instance should be placed flush against a specified target face. The statement that only the perpendicular axis moves implies that arbitrary or multi-axis positioning would need a different tool, though no alternative is explicitly named.
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 does reveal that the tool uses bounding box detection (a behavioral detail implying approximation) and states the return type (overlap and amount). However, it omits caveats such as the approximate nature of bounding boxes potentially leading to false positives/negatives, or any side effects (which are likely none, being a read-only check). The disclosure is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero wasted words. It front-loads the core purpose and immediately states the output. The structure is clean and efficient, making it easy to parse for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description must explain the return value. It does state the high-level result ('which parts overlap and by how much'), but it lacks detail such as the exact format (e.g., list of part IDs, units of overlap, behavior when no overlap exists). The tool is relatively simple, so this is a moderate gap, not a critical omission. The description is sufficient to understand the tool's function but not fully complete for precise invocation without additional inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter having a basic description ('Assembly element ID', 'Document ID', 'Workspace ID'). The tool description adds no additional meaning about how these parameters are used or their relationships, so it stays at the baseline of 3. No extra value is provided 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 a specific verb ('Check'), a resource ('assembly'), a method ('bounding box detection'), and the output ('which parts overlap and by how much'). This distinguishes it from siblings like get_bounding_box or measure, which have different purposes. The purpose is unambiguous and actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, such as needing to load the assembly first, nor does it suggest when this tool is preferable to measure or get_bounding_box. There is no exclusionary language or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_assemblyB
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?
There are no annotations, so the description carries the full burden of disclosing behavior. It states that this creates something, but does not mention side effects, permissions, reversibility, failure modes, or what happens to the assembly after creation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word contributes to understanding 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?
For a simple three-parameter creation tool with a fully described schema, the description is minimally adequate. However, it omits what the tool returns, whether success is indicated, and any behavioral constraints such as document existence requirements beyond the implied 'existing 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?
The input schema already documents all three parameters at 100% coverage. The description only adds the 'existing document' context and does not explain relationships such as whether workspaceId must match documentId or any naming constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Create') and a specific resource ('a new Assembly'), and scopes it to an existing document. This distinguishes it clearly from sibling tools like create_document and create_part_studio.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to choose this tool over alternatives, no exclusions, and no mention of related prerequisites beyond 'existing document.' It does not differentiate from create_document, create_part_studio, or add_assembly_instance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_booleanB
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 are provided, so the description must disclose behavioral traits, but it only says 'Perform a boolean operation.' It does not state whether this creates a new feature, modifies/destroys the target bodies, requires specific body ownership, or how the operation affects the existing modeling history. For a mutation tool, this is a meaningful 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, tightly written sentence that communicates the core operation and valid operation types without any filler. It is front-loaded with the action and resource and contains 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 7 parameters, 5 required fields, no annotations, and no output schema, the one-line description is not complete enough on its own. It omits the relationship between targetBodyIds and toolBodyIds, the expected result of each boolean type, any prerequisites such as body overlap, and what the tool returns or changes in the model.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already documented in the schema. The description adds little beyond restating union/subtract/intersect, which duplicates the booleanType enum. Thus a baseline 3 is appropriate; the schema is doing 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 action ('Perform a boolean operation') and the resource ('bodies'), and it enumerates the supported operation types (union, subtract, intersect), which is specific enough to distinguish it from sibling modeling tools like create_extrude or create_fillet. It does not name siblings explicitly, but the operation types make the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this tool should be used when a boolean combination of bodies is needed, based on the explicit operation types. However, it provides no explicit when-to-use or when-not-to-use guidance, no prerequisites, and no comparison to alternative feature-creation tools.
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 provided, so the description carries the full burden of behavioral disclosure, but it only restates the action. It does not mention that this modifies the Part Studio by adding a feature, whether existing features must already be present, what happens on execution, or whether it returns the created pattern's ID. For a mutation tool with zero annotation coverage, 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?
A single 11-word sentence with no filler, front-loaded with the verb 'Create'. Every word earns its place and the structure is optimally scannable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite being an 8-parameter tool with no annotations and no output schema, the description offers only a one-line purpose. It omits operational context such as the angle/count relationship, default behaviors (360 degrees, Z axis), prerequisites for featureIds, and what response to expect. The rich schema descriptions help but cannot fully compensate for missing execution 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 the schema already documents all 8 parameters, giving a baseline of 3. The phrase 'around an axis' adds slight semantic reinforcement to the axis/angle parameters, but the description otherwise does not enrich parameter meaning 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 uses a specific verb ('Create'), a clear resource ('a circular pattern of features'), and a mechanism ('around an axis'), making the basic purpose unambiguous. However, it does not explicitly differentiate itself from the sibling tool create_linear_pattern; only the word 'circular' carries that distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives. With 70+ sibling tools including create_linear_pattern, the agent receives no routing information about choosing circular vs linear patterning, what features must exist first, or when 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_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?
There are no annotations, so the description carries the full burden of behavioral disclosure. It only states the basic creation action and does not mention prerequisites like an existing sketch, the effect of operationType (NEW/ADD/REMOVE/INTERSECT) on geometry, or possible failure conditions. This is a significant gap for a mutating 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, front-loaded sentence with no wasted words: 'Create a revolve feature' comes first, followed by the mechanism. It is concise, though the brevity comes at the cost of omitting important usage and behavioral context.
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, 4 required inputs, no annotations, and no output schema, a one-sentence description is insufficient for an agent to call this tool correctly in all cases. The schema documents parameters, but the description does not explain preconditions, operation type behavior, or how this feature interacts with existing geometry.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well documented. The description adds minimal semantic value beyond reinforcing that a sketch is rotated around an axis, but it does not need to compensate because the schema handles the 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 a specific verb ('Create'), a specific resource ('a revolve feature'), and the defining mechanism ('rotating a sketch around an axis'). This distinguishes it from similar sibling tools like create_extrude and create_thicken, even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'rotating a sketch around an axis' implies the intended use case and naturally separates it from extrusion or thickening. However, it does not explicitly mention alternatives or state when not to use this tool, leaving the agent to infer selection criteria.
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_featureC
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?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does not state whether the deletion is permanent, whether permission is required, whether dependent features are affected, or what happens to the model afterward. 'Delete' implies destruction but the description adds no practical 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 clear sentence with no filler and places the core action first. It is concise, though it could have used the available space to add sibling differentiation or behavioral notes without much cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation tool with no annotations, no output schema, and a closely related sibling 'delete_feature_by_name', this description is under-specified. It does not explain how featureId relates to the deletion workflow, warn about irreversibility, or distinguish this tool from its sibling, leaving important context to inference.
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 input schema already documents all five parameters, including the elementType enum. The description adds little parameter-level meaning beyond confirming the target is a Part Studio or Assembly, which is the baseline expectation given complete schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Delete') and resource ('a feature from a Part Studio or Assembly'), making the core operation clear. However, it does not differentiate this tool from the sibling 'delete_feature_by_name', so an agent must inspect the schema to know that this variant deletes by feature ID.
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 'delete_feature_by_name' or any other alternative. The description only implies the target context (Part Studio or Assembly), but does not state prerequisites, exclusions, or conditions favoring a sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eval_featurescriptB
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?
With no annotations present, the description carries the full burden. It mentions 'read-only' which is a behavioral trait, but does not detail error handling, side effects, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and to the point, conveying the essential functionality without any unnecessary words or formatting issues.
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?
Since there is no output schema, the description could have mentioned what the evaluation returns, but the simple nature of the tool and the 'querying geometry' hint make it adequate. However, it lacks explicit details about expected results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides descriptions for all parameters, so schema coverage is 100%. The tool description adds no extra meaning beyond the schema, hence the 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 clearly states the tool evaluates a FeatureScript expression in a Part Studio, with a specific verb and resource. It distinguishes itself from the sibling 'write_featurescript_feature' by noting its read-only nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives. The phrase 'read-only, for querying geometry' provides some context but does not name or compare with other tools.
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_studiosB
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?
With no annotations, the description carries the burden of behavioral disclosure. It clearly implies a read-only search operation and mentions optional name filtering, but does not explicitly state that it makes no modifications or describe any result format or potential 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 sentence with no filler. The key scoping information (workspace, filtering by name) is front-loaded, and every word contributes to the meaning.
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 lookup tool, but there is no output schema and no explanation of what the returned elements look like. Ambiguity around whether 'Part Studio elements' means Part Studio tabs or elements inside a Part Studio also remains unresolved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all three parameters. The description only reinforces the existing namePattern filtering concept without adding substantial new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Find'), a resource ('Part Studio elements'), and a scope ('in a specific workspace, optionally filtered by name'). It conveys the core purpose adequately, though it does not explicitly contrast with siblings like get_elements or describe_part_studio.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as get_elements or search-related siblings. The description implies a narrow use case but never states exclusions or preferred conditions.
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?
No annotations are present, so the description is the sole safety signal. The verb 'Get' clearly conveys a read/query operation and explicitly mentions the returned content (instances and occurrences), but it does not disclose whether the result is hierarchical, flat, or includes additional details like transforms.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler, and every word contributes to the core meaning. It is concise, though slightly terse to the point of omitting useful contextual details.
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 call itself is simple, with three required ID parameters, and there is no output schema. The description gives a reasonable high-level understanding of the result, but it falls short of fully specifying the return structure or the exact meaning of 'instances and occurrences.'
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 documented in the schema at 100% coverage, so the schema already carries the semantic burden. The description adds no additional meaning or context for the IDs beyond what the schema provides, warranting the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Get' with a specific resource: 'assembly structure including instances and occurrences.' This meaningfully distinguishes it from sibling tools like get_assembly_positions or get_assembly_features, though the term 'structure' remains somewhat abstract.
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 mention of related tools with overlapping functionality. An agent must infer usage purely from the name and generic phrasing.
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?
With no annotations, the description must carry behavioral disclosure. It communicates that this is a read-only retrieval operation ('Get'), specifies the state dimension of returned features, and highlights diagnostic value. It does not mention edge cases or side effects, but nothing in the description suggests mutation or hidden consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action and resource, then adds a practical use case. Every clause earns its place without 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 tool is simple with three required, well-described parameters and no output schema. The description adequately conveys what is returned (features and their states) and why it is useful. It could be slightly more precise about the full structure of the returned data, but for the intended inspection/debugging use case it is sufficient.
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 already documented in the schema with clear descriptions, providing 100% coverage. The description does not add additional semantic detail about parameters beyond implying the assembly context, 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 operation: get all features from an assembly, with a specific output of current state values (OK, ERROR, SUPPRESSED). It names the resource type (assembly features) and includes example feature kinds (mates, mate connectors), which distinguishes it from the more generic sibling get_features.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use it: 'inspecting existing mates and debugging assembly issues.' It does not explicitly name alternatives or exclusions, but the intended use case is concrete enough to guide an agent.
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?
No annotations are provided, so the description carries the full disclosure burden. It clearly discloses the output scope ('all parts'), the key identifiers returned, and the conditional planar-face data, while the 'Get... Returns' phrasing implies a read-only operation. It does not mention coordinate frame, units, or response packaging, but for a non-destructive query tool this is reasonably transparent.
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 three sentences with no filler. The first sentence states the operation, the second specifies the return payload, and the third gives the practical downstream use. Every sentence earns its place, and the most distinguishing 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 simple read tool with three standard ID parameters and no output schema, the description gives a solid contract of what is returned and why it matters. It is missing the response structure and coordinate system context for the normal/origin values, which would be useful, but the tool is simple enough that the description is still largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents documentId, workspaceId, and elementId adequately. The description adds little beyond labeling the element as a Part Studio, which is helpful but not substantive new parameter semantics. Baseline 3 is appropriate given full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Get face-level geometry details for all parts in a Part Studio.' It goes beyond a generic label by enumerating the returned data (face deterministic IDs, surface types, planar normals and origins), which clearly differentiates it from part-level tools like get_parts and more specific ones like get_face_coordinate_system.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a use case by stating 'Use face IDs with mate connector tools,' which tells the agent the downstream purpose of the output. However, it does not explicitly state when to choose this tool over alternatives such as get_parts or get_face_coordinate_system, nor does it give exclusions or conditions.
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?
With no annotations, the description carries full responsibility for behavioral disclosure. It only states what the tool returns conceptually, but does not mention units, coordinate frame, axis-aligned versus tight box details, read-only nature, or behavior with hidden/empty parts. It is not misleading, but it is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no filler. It front-loads the action and object, and every word contributes to meaning.
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?
There is no output schema and no annotations, so the description should explain what the response looks like (e.g., bounding box corners, units, coordinate system). It does not, leaving an agent uncertain how to consume the result. The required IDs are fully documented in the schema, but the output side is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameters (documentId, workspaceId, elementId) already have plain descriptions in the schema. The description adds no extra parameter context, which is acceptable given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly names the action ('Get') and the resource ('tight bounding box of all parts in a Part Studio'). It is specific enough to convey the core intent, though it does not differentiate itself from related siblings like get_body_details or measure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as measure, get_mass_properties, or get_body_details. There are no exclusions, prerequisites, or conditions stated, so the agent must infer usage context.
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?
No annotations are provided, so the description carries the full burden of disclosing behavior. It only says 'Get detailed information' without stating whether this is a read-only operation, whether it has side effects, or any additional behavioral context 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?
The description is a single concise sentence with no redundant words. It efficiently conveys the tool's purpose without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple input and lack of output schema, the description is adequate for basic understanding. However, it could be more complete by specifying what 'detailed information' entails (e.g., metadata, properties, sketches), especially considering the variety of document types implied by 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?
The schema covers 100% of the single parameter (documentId) with a description 'Document ID'. The tool description adds no further meaning beyond the schema, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'Get' and resource 'document', with 'detailed information' implying a comprehensive retrieval. It distinguishes from siblings like get_document_summary and list_documents by suggesting more depth, though it could be more explicit about what 'detailed' includes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as list_documents, search_documents, or get_document_summary. There is no mention of scenarios or trade-offs.
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 provided, so the description carries the full burden of disclosing behavior. It indicates a read operation but does not clarify what a 'comprehensive summary' actually contains, whether it aggregates data, how large the response might be, or whether any side effects or limitations apply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. It communicates the core purpose efficiently, though the word 'comprehensive' is vague and could be replaced with more specific detail without harming 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?
With no output schema and no annotations, the description should explain what the tool returns and how an agent should interpret the result. It only says 'comprehensive summary' and that workspaces and elements are included, leaving the exact return structure and meaningful distinctions from other getters unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage by describing documentId as 'Document ID', so the baseline is 3. The description adds no additional meaning about the parameter, but none is really needed for such a simple single-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'comprehensive summary of a document', and adds scope with 'including all workspaces and elements'. It is understandable and distinct from a plain document fetch, though it does not explicitly differentiate it from sibling tools like get_document or 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?
There is no guidance on when to use this tool versus alternatives such as get_document, get_elements, or list_documents. The description does not mention scenarios, exclusions, or relationships to sibling tools, so an agent must infer when this summary is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_elementsB
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?
No annotations are provided, so the description carries the full burden of disclosing behavior. It only says it returns elements and does not mention whether the response is paginated, how the elementType filter behaves, whether unsupported types are ignored or error, what fields each element contains, or how the result relates to element IDs used by other tools.
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, readable sentence that front-loads the main action and resource. It is concise, though it slightly underspecifies behavior; still, no filler or repetition exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the tool is moderately complex: it may return heterogeneous element types and supports an optional filter. The description does not explain the return structure, pagination, or relationship between element types and the optional filter, leaving an agent to guess at important invocation and interpretation details.
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 three parameters. The description adds a little context by naming example element types and clarifying that elementType is an optional filter, which aligns with the schema's wording but does not add significant new meaning beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('all elements') within a workspace, listing examples like Part Studios and Assemblies. However, it does not clearly distinguish itself from sibling tools such as find_part_studios or get_parts, which could overlap in an agent's decision-making.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the tool for fetching broad element lists from a workspace, but it provides no explicit guidance on when to choose it over find_part_studios, get_features, or get_assembly. No alternatives are named and no exclusion criteria are given.
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?
There are no annotations, so the description carries the burden of explaining behavior. It discloses that the tool queries, returns a guaranteed outward normal, tangent axes, and origin, and claims improved reliability over body details normals. The 'Query' framing strongly implies a read-only operation, though it does not explicitly state side-effect absence or error 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 three concise sentences with no filler. It front-loads the core purpose, then gives the return contents, a reliability comparison, and a concrete use case. Every sentence contributes useful 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?
With no output schema, the description compensates by naming the returned elements (normal, tangent axes, origin) and the intended usage context. It could be slightly more explicit about the coordinate frame's reference or failure cases, but it is sufficient for an agent to understand what to expect and why to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has 100% coverage with individual descriptions for all five required parameters. The tool description adds no additional parameter-level detail, so it stays at the baseline without needing to compensate for schema gaps.
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 specific action ('Query'), the exact resource ('outward-facing coordinate system for a face on an assembly instance'), and enumerates the returned values (Z-axis, X/Y axes, origin). It also distinguishes itself from the sibling get_body_details by claiming greater reliability for normals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit use case: 'Use this to verify face orientations before creating mates.' It also contrasts with body details normals as an alternative. It does not explicitly state when not to use the tool, but the context and comparison provide clear practical guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_featuresC
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, so the description must disclose behavioral traits. It only says 'Get', implying a read operation, but does not explicitly mention safety, side effects, or response characteristics. This is a significant gap given the absence of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no fluff, front-loading the action. However, it is under-specified for a tool with no output schema, though the conciseness itself is 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?
The tool has no output schema and no annotations, so the description should explain return values and any limitations. It only states the action, leaving out response details, error conditions, and the exact scope of 'features'. This is incomplete for an agent to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter documented (elementId, documentId, workspaceId). The description adds no additional parameter meaning beyond the schema, so it meets the baseline of 3 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 states 'Get all features from a Part Studio', providing a specific verb and resource. It distinguishes from siblings like get_parts and get_assembly_features by targeting features within a Part Studio, though it does not elaborate on what constitutes a feature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided regarding when to use this tool versus alternatives such as get_elements or get_parts. The description gives no context on selection criteria, exclusions, or when a different tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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?
With no annotations, the description carries the burden of behavioral disclosure. It clearly indicates a read-only fetch operation and the scope of what is returned ('all parts'), but it does not mention what part data is included, whether there are filtering limitations, or how the results are structured.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the action and target clearly with no wasted words. It is appropriately sized for a simple getter 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?
The description is adequate for a straightforward fetch operation and correctly identifies that the target must be a Part Studio element. However, with no output schema and no mention of return value shape or limitations, an agent has only a minimal understanding of what result to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters are fully described in the input schema with 100% coverage, so the schema carries the parameter documentation burden. The description adds no additional semantic detail 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 identifies the operation ('Get all parts') and the target resource ('a Part Studio element'), making the tool's purpose easy to understand. However, it does not explicitly distinguish itself from sibling tools like get_elements or describe_part_studio, which also operate on documents and 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?
The description provides no guidance on when to use this tool versus alternatives such as get_elements or list_entities. There are no exclusions, prerequisites, or contextual hints beyond the phrase 'from a Part Studio element', which only implies the type of target element.
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_documentsB
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, so the description carries the behavioral burden. The verb 'list' implies a read-only operation and the description mentions optional filtering and sorting, but it does not disclose whether the result includes shared documents, how pagination works with the limit parameter, or what the return structure looks like. It is not misleading, but it is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with the action and resource front-loaded. There is no filler or redundant restatement of the tool name, and it earns its place by adding the filtering/sorting qualifier.
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, all four parameters are optional and fully documented in the schema, and this is a read-oriented list operation. However, with no output schema and no mention of pagination, default limit behavior, or how results are scoped to 'your account', the description is only minimally complete for a tool an agent must invoke reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter having a name, type, enum or default, and description. The tool description only adds high-level 'optional filtering and sorting' language and no extra detail beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'List documents' in your Onshape account, with optional filtering and sorting. It is not a tautology and clearly distinguishes from create/get/delete tools, but it does not explicitly differentiate from the sibling search_documents, which may also return document listings.
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 about when to use this tool versus alternatives like search_documents, get_document, or get_document_summary. The description implies a broad listing use case but provides no exclusions, prerequisites, or selection criteria.
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?
There are no annotations, so the description must carry the full behavioral burden. It only says 'Search for documents by name or description' without disclosing whether it returns summaries or full documents, how matching works, whether results are paginated, or any other operational 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?
The description is a single, front-loaded sentence with no filler or redundant content. Every word contributes to the tool's purpose, making it easy for an agent to process quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool, the description is minimally viable: it tells the agent what to search and on which fields. However, it omits any mention of result format or matching behavior, and with no annotations or output schema, an agent may still be uncertain what the call 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?
The schema already documents both parameters with 100% coverage, and the description adds value by clarifying that the query string applies to both 'name' and 'description' fields. The limit parameter remains self-explanatory, but the description meaningfully enriches the query semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Search') on a clear resource ('documents') with a defined scope ('by name or description'). This distinguishes it from siblings like list_documents or get_document, though it does not explicitly name the alternative tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus list_documents, get_document, or get_document_summary. The usage context is only implied by the word 'search', so an agent gets no explicit help choosing among the many document-related siblings.
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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
45 tool updates
v0.3.0- First observed
add_assembly_instance - First observed
align_instance_to_face - First observed
check_assembly_interference - First observed
create_assembly - First observed
create_boolean - First observed
create_chamfer - First observed
create_circular_pattern - First observed
create_cylindrical_mate - First observed
create_document - First observed
create_extrude - First observed
create_fastened_mate - First observed
create_fillet - First observed
create_linear_pattern - First observed
create_mate_connector - First observed
create_part_studio - First observed
create_revolute_mate - First observed
create_revolve - First observed
create_sketch_arc - First observed
create_sketch_circle - First observed
create_sketch_line - First observed
create_sketch_rectangle - First observed
create_slider_mate - First observed
create_thicken - First observed
delete_feature - First observed
eval_featurescript - First observed
export_assembly - First observed
export_part_studio - First observed
find_part_studios - First observed
get_assembly - First observed
get_assembly_features - First observed
get_assembly_positions - First observed
get_body_details - First observed
get_bounding_box - First observed
get_document - First observed
get_document_summary - First observed
get_elements - First observed
get_face_coordinate_system - First observed
get_features - First observed
get_parts - First observed
get_variables - First observed
list_documents - First observed
search_documents - First observed
set_instance_position - First observed
set_variable - First observed
transform_instance
TDQS
Scored across 45 tools
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.
144 deterministic file tools: PDF, image, media, convert, analyze. Connect in one click (OAuth).
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.-
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to programmatically build, analyze, and export 3D CAD geometry using FreeCAD through REST or MCP tools.1MIT
- FlicenseNot gradedqualityBmaintenanceEnables control of a live SOLIDWORKS session through the Windows COM API, providing native sketch, feature, body, reference-geometry, view, probe, and export operations, along with transactional CAD plans, parametric sketches, multibody tools, and deterministic raster-to-sketch vectorization pipelines.-