Skip to main content
Glama
NejcDvorsek

SolidWorks MCP

by NejcDvorsek

sw-mcp

PyPI License: MIT

Let an AI agent (Claude, or any other MCP client) design parts, assemblies and drawings in your own SolidWorks, and check its own work as it goes. After every step it measures the result, so it can compare it with what you asked for and fix mistakes instead of guessing.

sw-mcp is a fork of SolidWorks-MCP by Henk Jan Baard and the SolidWorks connector of Jig. It works with any MCP client.

What it can do

  • Parts: sketches, extrudes, revolves, sweeps and lofts; holes, threads, slots and pockets on any face; fillets, chamfers, shells, ribs, patterns and mirrors. Every sketch is fully defined, so the part stays editable.

  • Checking: each step reports volume, mass and size; dimensions and mates are measured back. A step that can't be done fails with a clear reason instead of producing wrong geometry. read_model reads a whole part for a review in one call: holes with their sizes, internal radii, sharp inside corners, setups, thin walls and draft.

  • Sheet metal: base flanges (flat tabs or bent L, U and Z sections) and edge flanges with your thickness, bend radius and K-factor; the flat blank's size, and the flat pattern with bend lines exported to DXF for laser cutting. Closed corners, ready to weld.

  • Welds and weldments: weld beads between bodies, full or intermittent; frames of library tube, pipe, angle and channel profiles with mitred or butted corners, end caps and gussets; the cut list with each member's length and the total weld length.

  • Assemblies: insert and place components, mate them, swap parts, check interference and step joints through their range of motion.

  • Drawings: ISO sheets with a title block, views, sections and details, dimensions, hole callouts, surface finish and GD&T symbols, tables, and export to PDF, DXF or DWG. Sheet metal parts get their flat pattern with bend lines, bend notes and the blank's size; welded parts their weld symbols and cut list.

  • Your own parts: open existing parts and STEP files, change dimensions and equations, set materials, and build on sketches you drew.

  • 3D printing and export: STEP, STL and 3MF export, screenshots, printability checks, and comparing a part with a scanned mesh.

Related MCP server: solidworks-mcp

Get started

  1. Install uv.

  2. Start SolidWorks and leave it open.

  3. Add the server to your MCP client. In Claude Code:

    claude mcp add solidworks -- uvx sw-mcp
    {
      "mcpServers": {
        "solidworks": {
          "command": "uvx",
          "args": ["sw-mcp"]
        }
      }
    }

    With Jig there is nothing to add: the plugin starts sw-mcp itself.

  4. Ask for a part:

    Design a 100 × 80 × 8 mm mounting plate with a Ø16 mm centre bore, four counterbored M5 holes 12 mm from the corners and R5 corners. Then export an STL.

    Or a sheet metal one:

    Make a 2 mm steel tray, 80 × 50 mm, with 20 mm flanges on the long sides and an inner bend radius of 3 mm. Give me the flat pattern as a DXF and a drawing as a PDF.

    Or a welded frame:

    Weld a 600 × 400 mm frame of 30 × 30 × 2.6 square tube with mitred corners, cap the open ends, and give me the cut list and a drawing.

Requirements

  • Windows with SolidWorks installed and running. The server connects to the open SolidWorks; it doesn't start it.

  • Tested on SOLIDWORKS 2026. 2020 and newer should work but are untested.

  • To check your setup, run this with SolidWorks open. It builds a few small test parts and closes them without saving:

    uvx sw-mcp --selftest

Good to know

  • Early version (0.x): it works end to end, but tool names may still change. See the changelog.

  • Local: it talks only to the SolidWorks on your computer and makes no network calls.

  • Scripts are on by default: run_script runs any Python it's given on your computer. Start the server with --no-scripts to turn it off.

  • Multibody parts: face and edge tools only see the first body; read_model reads them all.

Help and feedback

Something not working? Open a bug report with the output of uvx sw-mcp --selftest. Running a SolidWorks version other than 2026? A compatibility report helps, whether it worked or not.

Credits and license

MIT, see LICENSE. The original server is by Henk Jan Baard (hjbaard/SolidWorks-MCP); this fork is maintained by Nejc Dvorsek.

Available Tools

91 tools
activate_documentA

Make an open document current again by its title, also a new one that was never saved.

For after open_document / close_document on another document; list_documents gives the titles.

NameRequiredDescriptionDefault
titleYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full load it can: it discloses that this is a focus/activation action on documents that are already open, including never-saved ones, which is genuinely useful behavioral context. It does not say whether unsaved edits survive, whether the operation can fail on a bad title, or how ambiguous duplicate titles are resolved, leaving real gaps for a zero-annotation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the core action front-loaded and the disambiguation hint immediately after. The phrase 'also a new one that was never saved' is grammatically awkward and costs a re-read, but nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with no output schema, the description covers the action, the parameter source, and the surrounding workflow with open/close/list_documents. The remaining omissions (failure on unknown title, duplicate titles) are minor for what is effectively a window-focus operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the lone 'title' property has no description, so the description must compensate. It does, by stating the lookup is 'by its title' and by directing the agent to list_documents for valid titles, which tells the agent the expected format and source of the value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Make an open document current again by its title') and implicitly distinguishes itself from open_document/close_document by naming them as different operations. The clause 'also a new one that was never saved' is a bit muddled but signals the tool targets already-open documents rather than opening new ones.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use it 'after open_document / close_document on another document', giving a concrete triggering condition, and points to list_documents as the source of valid titles. It stops short of stating what happens when the document is already current or when no match exists, so it is clear context rather than full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_axisB

A reference axis anywhere: through=[[x, y, z], [dx, dy, dz]] (point and direction, model mm) or where two planes meet (planes=['Plane1', 'right']).

Patterns turn about it by name (add_circular_pattern(axis=...)).

NameRequiredDescriptionDefault
nameNo
planesNo
throughNo

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It explains axis definition syntax and that the axis can be referenced by name in add_circular_pattern, but it does not state mutation/persistence behavior, validation rules when neither or both definition forms are supplied, or what happens on failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is compact and front-loads the two construction methods, with no wasted sentences. The opening phrase "A reference axis anywhere" is slightly indirect, but the parameter examples and downstream usage note are efficiently stated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter CAD modeling tool with no annotations, no output schema, and 0% schema description coverage, the description covers the two main geometric inputs but omits the name parameter, optionality behavior, and constraints when both through and planes are provided. It is adequate to attempt a call but leaves meaningful gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate; it does this well for through (point and direction in model mm with an example) and planes (two named planes with an example). It leaves the name parameter unexplained and does not clarify mutual exclusivity or defaults for through/planes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource as a reference axis and gives the two defining constructions. It lacks an explicit verb such as "creates" and does not differentiate this from the sibling add_plane tool, but the axis-specific purpose is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies usage by showing the through-point/direction form and the intersecting-planes form, and notes that patterns can rotate about the axis by name. It does not explicitly say when to use this versus add_plane or when one construction form is preferable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_boss_on_faceA

Grow a round boss (standoff, peg) height_mm out of ANY planar face, centred at (x, y, z) mm.

The face is found as for add_hole with face=. For a PCB standoff, add a blind hole in its top. Returns mass properties and dimensions.

NameRequiredDescriptionDefault
faceYes
nameNoBoss
x_mmYes
y_mmYes
z_mmYes
height_mmYes
diameter_mmYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It usefully discloses that the result includes mass properties and `dimensions`, and notes a special PCB-standoff blind-hole behavior, but it omits mutation effects, active-document requirements, permissions, and failure/constraint behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded: the core action, dimensions, and face behavior come first, followed by a useful PCB-standoff note and return-value note. There is essentially no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a 7-parameter CAD mutation tool with no annotations, no output schema, and 0% schema description coverage. The description mentions only part of the parameter set and does not cover constraints, document state, or all behavioral expectations, so it is not complete enough for the complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains height_mm, x/y/z centering, and face selection by analogy to add_hole, but it does not document diameter_mm or the optional name parameter, and gives no constraints or format details for face.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: grow a round boss/standoff/peg from a planar face at explicit coordinates. It clearly distinguishes the operation from siblings such as add_hole, add_cylinder, or add_disc by naming the resulting feature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a concrete PCB-standoff use case and says face selection follows add_hole with face=, which implies when the tool is appropriate. However, it never explicitly says when to use this instead of add_cylinder, add_extruded_profile, or add_hole, nor does it state exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_boxA

Add a rectangular block: sketch width x height on the first plane, extrude by depth.

Dimensions are in millimetres. Returns the created feature name, the addressable depth dimension ('D1@'), dimensions (width, height, depth; for set_dimension) and the resulting mass properties.

NameRequiredDescriptionDefault
nameNoBlockExtrude
depth_mmYes
width_mmYes
height_mmYes

TDQS

A4/5.0
Behavior4/5

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 discloses the creation/extrusion workflow, units in millimetres, the returned feature name, the depth dimension handle 'D1@<name>', and the dimensions structure for set_dimension. It does not mention preconditions like needing an active part, but the main behavioral contract is clearly stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the first sentence states the core action and method, while the second provides only high-value details about units and return values. Every sentence earns its place with no redundant wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple primitive shape, four parameters, and no output schema, the description is nearly complete: it covers operation, units, return values, and an integration hint for set_dimension. It could be more explicit about the active-part requirement, but the essential call context is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It usefully explains that dimensions are in millimetres and maps width/height to the sketch and depth to the extrusion. However, the optional 'name' parameter is not explicitly described, and the meaning of the returned 'dimensions' array is mentioned only as output context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: 'Add a rectangular block', then details the construction method (sketch width x height, extrude by depth). This clearly distinguishes it from sibling primitive tools like add_disc, add_cylinder, and add_extruded_profile.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied by the 'rectangular block' phrasing, so an agent can infer it is for box-like solids. However, there is no explicit guidance on when to prefer this tool over alternatives like add_extruded_profile, nor any mention of exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_chamferB

Chamfer edges of the current part: distance_mm back along a face, at angle_deg (default 45°) to it.

edges: "all" (default), "x"/"y"/"z", a face outline like "+z:outline", a feature's edges like "feature:Boss", or explicit indices like "2,5" from list_edges. Another angle than 45° needs from_face, which way the face that the distance runs along faces: "-z", angle_deg=60 makes an underside edge printable without support (round an arc the chamfer is a cone). Returns the number of edges chamfered and the mass properties.

NameRequiredDescriptionDefault
nameNoChamfer
edgesNoall
angle_degNo
from_faceNo
distance_mmYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full burden. It discloses the geometric outcome ('round an arc the chamfer is a cone') and the return payload ('number of edges chamfered and the mass properties'), which is real added value, but says nothing about whether the operation mutates/marks the part destructively, permissions, or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Information density is high and nothing is pure filler, but the second sentence is a run-on that mixes the from_face rule, an example, and a parenthetical fragment ('round an arc the chamfer is a cone') in one breath. The core action is front-loaded, but the parameter guidance is harder to parse than it needs to be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly reports the return value, and with no annotations it is the only source of behavior — yet it omits the name parameter and any statement about mutating the active part. Adequate for calling it, but not complete for a 5-parameter, annotation-free mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it largely does: it documents distance_mm ('distance back along a face'), angle_deg's default and its dependency on from_face, from_face's meaning and format ('-z'), and the full selector grammar for edges. The name parameter is left entirely unexplained, which keeps it out of 5 territory.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Chamfer edges of the current part') and the geometry it operates on, so an agent immediately knows this is the edge-chamfering operation. It never names or contrasts with the closely related siblings add_fillet and add_full_round, which is what would have earned a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides conditional usage rules for the tool itself — 'Another angle than 45° needs from_face' and the printable-underside example at angle_deg=60 — which is genuinely helpful. It gives no guidance on when to choose chamfer over add_fillet/add_full_round or what document state is assumed, so usage is only implied relative to alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_circular_patternA

Repeat a feature count times evenly around 360° about an axis.

The axis is the cylindrical face nearest (center_x_mm, center_y_mm) — e.g. a centre hole drilled there — or axis='y' (a model axis through the origin: revolved parts turn about y) or a reference axis by name (add_axis). feature_name defaults to the last feature. Bolt circle: drill a centre hole

  • one bolt hole, then pattern the bolt hole. angle_deg < 360 spreads the instances over that angle, first to last (with axis=).

NameRequiredDescriptionDefault
axisNo
countYes
angle_degNo
center_x_mmNo
center_y_mmNo
feature_nameNo

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full behavioral burden. It discloses defaults (feature_name defaults to last feature, angle_deg default 360), axis resolution logic, and angle_spread semantics, which is meaningful. However it says nothing about return values, failure modes (e.g. missing feature/axis), or side effects on the feature tree.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action in the first sentence, then parameter detail and a workflow example. Dense but nearly every clause carries information; minor density in the axis sentence slightly hurts scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-param mutation tool with no annotations and no output schema, parameter semantics are well covered, but the description omits what is returned and error/precondition behavior, leaving an agent guessing about outcomes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate and does: it explains axis (nearest cylindrical face to center, 'y', or a named reference axis), the role of center_x_mm/center_y_mm, feature_name defaulting, and angle_deg<360 spread behavior, with count defined in the opening sentence.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Repeat a feature count times evenly around 360° about an axis.' It is clearly distinguishable from add_linear_pattern and add_mirror by the circular/angular scope, though it doesn't explicitly name those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete usage recipe (bolt circle: drill a centre hole plus one bolt hole, then pattern the bolt hole) and explains axis selection choices. It lacks explicit when-not-to-use guidance or a direct contrast with add_linear_pattern, so it stops short of 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_coneA

Create a cone/frustum by revolving a trapezoidal profile 360°.

top_diameter_mm = 0 gives a full cone. Returns mass properties (volume = π·h/3 · (rb² + rb·rt + rt²)). Use new_document first.

NameRequiredDescriptionDefault
nameNoRevolve
height_mmYes
top_diameter_mmYes
bottom_diameter_mmYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full behavioral burden. It does valuable work by disclosing that mass properties are returned and spelling out the volume formula, and by hinting that it operates on the active document. It does not say whether the result is a new body or a merged feature, what happens with invalid diameter combinations, or anything about units failure modes beyond the _mm suffixes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short lines, front-loaded with the verb and construction method, then the edge-case rule, then the return contract. The formula earns its place because it tells the agent what to expect back without an output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple primitive-creation tool with no annotations and no output schema, the description covers what is built, the degenerate case, and the return payload well enough to call it correctly. The only real gap is the unexplained 'name' parameter and the absence of any statement about whether the solid is added as a new body in the active document.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It partially does: the 'top_diameter_mm = 0' rule gives real semantics for that parameter, and the volume formula's rb/rt/h implicitly map to bottom_diameter_mm, top_diameter_mm, and height_mm. The fourth parameter, name (default 'Revolve'), is never explained, so coverage remains incomplete for a 4-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a cone/frustum') plus the exact construction method ('revolving a trapezoidal profile 360°'), which cleanly separates it from siblings like add_cylinder, add_disc, and add_revolved_profile. The clarifying rule 'top_diameter_mm = 0 gives a full cone' removes the only ambiguity about what shape results.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use new_document first' is a genuine prerequisite that helps sequencing, but there is no guidance on when to pick this over add_cylinder, add_disc, or the more general add_revolved_profile, and no exclusion for cases where a frustum is degenerate (e.g. top > bottom).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_cylinderB

Create a cylinder by revolving a profile 360° about an axis.

The first revolve-based primitive. Returns the resulting mass properties (volume = π · r² · h). Use new_document first.

NameRequiredDescriptionDefault
nameNoRevolve
height_mmYes
diameter_mmYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry behavioral burden: it discloses a prerequisite (new_document) and claims the return includes mass properties. It omits what document/body the feature lands in, whether the axis/orientation is fixed, and whether it errors without an active document, so the disclosure is partial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short and front-loaded, with the core action in the first sentence and the prerequisite last. The line 'The first revolve-based primitive' is trivia that earns little place, but the padding is minor.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with zero annotations, no output schema, and 0% parameter coverage, the description is thin: no units semantics beyond suffixes, no document-state requirement details, no indication of what the volume/mass claim implies versus the separate get_mass_properties tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must explain all three parameters. It implies height via 'h' and radius via 'r', but the required input is diameter_mm, and the description never reconciles diameter with the radius in the volume formula; the 'name' parameter (default 'Revolve') is entirely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource plus the construction method ('Create a cylinder by revolving a profile 360° about an axis'), which helps distinguish it from add_disc or add_cone. The sibling set is large but the geometry description is enough to distinguish it from add_extruded_profile or add_loft.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives one explicit prerequisite ('Use new_document first'), which is genuinely useful. However, it never says when to pick this over add_disc/add_cone or the generic add_revolved_profile, so the agent must infer alternatives from names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_dimensionA

Dimension in a view between references, or the size of one.

ref / to: 'edge:-x' (the face facing -x, seen edge-on), 'hole:CBore1' (its centre; alone its diameter), 'feature:CornerFillet' (alone: its radius), or a model point [x, y, z] (the edge nearest it). style 'single' (ref to to), or 'baseline' / 'chain' / 'ordinate' with to=[ref, ref, ...] measured from ref. direction 'auto', 'horizontal', 'vertical', 'aligned'. side 'below', 'above', 'left', 'right' (default nearer the geometry); offset_mm from the outline (default the first free row: 10, 18, 26 ...). Returns ids, values, boxes, and warnings on overlaps.

NameRequiredDescriptionDefault
toNo
refYes
sideNo
viewYes
styleNosingle
directionNoauto
offset_mmNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and does disclose useful behavior: default side placement ('nearer the geometry'), default offset row progression (10, 18, 26 ...), and an explicit return payload of ids, values, boxes, and overlap warnings. It stops short of stating that this is a persistent mutation, whether it is undoable, or what error conditions exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but front-loaded: the core purpose is in the first sentence, followed by parameter semantics in a compact order. The telegraphic phrasing ('its centre; alone its diameter') occasionally reads like notes rather than prose, but no sentence is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter mutation tool with zero schema description coverage and no annotations, the description covers most of what an agent needs: accepted reference syntaxes, style/direction/side vocabularies, placement defaults, and return contents. The unexplained required 'view' parameter and absent error/prerequisite behavior leave a real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it largely does: ref formats ('edge:-x', 'hole:CBore1', 'feature:CornerFillet', model point [x, y, z]), to, style, direction, side, and offset_mm all get concrete value semantics and defaults. The required 'view' parameter is never explained — no format, no statement of what a view identifier is.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action and resource: adding a dimension in a view between references, or a size of one. The scope (single span vs. series) is enumerated. It does not explicitly distinguish itself from siblings like set_dimension, list_dimensions, or import_dimensions, so an agent must infer the difference from the verb alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives strong in-tool guidance for choosing a style ('single' with ref/to vs. 'baseline'/'chain'/'ordinate' with to=[ref, ref, ...] measured from ref) and sensible defaults for side and offset. However it never says when to use this tool rather than set_dimension or import_dimensions, nor any prerequisite such as requiring an existing drawing view.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_discA

Create a disc/puck/flange: a circle extruded along +Z, centred at (x_mm, y_mm).

Flat faces are +Z/-Z, so add_hole and add_circular_pattern compose with it (round-flange bolt circles). The centre defaults to the origin; off it, its x and y are dimensions. Returns mass properties. Use new_document first.

NameRequiredDescriptionDefault
nameNoDisc
x_mmNo
y_mmNo
diameter_mmYes
thickness_mmYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and discloses key behavior: the disc is centered by default at the origin, off-origin x/y are treated as dimensions, flat faces are +Z/-Z, and the tool returns mass properties. It does not detail failure modes or document-modification side effects, but it covers the essential behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core geometry definition, followed by composition guidance and a prerequisite. Every sentence adds useful information with no repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 5 parameters, no output schema, and no annotations. The description covers creation, orientation, coordinate semantics, composition, prerequisite document state, and return values ('mass properties'), which is nearly complete for this primitive, though parameter-level details for all five parameters are not fully spelled out.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains x_mm/y_mm centering semantics and implies diameter/thickness through 'circle extruded along +Z', but it does not explicitly describe diameter_mm, thickness_mm, or the name parameter beyond what their titles suggest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Create a disc/puck/flange: a circle extruded along +Z'. It also specifies orientation and centering, so an agent can distinguish this primitive from generic extrusion or other add_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear context: 'Use new_document first' and notes that add_hole and add_circular_pattern compose with it for round-flange bolt circles. It does not explicitly say when to prefer this over add_cylinder or add_extruded_profile, but the intended use case is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_extruded_profileA

Extrude a closed polygon into a solid; it is auto-closed.

  • Default: points_mm = [[x,y], ...] on the first plane (same as add_box), extruded by depth_mm along +Z. rotate_deg turns the profile counterclockwise about about_mm ([x, y], the origin by default) first: draw a crank or a lug straight, then set it at its angle. spline=True runs a smooth closed spline through the points instead (organic shapes).

  • face='+z' (or '-x', ...): a boss grown out of ANY planar face; points_mm = [[x,y,z], ...] on that face (the face facing that way through them, as for add_hole). For pads, ledges, mounting blocks.

  • plane='Plane1' (add_plane, or 'front'/'top'/'right'): points_mm = 3D [x, y, z] points ON the plane (origin + u x_axis + v y_axis from add_plane); depth_mm along its normal, the other way with reverse=True.

corner_radii_mm rounds the corners with real sketch fillets: one radius for all, or one per vertex (0 = sharp); equal radii share one dimension ('radius', else 'r'). draft_deg tapers the walls inwards as they rise (negative: outwards), a dimension 'draft' (a moulded boss, a printable taper). merge=False keeps the result a separate body: list_bodies, combine_bodies. An argument that does not go with the variant is refused. Returns mass properties (volume = polygon area * depth; a right-angled corner of radius r loses r^2 (1 - pi/4), a concave one gains it).

NameRequiredDescriptionDefault
faceNo
nameNo
mergeNo
planeNo
splineNo
reverseNo
about_mmNo
depth_mmYes
draft_degNo
points_mmYes
rotate_degNo
corner_radii_mmNo

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does so well: it discloses auto-closing, rotation convention, spline smoothing, reverse extrusion, argument/variant rejection, and merge=False producing a separate body. It also explains the return value (mass properties) and even the volume formula, which is unusually transparent 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core operation, then organized into bulleted variants and parameter notes. It is long, but the length is largely justified by 12 undocumented parameters; some dense parentheticals and the corner-volume formula could be trimmed without losing much.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex 12-parameter tool with no annotations, no output schema, and 0% schema description coverage, this is nearly complete: it covers geometry, variant behavior, merge behavior, and return values. The remaining gap is the undocumented 'name' parameter and the description's reliance on the caller knowing add_box/add_hole/add_plane conventions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: it explains points_mm formats for all three modes, depth_mm direction, rotate_deg/about_mm, spline, face and plane semantics, reverse, corner_radii_mm formatting and dimension naming, and draft_deg sign behavior. Only the 'name' parameter is left unexplained, which is a minor gap against 12 parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Extrude a closed polygon into a solid; it is auto-closed.' It also distinguishes the three operating modes (default plane, face, named plane) and names related siblings such as add_box and add_plane for orientation. An agent can tell this is profile extrusion, not box/disc/cylinder creation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear when-to-use context for each variant: default for first-plane profiles, face='+z' for bosses/pads/ledges/mounting blocks, plane='Plane1' for plane-defined profiles. It also points to list_bodies/combine_bodies when merge=False, but does not explicitly say when to prefer siblings like add_boss_on_face or extrude_sketch over this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_extruded_slotB

Extrude a stadium (rounded tab, lug or link) from point start_mm to end_mm ([x, y] mm).

The half-round ends are centred on the two points themselves; width_mm is the tab's width, depth_mm the extrusion along +Z. Volume = (width * length

  • pi * (width/2)^2) * depth. Returns mass properties.

NameRequiredDescriptionDefault
nameNoSlot
end_mmYes
depth_mmYes
start_mmYes
width_mmYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and partially meets it: it discloses the return value ('Returns mass properties'), the geometric semantics of the half-round ends, and a volume formula. It does not state whether the extrusion is unioned into an existing body, whether it is additive vs. subtractive, or any failure conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core verb and shape, then tight parameter semantics. The volume formula is arguably extra but earns its place by pinning down exactly how width/length/depth combine.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema or annotations exist, and the description covers geometry and return value reasonably well. It leaves open whether the result is added to an existing solid or creates a standalone body, and gives no error or naming guidance for a 5-parameter mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it largely does: start_mm/end_mm are [x, y] mm points that centre the half-round ends, width_mm is the tab width, depth_mm is the +Z extrusion. Only the optional 'name' parameter is left unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Extrude) and resource (a stadium / rounded tab, lug or link) and gives the geometric definition, which distinguishes it from cut_slot and the generic add_extruded_profile. It never explicitly names a sibling, so differentiation is by shape description only.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what the geometry is but gives no when-to-use guidance or when-not, and does not mention the obvious alternatives (add_extruded_profile, cut_slot). Usage is only implied by the shape description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_filletA

Round edges of the current part with one constant radius (mm).

edges: "all" (default), "x"/"y"/"z" for edges parallel to that world axis, a face outline like "+z:outline" (the outer edges of the top face, not those of holes in it), every edge of one feature like "feature:Boss" (its top and where it meets the part: a moulded look), or explicit indices like "2,5" from list_edges. radii_at_mm = [[x, y, z, r], ...] makes the radius vary: r at the edge end at each point (list_edges gives the ends), radius_mm at the other ends, straight in between; 'vertex_radii' gives each end's dimension. skip_shorter_mm leaves out edges shorter than that. tangent_propagation=True carries the round on along edges that run on smoothly from the given ones, as SolidWorks does by default: an edge ending where it runs into another tangentially, such as round a fillet, only rounds so. A refusal names the edges the radius does not fit (each tried alone, and with propagation). Returns the number of edges filleted and the mass properties.

NameRequiredDescriptionDefault
nameNoFillet
edgesNoall
radius_mmYes
radii_at_mmNo
skip_shorter_mmNo
tangent_propagationNo

TDQS

A3.8/5.0
Behavior4/5

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 usefully discloses failure behavior ("A refusal names the edges the radius does not fit") and return information ("Returns the number of edges filleted and the mass properties"), though it does not discuss prerequisites or feature-creation 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long and dense, but it is front-loaded with the core purpose and every subsequent sentence adds operational detail about edge selection, variable radii, and propagation. It is appropriately sized for a complex CAD operation, though slightly verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and 0% schema description coverage, the description supplies substantial behavioral and parameter context, including return values and failure handling. It remains incomplete only because the name parameter is never described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It gives rich meaning for edges, radii_at_mm, skip_shorter_mm, and tangent_propagation, but does not explain the name parameter, leaving one of six parameters undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: "Round edges of the current part with one constant radius (mm)." The operation is clear, but the description does not explicitly differentiate it from sibling tools such as add_chamfer or add_full_round.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the opening sentence and extensive edge-selection guidance, but there is no explicit when-to-use guidance, no when-not-to-use conditions, and no named alternatives among the sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_full_roundB

Round a rib's top off completely: a full round fillet, as on a moulded part.

The face facing face ("+z", ...) through the point (x, y, z) is the top; the two opposite flat side faces along it that lie closest together are the sides, so the round runs across the rib, not along it. The radius is half their distance (width_mm in the result) and follows the rib. Hand calculation: a rib w wide and L long loses L w^2 (1/2 - pi/8).

NameRequiredDescriptionDefault
faceYes
nameNoFullRound
x_mmYes
y_mmYes
z_mmYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It adds real geometric behavior context (the round runs across the rib, not along it; radius is half the side distance; result contains width_mm), which is valuable. But it never states that this is a model-mutating operation, nor covers failure conditions or permissions, leaving the mutation nature undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the purpose, then selection rules, then the result/area formula. Dense but each sentence earns its place; the hand-calculation formula is a small extra but aids the geometry mental model.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description's hint that the result contains width_mm is a useful partial return description. However, for a mutation tool with 0% schema coverage and no annotations, it omits whether the model is modified, the effect on existing geometry, and the meaning of the `name` parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it does for most parameters: it defines what `face` denotes (the top face), how the two side faces are selected, and that (x, y, z) is a point the top face passes through. Only the optional `name` parameter goes unexplained, which is a minor gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: "Round a rib's top off completely: a full round fillet, as on a moulded part." This is clearly distinguished from a generic fillet by being scoped to a rib top and to a full-round profile. It does not, however, explicitly name sibling tools like add_fillet or add_chamfer to disambiguate the choice.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains geometry selection (which face is the top, which are the sides) but never states when to use this versus add_fillet, add_chamfer, or other rounding tools, nor any prerequisites or exclusions. Usage must be inferred from the geometry narrative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_holeA

Cut a round hole. Which one follows from the arguments:

  • diameter_mm at (x, y): straight through the thickness (the add_box extrude direction); coordinates share add_box's system (the centre of a 40x20 profile is x=20, y=10).

    • face='+z' (or '-x', ...) and z_mm: on ANY planar face, centred at 3D point (x, y, z), the face facing that way through the point (a pocket floor or a step works too). Through all, or depth_mm deep (blind: heat-set inserts, screw pilots). Returns dimensions (diameter, x, y, depth).

    • cbore_diameter_mm and cbore_depth_mm: a counterbored screw hole from the +Z face, a flat-bottom pocket over the clearance shank so a cap-head screw or heat-set insert sits flush.

  • iso='clearance' (ISO 273), 'counterbore' (socket head cap screw), 'countersink' (socket countersunk screw) or 'tapped', with size='M6', face and z_mm: SolidWorks' Hole Wizard, sized by the standard's tables and carried into drawing callouts. fit 'close' / 'normal' / 'loose'; thread='modeled' cuts a real, printable ISO thread in a tapped hole instead of the cosmetic one. Returns the standard's sizes in hole.

Prefer iso= for standard fasteners. Returns mass properties.

NameRequiredDescriptionDefault
fitNonormal
isoNo
faceNo
nameNo
sizeNo
x_mmYes
y_mmYes
z_mmNo
threadNocosmetic
depth_mmNo
diameter_mmNo
cbore_depth_mmNo
cbore_diameter_mmNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the load well: it discloses the return payloads (`dimensions`, `hole`, mass properties) and the non-obvious side effect that thread='modeled' produces a real printable thread rather than a cosmetic one. It omits that the operation mutates/removes material from the active body and any preconditions (e.g. requires an existing part), which for a cut feature 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the verb, then organized as scannable bullets each keyed to an argument pattern. It is long, but justified for a 13-parameter, three-mode tool; the density of the first bullet (coordinate aside plus hole spec) costs a little readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-param tool with zero schema coverage and no output schema, this covers the modes, geometry semantics and return shapes that an agent actually needs. Missing pieces are the destructive/mutating nature of the cut, the unexplained `name` parameter, and any failure conditions — minor but real for a modeling operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and 13 parameters exist, so the description must compensate — and it does: it explains 12 of 13 parameters with real semantics, including the shared coordinate system (40x20 profile centre = x=20,y=10), face string values ('+z', '-x'), depth semantics (through vs blind), the fit/thread/iso enumerations and their effects. Only `name` is left unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ("Cut a round hole") and immediately partitions the tool into three distinct operating modes. It also anchors the coordinate system to a named sibling (add_box), so an agent can tell exactly what geometry this produces versus cut_slot, cut_profile or cut_offset_pocket.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Strong intra-tool routing: each bullet names the argument combination that selects it (diameter+xy = through hole, face+z_mm = face-anchored, cbore_* = counterbore, iso= = Hole Wizard), plus an explicit preference rule ("Prefer iso= for standard fasteners"). It never states when to choose this over sibling cut tools (cut_slot, cut_profile), so it stops short of full when/when-not coverage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_linear_patternA

Repeat a feature count times, spacing_mm apart, along a direction.

direction: "+x"/"-x"/"+y"/... feature_name: the feature to repeat (e.g. "Hole"); defaults to the most recently added feature. Returns mass properties.

NameRequiredDescriptionDefault
countYes
directionNo+x
spacing_mmYes
feature_nameNo

TDQS

A4.1/5.0
Behavior3/5

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 disclose that the tool returns mass properties and that feature_name defaults to the most recently added feature, which is useful. However, it does not mention that the operation modifies the part, what happens on invalid feature names, or any potential side effects, leaving gaps in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and efficient: a one-sentence purpose statement followed by parameter details. It front-loads the core operation and every sentence contributes useful information—no filler, digressions, or redundant repetition of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters, no annotations, and no output schema, the description covers all parameters and explicitly states the return value (mass properties). It is largely sufficient for an agent to call the tool correctly. However, it omits explicit statements about model mutation and failure conditions when no feature exists, which would be valuable for full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description is the sole source of parameter meaning. It explains all four parameters: count (times), spacing_mm (distance apart), direction (with examples like '+x'/'-x'+y'), and feature_name (with default behavior). This adds substantial semantic value beyond the bare schema, making correct invocation feasible.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific operation: 'Repeat a feature `count` times, `spacing_mm` apart, along a direction.' It names the resource (feature) and key parameters (count, spacing, direction). The linear nature and direction format (+x/-x/+y) implicitly distinguish it from the sibling add_circular_pattern, making the tool's purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides parameter usage hints (direction format, feature_name defaulting to most recently added feature) but does not explicitly state when to use this tool versus alternatives like add_circular_pattern. It lacks any exclusions, prerequisites, or guidance on when not to use it, leaving the agent to infer usage from the name and context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_loftA

Loft (blend) 2+ closed profiles, given one of two ways.

  • sketches=['Heel', 'Toe']: closed sketches by name (add_sketch on any planes), in order; cut=True cuts the lofted shape away (a straight bevel gear's tooth gap is a loft cut between heel and toe profiles).

  • profiles_mm + heights_mm: per profile a polygon [[x,y], ...] (mm) in Front-plane coords, or a round section {"center_mm": [x, y], "diameter_mm": d}, on parallel planes at heights_mm along +Z (same length, strictly increasing, starting at 0). A 2-profile loft is a ruled transition; 3+ blend smoothly. Each profile starts at its first vertex (a round one on +x).

Give profiles in the same order and sense so they do not twist. Returns mass properties.

NameRequiredDescriptionDefault
cutNo
nameNo
sketchesNo
heights_mmNo
profiles_mmNo

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral burden well: it explains cut semantics, profile ordering/twist risk, blend behavior, and that mass properties are returned. It still omits permission requirements, failure modes, and document-modification details, but adds substantial context beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core operation and organized into two clear input modes. It is dense and mostly earns its length, though the multi-line format could be slightly tighter for a tool definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex loft feature with no annotations and no output schema, the description gives enough detail on input modes, constraints, and return behavior. It remains incomplete only around the missing name parameter and unstated failure conditions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must document all five parameters. It explains sketches, cut, profiles_mm, and heights_mm formats and constraints in detail, but never mentions the name parameter, leaving one parameter undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific CAD operation: lofting/blending 2+ closed profiles, with two input modes. It is clear what the tool creates, but it does not explicitly contrast itself with siblings like add_swept_profile or add_revolved_profile.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the two ways to supply profiles and gives constraints such as ordering and height rules. However, it does not explicitly say when to choose loft over alternative sibling tools 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.

add_mateA

Mate a face of one component to a face of another, or add several mates in one call.

comp_a/comp_b are component names ('Bed' or 'Bed-1'; 'Leg-1/Thigh-1' inside a sub-assembly). face_a/face_b select a face in that component's OWN frame: by direction "+x"/"-x"/"+y"/... (optionally "+y:inner" for the cavity side of a hollow part), by its list_faces(component=...) index, "#5", or by a point on it, "@x,y,z" (a hole's wall: its centre plus the radius along x). mate_type between planar faces: "coincident", "distance" (distance_mm), "parallel", "perpendicular" or "angle" (angle_deg between the faces' normals, 0..180); "concentric" between two cylindrical faces (a pin in a hole, a hinge axis), leaving the turn about the axis free. flip takes the other solution: the mirror side of a distance, the other turning direction of an angle. A distance or angle mate returns its dimension: drive it with set_dimension, or step it with check_motion. An angle mate's dimension then turns the joint the whole way round, past 180 and below 0 (-30 is 30 the other way, the same turn as 330). The result is measured back after the rebuild; a mate that does not hold is removed and the components are put back.

Several at once: mates=[{"comp_a": "Bolt-1", "face_a": "#3", "comp_b": "Plate-1", "face_b": "#12", "mate_type": "concentric"}, ...], each with the arguments above. stop_on_error=True stops at the first that fails; the mates before it stay. Returns a result per mate (its name and dimension, or the error), how many were added, failed and not tried, and the mate count.

NameRequiredDescriptionDefault
flipNo
matesNo
comp_aNo
comp_bNo
face_aNo
face_bNo
angle_degNo
mate_typeNocoincident
distance_mmNo
stop_on_errorNo

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: it discloses that results are measured after rebuild, a failing mate is removed and components restored, flip's mirror/opposite behavior, and stop_on_error semantics including that prior mates persist. It also describes the return payload (per-mate result, counts, mate count), which is critical given there is no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded and the body is dense with useful detail rather than filler. It is long, but that length is largely justified by the ten undocumented parameters and the need to specify face addressing, mate types, and batch behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, zero-annotation, no-output-schema tool, the description covers invocation, face syntax, mate-type semantics, batch error behavior, and return shape. An agent has enough to call it correctly and interpret results without guessing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate fully, and it does: it explains comp_a/comp_b naming conventions, face_a/face_b addressing (direction, index, '#5', '@x,y,z', cavity suffix), mate_type values, distance_mm, angle_deg range and wraparound semantics, flip, mates array shape, and stop_on_error. Every one of the ten parameters is given meaning beyond its bare name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Mate a face of one component to a face of another') plus the batch variant ('add several mates in one call'), which cleanly separates it from siblings like delete_mate, suppress_mate, and set_dimension. An agent can identify the operation without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains the mate types and when each applies (planar vs cylindrical, concentric leaving rotation free), and routes follow-up work to set_dimension and check_motion. It does not explicitly say when to prefer a single call over a batch, but the context is clear enough for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_mirrorA

Mirror features, or the whole body, about the 'front'/'top'/'right' plane moved offset_mm.

Mirrors about z / y / x = offset_mm; plane may also name another plane in the part ('Plane1'), moved offset_mm along its normal. features: list_features names; the copies follow their seeds. Without features the body is mirrored and merged: model half of a symmetric part, mirror it about the face where the halves meet. The plane position comes back as dimension 'plane_offset'. Fails, leaving the part as it was, when a copy would land outside the part.

NameRequiredDescriptionDefault
nameNoMirror
planeYes
featuresNo
offset_mmNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the merge behavior of a body mirror, the failure mode and its guarantee ('Fails, leaving the part as it was, when a copy would land outside the part'), and the resulting dimension name 'plane_offset'. It does not state prerequisites such as requiring an open part or the effect on pre-existing features.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Content is front-loaded and every sentence carries information, but the plane/offset explanation is dense and split awkwardly across line breaks, forcing a re-read. Slight tightening would improve it without losing substance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema and no annotations, so the description must stand alone, and it covers inputs, merge semantics, failure behavior, and the produced dimension. The main remaining gap is the absence of any precondition (e.g., an open part) or interaction with existing features.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate and largely does: it explains that plane accepts 'front'/'top'/'right', a z/y/x offset, or another plane name moved along its normal, that offset_mm is that displacement, and that features takes list_features names whose copies follow their seeds. Only the 'name' parameter is left unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Mirror features, or the whole body') and immediately bounds the scope by plane type and offset. An agent can distinguish this from the pattern siblings (add_linear_pattern, add_circular_pattern) without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a concrete usage scenario: 'Without features the body is mirrored and merged: model half of a symmetric part, mirror it about the face where the halves meet.' That tells the agent when the no-features path applies, but no alternative tool is named for cases where mirroring is not the right operation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_noteC

A note on the sheet; at=[x, y] its top-left corner (sheet mm), by default above the title block. Lines: '\n'.

NameRequiredDescriptionDefault
atNo
textYes
height_mmNo

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations at all, so the description carries the full load, yet it only discloses the default placement ('by default above the title block'). For a mutation tool it says nothing about required document state, whether the note joins an annotation list, or how it can later be edited or removed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short with no filler, but the telegraphic style ('Lines: \'\n\'.') borders on cryptic and the string reads as a fragment rather than a front-loaded purpose statement. Space saved is not redeployed on the undocumented height parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter mutation with no annotations and no output schema, the definition leaves important gaps: sheet context requirements, the meaning of height_mm, and what the call returns. It is adequate only for an agent that already knows the drawing model.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate; it does well for 'at' (top-left corner, sheet millimetres, default above title block) and for 'text' (newline handling), but 'height_mm' is never mentioned despite defaulting to 3.5 and plausibly meaning text height.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names the resource ('a note on the sheet') and implies creation via the tool name, and the positioning detail makes clear this places annotation text on a drawing sheet rather than a model face. It does not explicitly contrast with near neighbors like add_text_on_face, add_symbol, or add_table, so differentiation relies on inference from 'sheet'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No statement of when to use this versus add_text_on_face, add_symbol, add_table, or edit_annotation, and no prerequisites (does a drawing need to exist or be active?). The agent must infer usage entirely from the resource noun.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_planeA

Make a reference plane to sketch on: an offset or a turned plane, its position a dimension.

base moved offset_mm along its normal (base: front/top/right or a plane by name), or a default plane turned angle_deg about a model axis it holds, about='x'/'y'/'z' (front holds x and y, top x and z, right y and z), by the right-hand rule. For both, turn first, then offset that plane. Or the plane through model point through=[x, y, z] square to normal=[dx, dy, dz] (any direction, e.g. square to a cone's generatrix). Returns its name for plane= arguments, and origin_mm, normal, x_axis and y_axis: a point (u, v) on it is origin + u x_axis + v y_axis.

NameRequiredDescriptionDefault
baseNofront
nameNo
aboutNo
normalNo
throughNo
angle_degNo
offset_mmNo

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does well: it discloses operation order ('turn first, then offset'), return values, and the plane coordinate frame. It does not cover failure conditions or default behavior when parameters are omitted, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and then proceeds through construction modes efficiently. It is dense and somewhat run-on, but nearly every clause contributes geometric meaning, so it remains useful rather than padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter geometry tool with no annotations and no output schema, the description provides substantial completeness: construction modes, axis conventions, and return coordinate frame. It still omits the name parameter's purpose and any error/omission behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains base, offset_mm, angle_deg, about axis mappings, through, and normal semantics in useful detail, but the name parameter is left unexplained and defaults are only partially implied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Make a reference plane to sketch on.' It immediately clarifies the tool's role in creating construction geometry, which distinguishes it from sketch/profile creation siblings like add_sketch.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the available construction modes in detail, but it does not explicitly say when to choose this tool over siblings such as add_axis or add_sketch, nor does it state exclusions. Usage is implied by the mode descriptions rather than routed against alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_revolved_profileA

Revolve a closed profile on the Front plane about an axis in it.

Without axis_mm: profile_mm = [[r, z], …] in mm, r = distance from the Y axis, z = position along it. With axis_mm = [[x1, y1], [x2, y2]]: profile_mm gives [x, y] points and the axis is the line through those two points, anywhere and at any angle (a hub turned about its own centre). Auto-closed and spun angle_deg (default 360°). Points on the axis give a solid (shafts, vases); a profile away from it gives a ring. The profile may not cross the axis. corner_radii_mm rounds corners as for add_extruded_profile (not those on the axis). Returns mass properties. Use new_document first.

NameRequiredDescriptionDefault
nameNoRevolve
axis_mmNo
angle_degNo
profile_mmYes
corner_radii_mmNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations the description carries the full burden, and it delivers: auto-closure, default 360° sweep, the geometric consequence of touching vs. offset profiles (solid vs. ring), a hard validity constraint (profile may not cross the axis), a scoping caveat on corner_radii_mm, the fact it returns mass properties, and the new_document prerequisite. It omits body/merge behaviour and failure modes, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the operation, then immediately with the parametric mode split, then constraints and return value. Dense but every sentence adds information an agent could not get from the schema; no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter geometry-creation call with zero annotations and no output schema, the description supplies coordinate conventions, defaults, validity constraints, the return value (mass properties) and the required predecessor tool. Remaining gaps are secondary: whether the result is a new body or merged, and what happens on invalid input.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it explains 4 of 5 parameters in substance: profile_mm's coordinate convention changes with axis_mm (r/z vs x/y), axis_mm's two-point line form and its freedom in position and angle, angle_deg's default, and corner_radii_mm's exclusion on axis points. Only `name` is undocumented, which keeps it off a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Revolve a closed profile on the Front plane about an axis") plus the resulting geometry class, which distinguishes it from add_extruded_profile, add_swept_profile and the primitive add_cylinder/add_disc siblings. An agent knows exactly which feature this creates without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a hard prerequisite ("Use new_document first") and lays out the two mutually exclusive operating modes (no axis_mm = polar r/z profile about the Y axis; axis_mm = free [x,y] points with an arbitrary axis line), which is effectively when-to-use guidance for each branch. It stops short of naming an alternative tool and saying when not to use this one, so no 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_ribA

Add a straight stiffening rib / gusset in a plane parallel to the Front plane.

start_mm/end_mm = [x, y] ends of the rib's free edge (add_extruded_profile coordinates); the plane sits at height z_mm. The rib grows toward toward_mm (any [x, y] point on the side to fill, e.g. the inner corner of an L-bracket) until it meets the part, thickness_mm thick, centred on the plane. Returns mass properties: a triangular gusset with legs a and b adds a*b/2 * thickness.

NameRequiredDescriptionDefault
nameNoRib
z_mmYes
end_mmYes
start_mmYes
toward_mmYes
thickness_mmYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does so well: it explains how the rib grows toward toward_mm until meeting the part, how thickness is applied, and that it returns mass properties. It doesn't mention prerequisites like an active part or failure modes, but it discloses the key behavioral and return characteristics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded with the purpose, then parameter semantics, then return behavior. Each sentence provides distinct value, and the mass-properties formula earns its place because it tells the agent what result to expect.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no param descriptions, and no output schema, the description is remarkably complete for a CAD primitive tool. It covers the geometry, all key parameters, and the return. Minor gaps are the lack of an explicit prerequisite that a part must be open and no discussion of failure conditions if the rib never meets the part.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description explains almost every meaningful parameter: start_mm/end_mm as [x,y] endpoints, z_mm as plane height, toward_mm as the fill direction, and thickness_mm as the rib thickness. It also ties coordinates to add_extruded_profile, which helps an agent understand the expected format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: adds a straight stiffening rib/gusset in a plane parallel to the Front plane. The geometric detail and the mention of 'rib/gusset' differentiate it clearly from generic extrusion or sweep siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the clear domain language ('stiffening rib / gusset'), and the coordinate reference to add_extruded_profile gives some context. However, it does not explicitly state when to prefer this over alternatives like add_extruded_profile or add_swept_profile, nor does it mention exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_shellA

Hollow the current part to a wall of thickness_mm, opening one face.

open_face: a direction "+z"/"-z"/"+x"/... removes that planar face (open shell); "none" makes a closed hollow. Returns the resulting mass properties.

NameRequiredDescriptionDefault
open_faceNo+z
thickness_mmYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that the tool modifies geometry (hollows the part) and returns mass properties, which is important context. However, it does not mention destructive nature (permanent modification), potential side effects like altering existing features, or error conditions. It adds some value beyond the schema but has gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (two sentences) and front-loads the core operation. It efficiently explains the open_face parameter in the second sentence. No wasted words, though it could be slightly more structured, but it's appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the primary operation and parameter semantic, but lacks details on return format (even though output schema is absent), prerequisites (e.g., must be a solid part), and edge cases like multiple faces or non-cuboid shapes. For a tool with 2 parameters and no output schema, it is functional but misses some completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must explain parameters. It does: open_face is clearly described with possible values and meanings, and thickness_mm's purpose is implied by 'wall of thickness_mm'. The description provides meaning that the schema lacks, making it highly valuable for correct parameter usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Hollow') and the resource ('current part'), and clarifies that it transforms the part by creating a wall of given thickness. It also explicitly defines the open_face parameter's effect, making the tool's purpose unambiguous. This distinguishes it from sibling modeling tools like add_box or add_shell's related operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for hollowing operations but does not specify when to use this versus alternatives like cut_profile or add_hole. It lacks explicit context about part requirements (e.g., must be a solid with at least one face) or scenarios where a different tool is more appropriate. However, it does convey the core operation clearly enough for an agent to infer basic usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_sketchA

Draw a sketch of lines, arcs and splines on a plane, fully defined, to extrude or cut.

plane: "front", "top", "right" or a plane by name (add_plane). Points are [u, v] in the plane's own axes, which the result gives (origin_mm + u x_axis + v y_axis): front is (x, y), top (x, -z), right (-z, y). The outline starts at start_mm; each segment runs on from where the last ended: {"line": [u, v]}; {"arc": [u, v], "through": [u, v]} (an arc through a middle point); {"arc": [u, v], "tangent": true} (an arc flowing on from the segment before); {"spline": [[u, v], ..., [u, v]]} (through the points, ending at the last). "tangent": true on a line checks that it flows on. End on start_mm to close the outline. Segments that meet smoothly get a tangent relation, the rest is dimensioned from the origin: x/y for the i-th point given (points_mm lists them; start_mm is 0), r for the radius of segment k. Then extrude_sketch / cut_sketch the returned sketch. fixed=True freezes computed geometry (an involute, a cam) with Fix relations instead of dimensions.

NameRequiredDescriptionDefault
nameNo
fixedNo
planeYes
segmentsYes
start_mmYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does substantial work: it discloses the automatic dimensioning scheme (tangent relations, x<i>/y<i>, r<k>), the closing rule ('End on start_mm to close the outline'), and the fixed=True behavior of substituting Fix relations for dimensions. It stops short of stating failure modes, undo semantics, or that this is a mutating document operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The summary sentence is front-loaded and every subsequent clause carries specification detail rather than filler. Density is justified by the complexity, though the plain-prose paragraph with mid-sentence line breaks is harder to scan than a structured segment list would be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter, no-output-schema, no-annotation tool this is close to complete: it even previews return-value fields (origin_mm, x_axis, y_axis, points_mm) so the agent knows what comes back. The remaining gap is that the rest of the returned sketch object and error conditions are left unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate and largely does: plane enumerates the accepted values and coordinate mapping per plane, start_mm defines the origin convention, segments spells out each verb's object shape (line, arc with through/tangent, spline), and fixed explains the geometry mode. Only the optional trivial 'name' parameter is left implicit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence gives a specific verb and resource ('Draw a sketch of lines, arcs and splines on a plane') and states the downstream intent ('to extrude or cut'). It is immediately distinguishable from sibling profile/primitive creators like add_extruded_profile or add_disc, which do not produce an editable sketch.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly routes the agent: 'Then extrude_sketch / cut_sketch the returned sketch', establishing the follow-up step. It also distinguishes the fixed=True mode as a variant for frozen geometry. What it does not do is state when to prefer this over a non-sketch primitive (add_box, add_disc) or a script-based path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_swept_pipeA

Sweep a circular profile (pipe/tube/rod) along a 2D path on the Front plane.

path_mm = [[x, y], …] in mm is the centreline. Interior corners are rounded with bend_radius_mm (required when the path turns; a 2-point straight path needs none); smooth=True runs a spline through the points instead, a flowing curve. diameter_mm = outer Ø; the round profile is auto-generated perpendicular to the path. Returns mass properties (pi r^2 x path_length_mm). Use new_document first.

NameRequiredDescriptionDefault
nameNoPipe
smoothNo
path_mmYes
diameter_mmYes
bend_radius_mmNo

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral load. It discloses that the profile is auto-generated perpendicular to the path, that bend_radius_mm is required when the path turns, what smooth=True does, and that it returns mass properties calculated as pi r^2 x path_length_mm. It does not cover error conditions or whether a new body/feature is created, keeping it below the top score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description front-loads the verb and resource in the first sentence, then spends each subsequent sentence on a distinct parameter or behavioral fact. There is no redundant restatement of the name or schema, and the prerequisite is placed at the end as a natural call-order note.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero annotation coverage, no output schema, and five undocumented-in-schema parameters, the description supplies enough to call the tool correctly: path format, required inputs, bend behavior, profile orientation, return values, and a document prerequisite. It is somewhat silent on error conditions and whether it creates a new body or feature, which are the remaining gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does so for the important parameters: path_mm format [[x,y]] in mm as a centreline on the Front plane, diameter_mm as outer Ø, bend_radius_mm behavior including the 2-point straight-path exception, and smooth as a spline alternative. Only 'name' is left undocumented, which is a minor defaulted parameter, so a 4 rather than 5 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource — 'Sweep a circular profile (pipe/tube/rod) along a 2D path on the Front plane' — which an agent can readily distinguish from generic sweep or extrusion tools. It stops short of explicitly naming or contrasting the closest sibling (add_swept_profile), so it misses the top mark for sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only explicit usage guidance is the prerequisite 'Use new_document first.' The description implies when to use it by describing the pipe geometry, but it never states when to prefer this over add_swept_profile, add_cylinder, or add_extruded_profile, nor does it give exclusions or conditions. That leaves selection guidance implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_swept_profileA

Sweep an arbitrary closed PROFILE (cross-section) along a 2D PATH.

profile_mm = [[u,v],…] in mm: the closed cross-section on the Right plane (u → world -Z, v → world +Y), centred near the origin. path_mm = [[x,y],…] in mm on the Front plane — MUST start at the origin heading +X (the profile is perpendicular to the path there). Path corners are rounded with bend_radius_mm; corner_radii_mm rounds the profile's corners as for add_extruded_profile. Volume = profile_area · path_length. For non-round extrusions along a path (rails, gaskets, trim, channels). Returns mass properties. Use new_document first.

NameRequiredDescriptionDefault
nameNoSweep
path_mmYes
profile_mmYes
bend_radius_mmNo
corner_radii_mmNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does most of it: coordinate-frame mapping (u → world -Z, v → world +Y; path on Front plane), profile centering, corner-rounding behavior for both path and profile, and a volume formula. It stops short of saying whether the result is a new solid body, whether it merges with existing bodies, or what failure modes exist if the path precondition is violated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and organized so each clause covers one parameter or rule, with no filler sentences. It is dense and arrow-notation-heavy, and the volume formula is arguably optional, but every sentence otherwise earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

It states the return ('Returns mass properties'), which is necessary since no output schema exists, and covers all the geometric call prerequisites. What remains missing is whether the sweep produces a standalone body and how it interacts with existing geometry — meaningful for a modeling tool with zero annotation coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate and largely does: profile_mm and path_mm get format, units, construction plane and orientation rules, bend_radius_mm is tied to path corner rounding, and corner_radii_mm is tied to profile corner rounding with a cross-reference to add_extruded_profile. Only 'name' is left undocumented, which is a harmless cosmetic default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a precise verb+resource: sweep a closed profile along a 2D path. The parenthetical '(cross-section)' and the clause 'For non-round extrusions along a path' implicitly separate it from add_swept_pipe (round) and add_extruded_profile (straight), so an agent can pick it out of the sibling list without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete use case (rails, gaskets, trim, channels) plus a hard prerequisite ('Use new_document first') and a mandatory path constraint ('MUST start at the origin heading +X'). It never explicitly names a sibling to avoid, so the routing is implied by 'non-round' rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_symbolB

A symbol on an edge of a view, its leader attached mid-edge. type:

  • 'hole_callout': ref 'hole:'; diameter, depth, counterbore/countersink, thread, linked to the model; count=True counts identical holes in the view into it ('4X ...');

  • 'surface_finish': ISO 1302, roughness 'Ra 1.6', process 'machined', 'any' or 'no_removal';

  • 'datum': lettered datum feature symbol, label 'A';

  • 'gtol': ISO 1101 frame, symbol straightness, flatness, circularity, cylindricity, line_profile, surface_profile, parallelism, perpendicularity, angularity, position, concentricity, symmetry, runout or total_runout; tolerance '0.05'; datums ['A', 'B']; diameter=True for a round zone; material_condition 'MMC' / 'LMC'. ref as in add_dimension. at=[x, y] places it (sheet mm), by default off the view, clear of text.

NameRequiredDescriptionDefault
atNo
refYes
typeYes
viewYes
countNo
labelNo
datumsNo
symbolNo
processNomachined
diameterNo
roughnessNo
toleranceNo
material_conditionNo

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It adds useful behavior details such as hole_callout being linked to the model, count=True producing '4X ...' labels, and default placement off the view clear of text, but it does not describe side effects, required document state, failure modes, or what the tool returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core concept and then uses a compact bullet structure to explain the type-specific fields. It is appropriately sized for a 13-parameter annotation tool, though some density could be reduced by defining 'view' explicitly rather than leaving it implicit.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, 13-parameter mutation tool with no annotations, no schema descriptions, and no output schema, the description is fairly complete on symbol-type semantics and placement. However, it omits the required view parameter's meaning and lacks general mutation/return behavior, leaving meaningful context gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates strongly by explaining most of the 13 parameters: type-specific ref formats, count, label, datums, symbol, process, diameter, roughness, tolerance, material_condition, and at in sheet millimeters. The notable gap is the required 'view' parameter, which is never directly defined.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly defines the resource as a drawing symbol annotation placed on a view edge with its leader attached mid-edge, and it enumerates the supported symbol types. It does not explicitly contrast itself with sibling annotation tools like add_note or add_dimension, but a competent agent can still distinguish it as the tool for geometric/drawing symbols.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists symbol types but gives no explicit when-to-use guidance, no when-not-to-use guidance, and no alternatives. The only implicit routing hint is 'ref as in add_dimension,' which is not sufficient for choosing this tool over add_dimension, add_note, or edit_annotation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_tableC

A table on the sheet: rows [[cell, ...], ...] (title=True merges the first row), or gear={...} for a computed gear data table: kind 'spur' (diameters, span over k teeth, centre distance) or 'bevel' (straight: cone angles, cone distance, chordal thickness and height, crown to apex), teeth, module, mating_teeth, pressure_angle_deg, face_width_mm, profile_shift, shaft_angle_deg, accuracy, extra_rows [[label, value], ...]; teeth, module and mating_teeth default to the part's custom properties Teeth, Module, MatingTeeth. at=[x, y] its top-left corner, by default free room.

NameRequiredDescriptionDefault
atNo
gearNo
rowsNo
titleNo
text_height_mmNo
column_widths_mmNo

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full behavioral burden. It discloses title-row merging and default free-room placement, but omits whether it mutates the active document/sheet, what happens on collision, permissions, return values, and 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but appropriately sized and front-loads the rows mode before gear mode. However, it reads as one long run-on sentence with inline nested field lists, and it does not lead with a clear action statement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a six-parameter mutation tool with no annotations, no output schema, and zero schema descriptions, the description leaves out two top-level parameters and operational context such as which sheet/document is targeted. The gear detail is useful but does not make the definition complete enough for reliable invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must document six parameters. It covers rows, title, at, and many gear subfields with defaults, but completely omits text_height_mm and column_widths_mm, leaving a significant gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource ('a table on the sheet') and separates two modes (rows vs gear), but it never states an explicit verb such as 'adds' or 'creates'. It also does not distinguish itself from siblings like add_note or add_symbol; the tool name carries most of the action meaning.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains gear table variants ('spur' or 'bevel'), but gives no guidance on when to use this tool versus alternatives such as add_note, add_symbol, or drawing annotation tools. No prerequisites, exclusions, or selection criteria are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_text_on_faceA

Engrave text into ANY planar face, or emboss it with emboss=True (labels, version numbers).

(x, y, z) is the text's lower-left corner on the face; the text runs along the face sketch's horizontal axis: upright along +x on the top (+z) and front (-y) faces, turned on the others (vertical on +/-x, upside down on +y), so put labels on the top or front. height_mm is the character height, depth_mm the engraving depth or embossing height. The position is two dimensions ('x', 'y'); font must be installed (default: SolidWorks' own). Returns text_area_mm2, since letters have no hand calculation.

NameRequiredDescriptionDefault
faceYes
fontNo
nameNoText
textYes
x_mmYes
y_mmYes
z_mmYes
embossNo
depth_mmYes
height_mmYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the per-face orientation behavior, the font-installed prerequisite, and the return value (text_area_mm2). It omits permission/error behavior and mutation reversibility, but for a local CAD modeling op this is strong disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core verb and use case, and each sentence carries real information. The orientation clause is dense but earns its place by preventing misplacement; minor redundancy between the corner and 'two dimensions' phrasing costs a point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description supplies the return value, and for a 10-param tool at 0% schema coverage it documents most semantics plus orientation behavior. The undocumented face/name parameters and the z-axis ambiguity are the only material gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate and does explain x/y/z, height_mm, depth_mm, emboss and font semantics. However it leaves 'face' and 'name' undocumented and introduces confusion by first describing a three-coordinate corner then stating 'the position is two dimensions ('x','y')' while z_mm is required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Engrave text into ANY planar face, or emboss it') that an agent can distinguish from every sibling, none of which touch face text. The parenthetical use case (labels, version numbers) sharpens intent further.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete when-to-use guidance by explaining which faces yield readable text ('put labels on the top or front') and how the emboss=True variant is selected. No explicit alternatives are named, but no sibling overlaps this operation, so the practical routing advice is the useful part and it is present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_threadA

Cut a real, printable ISO metric thread (SolidWorks' own Thread feature).

size: e.g. 'M10x1.5', 'M3x0.5', 'M10x1.0' -- checked against SolidWorks' thread profiles. (x_mm, y_mm, z_mm) = centre of the circular edge where the thread starts: the end face of a rod, or the mouth of a hole (internal=True). It runs length_mm into the material, right-handed. External: the rod must have the nominal diameter (M10 -> Ø10). Internal: drill the ISO basic minor diameter first, D - 1.0825*P (M10x1.5 -> Ø8.376). Returns mass properties and the thread's size, pitch and diameters.

NameRequiredDescriptionDefault
nameNoThread
sizeYes
x_mmYes
y_mmYes
z_mmYes
internalNo
length_mmYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It states that the thread runs into the material, is right-handed, has validation against SolidWorks' thread profiles, and returns mass properties plus thread dimensions. It does not discuss reversibility or side effects, but it gives a solid picture of what the operation does.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence earns its place: purpose first, then parameter semantics, then usage prerequisites, then return value. There is no filler or repetition of schema titles.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter tool with no annotations and no output schema, the description covers the essential context: coordinate convention, length direction, handedness, external/internal prerequisites, and return information. An agent has enough to call it correctly without additional inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does thoroughly. It explains the size format with examples and validation, the coordinate meaning (centre of the circular edge), the internal boolean (hole vs rod), and length_mm. Only 'name' is left to the schema, and its default makes it self-explanatory.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Cut'), a specific resource ('a real, printable ISO metric thread'), and the mechanism ('SolidWorks' own Thread feature'). This clearly distinguishes it from siblings like add_hole and cut_profile, which are different operations on different geometry.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: where the thread starts, how far it runs, and the prerequisites for external versus internal threads (nominal diameter for rods, pre-drilled minor diameter for holes). It does not explicitly name alternative tools or state when not to use it, but the conditions are concrete and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_viewA

Add a view. kind:

  • 'model': orientation 'front', 'top', 'right', 'left', 'back', 'bottom', 'iso' or '*Name'; its geometry centred on at=[x, y] (sheet mm), or beside='' on side 'right'/'left'/'above'/'below';

  • 'projected': from parent, on side (first angle), aligned with it;

  • 'section': parent cut by the plane through model point through=[x, y, z] square to model axis normal ('x'/'y'/'z'); label 'A'; flip=True looks the other way;

  • 'detail': of parent, the circle round model point center=[x, y, z] with model radius radius_mm, at scale (default about 2.5x the parent's). Placed with room for dimensions, past views in the way (gap_mm to fix the gap). scale '1:2'. A section or detail view keeps its label's name; name becomes an alias for it.

NameRequiredDescriptionDefault
atNo
flipNo
kindNomodel
nameNo
partNo
sideNo
labelNo
scaleNo
besideNo
centerNo
gap_mmNo
normalNox
parentNo
throughNo
radius_mmNo
orientationNofront

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses useful behavior such as automatic placement with room for dimensions, collision avoidance via gap_mm, label naming for section/detail views, and alias handling; however, it does not state that it mutates the active drawing, what permissions/context are required, or what is returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The bullet structure is front-loaded with the core action and kind-specific details. Given 16 parameters, the density is justified, though a few phrases (e.g., orientation '*Name') are cryptic rather than concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers the complex geometry and naming behavior well, but for a 16-parameter mutation tool with no annotations and no output schema, it omits prerequisites such as an active drawing context and leaves the 'part' parameter undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 16 parameters, so the description must compensate. It explains most parameters in context: kind, orientation, at, beside/side, parent, through/normal, label, flip, center, radius_mm, scale, gap_mm, and name-as-alias; only 'part' is left unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the specific verb+resource ("Add a view") and enumerates the four view kinds with their geometric behavior. It is clearly distinct from list_views/edit_view, though it does not explicitly name those siblings as alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains when each kind is appropriate (model, projected, section, detail) and how placement works, but gives no broader when/when-not guidance, no prerequisite that a drawing/document must exist, and no explicit alternative for modifying an existing view.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

auto_layoutB

Lay all views out again: the main view top left, its projected and section views beside it, the rest in the room left, with room for dimensions, at the largest standard scale that fits (or scale). arrange_dimensions=True then lets SolidWorks space each view's dimensions evenly.

NameRequiredDescriptionDefault
mainNo
scaleNo
arrange_dimensionsNo

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, so the description carries the full burden. It does well on the mechanics: largest standard scale that fits unless scale is given, and the effect of arrange_dimensions. It never says the operation overwrites existing view positions or that it needs an open drawing, which matters 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action and dense with meaning; nearly every clause carries layout policy. The opening sentence runs long and packs both placement and scaling into one breath, but there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter mutating tool with no annotations, no output schema and no schema descriptions, the description conveys the layout algorithm but leaves the 'main' parameter and the required document state unexplained. That is a real gap against the complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It explains scale (overrides the auto-chosen largest standard scale) and arrange_dimensions (SolidWorks spaces each view's dimensions evenly), covering two of three parameters, but the 'main' parameter is never mentioned at all — an agent cannot tell whether it takes a view name, index or handle.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb plus resource: it re-lays out the views of a drawing, with the placement policy spelled out (main top-left, projections beside it, remainder in leftover room). An agent can tell this apart from add_view, edit_view and list_views without opening a schema. It just never names a sibling to distinguish against explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The word 'again' hints that this is a re-layout to run after views exist, but there is no statement of when to prefer this over edit_view or manual placement, and no prerequisites such as an active/open drawing. Usage is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_drawingA

Build a drawing from scratch from a spec; edit the spec and rebuild to fine-tune.

spec: {"part": path (default the current part), "sheet": "A3", "scale": "1:2", "views": [{"name": "front", "orient": "front", "at": [x, y]}, {"name": "side", "projected_from": "front", "side": "right"}, {"name": "A-A", "section_of": "front", "through": [x, y, z], "normal": "x"}, {"name": "B", "detail_of": "front", "center": [x, y, z], "radius": 5}], "import": ["model", "callouts", "hole_locations"], "dims": [{"view": "front", "ref": "edge:-x", "to": "hole:H1"}, {"view": "front", "chain": ["edge:-x", "hole:H1", "hole:H2"]}], "callouts": [{"view": "front", "hole": "H1"}], "symbols": [{"type": "datum", "view": "top", "ref": "edge:-z", "label": "A"}, {"type": "gtol", "view": "top", "ref": "edge:+z", "symbol": "parallelism", "tolerance": "0.05", "datums": ["A"]}, {"type": "surface_finish", ...}], "notes": ["..."], "tables": [[["a", "b"], ...]], "gear_table": {"kind": "spur", "teeth": 20, "module": 2}, "props": {"material": "from part"}, "layout": "auto"}. Saved to path when given. Returns what was made and the problems check_drawing finds.

NameRequiredDescriptionDefault
pathNo
specYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It usefully says the drawing is 'Saved to path when given' and that it returns what was made plus problems found by check_drawing, but it does not disclose overwrite behavior, side effects, or permission requirements for a mutating build operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, followed by the necessary spec shape and then the save/return behavior. The large spec block is dense but justified for a complex nested parameter, and there is little wasted prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description gives enough to construct a rough spec and understand that the result includes check_drawing problems, which is important because no output schema exists. However, for a complex mutating tool with no annotations and low schema coverage, it omits important operational details such as overwrite behavior, validation errors, and routing relative to sibling drawing tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the input schema only defines spec as a generic object, so the description must compensate. The inline spec example is quite detailed, covering part, sheet, scale, views, import, dims, callouts, symbols, notes, tables, props, and layout, which substantially clarifies the nested object; it is still an example rather than exhaustive documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: build a drawing from a spec, then edit the spec and rebuild. It clearly frames the tool as a spec-driven drawing builder rather than incremental feature creation, though it does not explicitly distinguish itself from the similar sibling make_drawing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through phrases like 'from scratch' and 'edit the spec and rebuild to fine-tune', giving a reasonable workflow context. However, it does not state when to prefer this over make_drawing, add_view, or edit_view, nor does it give exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_drawingA

Problems on the sheet, to fix before sending the drawing out.

Views or annotations outside the frame or over the title block, views overlapping, texts overlapping or on view geometry, crossing leaders, text under 2.5 mm, probable duplicate dimensions, and hole/cut/fillet/chamfer features no dimension or callout covers.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations at all, the description carries the full burden; it does add real substance by enumerating the specific rules applied, including a concrete threshold ('text under 2.5 mm') and the feature types that must be dimensioned. It does not state that the operation is read-only, whether it needs an open drawing document, how findings are reported (list, severity, coordinates), or whether it modifies anything.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The intent sentence is front-loaded and the checks are packed into one compact enumeration with no filler. It is somewhat list-heavy and would read better with an explicit leading verb, but every clause names a distinct check and earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with no output schema and no annotations, the description covers what is inspected but not what comes back — an issue list, a pass/fail verdict, per-item locations — nor the document precondition. The omission of return shape is the main gap, since no output schema exists to fill it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; the schema is an empty object at 100% coverage. Baseline 4 applies — no parameter gaps exist to compensate for.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description makes clear it reports drawing-sheet defects, and the enumerated categories (views outside the frame, overlapping texts, text under 2.5 mm, duplicate dimensions, undimensioned features) pin the resource down to a drawing sheet rather than a 3D model. It never uses a verb like 'checks' or 'returns', and it doesn't explicitly distinguish itself from the check_* siblings (check_printability, check_interference, check_motion) — the drawing context does that implicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'to fix before sending the drawing out' implies a pre-export QA moment, which is a usable usage cue. However, there is no explicit when-to-use statement, no prerequisite (e.g. an active drawing document must exist), and no reference to alternatives such as render_drawing or check_printability, so the agent must infer the routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_interferenceA

Report component pairs whose solids overlap, with the volume in mm^3.

Touching faces do not count (a bed standing on the floor is fine); only real overlapping material does. count == 0 means the assembly is clash-free.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden and does well: it defines the unit (mm^3), excludes touching faces with a concrete example, and explains the meaning of count == 0. It stops short of stating whether the tool is read-only or how strict the overlap tolerance is, but the core behavior is clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, well-structured sentences lead with the main purpose, add the critical touching-face exclusion, and end with the count interpretation. Every sentence earns its place and no unnecessary details are included.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter analysis command, this is complete: an agent knows what is returned (overlapping component pairs and volumes), how to interpret count, and what edge case (touching faces) is deliberately excluded. No output schema exists, but the description covers the essential return contract.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema accurately reflects that, so there are no parameter semantics to document. The description still adds value by describing the output semantics (per-pair overlap volume and clash count), which is useful in the absence of an output schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Report component pairs whose solids overlap, with the volume in mm^3.' This clearly identifies it as an interference/clash analysis tool and separates it from the creation/getting siblings such as add_box or get_mass_properties, which do not report pairwise overlaps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies this is the tool to use for clash detection and gives an interpretative rule (count == 0 means clash-free), but it never explicitly states when to call it versus alternatives or what conditions apply, such as requiring an open assembly or a prior rebuild.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_motionA

Step a joint through its range and check the assembly at every step.

dimension_name: an angle or distance mate's dimension (add_mate returns it); values in degrees for an angle, mm for a distance, e.g. [30, 60, 90, 120, 150]. Each step gives the overlapping pairs with their volume and the distance between each pair in distances ([["Rod", "Bolt"], ...]); the summary gives clash_free and each pair's smallest distance with the value where it occurs. The dimension goes back to its value afterwards. A joint inside a sub-assembly is 'D1@Angle1@Leg-1'. Refused while a mate is broken: the parts it should hold would drift and the result mean nothing.

NameRequiredDescriptionDefault
valuesYes
distancesNo
dimension_nameYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: it discloses the return structure (per-step overlapping pairs with volumes/distances, summary with clash_free and minimum distance), the reversal side-effect ('The dimension goes back to its value afterwards'), and the failure mode when a mate is broken. It omits performance/timing characteristics, so not quite a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded and the rest is dense but earns its place. Some sentences run long and blend input-parameter guidance with output description, which slightly hurts scanability, but there is little dead weight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 explains returns, the reversal side-effect, parameter formats, and the refusal condition, which is close to complete. It could say a bit more about cost/runtime for a sweep over many values, but nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate and it does for all three parameters: dimension_name (a mate dimension, with the sub-assembly syntax 'D1@Angle1@Leg-1'), values (degrees vs mm with a concrete example array), and the distances pair format. This fully covers the gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'Step a joint through its range and check the assembly at every step.' This is clearly distinct from a static clash tool like check_interference, but the description never names that sibling, so the differentiation is left implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a real precondition (refused while a mate is broken, and why) and explains how to obtain the required dimension_name from add_mate. It lacks an explicit statement of when to prefer this over a static interference check, so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_printabilityA

Check the current part for 3D printing, built along up ('+z', '-y', ...).

Overhangs: downward faces leaning more than overhang_deg from vertical (90 = a flat ceiling) need support; the faces on the bed do not count. Gives the overhanging area per face (list_faces index) with its worst lean and centre, the bed contact area and the print height. With min_wall_mm (e.g. two nozzle widths) also the walls thinner than that, measured straight through the material from points spread over every face, with where each is thinnest. A spot right beside an edge where faces meet at a sharp angle reads as thin as the wedge of material there is: that is the edge, not a wall.

NameRequiredDescriptionDefault
upNo+z
min_wall_mmNo
overhang_degNo

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does so well: it explains overhang detection, bed-contact exemption, the min_wall_mm scan through material, the edge-vs-wall caveat, and the returned per-face measurements. It does not mention computational cost or side effects, but for a read-only analysis tool this is strong disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but front-loads purpose and then adds necessary technical detail. Most sentences earn their place by clarifying non-obvious behavior, though the stream-of-consciousness style and parentheticals make it slightly harder to scan than ideal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of printability analysis, zero annotation coverage, and no output schema, the description is nearly complete: it explains what is measured and roughly what is returned. It could more fully specify the output structure or field names, but an agent can call it correctly from this text.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate and largely does: `up` is illustrated as '+z', '-y', etc.; `overhang_deg` is defined with the 90-degree flat-ceiling example; and `min_wall_mm` is given practical meaning (e.g. two nozzle widths) plus measurement behavior. It stops short of full unit/format detail for every return field.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Starts with a specific verb and resource: 'Check the current part for 3D printing, built along `up`'. It clearly distinguishes itself from generic geometric queries and siblings like check_interference by defining the printability domain (overhangs, bed contact, thin walls).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage ('Check the current part for 3D printing') and explains how optional parameters affect checks, but it does not explicitly say when to prefer this tool over alternatives such as check_interference or measure_distance. Usage is inferable but not routed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

close_documentA

Close one open document by its title (list_documents): a part, assembly or drawing.

Without a title it closes the current part or assembly. save=True saves it over its own file first; otherwise closing never asks and unsaved changes are lost (the result says discarded_changes). Parts that an open assembly loaded (visible false) close with that assembly and are refused here. With no title and no current document it closes SolidWorks' active one, but only when that has no unsaved changes.

NameRequiredDescriptionDefault
saveNo
titleNo

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden and does so thoroughly: it discloses that unsaved changes are discarded unless save=True, that save=True overwrites the document's own file, that the result reports discarded_changes, and that certain loaded parts are refused. This is strong transparency for a destructive operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and title-based behavior are front-loaded, followed by save semantics, refusal behavior, and fallback behavior. Every sentence adds necessary operational detail, and there is no redundant filler despite the number of edge cases covered.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter tool with no annotations or output schema, the description is complete enough to call correctly. It covers the optional title behavior, save behavior, refusal cases, fallback behavior, and even the result indicator for discarded changes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain both parameters, and it does. It explains that title selects a specific open document and that omitting title targets the current part/assembly; it also explains that save=True saves over the original file first, while false means unsaved changes are lost.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (close) and resource (one open document), and scopes it to parts, assemblies, or drawings. It also points to list_documents for obtaining titles, making the operation distinguishable from sibling tools such as save_document and open_document.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly states the two primary usage modes: close by title, or close the current part/assembly when title is omitted. It also states exclusions and fallback conditions, including that assembly-loaded parts are refused and that SolidWorks' active document is closed only when it has no unsaved changes. It does not explicitly compare against save_document as an alternative when saving is the goal, which keeps this from a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

combine_bodiesA

Combine solid bodies of the part into main (a list_bodies name).

operation 'add' joins the tools to main, 'subtract' cuts them out of it, 'common' keeps only what main shares with them. tools: body names, every other body by default. Returns mass properties and the bodies left.

NameRequiredDescriptionDefault
mainYes
nameNoCombine
toolsNo
operationYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It usefully discloses operation outcomes and the return value ('mass properties and the bodies left'), but it does not state whether the operation mutates or consumes source bodies, permission requirements, or reversibility.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action and resource, then efficiently explains operation modes and defaults. Every sentence contributes necessary invocation context with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter tool with no annotations, no output schema, and no schema descriptions, the description is largely complete: it covers purpose, operation semantics, parameter meaning for three of four parameters, and return content. It omits the `name` parameter and mutation/safety context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains `main` as a `list_bodies` name, defines operation values (`add`, `subtract`, `common`), and clarifies `tools` as body names defaulting to every other body. The `name` parameter is left undocumented, preventing a perfect score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: combines solid bodies into `main`. It also defines the three operation modes (`add`, `subtract`, `common`), making the tool's core purpose unambiguous and distinct from sibling body operations like `split_body`.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what each operation does and that `tools` defaults to every other body, which implies usage for combining bodies. However, it does not explicitly say when to use this tool versus alternatives such as `split_body` or when to avoid it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_with_meshB

Compare the current part's cross-sections with a reference mesh's at the same heights.

offset_mm [dx, dy, dz] moves the mesh into the part's frame. A different area means a misread feature; equal areas with different extents a shifted frame. Returns per-section pairs and the worst differences.

NameRequiredDescriptionDefault
axisYes
pathYes
frameNoobject
offset_mmNo
heights_mmYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses useful behavior: what offset_mm does and that the output is per-section pairs plus worst differences, compensating somewhat for the missing output schema. However, it does not state whether the operation is read-only or has side effects, nor any permission/state requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action, then adds interpretation and return-value notes in two short paragraphs. Every sentence carries information; only slight density/crypticness in the interpretation sentence costs it a point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter comparison tool with no annotations and no output schema, the description usefully covers the return shape and offset behavior, but leaves axis, heights_mm, frame, and path undefined and omits side-effect/permission context. Adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and there are 5 parameters, so the description must compensate. It only clarifies one parameter (offset_mm as [dx, dy, dz] moving the mesh into the part's frame); path, axis, heights_mm, and frame semantics remain entirely undocumented in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: comparing the current part's cross-sections against a reference mesh's at matching heights. This clearly distinguishes it from construction siblings, though it does not explicitly contrast itself with the related slice_mesh tool. An agent can tell what it does without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains how to interpret results (different area = misread feature; equal areas = shifted frame) but never says when this tool should be chosen over alternatives or what preconditions apply (e.g., mesh must exist, part must be loaded). No when-to-use or when-not guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cut_offset_pocketA

Pocket a planar face, leaving a rim rim_mm wide along its outline.

The recessed web of an I-beam that follows a curved link, a tray, or a frame (depth_mm omitted: through all). The face is the one facing face ('+z', ...) through the point (x, y, z). The rim follows the outline, arcs and splines included; holes in the face stay holes. rim and depth come back as dimensions, and the pocket follows the outline when it changes. Returns mass properties.

NameRequiredDescriptionDefault
faceYes
nameNoPocket
x_mmYes
y_mmYes
z_mmYes
rim_mmYes
depth_mmNo

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the through-all default when depth_mm is omitted, how the target face is identified, that the rim follows arcs and splines, that interior holes are preserved, that rim/depth become dimensions, and that mass properties are returned. It omits editability/reversibility of the resulting feature, so it falls short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action and constraint in the first sentence, then layers geometry and return-value details. The parenthetical about the I-beam/tray/frame example is slightly digressive, but nearly every clause carries usable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter, no-annotation, no-output-schema geometry tool, the description covers the face selection, depth default, outline behavior, and return values ('Returns mass properties'), which is most of what an agent needs. It could still say more about the feature's post-creation lifecycle (edit/suppress/delete).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it does for most parameters: face, the (x, y, z) point used to select it, rim_mm, and depth_mm's null-means-through-all semantics. Only the `name` parameter (default 'Pocket') is left unexplained, a minor gap against a 7-parameter schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Pocket a planar face') plus the defining geometric constraint (rim rim_mm wide along the outline). This distinguishes it from the neighboring cut_profile, cut_profile_on_face, and cut_slot siblings, which produce different geometry.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete use-case context (recessed web of an I-beam, tray, frame) and a default behavior (depth_mm omitted = through all), which implies usage. However, it never explicitly says when to prefer this over cut_profile_on_face or cut_slot, nor states prerequisites such as the part needing an open planar face.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cut_profileA

Cut a polygonal pocket, slot or window; the polygon is auto-closed.

  • Default: points_mm = [[x,y], ...] cut down from the +Z face. rotate_deg turns the profile about about_mm as for add_extruded_profile (notches at +/-60 degrees around a pivot).

  • face='+x' (or ...): points_mm = [[x,y,z], ...] on one face facing that way, found through them; for side pockets and cutouts.

  • plane='right' ('front' z = 0, 'top' y = 0, 'right' x = 0, or 'Plane1'): points_mm = 3D points ON that plane, cut symmetric about it. For shapes seen from the side: wedges, windows, symmetric recesses. keep_inside=True cuts away everything OUTSIDE the profile (through all): extrude the front view, cut the side view with keep_inside, and the part is the 3D shape both views agree on.

Blind by depth_mm (with plane=: in total, centred on the plane), or through all when omitted. corner_radii_mm rounds the corners as for add_extruded_profile. Returns mass properties.

NameRequiredDescriptionDefault
faceNo
nameNoCut
planeNo
about_mmNo
depth_mmNo
points_mmYes
rotate_degNo
keep_insideNo
corner_radii_mmNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and does disclose key behaviors: polygon auto-closure, through-all when depth is omitted, symmetric cutting about a plane, corner rounding, and that mass properties are returned. It omits whether the cut is reversible/feature-tree recorded and any failure conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Bulleted, front-loaded and information-dense, with no filler sentences. Minor awkwardness ('turns the profile about about_mm as for add_extruded_profile' and the doubled 'about') slightly hinders parsing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter mutation tool with no annotations and no output schema, the description covers geometry modes, depth behavior, and the return value (mass properties). Not covered: interaction with feature history/naming, or errors on invalid/self-intersecting profiles.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, and the description compensates thoroughly: points_mm dimensionality varies by mode (2D vs 3D), face, plane semantics with example values, about_mm as pivot for rotate_deg, depth_mm as blind vs through-all, keep_inside inversion, and corner_radii_mm. Only 'name' is undocumented, a minor omission.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource: 'Cut a polygonal pocket, slot or window', which immediately separates it from sibling cutters like cut_slot and cut_offset_pocket by emphasizing arbitrary polygons. The auto-close behavior is noted up front.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear mode-selection guidance: default +Z face, face='+x' for side pockets, plane= for side-view shapes, and keep_inside for intersect-two-views work. It does not explicitly say when to prefer this over cut_slot / cut_offset_pocket / cut_sketch, leaving one inference gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cut_sketchA

Cut an existing sketch of the current part by name into the body.

depth_mm deep, or through all when depth_mm is omitted, against the sketch's normal: into the part from a face. From a plane with the part in front of it (a box on the Front plane) give reverse=True. Returns mass properties.

NameRequiredDescriptionDefault
nameNoCut
sketchYes
reverseNo
depth_mmNo

TDQS

A3.7/5.0
Behavior4/5

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 discloses mutation into the body, default through-all behavior when depth_mm is omitted, direction relative to the sketch normal, reverse handling, and that mass properties are returned. It omits failure modes or dependencies, but coverage is strong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loads the core action. The line breaks are somewhat awkward, but every clause contributes operational information and no sentence is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, mentioning that it returns mass properties is helpful. Core behavior and the key direction/depth parameters are covered, though the optional name parameter and sibling-tool routing remain unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds meaning for sketch (by name), depth_mm (deep or through all), and reverse (when to set True), but never explains the name parameter or its default 'Cut', leaving partial compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: cutting an existing sketch of the current part into the body. It clearly is not a generic process tool, but it does not explicitly distinguish itself from sibling tools such as cut_profile or cut_profile_on_face.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides operational conditions for parameters, e.g. through-all when depth_mm is omitted and reverse=True for a plane with the part in front of it. It does not explain when to choose this tool over sibling cut operations, so usage guidance remains implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cut_slotA

Cut a straight slotted hole (obround) on the +Z face.

Centred at (x_mm, y_mm); length_mm is centre-to-centre of the rounded ends, width_mm the slot width, angle_deg its orientation in the +Z plane (0 = +X). Cut blind by depth_mm or through when omitted. Returns mass properties.

NameRequiredDescriptionDefault
nameNoSlot
x_mmYes
y_mmYes
depth_mmNo
width_mmYes
angle_degNo
length_mmYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden and does so well: it explains blind versus through cuts based on depth_mm, clarifies coordinate/orientation semantics, and states that mass properties are returned. It does not mention prerequisites or reversibility, but core cut behavior is transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, starting with the operation and face, then defining geometry parameters, then covering depth behavior and return value. Every sentence carries necessary information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and no output schema, the description covers the essential geometry, defaults, and return behavior. It is slightly incomplete only in not stating the prerequisites (e.g., an active part or face context) and not differentiating from overlapping cutting tools, but an agent can invoke it correctly from the provided details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, so the description must compensate. It meaningfully defines every functional parameter: x_mm/y_mm as the center, length_mm as centre-to-centre, width_mm as slot width, angle_deg with 0=+X, and depth_mm as blind depth or through when omitted. Only the trivial name parameter is left to inference.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Cut') and resource ('straight slotted hole (obround) on the +Z face'), identifying exactly what the tool does. This distinguishes it from related sibling tools like cut_profile or add_hole without requiring the agent to inspect schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: whenever a straight slotted hole on the +Z face is needed. However, it does not explicitly compare to alternatives such as cut_profile_on_face or add_hole, nor does it state when not to use it, leaving some selection guidance to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_componentA

Remove a component from the current assembly, with the mates that hold it.

component: its name in list_components ("Bracket-1", or "Bracket" while there is one). Returns the mates deleted, how many components are left and the assembly's mass properties.

NameRequiredDescriptionDefault
componentYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden and does well by disclosing that the component and its holding mates are deleted, plus what is returned. It does not explicitly state irreversibility or undo behavior, which is a minor gap for a destructive operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the action and scope, then efficiently covers the parameter and return values. Every sentence contributes useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter destructive tool with no output schema and no annotations, the description supplies the needed purpose, parameter sourcing, deletion scope, and return values. An agent has enough information to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description fully compensates by explaining that component is the name from list_components, including exact examples and the single-match shorthand. This adds substantial meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: removing a component from the current assembly, and it explicitly includes the mates holding it. This clearly distinguishes it from related siblings like delete_mate and delete_feature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context is clear: use this to remove a component and its holding mates from the current assembly. It does not explicitly name alternatives or exclusions, such as replace_component, but the intended use case is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_equationA

Delete an equation by the name it sets ("L_thigh", "D1@Boss") or its list_equations index.

Rebuilds and returns what was deleted, failing_features and mass properties.

NameRequiredDescriptionDefault
equationYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present the description carries the full burden, and it does disclose the key side effect: the model is rebuilt as part of the deletion. It also names the return payload (deleted item, failing_features, mass properties). It stops short of saying whether deletion is irreversible or what happens when the equation name/index is not found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the identifier formats an agent needs before anything else. Minor awkwardness in the phrase 'the name it sets' and a slightly clipped second sentence, but nothing wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-annotation, no-output-schema mutation tool, the description covers the essentials: input formats, the rebuild side effect, and the return contents. Remaining gaps are failure/error behavior and reversibility, which are secondary for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the single 'equation' property has no description, so the description must compensate — and it largely does, explaining the accepted name syntax with two concrete examples and the alternative list_equations index. It lacks detail on index base (0- or 1-based) or quoting rules.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (delete an equation) and immediately defines the two accepted identifier forms — the name the equation sets, e.g. "L_thigh" or "D1@Boss", or its list_equations index. This separates it cleanly from set_equation/set_equations/list_equations without the agent needing to open any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly tells the agent how to supply the argument (name or list_equations index), which is genuine usage help. It does not, however, state when to prefer this over alternatives such as set_equation (modify) or delete_feature, nor any preconditions. Adequate but with clear gaps.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_featureA

Delete a feature (a list_features name) with its sketch, then rebuild and remeasure.

The way to undo a step. Refuses when other features are built on it and names them, and what is built on those; with_children=True deletes them all. dry_run=True only lists what would go (would_delete). Equations that named its dimensions break and come back as broken_equations; with_equations=True deletes them (global variables stay).

NameRequiredDescriptionDefault
nameYes
dry_runNo
with_childrenNo
with_equationsNo

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full burden and does so well: it discloses the refuse-on-dependents behavior and that dependent features are named, the with_children override, dry_run semantics (would_delete), the equation breakage and broken_equations reporting, the with_equations override with the caveat that global variables survive, and the implicit rebuild/remeasure side effect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then layered with conditions in a logical order. Dense and slightly run-on in the middle clause ("names them, and what is built on those"), but essentially every sentence conveys a distinct behavioral fact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, four-parameter tool with no annotations and no output schema, the description is nearly self-sufficient, even naming return keys (would_delete, broken_equations). Minor gaps remain around confirmation/permission expectations and the source from which the feature name must be obtained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate for all four parameters, and it explains dry_run, with_children, and with_equations precisely in terms of observable effects. The required name parameter is only glossed as "a list_features name," leaving its format slightly implicit, but overall coverage is strong.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb ("Delete") plus resource ("a feature"), and it even resolves the argument identity by pointing to list_features names. It also frames the operation as "the way to undo a step," which distinguishes it from sibling mutators like suppress_feature and delete_equation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear operational context (undo a step) and conditions under which behavior changes: refuses when children exist, with_children=True overrides that. However it never explicitly contrasts delete_feature against the obvious sibling alternative suppress_feature, so an agent must infer when deletion beats suppression.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_mateA

Delete a mate of the current assembly by name (list_components, or add_mate's 'mate').

A list of names deletes them all at once, with one rebuild. Their components are free to move again. Returns what was deleted and how many mates are left (list_components lists them).

NameRequiredDescriptionDefault
nameYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the destructive effect (components are free to move again), the batch semantics with one rebuild, and the return content. It does not state irreversibility or what happens if a name is not found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action and scope, then bulk semantics, then return behavior. The parenthetical pointers are compact and each sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one parameter and no output schema, the description covers input sourcing, bulk behavior, side effects, and return values, which is enough to invoke it correctly. Error cases and the suppress-vs-delete distinction are the remaining gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it does: it explains that the single 'name' parameter accepts either one name or a list, and that a list deletes all at once with one rebuild. It adds meaning beyond the anyOf schema, though it doesn't address matching rules or duplicates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Delete a mate") scoped to the current assembly and keyed by name, which separates it from delete_component and the geometry siblings. It does not explicitly contrast with suppress_mate, the nearest non-destructive alternative, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tells the agent where names come from (list_components, or add_mate's 'mate') and documents the bulk form as deleting everything with a single rebuild, which is real usage guidance. It offers no explicit when-not or "use suppress_mate instead if you want to keep the mate" routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

drawing_fileA

The current drawing's document: action 'new' (sheet 'A4' upright or 'A3'..'A0', part: the saved model its views show, default the current part), 'open' (path .slddrw), 'save' (path .slddrw), 'export' (path: PDF, DXF, DWG, PNG/JPG/TIF of the sheet) or 'close' (without saving).

The drawing is kept apart from the current part. 'new' returns the frame, title block and free areas in sheet mm.

NameRequiredDescriptionDefault
partNo
pathNo
sheetNoA3
actionYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations at all, the description carries the full behavioral burden, and it does disclose two valuable things: the drawing is kept apart from the current part, and 'new' returns frame, title block and free areas in sheet mm. It says 'close' discards unsaved work, which is useful. However, it is silent on whether 'save' overwrites an existing file, whether open/save/export fail on missing paths, and whether operations are undoable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The action enumeration is front-loaded in the first sentence, and the second paragraph adds two genuinely non-redundant facts (drawing/part separation, the return contents of 'new'). The nested parentheticals make it dense but every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter, multi-mode document tool with no annotations, no output schema, and zero schema descriptions, the definition does real work but not enough: sibling disambiguation, error behavior, and the save/export overwrite semantics are all missing, leaving the agent to guess on the risky paths.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (bare titles and defaults only), so the description has to carry parameter meaning and mostly does: it maps 'part' to the saved model whose views are shown, 'path' to .slddrw for open/save and to PDF/DXF/DWG/PNG/JPG/TIF for export, and 'sheet' to A4-upright or A3..A0. Gaps remain — the schema default for sheet is 'A3' while the description foregrounds 'A4' upright, and the interaction of 'part' with the other actions is unstated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete resource (the current drawing's document) and enumerates five specific actions — new, open, save, export, close — with the argument shapes each accepts, so an agent knows exactly what the tool manipulates. It loses a point because several siblings (open_document, close_document, save_document, export, make_drawing) sound like they cover the same ground and the description never says how this tool differs from them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the per-action argument notes: 'new' for fresh sheets, 'open'/'save' with a .slddrw path, 'export' for PDF/DXF/PNG output, 'close' without saving. But there is no explicit guidance on when to pick this tool over the sibling open_document, close_document, save_document or export tools, which is the most consequential decision an agent faces here.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

edit_annotationA

Change an annotation by id ('RD3@Drawing View1'), or delete=True it.

prefix / suffix (a prefix replaces SolidWorks' own symbol: a radius needs 'R', e.g. '4X R'), precision (decimals), tolerance [upper, lower] mm, fit ('H7'), a note's text, its place at=[x, y] (sheet mm), diametric=True. A model dimension keeps these in the part (the result says changes_part).

NameRequiredDescriptionDefault
atNo
fitNo
textNo
deleteNo
prefixNo
suffixNo
diametricNo
precisionNo
toleranceNo
annotation_idYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, so the description carries the burden. It usefully discloses a side effect not visible in the schema: editing a model dimension persists changes in the part and the result reports changes_part. However, it does not state permissions, reversibility, or the full return shape, leaving meaningful gaps 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core action and delete alternative are front-loaded in the first sentence, and the parameter notes follow in compact clauses. It is dense and slightly run-on, but nearly every clause carries parameter or behavioral information that earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter mutation tool with no annotations and no output schema, the description is fairly complete: it names the resource, gives an id example, covers most parameters, and notes the changes_part result. Return format is only partially hinted at, keeping it short of full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it largely does: it explains prefix/suffix semantics (solidWorks symbol replacement with '4X R' example), precision=decimals, tolerance=[upper,lower] mm, fit='H7', text, at=[x,y] sheet mm, and diametric=True. Only a couple of params (annotation_id usage nuances, exact tolerance ordering) are lightly covered, but overall it fills the schema gap well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Change an annotation by id') with a concrete id example ('RD3@Drawing View1') and the delete alternative. It is distinguishable from siblings like add_dimension/add_note (which create) and set_dimension, though it does not explicitly name its closest sibling to contrast with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage by explaining how to set each field and offering delete=True as the removal path, but does not state when to use this versus set_dimension, add_dimension, or import_dimensions. The when-to-use context is inferred rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

edit_viewA

Move a view (its geometry centred on at=[x, y], or beside='' on side, gap_mm apart; align 'center' or 'start'), change it (scale '1:2' or 'sheet'; display 'hidden_removed', 'hidden_visible', 'wireframe', 'shaded', 'shaded_edges'; tangent_edges; new_name), or delete=True it.

Projected and section views stay aligned with their parent, so they only move along that line.

NameRequiredDescriptionDefault
atNo
nameYes
sideNo
alignNocenter
scaleNo
besideNo
deleteNo
gap_mmNo
displayNo
new_nameNo
tangent_edgesNo

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry behavioral disclosure. It does disclose that delete=True deletes the view and that projected/section views stay aligned and move only along that line, but it omits permission requirements, reversibility/persistence, side effects on dimensions or annotations, and return behavior. Clear gaps remain.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is front-loaded with move/change/delete and every sentence carries information, including the valuable alignment caveat. The long parenthetical first sentence is dense but not padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter mutation tool with no annotations, no output schema, and no schema descriptions, the description is largely complete: it covers the main operations, most parameter values, and the key alignment constraint. It still leaves some gaps around required name semantics and mutation side effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage across 11 parameters, the description compensates well by defining at as [x, y], beside/side/gap_mm, align values, scale values, display modes, new_name, and delete=True. It does not explain the required name parameter or elaborate on tangent_edges, so it is not fully complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names the resource (a view) and three concrete operations (move, change, delete) with parameter syntax, so an agent can distinguish it from add_view and list_views. It is a specific verb-plus-resource description, not a tautology.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists capabilities (move/change/delete) that imply when the tool is useful, but it does not explicitly say when to choose it over add_view or list_views, nor state prerequisites such as the view already existing. The guidance is inferable rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

exportA

Export the current part or assembly to STEP/STL/IGES/Parasolid/3MF (format from extension).

Silent (no prompts). Verifies the file appears on disk and reports its size. For STL/3MF, tessellation resolution is set first: quality 'coarse'|'fine' (default 'fine' for print quality), or pass deviation_mm (+ optional angle_deg) for a reproducible custom resolution (overrides quality). Ignored for other formats. An assembly goes to STL as one file, or one file per component with per_component=True (SolidWorks names them); files lists what was written. STL/3MF keep the part's or assembly's own coordinates (frame), also per component, so a mesh measures back where the model is; slicers place it anyway.

NameRequiredDescriptionDefault
pathYes
qualityNofine
angle_degNo
file_formatNo
deviation_mmNo
per_componentNo

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does well: it discloses that export is silent (no prompts), verifies the file exists on disk, reports its size, describes the assembly-to-STL naming/coordinate behavior, and explains the tessellation override logic. It omits overwrite/permission behavior and failure modes, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Content is front-loaded (format, then silent/verification behavior, then format-specific tessellation rules), and each sentence carries real information. It is on the longer side with a few parenthetical asides, but nothing is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-output-schema, no-annotation mutation tool, it covers the return signal (`files` lists what was written, size reported) and the tricky assembly/coordinate cases. The remaining gap is the unexplained file_format parameter and lack of error/overwrite semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it explains quality, deviation_mm, angle_deg, and per_component well. However, it never clarifies the file_format parameter (it instead says format comes 'from extension') or the path parameter, leaving two of six params semantically unresolved.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (export), the exact resource (current part or assembly), and enumerates the supported interchange formats (STEP/STL/IGES/Parasolid/3MF), so the purpose is unambiguous. It does not explicitly contrast itself with save_part/save_assembly, but the format list implicitly separates it from native-save siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied (producing interchange meshes/CAD for external tools) rather than stated. There is no explicit 'use this vs. that' routing and no mention of prerequisites like an active/fully-rebuilt document, which matters given it targets 'the current part or assembly'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

extrude_sketchA

Extrude an existing sketch of the current part by name, e.g. one a person drew.

depth_mm along the sketch's normal (reverse=True: the other way), merged with the body. Or up_to='next': up to the next face of the part, ending on its shape (a post into a curved wall) and following it when it changes; or up_to='@x,y,z': up to the face through that point, also where 'next' fails (a side of the profile on a face: the refusal names a point ahead). The sketch keeps its own dimensions and relations, so the person's design stays in charge; read_sketch shows it first. Returns mass properties.

NameRequiredDescriptionDefault
nameNoExtrude
up_toNo
sketchYes
reverseNo
depth_mmNo

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations the description carries the full burden, and it does disclose real behavior: the result is merged with the body, the sketch keeps its dimensions/relations (a non-destructive claim about authored geometry), the return is mass properties, and it hints at failure semantics ('the refusal names a point ahead'). It omits whether the operation is purely additive and what preconditions (active part, valid sketch) apply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the body is a run-on of nested parentheticals and asides ('e.g. one a person drew', 'so the person's design stays in charge') that make the mode logic harder to scan than it needs to be. Information density is high, yet the structure could be tightened without losing content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, and five undocumented parameters, the description supplies a lot: modes, direction, return value, and sketch preservation. It remains a bit short on preconditions and on the 'name' argument for a tool whose siblings imply richer feature-graph behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it does well for three of five parameters: depth_mm is 'along the sketch's normal', reverse=True goes the other way, and up_to accepts 'next' or a '@x,y,z' point with distinct behaviors. The 'name' parameter (feature naming, default 'Extrude') is never explained, leaving one gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence gives a specific verb+resource ('Extrude an existing sketch of the current part by name'), and the qualifier 'existing sketch' implicitly distinguishes it from siblings like add_extruded_profile that create new geometry. It does not name any sibling outright, so the differentiation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear selection logic among modes: depth_mm along the normal, or up_to='next', or up_to='@x,y,z' when 'next' fails, plus the prerequisite 'read_sketch shows it first'. It never says when to prefer this tool over cut_sketch or add_extruded_profile, so the routing guidance is incomplete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_bounding_boxB

Get the bounding box (min/max/size in mm) of the current part, tight, or of the whole assembly.

NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With zero annotations the description carries the full burden, and it does disclose the return shape and units (min/max/size in mm), which is genuinely useful. It omits whether the call requires a rebuilt/up-to-date model, whether it operates on the active document, and how the part-vs-assembly scope is actually resolved.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no padding. The compressed "part, tight, or assembly" phrasing saves words at the cost of a little clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema and no annotations, so the description must define the result — it does so at a high level (min/max/size in mm) but leaves the scope behavior unresolved. For a simple read tool this is close to adequate, but the ambiguity about which body/assembly is measured is a real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes no parameters, so there is nothing to disambiguate and the baseline of 4 applies. The only wrinkle is that the description implies a scope choice that has no corresponding input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Get the bounding box") and names the returned fields (min/max/size in mm), which distinguishes it from siblings like measure_distance or get_mass_properties. The trailing clause "of the current part, tight, or of the whole assembly" is ambiguous — it reads like selectable scopes, yet the tool takes no parameters.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to call this versus adjacent tools such as get_mass_properties, measure_distance, or list_bodies. The reader must infer the use case entirely from the one-line purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_mass_propertiesA

Get volume (mm^3), mass (kg), surface area (mm^2), centre of mass, and bounding box.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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 lists the output values and their units, but does not communicate whether this is a read-only operation, whether it requires a loaded model, whether it depends on a rebuild, or what happens if no part is open. These are important preconditions that the description omits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence that lists the outputs in a logical order. It is immediately front-loaded with the action and the main resource, and every element (units and property names) adds value. No superfluous words or filler are present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with no output schema and no annotations, the description should at least hint at preconditions (e.g., 'on the current model') and possibly note that this is a combined query replacing multiple calls. It does specify the output units and properties, but misses guidance on when it is appropriate to call (e.g., after a rebuild) and how it compares to the get_bounding_box sibling. This is sufficient for a trivial command but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is nothing to document beyond the already-empty schema. The description adds no parameter semantics, but the baseline for 0 parameters is 4, which is appropriate since the lack of parameters is self-evident and no further clarification is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get') and a resource ('mass properties') and enumerates the exact quantities returned (volume, mass, surface area, center of mass, bounding box). It is clearly distinguishable from siblings like get_bounding_box, which returns only the bounding box, so the purpose is precise and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives. It does not mention that it operates on the current part or assembly, nor does it reference the more specialized get_bounding_box or other related getters. An agent has to infer the appropriate context, which is a significant gap for a simple tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_statusA

Report whether SolidWorks is reachable, its revision, this server's version, and the active/current part.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full burden, and it does so by enumerating exactly what is reported (reachability, revision, server version, active part), making clear this is a non-mutating read. It does not say whether an unreachable SolidWorks produces an error or a negative status, which is the one behavioral gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with the verb first and the four returned items enumerated compactly. No filler, no repetition of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 must convey the return content itself — and it does, listing all four reported fields. Only the failure/unreachable-path behavior is left unspecified, a minor omission for a zero-arg status tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Report') plus the exact payload: reachability, SolidWorks revision, server version, and the active part. Against a sibling list made up almost entirely of modeling/mutation operations, this is unmistakably the diagnostic health-check tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated — an agent can infer this is the preflight/health check to run before issuing modeling commands. No explicit when-to-use, prerequisites, or named alternatives are given, though for a zero-parameter diagnostic tool little guidance is genuinely needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_dimensionsB

Bring in what the model already knows. kinds: 'model' (its dimensions, each once), 'callouts' (one counted hole callout per set of identical Hole Wizard holes, '4X ...'), 'hole_locations' (their centres dimensioned from the left and bottom edges), 'center_marks' (centre marks and lines).

Default the first three, into every view (or one).

NameRequiredDescriptionDefault
viewNo
kindsNo

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It discloses the default kinds and that it operates on every view or one, plus 'each once' for model dimensions and counted callouts, but it omits mutation side effects, duplicate handling, prerequisites, and what happens to existing annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loads the high-level purpose before defining kinds and the default behavior. The fragmented phrasing is a minor readability issue, but there is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and 0% schema descriptions, the description gives enough to invoke the tool with view and kinds. It remains incomplete for a mutating import operation because it does not cover active-document requirements, return behavior, or duplicate/error handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does explain the meaningful values for kinds and the all-views-vs-one-view scope, but the view parameter is only implied and details like exact default composition ('the first three') remain slightly ambiguous.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific import operation and enumerates four kinds of content it can bring in: model dimensions, callouts, hole locations, and center marks. It does not explicitly name the target drawing/view context or distinguish itself from siblings like add_dimension or list_dimensions, so it is clear but not fully sibling-differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Bring in what the model already knows' implies usage when model-derived dimensions/annotations should be imported, and 'Default the first three, into every view (or one)' gives default scope. However, it does not explicitly say when to use this instead of add_dimension, add_note, or manual annotation tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

insert_componentA

Insert a .sldprt, or a .sldasm as a sub-assembly, with its ORIGIN at (x, y, z) mm.

The part's own origin lands exactly on that point, and the placement is read back and verified. fixed=True pins the component; fixed=False leaves it free for mates. The default fixes only the FIRST component, giving the assembly a ground to build against. Returns the component's name, placement and box.

NameRequiredDescriptionDefault
pathYes
x_mmNo
y_mmNo
z_mmNo
fixedNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses that placement is read back and verified, that fixed controls whether the component is grounded or mateable, and what the call returns (name, placement, box). It doesn't cover failure modes for an invalid path, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and coordinate semantics, then the fixed behavior. Slight redundancy between 'with its ORIGIN at (x, y, z) mm' and 'The part's own origin lands exactly on that point', but every sentence otherwise carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description covers the action, coordinate units, the fixed semantics, the default behavior, and the return payload. Only edge cases (invalid path, unit assumptions for the returned box) are left unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it does: path is tied to .sldprt/.sldasm, x/y/z are tied to the origin landing point in mm, and fixed is given true/false semantics plus a default rule. Units and meaning are supplied for essentially every parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (insert), resource (.sldprt / .sldasm as sub-assembly), and the exact placement semantics (origin at x,y,z mm). An agent can distinguish this from set_component_transform or delete_component without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clearly explains the fixed parameter's operational consequence (pins vs. free for mates) and the default behavior (only the first component is fixed to give the assembly a ground). No explicit when-to-use-vs-sibling routing, but the context is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_bodiesA

List the part's solid bodies: name, volume and bounding box.

A part holds several after merge=False or split_body; combine_bodies joins them again.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, so the description carries the burden. It discloses the read-only nature implicitly (listing) and the effect of merge/split on body counts, which is useful contextual behavior. However it doesn't clarify state/pagination/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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the primary action and outputs. The second sentence adds operational context without bloat, though it could be slightly tighter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, so the description must describe return values—and it does name the fields returned. However it omits any note about empty parts, errors, or relationships to sibling list tools, leaving some contextual gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, so baseline 4 applies. There are no parameters to document, and the description does not need to compensate for any parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (list) and resource (the part's solid bodies) and enumerates returned fields (name, volume, bounding box). Easily distinguished from siblings like list_faces or list_edges.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage via a note about when a part holds several bodies (after merge=False or split_body) and the inverse operation combine_bodies. But it doesn't explicitly say when to call this versus alternatives like list_features; usage is inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_componentsA

List the assembly's components (name, path, fixed, position, rotation, bounding box) and mates.

Positions are in mm and rotations in degrees, both in assembly coordinates; the bounding box of each component is in assembly coordinates too. Each mate gives its name, SolidWorks type, the components it holds, the dimension of a distance or angle mate, and an error when SolidWorks flags it. On a big assembly, narrow it: name keeps the matching components ('Bolt*' as a wildcard, 'bolt' anywhere in the name) and the mates holding them; mates=False leaves the mates out; brief=True gives only name, path, fixed.

NameRequiredDescriptionDefault
nameNo
briefNo
matesNo

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses return content in detail, including units, coordinate systems, mate fields, and SolidWorks mate errors, but it does not explicitly state that the operation is read-only or clarify prerequisites such as an active assembly document.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, then supplies units, mate details, and filtering guidance in a compact sequence. Every sentence adds useful information for invocation or result interpretation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description appropriately explains what components and mates contain. It is nearly complete for selection and invocation, though it could mention required document state or explicitly confirm the read-only nature of the operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: 'name' supports wildcard and substring matching, 'mates=False' omits mates, and 'brief=True' returns only name, path, and fixed. It could be slightly clearer about default/null behavior for 'name', but all three parameters are meaningfully explained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a precise verb and resource: 'List the assembly's components ... and mates.' It also names the returned component and mate fields, so an agent can distinguish it from sibling list tools like list_bodies, list_faces, list_features, and list_equations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear operational guidance for large assemblies: narrow by 'name', suppress mates with mates=False, or use brief=True for a minimal result. It does not explicitly compare against alternative tools, but the within-tool filtering guidance is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_dimensionsA

List every dimension in the current part: name (for set_dimension), feature, value, unit.

For a part opened from disk, or when the names the tools returned are gone.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the behavioral burden. It usefully discloses the returned fields and the reopened-part/name-loss scenario, but does not explicitly confirm read-only behavior, permissions, or error behavior; 'List' implies a safe read, but the disclosure is thin for a zero-annotation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loads the action and output fields. The second sentence is a sentence fragment, which slightly weakens structure, but there is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple no-parameter list tool with no output schema, the description does a good job naming the returned fields and giving a use condition. It is largely complete, though it could clarify return order or shape for greater certainty.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so parameter semantics are not applicable. Schema coverage is 100%, and the empty input schema is self-explanatory. Baseline 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'List every dimension in the current part.' It also lists the returned fields and ties the name field to set_dimension, so an agent can distinguish this tool from sibling set_dimension.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an implied use case: 'For a part opened from disk, or when the names the tools returned are gone.' This points to when the tool is needed, but it does not explicitly state when not to use it or name alternative sibling tools beyond the parenthetical reference to set_dimension.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_documentsA

List the documents open in SolidWorks: title, path (empty until saved), type, unsaved changes.

current marks the one the tools work on, active SolidWorks' own. Parts an open assembly loaded come along, with visible false.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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 usefully discloses behavioral details beyond the schema: path is empty until saved, 'current' vs 'active' markers carry different meanings, and assembly-loaded parts appear with visible false. It does not explicitly state read-only nature or error conditions, but for a zero-parameter list tool this is substantial disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and uses a second sentence for important output semantics. It is tight and free of filler, though the final clause is slightly cryptic and could be split for readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must carry return-value meaning. It names the key fields (title, path, type, unsaved changes) and explains the current/active distinction and assembly-loaded parts. It is nearly complete for a simple list tool, missing only a fuller structural description of the returned list.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4 per the rubric. There are no parameter semantics to clarify, and the description does not pretend otherwise.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the documents open in SolidWorks') and enumerates the returned fields, so an agent can identify it apart from list-oriented siblings like list_bodies or list_features. The scope is precise enough that no sibling ambiguity remains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description never says when to call this tool versus alternatives such as get_status, nor does it state prerequisites or exclusions. The second sentence explains how to read output but offers no routing guidance, leaving usage entirely inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_edgesA

List the part's edges: index, type, length, ends; lines also axis and midpoint.

Narrow it on a big part: face (a list_faces index, "#5"), feature (the edges of the faces it made), within_mm ([[x1, y1, z1], [x2, y2, z2]]: both ends inside), min_length_mm. Indices are always those of the whole part: use them with add_fillet/add_chamfer edges="2,5".

NameRequiredDescriptionDefault
faceNo
featureNo
within_mmNo
min_length_mmNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it delivers key behavioral context: what each returned edge includes, that lines additionally carry axis and midpoint, and critically that indices are always whole-part indices (stable regardless of filtering). It doesn't state read-only safety or error behavior, but the disclosed index semantics are a genuine behavioral trait beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the purpose and return shape, then the filters, then the index-usage note, with no filler sentences. The line break lands mid-clause ('face (a list_faces index, "#5")') and the density is high, but every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 still covers the return fields, all filter parameters, and how the indices are consumed downstream, which is enough to invoke the tool correctly. It omits pagination/limits and error behavior on an invalid face/feature, minor gaps for a listing tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate fully, and it does: face is given the '#5' format and its source (a list_faces index), feature is defined as the edges of the faces it made, within_mm is given the explicit [[x1,y1,z1],[x2,y2,z2]] shape and 'both ends inside' semantics, and min_length_mm is self-describing. This is far richer than the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the part's edges') and immediately enumerates the returned fields (index, type, length, ends, axis, midpoint), which distinguishes it from sibling listing tools like list_faces and list_bodies. An agent can tell exactly what this tool produces without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells the agent to 'Narrow it on a big part' and lists the filter conditions for doing so, plus how the returned indices feed into add_fillet/add_chamfer. It lacks an explicit statement of when NOT to use it or a named sibling alternative, so it falls just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_equationsA

List the equations and global variables: index, equation, name it sets, value, global.

broken marks an equation that names a dimension or variable that is gone, as one left behind by delete_feature; delete_equation removes it. automatic_solve_order False means SolidWorks solves them as listed: one above the line that sets its variable then warns and lags a rebuild. Any set_equation turns it on.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden. It does add real behavioral value by explaining the `broken` flag (an equation whose dimension/variable is gone, left by delete_feature) and `automatic_solve_order=False` (solver warns/lags a rebuild). However, it never explicitly states this is a read-only, side-effect-free operation, which is a notable omission for a tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, which is good, but the second half is dense and hard to parse ('one above the line that sets its variable then warns and lags a rebuild'). The jargon-heavy explanation of automatic_solve_order could be tightened. It is not wasteful in length but loses clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description must explain the returned data, and it does enumerate the returned fields plus the meaning of the `broken` and `automatic_solve_order` states. For a zero-parameter list tool this is close to complete, though the ambiguous automatic_solve_order prose leaves some interpretation to the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so per the rubric the baseline is 4. There is nothing for the description to disambiguate, and it correctly spends no space on parameter detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the equations and global variables') and even enumerates the fields returned (index, equation, name it sets, value, global). It is clearly distinguishable from set_equation, delete_equation, and list_dimensions by resource. It stops short of explicitly naming which sibling to prefer, so not a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: this is an inspection/read tool, and the notes reference delete_equation and set_equation as related operations. There is no explicit 'use this when...' or 'do not use this for...' statement, so the agent must infer the when-to-use context from the field semantics.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_facesA

List the part's faces (index, planar?, normal, area, centre) for inspection.

A cylindrical face also gives its axis, radius and a point on the axis (for a hole: its centre), so hole patterns can be read off. component: a component of the current assembly, listed in its own frame (e.g. an imported servo); for a sub-assembly, every part's faces in the sub-assembly's frame, each naming its part. A part's indices shift as features are added; a component's are ordered by part, type, centre and area, so they stay while its shape does. add_mate takes them as '#5'.

NameRequiredDescriptionDefault
componentNo

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and does well: it discloses extra fields for cylindrical faces, the axis/radius/point-on-axis semantics for holes, the frame a component is listed in, and the critical caveat that a part's indices shift as features are added while a component's are stable. It omits nothing safety-relevant for what is a read-only listing, though it doesn't discuss error or empty-result behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first sentence and each subsequent sentence adds distinct value (cylindrical faces, component frames, index stability, add_mate reference). It is dense and somewhat parenthetical, but no sentence is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must describe return values, and it does — listing the face fields and the extra cylindrical-face fields. Combined with the component-frame and index-stability notes, it is complete enough to call the tool correctly, though edge cases (no part open, unknown component) are unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single 'component' parameter has 0% schema coverage, so the description must compensate — and it does, explaining that it selects a component of the current assembly listed in its own frame, and that for a sub-assembly it returns every part's faces in the sub-assembly's frame each naming its part. This adds substantial meaning beyond the bare anyOf string schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the part's faces') and enumerates exactly what is returned (index, planar?, normal, area, centre). This clearly distinguishes it from siblings like list_edges, list_bodies and list_components.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied ('for inspection', and that add_mate consumes the indices as '#5'), so the agent can infer the downstream purpose. However, there is no explicit when-to-use/when-not versus list_edges or guidance on when to pass the component argument, so guidance remains implicit rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_featuresA

List the current part's modelling history in tree order: name, type, suppressed.

For a part opened from disk, or to find the step to undo. Flags features that fail to rebuild and names sketches that are not fully defined.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden. It usefully discloses two behavioral traits beyond a bare listing: it flags features that fail to rebuild and names sketches that are not fully defined. However, it says nothing about what happens when no part is open (error vs empty), whether hidden/suppressed-only filtering applies, or ordering guarantees beyond 'tree order'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded sentences; the returned fields are given first and the use case second, which is the right order for scanning. The mid-sentence line break adds a little visual noise but no content waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 must stand alone, and it does state the returned attributes and two special diagnostics. It is complete enough to call correctly, though it omits edge-case behavior (no open part, empty history).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. There is no parameter information to omit or misstate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (list) and resource (the current part's modelling history) plus the exact returned fields (name, type, suppressed). This clearly separates it from the other list_* siblings (list_dimensions, list_faces, list_edges), which return different entity types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage contexts: 'For a part opened from disk, or to find the step to undo.' This implies when to reach for it without naming an alternative tool. It does not route the agent explicitly to delete_feature/suppress_feature for acting on the listed history, so it falls short of a full when/when-not statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_viewsB

The sheet's frame and title block, and each view (or one): name, type, scale, outline and geometry box (sheet mm), the model-to-sheet mapping (a model point p lands at origin + p.x * x + p.y * y + p.z * z), and its annotations: id, type, shown text, value, box.

NameRequiredDescriptionDefault
viewNo

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry behavioral context. It gives substantial detail on returned data and coordinate mapping, but it does not explicitly state that the operation is read-only, what happens if the named view is missing, or whether any drawing state must be active.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is a single dense sentence that packs in the relevant return fields without filler. It is concise, though the lack of a leading verb makes it less front-loaded than it could be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Because there is no output schema, the description does useful work by describing view fields, annotation fields, and the model-to-sheet mapping. However, it omits parameter format, read-only behavior, error conditions, and whether it operates on the active sheet/document, leaving gaps for a drawing-inspection tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage for the single 'view' parameter is 0%, and the description only says '(or one)' without explaining whether the value is a name, id, index, or other identifier. It implies omission returns all views, but the parameter semantics remain underspecified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource as sheet views and enumerates the view and annotation details returned, so an agent can tell it is a retrieval/list tool. It does not explicitly contrast itself with add_view or edit_view, but the purpose is otherwise clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It only hints at optional filtering by saying 'each view (or one).' There is no explicit guidance on when to use this tool, when to use add_view/edit_view instead, or any prerequisites such as needing an active drawing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

make_drawingA

Make a manufacturing drawing of the current part in one call: PDF, .slddrw, DXF or DWG.

Front, top and side views (first angle) plus an iso view on an ISO sheet ('A4' upright, 'A3'..'A0' landscape) with SolidWorks' ISO title block, at the largest standard scale that leaves room for dimensions (or scale='1:2'). The model's dimensions come in once each, one hole callout per set of identical Hole Wizard holes ('4X ...'), their centres dimensioned, and the title block shows material and mass. Returns problems (check_drawing). keep_open=True keeps it as the current drawing to refine with the other drawing tools. Save the part first (save_document): the drawing refers to its file.

NameRequiredDescriptionDefault
pathYes
scaleNo
sheetNoA4
keep_openNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations at all, the description carries the full burden and does substantial work: it names the sheet orientations per size, the auto-scale rule, the dimensioning/ hole-callout policy, the title-block contents, and that it returns `problems` to be checked with check_drawing. What it does not disclose is what happens on failure or whether an existing file at path is overwritten.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and outputs, then layered detail in descending importance, with zero filler sentences. It is dense and the parenthetical asides ('4X ...', sheet size ranges) compete for attention, but each carries real operational information rather than restating the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter, no-annotation, no-output-schema tool this is close to self-sufficient: it gives the agent the prerequisite step, the output artifact, the view/dimension behavior, the return signal (`problems` → check_drawing) and the follow-up workflow. The unresolved gaps are the meaning of `path` and what occurs if the target file already exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it does for three of four parameters: `sheet` values and their upright/landscape orientation, `scale` with a concrete '1:2' example and the default auto-scale behavior, and `keep_open` semantics. The required `path` parameter is never explained — it is only obliquely gestured at via 'the drawing refers to its file', leaving the agent to guess whether it is an output file path or a source model path.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening clause gives a specific verb and resource ('Make a manufacturing drawing of the current part') and enumerates the output formats (PDF, .slddrw, DXF, DWG) plus the view set, which is far beyond a restatement of the name. It stops short of distinguishing itself from the sibling drawing-entry points (build_drawing, drawing_file), so an agent must infer which one to call from context alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Strong on operating context: it states the prerequisite 'Save the part first (save_document)' and explains the keep_open=True path for refining with 'the other drawing tools'. What it lacks is an explicit contrast with build_drawing / build vs. refine workflows or a 'do not use when' clause, so the alternative-selection logic remains implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

measure_distanceA

The smallest distance (mm) from a component to another one, a point or an axis.

Give component_b; or point_mm = [x, y, z] in assembly mm, and the nearest point on the component comes back too, with inside: true when the point lies in its material; or axis_mm = [[x, y, z], [dx, dy, dz]], the endless line through that point along that direction, such as a bolt's axis. 0 means they touch or overlap; check_interference tells which. Sub-assemblies count with all their parts; one part inside is 'Leg-1/Thigh-1'.

NameRequiredDescriptionDefault
axis_mmNo
point_mmNo
component_aYes
component_bNo

TDQS

A4.4/5.0
Behavior4/5

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 reveals units (mm), that the nearest point is returned, the meaning of inside, the meaning of 0 distance, and that sub-assemblies include all parts. It does not explicitly state that the operation is read-only or non-destructive, which is a minor gap for a measurement tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and then compactly explains input formats and edge cases. It is dense but every clause adds useful information; a slightly cleaner structure would improve readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description does a good job covering input alternatives, units, return hints, and sub-assembly behavior. It could still clarify component_a’s expected string format and confirm the read-only nature, but it is largely complete for a distance-measurement tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: point_mm is documented as [x, y, z] in assembly mm, axis_mm as [[x, y, z], [dx, dy, dz]], and component_b is explained as the alternative target. Component_a is implied as the source component.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific measurement verb and resource: smallest distance in mm from component_a to component_b, a point, or an axis. It also explicitly routes overlap/touch questions to the sibling tool check_interference, distinguishing it from nearby interference-checking tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clearly explains how to use each alternative target input: pass component_b, point_mm, or axis_mm. It also tells the agent that a distance of 0 should be interpreted with check_interference, but it does not explicitly state when not to use the tool or list all alternative measurement tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

new_documentA

Create a new empty part (kind='part') or assembly (kind='assembly'); it becomes the current document.

Assemblies compose saved parts: insert_component places each part, add_mate constrains them, check_interference proves nothing overlaps. Drawings: drawing_file.

NameRequiredDescriptionDefault
kindNopart

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral load. It discloses the important side effect that the new document becomes current, but is silent on whether an existing/unsaved document is replaced, whether anything is persisted to disk before `save_document`, and what is returned (name/id). Missing those for a creation tool leaves real ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core action and side effect are front-loaded in one sentence. The follow-on paragraph is short and relevant, though it reads more like an orientation blurb about assemblies and drawings than guidance for this specific call.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-optional-parameter creation tool with no annotations and no output schema, the description covers the valid kinds, the current-document side effect, and where drawings go. Only the return value and interaction with an already-open document are left unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the schema gives no description or enum for `kind`, so the description's enumeration of 'part' and 'assembly' is doing the essential work of preventing an invalid value. It also implicitly rules out kind='drawing' by routing drawings to `drawing_file`.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a new empty part or assembly') and names the discriminating values of `kind`. The side effect ('it becomes the current document') further pins down the behavior, though it never explicitly says how this differs from sibling `open_document` or `activate_document`.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second paragraph lays out the downstream assembly workflow (insert_component, add_mate, check_interference) and points drawings at `drawing_file`, which is genuine contextual guidance. However, it never states when to use this versus `open_document` or when a new document should not be created (e.g. existing file, unsaved current doc).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

open_documentA

Open a .sldprt or .sldasm, or import a STEP/IGES/Parasolid file; it becomes the current document.

A neutral file opens as a part, or as an assembly if it holds one (kind='part' / 'assembly' says which up front). A part shows its history in list_features and its dimensions in list_dimensions; an imported body has no history, but the tools work on it (holes and pockets on its faces, bosses, fillets), and the result gives its solid body count and mass properties. An imported assembly's parts arrive as components at their places, ready for list_components and add_mate; the result gives the component count. Drawings: drawing_file(action='open').

NameRequiredDescriptionDefault
kindNo
pathYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does substantial work: it discloses that the file becomes the current document, that an imported body has no feature history yet still supports holes, bosses and fillets, that an imported assembly's parts arrive as placed components, and what the result reports (body count, mass properties, component count). Missing are failure behavior for unsupported/ corrupt files and whether an existing current document is replaced or a new window is opened.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The verb and formats are front-loaded in the first clause, and the remaining sentences each add distinct information (part path, imported-body path, assembly path, drawing exception). It is denser than it needs to be and the closing 'Drawings:' fragment is slightly abrupt, but no sentence is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description's account of what comes back (solid body count, mass properties, component count) is genuinely necessary and present. Combined with the part/assembly/drawing branching, an agent has nearly everything it needs; only error handling and current-document replacement semantics are absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it largely does: 'path' is scoped to the listed file formats, and 'kind' is explained as an optional up-front declaration of 'part' vs 'assembly' rather than leaving the default inference unstated. It never gives path syntax (absolute vs relative, extensions required) or the exact accepted kind values as literals.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('open'/'import') plus the exact resource and accepted formats (.sldprt, .sldasm, STEP/IGES/Parasolid), and the side effect ('becomes the current document'). This clearly separates it from new_document, activate_document, and drawing_file, which is named for the drawing case.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes drawings elsewhere ('drawing_file(action='open')') and explains the kind='part'/'assembly' choice for neutral files. It also names the follow-up tools (list_features, list_dimensions, list_components, add_mate), which orients the agent in a workflow. It does not, however, address open_document vs. activate_document or what happens if a document is already open.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_sketchA

Read a sketch of the current part back, e.g. one a person drew (a list_features name).

Gives its lines, arcs, circles and splines in MODEL coordinates (mm), construction geometry marked, its dimensions (for set_dimension) and whether it is fully defined: check a design against fixed points before building on it with extrude_sketch / cut_sketch.

NameRequiredDescriptionDefault
nameYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses return contents (geometry types, MODEL coordinates in mm, construction geometry marking, dimensions, fully-defined status), but does not mention permissions, errors, or side-effect guarantees beyond the implication that 'read' is safe.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences, front-loaded with the core purpose and then the return details. Every clause contributes useful return or usage information with no wasted wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description must explain return values; it does so with geometry types, coordinate system, units, dimensions, and fully-defined status. Parameter validation and missing-sketch behavior remain implicit, keeping it from being fully complete for a no-annotation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage for the single required 'name' parameter. The description identifies it as a list_features name, which helps an agent source the value, but does not specify naming conventions, case sensitivity, or error behavior for invalid names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (read) and resource (sketch) and enumerates the returned entities: lines, arcs, circles, splines, dimensions, and fully-defined status. This clearly distinguishes it from siblings like list_features and list_dimensions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to check a design against fixed points before building on it with extrude_sketch / cut_sketch, and references list_features as the source of the sketch name. It does not state when not to use it or name an alternative for listing sketches without geometry.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rebuildB

Force a rebuild of the current part or assembly and report whether it rebuilt without errors.

In an assembly, mate_errors names each mate SolidWorks flags, and each mate that lost a face or edge it used (it rebuilds fine, but holds nothing).

NameRequiredDescriptionDefault
top_onlyNo

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It does disclose useful return semantics – that in assemblies mate_errors names each flagged mate, and distinguishes mates that rebuild 'fine, but hold nothing' (dangling references). However it never states that a rebuild mutates/regenerates geometry, what the top_only flag does, or any document/state requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded purpose followed by an assembly-specific note. Two focused sentences with little waste, though the mate_errors clause is somewhat dense and could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema and no annotations mean the description must cover both behavior and returns, and it partially does via the mate_errors explanation. But it omits the top_only parameter entirely and says nothing about mutation side effects or required state, leaving real gaps for a write-type operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter top_only has 0% schema description coverage and is never mentioned in the description. Since the description doesn't compensate for the coverage gap, an agent cannot tell that top_only limits the rebuild to the top-level assembly rather than rebuilding children.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource: 'Force a rebuild of the current part or assembly and report whether it rebuilt without errors.' An agent immediately knows the action and the object. No sibling tool performs rebuilds, so explicit differentiation isn't required, though it never names what it is not.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by 'the current part or assembly' – the agent infers it must be run against an active document. There is no explicit guidance on when to rebuild versus inspecting features or status, nor any stated prerequisite (e.g., an open/active document must exist).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

render_drawingC

Picture (PNG/JPG) of the sheet, or of the region zoom_mm = [[x1, y1], [x2, y2]] (sheet mm), to look at it.

NameRequiredDescriptionDefault
pathYes
zoom_mmNo

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure, and it says almost nothing: it does not confirm the operation is read-only/non-mutating, does not say what is returned (inline bytes, file path, URL), and does not cover error cases like a document not being open. Only the output image formats (PNG/JPG) are disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single sentence with no padding, so length is appropriate. But the wording is awkward and inward-facing ('to look at it'), which weakens the front-loading of actionable meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations, no output schema, and zero schema coverage, the description is too thin: it leaves the return payload, the meaning of the required path, and the operational preconditions unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it partially does by defining zoom_mm as a corner-pair region in sheet millimeters with the [[x1,y1],[x2,y2]] format. The required path parameter is not explained at all, leaving half the parameters undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description conveys that it renders a PNG/JPG of the drawing sheet, which is a recognizable verb+resource. However, it never says 'render' or names the resource as a drawing, and it does not distinguish itself from close siblings like screenshot, drawing_file, or make_drawing. The purpose is inferable but not sharp.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies two modes (full sheet vs. a zoom region) but gives no guidance on when to prefer this over screenshot or drawing_file, nor on prerequisites such as an open/active drawing. Usage must be guessed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reorder_featureA

Move a feature (a list_features name), with its sketch, to just before another one; rebuild and remeasure.

For a boss added last that filled holes cut earlier: build it at the end as usual, then move it before the first of those cuts, and they cut through it again. Refused, the part as it was, when the feature is built on something at or after that place. Returns the new order (features) and the features that fail to rebuild (failing_features).

NameRequiredDescriptionDefault
nameYes
beforeYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and discloses key behaviors: moving the associated sketch, rebuilding and remeasuring, refusing the operation if dependency order is violated, and returning both the new order and failing features. It omits permissions, rate limits, or whether dependent features are automatically updated, but the core mutation and failure semantics are well covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is front-loaded and efficient, but the following example paragraph is long and somewhat convoluted, using awkward phrasing that requires rereading. It could be trimmed or restructured without losing much information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description supplies return values (features, failing_features). Given no annotations, it explains rebuild/remeasure and a refusal condition. It is fairly complete for a dependent-feature reorder operation, though it could state prerequisites or effects on other dependents more explicitly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It clarifies that 'name' is a feature name from list_features and 'before' is another feature name. This gives meaningful semantics for both parameters, though it does not specify format constraints or whether 'before' must be an existing feature.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Move) and resource (a feature, a list_features name) and the exact effect (to just before another one, rebuild and remeasure). This distinguishes it from sibling tools like add_feature, delete_feature, or suppress_feature, though it 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a concrete scenario for use ('For a boss added last that filled holes cut earlier...') and a refusal condition ('Refused... when the feature is built on something at or after that place'). It does not explicitly compare to alternatives like suppress_feature or rebuild, but the when-to-use context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

replace_componentA

Swap a top-level component for another .sldprt or .sldasm, in the same place.

SolidWorks re-attaches each mate to the new part's matching face where it can. Returns the new component, the mates kept, and the mates that broke or went: each with its type, the other components, and what it held on the old part (the face's type, normal or axis and centre in the component's own frame), plus up to three candidate faces on the new part ('#index', nearest first). Re-mate with delete_mate and add_mate(mates=[...]).

NameRequiredDescriptionDefault
pathYes
componentYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and does so well: it discloses that SolidWorks re-attaches mates best-effort to matching faces, reports which mates were kept versus broken, and returns up to three ranked candidate faces per broken mate. It stops short of saying what happens to the original component file, whether mate failure aborts the swap, or whether the change 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A front-loaded action sentence followed by return-value detail, which is necessary because there is no output schema. The second sentence is long and nested (face's type, normal or axis and centre, plus candidates), making it harder to scan than it needs to be, but almost every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and no output schema, the description covers the return payload in enough depth to act on, and it names the recovery workflow. The remaining gap is environmental context: whether a document must be active, and what state the model is left in on partial mate failure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description has to compensate, and it only partly does: "path" is inferable as the new .sldprt/.sldasm file from context, and "component" as the existing top-level component. It never specifies the expected format of either argument (component name vs. index vs. handle, absolute vs. relative path).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence gives a specific verb (swap), resource (a top-level component), replacement type (.sldprt/.sldasm) and placement constraint (in the same place). That is enough to separate it from insert_component and delete_component without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The closing line, "Re-mate with delete_mate and add_mate(mates=[...])", explicitly routes the agent to the follow-up tools, which is real when/how guidance. It does not, however, state when to prefer this over delete_component plus insert_component, or note prerequisites such as the document being open and the component being top-level.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_scriptA

Run Python against the live SolidWorks: a whole part in one call, or what no tool covers; only when the server runs with --allow-scripts.

Give the script as code, or as a file at path: it may import helpers from its own folder (reloaded every run), so fix a part by editing the file and running it again. The script sees sw, model (current part/ assembly), drawing, mod (typed interfaces), wrap(obj, mod.IFeature), mm (mm -> m), to_mm, doubles([..]) (a VARIANT array) and session (this server's tools: session.new_part(), session.add_box(...)). print() is captured and result = ... comes back. All or nothing: a script that raises leaves the part as it was.

One report comes back for a part: features_added, failing_features, bodies (volume, box), clashes between bodies, under_defined_sketches, mass properties, seconds, and image: one PNG of the iso, right, top and bottom views (for a path, next to the script; image='x.png' elsewhere).

NameRequiredDescriptionDefault
codeNo
pathNo
imageNo

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden and does it well: atomicity is spelled out ('all or nothing: a script that raises leaves the part as it was'), the reload-every-run file semantics are disclosed, print capture and `result = ...` return behavior are named, and the returned report contents are enumerated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and the --allow-scripts gate come first, then input modes, then the runtime namespace, then failure and return semantics. The dense namespace list is long but every entry is actionable information an agent needs to write a working script.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and no output schema, the description must cover safety profile, side effects, and return shape — and it does: mutation is implied, atomic rollback is stated, and the report fields (features_added, failing_features, bodies, clashes, under_defined_sketches, mass properties, image) are all listed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the prose defines all three parameters' roles: code vs path as alternative script sources, and image as a filename resolved next to the script for a path input or as a literal name otherwise. It never states the mutual exclusivity/requiredness of code vs path (both default to null, zero required), which is the one remaining ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (run Python against the live SolidWorks) plus the two distinct modes: build a whole part in one call, or handle what no dedicated tool covers. The sibling list confirms dozens of narrow modeling tools, and this description makes clear this is the escape hatch rather than a duplicate of add_box/add_fillet.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a hard precondition (only when the server runs with --allow-scripts) and scopes usage to whole-part scripts or gaps in dedicated coverage. It stops short of an explicit 'prefer the dedicated tool when one exists', but 'what no tool covers' strongly implies the exclusion rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_documentA

Save the current part (.sldprt) or assembly (.sldasm) to path, or over its own file without one.

Saves silently and checks the file was really written. Drawings: drawing_file(action='save').

NameRequiredDescriptionDefault
pathNo

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the load and does disclose useful traits: the save is silent, the result is verified by checking the file was actually written, and omitting path overwrites the document's own file. It does not say whether a supplied path overwrites an existing file, whether save-as changes the active document, or whether an unsaved document without a path errors out.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero filler, with the primary behavior front-loaded and the cross-reference to drawings placed last.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-optional-parameter tool with no annotations and no output schema, the definition covers the essential behavior and failure-checking. The remaining gap is overwrite/first-save failure semantics for an unsaved document passed no path.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate for the single undocumented parameter, and it does: path means save-as to that location, omission means save over the current file. It stops short of noting accepted path formats or whether the extension is inferred from the document type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (save) plus the resources it acts on (current part .sldprt or assembly .sldasm), and the two destination modes. An agent can immediately tell this apart from export, close_document, or drawing_file.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly covers when to use it (part/assembly) and routes the drawing case to the sibling drawing_file(action='save'), which is the correct alternative. No ambiguity about which tool handles which document type.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

screenshotA

Save a screenshot of the current part or assembly (PNG/JPG/TIF).

view: 'iso' (default), 'front', 'back', 'left', 'right', 'top' or 'bottom'; or from_dir = [x, y, z], the direction to look from, e.g. [-1, 1, -1] to see from behind and below what iso hides (the model's +y stays up). Zoomed to fit, or onto a detail: zoom_mm = [[x1, y1, z1], [x2, y2, z2]], the corners of the region to fill the image (model mm, in any view). Reference planes and axes are left out, so they do not cut through the shape; show_planes=True keeps them.

NameRequiredDescriptionDefault
pathYes
viewNoiso
zoom_mmNo
from_dirNo
show_planesNo

TDQS

A4.2/5.0
Behavior3/5

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 discloses useful defaults (iso view, planes/axes omitted unless show_planes=True) and parameter behaviors, but omits operational details such as required active document, file overwrite behavior, and error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and then systematically explains each option. Every sentence adds useful information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description covers most parameter and behavioral aspects needed to invoke the tool. However, the missing path explanation and lack of document-state prerequisites leave minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It provides detailed semantics for view, from_dir, zoom_mm, and show_planes, but does not describe the required 'path' parameter at all, leaving a notable gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Save a screenshot') and resource ('current part or assembly'), including output formats (PNG/JPG/TIF). No sibling tool provides screenshots, so it is uniquely identifiable from the list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly indicates the context (current part or assembly) and details how to control the view, but does not explicitly state when to use this tool versus alternatives or any exclusions. Since no alternative screenshot tool exists among siblings, the context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_appearanceA

Colour and/or see-through of the current part, or of one component in an assembly.

rgb: [r, g, b], 0..255 each; transparency: 0 solid .. 1 clear (0 makes a see-through component solid again). In an assembly, component names it ('Bracket-1', 'Leg-1/Thigh-1'); the colour then belongs to the assembly and the part keeps its own. What is left out stays as it was.

NameRequiredDescriptionDefault
rgbNo
componentNo
transparencyNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does well: it discloses partial-update semantics ('What is left out stays as it was'), the assembly-vs-part colour ownership rule, and the reset behaviour of transparency 0. It does not mention persistence (whether a save is needed) or error behaviour, but the core mutation semantics are unusually explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in the first clause, followed by compact per-parameter clarification. Sentences are dense and mostly earn their place; the nested parenthetical on transparency is slightly heavy but still informative rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter, no-annotation, no-output-schema mutation tool, the description covers purpose, all parameter formats, and key mutation semantics. It stops short of persistence/undo and permission context, but an agent has enough to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate and largely does: rgb is documented as [r, g, b] with 0..255 range, transparency as a 0..1 scale with direction explained, and component as a naming convention with example paths. Formats and constraints for all three parameters are supplied beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: setting the colour and/or transparency of the current part or one assembly component. It clearly frames the tool as a visual-appearance operation, distinguishing it implicitly from geometry-modifying siblings like set_material or add_fillet, though it never names set_material to disambiguate appearance from material.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied: the tool applies to 'the current part, or of one component in an assembly', and the component-name syntax hints at the assembly case. However, there is no explicit when-to-use vs when-not guidance and no named alternative (e.g. set_material for physical properties), leaving the agent to infer scope.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_component_transformA

Move/rotate a component: its origin to (x, y, z) mm, rotated rx/ry/rz degrees.

name is the component name ('Bed' or 'Bed-1'); rotations apply X, then Y, then Z about the assembly axes, and work on a fixed component too. The transform is read back and compared, so a move SolidWorks ignored (e.g. one already pinned by mates) fails loudly instead of silently leaving the part where it was.

NameRequiredDescriptionDefault
nameYes
x_mmYes
y_mmYes
z_mmYes
rx_degNo
ry_degNo
rz_degNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it delivers: it discloses rotation order (X then Y then Z about assembly axes), that fixed components are supported, and that the transform is read back and compared so ignored moves fail loudly. This goes well beyond a generic 'moves a component' statement, though it does not describe return values or success output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences carry high-density information with no fluff. The core action is front-loaded, and the second sentence adds crucial parameter and failure-mode details. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter mutation tool with no annotations and no output schema, the description covers the essential invocation details: coordinates, rotation units/order, component naming, and error behavior. It is slightly ambiguous what 'fixed component' exactly means versus 'pinned by mates,' but overall it gives an agent enough to call and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description compensates fully: it explains name with example format ('Bed' or 'Bed-1'), gives units for x/y/z (mm) and rx/ry/rz (degrees), clarifies rotation order, and states the origin is moved to the provided coordinates. All seven parameters are meaningfully defined.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Move/rotate a component: its origin to (x, y, z) mm, rotated rx/ry/rz degrees.' This clearly distinguishes the tool from siblings like set_dimension, set_material, and insert_component by stating exactly what it does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied through the description of behavior ('work on a fixed component too', 'fails loudly instead of silently leaving the part'), but there is no explicit 'use this when...' or comparison to alternative tools. The context is clear enough, but no exclusions or alternative routing are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_dimensionA

Set a named driving dimension (e.g. 'D1@BlockExtrude') in mm, rebuild, and remeasure.

This is the parametric edit at the heart of the correction loop. Every modelling tool returns its dimensions by role in dimensions. An angle (a revolve, an angle mate) takes degrees; list_dimensions shows the unit. A point's coordinate from the origin (a sketch's 'x3', 'y2') takes a sign, -5 being across the origin; any other length is a size, refused below 0. A value SolidWorks does not take (a dimension an equation drives, a size of 0) is refused with the reason, and the part is left as it was.

NameRequiredDescriptionDefault
value_mmYes
dimension_nameYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does so well: it discloses the rebuild+remeasure side effects, unit rules (degrees for angles, mm otherwise), sign semantics for point coordinates, and atomic failure behavior ('refused with the reason, and the part is left as it was'). Rejection cases (equation-driven dimensions, zero size, negative sizes) are enumerated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The lead sentence is front-loaded and complete, and the following paragraph is dense with value. However, it is a single run-on block covering units, signs, and refusals without structural breaks, so it is slightly harder to scan than it could be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-param mutation tool with no annotations and no output schema, the description is nearly complete: it covers inputs, units, rejection behavior, and side effects. It only loosely signals what the remeasure step returns, leaving the response shape somewhat implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it does: value_mm is given unit rules, angle-vs-length interpretation, sign conventions, and negative-value validity; dimension_name is illustrated by example and by the role-based naming returned from other tools, with list_dimensions pointed to as the unit reference.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Set), a specific resource (named driving dimension), the format convention ('D1@BlockExtrude'), the unit (mm), and the two side effects (rebuild, remeasure). An agent can immediately distinguish this from read-only siblings like list_dimensions or list_features.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'This is the parametric edit at the heart of the correction loop' plus 'Every modelling tool returns its dimensions by role in dimensions' establishes when to reach for it. It also implicitly routes away from equation-driven dimensions (which it says are refused), but it never explicitly names set_equation/set_equations as the alternative for that case, so it falls short of full when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_drawing_propertiesA

Fill the title block through the custom properties its fields show.

description, material, weight, finish go to the part ('from part' links material / weight to the part's own, so they follow the model); drawn_by, drawn_date, checked_by, checked_date, approved_by, revision, company, part_no, qty or any other name go to the drawing. Returns what each title block field now shows and which properties it has no field for.

NameRequiredDescriptionDefault
propertiesYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and does meaningful work: it discloses that one call mutates two different objects (part and drawing), that 'from part' keys create links so values follow the model, and what the return payload covers. It stops short of saying whether existing title-block values are overwritten or what happens on a name collision.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Compact and front-loaded: the purpose sentence comes first, then the routing rules, then the return behavior. The opening clause is awkwardly worded and the parenthetical interrupts the key list, but no sentence is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by explaining what is returned (each field's current value plus fields with no matching property). Combined with the routing rules this is enough to call the tool correctly; only preconditions such as an open drawing are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter is a free-form object with additionalProperties true and 0% schema coverage, so the description must supply all semantics — and it largely does, enumerating which key names route to the part, which to the drawing, and that unrecognized names default to the drawing. It does not describe accepted value types (string vs numeric) for keys like weight or qty.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: it fills a drawing's title block by writing custom properties. It also explains the internal routing (some properties land on the part, others on the drawing), which distinguishes it from generic annotation tools like add_note or edit_annotation. The phrase 'custom properties its fields show' is slightly opaque, but the follow-up sentences resolve it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the property-name lists, which tell the agent which keys belong here versus on the underlying part. It never explicitly says when to call this instead of add_note, edit_annotation, or set_material, nor does it state the prerequisite that a drawing document must be active.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_equationA

Add an equation, or replace the one that sets the same name; rebuild and remeasure.

A SolidWorks equation string, e.g. '"D1@BlockExtrude" = 25' or '"D1@BlockExtrude" = 2 * "D1@Sketch1"'. A global variable is '"W" = 40'; link a dimension to it with '"width@Sketch1" = "W"', and set '"W" = 45' again to change it. Persists a relation (unlike set_dimension). A list of equations is set in order with one rebuild at the end (later ones may use earlier ones), and a refused one undoes the whole list. Returns the index (per equation for a list), whether it replaced one, the features that fail to rebuild (failing_features) and mass properties.

NameRequiredDescriptionDefault
equationYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: it discloses the rebuild/remeasure side effect, replacement-on-name-collision, ordered evaluation of a list with a single rebuild, and atomic rollback ('a refused one undoes the whole list'). It also enumerates the return payload (index, replaced flag, failing_features, mass properties), which compensates for the absent output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose sentence is front-loaded, followed by syntax examples, list semantics, and return values in a logical progression. Every block adds information an agent needs; nothing is redundant with structured fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with no annotations and no output schema, the description covers purpose, syntax, list atomicity, side effects, and return shape. An agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the schema only says 'Equation' with an anyOf string/array, so the description must compensate and does: it gives concrete SolidWorks equation syntax, explains how global variables and dimension links work, and clarifies that a list is accepted and processed in order. This is meaning the schema cannot convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Add an equation, or replace the one that sets the same name') and immediately names the discriminating sibling behavior ('Persists a relation (unlike set_dimension)'). An agent can distinguish this from set_dimension and list_equations without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly contrasts with set_dimension on persistence, which routes the agent correctly for relation-preserving edits, and the example of a global variable re-set to change a value shows the intended workflow. It stops short of stating an explicit when-not condition (e.g. use set_dimension for one-off value changes).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_materialA

Assign a material by name (e.g. "6061 Alloy", "AISI 1020", "ABS").

Makes mass and density reflect a real material instead of the 1000 kg/m³ default. One SolidWorks does not have (say "TPU") comes with its density: density_kg_m3=1210 makes it, by that name, carrying only the density. The English names work on a SolidWorks in another language too. Returns mass properties including density.

NameRequiredDescriptionDefault
nameYes
databaseNo
density_kg_m3No

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the load and does substantively: it discloses the effect (mass/density change from the 1000 kg/m³ default), the return ("Returns mass properties including density"), custom-material behavior via density_kg_m3, and cross-language name resolution. It omits permissions, reversibility, and document-scoping, but the behavioral disclosure is richer than the schema alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core action and return are front-loaded and the examples earn their place. But the second and third sentences are garbled ("One SolidWorks does not have (say \"TPU\") comes with its density"), reading as truncated phrasing that forces the agent to reconstruct the meaning rather than stating it cleanly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a 3-param tool with no annotations and no output schema, the description covers the primary parameter, the density escape hatch, and the return value adequately. The undocumented `database` parameter and the slightly broken custom-material sentence leave the definition incomplete for full correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does well for two of three params: it explains `name` (English names, cross-language) and `density_kg_m3` (custom material carrying only density). The third param, `database`, is never mentioned, leaving a real gap in an otherwise strong explanation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Assign a material by name") with concrete examples ("6061 Alloy", "AISI 1020", "ABS") that make the resource unambiguous. It doesn't explicitly contrast with the nearby set_appearance sibling, but the operation itself is clear enough that an agent can distinguish them without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when the tool is useful ("Makes mass and density reflect a real material instead of the 1000 kg/m³ default"), which frames the intent as obtaining realistic mass properties. However, it never names an alternative or says when not to use it (e.g. vs set_appearance, or vs leaving the default), so guidance remains implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

slice_meshA

Cross-sections of an STL/3MF mesh at the given heights along axis 'x'/'y'/'z'.

For modelling a part that must fit something that only exists as a mesh. Returns each section's closed loops, largest first, as polygon points (mm) ready to use as profiles. frame (3MF): 'object' (the mesh's own frame) or 'build' (as placed on the slicer's plate).

NameRequiredDescriptionDefault
axisYes
pathYes
frameNoobject
heights_mmYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the load and does reasonably: it discloses the return structure (closed loops, largest first, mm polygon points) and the meaning of frame for 3MF ('object' vs 'build'). It implies a non-mutating read but never states that the source file is untouched or what happens on heights that miss the mesh.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the core action and output, followed by the frame caveat. Efficient, though 'ready to use as profiles' is mild padding and the line breaks fragment the first sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-annotation, no-output-schema tool with 0% param coverage, the description fills most needs: output shape, axis/frame value sets, and the target scenario. Missing only path expectations and edge-case behavior (empty sections, invalid file types).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it does for axis ('x'/'y'/'z'), heights_mm (heights along the axis) and frame ('object'/'build') — values the bare schema lacks. It does not describe path format or whether heights_mm accepts a single value vs array, leaving one gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (cross-sections/slice) and resource (STL/3MF mesh), names the axis and heights, and describes the output form (closed loops as polygon points in mm). It is clearly distinguishable from siblings like compare_with_mesh or get_bounding_box.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly gives the scenario for use: 'For modelling a part that must fit something that only exists as a mesh.' Clear context, but it names no alternative or exclusion, so the agent must infer 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.

split_bodyA

Split the part's body in two along a plane (front/top/right or a plane by name).

The two bodies come back by name: combine them differently, or check each with list_bodies. Use add_plane first for a cut anywhere else.

NameRequiredDescriptionDefault
nameNoSplit
planeYes

TDQS

A4.4/5.0
Behavior4/5

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 discloses the key post-condition - the result is two named bodies - and the prerequisite that non-standard cuts require add_plane first. It does not state whether the operation is destructive to the original body or reversible, which is the one 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences front-loaded with the core action, then results, then the prerequisite. Every clause earns its place, including the routing to add_plane.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter geometry tool with no output schema it covers purpose, plane values, result shape, and the add_plane precondition. The remaining gap is the role of the optional 'name' parameter and whether the original body is consumed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It does explain the accepted 'plane' values (front/top/right or a name), which the schema leaves blank. However, the required 'name' parameter is entirely unaddressed, and it is unclear whether 'name' labels the resulting bodies or the feature.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (split) and resource (the part's body) and the exact mechanism (a plane). It is clearly distinguishable from siblings like combine_bodies, cut_profile, or slice_mesh, which operate on different geometry.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names alternatives: 'combine them differently' points to combine_bodies for the result, and 'Use add_plane first for a cut anywhere else' tells the agent the precondition for non-standard planes. The front/top/right carve-out defines the legitimate value range.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

suppress_featureA

Suppress a feature, or bring it back with suppress=False; rebuild and remeasure.

Keeps the feature and its dimensions, unlike delete_feature, so it suits trying a variant. Features that depend on it follow both ways.

NameRequiredDescriptionDefault
nameYes
suppressNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses side effects (rebuild and remeasure), what is preserved (the feature and its dimensions), and dependency propagation ('features that depend on it follow both ways'). It does not mention permissions or reversibility limits, but the key behavioral traits are covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short clauses, front-loaded with the core action and its inverse, then the differentiating behavior. No filler; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema and no annotations, so the description must stand alone; it covers the mutation's side effects and dependency behavior well. Minor gap: it doesn't clarify the name parameter's expected value or what a successful suppression returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains the suppress flag well ('bring it back with suppress=False', default true) but says nothing explicit about the name parameter beyond it referring to 'a feature'. Baseline is dragged up slightly by the good suppress explanation but the name gap keeps it at 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (suppress) and resource (feature), including the inverse operation via suppress=False. It explicitly contrasts with delete_feature, so an agent can distinguish it from a close sibling without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the alternative (delete_feature) and the condition that selects this tool instead ('keeps the feature and its dimensions, so it suits trying a variant'). It also notes that dependents follow both ways, giving the agent enough to decide between suppress and delete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

suppress_mateA

Suppress a mate so it stops holding its components (it stays in the tree), or bring it back.

suppress=False brings it back. Returns whether it is suppressed now.

NameRequiredDescriptionDefault
nameYes
suppressNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses that the mate is not removed but retained in the tree, that the operation is reversible, and what the return value reports. It does not mention permissions or error conditions, but the core behavioral profile is conveyed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the primary action and its side effect, followed by the restore path. No wasted words and the parameter semantics are stated inline.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-parameter tool with no annotations and no output schema, the description supplies the effect, reversibility, and return value, which is most of what an agent needs. The remaining gap is how to specify/identify the mate by name and any failure modes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It explains the `suppress` boolean precisely (true suppresses, false restores), which the bare schema does not. The required `name` parameter is left entirely undefined — no format or identification guidance for the mate — so coverage is only partial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb+resource (suppress a mate) and immediately explains the effect: it stops holding its components while staying in the tree, which distinguishes it from delete_mate and suppress_feature. It also covers the inverse operation, so the agent understands this is a reversible toggle rather than a one-way action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The toggle semantics (default suppress, suppress=False to restore) are spelled out, so the usage is implied and clear for the common case. However, there is no explicit when-to-use/when-not guidance and no named alternative (e.g., delete_mate for permanent removal), leaving routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

swept_regionA

Outline what a component covers in a plane while a joint moves, to keep clear of it or cut it away.

Steps the joint's dimension through values (as check_motion, e.g. every 5 degrees over 30..150), cuts the component at axis = each of heights_mm (a few heights inside a layer, not on its faces) and joins all of it, made margin_mm wider, within about tolerance_mm. frame: the component to give the coordinates in, such as the part to cut from; else the assembly's. Each region's outline runs counter-clockwise in the plane's other two axes, (x, y) across z: give it to add_sketch as a spline. count says how many separate regions there are.

NameRequiredDescriptionDefault
axisNoz
frameNo
valuesYes
componentYes
dimensionYes
margin_mmNo
heights_mmYes
tolerance_mmNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: it discloses the sampling/stepping behavior, that cutting happens off the layer faces, that the join is made margin_mm wider within tolerance_mm, and the counter-clockwise winding convention. It omits nothing critical for invocation, though it does not discuss cost, failure modes, or the exact return shape beyond 'count'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the opening sentence, and the dense follow-on sentences each carry real constraint information (stepping, margins, winding, downstream use). It is a little stream-of-consciousness and could be tightened, but there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter, no-output-schema, no-annotation geometric tool, the description supplies enough -- process, key constraints, orientation, and the count/count-of-regions hint -- for an agent to call it correctly. Return detail is light but the essential contract is covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it largely does: it explains values (the stepped joint dimension), heights_mm (a few heights inside a layer, not on faces), margin_mm, tolerance_mm, frame (component vs assembly default), and axis (the cut axis). Only dimension and component are left somewhat implicit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence gives a specific verb and resource -- outlining what a component sweeps in a plane as a joint moves -- which is a distinct operation. It does not explicitly contrast against near relatives like add_swept_profile or cut_profile_through_plane, so an agent must still infer the boundary, but the core purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the goal (to keep clear of the swept volume or cut it away) and ties the operation into a workflow, naming check_motion as the analogous stepping tool and add_sketch as the consumer of the result. No explicit when-not or alternative selection is given, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 91 tool updatesv0.16.3
    • First observedactivate_document
    • First observedadd_axis
    • First observedadd_boss_on_face
    • First observedadd_box
    • First observedadd_chamfer
    • First observedadd_circular_pattern
    • First observedadd_cone
    • First observedadd_cylinder
    • First observedadd_dimension
    • First observedadd_disc
    • First observedadd_extruded_profile
    • First observedadd_extruded_slot
    • First observedadd_fillet
    • First observedadd_full_round
    • First observedadd_hole
    • First observedadd_linear_pattern
    • First observedadd_loft
    • First observedadd_mate
    • First observedadd_mirror
    • First observedadd_note
    • First observedadd_plane
    • First observedadd_revolved_profile
    • First observedadd_rib
    • First observedadd_shell
    • First observedadd_sketch
    • First observedadd_swept_pipe
    • First observedadd_swept_profile
    • First observedadd_symbol
    • First observedadd_table
    • First observedadd_text_on_face
    • First observedadd_thread
    • First observedadd_view
    • First observedauto_layout
    • First observedbuild_drawing
    • First observedcheck_drawing
    • First observedcheck_interference
    • First observedcheck_motion
    • First observedcheck_printability
    • First observedclose_document
    • First observedcombine_bodies
    • First observedcompare_with_mesh
    • First observedcut_offset_pocket
    • First observedcut_profile
    • First observedcut_sketch
    • First observedcut_slot
    • First observeddelete_component
    • First observeddelete_equation
    • First observeddelete_feature
    • First observeddelete_mate
    • First observeddrawing_file
    • First observededit_annotation
    • First observededit_view
    • First observedexport
    • First observedextrude_sketch
    • First observedget_bounding_box
    • First observedget_mass_properties
    • First observedget_status
    • First observedimport_dimensions
    • First observedinsert_component
    • First observedlist_bodies
    • First observedlist_components
    • First observedlist_dimensions
    • First observedlist_documents
    • First observedlist_edges
    • First observedlist_equations
    • First observedlist_faces
    • First observedlist_features
    • First observedlist_views
    • First observedmake_drawing
    • First observedmeasure_distance
    • First observednew_document
    • First observedopen_document
    • First observedread_sketch
    • First observedrebuild
    • First observedrender_drawing
    • First observedreorder_feature
    • First observedreplace_component
    • First observedrun_script
    • First observedsave_document
    • First observedscreenshot
    • First observedset_appearance
    • First observedset_component_transform
    • First observedset_dimension
    • First observedset_drawing_properties
    • First observedset_equation
    • First observedset_material
    • First observedslice_mesh
    • First observedsplit_body
    • First observedsuppress_feature
    • First observedsuppress_mate
    • First observedswept_region

TDQS

B3.2/5.0

Scored across 91 tools

Disambiguation3/5

Many tools have distinct purposes, but the modeling surface contains several overlapping primitives: add_box/add_extruded_profile/add_disc, add_cylinder/add_cone/add_revolved_profile, add_swept_pipe/add_swept_profile, and add_sketch+extrude_sketch versus add_extruded_profile all require reading long descriptions to choose correctly. Other areas such as documents, mates, and drawings are clearer, so overlap is present but not pervasive.

Naming Consistency4/5

Names are consistently snake_case and mostly follow a verb_noun pattern (add_hole, cut_profile, list_features, set_dimension, check_interference). A few tools like swept_region, auto_layout, rebuild, export, screenshot, and run_script deviate from the verb_noun pattern but remain readable and predictable.

Tool Count1/5

With 91 tools, this server is far beyond the typical 3-15 range and exceeds the 50+ threshold for an extreme tool-count mismatch. Even for a broad CAD domain, the surface is large enough to burden tool selection and discovery.

Completeness4/5

Coverage is strong across part modeling, assemblies, mates, drawings, dimensions, equations, export, and mesh inspection, with detailed lifecycle support. Gaps remain around direct sketch editing, assembly component patterns, configurations, and mesh import, but many can be worked around via run_script.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to control a running SOLIDWORKS session through its COM API, with tools for sketching, feature creation, assemblies, and visual feedback via screenshots.
    22
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to build, measure, verify, and correct parametric SolidWorks parts and assemblies locally via the COM API, supporting operations like sketching, extruding, modeling, dimensioning, material assignment, export, and assembly mating.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Let AI agents build, measure and verify parametric parts and assemblies in your own running SolidWorks (Windows, COM). 46 tools, every step measured.
    87
    674 PyPI
    19
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents such as Claude to drive SolidWorks through its COM API using natural language, creating parts and assemblies, sketching geometry, and adding features without clicking menus. Also supports running arbitrary API scripts and verifying results through model reports, rendered views, interference checks, and exports.
    1
    MIT