Skip to main content
Glama
Mfrostbutter

fusion-cad-mcp

by Mfrostbutter

fusion-cad-mcp

An MCP server that gives Autodesk Fusion a named, typed tool surface: create_sketch, extrude, add_hole, create_joint, export, and 70 more.

Fusion ships its own MCP server, but it exposes four broad tools that take raw Python. That works, and it means every call is an opportunity to get the Fusion API wrong. This sits in front of it and turns the common operations into validated tools with structured errors, so an agent can do CAD without carrying a large prose skill in context.

Status: beta (0.2.x). 75 tools, 467 tests, and a full pass of live verification against Fusion 2704.1.23 that found and fixed 17 bugs. Used in production for parametric part design.

Requirements

  • Autodesk Fusion, running, with a design open

  • Preferences > General > API > Fusion MCP Server enabled

  • Python 3.11+

Related MCP server: fusion-mcp

Install

Not a developer? Start with AI-SETUP-PROMPT.md. Paste one prompt into Claude and it walks you through the whole thing, install to first extrude, and verifies it worked.

pip install "fusion-cad-mcp @ git+https://github.com/Mfrostbutter/fusion-cad-mcp.git"

Then point your MCP client at it. For Claude Code or Claude Desktop:

{
  "mcpServers": {
    "fusion": {
      "command": "fusion-cad-mcp"
    }
  }
}

See CONNECT.md for per-client details and troubleshooting.

How it works

MCP client (Claude, Cursor, Cline, ...)
  -> fusion-cad-mcp            this package, stdio MCP server
    -> httpx
      -> 127.0.0.1:27182/mcp   Fusion's own MCP
        -> adsk.fusion / adsk.core

Each tool generates a Python script and runs it through Fusion's execute. It is a peer of Autodesk's bridge, not a replacement, so anything you can do in the Fusion API you can still do here via the execute escape hatch.

The tools

75 registered, 74 usable. Full reference with signatures, enums, return keys, and error codes is in tools.md, or search it in place with the find_tool tool.

Group

Tools

Document and state

doc_state, list_open_docs, list_projects, search_docs, open_doc, save, save_as, close, undo, redo

Parameters

add_parameters, update_parameter, list_parameters

Sketch

create_sketch, add_line, add_rectangle, add_circle, add_arc, add_ellipse, add_spline, add_polygon, add_geometric_constraint, add_dimension, assert_profiles, probe_sketch_dimensions, edit_sketch_dimension

Construction

create_construction_plane, create_construction_axis, create_construction_point, delete_construction

Features

extrude, revolve, combine, shell, add_hole, fillet_edges_by_geometry, chamfer_edges_by_geometry, mirror_feature, pattern_rectangular, pattern_circular, move_body, rebuild_feature

Assembly and joints

bodies_to_components, move_component, ground_component, unground_component, create_rigid_group, create_contact_set, interference_check, create_joint, set_joint_limits, drive_joint

Handles and measurement

list_body_entities, measure, fillet_edges, chamfer_edges, project_to_sketch, find_mesh_using_ray, ray_collision_with_mesh

Verify and visualize

bounding_box, volume, mass, center_of_mass, audit_feature_health, screenshot, set_view, screenshot_compare_with_marker

Import, export, knowledge

export, import_geometry, find_tool, find_gotcha, find_pattern, find_api

Escape hatch

execute

rib is registered but always returns rib_not_scriptable: Fusion exposes RibFeatures as a read-only collection, so ribs cannot be created through the API at all. Model one as a thin join-extrude instead.

Every tool returns the same envelope

{
  "ok": bool,
  "message": str,          # stdout from the generated script
  "result": dict | None,   # the payload
  "image": dict | None,    # base64 PNG, for screenshots
  "error": str | None,     # error code when ok is False
  "traceback": str | None
}

ok: true does not always mean the thing happened. Fusion has several operations that decline silently, and the tools surface that rather than hiding it:

  • drive_joint returns applied: false when a drive past a joint limit was ignored

  • move_component returns moved: false when a joint solver overrode the move

  • export returns bytes_written: 0 when nothing was written

  • doc_state returns active_design: false when no design is open

  • doc_state on a direct (non-parametric) design reports design_type: "direct", leaves parameters_count / timeline_count as null, and lists them in unavailable; every other field, features_count included, is reported normally

Read result, not just ok.

The knowledge tools

Four tools answer questions without touching Fusion, so they work with it closed:

Tool

Searches

find_tool

this server's tool reference

find_gotcha

a catalog of Fusion API failure modes

find_pattern

reusable Python recipes for execute

find_api

Autodesk's Fusion API help

The first three ship with the package. find_api needs a local copy of Autodesk's help, which is their content and is not redistributed, so you build your own once:

pip install "fusion-cad-mcp[corpus] @ git+https://github.com/Mfrostbutter/fusion-cad-mcp.git"
fusion-cad-mcp corpus build --i-accept-autodesk-terms

That crawls at 1 request/second into ~/.fusion-cad/corpus/, which is where the server looks first. Set FUSION_CAD_CORPUS_DIR to keep it elsewhere. Everything else works without it.

The Claude skill

SKILL.md in this repo is the agent-facing companion to the server: which tool to reach for, the six rules that prevent most failures, and how to fall back to raw scripts. It reads alongside the same tools.md, patterns.md and gotchas.md the knowledge tools search, so there is one copy of each.

Install it into a Claude skills directory:

python install_skill.py

That writes ~/.claude/skills/fusion-cad/. Use --skills-dir for another location, --name for another folder name, and --overlay DIR to copy your own markdown over the base, which is how a private variant adds house conventions without forking the skill.

Development

pip install -e ".[dev]"
pytest              # 474 tests, no Fusion required

The tests cover script generation, envelope parsing, argument validation, and packaging integrity. They deliberately do not need Fusion running, which is also their limit: passing tests prove the generated Python is valid, not that Fusion accepts it. Several of the bugs found in this project passed every unit test and only surfaced against a live document, so verify behavioral changes in Fusion and check entity counts rather than trusting a success envelope.

One test guards a bug class worth knowing about: json.dumps(None) emits null, which is not valid Python, and ast.parse cannot catch it because null is a legal identifier. Generated code must embed Python values with repr().

License

MIT. See LICENSE.

Available Tools

75 tools
add_arcB

Add an arc. kind in {3pt, center_start_end, center_start_sweep}. 3pt: p1, p2, p3. center_start_end: center, start, end. center_start_sweep: center, start, sweep_radians (positive = CCW).

ParametersJSON Schema
NameRequiredDescriptionDefault
p1No
p2No
p3No
endNo
kindYes
startNo
centerNo
sketchYes
sweep_radiansNo

TDQS

B3.4/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 burden. It does not disclose any side effects, such as whether the arc is added to the sketch permanently, whether the sketch must be active, or what happens on failure. This is a significant gap for a mutating tool.

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

Conciseness5/5

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

The description is concise and well-structured: first a one-liner, then a compact list of kinds and their parameters. Every sentence provides necessary information with no fluff.

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 main semantic aspects of the parameters and kinds, but because there is no output schema or annotations, it omits behavioral details (e.g., return value, side effects). For a tool with 9 params and varied kinds, it's adequate 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 description adds significant semantic meaning beyond the bare schema: it explains the three kinds and which parameters are used for each, and notes the meaning of sweep_radians (positive = CCW). The schema has 0% coverage, so this compensation is essential.

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 states the verb 'Add' and the resource 'arc', with specific kinds and parameters for each. It distinguishes from siblings by specifying arc-specific parameters, though it doesn't explicitly differentiate from other add_* tools.

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 by listing kinds and required parameters, but doesn't explicitly say when to use this tool vs alternatives like add_circle or add_spline. It provides enough context for selection but lacks explicit 'when not to use' guidance.

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

add_circleA

Add a circle. kind=center_radius needs center+radius_mm. kind=3pt needs p1+p2+p3. Returns circle_index for later reference.

ParametersJSON Schema
NameRequiredDescriptionDefault
p1No
p2No
p3No
kindYes
centerNo
sketchYes
radius_mmNo

TDQS

A3.7/5.0
Behavior3/5

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

There are no annotations, so the description carries the burden of explaining behavior. It does state the side effect ('Add a circle') and the return value ('Returns circle_index'), but it omits details like whether the sketch must pre-exist, coordinate format, or failure behavior. This is adequate but not rich.

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

Conciseness5/5

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

The description is three short sentences with a clear front-loaded verb, then mode-specific requirements, then return behavior. Every sentence contributes useful information with no filler or redundancy.

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 7-parameter tool with no annotations or output schema, the description covers the main mode dependencies and the return value, which is helpful. However, it leaves the required 'sketch' parameter and point array formats unexplained, making it minimally adequate rather than fully complete.

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 add meaningful semantics by linking kind to required parameter groups and clarifying the center_radius and 3pt variants. However, it does not explain the format of point/center arrays or the required 'sketch' parameter, leaving gaps.

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 states the tool's action ('Add a circle') and the two construction modes, but it does not explicitly distinguish this from sibling tools like add_ellipse or add_arc. It is specific and unambiguous enough for selection.

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 explicit usage context by defining the two kinds ('center_radius' vs '3pt') and which parameters each requires. It lacks explicit exclusions or alternatives like 'use add_ellipse for ellipses', but the mode guidance is clear and actionable.

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

add_dimensionA

Add a dimension with an expression. kind in {distance_h, distance_v, distance, angle, radial, diameter}. Parameter-name expressions ('body_width', 'length / 2') work AND propagate when the param changes (gotchas.md G9, verified 2026-05-31). Use literal mm only when you want a baked value.

entities depends on kind: distance_h / distance_v / distance: 2 point refs (e.g. ['line:0:start', 'line:0:end']) angle: 2 line refs radial / diameter: 1 circle or arc ref

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYes
sketchYes
entitiesYes
text_posNo
expressionYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations present, the description must carry the burden of disclosing behavioral aspects. It mentions that parameter-name expressions propagate when parameters change and that literal mm creates a baked value, which indicates parametric vs. non-parametric behavior. However, it does not state whether the operation is read-only, modifies the document, or has other side effects, leaving a gap 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 succinct yet dense with useful information. It begins with a core purpose, then systematically explains behavior and parameter relationships. Each sentence adds value without redundancy, making it easy to parse and apply.

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 description covers essential usage details, including the gotcha about expressions and baked values, which is critical for correct usage. It also clarifies entity requirements per kind. While it omits explicit explanations for 'sketch' and 'text_pos', these are likely inferred from the schema and typical CAD workflows, so the overall completeness is high.

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 description provides detailed semantics for the 'kind' parameter and how it shapes the 'entities' parameter (e.g., 2 point refs for distance, 2 line refs for angle). It also explains the 'expression' parameter. However, it does not elaborate on the 'sketch' or 'text_pos' parameters, which are left mostly unexplained beyond schema titles. Coverage is good but not 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 description clearly states the tool's purpose: adding a dimension with an expression. It also lists the supported kinds (distance_h, distance_v, distance, angle, radial, diameter), making the scope unambiguous and distinguishing it from other tools like drive_joint or extrude.

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 practical usage instructions, such as how to use parameter-name expressions versus literal values, and how entities depend on the kind. However, it does not explicitly mention when to prefer this tool over alternatives or provide context about typical usage scenarios, which weakens the guidelines.

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

add_ellipseA

Add an ellipse defined by center + major-axis endpoint + minor-axis endpoint. All in mm.

ParametersJSON Schema
NameRequiredDescriptionDefault
centerYes
sketchYes
major_axis_endYes
minor_axis_endYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the transparency burden. It accurately communicates the creation behavior and specifies mm units, but it does not disclose coordinate frame conventions, whether axis endpoints are radii or semi-axes, sketch prerequisites, or side effects beyond adding the ellipse.

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, front-loaded sentence with no filler. Every phrase adds information: the operation, the geometric definition, and the units.

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 simple creation tool with four required parameters and no output schema, the description provides the core semantics but leaves gaps: the sketch parameter is unexplained, and the array parameters lack structural detail. It is minimally viable but not fully complete.

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 maps three parameters to their geometric meaning and states units, but the sketch parameter is not explained and the coordinate arrays are not described in terms of expected elements or dimensionality.

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 the tool adds an ellipse and defines the exact construction method (center + major-axis endpoint + minor-axis endpoint). This differentiates it from sibling shape tools like add_circle, add_arc, and add_spline.

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 intended use is implied by the operation name and description, but there is no explicit when-to-use guidance or mention of alternatives. The description does not say, for example, to use this tool when an ellipse is needed rather than a circle or spline.

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

add_geometric_constraintB

Apply a geometric constraint. kind in {horizontal, vertical, parallel, perpendicular, coincident, tangent, equal, concentric, fix, midpoint, symmetric}. entities is a list of entity refs like 'line:0', 'line:0:start', 'circle:1:center', or 'origin'.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYes
sketchYes
entitiesYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states the operation and parameter values, omitting side effects, failure modes, permission requirements, or reversibility—important 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.

Conciseness5/5

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

The description is two concise sentences, front-loaded with the action and immediately providing essential parameter details without redundant or extraneous content.

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?

Given no output schema, no annotations, and 0% parameter coverage, the description is incomplete. It covers only two of three parameters, lacks behavioral context, and gives no indication of return values or effects, making it inadequate for a complex 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 provides 0% description coverage, so the description must compensate. It explains the 'kind' enum and the 'entities' reference format, but the 'sketch' parameter is left unexplained, leaving partial compensation.

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 'Apply a geometric constraint' and enumerates allowed kinds and entity reference formats, which unambiguously identifies the tool's function and distinguishes it from similar tools like add_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?

The description implies use for adding geometric constraints but offers no explicit guidance on when to use this tool over alternatives (e.g., add_dimension) or any 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_holeA

Add a hole on the body's top face (max-Z, +Z normal). kind: simple | counterbore (needs cbore_diameter + cbore_depth) | countersink (needs csink_diameter + csink_angle). position_mm: [x, y, z] — x/y locate on the top face; z is informational. extent_kind: all | distance (needs depth_expression).

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
kindNosimple
nameNo
diameterYes
cbore_depthNo
csink_angleNo
extent_kindNoall
position_mmYes
cbore_diameterNo
csink_diameterNo
depth_expressionNo

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 must carry the behavioral burden. It adds useful context (top face, +Z normal, z is informational) and notes dependencies, but it does not disclose side effects (e.g., whether it modifies the body in place, requires an existing body, or returns any result). It also omits any requirement details or error conditions, leaving some ambiguity for the agent.

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 concise and well-structured, with a clear opening sentence followed by bullet-like clauses for kind, position, and extent. Every sentence contributes to understanding the tool's behavior, with no fluff or repetition. It is front-loaded with the core purpose and then details the key decision points.

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 tool's complexity (11 parameters, no annotations, no output schema), the description covers the critical decision points: the face, the position semantics, and the parameter dependencies for different hole styles. However, it omits a few items like what the tool returns (if anything), whether a body must already exist, and the significance of the 'name' parameter. These are missing but not critical for basic usage, so it's fairly 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 schema has 0% description coverage, so the description must compensate. It explains the meaning of kind (simple, counterbore, countersink) and which parameters are needed for each, describes position_mm (x/y locate, z informational), and clarifies extent_kind (all vs. distance, requiring depth_expression). It does not explain 'body' or 'name' beyond their titles, but these are relatively self-evident. Overall, it adds substantial semantic value for most 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?

The description clearly states the action: 'Add a hole on the body's top face (max-Z, +Z normal).' It specifies the resource (body) and the precise location, distinguishing it from other add_* tools like add_circle or add_line. The verb is action-oriented and the scope is unambiguous.

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

Usage Guidelines4/5

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

The description gives contextual guidance: it mentions the top face and normal, and clearly states parameter dependencies for kind (counterbore/countersink) and extent_kind (distance). However, it does not explicitly mention alternatives or when not to use this tool versus other feature-creation tools, such as extrude or revolve.

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

add_lineA

Add a single line to a sketch. p1, p2 are [x, y] in mm.

ParametersJSON Schema
NameRequiredDescriptionDefault
p1Yes
p2Yes
sketchYes

TDQS

A4/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 transparency burden. It discloses the core effect (adds a line) and the unit system (mm), but does not mention prerequisites, failure modes, or side effects beyond the addition.

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?

One short sentence plus a parenthetical parameter clarification; every word carries meaning and the main action is front-loaded.

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 three-parameter geometric command, the description provides essential semantic details (points and units) and the target resource. It could mention needing an existing sketch or the return value, but the tool's complexity is low enough that this is a minor 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 description coverage is 0%, so the description compensates by specifying p1 and p2 as [x, y] in mm. The sketch parameter is left to its name, but it is straightforward given the context 'to a sketch'.

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 action ('Add'), a concrete resource ('a single line to a sketch'), and the coordinate form p1/p2. This clearly distinguishes it from sibling tools like add_rectangle, add_circle, and add_spline.

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?

No explicit when-to-use or alternative guidance is provided, but the phrase 'single line' implies it is for straight segment creation rather than arcs, splines, or closed shapes. This is usable but only implicit.

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

add_parametersA

Add user parameters idempotently. Existing names are skipped, not overwritten.

Each def: {name, expression, units?, comment?}. Reserved math names (sin/cos/pi/e/sqrt/etc) are rejected at validation time because Fusion will silently bind expressions to the math function.

ParametersJSON Schema
NameRequiredDescriptionDefault
defsYes

TDQS

A4.4/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 transparency burden. It discloses idempotency, non-overwriting behavior, reserved-name validation, and the Fusion math-binding rationale. It does not describe return or error behavior, but the side effects and gotchas it does reveal are specific and useful.

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 three short, information-dense sentences. It front-loads the core purpose, then adds parameter shape and a non-obvious validation note. 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 simple one-array parameter tool with no output schema, the description covers purpose, parameter shape, idempotency, and validation behavior. It does not explain what the tool returns or how errors surface, which is a minor gap given no output schema 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?

The input schema is a generic array of objects with no property descriptions, so the 'Each def: {name, expression, units?, comment?}' line adds essential structure. It also notes reserved math names. It could further clarify value types, expression syntax, or unit formats, but it compensates well for the 0% schema coverage.

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: 'Add user parameters.' It also clarifies that existing names are skipped, not overwritten, which distinguishes this from update_parameter and list_parameters. This is a clear, non-tautological purpose statement.

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 provides clear context: it is idempotent, safe to re-run, and will not overwrite existing parameters. It implicitly separates this from update_parameter, but it does not explicitly name alternatives or state when not to use this tool, so it stops short of full guidance.

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

add_polygonB

Add a regular polygon. sides >= 3. Inscribed (default) means vertices lie on the radius.

ParametersJSON Schema
NameRequiredDescriptionDefault
sidesYes
centerYes
sketchYes
vertexYes
inscribedNo

TDQS

B3.1/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 full burden. It discloses the meaning of 'inscribed' and the sides constraint, but does not clarify how center and vertex relate, whether the polygon is closed, or any 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.

Conciseness5/5

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

The description is highly concise—two sentences with no filler. It front-loads the action and directly states the core purpose, making every word earn its place.

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?

Despite being a simple tool, it has 5 parameters and no output schema. The description omits critical semantics for three parameters and does not explain the relationship between center and vertex, making it insufficient for an agent to correctly invoke the tool.

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

Parameters2/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 'sides' (>=3) and 'inscribed' (vertices on radius), but leaves 'center', 'vertex', and 'sketch' completely unexplained, leaving 60% of parameters without semantic guidance.

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 identifies the action ('Add') and resource ('regular polygon'), and specifies a key constraint (sides >= 3). It differentiates from sibling tools like add_rectangle or add_circle by focusing on polygons.

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?

There is no guidance on when to use this tool versus alternatives, nor any exclusion criteria. The only contextual hint is the 'inscribed' default, which is behavioral rather than usage-oriented.

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

add_rectangleA

Add a rectangle to a sketch. kind in {center, corner, 3pt}. Returns line_indices for the 4 edges. center: p1=center point, p2=corner. corner: p1, p2 are opposite corners. 3pt: p1, p2 define one edge, p3 sets the other edge direction.

ParametersJSON Schema
NameRequiredDescriptionDefault
p1Yes
p2Yes
p3No
kindYes
sketchYes

TDQS

A4.4/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 disclosure burden. It does well by stating the outcome ('Add a rectangle'), the return value ('Returns line_indices for the 4 edges'), and the role of each point in each mode. It does not mention failure conditions, prerequisites, or side effects beyond the added geometry, 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.

Conciseness5/5

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

The description is three compact sentences, with the main action and key parameters front-loaded. Each sentence earns its place: the first states purpose and kind values, the second gives the return value, and the third explains the point semantics per mode. No filler or repetition.

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 geometry-creation tool with 5 parameters, no annotations, and no output schema, the description is reasonably complete. It explains all three construction modes, the return value, and the meaning of the coordinate parameters. It does not cover error scenarios, units, coordinate-space assumptions, or the requirement that the target sketch already exist, but it is adequate for selecting and likely invoking the 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 for the bare schema. It substantially does so by defining the meaning of p1, p2, and p3 for each rectangle kind, and by enumerating valid kind values. However, it does not explicitly state that p3 is only used when kind='3pt' or clarify whether p3 is semantically required for that mode, and 'sketch' is only implied as a target container.

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: 'Add a rectangle to a sketch.' It also identifies the three construction modes (center, corner, 3pt) and the return value, clearly distinguishing this from sibling tools like add_line and add_circle.

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 how-to guidance for each kind variant, explaining exactly how p1, p2, and p3 should be interpreted. However, it does not explicitly state when to prefer add_rectangle over a more general alternative like add_polygon, so it lacks explicit exclusion/alternative guidance.

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

add_splineB

Add a fitted spline through a list of [x, y] points (mm). Optionally closed.

ParametersJSON Schema
NameRequiredDescriptionDefault
closedNo
pointsYes
sketchYes

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 burden. It mentions 'fitted spline' and 'optionally closed' but does not disclose whether the spline is a smooth curve through all points, how the closed option affects the curve, or any side effects like modifying the sketch. It also doesn't mention units or coordinate system beyond mm, which is helpful but minimal.

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 sentence that is concise and front-loaded with the core purpose. It includes the key details (points in mm, optional closed) without any fluff. Every word earns its place.

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

Completeness3/5

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

Given the tool has 3 parameters, no output schema, and no annotations, the description is adequate but not complete. It covers the main purpose and the 'closed' option but does not explain the 'sketch' parameter or the exact structure of 'points'. For a simple spline tool, this is acceptable but could be improved with more detail on the points format and sketch context.

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 'points' as a list of [x, y] points in mm and 'closed' as optional, but does not detail the format of the points array (e.g., nested arrays, objects) or the 'sketch' parameter (which is required but not described). The description adds some meaning but leaves gaps for the required 'sketch' parameter.

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 states the tool adds a fitted spline through a list of [x, y] points in mm, with an optional closed parameter. It distinguishes from sibling tools like add_line, add_arc, add_polygon by specifying 'fitted spline' and the point list input.

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 in a sketching context (points in mm, optional closed) but does not explicitly state when to use this vs alternatives like add_polygon or add_arc. No exclusions or alternative tool references are provided, but the context is clear enough for a basic spline creation.

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

assert_profilesA

Check that the sketch has the expected number of closed profiles. Returns ok=False if not. Use after building a sketch to catch self-intersecting polygons (which return profiles=2 silently).

ParametersJSON Schema
NameRequiredDescriptionDefault
sketchYes
expectedYes

TDQS

A4.6/5.0
Behavior4/5

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

No annotations were provided, so the description carries the full burden of behavioral disclosure. It explains the failure mode it addresses (self-intersecting polygons silently returning profiles=2) and the boolean result format. It doesn't provide exhaustive return-format detail (e.g., whether there's a message field), but it's fairly transparent for a simple assert-type tool.

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, zero filler. The first sentence states the core check and return behavior; the second adds crucial 'when to use' context. 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?

For a compact assert utility with only 2 parameters and no output schema, the description covers the core function, the return outcome, and the motivating use case. It could specify whether 'self-intersecting' creates an exception or a specific return value, but this level of detail is likely beyond what's needed for a validation 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?

With 0% schema description coverage, the description needs to compensate for both parameters. It does explain that 'expected' refers to the expected number of closed profiles and implies how 'sketch' is used (the sketch under test). It could add explicit types/validation, but the meaning is well-conveyed given the simplicity of the 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?

The description clearly states a specific verb+resource+intent: 'Check that the sketch has the expected number of closed profiles' and even describes the return value behavior ('Returns ok=False if not'). The second sentence distinguishes it from sibling sketch tools by explaining its unique role in catching silent self-intersecting polygon behavior.

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 says when to use it: 'Use after building a sketch to catch self-intersecting polygons (which return profiles=2 silently).' It provides a clear, practical trigger scenario and partially explains the alternative (silent behavior) it guards against, which helps an agent decide when to invoke this tool.

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

audit_feature_healthA

Sweep the feature tree (root + every sub-component) and report features whose healthState != 0.

Call this after ANY tool that edits sketch geometry, user parameters, or features. If summary.failed > 0 (state 2 or 3) or summary.warning > 0 (state 1), the BREP may look healthy via the API while Fusion's UI shows a stale cached display. See gotchas G10/G11.

Args: component_name: Restrict the audit to features in this component (still recurses into its sub-components). Default: root + all. include_healthy: Include healthy features (state 0) in the features list. Default False — only broken features are returned.

Returns envelope.result = { ok, summary: {total, healthy, warning, failed}, features: [{path, component, name, classType, healthState, healthLabel, isSuppressed, errorOrWarningMessage}, ...] }

ParametersJSON Schema
NameRequiredDescriptionDefault
component_nameNo
include_healthyNo

TDQS

A5/5.0
Behavior5/5

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

There are no annotations, but the description carries the full behavioral burden well. It states the traversal behavior, default exclusion of healthy features, what is returned in the envelope, and why the health state might not match the API/BREP appearance.

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?

Every sentence earns its place: purpose, usage trigger, gotcha, parameters, and return envelope are structured and front-loaded. No filler or redundancy.

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?

Even without an output schema, the description gives the exact return envelope, summary counters, and per-feature fields. It also ties the tool to the broader edit-verify workflow, so an agent can reliably decide when and how to invoke it.

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: component_name is explained as restricting to a component while still recursing, and include_healthy is explained as including state 0 features or defaulting to broken-features-only.

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 identifies a specific verb-resource pair: sweep the feature tree and report features whose healthState != 0. It distinguishes this as a diagnostic/audit tool, not an editing or transform tool.

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?

It explicitly states when to call it: after ANY tool that edits sketch geometry, user parameters, or features. It also gives a concrete decision rule based on summary.failed > 0 or summary.warning > 0, including a real-world gotcha about stale Fusion UI cache.

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

bodies_to_componentsA

Convert root-level bodies into named components, preserving world position. mapping is {body_name: new_component_name}. Multi-body designs need this before joint/motion work — Fusion's joints operate on components, not bodies.

ParametersJSON Schema
NameRequiredDescriptionDefault
mappingYes

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 must disclose behavior. It states that world position is preserved, which is a key behavioral trait. However, it does not mention side effects such as whether original bodies are deleted, or if the operation is reversible. This leaves gaps in behavioral 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 two sentences, front-loaded with the action and immediately provides the mapping format and usage justification. There is no fluff; every sentence contributes to understanding the tool.

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 one parameter, no output schema, and no annotations, the description covers purpose, usage timing, and input format. It omits potential side effects (e.g., behavior on original bodies) but otherwise provides a solid operational understanding.

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 describes only 'mapping' as an object with no additional properties, and schema description coverage is 0%. The description compensates by explicitly defining the format: 'mapping is {body_name: new_component_name}'. This adds crucial meaning and clarity beyond the 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 clearly states the action: 'Convert root-level bodies into named components, preserving world position.' It specifies the resource (bodies) and the result (components), and distinguishes from siblings by explaining that joints require components, not bodies.

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 explicit usage context: 'Multi-body designs need this before joint/motion work — Fusion's joints operate on components, not bodies.' It explains when it should be used but does not explicitly mention alternative 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.

bounding_boxA

Return mm bbox + extents for a body (by name) or all bodies if name omitted. Walks root + every occurrence.

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNo

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 behavioral burden. 'Return' implies a read-only operation, and it discloses optional body_name behavior and occurrence traversal. It stops short of describing error cases or exact output shape, but the key behavior 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-load the main purpose and scope choice, with no filler or repetition. Every word contributes meaning.

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 and no annotations, the description gives enough for a simple optional-parameter query: units, scope, and traversal behavior. It could specify the exact return structure or not-found behavior, but the description is largely complete for 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?

The schema has 0% description coverage, so the description must explain the parameter. It does: body_name is optional, used to select a body, and omitting it returns all bodies. It could add name-format details, but the core semantics are covered.

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: 'Return mm bbox + extents for a body (by name) or all bodies if name omitted.' It clearly distinguishes this from siblings like measure, volume, and mass by naming the exact geometric output and optional body scope.

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 when to use the tool: for a named body or all bodies, and adds traversal context with 'Walks root + every occurrence.' It does not explicitly name alternatives or exclusions, 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.

center_of_massA

Return center of mass in mm world coordinates for a body or all bodies.

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNo

TDQS

A4/5.0
Behavior3/5

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

No annotations exist, so the description must carry the behavior disclosure burden. It does clarify coordinate system and units, but it does not disclose return shape for multiple bodies, whether the tool is read-only, or what happens with invalid/missing body names. This is useful but not fully 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 one short sentence that immediately front-loads the action (`Return center of mass`) and includes every necessary clue without wasting words. There is no filler or repetition.

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 only one optional parameter and no output schema, this description is nearly complete. However, the phrase `for a body or all bodies` is ambiguous as to whether the tool returns a single combined center of mass for all bodies or a collection of centers. It also does not describe the returned vector shape (e.g., x, y, z). Lacking that makes it 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?

Schema description coverage is 0%, so the description is the only meaningful note about parameters. The single parameter, `body_name`, is semantically explained by `for a body or all bodies` (implicitly null/omitted means all, provided string means a specific body), adding relevant meaning beyond the plain 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 states a specific action (`Return center of mass`), identifies the resource (`body` or `all bodies`), and adds useful details (`mm`, `world coordinates`) to disambiguate from sibling tools like `mass`, `bounding_box`, and `volume`.

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 `for a body or all bodies` provides context about scope, but there is no explicit guidance on when to choose this tool instead of alternative measure tools, no prerequisites, and no exclusions for cases when the body name may not exist or the assembly is not fully grounded.

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

chamfer_edgesC

Chamfer specific edges by handle. kind: equal | two_dist (needs distance2) | dist_angle (needs angle).

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoequal
nameNo
angleNo
distanceYes
distance2No
edge_handlesYes

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It mentions that 'two_dist' needs distance2 and 'dist_angle' needs angle, which is some behavioral detail, but does not disclose side effects, whether the operation is destructive, or what happens on failure. It does not contradict annotations (none), but is insufficient.

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

Conciseness3/5

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

The description is very short (two sentences), but it is under-specified rather than concise. The first sentence is clear, but the second lists options without context. It is efficient in length but could be more structured to explain the parameters and usage.

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?

The tool is moderately complex with 6 parameters and no output schema. The description does not cover param semantics or usage context, leaving significant gaps. A description should explain the kind options, parameter relationships, and perhaps the effect on the model, but it does not.

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 6 parameters. It only hints at kind and mention of distance2 and angle in the kind line, but does not explain what edge_handles, distance, or name mean. No format or units are given. This is inadequate for a 6-parameter tool.

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 states the tool chamfers specific edges by handle, which is a clear verb+resource, but it does not distinguish from sibling 'chamfer_edges_by_geometry' which also chamfers edges. The description mentions 'kind' options but doesn't explain what they mean or when to use them, so it is not fully 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?

No guidance on when to use this tool vs 'chamfer_edges_by_geometry' or when to choose between 'kind' values. The description lacks any context about prerequisites or typical usage scenarios. Sibling tools like fillet_edges exist, but no exclusions or alternatives are mentioned.

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

chamfer_edges_by_geometryC

Chamfer edges of a body by geometric filter. kind: equal (one distance) | two_dist (needs distance2) | dist_angle (needs angle).

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
kindNoequal
nameNo
angleNo
distanceYes
distance2No
parallel_toNoz
min_length_mmNo

TDQS

C2.6/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 burden. It mentions the 'kind' parameter and its sub-options (equal, two_dist, dist_angle) but doesn't disclose what happens with different kinds, whether the operation is destructive, or any side effects. It doesn't explain the geometric filter behavior beyond the kind parameter.

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 very short (two sentences) and front-loaded with the main purpose. However, it's under-specified; the second sentence is a terse list of 'kind' options without context. It's concise but not well-structured for usability.

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?

With 8 parameters, 0% schema coverage, no annotations, and no output schema, the description is inadequate. It doesn't explain the geometric filter mechanism, how to use 'parallel_to' or 'min_length_mm', or what the result looks like. The tool is complex (multiple chamfer kinds) but the description provides minimal guidance.

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 description coverage is 0%, so the description must compensate. It explains 'kind' values but doesn't explain other parameters like 'parallel_to', 'min_length_mm', 'name', or the relationship between 'distance' and 'distance2'. The description adds minimal value beyond the schema's field names.

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 the tool chamfers edges of a body by geometric filter, which is a specific verb+resource. It distinguishes from the sibling 'chamfer_edges' by adding 'by geometry', though it doesn't explicitly contrast with it. The 'kind' parameter is briefly explained, adding some clarity.

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 use this tool versus alternatives like 'chamfer_edges' or 'fillet_edges_by_geometry'. The description implies it's for geometric filtering but doesn't state when to choose it over the simpler 'chamfer_edges' or other edge operations.

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

closeA

Close the active document. confirm must be 'save', 'discard', or 'prompt'. Never auto-pick save vs discard for dirty docs; surface the choice to the user.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoprompt

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. It adds a key behavioral trait: 'Never auto-pick save vs discard for dirty docs; surface the choice to the user.' This clarifies how the tool handles unsaved changes. However, it does not describe the full lifecycle (e.g., what happens after save/discard, whether the document can be reopened, or error conditions). It provides some transparency but not comprehensive.

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

Conciseness5/5

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

The description is two short sentences with no fluff. Each sentence earns its place: the first states the action, the second clarifies a critical behavioral constraint. It is front-loaded and immediately understandable.

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 tool with one parameter, the description covers the essential functionality (close active doc), parameter values, and a key safety behavior. It lacks details on edge cases (e.g., no open document) or side effects of specific confirm choices, but given the simplicity and absence of an output schema, it is reasonably 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?

Since schema description coverage is 0%, the description must elaborate on parameters. It does so by specifying acceptable values ('save', 'discard', 'prompt') and the rule to never auto-pick, which gives meaning to 'confirm'. It doesn't explain each value's effect explicitly but implies it via the warning. This adds substantial value 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 clearly states the action: 'Close the active document.' It uses a specific verb (close) and a specific resource (active document), distinguishing it from sibling tools like save or open_doc, which serve different purposes. No ambiguity.

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 guidance on the 'confirm' parameter values but does not explicitly discuss when to use this tool versus alternatives (e.g., when to save vs. close). It implies usage for closing, but lacks explicit exclusions or comparisons to other tools like save. The behavioral rule about not auto-picking save/discard is more about parameter handling than tool selection.

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

combineC

Boolean combine. operation: join | cut | intersect. keep_tools: preserve tool bodies after op.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
operationNojoin
keep_toolsNo
target_bodyYes
tool_bodiesYes

TDQS

C2.9/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 conveying behavioral traits. It only states the operation and keep_tools effect, but does not disclose whether it modifies bodies in place, returns new bodies, or has any destructive side effects. This is insufficient for an agent to understand the impact of calling this 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 extremely concise, using two short sentences, which is efficient. However, it may be too terse for such a complex operation, as it omits essential context about the inputs and behavior, yet as a stylistic choice it is well-structured and front-loaded with the core purpose.

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?

Given the tool's complexity (boolean operation on tool bodies) and lack of annotations or output schema, the description is inadequate. It does not explain how target_body and tool_bodies relate, what the result is, or any prerequisites or side effects. This is a significant gap for an agent to correctly invoke the tool.

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

Parameters3/5

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

The description explains the operation parameter with its allowed values (join|cut|intersect) and keep_tools as 'preserve tool bodies after op', which adds semantics beyond the schema. However, it does not describe target_body or tool_bodies at all, and with 0% schema description coverage, these key parameters remain ambiguous. The description covers only a subset of the parameters.

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 'Boolean combine' which clearly indicates applying boolean operations (join, cut, intersect) to tool bodies. It distinguishes from siblings like 'drive_joint' or 'extrude' by focusing on boolean combinations. However, it is somewhat terse and doesn't explicitly mention target_body and tool_bodies as inputs, so there is slight ambiguity but still the 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 Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'revolve', 'fillet_edges', or other body operations. There is no mention of scenarios where boolean combine is appropriate or contraindicated, leaving the agent without context for selection.

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

create_construction_axisA

Create a construction axis. kind in {2_points, normal_to_face_by_geometry}. 2_points: p1, p2 each as [x, y, z] in mm normal_to_face_by_geometry: body name + face_normal [nx, ny, nz] (finds the face whose normal matches)

ParametersJSON Schema
NameRequiredDescriptionDefault
p1No
p2No
bodyNo
kindYes
nameNo
face_normalNo

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 of behavioral disclosure. It usefully explains that the normal_to_face_by_geometry mode 'finds the face whose normal matches' and specifies units in mm. However, it does not describe side effects, failure modes, what document/workspace is affected, or what happens if no matching face is 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?

The description is compact and front-loaded: a one-line purpose statement followed by two short mode-specific bullet lines. Every sentence adds useful information with no redundancy 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?

For a 6-parameter tool with no output schema and no annotations, the description provides enough detail to invoke both construction modes correctly, including units and face-normal matching behavior. It is slightly incomplete because it omits the purpose of the name parameter and gives no indication of return values or errors, but the core invocation context is well 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 description coverage is 0%, so the description must compensate, and it does. It defines p1 and p2 as [x, y, z] arrays in mm, defines kind values, and explains body plus face_normal usage for the second mode. It does not describe the optional name parameter, 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?

The description starts with a specific verb and resource: 'Create a construction axis.' It clearly distinguishes this tool from sibling tools like create_construction_plane and create_construction_point by naming the exact object type. It further clarifies purpose by enumerating the two axis-construction kinds.

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 context for when to use each of the two kinds: 2_points for point-based axes and normal_to_face_by_geometry for face-normal-based axes. It does not explicitly list exclusions or alternatives, but the mode-specific guidance is sufficient for most selection decisions.

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

create_construction_planeA

Create a construction plane. kind in {offset, midplane, at_angle, 3_points}. offset: base_plane + offset expr (e.g. 'thickness') midplane: plane_a + plane_b (between two existing planes) at_angle: axis + base_plane + angle expr (e.g. '30 deg') 3_points: p1, p2, p3 each as [x, y, z] in mm Plane / axis names default to principals: 'xy', 'xz', 'yz' / 'x', 'y', 'z'.

ParametersJSON Schema
NameRequiredDescriptionDefault
p1No
p2No
p3No
axisNo
kindYes
nameNo
angleNo
offsetNo
plane_aNo
plane_bNo
base_planeNo

TDQS

A4.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 burden of behavioral disclosure. It adds useful behavior details such as default plane/axis names, point units in mm, and expression examples. However, it does not disclose side effects, document mutation, prerequisite conditions, 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.

Conciseness5/5

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

The description is compact, scannable, and front-loaded with the core purpose. Each line adds distinct value: the kind enum, mode-specific parameter maps, examples, and defaults. There is no filler or repetition.

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 tool's complexity (11 parameters, no annotations, no output schema), the description does a strong job covering all construction modes, required parameter relationships, units, and defaults. It falls slightly short of a 5 because it does not describe the result/return value or any post-creation effects.

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?

With 0% schema description coverage and 11 parameters, the description compensates strongly by mapping each construction kind to its relevant parameters and giving concrete formats for expressions, point coordinates, and defaults. Only the `name` parameter is not explicitly elaborated, but its meaning is reasonably inferable from context and schema title.

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 the specific verb-object pair 'Create a construction plane' and immediately enumerates the four construction modes (offset, midplane, at_angle, 3_points). This clearly distinguishes it from sibling tools like create_construction_axis and create_construction_point.

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 provides clear mode-specific usage context, explaining which parameters apply to each kind of plane. It does not explicitly name sibling alternatives or state when not to use the tool, so it stops short of a 5, but the usage conditions for each variant are unambiguous.

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

create_construction_pointA

Create a construction point at explicit [x, y, z] coordinates (mm).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
coordsYes

TDQS

A3.5/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 transparency burden. It communicates that a construction point is created at specified coordinates, but it does not disclose whether a document context is required, what coordinate frame is used, whether the operation fails if a point already exists at the location, 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.

Conciseness5/5

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

The description is a single, front-loaded sentence containing exactly the needed information: action, object, coordinate format, and units. There is no redundant or filler 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?

For a simple creation tool, the description covers the core invocation adequately, but it omits some useful operation context such as the coordinate frame, active document requirements, and behavior when an invalid coordinate is provided. Since there is no output schema, this missing context is costlier than it would otherwise be.

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 provides almost no semantic information (0% coverage), but the description adds essential meaning by specifying that coords is an explicit [x, y, z] array expressed in mm. This goes well beyond the bare array type in the input schema. The optional name parameter remains inferable from the schema directly.

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 action (create) and a specific resource (construction point) at explicit [x, y, z] coordinates in mm. This clearly distinguishes it from related tools such as create_construction_plane, create_construction_axis, and delete_construction.

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?

There is no guidance on when to use this tool versus alternatives, nor any mention of prerequisites such as an active document or sketch context. The description defines what the tool does but not the circumstances under which the agent should select it.

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

create_contact_setC

Create a contact set for physics / motion analysis between 2+ bodies.

ParametersJSON Schema
NameRequiredDescriptionDefault
body_namesYes

TDQS

C2.8/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. It indicates a creation action but does not mention side effects, whether bodies must already exist, whether the contact set is persistent, or how it affects motion analysis.

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, front-loaded sentence with no filler. Every word contributes to the core purpose and the key constraint.

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?

The tool is simple, but with no annotations and no output schema, the description leaves important operational details unstated: what happens on success, what body references are valid, and how the contact set integrates with physics/motion analysis.

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 body_names has no item type or description. The description adds the '2+ bodies' constraint, but it does not specify the expected format, whether items are names or IDs, or how the array maps to actual bodies.

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 uses a specific verb and resource: 'Create a contact set' for 'physics / motion analysis between 2+ bodies.' It clearly distinguishes this from sibling tools like create_joint or create_rigid_group, though it does not explain what a contact set is or how it behaves.

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 is provided on when to use this tool versus alternatives such as create_joint or create_rigid_group. There are no prerequisites, exclusions, or context about when a contact set is the appropriate choice.

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

create_jointA

Create a Joint between two entity-handle origins.

Joint origins are specified as entity handles (kind:path:token). Supported kinds: face (planar OR cylindrical/conical), edge (uses MiddleKeyPoint), vertex (uses Point), point (sketch point). Get handles from list_body_entities for face/edge/vertex, or use the sketch tools' returned handles for sketch points.

motion_type: one of rigid, revolute, slider, cylindrical, ball.

  • rigid: locks the two origins; no DOF

  • revolute: 1 DOF rotation about axis (use for hinges)

  • slider: 1 DOF translation along axis

  • cylindrical: rotation + translation along axis

  • ball: 3 DOF rotation (axis arg ignored; Fusion only accepts pitch=Z, yaw=X, which is what gets used)

axis: x | y | z, relative to the first joint geometry's local frame. For typical face-normal rotation (hinge pin coming out of the face) use z.

offset_mm: optional ValueInput expression for lateral offset between the two geometries. A snap hinge typically needs a few mm here to hold the gap between mating flanges. Preserved across user-param changes (unlike Move-based positioning).

angle_deg: optional initial angle (revolute / cylindrical).

name: optional joint name in the timeline.

Returns {ok, joint_name, joint_token, motion_type, axis, offset_mm, angle_deg}. Use joint_name for downstream drive_joint / set_joint_limits calls.

Errors:

  • handle_invalid: one of the geometry handles could not be resolved.

  • joint_geometry_failed: face/edge/vertex/point handle resolved but Fusion could not build a JointGeometry from it (e.g. degenerate face).

  • joints_add_failed: joint inputs were valid but Fusion refused the joint (usually means the two geometries are mateable only with a different motion type, or one geometry is in a frozen component).

ParametersJSON Schema
NameRequiredDescriptionDefault
axisNoz
nameNo
angle_degNo
offset_mmNo
motion_typeNorigid
geometry_oneYes
geometry_twoYes

TDQS

A4.9/5.0
Behavior5/5

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

Without annotations, the description discloses behavior comprehensively: explains return values, error cases with conditions, and specific Fusion behaviors (e.g., ball motion ignores axis, accepts only pitch=Z, yaw=X). It also notes persistence of offset_mm across user-param changes.

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 well-organized with bullet-like structure and headers (motion_type, axis, offset_mm, angle_deg, name, Errors). It's slightly long but each sentence adds value; no fluff.

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?

Given the tool's complexity (7 params, no annotations, no output schema), the description is exceptionally complete: covers usage, parameter semantics, return format, error modes, and integration with other tools. It enables an agent to invoke correctly without external references.

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%, but description covers all 7 parameters with practical details: geometry handles and kinds, motion_type values and DOF, axis relative to local frame, offset_mm with example usage, angle_deg for specific motions, and name. This fully compensates for the schema 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 clearly states the tool creates a joint between two entity handles, specifies supported entity kinds and motion types, and provides detailed examples. It effectively distinguishes from sibling tools like drive_joint and set_joint_limits by noting the joint_name is used for downstream calls.

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?

Provides explicit guidance on when to use: specifies handle formats, which tools to get handles from, and explains motion types with analogies (e.g., revolute for hinges). It also mentions when not to use (e.g., Axis ignored for ball) and how offset_mm is preserved unlike Move-based positioning.

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

create_rigid_groupA

Lock 2+ components together as a rigid group (they move as one).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
component_namesYes

TDQS

A3.7/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 transparency burden. It honestly discloses the core effect and the 'move as one' behavior, but it does not mention side effects, reversibility, prerequisites, or how the group interacts with existing joints/constraints.

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 front-loaded sentence with no filler. Every word contributes to understanding the tool's purpose and core behavior.

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 simple two-parameter operation, the description is workable, but it lacks caveats around reversibility, failure modes, or relationship to sibling joint/constraint tools. With no annotations and no output schema, a bit more context would make it fully complete.

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 description adds meaning to component_names by specifying '2+' components and the rigid-group behavior. However, because schema description coverage is 0%, the optional 'name' parameter is left completely unexplained, and the item schema for component_names is empty.

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 ('Lock') with a clear resource ('2+ components') and explains the result ('they move as one'). This clearly distinguishes it from sibling tools like create_joint or drive_joint.

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 'Lock 2+ components together' implies when to use it, and the 2+ constraint is helpful. However, there is no explicit guidance on when not to use it or how it differs from alternatives such as create_joint or ground_component.

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

create_sketchB

Create a new sketch on a principal plane. plane in {xy, xz, yz}. name must be unique.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
planeYes

TDQS

B3.2/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden. It discloses the uniqueness constraint and allowed planes, but it does not explain what happens on duplicate names, whether the tool returns a reference, or any other postconditions/error behavior for a mutating 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 two short, front-loaded sentences with no filler. Every clause earns its place by conveying either the action or a required constraint.

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 simple two-parameter creation tool, the description is adequate to invoke it with valid values. However, with no output schema and no mention of return behavior or how the created sketch is referenced by subsequent operations, there are clear gaps for an agent relying solely on this description.

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 by enumerating valid plane values ('plane in {xy, xz, yz}') and clarifying the name constraint ('name must be unique'), which adds meaning beyond the bare string type definitions.

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 states the action ('Create a new sketch') and the resource ('sketch') plus a location constraint ('principal plane'). It also specifies valid plane values, adding useful scope beyond the name, though it does not explicitly distinguish itself from sibling creation tools like create_construction_plane.

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 constraints but no guidance on when to use this tool versus alternatives, prerequisites, or follow-up steps. It does not mention that a sketch must be created before adding lines/rectangles or how it relates to sibling geometry tools.

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

delete_constructionA

Delete a construction plane / axis / point by name.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

A3.5/5.0
Behavior2/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 only says 'Delete', which implies destructive intent, but it does not disclose whether deletion is permanent, what happens to dependent features, what errors occur for unknown names, or any authorization requirements.

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 front-loaded sentence with no filler. It communicates the verb, resource, and parameter in a compact, scannable way.

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 one-parameter destructive tool with no annotations and no output schema, the description is minimally viable but incomplete. It covers what is deleted and how it is identified, but omits side effects, error behavior, and any preconditions, leaving meaningful gaps for an agent invoking a deletion operation.

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%, but the description partially compensates by saying 'by name', clarifying that the single 'name' parameter identifies the construction entity to delete. It does not add format details, naming conventions, or behavior for invalid/missing names, so the compensation 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 ('Delete') and resource ('construction plane / axis / point'), and states the selection mechanism ('by name'). It clearly differentiates from sibling create_construction_* tools and there are no competing delete tools in the sibling list.

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 the tool is used when you have a named construction entity to remove, but it does not explicitly state when to use it versus alternatives or mention prerequisites such as whether the entity must exist first. No exclusions or alternative tool referrals are provided.

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

doc_stateA

Summary of the active Fusion document: design_type (parametric/direct), bodies/sketches/features count, units, dirty flag, components, parameters, timeline. A direct design returns parameters_count and timeline_count as None, listed in result.unavailable.

ParametersJSON Schema
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. It conveys that this is a summary/read-only operation, and it proactively discloses that direct designs return parameters_count and timeline_count as None with those listed in result.unavailable. This adds meaningful edge-case behavior without contradicting annotations.

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 concise, front-loaded with the core purpose, and uses a compact list of fields. The direct-design edge case is stated in one extra sentence without unnecessary filler.

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?

Despite no output schema, the description clearly enumerates all returned fields and covers a special-case behavior for direct designs via result.unavailable. For a zero-parameter introspection tool, this is sufficiently 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 parameter semantics are straightforward and the baseline is 4. The description adds helpful context by enumerating the output fields even though no input parameters exist to document.

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 identifies the tool as a summary of the active Fusion document and enumerates the exact state aspects returned: design_type, counts, units, dirty flag, components, parameters, timeline. This distinguishes it from sibling mutation and measurement tools.

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 inspecting the active document state, but it does not explicitly state when to choose this tool over alternatives or mention any exclusions. The direct-design caveat is useful context but not replacement for explicit usage guidance.

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

drive_jointA

Drive an existing joint to a target value. value is an expression: angle for revolute, distance for slider, etc. Tries jointMotion attributes in order: rotation, slide, roll, pitch, yaw. Fusion silently ignores drives beyond the joint's limits; check applied in the response (false = the joint stayed where it was).

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYes
joint_nameYes

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 must carry the burden. It covers key behaviors: the order of trying jointMotion attributes, silent ignoring of over-limit drives, and the need to check the applied flag. However, it does not disclose other side effects (e.g., whether the joint is moved physically, any undo implications) or auth/permission needs.

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 concise and well-structured: a one-sentence purpose, then a line on the value expression, then a note on attribute order, and finally a crucial behavioral warning and response hint. Every sentence adds value, and it is front-loaded with the main purpose.

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 output schema, the description covers the key usage points: value expression, attribute order, and response field. It does not describe the full return body (e.g., whether it returns only `applied`), but the mention of `applied` is enough for basic use. The complexity is moderate, so this is fairly 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?

With 0% schema description coverage and only parameter names in the schema, the description partially compensates by explaining the value parameter (what it means for different joint types). It does not explain joint_name but that is fairly self-explanatory; the description adds meaningful context for value.

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 the action (drive), the target (an existing joint), and the goal (to a target value). It distinguishes itself from sibling tools like create_joint or set_joint_limits by focusing on motion of existing joints.

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 explains the value parameter is an expression (e.g., angle for revolute, distance for slider), which provides usage context. It also warns about silent ignore of limits and advises checking the response, but it does not explicitly mention when to use this tool versus alternatives (e.g., set_joint_limits).

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

edit_sketch_dimensionA

Change a sketch dimension's expression by parameter name (e.g. d278).

Triggers design.computeAll() before returning. After calling this, run audit_feature_health to check whether the edit broke any downstream features (very common for fillets when their target edges move; see G11).

On dim_not_found, the response includes the available dimensions in the sketch so the agent can correct course without another tool call.

Args: sketch: Sketch name (will search root + every sub-component). dim_name: Parameter name of the dimension (use probe_sketch_dimensions to find these). new_expression: New expression as a string. Can be a numeric literal ("20 mm"), a user param reference ("oval_x"), or an expression ("oval_x / 2 + 1 mm"). Units required if not a bare expression. component_name: Optional disambiguation when the sketch name exists in multiple components.

ParametersJSON Schema
NameRequiredDescriptionDefault
sketchYes
dim_nameYes
component_nameNo
new_expressionYes

TDQS

A5/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 burden of behavioral disclosure. It explicitly states that the tool triggers `design.computeAll()` before returning, which is a significant side effect. It also reveals that on `dim_not_found`, the response includes available dimensions, helping the agent recover. This is exactly the kind of behavior that is not inferable from schema and is well-disclosed.

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

Conciseness5/5

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

The description is well-structured with a clear first sentence stating the core purpose, followed by important behavioral warnings, error recovery info, and then a clean Args section. Every sentence adds value; no fluff. The formatting with sections and examples makes it easy to scan.

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?

Given the tool's moderate complexity (4 params, no output schema), the description is complete: it covers purpose, parameter details, side effects, error recovery, and post-conditions. It even references a known failure mode and a follow-up tool. There is no missing critical information for an agent to use it effectively.

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. It thoroughly explains each parameter: `sketch` (searches root + sub-components), `dim_name` (parameter name, find via `probe_sketch_dimensions`), `new_expression` (with detailed format rules: numeric literals, user param references, expressions, units required unless bare), and `component_name` (disambiguation). This far exceeds the minimal schema titles and provides essential semantic detail.

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 the tool changes a sketch dimension's expression by parameter name, with specific examples (e.g., `d278`). It distinguishes from siblings like 'add_dimension' (which adds dimensions) and 'probe_sketch_dimensions' (which reads them), and from parameter management tools like 'update_parameter'. The action is specific and unambiguous.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use guidance: it mentions using `probe_sketch_dimensions` to find parameter names, and explicitly recommends running `audit_feature_health` after the edit to check for downstream breakage. It also mentions a specific known pitfall (fillets on moving edges, see G11). This gives the agent clear context on when and how to use it, and what to do after.

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

executeA

Raw Python passthrough. The script must define def run(_ctx): as entry point. Use print() for any data to return; stdout becomes the response message.

ParametersJSON Schema
NameRequiredDescriptionDefault
scriptYes

TDQS

A3.7/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 burden of disclosure. It reveals the entry point requirement and the stdout-to-response mechanism, which are important behavioral traits. However, it omits critical details such as side effects, security considerations, available libraries, or execution environment, leaving the agent with an incomplete picture of the tool's 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 exceptionally concise, consisting of two sentences that deliver the core contract: execution model, entry point, and output handling. Every word serves a purpose, and the most critical information is front-loaded with the 'Raw Python passthrough' label.

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?

Despite the tool's potentially high complexity (arbitrary Python execution), the description covers the essential execution contract. However, it lacks information about interaction with the CAD environment, error handling, timeouts, or available APIs, which are likely relevant given the sibling tools. The absence of an output schema makes this gap more noticeable, as agents cannot rely on structured output descriptions.

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 only defines 'script' as a string with 0% coverage, so the description must compensate. It does so by explaining that the script must define a `run(_ctx)` function and that print output is captured as the response. This adds meaningful context about the expected content and structure of the script parameter, going 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 clearly states it is a raw Python passthrough, which is a specific and distinct purpose compared to the many CAD-specific sibling tools. It explicitly identifies the verb (execute) and the resource (Python script), leaving no ambiguity about its function.

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 does not provide any guidance on when to use this tool versus alternatives. It neither suggests appropriate scenarios nor warns against misuse. The name 'execute' implies it is for advanced scripting, but that is not stated explicitly, leaving the agent without clear decision criteria.

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

exportA

Export geometry to a file. format in {stl, 3mf, step, iges, obj, f3d, sat, smt}. path: absolute path (relative + '..' + Windows reserved names rejected). body: optional body name. If omitted, exports the whole root component. STEP/IGES/SAT/SMT/F3D always export the whole design (ignore body). refinement: low | medium | high — applies to STL and OBJ mesh quality. units: mm | cm | m | inch — STL/OBJ only.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
pathYes
unitsNomm
formatYes
refinementNomedium

TDQS

A4.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 full burden. It discloses important behaviors: STEP/IGES/SAT/SMT/F3D ignore the body parameter, refinement applies only to STL/OBJ, units are limited to STL/OBJ, and path constraints (absolute, no relative or Windows reserved names). It does not mention file overwriting or return values, but the disclosed format-specific details are strong.

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 concise and well-structured, with each line dedicated to a specific parameter or behavior. It avoids redundancy and fluff, using a clear label-and-explanation format that is easy to scan.

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 5 parameters and format-specific quirks, the description covers all core aspects: formats, path, body, refinement, and units with constraints. It lacks mention of file overwriting or directory existence, but these are edge cases. Overall, it is complete enough for correct usage.

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 thoroughly explains every parameter: format with allowed values, path constraints, body behavior, refinement values, and units values. It adds significant meaning beyond the bare schema, giving format applicability and default behaviors.

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 'Export geometry to a file' and lists supported formats, making the action and resource unambiguous. It distinguishes from sibling tools like save_as (likely for saving design documents) and import_geometry (importing 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 context on when to use the tool (to export geometry to a file in a specific format) and provides format-specific behavior (e.g., STEP/IGES ignore body). However, it does not explicitly mention alternatives like save_as or conditions when not to use this tool, so it misses some exclusionary guidance.

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

extrudeA

Extrude a sketch profile into a feature. operation: new_body | join | cut | intersect | new_component extent_kind: distance (needs expression) | symmetric (needs expression) | all_positive | all_negative direction: positive | negative (for distance kind) participants: body names to operate on (for cut/join/intersect) Returns feature_name + bodies_added.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
sketchYes
directionNopositive
operationNonew_body
expressionNo
extent_kindNodistance
participantsNo
profile_indexNo
is_full_lengthNo

TDQS

A3.6/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 disclosure burden. It does disclose operation kinds, extent options, direction handling, participant requirements, and return values, which is substantial. However, it does not state side effects such as body modification for cut/join, prerequisites for the sketch, or what happens with the original bodies, leaving important behavioral context implicit.

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 tightly structured and front-loaded with the purpose statement, followed by a compact parameter legend. Every line contributes value and there is no wasted prose, making it easy to scan despite the dense technical content.

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?

Given 9 parameters, no annotations, no output schema, and no parameter descriptions in the schema, the description is not complete enough. It covers core behavior and return values but omits several parameters, side effects, prerequisites, and alternative-tool context, leaving an agent to guess important aspects of 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 for the schema's lack of parameter explanations. It adds real semantics for operation, extent_kind, direction, and participants, but leaves name, profile_index, is_full_length, and the precise meaning of expression only partially or entirely unexplained. This is meaningful but incomplete coverage for a 9-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?

The first sentence clearly states the action ('Extrude') and the target resource ('a sketch profile') and the result ('into a feature'), which distinguishes it from related tools like revolve or shell. The dense domain-specific parameter list reinforces the tool's core behavior without ambiguity.

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 converting sketch profiles into features and documents internal operation choices, but it never explicitly says when to prefer extrude over alternatives like revolve or shell, nor does it state contraindications. The guidance is useful for selecting parameters within the tool, not for selecting the tool itself.

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

fillet_edgesB

Fillet specific edges by handle (UI-selection style). edge_handles: list from list_body_entities (kinds=['edge']). radius: expression like 'corner_r' or '8 mm'.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
radiusYes
edge_handlesYes
is_tangent_chainNo

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 burden. It explains the edge_handles source (list_body_entities) and radius format, but does not disclose whether the operation is destructive, reversible, or any side effects (e.g., feature creation, rebuild requirements). The description is minimal on behavior beyond usage.

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 with three bullet-like lines, front-loading the primary purpose and then detailing key params. No wasted words, but the lack of explanation for 'name' and 'is_tangent_chain' is a minor gap in completeness.

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?

Given no annotations and no output schema, the description must explain more fully. It covers the primary inputs but misses important behavioral details like mutation impact, prerequisites (e.g., must have a document open?), and effects on geometry. For a tool that modifies geometry, this is incomplete.

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, so the description must compensate. It explains edge_handles (list from list_body_entities) and radius (expression format), but does not explain 'name' or 'is_tangent_chain' parameters, which are not described in the schema either. This is a partial compensation, leading to a middle score.

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 states that the tool fillets specific edges by handle, using UI-selection style. It mentions the input types (edge_handles, radius) and distinguishes from sibling tools like fillet_edges_by_geometry, though it doesn't explicitly name them.

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

Usage Guidelines4/5

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

The description indicates when to use this tool: for filletting specific edges by handle, implying geometry-based selection would use a different tool. It doesn't explicitly list alternatives, but the context of 'handle' vs geometry is clear from the sibling names.

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

fillet_edges_by_geometryA

Fillet edges of a body by geometric filter (no UI selection needed). parallel_to: x | y | z | any — only edges parallel to that axis (or all). radius: expression like 'corner_r' or '8 mm'. min_length_mm: optional minimum edge length filter (skips tiny rounding edges).

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
nameNo
radiusYes
parallel_toNoz
min_length_mmNo
is_tangent_chainNo

TDQS

A3.9/5.0
Behavior3/5

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

Annotations are absent, so the description carries the full burden. It explains the geometric filter logic but omits behavioral details such as side effects (e.g., the body being modified in place), whether the operation is destructive/reversible, or potential failure modes. For a mutation tool, this is a notable gap, but the description does not mislead; it accurately describes the fillet action and parameter effects. Adding return value or error behavior would increase 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 extremely concise, with a one-sentence purpose followed by three bullet-like parameter notes. No wasted words; every line adds unique information. The front-loaded purpose sentence immediately clarifies what the tool does, and the parameter lines follow logically.

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 the tool has 6 parameters, no annotations, and no output schema, the description is somewhat minimal. It covers the main function and three parameters but leaves out context for other parameters, fails to mention that the operation modifies the body, and lacks guidance on prerequisites (e.g., does the body need to be selected? what happens if no edges match?). Comparable sibling tools like chamfer_edges_by_geometry likely have similar patterns, but this description could be richer.

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 description explains three of six parameters (parallel_to, radius, min_length_mm) with concrete details (e.g., radius expression format, parallel_to allowed values, min_length_mm purpose). However, body, name, and is_tangent_chain are not explained. Schema coverage is effectively 50% (3/6), which is not high, so the description partially compensates but leaves ambiguity for the remaining parameters. The value added for the covered parameters is solid.

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 the tool fillets edges of a body using a geometric filter, distinguishing it from the sibling fillet_edges by noting 'no UI selection needed.' The verb 'fillet' and resource 'edges of a body' are specific, and the geometric filter approach is unique among 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?

The description implies when to use this tool: when geometric filtering is desired instead of UI selection. It does not explicitly name alternatives or say when not to use it, but the contrast with 'no UI selection needed' and the presence of sibling tools like fillet_edges and chamfer_edges_by_geometry provides clear context. Could be improved by explicitly stating 'use this instead of fillet_edges when...' but current guidance is adequate.

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

find_apiA

Search the local Fusion API help corpus.

Returns top-N matches as {slug, title, namespace, kind, url, is_preview, introduced, snippet}. Use this BEFORE writing a script that touches an unfamiliar method or class.

Filters: kind: 'object' | 'member' | 'manual' | etc — restrict to one page type namespace: substring match on namespace (e.g. 'Fusion', 'CAM', 'core')

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo
limitNo
queryYes
namespaceNo

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are present, so the description carries the burden. It discloses the result shape (top-N matches with slug/title/namespace/etc.) and the filter semantics for kind and namespace. It doesn't state read-only guarantees or error behavior, but the search verb and return description make the operation's behavior reasonably 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?

Five short sentences/lines, front-loaded with the core purpose and immediately followed by usage and filter details. Every sentence provides information; 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 search tool with no annotations or output schema, the description covers the return payload, filter parameters, and a clear use case. It omits edge cases like matching strategy and pagination, but the provided information is sufficient for basic invocation and selection.

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 property descriptions are absent (0% coverage), so the description must add meaning. It explicitly explains `kind` and `namespace` with value examples and filter behavior, and 'top-N matches' maps to `limit`. `query` is left to inference from the tool name and the required field, and `limit` is not directly described.

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 action ('Search') and a precise resource ('local Fusion API help corpus'), then lists the returned fields. This clearly distinguishes it from sibling find_* tools by pointing to the API help corpus rather than general tool/pattern/gotcha lookup.

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 instructs to use it BEFORE writing a script that touches an unfamiliar method or class. No alternative tools or when-not cases are mentioned, so it provides a clear context without exclusions.

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

find_gotchaA

Search gotchas.md (known failure modes) by symptom or keyword.

Use when something behaves unexpectedly: check here for the documented cause

  • fix before debugging from scratch.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes

TDQS

A4.1/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 clearly indicates that the tool searches a documentation file and returns known causes and fixes, which implies read-only behavior. However, it does not disclose details such as search semantics, result limits, missing-match behavior, or whether results are snippets or full entries.

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 with the core action, then immediately gives the intended use case. Every sentence earns its place 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?

The description is adequate for a simple search-type tool with a single required parameter and no output schema. It covers the primary scenario and approach. However, it could be more complete by explaining the role of `limit` and what the returned results look like.

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 description coverage is 0%, so the description must compensate for the input schema. It indirectly explains the `query` parameter through 'search by symptom or keyword,' but it does not mention the `limit` parameter at all or explain how many results may be returned. The description adds minimal value beyond the 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 begins with a specific verb ('Search') and a clear resource ('gotchas.md'), and it explains what the search is about ('known failure modes'). It is distinct from sibling search-like tools such as find_api and find_pattern because it targets a specific documentation 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?

The description explicitly states when to use the tool: when something behaves unexpectedly, check here for the documented cause and fix before debugging from scratch. This gives clear context and implicitly positions it as an early diagnostic step.

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

find_mesh_using_rayA

NEW May 2026: cast a ray and return MeshBody objects intersected. origin_mm: ray origin [x, y, z] in mm. direction: ray direction [dx, dy, dz] (any magnitude; will be normalized by Fusion). component_name: optional component to scope the search; omit for whole root.

ParametersJSON Schema
NameRequiredDescriptionDefault
directionYes
origin_mmYes
component_nameNo

TDQS

A4.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 the full burden. It adds useful behavioral details: direction is normalized by Fusion and component_name scopes the search. However, it does not disclose other behaviors like whether the ray is infinite, what happens if no intersection occurs, or if there are any side effects. The 'NEW May 2026' note adds negligible value. Overall, it provides some context but is not exhaustive.

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 concise: a heading line plus three short parameter explanations. It is front-loaded with the purpose and does not waste words. The 'NEW May 2026' tag is a minor addition but not intrusive. 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?

Given there is no output schema, the description partially explains the return value ('return MeshBody objects intersected'). It does not mention potential empty results or ordering, but the core functionality is clear. For a simple geometric query with 3 parameters, it is reasonably complete, though it could note that the ray is infinite or that multiple objects may be returned in any order.

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 fully compensates by explaining all three parameters: origin in mm with format, direction with normalization rule, and component_name as optional with default behavior. This adds significant meaning beyond the bare schema types and titles.

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 'cast a ray and return MeshBody objects intersected', which is a specific verb (cast) and resource (ray) with an explicit return type (MeshBody objects). It distinguishes from siblings like ray_collision_with_mesh by its focus on returning meshes rather than collision points or measurements.

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 does not explicitly state when to use this tool versus alternatives like ray_collision_with_mesh. It implies usage by describing how parameters work ('optional component to scope the search; omit for whole root'), but there is no direct comparison or exclusion guidance. It only covers the mechanics, not the use cases.

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

find_patternA

Search patterns.md (verified Fusion MCP patterns and helpers) by intent.

Use when looking for the canonical idiom for a common operation (constrained rectangle, fillet by geometry, screenshot fit-view, etc).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes

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 burden of behavioral disclosure. It mentions patterns are 'verified' which implies curated content, but it doesn't state if the tool is read-only, return format, or any side effects. For a search tool, the read-only nature is implicit but not explicitly 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 two sentences, front-loaded with the purpose, and includes a usage guideline. No redundant information, every word 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 simple search tool with no output schema, the description does enough to identify purpose and usage, but it omits what the search returns (e.g., matching patterns) and parameter details. It's adequate but not rich in context.

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 description coverage is 0%, so description must compensate. It provides examples of intents for query (constrained rectangle, etc.) but doesn't explain the exact syntax, what limit controls, or how results are returned. Minimal compensation for undocumented 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?

The description clearly states the tool searches patterns.md for verified Fusion MCP patterns and helpers by intent. It specific verb 'search' and resource 'patterns.md', and it distinguishes from siblings like find_api, find_tool, and find_gotcha by focusing on patterns.

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 explicitly says to use when looking for the canonical idiom for a common operation, giving examples (constrained rectangle, fillet by geometry, screenshot fit-view). It lacks explicit when-not-to-use or alternative suggestions, but the context is clear enough.

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

find_toolA

Search this server's own tool reference (tools.md) by intent or symptom.

Returns the matching sections: signatures, exact enum values, return keys, and error codes. Use this to look up how to call a tool instead of guessing at arguments, and to check what an error code means.

Works with Fusion closed.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes

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. It discloses that it returns matching sections including signatures, enum values, return keys, and error codes. It also mentions it works with Fusion closed, implying no dependency on Fusion state. It doesn't mention side effects because it's a read-only search, which is fine. It could benefit from noting any rate limits or auth, but not essential.

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 concise and well-structured: first sentence states the action and target, second lists return contents, third gives usage scenarios. No fluff, 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?

The tool is moderately complex with no output schema, so the description should explain returns, which it does. It covers the main use cases and constraints (works with Fusion closed). It's not exhaustive but sufficient for an agent to understand what the tool does and when to use it. Missing details like query syntax or limit behavior slightly reduce completeness.

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 description coverage is 0%, so the description must explain the parameters, but it doesn't. It doesn't describe what 'query' should contain or how 'limit' behaves beyond the schema's default. The description only mentions 'by intent or symptom' but doesn't provide examples or clarify the query format. This is a significant gap given the coverage.

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 the tool searches the server's tool reference (tools.md) by intent or symptom. It names the specific resource and action, and distinguishes it from sibling search tools like find_api, find_pattern, and find_gotcha by focusing on how to call tools and interpret errors.

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 explicitly says when to use: to look up how to call a tool instead of guessing arguments, and to check error codes. It also notes it works with Fusion closed, which is a useful context. It doesn't explicitly mention alternatives, but the 'instead of guessing' gives clear use case.

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

ground_componentA

Set the ground flag on an occurrence (lock its world position).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

A3.5/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 burden. It discloses the primary behavioral effect ('lock its world position') but doesn't mention side effects, reversibility, or whether it affects child components. The description is adequate but not rich.

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

Conciseness5/5

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

The description is a single, concise sentence that front-loads the action and effect. No wasted words.

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 the tool's simplicity (one parameter, no output schema), the description is mostly complete. However, it lacks context on how grounding interacts with other operations (e.g., moving, joints) and whether the operation is reversible. The sibling 'unground_component' suggests reversibility, but the description doesn't state it.

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 only one parameter 'name' with 0% description coverage, so the description must compensate. The description doesn't explain what 'name' refers to (occurrence name? component name?) or its format. However, with a single parameter, the tool name and description imply it's the occurrence to ground, so the gap is moderate.

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 states the action ('Set the ground flag') and the target resource ('an occurrence'), and adds the key effect ('lock its world position'). It distinguishes from the sibling tool 'unground_component' by implying the opposite action, though it doesn't explicitly name the alternative.

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 it (when you want to lock an occurrence's position) but provides no explicit guidance on when not to use it or alternatives. The sibling 'unground_component' is an obvious counterpart, but the description doesn't mention it or any prerequisites.

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

import_geometryA

Import geometry from a file into the active design. format in {step, iges, sat, smt, f3d}. path: absolute path to an existing file. Returns counts of bodies and occurrences added to the root component.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
formatYes

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 transparency burden. It discloses that geometry is added to the active design and reports counts of bodies and occurrences added to the root component. It could go deeper on error behavior or requirements, but gives useful side-effect and return-value context.

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, front-loaded with the core action, and uses short parallel lines for the parameter details. No filler or repetition.

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 without an output schema or annotations, the description covers the main needed context: formats, path, design target, and return meaning. It could be more complete about failure modes or exact response shape, but it is sufficient for basic correct invocation.

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 only lists 'format' and 'path' with no additional meaning. The description compensates fully by enumerating the exact supported format values and by explaining that path must be an absolute path to an existing 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?

The first sentence clearly states the action and target: 'Import geometry from a file into the active design.' The supported formats and return description add useful scoping. However, it does not explicitly differentiate from sibling tools like open_doc or export, so it stops short of full sibling distinction.

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 context: use this when importing one of the listed formats into the active design, with an absolute path to an existing file. It does not explicitly say when not to use it or direct the user to 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.

interference_checkA

Run an interference analysis on 2+ bodies or occurrences. Returns per-pair interference volume in mm^3. Empty pair list = no interference.

ParametersJSON Schema
NameRequiredDescriptionDefault
entity_namesYes

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 burden of disclosing behavior. It states the output is per-pair volume and that empty list means no interference, which is useful. However, it does not disclose whether it is read-only or mutating, or any side effects like logging or affecting the document state, leaving ambiguity for a potentially analysis-only tool.

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 two sentences, front-loaded with the main purpose, and the additional detail about return value is crucial. Every sentence earns its place with no fluff.

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 the tool's complexity (interference analysis) and lack of output schema, the description explains the return value but misses key context: no mention of operating on the active document, whether entities must be in the same component, or error conditions. This meets the minimum but leaves gaps for an effective agent.

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 only one parameter 'entity_names' with no description and 0% coverage, so the description must clarify its meaning. The description says '2+ bodies or occurrences', implying entity_names is an array of names for bodies/occurrences, but it does not specify the format (e.g., strings, IDs) or whether they must be in the active document. It provides minimal added value beyond the 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 clearly states it runs an interference analysis on 2+ bodies or occurrences and returns per-pair interference volume, which is a specific verb+resource. It distinguishes from siblings like 'measure' and 'volume' by focusing on pair-wise interference, though it could be more explicit about how it differs from those.

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 for checking interferences between bodies/occurrences but does not state when to use it versus alternatives like 'measure' or 'volume' for distance or volume calculations. There is no explicit when-not-to-use or mention of prerequisites like needing an active document or selected entities.

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

list_body_entitiesA

Enumerate faces / edges / vertices of a body and return their handles. This is the bridge between name-addressing (bodies) and handle-addressing (sub-entities).

kinds: subset of [face, edge, vertex]. Defaults to all three. face_normal_filter: [nx, ny, nz] — only faces matching that normal (e.g. [0, 0, 1] for top). edge_parallel_to: x | y | z — only axis-parallel edges. min_edge_length_mm: filter out short edges (typical use: skip fillet runouts).

Returns face/edge/vertex lists, each with handle, index, and geometric info. Use the returned handles in measure, fillet_edges, chamfer_edges, project_to_sketch, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
kindsNo
edge_parallel_toNo
face_normal_filterNo
min_edge_length_mmNo

TDQS

A4.6/5.0
Behavior4/5

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

Without annotations, the description carries the burden of disclosing behavior. It clearly indicates that this is an enumeration operation (read-only by nature) and describes the output format (lists with handle, index, geometric info). It also explains filtering options. However, it doesn't address potential edge cases like errors on nonexistent bodies or empty results, which would be minor additional 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 concise and well-structured. It starts with the core purpose, then provides context, then parameter explanations, then return values, then usage guidance. Every sentence adds value with no redundancy or fluff, making it easy to scan and act upon.

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?

Given that there is no output schema, the description must explain return values, which it does (lists with handle, index, geometric info). It also covers all parameters, including defaults and typical uses, and mentions downstream usage. For a tool with moderate complexity (5 params), this is complete coverage without leaving critical gaps.

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 schema has zero descriptions for parameters, so the description must explain them. It does so thoroughly: kinds (with default), face_normal_filter (with example), edge_parallel_to, and min_edge_length_mm (with typical use). Each parameter's meaning and purpose are clearly defined, adding significant value beyond the raw 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 clearly states the tool enumerates faces/edges/vertices of a body and returns their handles. It further distinguishes itself by positioning as the bridge between name-addressing (bodies) and handle-addressing (sub-entities), which sets it apart from sibling tools that operate on bodies or handles directly.

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 explicitly tells the agent to use the returned handles in downstream tools like measure, fillet_edges, etc., implying when this tool is needed. However, it does not explicitly mention alternative tools or when not to use it, but the context is clear enough for typical scenarios.

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

list_open_docsA

List recently-open documents in Fusion.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are present, so the description must carry the full burden of behavioral disclosure. It only states a read operation ('List') with no mention of side effects, ordering, scope limitations, or return format, providing minimal context.

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 sentence with no filler, front-loading the verb and resource. It is efficient and to the point, earning a high score for conciseness.

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 simple read-only list tool, the description is adequate but incomplete. It fails to define 'recently' (e.g., session vs. all time), mention the output format (especially since no output schema exists), or note any limitations. Given the low complexity, this is a minor gap, but more context would improve the score.

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 the schema trivially covers everything. Per the baseline for zero parameters, a score of 4 is appropriate since the description does not need to add parameter detail, but it also does not enhance understanding of any hidden inputs.

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 the tool lists recently-open documents, using a specific verb and resource. This distinguishes it from siblings like search_docs (search) and list_projects (projects), making its 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 Guidelines2/5

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

No guidance on when to use this tool versus alternatives. It does not mention exclusions or alternatives, leaving the agent to infer that this is for recent docs only, without explicit direction.

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

list_parametersA

List all user parameters with resolved values, expressions, units, comments.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/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 burden. It states the tool lists parameters with resolved values, expressions, units, and comments, which gives some behavioral context. However, it doesn't disclose whether this is a read-only operation, any side effects, or performance implications. Since it's a listing operation, the behavior is fairly predictable, but the description could be more explicit about the read-only nature.

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 sentence that is concise and front-loaded with the action 'List all user parameters'. It includes the key details (resolved values, expressions, units, comments) without any fluff. Every word earns its place.

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

Completeness4/5

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

Given that the tool has no parameters and no output schema, the description is quite complete for a listing operation. It tells the agent what the tool does and what information will be included. It could potentially mention the return format or any limitations, but for a simple list operation, this is adequate. The sibling tools suggest a CAD environment, and this tool fits well.

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 description coverage is 100% (vacuously). The description adds meaning by specifying what is included in the listing (resolved values, expressions, units, comments), which is useful for the agent to know what to expect. Since there are no parameters, the description's role is to clarify the output content, which it does.

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 states the tool lists all user parameters with resolved values, expressions, units, and comments. It specifies the resource (user parameters) and the action (list), which is clear. However, it doesn't explicitly distinguish from sibling tools like add_parameters or update_parameter, but the verb 'list' and the scope 'all user parameters' make it distinct enough.

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 retrieving all user parameters, but it doesn't provide explicit guidance on when to use this tool versus alternatives. There are no exclusions or alternative tool mentions. Given the context of sibling tools like add_parameters and update_parameter, the description could benefit from stating that this is for read-only listing, but it's not misleading.

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

list_projectsA

List all projects (hubs / folders) the user can see.

ParametersJSON Schema
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 provided, so the description carries the burden of behavioral disclosure. 'List' implies read-only, but it does not explicitly state safety or side-effect-free operation. No conflicts, but minimal additional transparency beyond the obvious.

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

Conciseness5/5

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

Single sentence, front-loaded with the verb, no wasted words. Every word earns its place, making it highly concise and effective.

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 list tool with no parameters and no output schema, the description is sufficiently complete. It could optionally mention what the response contains (e.g., IDs, names) or when to use it, but these are more about usage guidance. The core behavior is covered adequately.

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. The description adds no parameter-specific details, but none are needed since the schema is empty. Perfectly adequate for a parameterless 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?

Description clearly states verb 'List' + resource 'projects' with clarification '(hubs / folders)' and scope 'the user can see'. This distinguishes it from sibling tools like list_open_docs (documents) and search_docs (search), making its 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 Guidelines2/5

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

No guidance on when to use this tool vs alternatives. It doesn't mention scenarios like fetching project IDs for other operations, nor does it contrast with list_open_docs or search_docs. The description is purely declarative with no contextual cues.

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

massB

Return mass (kg), material name, density, and volume for a body or all bodies. Material is whatever the body has been assigned; uses Fusion's physical-properties calc.

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNo

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 full burden and does add value: it discloses units (kg), the computation source ('uses Fusion's physical-properties calc'), and material provenance ('whatever the body has been assigned'). However, it never explicitly confirms this is a read-only, side-effect-free query, and the null-body_name behavior is only implied.

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 front-loaded sentences with no wasted words. The first sentence delivers the core purpose and scope; the second adds behavioral detail on material and computation. Appropriately sized for a simple query tool.

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 only one parameter, no annotations, and no output schema, the description explains the return values (mass in kg, material name, density, volume), the scope, and the computation source — covering the essentials for a simple getter. Minor gap: no explicit handling of the null body_name case, though 'all bodies' implies it.

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 implicitly maps body_name to the scope ('for a body or all bodies'), suggesting null targets all bodies. This adds meaning beyond the schema, but the mapping is implied rather than explicit (e.g., 'if body_name is null, returns all bodies' is never stated).

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 uses a clear resource ('mass (kg), material name, density, and volume') with explicit scoping ('for a body or all bodies'). It distinguishes from sibling tools like volume and center_of_mass by bundling material/density with mass, though 'Return' is a generic verb and the overlap with the volume sibling is not fully clarified.

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 use this tool versus alternatives. The scope ('for a body or all bodies') gives context on invocation, but there is no mention of when to prefer this over sibling query tools like measure, volume, or center_of_mass, and no when-not-to-use exclusions.

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

measureA

Measure between two entities using their handles (from list_body_entities or tool returns). kind: distance (min distance + nearest points) | min_distance (value only) | angle.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNodistance
entity_aYes
entity_bYes

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 behavioral disclosure burden. It describes what each kind returns: distance includes minimum distance plus nearest points, min_distance gives only a value, and angle is supported. It does not mention units or exact return shape, but for a simple read-only measurement tool this is reasonably transparent.

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

Conciseness5/5

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

The description is only two sentences and front-loads the operation, then concisely lists the supported kinds. Every sentence adds actionable information without 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?

Given that there is no output schema and no annotations, the description covers the essential usage path: entity source, allowed kinds, and what each kind returns. It could go further by specifying units or fully describing angle results, but it does not leave the agent guessing about the core 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 that entity_a and entity_b are handles from list_body_entities or tool output, and it gives concrete meaning to the 'kind' property. It still leaves angle output details somewhat underspecified, but the critical parameter semantics are provided.

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: 'Measure between two entities using their handles.' It also lists the supported kinds ('distance', 'min_distance', 'angle'), which clearly distinguishes it from sibling inspection tools like bounding_box, volume, mass, or center_of_mass.

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 for when to call this tool: any time the agent needs pairwise measurement between two entities. It even points to where entity handles can be obtained ('from list_body_entities or other tool returns'). It does not explicitly name alternatives or exclusions, but the 'between two entities' framing is sufficient guidance.

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

mirror_featureB

Mirror a feature or body across a plane. plane: xy | xz | yz | .

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
planeYes
feature_or_bodyYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for behavioral disclosure, but it omits key details: whether the original is kept or modified, whether new geometry is created, or if the operation is destructive. It also doesn't mention any side effects like feature dependencies or invalid states.

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 a single sentence, front-loaded with the core action. It is appropriately concise and easy to read. However, the brevity sacrifices necessary detail, so while it is efficient, it is not optimally structured for comprehension.

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?

Given the absence of annotations and output schema, the description is far from complete. It fails to explain the behavior (e.g., whether a new feature is added), the need for an existing construction plane, or the nature of the mirrored result. The tool has 3 parameters but only one is partially explained.

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 clarify parameters. It does explain the allowed values for 'plane' (xy, xz, yz, or construction plane name), which adds value beyond the schema. However, it leaves 'feature_or_body' and 'name' unexplained; 'feature_or_body' is critical and its format is unknown.

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 the tool's action: 'Mirror a feature or body across a plane.' It specifies the resource (feature or body) and the operation (mirror), and gives plane options. This distinguishes it from sibling tools like pattern_circular or pattern_rectangular, which handle pattern replication, not mirroring.

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 is provided on when to use this tool versus alternatives or any prerequisites. The description simply states the operation and plane choices without explaining context, such as whether a construction plane must be created first or if mirroring is preferred over other symmetry methods.

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

move_bodyA

Move a body via a Move feature (parametric in the timeline). Provide translation_mm (mm) and/or rotation (axis + angle_deg).

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
nameNo
rotation_axisNo
translation_mmNo
rotation_angle_degNo
rotation_origin_mmNo

TDQS

A3.6/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 burden. It does disclose that the operation creates a parametric timeline feature, which is useful. However, it does not disclose side effects, prerequisites, required coordinate systems, or behavior when the body is constrained or referenced elsewhere.

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 two short sentences, front-loaded with the core action, and contains no filler. Every word adds value.

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?

Given six parameters, no annotations, no output schema, and 0% schema description coverage, the description leaves important gaps. It explains the main transform parameters but not rotation origin, which is critical for rotation semantics, nor any expected result or failure modes. A richer description is needed for an agent to use this correctly in complex cases.

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 translation_mm (mm) and rotation (axis + angle_deg), including the 'and/or' relationship. But it omits meaning for rotation_origin_mm and name, and does not explain array shapes or units for origin, so the compensation is incomplete.

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 the tool moves a body via a parametric Move feature in the timeline. This distinguishes it from sibling move_component by specifying 'body' and 'parametric in the timeline'.

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 use for moving bodies with translation and/or rotation, but it does not explicitly compare against alternatives like move_component or state when not to use this tool. There is no when/when-not guidance, only an implied usage context.

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

move_componentA

Move an occurrence by translation (mm) and/or rotation (axis + angle deg). rotation_origin_mm defaults to [0, 0, 0] (world origin) if omitted. Breaks the occurrence's ground-to-parent flag if set (otherwise the move silently reverts). Check moved and after_translation_mm in the response; a joint solver can override the requested move.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
rotation_axisNo
translation_mmNo
rotation_angle_degNo
rotation_origin_mmNo

TDQS

A4.7/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 burden and does so excellently. It discloses that the move silently reverts if the ground-to-parent flag is set, that the flag gets broken, and that the agent should verify the 'moved' and 'after_translation_mm' fields because results may be overridden.

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 main purpose appears in the first sentence, followed directly by the most critical caveats. Every sentence adds meaningful information with no filler or repetition.

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?

Given the lack of annotations and output schema, the description covers the essential behavioral context: expected inputs, default behavior, silent failure mode, and response fields to check. This is sufficient for an agent to safely invoke the tool and understand the likely outcome.

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. It adds units for translation (mm), describes rotation as axis plus angle in degrees, and specifies the default for rotation_origin_mm. However, it does not explain what 'name' refers to or the exact expected array shapes for translation and axis vectors.

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 the tool moves an occurrence via translation and/or rotation with units, which is specific and actionable. The word 'occurrence' distinguishes it from the sibling tool 'move_body', and the rotation/translation details further define its scope.

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 provides important usage context, including the ground-to-parent flag interaction and the warning that a joint solver can override the requested move. However, it does not explicitly name alternatives like 'move_body' or 'create_joint' or specify when this tool should be preferred over them.

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

open_docA

Open a document by name (fuzzy). Optional project scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
projectNo

TDQS

A3.5/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 burden of behavioral disclosure. It mentions fuzzy matching and optional project scope, but does not disclose what happens on multiple matches, missing documents, or whether opening changes the active document or has side effects.

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

Conciseness5/5

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

The description is two short sentences with no filler. It front-loads the core action and immediately provides the most important qualifier ('fuzzy') and optional parameter context.

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 simple open-by-name tool, the description is adequate but incomplete. It lacks guidance on alternatives, error behavior, and return value, and there is no output schema or annotations to fill those gaps. Still, the core purpose and primary parameter semantics are conveyed.

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 add meaning by explaining that 'name' is fuzzy-matched and that 'project' is an optional scope. However, it does not clarify the expected format or behavior of the project parameter beyond 'optional scope'.

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 ('Open') with a clear resource ('document') and adds the key qualifier 'by name (fuzzy)', which distinguishes it from sibling tools like search_docs or list_open_docs. The optional project scope further clarifies the tool's intended operation.

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 this tool is for opening a document when you know its name, with optional project scoping. However, it does not explicitly state when to prefer this over search_docs or list_open_docs, nor does it mention any exclusions or prerequisites.

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

pattern_circularB

Circular pattern around an axis. axis: x | y | z | .

ParametersJSON Schema
NameRequiredDescriptionDefault
axisNoz
nameNo
countNo
total_angleNo360 deg
feature_or_bodyYes

TDQS

B3.2/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 burden. It only mentions the axis options and does not disclose side effects (e.g., modifying the model), requirements (e.g., needing an existing feature), or behavior around invalid inputs like count or total_angle.

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 a single concise sentence, front-loaded with the core purpose and axis options. It is appropriately short though it omits useful details, but it earns a high score for brevity and clarity.

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 5-parameter tool with no output schema and no annotations, the description is significantly incomplete. It fails to explain the required 'feature_or_body' parameter or the effect of 'count' and 'total_angle', leaving the agent uncertain about how to invoke the tool correctly.

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 description coverage is 0%, and the description only explains the 'axis' parameter with its allowed values. It does not clarify 'count', 'total_angle', 'feature_or_body', or 'name', leaving most parameters semantically 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 clearly states it creates a circular pattern around an axis, specifying the axis options (x|y|z|<construction_axis_name>). This is a specific verb+resource and distinguishes from sibling pattern_rectangular.

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 circular patterns but does not explicitly state when to use this over alternatives (e.g., pattern_rectangular) or provide exclusions. The axis specification gives some context but lacks guidance on prerequisites or conditions.

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

pattern_rectangularB

Rectangular pattern. x_axis / y_axis: x | y | z | . x_distance / y_distance: total-extent expressions like '40 mm' or '4 * pitch'.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
x_axisNox
y_axisNo
x_countNo
y_countNo
x_distanceNo
y_distanceNo
feature_or_bodyYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are present, so the description must disclose side effects itself, but it never states that a pattern is created or that the model is modified. It only explains axis and distance syntax, not what the operation does to the selected feature_or_body.

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: 'Rectangular pattern' first, then only the two parameter groups most likely to be ambiguous. There is no filler or repetition of schema defaults.

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 an 8-parameter modeling operation with no annotations, no output schema, and no schema description coverage, this description is not complete enough. It omits the meaning of feature_or_body, count behavior, and any result or error context, leaving too much for the agent to infer.

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 schema descriptions at 0%, the description adds real meaning to x_axis/y_axis via allowed axis values and to x_distance/y_distance via total-extent expression examples. The remaining parameters are mostly inferable from their schema names and defaults, so the added coverage is adequate.

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 identifies the tool as a rectangular pattern operation, which clearly separates it from the sibling pattern_circular. It lacks an explicit verb like 'creates' or 'patterns', but the axis/distance details make the intended operation 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?

There is no guidance about when to use this tool versus pattern_circular or other pattern-related tools. The description provides parameter syntax but no prerequisites, exclusions, or alternate tool recommendations.

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

probe_sketch_dimensionsA

Dump every dimension in a sketch with parameter name, expression, value, and entity-attachment coordinates.

Use this to identify which literal-named dim (e.g. d278) controls which geometric feature when sketches use baked-in numbers. Walks root + every sub-component to find the sketch; pass component_name for disambiguation when the same sketch name exists in multiple components.

Per-dim payload: dim_class, param_name, expression, value_mm, unit, entity_one, entity_two. Entity descriptors include point/start/end/center coords in mm so you can match dims to specific lines/circles/ellipses.

ParametersJSON Schema
NameRequiredDescriptionDefault
sketchYes
component_nameNo

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description must fully disclose behavior. It states that the tool 'walks root + every sub-component' to find the sketch, which is useful, and details the per-dim payload, including entity coordinates. However, it does not mention potential error conditions (e.g., sketch not found), whether it modifies anything (it does not, but that is not explicit), or any permission/read-only guarantees. The description is transparent about its search scope and output structure but not exhaustive regarding edge cases or side effects.

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

Conciseness5/5

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

The description is four sentences, front-loaded with the core purpose and output details. Every sentence contributes: purpose, use case, search behavior, and payload specification. No filler or redundancy, making it efficient and easy to parse.

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 two parameters, no annotations, and no output schema, the description adequately covers the tool's behavior and return payload (per-dim fields). It explains the search behavior across components and the disambiguation parameter. It stops short of listing error scenarios or confirming read-only status, but for a read-type inspection tool, this is largely sufficient. The description effectively compensates for the missing output schema by detailing the returned fields.

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 component_name parameter: 'pass component_name for disambiguation when the same sketch name exists in multiple components,' which adds meaning beyond the bare schema. It also implies sketch is a name, but does not define its format (e.g., name vs. ID) or whether it must match exactly. The description adds some value but not enough to fully compensate for the lack of schema documentation.

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 'Dump' and clearly states the resource: 'every dimension in a sketch' with detailed outputs (parameter name, expression, value, entity coordinates). This distinguishes it from sibling tools like edit_sketch_dimension or add_dimension, which focus on modification rather than inspection.

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 explicitly states when to use the tool: 'to identify which literal-named dim controls which geometric feature' when sketches use baked-in numbers. It also provides disambiguation guidance via component_name and mentions walking root and sub-components. It lacks explicit when-not-to-use or alternatives beyond implied read-only purpose, but the guidance is clear and actionable.

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

project_to_sketchA

Project entities (by handle) onto a named sketch. Useful for cut-extrudes that reference body geometry.

ParametersJSON Schema
NameRequiredDescriptionDefault
sketchYes
entity_handlesYes

TDQS

A3.5/5.0
Behavior3/5

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

Since no annotations are provided, the description carries the full burden. It implies a mutating operation (projection) but does not disclose side effects such as whether existing sketch geometry is modified, whether the projection is associative, or whether it requires specific permissions. It adds some context (the relation to body geometry) but lacks detail on side effects or prerequisites.

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 sentence (plus a short sentence for usage context), front-loaded with the primary purpose. It is concise and contains no fluff; every word adds value.

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 tool has only 2 parameters and no annotations or output schema, so the complexity is moderate. The description covers the core purpose and a common use case, but it omits details like whether the projection is associative or how it affects existing geometry. It is adequate but not comprehensive for a tool that likely mutates sketch geometry.

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?

With schema description coverage at 0%, the description must compensate. It clarifies that 'entity_handles' refer to entities to be projected and 'sketch' is the target sketch, but it does not explain the format of entity_handles (e.g., comma-separated, list) or any constraints. It adds minimal meaning beyond the parameter names, so it barely meets the baseline.

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 states the action ('Project entities... onto a named sketch') and the resource ('sketch'), with an example use case ('cut-extrudes'). It implies the tool operates on existing sketch and entities, distinguishing it from creation tools like 'create_sketch' or 'add_line'. However, it does not explicitly name a sibling alternative, so it doesn't fully differentiate within the context.

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 a clear context ('Useful for cut-extrudes that reference body geometry') but does not explicitly state when not to use it or mention alternative tools. It lacks explicit exclusions, so while the use case is helpful, it does not guide the agent on when to avoid this tool.

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

ray_collision_with_meshA

NEW May 2026: cast a ray against ONE MeshBody, return all intersection points. mesh_handle: handle of a mesh body (e.g. from find_mesh_using_ray or list_body_entities).

ParametersJSON Schema
NameRequiredDescriptionDefault
directionYes
origin_mmYes
mesh_handleYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description bears full responsibility for behavioral disclosure. It reveals the operation is a query-like ray cast that returns all intersection points and is scoped to one mesh body. It does not explain coordinate frames, whether the ray is infinite or a segment, or what the return payload looks like, leaving some behavioral gaps.

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

Conciseness5/5

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

The description is compact and front-loaded with the core action. It consists of a single efficient sentence plus a parameter note, with no redundant filler or repetition of the tool name.

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?

The tool has 3 required parameters, no annotations, and no output schema, so the description needs to provide more context. It covers the source of mesh_handle but omits the meaning of origin_mm and direction, the expected return structure, and any assumptions about coordinate systems. This is insufficient for fully safe invocation.

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 description coverage is 0%, so the description must compensate. It only explains mesh_handle with a useable definition and source examples; origin_mm and direction are left entirely to name inference. No units, array length, axis order, or normalization details are given for the two geometric 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?

The description clearly states the action: 'cast a ray against ONE MeshBody, return all intersection points.' It names the exact resource (one MeshBody) and distinguishes this from the sibling find_mesh_using_ray, which selects meshes rather than computing collisions against a specific mesh.

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 by stating the ray targets ONE MeshBody and gives examples of how to obtain a valid mesh_handle ('from find_mesh_using_ray or list_body_entities'). However, it does not explicitly state when to prefer this over alternatives or mention any exclusions, leaving usage context mostly implied.

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

rebuild_featureA

Rebuild a feature whose downstream references are stale (G10) by capturing its inputs, deleting it, and re-creating from the current sketch.

Supported feature classes: ExtrudeFeature (DistanceExtent, ProfilePlaneStart or OffsetStart, 1 or N profiles in the same sketch). This is the most common G10 case — a feature that got healthState=1 (warning, using cached geometry) after a sketch geometry rewrite.

Returns structured not_supported_for_rebuild error for other feature classes (fillet, chamfer, hole, revolve, etc.) with a recommendation:

  • FilletFeature/ChamferFeature broken by upstream edits: SUPPRESS instead (gotcha G11; edge re-binding is design-specific geometric matching).

  • Others: delete + re-create via the appropriate add_* tool.

Profile matching: when the original sketch has more than one profile, picks the new profile whose area is closest to the captured original area. Falls back to profile[0] if no area was captured.

Failure mode warning: if delete succeeds but recreate fails (e.g., sketch name changed, multiple profiles spread across sketches), the response sets ok=false and includes a WARNING field instructing the agent to undo via Fusion's undo and try again manually.

Args: feature_name: Name of the feature to rebuild. Walks root + every sub-component. component_name: Optional hint for disambiguation.

Chain pattern: edit_sketch_dimension -> audit_feature_health -> for each broken extrude in features list, rebuild_feature -> audit_feature_health.

ParametersJSON Schema
NameRequiredDescriptionDefault
feature_nameYes
component_nameNo

TDQS

A5/5.0
Behavior5/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It clearly reveals that the tool captures inputs, deletes the feature, recreates it from the current sketch, selects profiles by area proximity, and returns ok=false with a WARNING if deletion succeeds but recreation fails. It also indicates traversal semantics across root and sub-components.

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?

Although long, the description is well-structured with labeled sections: supported classes, error/recommendation behavior, profile matching, failure mode, args, and chain pattern. The opening sentence leads with the core purpose, and every section provides decision-relevant detail without fluff.

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 destructive two-step tool with no output schema and no annotations, the description covers supported inputs, alternative strategies, failure handling, profile-matching heuristics, and troubleshooting/undo guidance. This gives an agent sufficient context to invoke and recover from failures 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?

The input schema has 0% description coverage, so the description must compensate. It does: feature_name is documented as walking root and every sub-component, and component_name is described as an optional disambiguation hint. This adds meaningful usage context beyond the schema types.

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: 'Rebuild a feature whose downstream references are stale (G10) by capturing its inputs, deleting it, and re-creating from the current sketch.' It also enumerates supported feature classes and distinguishes this operation from other modeling tools.

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?

The description explicitly tells when to use the tool (broken extrudes with stale cached geometry), when not to use it (fillet/chamfer/hole/revolve), and what to do instead: suppress fillet/chamfer features, or delete and re-create others via appropriate add_* tools. The chain pattern further clarifies its role in a broader repair workflow.

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

redoB

Redo the last count undone actions.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNo

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states the action without covering edge cases like what happens if there are not enough undone actions, whether the count must be positive, or any side effects. This is inadequate 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.

Conciseness5/5

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

The description is a single, compact sentence that conveys the core functionality without unnecessary words. It is appropriately front-loaded and easy to parse.

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 simple tool with one parameter and no output schema, the description is minimally sufficient but incomplete. It lacks details about failure modes, behavior when count is zero or negative, and interaction with undo history. Given the tool's simplicity and the absence of annotations, it could be more complete.

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 schema has one parameter 'count' with default 1, and schema description coverage is 0% (the description doesn't explain the parameter). The description mentions 'count' in context, but it adds minimal meaning beyond what the property name implies. It does not clarify valid ranges or forms, so it fails to compensate for the low schema coverage.

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 the tool's function: 'Redo the last `count` undone actions.' It uses a specific verb ('redo') and a clear resource ('undone actions'). It naturally distinguishes from the sibling 'undo' tool as the inverse operation, so the 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 Guidelines3/5

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

The description implies usage (it's the counterpart to undo) but does not explicitly state when to use it or any prerequisites. It lacks guidance on when not to use it or alternatives. The relationship to 'undo' is obvious but not stated, leaving the agent to infer the appropriate context.

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

revolveB

Revolve a sketch profile around an axis. axis: x | y | z | extent_kind: full (360deg) | angle (needs angle expr) operation: new_body | join | cut | intersect | new_component

ParametersJSON Schema
NameRequiredDescriptionDefault
axisNoz
nameNo
angleNo
sketchYes
operationNonew_body
extent_kindNofull
is_symmetricNo
participantsNo
profile_indexNo

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose side effects and constraints. It only lists parameter formats (axis, extent_kind, operation) but does not mention that the operation modifies the document, creates or deletes bodies, or if it's reversible. It also fails to describe error conditions (e.g., non-closed profile) or required permissions. This is inadequate for a mutation 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 compact and to-the-point, using a concise format with parameter hints. Every line adds value: it explains the core action, lists valid axis options, extent kinds, and operations. There is no redundant filler, making it easily scannable for an agent.

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 9 parameters and no output schema, the description is far too sparse. It lacks essential information about return values, side effects, preconditions (e.g., a valid sketch selection), and common pitfalls. The description covers only a fraction of the parameter semantics and does not explain how the tool fits into a broader design workflow. The agent would often need to experiment to understand behavior.

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 description coverage is 0%, meaning the schema provides no explanatory text for parameters. The description gives hints for three parameters (axis, extent_kind, operation) but leaves six others (name, angle, is_symmetric, participants, profile_index) unexplained. It partially compensates for the schema gap but leaves significant ambiguity, especially for parameters like participants and profile_index, which have no guidance.

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 the tool's function: 'Revolve a sketch profile around an axis.' It specifies the verb (revolve), resource (sketch profile), and context (around an axis), which distinguishes it from sibling operations like extrude (linear extrusion) or mirror (reflection). The intent is immediately understandable.

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 does not provide explicit when-to-use guidance or alternatives. It does not mention when to prefer revolve over extrude or other operations. It only hints at parameter choices (e.g., extent_kind values) but lacks context on prerequisites (e.g., need a closed sketch) or typical use cases (e.g., creating rotational symmetric parts). This is a significant gap for an AI agent deciding tool selection.

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

ribA

NOT SCRIPTABLE in the current Fusion API: RibFeatures is a read-only collection (no createInput/add), so this always returns the structured error rib_not_scriptable. Model ribs as thin join-extrudes instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
sideNosymmetric
sketchYes
thicknessYes
extend_profileNo

TDQS

A4.9/5.0
Behavior5/5

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

Given no annotations are provided, the description fully discloses the tool's behavior: it is not scriptable, returns a specific error code, and explains the root cause (read-only collection). It also implies that all invocations will fail, which is critical 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 a single, well-structured sentence that fronts the critical information ('NOT SCRIPTABLE') and provides the error code and alternative in a compact form. Every word earns its place with no redundancy.

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 stub tool with 5 parameters but no real functionality, the description covers everything needed: the error behavior, the reason, and the recommended workaround. No output schema exists, but the tool only returns an error, so the description is sufficient and 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 description does not detail each parameter, but it states that the tool always fails, implying parameters are irrelevant. With 0% schema coverage, it adds the essential context that input values don't affect the outcome, though it could have explicitly stated 'parameters are ignored'. Still, the value added is high.

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 explicitly states the tool's purpose: it always returns a structured error because the underlying RibFeatures API is read-only and lacks createInput/add. It clearly identifies the behavior (error return) and distinguishes it from functional tools by emphasizing its non-scriptable nature.

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?

Provides explicit guidance on when not to use the tool (since it always errors) and suggests an alternative approach ('Model ribs as thin join-extrudes instead'). This is clear and actionable, helping the agent choose a correct tool.

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

saveA

Save the active document. Untitled docs are refused by Fusion; use save_as instead.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/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 behavioral transparency burden. It discloses an important failure mode: untitled documents are refused by Fusion. It does not detail return values, permissions, or other error conditions, but for a zero-parameter save operation the key edge case is 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?

Two short, front-loaded sentences with no repetition or filler. Every word contributes to purpose or usage guidance.

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 zero-parameter tool with no output schema, the description covers purpose, a major exception, and the correct alternative. It is nearly complete, though it could optionally mention the expected result or failure mode when no document is active.

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 for the description to document beyond what the empty input schema already shows. The baseline for zero parameters is 4, and the description appropriately adds no irrelevant parameter details.

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: 'Save the active document.' It also differentiates from the save_as sibling by noting that untitled docs are refused and save_as should be used instead.

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?

It gives explicit context about when the tool applies (active documents) and when not to use it (untitled docs), naming save_as as the alternative. This is clear, actionable guidance for tool selection.

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

save_asA

Save the active document to a new path. Fusion's MCP may still require initial save via UI.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

A3.6/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 transparency burden. The caveat about requiring initial save via UI is a meaningful behavioral disclosure beyond the obvious 'save' meaning. However, it does not clarify whether the save overwrites an existing file at the new path, preserves the original file, or how the active document state changes after the 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?

Two short, front-loaded sentences with zero filler. The core purpose is stated immediately and the caveat is appended as a separate sentence. Appropriately 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?

Given the low complexity (one parameter, no output schema, no annotations), the description covers the essential purpose and a key pitfall (initial UI save requirement). However, it leaves the path format/semantics unexplained and does not address overwrite behavior, which are the main unknowns an agent would face when invoking this 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 description coverage is 0% and the description provides no additional meaning for the 'path' parameter beyond the schema's field label. It does not specify whether the path must be absolute or relative, which file formats are valid, or whether the path refers to a file versus a folder.

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?

Uses a specific verb+resource+action ('Save the active document to a new path') that clearly defines what the tool does and naturally distinguishes it from the sibling 'save' tool. No ambiguity about the function.

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?

Mentions that Fusion's MCP may still require initial save via UI, which is useful contextual guidance about when this tool may not fully work. However, it does not explicitly instruct when to choose save_as over the sibling 'save' tool or when the UI fallback is needed.

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

screenshotB

Capture a PNG screenshot of the active viewport. Returns base64 image in envelope.image. direction: one of current, front, back, bottom, top, left, right, iso-* (4 variants). Fusion handles fit-view internally for named directions.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNo
heightNo
directionNoiso-top-right
transparentNo
anti_aliasingNo

TDQS

B3.4/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 itself. It discloses that the tool returns a base64 PNG in envelope.image, lists named view directions, and notes that Fusion automatically performs fit-view for those directions. This is useful behavioral context, though it does not mention edge cases like whether the active view mutates or how transparent/anti-aliasing affect the 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?

The description is concise and front-loaded. The first sentence states the core behavior, the second clarifies the return value, and the third provides direction and fit-view behavior. Every sentence contributes value without fluff.

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 straightforward screenshot tool with no output schema, the description covers the essential return format and key camera behavior. It misses an explicit comparison with screenshot_compare_with_marker and the units/semantics of width/height, but the intent is still fully usable.

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 description coverage is 0%, so the description must compensate. It only enriches the 'direction' parameter with a set of allowed values; width, height, transparent, and anti_aliasing are left with their schema defaults and titles only. This leaves the tool operating semantics relatable but insufficient.

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 starts with a specific verb and resource: 'Capture a PNG screenshot of the active viewport.' It clearly states the output format and image location. However, it does not explicitly distinguish itself from the sibling tool screenshot_compare_with_marker, so it misses the highest bar 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 Guidelines2/5

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

The description gives direction options and notes that Fusion handles fit-view internally, but it does not explain when to use this tool versus screenshot_compare_with_marker, set_view, or export. There is no explicit context for selecting this tool over alternatives.

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

screenshot_compare_with_markerA

Capture before/after screenshots from the same camera by rolling the timeline marker to before_marker_position, screenshotting, restoring the original marker position, and screenshotting again.

Use this to give yourself or the user a clean visual diff of a change you just made — much more convincing than describing the change in words when the geometric delta is subtle. Same camera both shots so the comparison is honest.

Restore semantics: if anything fails after the marker is moved, this tool attempts to roll back to the original position before returning. The restore_marker_failed error indicates the rollback itself failed — in that case the design may be left at an intermediate marker position and the user should manually drag the marker back.

Args: before_marker_position: Timeline marker position to capture as the "before" state. Must be in [0, timeline.count]. Use 0 for the initial empty state, or the index just before a specific feature. direction: One of: current, front, back, bottom, top, left, right, iso-bottom-left/right, iso-top-left/right. Defaults to iso-top-right. width, height: Optional image dimensions in pixels. transparent: PNG transparency. Default True. anti_aliasing: Smooth edges. Default True.

Returns envelope.result = { before_image: {data: , mime_type: "image/png"}, after_image: {data: , mime_type: "image/png"}, before_marker, after_marker, direction }

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNo
heightNo
directionNoiso-top-right
transparentNo
anti_aliasingNo
before_marker_positionYes

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 disclosure burden. It thoroughly explains the sequence of moving the marker, screenshotting, restoring the original position, and screenshotting again. It also discloses rollback semantics, the 'restore_marker_failed' error, and the possibility that the design may be left at an intermediate marker position—critical behavioral nuances.

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 detailed but every sentence earns its place. It is well-structured with purpose, usage, restore semantics, Args, and Returns sections. The content is necessary given the lack of annotations and output schema, and it avoids fluff while staying readable.

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?

The description is remarkably complete for a tool with no annotations and no output schema. It covers the full return envelope, including 'before_image' and 'after_image' as base64 PNGs, plus 'before_marker', 'after_marker', and 'direction'. It also addresses failure/rollback behavior, making the tool safely invocable by an agent.

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, but the description's Args section fully compensates. Every parameter is explained with meaning, constraints, defaults, and examples—e.g., 'before_marker_position' includes the valid range [0, timeline.count] and usage guidance. This adds substantial value beyond the raw schema types.

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 action: 'Capture before/after screenshots from the same camera by rolling the timeline marker...' This clearly differentiates it from the sibling 'screenshot' tool and states the exact mechanism. It fully explains what the tool does and why it is distinct.

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 explicitly says when to use the tool: 'to give yourself or the user a clean visual diff of a change you just made' and notes it is more convincing when 'the geometric delta is subtle.' It does not explicitly name alternatives or exclusions, but the context is clear enough to guide selection.

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

search_docsB

Fuzzy-search documents by name. Optional project scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
projectNo

TDQS

B3.4/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden of behavioral disclosure. It reveals that the search is fuzzy and scoped by project, but does not disclose whether it searches all documents or only open ones, how results are ordered, what the default project behavior is, or what the return format looks like.

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 two short sentences with no wasted words. It leads with the core purpose and immediately provides the optional scoping behavior. Every phrase earns its place.

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 and no output schema, the description is too sparse. It lacks details about return values, whether 'documents' means open documents or persisted documents, how project scoping affects results, and how this search relates to sibling tools like list_open_docs or list_projects.

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?

With 0% schema description coverage, the description must compensate. It does add meaning by clarifying that 'query' is a document name and 'project' is an optional scope, which is beyond the raw schema titles. However, it does not explain query syntax, case sensitivity, or what happens when project is null.

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: 'Fuzzy-search documents by name.' This clearly distinguishes the tool from siblings like list_open_docs and open_doc, and the optional project scope adds additional specificity.

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 use for finding documents by name, and 'Optional project scope' gives some guidance about scoping. However, it does not explicitly state when to use this tool versus alternatives like list_open_docs or list_projects, nor does it mention any exclusions or important context.

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

set_joint_limitsA

Set min/max/rest values on an existing joint by name. Values are expressions: angles for revolute (e.g. '45 deg'), distances for slider. rest_value is the NEW May 2026 snap-back position. Pass None to leave any field unset. Limits bind to rotationLimits when the motion has one, else slideLimits (cylindrical joints get rotation limits). The response echoes back what Fusion actually stored under applied (internal units: radians / cm).

ParametersJSON Schema
NameRequiredDescriptionDefault
max_valueNo
min_valueNo
joint_nameYes
rest_valueNo

TDQS

A4.1/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 values are expressions, that rest_value is a NEW snap-back position, and that it echoes back stored values under 'applied' with internal units. However, it does not mention side effects, error conditions (e.g., nonexistent joint), or permission requirements, which are important 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 a single paragraph with several sentences, but each adds value: it states the purpose, explains expression formats, notes the snap-back feature, and discloses the response format. It is front-loaded and avoids claims; only minor redundancy is the phrase 'values are expressions' repeated implicitly. No 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?

Given the tool has no annotation or output schema, the description adequately covers the return behavior (echoing stored values with units) and the binding logic. It does not detail error handling or prerequisites like joint existence, but for a setter tool this is acceptable. The complexity is moderate and the description provides enough for typical use.

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 that values are expressions with examples, clarifies the null-passing behavior for unset fields, and defines rest_value as the snap-back position. It effectively covers all four parameters, though it could be more explicit about valid expression syntax beyond the given examples.

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 the tool sets min/max/rest values on an existing joint by name, using a specific verb and resource. It distinguishes from siblings like drive_joint (which moves joints) and create_joint (which creates them), and names the exact fields being set.

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 provides strong context on when to use the tool: it describes expression formats for revolute vs slider joints, mentions the snap-back feature, and explains which limit property binds based on joint type. However, it does not explicitly state when not to use it or mention alternatives, leaving a small gap in exclusions.

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

set_viewA

Orient the viewport to a named direction. Optionally fit to view. Use when you want to change camera without capturing a screenshot.

ParametersJSON Schema
NameRequiredDescriptionDefault
fitNo
directionNoiso-top-right

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It mentions 'Orient the viewport' and 'fit to view' but does not disclose whether this is a read-only operation, if it requires an open document, or what the return value is. It implies a camera change but lacks safety or side-effect details.

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 concise sentences, front-loaded with the core action. No wasted words or redundancy. The structure is efficient and easy to parse.

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 simple tool with 2 parameters and no output schema, the description is minimal. It lacks a list of valid directions (a crucial constraint) and does not mention return values or preconditions (e.g., open document). The context signals show no enums or richer schema to compensate, so the description is incomplete.

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% and the schema only provides defaults. The description adds meaning: 'named direction' implies valid direction names exist (though not enumerated) and 'fit to view' explains the fit parameter. However, it does not list possible direction values or clarify the fit default behavior, so it partially compensates but leaves gaps.

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?

Purpose is explicit: 'Orient the viewport to a named direction' clearly describes the action on a specific resource (viewport). It also mentions the optional 'fit to view' capability. This distinguishes it from sibling tools like screenshot (captures an image) and other CAD modeling 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?

Gives explicit when-to-use guidance: 'Use when you want to change camera without capturing a screenshot.' This clearly scopes the tool's context, though it does not name alternative tools or provide negative usage cases. Still, it is clear and helpful.

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

shellA

Hollow out a body. face_normals_to_remove is a list of [nx, ny, nz] for faces to remove (e.g. [[0, 0, 1]] removes the top face). Empty / omitted = closed shell. direction: inside | outside | both.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
nameNo
directionNoinside
thicknessYes
face_normals_to_removeNo

TDQS

A3.7/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 of disclosing behavior. It explains face_normals_to_remove and direction semantics, which is valuable, but it does not disclose side effects (e.g., whether the original body is modified or replaced), error handling, or limitations (e.g., thickness constraints). It is not misleading but leaves significant behavioral gaps.

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

Conciseness5/5

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

The description is extremely concise, consisting of two short sentences. It front-loads the purpose and then provides essential parameter details without fluff. Every sentence contributes to understanding the tool's operation, with zero wasted words.

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 the tool's complexity (5 params, no annotations, no output schema), the description provides the core purpose and explains two key parameters. However, it omits critical details like the meaning of 'thickness' (constraints, units), what the tool returns or modifies, and any preconditions. It is adequate for a basic understanding but not fully complete for a robust agent decision.

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 face_normals_to_remove with an example and direction with allowed values ('inside | outside | both'). However, it does not explain 'body' (an ID likely), 'thickness' (units or constraints), or 'name'. This partial coverage adds meaning beyond the schema but is incomplete for 5 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?

The description clearly states the tool's function: 'Hollow out a body.' It specifies the resource (a body) and the action (hollowing). This is specific and distinguishes it from sibling tools like extrude, revolve, or fillet, which perform different operations. The verb 'hollow' 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 Guidelines3/5

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

The description implies usage for creating a shell but does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions or alternative tool recommendations. It lacks guidance on prerequisites (e.g., must be a closed solid) or when not to use it, so usage context is only implied through the purpose statement.

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

undoA

Undo the last count actions. WARNING: undo is atomic on the prior execute call. Mixed-content scripts get fully wiped. Prefer delete-loop cleanup when possible.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNo

TDQS

A4.6/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 burden of disclosing behavioral traits, and it excels: it reveals three critical non-obvious behaviors—atomicity on the prior execute call, full wiping of mixed-content scripts, and a preference for delete-loop cleanup as an alternative strategy. For an `undo` tool whose destructive reach and edge cases are non-obvious, this is exactly the kind of cautionary context agents need. The description reveals consequential, non-obvious side effects that would otherwise be discovered only through failure.

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 sentences, front-loaded with the core purpose followed by essential warnings, with zero filler words. The structure parallels the canonical training example of how concise, high-value information should be presented.

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 a minimal 1-parameter schema and no output schema, the description covers all the critical surface area: purpose, count semantics, and destructive behaviors. There is slight ambiguity around how `count` interacts with the atomic undo of a prior execute (does count>1 chain multiple undos?), but for the tool's complexity, this is a minor 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 description coverage is 0%, so the description must explain the `count` parameter, and it does: "Undo the last `count` actions" directly ties the parameter to its semantics. While it could add caveats (e.g., behavior when count exceeds history or is zero), for a single optional parameter with a default, this is adequate, valuable coverage.

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 clear verb+object construction, "Undo the last `count` actions," which unambiguously states what the tool does. It goes beyond a tautology by scoping the operation to a count of actions, and it stands distinct from its `redo` sibling by definition. The purpose is immediately, unmistakably clear.

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 provides explicit behavioral cautions with the WARNING and directs users to "Prefer delete-loop cleanup when possible," which is a clear alternative-approach recommendation. It doesn't name a specific sibling tool, but it tells agents when NOT to rely on it (atomicity limits, mixed-content wipes), which meaningfully informs tool selection.

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

unground_componentB

Clear the ground flag on an occurrence.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description must fully disclose behavioral aspects. It indicates a mutation (clearing a flag) but does not mention potential side effects, whether the operation is idempotent, what happens if the component is already ungrounded, or any required permissions. The description is too sparse to be behaviorally transparent.

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 a single, direct sentence that gets to the point without unnecessary words. It is front-loaded and efficiently conveys the core action, though it may be too minimal to fully cover other dimensions.

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 the tool's simplicity (one parameter, no output schema, no annotations), the description is minimum viable. It states the action but omits critical context such as what constitutes an 'occurrence,' any assumptions about the model state, and potential error cases. For a mutation with no structured metadata, this is a noticeable gap.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain the parameter 'name' at all. There is no added meaning beyond the schema's type definition, so the description fails to compensate for the lack of parameter documentation.

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 'Clear the ground flag on an occurrence.' clearly states a specific action (clear), a target (ground flag), and a subject (occurrence). It distinguishes itself from the sibling ground_component by describing the inverse operation, making the purpose unambiguous.

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

Usage Guidelines3/5

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

There is no explicit guidance on when to use this tool versus alternatives. The name and description imply it is for ungrounding components, and the sibling ground_component suggests this is the counterpart, but no context is given about typical usage scenarios 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.

update_parameterA

Update one user parameter's expression. Returns before/after values.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
expressionYes

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 disclose behavior and does mention it returns before/after values. However, it does not disclose side effects on dependent geometry, error behavior for invalid expressions, or undoability, which are important 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.

Conciseness5/5

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

The description is two short sentences, front-loaded with the primary action and quickly noting the return value. Every sentence contributes meaning with 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 simple two-parameter update tool, the description is close to adequate but lacks details on prerequisites (parameter must exist), validation of expressions, and relation to sibling parameter tools. The mention of before/after values helps, but error behavior is absent.

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 schema provides no descriptions (0% coverage), and the description only loosely restates the two parameters: 'name' selects a user parameter and 'expression' is its new value. It does not clarify name format, required existence, or expression syntax, failing to compensate for the missing schema descriptions.

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 ('Update') and resource ('one user parameter's expression'), and clarifies it targets user parameters, distinguishing it from siblings like add_parameters and list_parameters. The mention of returning before/after values adds precision to the purpose.

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 the tool is used to modify an existing user parameter's expression, but it provides no explicit guidance on when to use this versus alternatives (e.g., add_parameters or edit_sketch_dimension) or any prerequisites. This leaves usage context implicit rather than actionable.

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

volumeA

Return volume in cm^3 and mm^3 for a body (by name) or all bodies if name omitted.

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNo

TDQS

A3.7/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 behavioral disclosure burden. It does disclose units and the optional name-scoping behavior, but it does not describe return structure or behavior for unknown body names, leaving transparency minimal but not misleading.

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 front-loads the action, resource, and units. Every phrase earns its place with no filler or repetition.

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 tool with one optional parameter and no output schema, the description adequately covers purpose, units, and body filtering. It could be slightly more complete by stating the return shape or unknown-body behavior, but it is sufficient for basic 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 description coverage is 0%, so the description must compensate for the lone 'body_name' parameter. It does so meaningfully by explaining that providing a name targets that body and omitting the name returns all bodies, adding real semantics beyond the schema's default null.

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 uses a specific verb ('Return') and names the resource ('volume') with units (cm^3/mm^3) and optional body scoping. It clearly states what the tool does, but it does not explicitly differentiate it from sibling measurement tools like 'mass' or 'measure'.

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 (when volume is needed) and gives an operational choice via 'or all bodies if name omitted.' However, it offers no explicit alternatives or exclusions relative to sibling tools, so usage guidance remains mostly inferred.

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

TDQS

B3.1/5.0
Disambiguation4/5

The tool set is mostly distinct: sketch primitives, feature operations, joint tools, and inspection tools each have clear targets. The main ambiguity risk is the four find_* lookup tools and the handle-based vs geometry-based fillet/chamfer variants, but their descriptions disambiguate them. No two tools appear to do the same job.

Naming Consistency3/5

Naming is readable and consistently snake_case, but conventions are mixed: add_* for sketch primitives and parameters, create_* for sketches/joints/construction, bare verbs (extrude, shell, save, measure), and noun phrases (bounding_box, doc_state, center_of_mass). This inconsistency, especially add vs create, prevents a higher score.

Tool Count1/5

75 tools is far beyond the well-scoped 3-15 range and exceeds the 50+ extreme threshold. While Fusion CAD is a broad domain, the surface is too large for an agent to navigate efficiently and includes several auxiliary meta-tools (find_api, find_pattern, find_tool, find_gotcha, screenshot_compare_with_marker) that bloat the count.

Completeness3/5

Core modeling workflows are covered: sketching, constraints, dimensions, extrude/revolve/shell/hole, fillet/chamfer, patterns, joints, measurement, export/import, and parameters. However, there are notable gaps: no list_bodies/list_joints/list_sketches, no delete_body/delete_feature/delete_sketch (only delete_construction), no create_document, and no general feature editing. The raw execute passthrough mitigates these, but the dedicated surface is incomplete.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Mfrostbutter/fusion-cad-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server