Skip to main content
Glama
Fusion360 MCP Server

Fusion360 MCP Server

by shinobi81

Fusion360 MCP Server

CI Licence: AGPL-3.0-or-later Python 3.10+ MCP

An MCP server that lets AI coding agents drive Autodesk Fusion 360: create sketches and features, assemble components, run CAM setups, measure, export, and look at the result. 96 tools over the Model Context Protocol, with failures returned as structured data instead of exceptions.

Beta. Pre-1.0: tool behaviour can change between tags. Install a tag, not PyPI — the published 0.1.0 pins mcp>=1.0 with no upper bound and breaks under mcp 2.x.

Quick start

# 1. Install the add-in into Fusion (symlink — re-run after editing addon/)
git clone https://github.com/shinobi81/fusion360-mcp-server
cd fusion360-mcp-server && ./scripts/install-addon.sh

# 2. In Fusion: Shift+S → Add-Ins → Fusion360MCP → Run
#    The TEXT COMMANDS window should show: [MCP] Server listening on 127.0.0.1:9876

# 3. Point your MCP client at this server (stdio)
claude mcp add fusion360 -- uvx --from 'git+https://github.com/shinobi81/fusion360-mcp-server@v0.3.1' fusion360-mcp-server --mode socket

Then call ping — {"ok": true, "status": "pong"} means you are connected.

Requirements: uv, Autodesk Fusion 360, and any MCP client (Claude Code, Codex, Cursor, VS Code, …).

Related MCP server: Fusion360 MCP Server

What it can do

96 tools in 17 groups — the full catalogue with descriptions is in docs/TOOLS.md.

Group

Examples

Document & scene

new_document, get_scene_info, get_bounding_box, get_design_type

Sketching

create_sketch, draw_rectangle, draw_circles, add_constraint, offset_curve

Features

extrude, revolve, loft, sweep, fillet, shell, create_thread

Body operations

boolean_operation, split_body, offset_faces, scale_body, undo

Primitives

create_box, create_cylinder, create_sphere, create_torus

Surfaces, sheet metal

patch_surface, thicken_surface, create_flange, flat_pattern

Construction

create_construction_plane, create_construction_axis, create_ucs

Assembly

create_component, add_joint, set_joint_value, create_rigid_group

Inspection

measure_distance, measure_angle, check_interference, get_physical_properties

CAM

cam_create_setup, cam_create_operation, cam_post_process

Import / export

import_mesh, export_stl, export_step, export_f3d, export_view_sheet

Perception & code

render_view (PNG of the viewport), execute_code

How it works

MCP client ←(stdio MCP)→ this server ←(TCP 127.0.0.1:9876)→ Fusion add-in ←(CustomEvent)→ Fusion main thread

Fusion's API is not thread-safe, so the add-in marshals every call onto the main thread through a CustomEvent work queue; socket threads block on a per-call event until the main thread finishes. That is why one operation per tool call is a rule, not a preference.

Install

The add-in

./scripts/install-addon.sh symlinks addon/ into Fusion's AddIns directory, so edits are picked up on the next add-in restart. To copy instead:

# macOS
cp -r addon ~/Library/Application\ Support/Autodesk/Autodesk\ Fusion\ 360/API/AddIns/Fusion360MCP

# Windows (PowerShell)
Copy-Item -Recurse addon "$env:APPDATA\Autodesk\Autodesk Fusion 360\API\AddIns\Fusion360MCP"

Start it with Shift+S → Add-Ins → Fusion360MCP → Run. Set it to run at startup so the port is there when your client connects.

Your MCP client

The server speaks stdio, so any client can launch it:

uvx --from 'git+https://github.com/shinobi81/fusion360-mcp-server@v0.3.1' \
  fusion360-mcp-server --mode socket
claude mcp add fusion360 -- uvx --from 'git+https://github.com/shinobi81/fusion360-mcp-server@v0.3.1' fusion360-mcp-server --mode socket
{
  "mcpServers": {
    "fusion360": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/shinobi81/fusion360-mcp-server@v0.3.1",
        "fusion360-mcp-server",
        "--mode",
        "socket"
      ]
    }
  }
}
{
  "servers": {
    "fusion360": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/shinobi81/fusion360-mcp-server@v0.3.1",
        "fusion360-mcp-server",
        "--mode",
        "socket"
      ]
    }
  }
}

Across machines (LAN)

If Fusion and the MCP client are on different hosts, bind the add-in to all interfaces on the Fusion host (FUSION_MCP_HOST=0.0.0.0, set before Fusion starts) and point the client at that host's LAN IP (--host 192.168.1.42, or FUSION_MCP_HOST in the client config).

The socket has no authentication. Only do this on a trusted LAN, and never bind 0.0.0.0 on a host reachable from the internet.

Uninstall

Remove the client entry, stop the add-in (Shift+S → Add-Ins → Stop), and delete the Fusion360MCP folder from Fusion's AddIns directory.

Behaviour you should know

  • Units are centimetres — Fusion's internal unit. A "10 mm" wall is 1.0.

  • One operation per tool call. Batching crashes the add-in: it is one main-thread work item at a time.

  • Timeouts. The bridge gives up at 30 s and cancels the queued command; the client waits 45 s so you get a structured TIMEOUT. Mutations are never auto-retried — call get_scene_info to see whether anything applied before retrying.

  • undo steps the timeline marker back one feature (synchronous, so it reports verified: true). The feature is suppressed, not deleted: rolling the marker forward restores it, and creating a new feature while rolled back discards it. Direct-mode designs have no timeline, so undo issues Fusion's async command and reports undone: "issued", verified: false — confirm with get_scene_info.

  • Sketch draw tools ignore z. Sketch curves live in the sketch plane; a z you pass is dropped and reported as ignored_z. Move the plane instead: create_sketch(z_offset=...).

  • Logs go to ~/fusion360mcp.log.

MCP features

  • Tools with annotations (readOnlyHint, destructiveHint, idempotentHint). Per the MCP Tools spec these are untrusted hints unless you trust the server — a read-only hint is not proof a call is safe.

  • Resources: fusion360://status, fusion360://design, fusion360://parameters, plus templates fusion360://body/{name} and fusion360://component/{name}.

  • Prompts: create-box, model-threaded-bolt, sheet-metal-enclosure.

  • Structured errors: ok: false with a stable error_kind (e.g. BODY_NOT_FOUND, PROFILE_NOT_CLOSED, NOT_ENTITLED, TIMEOUT), hints, and a traceback.

  • Mock mode: --mode mock returns plausible data with no Fusion running.

Troubleshooting

Symptom

Cause and fix

Not connected / Connection refused

The add-in isn't running. Shift+S → Add-Ins → Run.

Every call times out

Fusion's main thread is blocked — a modal dialog, or a long computation.

create_sketch geometry is offset

You passed z to a draw tool; it is ignored. Use create_sketch(z_offset=…).

NOT_ENTITLED on auto_constrain

Fusion refuses that API for your account. Retrying will not help.

os error 32 during uv sync

A running MCP server holds .venv/Scripts/fusion360-mcp-server.exe. Stop it first.

Direct push to main refused

Working as intended — this repo requires a reviewed PR.

Development

uv sync --dev                    # deps
uv run pytest -q                 # full suite, no Fusion needed
uv run ruff check src/ tests/    # lint (what CI runs)
npx --yes markdownlint-cli2 "**/*.md" "#.venv" "#node_modules"

The add-in can't be imported under pytest — it needs Fusion's adsk runtime — so tests load command_handler.py against the fake runtime in tests/fakes/. Start with CONTRIBUTING.md; architecture and tool conventions are in AGENTS.md.

This repo

A maintained continuation of faust-machines/fusion360-mcp-server. Upstream has had no merges since 2026-10-06 and the joint fixes are still waiting there as PR #35. Bugs and questions belong in this repo's issue tracker; security reports go through SECURITY.md.

If you are an AI coding agent, read AGENTS.md — commands, conventions and boundaries in one place. llms.txt is the index for crawlers.

Acknowledgements

Inspired by BlenderMCP — the socket bridge architecture originated there — and by the wider Fusion MCP ecosystem: ArchimedesCrypto, Joe-Spencer, JustusBraitinger, zkbkb, mycelia1, sockcymbal.

Licence

AGPL-3.0-or-later — see LICENSE. Running a modified version as a network service requires offering its source to that service's users (section 13). The attribution the inherited upstream code requires is in THIRD-PARTY-NOTICES.md; it is not an alternative licence for this project.

Available Tools

96 tools
add_constraintAdd Sketch ConstraintB

Add a geometric constraint in the active sketch. Entities are referenced by index within the sketch.

NameRequiredDescriptionDefault
entity_oneNoIndex of the first sketch entity
entity_twoNoIndex of the second sketch entity (not needed for fix/horizontal/vertical)
sketch_nameNoSketch name (default: most recent)
symmetry_lineNoIndex of the symmetry line (only for symmetry constraint)
constraint_typeYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate this is a non-read-only, non-idempotent, non-destructive operation, covering basic safety. The description adds context about entity referencing by index, which is useful for understanding how to interact with the sketch. However, it lacks details on error conditions, side effects, or what happens if constraints conflict, leaving 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 a single, efficient sentence that directly states the tool's purpose and key operational detail (entity referencing). It is front-loaded with essential information and has no wasted words, making it highly concise and well-structured.

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 moderate complexity (5 parameters, mutation operation) and lack of output schema, the description is adequate but incomplete. It covers the basic action and entity referencing but misses details on usage context, potential errors, or result implications, leaving gaps for an AI agent to infer behavior.

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 80%, providing good documentation for parameters like 'entity_one' and 'constraint_type'. The description adds minimal value beyond the schema, only implying entity indexing without explaining parameter interactions or constraints like when 'entity_two' is required. Baseline 3 is appropriate given high schema coverage.

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

Purpose4/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 geometric constraint') and resource ('in the active sketch'), with specific mention of how entities are referenced ('by index within the sketch'). It distinguishes from siblings like 'create_sketch' or 'draw_line' by focusing on constraints rather than creation or drawing, though it doesn't explicitly differentiate from all constraint-related tools (none listed).

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, prerequisites (e.g., needing an active sketch), or exclusions. It mentions the active sketch but doesn't clarify if other tools might be needed first or when constraints are applicable in a workflow.

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

add_dimensionAdd Sketch DimensionB

Add a driving dimension to constrain sketch geometry. Value is in cm for distances, degrees for angles.

NameRequiredDescriptionDefault
valueYesDimension value (cm or degrees)
entity_oneNoIndex of first entity (point or curve)
entity_twoNoIndex of second entity (for distance/angular; not for radial/diameter)
sketch_nameNoSketch name (default: most recent)
dimension_typeYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate this is a non-read-only, non-idempotent, non-destructive operation. The description adds useful context about units (cm for distances, degrees for angles) which isn't in the annotations. However, it doesn't disclose other behavioral traits like whether dimensions are editable after creation, if they affect sketch regeneration, or error conditions. With annotations covering basic safety, this adds some value but not rich behavioral context.

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

Conciseness5/5

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

The description is perfectly concise with two clear sentences. The first states the core purpose, the second provides crucial unit information. Every word earns its place with zero wasted text, making it easy to parse quickly.

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 tool with 5 parameters, 80% schema coverage, and no output schema, the description provides adequate but incomplete context. It covers the purpose and units well, but doesn't explain the tool's role in the sketching workflow, how dimensions interact with constraints, or what happens after dimension addition. Given the complexity and lack of output schema, more context would be beneficial.

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 80%, so the schema already documents most parameters well. The description adds unit information (cm/degrees) for the 'value' parameter, which provides helpful semantic context beyond the schema's numeric type. However, it doesn't explain the relationship between 'dimension_type' choices and other parameters (e.g., when 'entity_two' is required), leaving some 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 purpose: 'Add a driving dimension to constrain sketch geometry.' It specifies the action (add), resource (driving dimension), and context (sketch geometry). However, it doesn't explicitly differentiate from sibling tools like 'add_constraint' or 'create_sketch', which would be needed for a perfect score.

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. It doesn't mention when to choose this over 'add_constraint' or how it relates to 'create_sketch' or other geometry tools. Without any usage context or exclusions, this is minimal guidance.

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

add_jointAdd JointA

Add a joint between two components using a pair of faces as joint geometry. face_one/face_two are mandatory: a joint cannot be built from component origins, because a bare point carries no component association. Pass a cylindrical face on each side (see get_object_info for the face indices) - for a hinge that is the knuckle bore on each leaf. NOTE: creating a joint MOVES the components so the joint geometry becomes coincident - use create_as_built_joint when the parts are already positioned.

NameRequiredDescriptionDefault
axisNoRotation/slide axis for revolute, slider and cylindrical; primary direction for pin_slot, planar and ball.x
body_oneNoBody inside component_one carrying the joint geometry. Omit when the component holds exactly one body.
body_twoNoBody inside component_two carrying the joint geometry. Omit when the component holds exactly one body.
face_oneYesFace index on that body (cylindrical faces work best).
face_twoYesFace index on that body (cylindrical faces work best).
quadrantNoAngular position of the joint origin on a cylindrical face.middle
key_pointNoAxial position of the joint origin on a cylindrical face. `end` is the only value that produced a valid joint on Fusion 2705; others raise Invalid parameter height or InternalValidationError.end
joint_typeNorigid
second_axisNoSecondary direction for pin_slot and ball. Defaults to an axis perpendicular to `axis`. For ball joints Fusion takes (pitch, yaw) and rejects a pitch parallel to the joint axis, so the perpendicular one is sent first.
component_oneYes
component_twoYes

TDQS

A4.5/5.0
Behavior4/5

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

The NOTE discloses a non-obvious and consequential side effect — creating the joint MOVES the components into coincidence — which goes well beyond the supplied annotations and is exactly what an agent needs to know before calling a mutating tool. Gaps remain: no statement of what is returned, what happens on failure (e.g. invalid face index), or whether the move can be undone except generically via the undo sibling.

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

Conciseness4/5

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

Front-loaded with the core action, then constraints, then the implicit alternative, with the side effect flagged as a NOTE so it is not buried. Dense but every clause carries information; the parenthetical hinge example is the only borderline addition and it earns its place as a disambiguator.

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

Completeness4/5

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

For an 11-parameter, non-idempotent CAD mutation with no output schema, the description covers the make-or-break hazards: mandatory face geometry, the component-move side effect, and the as-built alternative. Remaining shortfall is joint_type, which has no description in the schema and no explanation in the description, leaving the agent to infer the difference between rigid, revolute, and the rest.

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 73%, so the baseline is 3, and the description earns the bump by explaining what face_one/face_two actually mean geometrically (a cylindrical face per side, hinge knuckle bore as the canonical case) and by pointing at get_object_info to obtain indices. It does not add anything for joint_type, axis, or body_one/body_two, which are left entirely to 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?

States a specific verb and resource — 'Add a joint between two components' — and immediately narrows it to face-pair geometry, distinguishing it from create_as_built_joint and from component-origin constructions. An agent can pick this tool without opening the schema.

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

Usage Guidelines5/5

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

Explicit preconditions ('face_one/face_two are mandatory', origins don't work and why), guidance on what geometry to choose ('pass a cylindrical face on each side', hinge/knuckle-bore example), a pointer to get_object_info for face indices, and a named alternative plus its selecting condition: 'use create_as_built_joint when the parts are already positioned.'

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

auto_constrainAuto-Constrain SketchA

Automatically add geometric constraints and dimensions to fully constrain a sketch (Fusion 2026+ AutoConstrain API). result_option: 1 = thorough/slow (default), 2 = fast, 3 = may move geometry within tolerance.

NameRequiredDescriptionDefault
sketch_nameNoSketch name (default: most recent)
result_optionNo1 = most thorough (slowest), 2 = fastest, 3 = adjusts geometry within tolerance

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare the tool is mutating (readOnlyHint=false) and not idempotent. The description adds valuable context that result_option=3 may move geometry within tolerance and that the tool aims to fully constrain a sketch, giving insight into side effects beyond the basic mutation. It does not mention potential removal of existing constraints, but the annotations cover the core behavior.

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

Conciseness4/5

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

The description is concise with the purpose front-loaded and the result_option explained in a single line. However, the result_option explanation duplicates the schema's enum descriptions, making it slightly redundant. Still, it is efficient and well-ordered.

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 mutation tool without an output schema, the description is adequate. It clarifies the operation and options, but it does not mention what happens if the sketch is already fully constrained, potential error conditions, or any prerequisites beyond sketch existence. Given the simplicity, it is minimally sufficient but not rich.

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 100%: both sketch_name and result_option have descriptions, including the full enum meaning for result_option. The description repeats the enum values, which adds no new information beyond the schema. sketch_name is not addressed in the description, but the schema already documents its default behavior.

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 (add) and resource (geometric constraints and dimensions to a sketch), and clearly distinguishes it from the singular add_constraint/add_dimension tools by being automatic and thorough. It also mentions the Fusion 2026+ API version, leaving no ambiguity about what the tool does.

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

Usage Guidelines3/5

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

The description implies usage for fully constraining a sketch, but it does not explicitly compare against alternatives like add_constraint or add_dimension, nor does it state when not to use this tool. There is no exclusion or condition to guide selection among the many sibling tools.

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

boolean_operationBoolean OperationB

Combine two named bodies (join/cut/intersect)

NameRequiredDescriptionDefault
operationNojoin
tool_bodyYes
target_bodyYes

TDQS

B3/5.0
Behavior3/5

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

Annotations indicate this is a non-readOnly, non-idempotent, non-destructive operation, but the description adds minimal behavioral context. It implies mutation ('combine') without detailing effects like whether the original bodies are modified or new ones created, or any rate limits. With annotations covering basic safety, the description adds some value but lacks depth on behavioral traits.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero waste. It's front-loaded with the core action ('combine') and includes essential details (resources and operations). Every word earns its place, making it highly concise and well-structured.

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 complexity of a boolean operation tool with 3 parameters (2 required), 0% schema coverage, no output schema, and annotations that only cover basic hints, the description is inadequate. It fails to explain parameter meanings, expected outcomes, or usage context, leaving significant gaps for an AI agent to understand and 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%, so the description must compensate, but it only vaguely references parameters ('two named bodies', 'join/cut/intersect'). It doesn't explain what 'target_body' and 'tool_body' represent, their formats, or the semantics of the operations beyond the enum values. This leaves key parameter meanings undocumented.

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

Purpose4/5

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

The description clearly states the verb ('combine') and the resources ('two named bodies'), specifying the operations (join/cut/intersect). It distinguishes from siblings like 'split_body' or 'stitch_surfaces' by focusing on boolean operations between bodies. However, it doesn't explicitly differentiate from all siblings, such as 'extrude' or 'loft', which might also combine geometry in different ways.

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. It lacks context on prerequisites (e.g., existing bodies), exclusions (e.g., when to use 'split_body' instead), or comparisons to siblings like 'stitch_surfaces'. This leaves the agent without clear usage direction.

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

cam_create_operationCreate CAM OperationC

Add a machining operation to a setup. Strategy determines the toolpath type.

NameRequiredDescriptionDefault
nameNoOperation name
coolantNoflood
stepdownNoAxial depth of cut (cm)
stepoverNoRadial stepover (cm)
strategyYesMachining strategy
feed_rateNoFeed rate (cm/min)
setup_nameYesName of the parent setup
tool_numberNoTool number from library
spindle_speedNoSpindle speed (RPM)
tool_diameterNoNot supported — tool geometry comes from the CAM tool library; select via tool_number instead. Passing this raises an error.

TDQS

C2.9/5.0
Behavior2/5

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

Annotations are all false and provide no safety or side-effect context, so the description carries the full burden. It discloses only that an operation is added; it does not mention whether the operation is persisted, whether a matching setup/tool is required, or what happens if required parameters are invalid.

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 one focused sentence with no filler and conveys the core action clearly. It is somewhat sparse, but conciseness itself is appropriate.

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

Completeness2/5

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

This is a complex manufacturing operation with 10 parameters, no output schema, and many CAM siblings, yet the description omits workflow context such as prerequisite setup creation, relationship to toolpath generation, and post-creation next steps. The schema covers parameters but not the operational 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 high (90%), so the schema does most of the work. The description adds modest value with 'Strategy determines the toolpath type,' and the schema already clarifies that tool_diameter is unsupported.

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

Purpose4/5

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

The description states a specific verb ('Add') and resource ('machining operation to a setup') and adds that strategy determines the toolpath type. It is clear and distinguishable from cam_create_setup and cam_generate_toolpath, though it does not explicitly name those siblings.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus cam_create_setup, cam_generate_toolpath, or cam_list_operations. There is no mention that a setup must already exist or that toolpath generation is a separate step.

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

cam_create_setupCreate CAM SetupB

Create a manufacturing setup for a body. Defines the stock, coordinate system, and operation type (milling/turning/cutting).

NameRequiredDescriptionDefault
nameNoSetup name
body_nameYesBody to machine
stock_modeNorelative_box
operation_typeNomilling
stock_offset_topNoTop offset (cm)
stock_offset_sidesNoSide offset (cm)
stock_offset_bottomNoBottom offset (cm)

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate this is a non-readonly, non-idempotent, non-destructive operation. The description adds that it 'defines' setup components, which aligns with annotations. However, it doesn't provide additional behavioral context like whether this creates persistent configurations, requires specific permissions, or has side effects beyond what annotations cover.

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, efficient sentence that immediately states the tool's purpose without unnecessary words. It's appropriately sized for a creation tool with 7 parameters.

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 creation tool with 7 parameters, no output schema, and moderate schema coverage (71%), the description adequately covers the basic purpose but lacks information about return values, error conditions, or relationships to other CAM operations. The annotations help but don't fully compensate for missing output documentation.

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 71% schema description coverage, the baseline is 3. The description mentions 'stock, coordinate system, and operation type' which maps to parameters like stock_mode and operation_type, but doesn't add meaningful semantic context beyond what the schema already documents about these 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 clearly states the verb 'Create' and resource 'manufacturing setup for a body', specifying it defines stock, coordinate system, and operation type. It distinguishes from siblings like 'cam_create_operation' by focusing on setup creation rather than operation creation, but doesn't explicitly contrast with other setup-related tools.

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 'cam_list_setups' or 'cam_create_operation'. It mentions what the tool does but gives no context about prerequisites, timing, or when other tools might be more appropriate.

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

cam_generate_toolpathGenerate ToolpathB

Generate toolpaths for a specific operation or all operations in a setup

NameRequiredDescriptionDefault
setup_nameNoSetup name (generates all its operations)
generate_allNoGenerate all toolpaths
operation_nameNoSpecific operation name (overrides setup_name)

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate this is not read-only, idempotent, or destructive, but the description adds minimal behavioral context. It implies a generation process but doesn't detail effects (e.g., whether toolpaths are saved, visible in the UI, or trigger simulations). No contradiction with annotations exists, but the description could better explain the tool's impact beyond the basic hints.

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, efficient sentence that front-loads the core purpose without unnecessary details. It uses clear language and avoids redundancy, making it easy to parse while conveying essential scope information.

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

Completeness3/5

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

Given the lack of output schema and annotations that only cover basic hints, the description is somewhat incomplete. It doesn't explain what the tool returns (e.g., success status, generated paths) or address potential complexities like error handling for invalid inputs. However, it adequately covers the tool's intent within the context of CAM operations.

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 100%, so parameters are well-documented in the schema. The description mentions 'specific operation or all operations,' which aligns with the parameters but doesn't add significant semantic value beyond what the schema provides (e.g., clarifying interactions between 'setup_name', 'operation_name', and 'generate_all').

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 ('Generate toolpaths') and specifies the scope ('for a specific operation or all operations in a setup'), which distinguishes it from general CAM tools. However, it doesn't explicitly differentiate from sibling tools like 'cam_post_process' or 'cam_get_operation_info', which might involve related CAM workflows.

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. It doesn't mention prerequisites (e.g., requiring an existing setup or operation), exclusions, or comparisons to siblings like 'cam_post_process' for post-processing or 'cam_list_operations' for listing operations without generation.

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

cam_get_operation_infoGet CAM Operation InfoB
Read-onlyIdempotent

Get details about a specific operation (strategy, tool, parameters, toolpath status)

NameRequiredDescriptionDefault
setup_nameYes
operation_nameYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe, repeatable read operation. The description adds value by specifying the types of details returned (strategy, tool, parameters, toolpath status), which provides context beyond annotations. However, it doesn't disclose other behavioral traits like error conditions, rate limits, or authentication 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 a single, efficient sentence that front-loads the purpose ('Get details about a specific operation') and specifies the key details retrieved. There is no wasted wording, and it's appropriately sized for a simple read operation.

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 low complexity (a read operation with 2 parameters), rich annotations (covering safety and idempotency), but no output schema, the description is partially complete. It specifies what details are returned, which helps, but lacks parameter explanations and usage guidelines. For a tool with good annotations but no output schema, this is adequate but has clear gaps.

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

Parameters3/5

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

Schema description coverage is 0%, so the schema provides no parameter descriptions. The description doesn't add any parameter-specific information—it doesn't explain what 'setup_name' or 'operation_name' represent, their formats, or examples. With 2 required parameters and no schema descriptions, the baseline is 3 as the description doesn't compensate for the coverage gap.

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

Purpose4/5

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

The description clearly states the verb 'Get' and the resource 'details about a specific operation', specifying what information is retrieved (strategy, tool, parameters, toolpath status). It distinguishes from siblings like 'cam_list_operations' by focusing on details of a single operation rather than listing multiple, though it doesn't explicitly contrast with 'get_object_info' or 'get_parameters' which might overlap in domain.

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. It doesn't mention prerequisites (e.g., needing a valid setup and operation name), exclusions, or compare it to similar tools like 'cam_list_operations' for listing or 'get_object_info' for general object details. Usage is implied by the name but not explicitly stated.

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

cam_list_operationsList CAM OperationsA
Read-onlyIdempotent

List operations within a setup

NameRequiredDescriptionDefault
setup_nameYes

TDQS

A3.5/5.0
Behavior4/5

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

Annotations indicate read-only, idempotent, and non-destructive behavior, which the description does not contradict. The description adds context by specifying the scope ('within a setup'), which is not covered by annotations. However, it lacks details on output format (e.g., list structure, pagination) or any rate limits, though annotations cover safety aspects well.

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, efficient sentence with zero wasted words. It is front-loaded with the core purpose and avoids redundancy. Every part of the sentence earns its place by specifying the action and scope.

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 low complexity (1 parameter, read-only per annotations) but lack of output schema, the description is minimally adequate. It covers the basic purpose and scope but misses details like output format or error handling. With annotations providing safety context, it meets a baseline but could be more informative for agent use.

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 input schema has 1 parameter with 0% description coverage, so the description must compensate. It implies 'setup_name' is required to scope the listing but does not explain its format, constraints, or examples. The description adds minimal meaning beyond the schema, meeting the baseline for low coverage without fully compensating.

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 'List operations within a setup' clearly states the verb ('List') and resource ('operations'), specifying the scope ('within a setup'). It distinguishes from siblings like 'cam_list_setups' (which lists setups rather than operations) and 'cam_get_operation_info' (which gets details of a specific operation). However, it does not explicitly mention what 'operations' refer to (e.g., CAM machining operations), leaving some ambiguity.

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. It does not mention prerequisites (e.g., needing an existing setup), exclusions, or comparisons to siblings like 'cam_get_operation_info' for detailed info or 'cam_list_setups' for listing setups. Usage is implied by the name and context but not explicitly stated.

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

cam_list_setupsList CAM SetupsB
Read-onlyIdempotent

List all manufacturing setups in the document

NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate this is a read-only, idempotent, non-destructive operation. The description adds minimal behavioral context beyond this, stating it lists 'all' setups, which implies completeness but doesn't detail format, pagination, or error handling. No contradiction with annotations exists.

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, clear sentence with no wasted words. It's front-loaded with the core action and resource, making it highly efficient 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?

Given the tool's simplicity (0 parameters, no output schema, and annotations covering safety), the description is adequate but minimal. It could be more complete by adding details like return format or usage context, but it's not incomplete for a basic list operation with good annotations.

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 parameters and 100% schema description coverage, the schema fully documents the lack of inputs. The description doesn't need to add parameter details, and it doesn't introduce any confusion, so it meets the baseline for this scenario.

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 ('List') and resource ('all manufacturing setups in the document'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'cam_list_operations' or 'list_components', which would require mentioning the specific scope of CAM setups versus other listable entities.

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. It doesn't mention context, prerequisites, or exclusions, such as whether it should be used for CAM-specific setups only or how it relates to other list tools like 'cam_list_operations' or 'list_components'.

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

cam_post_processPost ProcessA

Post-process toolpaths to generate NC code (G-code)

NameRequiredDescriptionDefault
setup_nameYesSetup to post-process
output_unitsNomm
output_folderNoOutput directory (default: ~/Desktop)
operation_nameNoSpecific operation (omit to post all in setup)
post_processorNoPost processor short name ('fanuc', 'grbl', 'haas') resolved against the local post folder when the Fusion build provides one, or a full path to a .cps file (required on cloud-post builds)fanuc

TDQS

A3.6/5.0
Behavior3/5

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

Annotations provide only readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so there is no contradiction. The description adds that the operation converts toolpaths to NC code, but it does not disclose side effects such as writing files to output_folder or requiring valid toolpaths, leaving the agent to infer persistence 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 definition is a single front-loaded sentence that states the action and output with no filler. Every word 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?

There is no output schema and the description does not explain what the agent should expect after invocation, such as confirmation, written file paths, or errors. It is adequate for selection but incomplete for reliable invocation of an action with five parameters.

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 80%, and the input schema already documents setup_name, operation_name, output_folder, units, and post_processor behavior. The tool description adds no parameter-level meaning beyond saying the result is NC code, so a baseline 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb and resource: 'Post-process toolpaths to generate NC code (G-code)'. This clearly distinguishes the tool from siblings like cam_generate_toolpath by naming the final output artifact.

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 'post-process toolpaths' implies the tool is used after toolpath generation, but it never explicitly states when to choose it over cam_generate_toolpath or other CAM siblings, and it names no alternatives or exclusions. The usage context is inferable rather than explicit.

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

chamferChamfer EdgesC

Chamfer edges of a body

NameRequiredDescriptionDefault
distanceYes
body_nameNo
body_indexNo
edge_selectionNoall

TDQS

C2.8/5.0
Behavior3/5

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

Annotations indicate this is a mutable (readOnlyHint: false), non-idempotent, non-destructive operation. The description adds that it modifies edges of a body, which aligns with annotations but doesn't provide additional behavioral context like whether it creates a new feature, affects model history, or has side effects. No contradiction with annotations exists.

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—just four words—and front-loaded with the core action. There's no wasted language, making it easy to parse quickly, though this brevity contributes to gaps in other dimensions.

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 CAD modeling tool with four parameters, no output schema, and annotations covering only basic hints, the description is insufficient. It doesn't explain the operation's effect on the model, parameter roles, or expected outcomes, leaving too much for the agent to infer from the schema and context alone.

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?

With 0% schema description coverage, the description provides no parameter information beyond what's implied by the tool name. It doesn't explain what 'distance', 'body_name', 'body_index', or 'edge_selection' mean, their units, or how they affect the chamfer operation. This leaves significant gaps in understanding the four parameters.

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 'Chamfer edges of a body' clearly states the verb ('chamfer') and resource ('edges of a body'), making the purpose understandable. However, it doesn't differentiate this tool from similar siblings like 'fillet' (which also modifies edges) or 'bevel' operations, leaving some ambiguity about when to choose chamfering over other edge treatments.

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. It doesn't mention prerequisites (e.g., needing an existing body), when chamfering is appropriate versus filletting, or any context-specific considerations. The user must infer usage from the tool name alone.

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

check_interferenceCheck InterferenceB
Read-onlyIdempotent

Detect collisions between components/bodies

NameRequiredDescriptionDefault
component_namesYesNames of components to check
include_coincident_facesNoCount touching faces as interference

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe, repeatable read operation. The description adds the specific behavioral context of detecting collisions/interference, which is valuable beyond the annotations. However, it doesn't describe what constitutes a 'collision' in detail, how results are returned, or any performance considerations.

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 - a single sentence that directly states the tool's purpose without any unnecessary words. It's front-loaded with the core functionality and contains zero wasted language. This is an excellent example of efficient documentation.

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 moderate complexity (collision detection with 2 parameters), good annotations, and 100% schema coverage, the description is adequate but has clear gaps. The lack of output schema means the description should ideally explain what the tool returns (e.g., boolean result, collision details, interference volume), but it doesn't. For a read-only analysis tool, this represents a significant omission in completeness.

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 100%, with both parameters well-documented in the schema itself. The description doesn't add any additional parameter semantics beyond what's already in the schema descriptions. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even without parameter information in the description.

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

Purpose4/5

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

The description clearly states the tool's purpose with a specific verb ('Detect') and resource ('collisions between components/bodies'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'measure_distance' or 'get_physical_properties' that might involve spatial analysis, leaving room for potential confusion about when to choose this specific collision detection tool.

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. With many sibling tools for measurement, analysis, and geometry operations, there's no indication of prerequisites, typical use cases, or comparisons to tools like 'measure_distance' for proximity checks or 'get_physical_properties' for spatial properties. This leaves the agent without context for tool selection.

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

circular_patternCircular PatternC

Pattern a body around an axis

NameRequiredDescriptionDefault
axisNoz
countYes
body_nameYes
total_angleNoTotal angle to distribute copies over (degrees)

TDQS

C2.8/5.0
Behavior3/5

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

Annotations indicate this is a non-read-only, non-idempotent, non-destructive operation, but the description adds no behavioral context beyond that. It doesn't explain what 'pattern' entails (e.g., creating copies, modifying geometry), potential side effects, or performance considerations. With annotations covering basic safety, the description adds minimal value, scoring a baseline 3.

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, efficient sentence that front-loads the core action ('pattern a body'). It avoids unnecessary words, but could be more specific (e.g., 'Create copies of a body arranged in a circle around an axis') to improve clarity without losing conciseness.

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 4 parameters, low schema coverage (25%), no output schema, and no annotations explaining behavior, the description is incomplete. It lacks details on what the tool returns, how it interacts with geometry, or error conditions, making it inadequate for an agent to use effectively without additional 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 low at 25%, with only 'total_angle' having a description. The description adds no parameter semantics beyond the schema, failing to explain 'body_name' (what body to pattern), 'count' (number of copies), or 'axis' (rotation axis). Given the coverage gap, the description doesn't compensate, resulting in a baseline 3 due to inadequate parameter clarification.

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 action ('pattern a body') and resource ('around an axis'), which clarifies the basic purpose. However, it's vague about what 'pattern' means (creating copies in a circular arrangement) and doesn't distinguish from sibling tools like 'rectangular_pattern' or 'mirror', which also create patterns but with different geometries.

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 explicit guidance is provided on when to use this tool versus alternatives like 'rectangular_pattern' or 'mirror'. The description implies usage for circular arrangements but doesn't mention prerequisites (e.g., needing an existing body) or exclusions, leaving the agent to infer context from the tool name alone.

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

compare_meshesCompare Mesh BodiesA
Read-onlyIdempotent

Compare two mesh bodies and return deviation statistics (min/max/mean/RMS signed distance in cm) — e.g. validate an imported STL against a reference mesh. Requires Fusion 2026+.

NameRequiredDescriptionDefault
mesh_name_aYesName of the first mesh body
mesh_name_bYesName of the reference mesh body

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already mark it read-only, idempotent, and non-destructive. The description adds value by disclosing the computed output fields, units (cm), and the Fusion version requirement. No behavioral trait contradicts the annotations.

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

Conciseness5/5

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

A single, information-dense sentence front-loads the core operation, then states output units, a motivating example, and version compatibility without redundancy. Every clause earns its place.

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 low-complexity, read-only tool with two fully described parameters, the description supplies the missing output semantics (statistics and units) and a prerequisite, leaving no critical gap in the absence of an output schema.

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 100%: both parameters are already described as 'Name of the first mesh body' and 'Name of the reference mesh body.' The description only reinforces the reference-mesh role and adds no syntax, constraints, or format details to 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 opens with a specific verb+resource ('Compare two mesh bodies') and specifies the exact output (deviation statistics: min/max/mean/RMS signed distance in cm). The example clearly differentiates this from generic measurement tools like measure_distance or get_physical_properties.

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 provides a clear use case ('validate an imported STL against a reference mesh') and a compatibility prerequisite ('Requires Fusion 2026+'). However, it does not explicitly state when not to use it or name alternative sibling tools, so it falls just 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.

create_as_built_jointCreate As-Built JointA

Create a joint that keeps both components exactly where they are, capturing the current pose instead of enforcing a new one. Use this when the parts are already positioned correctly; add_joint instead moves components to make the joint geometry coincident. Fusion needs a face pair (face_one/face_two) for every joint type except rigid.

NameRequiredDescriptionDefault
axisNoRotation/slide axis for revolute, slider and cylindrical; primary direction for pin_slot, planar and ball.x
body_oneNoBody inside component_one carrying the joint geometry. Omit when the component holds exactly one body.
body_twoNoBody inside component_two carrying the joint geometry. Omit when the component holds exactly one body.
face_oneNoFace index on that body (cylindrical faces work best).
face_twoNoFace index on that body (cylindrical faces work best).
quadrantNoAngular position of the joint origin on a cylindrical face.middle
key_pointNoAxial position of the joint origin on a cylindrical face.end
joint_typeYesrigid
second_axisNoSecondary direction for pin_slot and ball. Defaults to an axis perpendicular to `axis`. For ball joints Fusion takes (pitch, yaw) and rejects a pitch parallel to the joint axis, so the perpendicular one is sent first.
component_oneYes
component_twoYes

TDQS

A4.6/5.0
Behavior4/5

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

Beyond the annotations (non-readOnly, non-idempotent, non-destructive), the description discloses the key behavioral trait: components are not repositioned, the current pose is captured. It also discloses a type-dependent input requirement (face pair required for every joint type except rigid), which is real behavioral context. It does not mention that repeated calls will create duplicate joints, a notable gap given idempotentHint=false, nor what the tool returns.

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

Conciseness5/5

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

Three short sentences, front-loaded with the distinguishing behavior, then the usage rule, then the conditional input requirement. No filler or restatement of the title.

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

Completeness4/5

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

For an 11-parameter mutation tool with no output schema, the description covers purpose, alternative, and the main conditional requirement. It stops short of describing failure modes (e.g., components not yet positioned, invalid face indices) or what the created joint looks like in the document, which would help an agent recover from errors.

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 73%, so much is already documented, but the description adds a cross-parameter rule the schema does not state: face_one/face_two are needed for every joint type except rigid. The axis/second_axis interplay is already covered in the schema's own description, so this is modest added value rather than a rewrite.

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

Purpose5/5

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

The description states a specific verb and resource ('Create a joint') plus the defining behavior ('keeps both components exactly where they are, capturing the current pose instead of enforcing a new one'). This immediately distinguishes it from add_joint even before reading either schema.

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

Usage Guidelines5/5

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

It gives an explicit selection rule ('Use this when the parts are already positioned correctly') and names the alternative with its contrasting behavior ('add_joint instead moves components to make the joint geometry coincident'). The condition that selects between the two siblings is fully spelled out.

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

create_bendCreate BendB

Add a bend to a sheet metal body

NameRequiredDescriptionDefault
angleNoBend angle (degrees)
body_nameYes
bend_radiusNoOverride bend radius (cm)
bend_line_sketchNoSketch with bend line

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate this is a non-read-only, non-idempotent, non-destructive operation, which the description doesn't contradict. The description adds minimal behavioral context beyond annotations—it implies a geometric modification but doesn't specify effects like permanent model changes, error conditions, or typical use cases in CAD workflows.

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, direct sentence with no wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly without unnecessary elaboration.

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 CAD modeling tool with 4 parameters, no output schema, and annotations covering basic safety, the description is minimally adequate. It states what the tool does but lacks details on typical outcomes, error handling, or integration with sibling tools, leaving gaps in contextual understanding.

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 75% (3 of 4 parameters have descriptions), providing good baseline documentation. The description doesn't add meaningful parameter semantics beyond what the schema already covers (e.g., it doesn't explain relationships between parameters like bend_line_sketch and angle).

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 ('Add a bend') and the target resource ('to a sheet metal body'), making the purpose immediately understandable. However, it doesn't differentiate this tool from similar sibling tools like 'create_flange' or 'fold/unfold' operations, which might also manipulate sheet metal geometry.

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 like 'create_flange' or 'fold' operations. The description lacks context about prerequisites (e.g., needing a sheet metal body and bend line sketch) or when this operation is appropriate in a design workflow.

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

create_boxCreate BoxC

Create a box primitive (non-parametric via TemporaryBRepManager)

NameRequiredDescriptionDefault
widthYes
heightYes
lengthYes
center_xNo
center_yNo
center_zNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations indicate this is a non-readOnly, non-idempotent, non-destructive operation. The description adds that it creates 'non-parametric' geometry via 'TemporaryBRepManager', which provides useful context about the creation method and persistence characteristics. However, it doesn't explain what 'TemporaryBRepManager' means in practice or how the created box interacts with the modeling environment.

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, efficient sentence that gets straight to the point. There's no wasted verbiage, though it could potentially benefit from slightly more detail given the complete lack of parameter documentation in the schema.

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 6-parameter creation tool with no output schema and 0% schema description coverage, the description is inadequate. It doesn't explain what the tool returns, how the created box integrates into the scene, what coordinate system is used, or provide any examples of typical usage patterns.

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?

With 0% schema description coverage for all 6 parameters, the description provides no information about what length, width, height, or center coordinates mean. It doesn't specify units, coordinate system, orientation, or how these parameters relate to the resulting box geometry. The description fails to compensate for the complete lack of schema documentation.

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

Purpose4/5

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

The description clearly states the verb ('Create') and resource ('box primitive'), and specifies it's 'non-parametric via TemporaryBRepManager' which distinguishes it from parametric modeling approaches. However, it doesn't explicitly differentiate from sibling tools like 'create_component' or 'create_cylinder' that also create geometry.

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. With many sibling tools for creating geometry (create_cylinder, create_sphere, create_torus, etc.), there's no indication of when a box primitive is appropriate versus other primitives or modeling methods.

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

create_box_parametricCreate Parametric BoxA

Create a history-based rectangular box via sketch rectangle + extrude (unlike create_box which uses TemporaryBRepManager). length/width/height accept a number (cm, Fusion internal unit) or a string expression referencing User Parameters (e.g. 'boxL', '56 mm', 'outer - 2 * wall_t'). Call create_parameter first to define named parameters.

NameRequiredDescriptionDefault
planeNoxy
widthYesAlong sketch Y: number (cm) or expression
heightYesExtrude distance: number (cm) or expression
lengthYesAlong sketch X: number (cm) or expression
origin_xNo
origin_yNo
origin_zNoZ-offset of sketch plane (cm)
body_nameNoOptional name for the resulting body
component_nameNoTarget component (omit for root)

TDQS

A4.4/5.0
Behavior4/5

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

The description adds meaningful behavioral detail beyond the annotations: it creates a history-based feature using sketch + extrude, accepts expressions referencing User Parameters, and clarifies unit handling. The annotations only indicate non-readonly, non-idempotent, non-destructive, so this additional context is valuable and not contradictory.

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 focused sentences with no filler. The key distinction from create_box is front-loaded, followed by parameter format details and a prerequisite call. 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?

The description covers the construction method, accepted value formats, units, expression examples, and the prerequisite create_parameter call. It does not describe the return value or error behavior, but there is no output schema and the schema covers most parameter details. Overall, it provides enough context for correct invocation.

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

Parameters4/5

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

The schema already documents each dimension parameter as 'number (cm) or expression', but the description adds important examples and clarifies that expressions can reference named User Parameters with syntax like 'outer - 2 * wall_t'. This goes beyond the schema and helps the agent construct valid 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 states a specific operation: create a history-based rectangular box via sketch rectangle + extrude. It also explicitly distinguishes this tool from create_box by noting the different construction method (TemporaryBRepManager vs. history-based). An agent can clearly identify what this tool does and how it differs from a sibling.

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 names create_box as the alternative and explains the fundamental difference. It also provides a sequencing instruction: call create_parameter first to define named parameters. It could be more explicit about when not to use this tool, but the context is clear enough for an agent to decide.

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

create_componentCreate ComponentB

Create a new component (sub-assembly) in the design

NameRequiredDescriptionDefault
nameYesComponent name
parent_nameNoParent component name (omit for root)

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already indicate this is a non-readonly, non-idempotent, non-destructive operation. The description adds minimal context beyond this - it specifies 'new component (sub-assembly)' which clarifies the type of object being created, but doesn't address behavioral aspects like permissions needed, what happens on duplicate names, or response format.

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, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a simple creation tool and front-loads the essential information.

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

Completeness3/5

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

For a creation tool with good annotations (readOnlyHint=false, destructiveHint=false) and full schema coverage, the description is minimally adequate. However, without an output schema and with many similar sibling tools, it could benefit from more context about what constitutes a 'component' versus other creatable objects and what the tool returns.

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

Parameters3/5

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

With 100% schema description coverage, the schema already documents both parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema - no examples, formatting details, or clarification about the parent-child relationship implied by 'sub-assembly'.

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') and resource ('new component (sub-assembly) in the design'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'create_box' or 'create_cylinder' that also create objects but of different types.

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. With many sibling 'create_' tools (e.g., create_box, create_cylinder, create_sketch), there's no indication of when a component is appropriate versus other object types, nor any prerequisites or exclusions mentioned.

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

create_construction_axisCreate Construction AxisC

Create a construction axis

NameRequiredDescriptionDefault
methodYes
body_nameNoBody name (for edge method)
plane_oneNoFirst plane (for intersection)
plane_twoNoSecond plane (for intersection)
point_oneNo
point_twoNo
edge_indexNoEdge index on the body

TDQS

C2.3/5.0
Behavior3/5

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

Annotations indicate this is a non-read-only, non-idempotent, non-destructive operation (readOnlyHint: false, idempotentHint: false, destructiveHint: false). The description doesn't contradict these annotations, but it also adds no behavioral context beyond the basic 'create' action. No information about side effects, error conditions, or system behavior is provided, though annotations cover the safety profile adequately.

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 just three words. While it's under-specified for the tool's complexity, it's not verbose or poorly structured. Every word serves a purpose, and there's no wasted text, earning full marks for conciseness.

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 (7 parameters with conditional dependencies based on 'method'), lack of output schema, and minimal annotations, the description is inadequate. It doesn't explain what a construction axis is, how it's used in CAD workflows, or provide any context about the multiple creation methods. For a tool with this parameter richness, more explanation is needed.

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 57% (4 of 7 parameters have descriptions). The description adds no parameter information beyond what's in the schema. It doesn't explain the relationship between 'method' and other parameters (e.g., that 'point_one' and 'point_two' are required for 'two_points' method), nor does it clarify the purpose of construction axes. With incomplete schema coverage, the description fails to compensate.

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

Purpose2/5

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

The description 'Create a construction axis' is a tautology that restates the name/title without adding specificity. It doesn't explain what a construction axis is, what it's used for, or how it differs from other construction tools like 'create_construction_plane' in the sibling list. The purpose is stated but lacks meaningful differentiation.

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

Usage Guidelines1/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. The description provides no context about appropriate scenarios, prerequisites, or how it relates to other tools in the extensive sibling list (e.g., when to create an axis versus a plane or sketch). This leaves the agent with no usage direction.

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

create_construction_planeCreate Construction PlaneB

Create a construction plane for sketching

NameRequiredDescriptionDefault
angleNoAngle in degrees (for angle method)
planeNoReference plane (for offset/angle)
methodYes
offsetNoOffset distance in cm (for offset)
edge_nameNoEdge or axis to rotate around (for angle method)
plane_oneNoFirst plane (for midplane)
plane_twoNoSecond plane (for midplane)
point_oneNo[x,y,z] first point
point_twoNo[x,y,z] second point
point_threeNo[x,y,z] third point

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate this is a non-readOnly, non-idempotent, non-destructive operation, which the description doesn't contradict. The description adds minimal behavioral context by specifying the plane is 'for sketching', but doesn't explain what happens after creation (e.g., if it becomes active, how it interacts with other features, or any side effects). With annotations covering basic safety, this earns a baseline score for adding some purpose but lacking detailed 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 a single, clear sentence with no wasted words. It's front-loaded with the core action and purpose, making it efficient and easy to parse, which is ideal 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?

Given the tool's complexity (10 parameters, no output schema) and rich schema coverage, the description is minimal but not incomplete. It states what the tool does but lacks context on usage, output, or integration with other tools. With annotations providing safety hints, it's adequate but leaves gaps in guiding the agent effectively.

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 high at 90%, with most parameters well-documented in the schema itself (e.g., method enum values, plane references). The description adds no parameter-specific information beyond the general purpose, so it relies on the schema. This meets the baseline for high schema coverage without adding extra value.

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

Purpose4/5

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

The description clearly states the action ('Create') and resource ('construction plane') with the purpose 'for sketching', which distinguishes it from other creation tools like create_box or create_cylinder. However, it doesn't explicitly differentiate from create_sketch, which might be a related sibling tool for sketching purposes.

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. It doesn't mention prerequisites, context (e.g., when sketching is needed), or how it relates to sibling tools like create_sketch or create_construction_axis, leaving the agent with no usage direction.

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

create_cylinderCreate CylinderC

Create a cylinder primitive (non-parametric via TemporaryBRepManager)

NameRequiredDescriptionDefault
axisNoCylinder axis directionz
base_xNo
base_yNo
base_zNo
heightYes
radiusYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations indicate this is a mutable, non-idempotent, non-destructive operation, which the description does not contradict. The description adds value by specifying 'non-parametric via TemporaryBRepManager', hinting at creation behavior without persistence or parametric features, but it doesn't detail effects like scene changes or error conditions.

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

Conciseness4/5

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

The description is a single, efficient sentence that front-loads the core action. It avoids unnecessary words, though it could be more structured by separating purpose from technical notes.

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 creation tool with no output schema and low parameter documentation, the description is incomplete. It lacks details on return values, error handling, or how the cylinder integrates into the scene, making it inadequate for full contextual understanding.

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?

With low schema description coverage (17%), the description does not compensate by explaining parameters. It mentions 'non-parametric' but doesn't clarify what parameters like 'radius', 'height', or 'axis' mean in context, leaving semantics largely undocumented beyond the minimal schema details.

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 cylinder primitive') and specifies the resource ('cylinder'), but it does not explicitly differentiate from sibling tools like 'create_box' or 'create_sphere'. The mention of 'non-parametric via TemporaryBRepManager' adds technical context but doesn't clarify functional uniqueness 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 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 like 'create_box' or 'create_sphere', nor are there any prerequisites or exclusions mentioned. The description lacks context for tool selection among the many creation tools available.

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

create_flangeCreate FlangeA

Create a sheet metal flange on an edge

NameRequiredDescriptionDefault
angleNoBend angle (degrees)
heightNoFlange height (cm)
body_nameYes
edge_indexYes
bend_radiusNoBend radius (cm)

TDQS

A3.5/5.0
Behavior3/5

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

Annotations indicate this is a non-readOnly, non-idempotent, non-destructive operation. The description adds that it creates a flange, implying a modeling operation that modifies geometry. However, it doesn't disclose additional behavioral traits like whether it requires specific permissions, how it handles errors, or what the expected output looks like (since no output schema exists).

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, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded with the core action and resource, making it easy to parse quickly.

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 creation tool with 5 parameters, no output schema, and annotations covering basic hints, the description is minimally complete. It specifies the action and target but lacks details on usage context, error handling, or output format, leaving gaps that could hinder effective tool selection and 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 60% (3 of 5 parameters have descriptions). The description mentions 'on an edge', which hints at 'edge_index', but doesn't add meaning beyond the schema for parameters like 'body_name', 'height', 'angle', or 'bend_radius'. With moderate schema coverage, the baseline score of 3 is appropriate as the description provides minimal additional parameter context.

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

Purpose5/5

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

The description clearly states the specific action ('Create a sheet metal flange') and the target resource ('on an edge'), using precise terminology. It distinguishes this tool from siblings like 'create_bend' (which might create bends without specifying flange geometry) or 'extrude' (which creates features from sketches rather than edges).

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 'create_bend' or 'extrude', nor does it mention prerequisites (e.g., needing an existing body with an edge). It simply states what the tool does without contextual usage information.

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

create_holeCreate HoleB

Create a hole feature on a body face

NameRequiredDescriptionDefault
depthYes
center_xNoHole centre X in model space (cm)
center_yNoHole centre Y in model space (cm)
diameterYes
body_nameNo
body_indexNo
face_selectionNoDrill into the highest up-facing (top) or lowest down-facing (bottom) planar face, which must be near-horizontal (within ~0.6 deg)top

TDQS

B3.4/5.0
Behavior3/5

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

Annotations (readOnlyHint=false, idempotentHint=false, destructiveHint=false) already convey that this operation mutates state. The description adds one behavioral scope, that the hole is placed on a body face, and is consistent with annotations. It does not disclose further details like requiring an existing body or top/bottom face, but the annotation coverage lowers the burden.

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 with no fluff, and the core purpose is front-loaded. It is efficiently worded, even though the brevity leaves important guidance to other dimensions.

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 seven params, no output schema, sparse annotations, and a single-sentence description, this is not sufficiently complete. It lacks clarity on how the body is selected (name vs index), what depth/diameter mean, how top/bottom face selection works, coordinate system details, and what the resulting operation reports back.

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 only 43%, so the description needed to compensate by explaining core parameters like diameter, depth, body_name, or body_index. It only says 'on a body face', which hints at face selection but does not clarify required dimensions or body selection. Schema descriptions cover center and face_selection, but the description itself adds little paramter meaning.

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 the verb ('Create') and the exact resource ('hole feature on a body face'), which clearly separates it from positive-feature tools like create_cylinder or boolean_operation. It is not a tautology and leaves little ambiguity about what the tool produces.

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 'on a body face' gives an implied usage occasion: you want to add a hole to an existing body face. However, the description contains no explicit when-to-use, when-not-to-use, or alternative routing such as versus extrude/boolean subtraction or face selection conditions.

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

create_parameterCreate ParameterC

Create a new user parameter

NameRequiredDescriptionDefault
nameYesParameter name
unitYesUnit the value is given in (e.g. 'mm', 'cm', 'in', 'deg'). Empty means unitless.
valueYesNumeric value, expressed in `unit`
commentNoOptional comment

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already indicate this is a non-read-only, non-idempotent, non-destructive operation, and the description does not add behavior beyond that. It does not state what happens on duplicate names, whether existing values are overwritten, or what the response contains. The description is not contradictory, but it provides no extra operational context.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no filler or repetition. It is appropriately concise, though it borders on being too terse to convey usage context.

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

Completeness2/5

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

For a mutation tool with no output schema and no behavioral notes, the description is thin. An agent would need to infer or experimentally discover what happens if a parameter with the same name already exists, whether the creation is immediately persisted, and how to confirm success. The schema explains inputs well, but the overall context for safely using the tool 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 100%, so the parameters are already fully documented in the input schema. The description adds no semantic information about parameters, but since the schema carries the load, the baseline of 3 is appropriate.

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

Purpose4/5

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

The description uses a specific verb ('Create') and a concrete resource ('user parameter'), and the word 'new' helps distinguish this from sibling tools like set_parameter and delete_parameter. It could be slightly more precise about what makes a parameter 'user-defined', but the core purpose is immediately 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 gives no guidance on when to choose this tool over set_parameter, delete_parameter, or get_parameters. There is no mention of prerequisites, duplicate handling, or whether this is for creating a brand-new parameter versus updating an existing one. The distinction is only implicit in the name.

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

create_polygonCreate PolygonC

Draw a regular polygon in the most recent sketch

NameRequiredDescriptionDefault
sidesYes
radiusYesCircumradius (cm)
center_xNo
center_yNo
center_zNoIgnored: sketch curves lie in the sketch plane. Leave at 0 and use create_sketch(z_offset=...) to move the plane itself.

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare mutation (readOnlyHint=false), non-idempotence and non-destructiveness, and the description adds nothing on top: it does not say whether the polygon becomes a closed profile usable by extrude, what happens if no sketch exists, or whether it lands as a new body or sketch curve. The most valuable behavioral note (curves lie in the sketch plane, use create_sketch z_offset to move the plane) sits in the schema, not the description.

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

Conciseness4/5

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

A single front-loaded sentence with zero filler; the scope constraint (most recent sketch) is placed where it matters. Its brevity is efficient rather than padded, though it borders on under-specification rather than crisp economy.

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 5-parameter geometry primitive with no output schema this is close to adequate — the agent knows what is drawn and where. But with 40% schema coverage it should at minimum clarify the center-coordinate frame and the sketch prerequisite, which are exactly the details an agent is most likely to get wrong.

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 only 40% and the description compensates for none of the gaps. It never explains that 'sides' is an integer 3-64 defining edge count, that center_x/center_y position the polygon within the sketch plane (defaulting to the origin), or what coordinate frame those values are in — leaving three of five parameters with no meaning beyond their 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?

Specific verb ("Draw") plus specific resource ("a regular polygon") plus placement scope ("in the most recent sketch"). It is naturally distinguishable from draw_rectangle, draw_circle and draw_line without opening a schema, though it does not explicitly name those siblings as alternatives.

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

Usage Guidelines2/5

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

"Most recent sketch" implies a sketch must already exist and that this tool cannot target an arbitrary sketch, which is useful. Beyond that there is no when-to-use/when-not guidance, no mention of create_sketch as the prerequisite step, and no comparison to the other draw_* siblings.

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

create_rigid_groupCreate Rigid GroupB

Lock multiple components together

NameRequiredDescriptionDefault
component_namesYesNames of components to group
include_childrenNoInclude child sub-components

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate this is a non-read-only, non-idempotent, non-destructive operation, which the description aligns with by implying a creation action ('Lock'). The description adds minimal behavioral context beyond annotations—it hints at grouping behavior but doesn't detail effects like persistence, reversibility, or interaction with other operations. No contradiction with annotations exists.

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, efficient sentence with zero wasted words—'Lock multiple components together' directly conveys the core action. It's front-loaded and appropriately sized for the tool's complexity, making it easy to parse quickly.

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 no output schema and annotations cover basic safety (non-destructive), the description is minimally adequate. It states the purpose but lacks details on behavioral outcomes, error conditions, or integration with sibling tools. For a creation tool with 2 parameters, it meets a bare minimum but doesn't provide rich contextual guidance.

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 100%, with clear parameter documentation: 'component_names' (array of strings, min 2 items) and 'include_children' (boolean, default true). The description 'Lock multiple components together' loosely relates to 'component_names' but adds no specific semantics beyond the schema, such as format examples or grouping implications. Baseline 3 is appropriate given high schema coverage.

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

Purpose4/5

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

The description 'Lock multiple components together' clearly states the tool's function with a specific verb ('Lock') and resource ('components'), and the 'rigid' aspect is implied. However, it doesn't explicitly differentiate from sibling tools like 'create_component' or 'add_joint', which could also involve component relationships, leaving some ambiguity about its unique role.

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. With many sibling tools like 'create_component', 'add_joint', or 'boolean_operation' that might handle component interactions, there's no indication of specific use cases, prerequisites, or exclusions for 'create_rigid_group'.

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

create_section_analysisCreate Section AnalysisB

Cut a section plane through the model

NameRequiredDescriptionDefault
planeNoyz
offsetNoOffset from the plane (cm)

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate this is a non-read-only, non-idempotent, non-destructive operation, but the description adds minimal behavioral context beyond the action. It implies a creation or analysis outcome but does not detail effects like visual changes, data generation, or interaction with the model. No contradiction with annotations exists, but the description offers limited value beyond them.

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 that directly states the tool's purpose without unnecessary words. It is appropriately sized for a simple tool, making it efficient and easy to parse for an AI agent.

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 moderate complexity (2 parameters, no output schema), the description is minimally adequate but lacks depth. It covers the basic action but omits details on output format, side effects, or integration with sibling tools. With annotations providing safety hints, the description is complete enough for basic use but could be more informative.

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 50% (only 'offset' has a description), and the description does not add meaning for parameters beyond the schema. It mentions 'plane' and 'offset' implicitly but provides no extra details on usage, constraints, or effects. With moderate schema coverage, the baseline score of 3 is appropriate as the description does not compensate for 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 action ('cut a section plane') and the target ('through the model'), which is specific and distinguishes it from sibling tools like 'create_construction_plane' or 'get_object_info'. However, it does not explicitly differentiate from all siblings (e.g., 'split_body' or 'trim_surface' could involve cutting), so it falls short of a perfect score.

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, such as 'create_construction_plane' for reference geometry or 'get_scene_info' for analysis. It lacks explicit context, prerequisites, or exclusions, leaving the agent to infer usage from the tool name alone.

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

create_sketchCreate SketchB

Create a new sketch on xy/yz/xz plane, optionally offset

NameRequiredDescriptionDefault
planeNoxy
z_offsetNoOffset distance from the plane (cm)

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate this is a non-readOnly, non-idempotent, non-destructive operation, which the description doesn't contradict. The description adds minimal behavioral context by mentioning the plane options and offset capability, but doesn't disclose important details like whether sketches are persistent, if they can be edited later, or what happens on failure. With annotations covering basic safety, this earns a baseline score.

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

Conciseness5/5

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

The description is extremely concise—a single sentence that's front-loaded with the core action. Every word earns its place without redundancy, making it easy to parse quickly. No unnecessary details or verbose explanations are included.

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 no output schema and annotations cover basic safety, the description is minimally complete. It identifies the action and parameters but lacks depth on usage context, return values, or error handling. For a creation tool with 2 parameters, this is adequate but leaves gaps in practical guidance.

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 50% (only 'z_offset' has a description). The description mentions 'plane' and 'offset' but doesn't add meaningful semantics beyond what the schema provides—it doesn't explain what the planes represent, default behaviors, or offset implications. With partial schema coverage, the description doesn't adequately compensate, warranting a baseline 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 the verb ('Create') and resource ('new sketch'), specifying it occurs on specific planes (xy/yz/xz). However, it doesn't differentiate from sibling tools like 'draw_rectangle' or 'draw_circle' that might also create sketches, leaving some ambiguity about when to use this versus other drawing tools.

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. It mentions 'optionally offset' but doesn't explain scenarios where offsetting is beneficial or when other tools like 'create_construction_plane' might be more appropriate. No explicit when/when-not instructions are given.

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

create_sphereCreate SphereB

Create a sphere primitive (non-parametric via TemporaryBRepManager)

NameRequiredDescriptionDefault
radiusYes
center_xNo
center_yNo
center_zNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already indicate this is a mutable operation (readOnlyHint: false) that's neither idempotent nor destructive. The description adds some context about being 'non-parametric via TemporaryBRepManager', which suggests a specific creation method, but doesn't elaborate on what this means behaviorally (e.g., whether the sphere can be edited later, if it's temporary, or how it integrates with the CAD environment).

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, efficient sentence that gets straight to the point. It could potentially benefit from slightly more context about the sphere's characteristics or usage, but it doesn't waste words and communicates the core purpose effectively.

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 creation tool with no output schema and minimal annotations beyond basic mutability hints, the description provides the essential 'what' but lacks important context. It doesn't explain what happens after creation (e.g., where the sphere appears, whether it's selectable/editable, or what the return value might be). The 'non-parametric via TemporaryBRepManager' hint suggests technical specifics but doesn't make them actionable for an AI 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?

With 0% schema description coverage, the schema provides only basic type constraints. The description doesn't add any parameter information beyond what's implied by the tool name. It doesn't explain what 'radius' represents, what units are used, or what the center coordinates mean in the 3D space. However, the parameter names are self-explanatory (radius, center_x/y/z), providing some inherent clarity.

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 ('Create') and resource ('sphere primitive'), specifying it's non-parametric via TemporaryBRepManager. However, it doesn't explicitly differentiate from sibling tools like 'create_box' or 'create_cylinder' beyond the sphere shape, leaving some ambiguity about when to choose this specific primitive creation tool.

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 like 'create_box' or 'create_cylinder'. The description mentions 'non-parametric via TemporaryBRepManager', but doesn't explain what this means in practical usage or when this approach is preferred over parametric alternatives.

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

create_threadCreate ThreadA

Add threads to a cylindrical face (cosmetic or modeled)

NameRequiredDescriptionDefault
body_nameYes
face_indexYesIndex of the cylindrical face
is_modeledNoTrue = physical geometry, False = cosmetic
is_internalNoTrue for internal (nut) threads
thread_typeNoThread standard (e.g. 'ISO Metric profile', 'ANSI Unified Screw Threads')ISO Metric profile
thread_classNoThread class (e.g. '6g', '6H')6g
thread_lengthNoThread length in cm (only if is_full_length=false)
is_full_lengthNoThread entire cylinder length
thread_designationNoSize designation (e.g. 'M10x1.5')M10x1.5

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare this is a write operation (readOnlyHint=false), non-idempotent, and non-destructive. The description adds useful context about the two thread types (cosmetic vs modeled) which isn't captured in annotations, but doesn't provide additional behavioral details like permission requirements, side effects, or what happens if applied to non-cylindrical faces.

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, efficient sentence that communicates the essential purpose without unnecessary words. It's front-loaded with the core action and immediately qualifies the thread types, making it easy for an agent to parse quickly.

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

Completeness3/5

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

For a 9-parameter CAD modeling tool with no output schema, the description is minimally adequate. It covers the basic purpose but lacks information about return values, error conditions, or practical usage context. The high schema coverage helps, but more guidance would be beneficial given the tool's complexity.

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

Parameters3/5

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

With 89% schema description coverage, most parameters are well-documented in the schema itself. The description adds minimal semantic context beyond what's in the schema - it mentions 'cylindrical face' which relates to face_index, and 'cosmetic or modeled' which relates to is_modeled, but doesn't provide additional interpretation or usage examples for the 9 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 specific action ('Add threads') and target resource ('to a cylindrical face'), with explicit qualification of thread types ('cosmetic or modeled'). It distinguishes from sibling tools like 'create_hole' or 'chamfer' by focusing specifically on thread creation functionality.

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, nor does it mention prerequisites or constraints. While it specifies the target must be a cylindrical face, it doesn't explain how this differs from other face modification tools or when threads are appropriate versus other features.

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

create_torusCreate TorusB

Create a torus primitive (non-parametric via TemporaryBRepManager)

NameRequiredDescriptionDefault
axisNoz
center_xNo
center_yNo
center_zNo
major_radiusYesDistance from center to tube center
minor_radiusYesTube cross-section radius

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate this is a mutable (readOnlyHint: false), non-idempotent, non-destructive operation. The description adds that it creates a 'primitive' and uses 'TemporaryBRepManager', which suggests it might be a temporary or intermediate geometric representation, but doesn't clarify persistence, side effects, or error conditions. No contradiction with annotations exists.

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, efficient sentence that front-loads the core action ('Create a torus primitive') and adds technical context without redundancy. Every word serves a purpose, making it 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 complexity of a 3D modeling tool with 6 parameters, no output schema, and annotations covering basic safety, the description is minimal. It states what the tool does but lacks details on return values, error handling, or integration with sibling tools, leaving gaps for an AI agent to infer usage.

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 low (33%), with only 'major_radius' and 'minor_radius' described. The description adds no parameter details beyond what's in the schema, such as explaining 'axis' enum choices or default center values. With 6 parameters and poor schema coverage, the description fails to compensate adequately, resulting in a baseline 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 the action ('Create a torus primitive') and specifies the method ('non-parametric via TemporaryBRepManager'), which distinguishes it from potential parametric creation methods. However, it doesn't explicitly differentiate from sibling tools like 'create_box' or 'create_sphere' beyond the geometric shape.

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 'create_sphere' or 'create_cylinder', nor does it mention prerequisites, context, or exclusions. It lacks any usage context or comparison to sibling tools.

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

create_ucsCreate User Coordinate SystemA

Create a UCS at (x, y, z) with optional rotation (Fusion 2026+ UCS API, preview). A hidden reference sketch is created to anchor the UCS — do not delete it.

NameRequiredDescriptionDefault
xNoOrigin X (cm)
yNoOrigin Y (cm)
zNoOrigin Z (cm)
nameNoUCS name
angle_xNoRotation about X (degrees)
angle_yNoRotation about Y (degrees)
angle_zNoRotation about Z (degrees)

TDQS

A4/5.0
Behavior4/5

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

The description discloses a meaningful side effect beyond the annotations: a hidden reference sketch is created to anchor the UCS and should not be deleted. This is valuable behavioral context that the annotations do not convey. It does not contradict the provided 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 two sentences, front-loads the core action, and includes all essential caveats (API preview and hidden reference sketch). Every sentence earns its place with no redundancy.

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

Completeness4/5

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

Given the high schema coverage, the description provides enough context for an agent to invoke the tool correctly. It covers the action, coordinate inputs, optional rotation, API status, and an important side effect. It could be slightly more complete by stating what the tool returns, but the rest is sufficient.

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 input schema already documents all 7 parameters with full descriptions, default values, and units. The description adds minimal extra meaning by summarizing the (x, y, z) origin and optional rotation, so the baseline of 3 is appropriate.

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

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: 'Create a UCS at (x, y, z) with optional rotation.' It clearly identifies what the tool does and is unambiguous among the sibling tools, especially since no other sibling creates a coordinate system.

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 by explicitly naming UCS creation, and the 'Fusion 2026+ UCS API, preview' qualifier gives some context. However, it does not provide explicit when-to-use vs. alternative guidance or state exclusions, so the guidance is only implied.

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

delete_allDelete AllA
Destructive

Clear the design (delete all timeline items)

NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true, readOnlyHint=false, and idempotentHint=false. The description adds value by clarifying the scope ('all timeline items') and the action ('Clear'), which aligns with annotations and provides context on what gets destroyed. No contradiction exists.

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, efficient sentence that front-loads the core action ('Clear the design') and specifies the target ('delete all timeline items') without any redundant information. Every word serves a 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?

Given the tool's destructive nature, annotations cover safety (destructiveHint=true), and the description adds scope. However, with no output schema, it lacks details on return values or confirmation messages, leaving a minor gap in completeness for such a high-impact operation.

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

Parameters4/5

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

With 0 parameters and 100% schema description coverage, the baseline is 4. The description confirms no inputs are needed by specifying the action applies to 'all timeline items', adding clarity beyond the empty schema.

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

Purpose5/5

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

The description clearly states the verb ('Clear'/'delete') and resource ('design'/'timeline items'), specifying the scope as 'all timeline items'. It distinguishes from siblings like 'delete_parameter' by targeting the entire design rather than a specific parameter.

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 when clearing all timeline items is needed, but does not explicitly state when to use this tool versus alternatives (e.g., 'delete_parameter' for specific deletions) or provide exclusions. It offers basic context without detailed guidance.

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

delete_parameterDelete ParameterB
Destructive

Remove a user parameter

NameRequiredDescriptionDefault
nameYesParameter name

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already indicate destructiveHint=true, readOnlyHint=false, and idempotentHint=false, covering key behavioral traits. The description adds minimal context beyond this, as 'Remove' aligns with destructive but doesn't elaborate on effects (e.g., irreversible deletion, impact on dependent features) or permissions needed. No contradiction with annotations exists.

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, direct sentence with zero wasted words, making it highly efficient and front-loaded. Every word contributes to understanding the tool's purpose without unnecessary elaboration.

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 destructive nature (per annotations) and lack of output schema, the description is minimally complete but lacks depth. It doesn't explain what happens post-deletion (e.g., error if parameter doesn't exist, return value) or dependencies, though annotations cover safety aspects. For a simple deletion tool, this is adequate but not comprehensive.

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 100% with one parameter ('name') clearly documented. The description doesn't add any meaning beyond the schema, such as format examples or constraints (e.g., case sensitivity). With high schema coverage, a baseline score of 3 is appropriate as the schema handles parameter documentation adequately.

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 'Remove a user parameter' clearly states the action (remove) and resource (user parameter), making the tool's purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'delete_all' (which might delete all parameters) or 'set_parameter' (which modifies rather than removes), missing 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 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. It doesn't mention prerequisites (e.g., parameter must exist), exclusions (e.g., cannot delete system parameters), or compare to siblings like 'delete_all' or 'set_parameter', leaving usage context unclear.

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

draft_facesDraft / Taper FacesB

Add a draft angle to faces of a body (for mold release / injection molding)

NameRequiredDescriptionDefault
angleYesDraft angle in degrees
body_nameYes
face_selectionNoWhich faces to draftvertical
is_tangent_chainNoInclude tangent-connected faces
pull_direction_planeNoPlane defining the pull directionxy

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate this is a non-read-only, non-idempotent, non-destructive operation, which the description doesn't contradict. The description adds context about the purpose (mold release/injection molding) but doesn't disclose additional behavioral traits like whether the operation is reversible, has specific failure modes, or affects related geometry beyond the selected faces.

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 that is front-loaded with the core action and purpose, with no wasted words. Efficiently conveys the tool's function in a compact form appropriate for its complexity.

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

Completeness3/5

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

For a geometric modeling tool with 5 parameters, no output schema, and annotations covering basic safety, the description is minimally adequate. It states the purpose but lacks details on geometric constraints, error conditions, or output expectations, leaving gaps for an AI agent to infer behavior.

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 80% schema description coverage, the schema already documents parameters well (e.g., 'angle' as draft angle in degrees, 'face_selection' options). The description adds no parameter-specific semantics beyond implying 'faces' are targeted, aligning with the baseline for high schema coverage without extra value.

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

Purpose4/5

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

The description clearly states the action ('Add a draft angle') and target resource ('faces of a body'), with specific context ('for mold release / injection molding'). It distinguishes from siblings like 'chamfer' or 'fillet' by focusing on draft/taper functionality, though it doesn't explicitly compare to similar tools like 'offset_faces'.

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 'offset_faces' or 'chamfer' for similar geometric modifications. The description mentions the application context (mold release/injection molding) but doesn't provide explicit usage scenarios, prerequisites, or exclusions.

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

draw_arcDraw ArcB

Draw an arc in the most recent sketch (center + start point + sweep angle)

NameRequiredDescriptionDefault
start_xYes
start_yYes
start_zNoIgnored: sketch curves lie in the sketch plane. Leave at 0 and use create_sketch(z_offset=...) to move the plane itself.
center_xYes
center_yYes
center_zNoIgnored: sketch curves lie in the sketch plane. Leave at 0 and use create_sketch(z_offset=...) to move the plane itself.
sweep_angleYesSweep angle in degrees (positive = CCW)

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the safety profile is known; the description correctly does not contradict them. It adds the important behavioral detail that the arc is written into the most recent sketch rather than a newly created one, which matters for side effects. It does not cover what happens when no sketch exists, whether repeated calls stack arcs, or what the tool returns.

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

Conciseness4/5

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

A single front-loaded sentence with the action first and the required inputs in a compact parenthetical; nothing is redundant. It is arguably over-compressed for a 7-parameter mutation tool, but every word carries meaning and there is no filler.

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

Completeness3/5

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

For a non-idempotent geometry mutation with 7 parameters and no output schema, the description covers the essential shape of the call (center, start, sweep) but omits coordinate units, the prerequisite sketch state, and failure behavior. Because the schema already documents sweep_angle degrees/CCW and the ignored z parameters, the remaining gap is moderate rather than severe.

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 only 43%, and the undocumented parameters are the coordinate values (center_x/center_y, start_x/start_y) plus start_z/center_z. The description maps these to 'center' and 'start point', giving conceptual meaning and showing that center, start, and sweep fully define the arc. It adds no units for the coordinates and no plane semantics beyond what the schema's z-parameter notes already state, so it only partially compensates for the coverage gap.

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

Purpose4/5

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

States a specific verb and resource ('Draw an arc') and enumerates the geometric inputs (center + start point + sweep angle), which cleanly separates it from draw_line, draw_circle, and draw_rectangle. It also names the target container, 'the most recent sketch', so an agent knows where the geometry lands. It does not explicitly distinguish itself from a spline or polygon tool, but the arc-specific construction 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?

'In the most recent sketch' implies the prerequisite that a sketch must already exist and that this is a sketch-edit operation, but the guidance is implicit rather than stated. There is no instruction to call create_sketch first, no statement that an already-active sketch cannot be targeted, and no mention of alternatives or when-not-to-use. The agent must infer the workflow ordering from other tools.

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

draw_circleDraw CircleB

Draw a circle in the most recent sketch

NameRequiredDescriptionDefault
radiusYes
center_xNo
center_yNo
center_zNoIgnored: sketch curves lie in the sketch plane. Leave at 0 and use create_sketch(z_offset=...) to move the plane itself.

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, so the mutate-but-non-destructive profile is covered. The description adds the useful fact that geometry lands in the implicit most-recent sketch, but says nothing about what happens when no sketch exists or about units of the radius.

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

Conciseness4/5

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

A single short sentence with zero filler, and the scope constraint is front-loaded where it matters. It is terse to the point of under-specification, but nothing is wasted or padded.

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 4-parameter geometry mutation with low schema coverage and no output schema, one sentence is thin: the coordinate frame, units, required preconditions (active sketch, create_sketch with z_offset to move the plane), and differentiation from draw_circles are all 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?

Schema description coverage is only 25%: center_z is well documented, but radius and center_x/center_y are bare. The description adds no meaning at all - no units, no indication that center_x/center_y are coordinates in the sketch plane - so it fails to compensate for the coverage gap.

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

Purpose4/5

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

The description states a specific verb and resource ("Draw a circle") plus a scoping constraint ("in the most recent sketch"), so an agent knows the target is the active sketch rather than an arbitrary one. It does not distinguish itself from near-siblings like draw_circles or draw_arc, which prevents a 5.

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

Usage Guidelines3/5

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

Implicit guidance: the phrase "most recent sketch" tells the agent a sketch must already exist and that the target is not selectable. It never states when to use this versus draw_circles (plural) or create_polygon, and gives no prerequisites or failure conditions.

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

draw_circlesDraw Circles (bulk)A

Add several equally spaced circles to the most recent sketch in a single solve. Fusion re-solves the sketch on every entity insert, so adding circles one per call is superlinear in the entity count; this defers the solve across all inserts and restores the previous state afterwards. Measured at 100 circles: 68 ms against 912 ms for the same inserts one at a time.

NameRequiredDescriptionDefault
axisNoDirection the row runs inx
countYes
radiusYes
spacingYesCentre-to-centre distance (cm)
center_xNo
center_yNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations only declare it is a non-idempotent, non-destructive write; the description adds real context — it targets the most recent sketch, defers the re-solve across all inserts, and restores prior state afterwards. 'Restores the previous state' is left ambiguous (undo state vs sketch state) and nothing is said about partial-failure rollback, which keeps it off a 5.

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

Conciseness4/5

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

Purpose is front-loaded in the first clause and the performance benchmark justifies its length rather than padding it. The middle clause on superlinear re-solve is somewhat technical but earns its place as the rationale for using the bulk variant.

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

Completeness3/5

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

For a 6-parameter geometry mutation with no output schema and thin schema coverage, the description is silent on the resulting geometry (where the row starts, how it is oriented relative to the requested centre) and on return values or error behavior. The performance rationale is strong, but an agent still cannot predict the produced layout from the text plus schema.

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 only 33%, so the description must carry parameter meaning — and it mentions no parameters at all. It never explains the row's origin (center_x/center_y), whether spacing is edge-to-edge or centre-to-centre, or how axis interacts with the layout, leaving half the parameters undocumented in both places.

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

Purpose5/5

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

States a specific verb and resource ('Add several equally spaced circles'), names the target ('the most recent sketch'), and the bulk scope cleanly separates it from the single-shot draw_circle sibling. An agent can tell what will be produced without opening the schema.

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

Usage Guidelines4/5

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

Implies the when-to-use rule clearly: use this instead of one call per circle when entity counts are high, backed by the 68 ms vs 912 ms comparison. It never explicitly names draw_circle as the alternative for a single circle, so the routing rule is inferable rather than stated.

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

draw_lineDraw LineC

Draw a line in the most recent sketch

NameRequiredDescriptionDefault
end_xYes
end_yYes
end_zNoIgnored: sketch curves lie in the sketch plane. Leave at 0 and use create_sketch(z_offset=...) to move the plane itself.
start_xYes
start_yYes
start_zNoIgnored: sketch curves lie in the sketch plane. Leave at 0 and use create_sketch(z_offset=...) to move the plane itself.

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the safety profile is covered. The description adds only the targeting rule (most recent sketch) and says nothing about the non-idempotent implication that repeated identical calls create duplicate lines, whether constraints are auto-added, or what happens on failure. Beyond the annotation set, it contributes very little behavioral context for a mutating tool.

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

Conciseness4/5

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

A single short sentence with zero filler and the target scope front-loaded. It is efficient, though the brevity is partly under-specification rather than disciplined compression.

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 6-parameter mutating geometry tool with no output schema and only 33% schema coverage, the description is too thin. An agent cannot learn from it what the coordinate system is, what the tool returns, or how errors (no sketch present) surface — all of which the description would need to carry given the absent output schema.

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 only 33%: start_z and end_z carry inline notes explaining they are ignored and that create_sketch(z_offset=...) should be used instead, but start_x, start_y, end_x, and end_y have no schema descriptions at all. The tool description does not compensate — it says nothing about coordinate units, origin, or that the coordinates are interpreted in the sketch plane, leaving the four required parameters semantically unexplained.

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

Purpose4/5

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

"Draw a line in the most recent sketch" names a specific verb (draw) and resource (line) plus the target container (most recent sketch), which is concrete enough to act on. It does not differentiate from adjacent curve-drawing siblings such as draw_arc, draw_spline, or draw_rectangle beyond the geometry type itself, so it stops short of a 5.

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

Usage Guidelines3/5

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

The phrase "in the most recent sketch" implicitly tells the agent the prerequisite context (a sketch must already exist and be the newest one) and implies that create_sketch should be called first. However, there is no explicit when-to-use statement, no named alternatives (draw_arc, draw_spline, draw_rectangle), and no stated behavior when no sketch exists.

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

draw_rectangleDraw RectangleB

Draw a rectangle in the most recent sketch

NameRequiredDescriptionDefault
widthYes
heightYes
origin_xNo
origin_yNo
origin_zNoIgnored: sketch curves lie in the sketch plane. Leave at 0 and use create_sketch(z_offset=...) to move the plane itself.

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare this is a non-idempotent, non-destructive write, so the safety profile is covered. The description adds one behavioral trait — geometry is placed in the most recent sketch rather than a new one — but omits what happens if no sketch exists, what units width/height use, and whether the rectangle is origin-anchored or centered.

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

Conciseness4/5

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

A single front-loaded sentence with no filler. It is efficient, though the terseness leaves purpose-critical details unstated rather than wasted.

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 five parameters, low schema coverage, a mutation annotation set, and no output schema, the description should carry more weight. It leaves unresolved the origin/centering semantics, units, failure behavior with no active sketch, and what the call returns.

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 only 20%: only origin_z is documented (as ignored), while width, height, origin_x, and origin_y carry no explanation. The description does not compensate by clarifying whether origin is a corner or center point, what units apply, or how width/height are measured — the most consequential ambiguity for a geometry call.

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

Purpose4/5

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

States a specific verb and resource (draw a rectangle) and scopes it to the most recent sketch, so an agent can distinguish it from create_sketch or draw_line. It stops short of explicitly contrasting with sibling drawing tools such as create_polygon or draw_circle.

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 'in the most recent sketch' implies a precondition (an active/existing sketch) but gives no explicit when-to-use guidance, no alternative recommendations, and no statement about what to do when no sketch exists. Usage must be inferred.

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

draw_splineDraw SplineA

Draw a spline in the most recent sketch. Use fit_points for a curve through points, or control_points for a control-polygon spline.

NameRequiredDescriptionDefault
degreeNoSpline degree (only for control_points, 3 or 5)
pointsYesArray of [x,y] or [x,y,z] points. Ignored: sketch curves lie in the sketch plane. Leave at 0 and use create_sketch(z_offset=...) to move the plane itself.
spline_typeYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false and destructiveHint=false, so the mutation profile is known. The description adds the useful scoping fact that geometry lands in the most recent sketch, but it does not disclose the consequence of non-idempotency (repeated calls stack duplicate splines) or what happens when no sketch exists.

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

Conciseness5/5

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

Two short sentences, front-loaded with what the tool does and followed immediately by the decision rule for spline_type. There is no redundant restatement of the title or padded phrasing.

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 three-parameter drawing primitive with annotations covering the safety profile and a schema covering most parameters, the description is adequate. It still leaves the sketch-precondition and error behavior implicit, which matters for an agent operating on a CAD document model.

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 documents degree and points thoroughly (67% coverage), and spline_type carries no schema description, so the description's explanation of 'curve through points' versus 'control-polygon spline' fills the one real semantic gap. It adds nothing about points or degree, but those are already well covered in 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?

States a specific verb and resource ('Draw a spline') plus its target scope ('in the most recent sketch'), and disambiguates the two spline modes (fit_points vs control_points). It is easy to separate from drawing siblings like draw_arc or draw_line, though it never explicitly contrasts with 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?

Gives clear context for use: it draws in the most recent sketch, and it tells the agent which spline_type to pick depending on whether the points should be interpolated or used as a control polygon. It lacks explicit when-not guidance and does not state the prerequisite that a sketch must already exist and be active.

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

execute_codeExecute CodeA
Destructive

Run arbitrary Python in Fusion 360. The last expression's value is returned (REPL-style). Pre-defined names: app, ui, design, component, adsk, math.

NameRequiredDescriptionDefault
codeYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false and idempotentHint=false, so the safety profile is covered. The description adds genuinely new behavior: REPL-style return of the last expression and the pre-defined names (app, ui, design, component, adsk, math) available in scope. It stops short of mentioning error handling, timeouts, or whether document state persists between calls.

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

Conciseness5/5

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

Three short sentences, front-loaded with the core action, then return semantics, then available globals. No filler; every sentence adds information an agent needs.

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

Completeness4/5

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

With no output schema, the description correctly explains the return value (last expression, REPL-style), and it discloses the injected globals. For a one-parameter tool this is nearly complete, though a note on failure behavior or execution scope would close the remaining gap.

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?

There is a single required 'code' parameter with 0% schema description coverage, so the description must carry the load. It partially compensates by enumerating the pre-defined names the code can reference, which is real semantic value, but it never states the expected format, size limits, or that the code runs in the active document context.

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

Purpose5/5

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

States a specific verb and resource ('Run arbitrary Python in Fusion 360') and implicitly positions itself as the general-purpose escape hatch distinct from the many narrow modeling siblings like extrude or fillet. An agent can immediately tell this is not a specialized geometry tool.

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

Usage Guidelines3/5

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

Usage is only implied: 'arbitrary Python' suggests a fallback when no dedicated tool fits, but the description never says when to prefer a sibling tool (e.g. use extrude instead of scripting an extrusion) or when this is inappropriate. No exclusions or prerequisites are given.

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

exportExport (unified)A

Unified export wrapper — dispatches to export_stl / export_step / export_f3d based on format or file extension. Format is auto-detected from file_path extension if not specified. STL and STEP require body_name; F3D exports the whole design.

NameRequiredDescriptionDefault
formatNoOutput format. Inferred from file_path extension if omitted.
body_nameNoBody to export (required for stl/step)
file_pathNoDestination path (default: ~/Desktop/<name>.<ext>)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare non-read-only, non-idempotent, non-destructive, which aligns with an export operation. The description adds useful behavioral details: auto-detection of format from file extension, and the conditional requirement for body_name. This goes beyond annotations without contradicting them.

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 that front-load the main purpose and include all critical routing and requirement information. No fluff, 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 wrapper with 3 parameters and no output schema, the description covers the essential behavior: what it does, how it routes, and key constraints. It doesn't mention error handling or return values, but that's not required for a simple export tool. The default path is in the schema, so that's covered.

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

Parameters4/5

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

Schema coverage is 100%, so all parameters are already documented. The description adds value by clarifying the body_name condition ('F3D exports the whole design') and reiterating the auto-detection logic. It doesn't fully compensate for any gaps, but it enhances understanding 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 it's a unified export wrapper that dispatches to specific export tools (export_stl, export_step, export_f3d) based on format or extension. It names the exact resources and behavior, distinguishing it from siblings. The verb 'dispatches' is specific and the scope is well-defined.

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 routing logic (format or extension) and explicitly states the requirement for body_name for STL/STEP and that F3D exports the whole design. This gives clear when-to-use context and parameter conditions. It doesn't explicitly contrast with the specific export tools, but the wrapper concept implies it can be used interchangeably, which is sufficient.

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

export_f3dExport F3DA

Export the design as a native Fusion 360 archive (.f3d)

NameRequiredDescriptionDefault
file_pathNoDestination path (default: ~/Desktop/<design_name>.f3d)

TDQS

A3.5/5.0
Behavior3/5

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

Annotations indicate this is a non-read-only, non-idempotent, non-destructive operation. The description adds that it exports to a specific file format (.f3d), which is useful context beyond annotations. However, it doesn't mention potential side effects like file system changes or authentication 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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and format.

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 tool with one parameter (fully documented in schema), no output schema, and annotations covering key behavioral hints, the description is minimally adequate. It explains what the tool does but lacks details on usage context or output behavior.

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 100%, with the single parameter 'file_path' fully documented in the schema. The description doesn't add any additional parameter details beyond what the schema provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the specific action ('Export') and the resource ('the design'), specifying the output format ('native Fusion 360 archive (.f3d)'). It distinguishes from sibling tools like 'export_step' and 'export_stl' by specifying the .f3d format.

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 'export_step' or 'export_stl' is provided. The description states what it does but not when it's appropriate or what prerequisites might be needed.

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

export_stepExport STEPB

Export a body or component as a STEP file

NameRequiredDescriptionDefault
body_nameYes
file_pathNoDestination path (default: ~/Desktop/<name>.step)

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate this is a non-read-only, non-idempotent, non-destructive operation, which the description aligns with by implying a file creation action. However, the description adds minimal behavioral context beyond this—it doesn't specify if the export overwrites existing files, requires specific permissions, or has rate limits, leaving gaps in understanding 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 a single, clear sentence with no wasted words, making it easy to parse and understand quickly. It's front-loaded with the core action and resource, which is ideal for efficient comprehension.

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 moderate complexity (2 parameters, no output schema) and annotations covering basic safety, the description is minimally adequate. It states the purpose but lacks details on usage, behavioral nuances, or parameter specifics, making it incomplete for fully informed tool selection and 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 50%, with 'file_path' documented but 'body_name' lacking a description. The tool description mentions 'a body or component' which clarifies the semantics of 'body_name' slightly, but it doesn't provide details on format, constraints, or examples. This adds some value but doesn't fully compensate for the schema's 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 action ('Export') and the target resource ('a body or component as a STEP file'), making the purpose immediately understandable. It distinguishes itself from other export tools like 'export_f3d' and 'export_stl' by specifying the STEP format, though it doesn't explicitly contrast with those siblings.

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

Usage 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 'export_f3d' or 'export_stl', nor does it mention prerequisites or context for exporting STEP files. It simply states what the tool does without indicating appropriate scenarios or exclusions.

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

export_stlExport STLB

Export a named body as an STL file

NameRequiredDescriptionDefault
body_nameYes
file_pathNoDestination path (default: ~/Desktop/<name>.stl)

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate this is a non-read-only, non-idempotent, non-destructive operation, but the description adds value by specifying the action (export to STL) and implying file creation. However, it does not disclose additional behavioral traits like error handling, file overwriting, or performance considerations, leaving gaps beyond the annotations.

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

Conciseness5/5

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

The description is a single, direct sentence with no wasted words, clearly front-loaded with the core action. It efficiently conveys the essential information without unnecessary elaboration.

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 moderate complexity (export operation with 2 parameters), lack of output schema, and annotations covering basic safety, the description is minimally adequate. It states what the tool does but lacks details on output format, error cases, or integration with sibling tools, leaving room for improvement in completeness.

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 50%, with 'file_path' documented but 'body_name' lacking a description. The description mentions 'a named body', which adds some context for 'body_name', but does not fully compensate for the missing schema details or explain parameter interactions, aligning with the baseline for partial coverage.

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 'Export' and the resource 'a named body as an STL file', making the purpose specific and understandable. However, it does not explicitly differentiate from sibling export tools like 'export_f3d' or 'export_step', which would require mentioning format distinctions or use cases.

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 such as 'export_f3d' or 'export_step', nor does it mention prerequisites like needing an existing body. It lacks explicit context for selection among export or other sibling tools.

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

export_view_sheetExport View SheetA

Render canonical orthographic + isometric views as PNGs and emit a self-contained HTML sheet suitable for sharing with a mechanical engineer. Opens in any browser; Print -> Save as PDF for a static artifact. Restores the viewport camera after rendering.

NameRequiredDescriptionDefault
notesNoFree-form notes rendered below the views. Newlines preserved; HTML is escaped.
titleNoHeading shown on the sheet (default: document name).
viewsNoOrdered list of views to render (default: iso, front, top, right).
image_sizeNo[width, height] in pixels (default [1200, 900]).
output_dirNoDestination folder (default: ~/Desktop/<doc>_views_<timestamp>).

TDQS

A4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, so the write nature is partly covered there. The description adds genuinely new context beyond annotations: the artifacts produced (PNGs + self-contained HTML), that it opens in any browser, and the notable side effect that it 'Restores the viewport camera after rendering' — an important state-restoration disclosure.

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 tight sentences with the core output front-loaded, followed by consumption instructions and the side-effect note. No filler, and the most decision-relevant information (what is produced and how it is shared) comes first.

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

Completeness4/5

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

With no output schema, the description does carry the burden of describing returns and does so well (PNGs plus a self-contained HTML artifact, browser-viewable, PDF-convertible). The viewport-camera restoration side effect is also covered, leaving only minor gaps such as naming/location of produced files, which the output_dir default in the schema partly addresses.

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 100%, so every parameter (notes, title, views, image_size, output_dir) is already documented with defaults and semantics. The description only alludes to 'canonical orthographic + isometric views' and adds no syntax or format detail beyond the schema, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb pair ('Render ... and emit') with the exact resource: orthographic + isometric views as PNGs plus a self-contained HTML sheet. This is clearly distinguishable from siblings like render_view (single render) and export_stl/export_step (single-format geometry exports) without opening any schema.

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

Usage Guidelines3/5

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

The description gives context ('suitable for sharing with a mechanical engineer', 'Print -> Save as PDF') which implies the sharing/documentation use case, but never says when to choose this over render_view, export_stl, or export_step, and offers no exclusions or prerequisites.

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

extend_curveExtend CurveA

Extend a sketch curve to the nearest intersection. The end nearest to the given point is extended.

NameRequiredDescriptionDefault
point_xYesX near the end to extend
point_yYesY near the end to extend
curve_indexYesIndex of the curve to extend
sketch_nameNo

TDQS

A3.7/5.0
Behavior3/5

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

Annotations indicate this is a non-readOnly, non-idempotent, non-destructive operation, which the description aligns with by implying mutation ('extend') without contradiction. However, it adds minimal behavioral context beyond annotations—no details on error conditions, rate limits, or what happens if no intersection exists—leaving gaps in understanding the tool's full 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 highly concise and front-loaded, using two clear sentences with zero wasted words. Every phrase ('extend a sketch curve', 'to the nearest intersection', 'The end nearest to the given point') directly contributes to understanding the tool's function efficiently.

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 moderate complexity (mutation without annotations covering all behaviors) and lack of output schema, the description is adequate but incomplete. It explains the core operation but omits details like return values, error handling, or interaction with other sketch tools, leaving the agent to infer some aspects from context.

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

Parameters4/5

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

With 75% schema description coverage, the schema documents three parameters well, but 'sketch_name' lacks a description. The description adds value by explaining the purpose of 'point_x' and 'point_y' ('near the end to extend') and implying 'curve_index' selects the target, though it doesn't fully compensate for the missing 'sketch_name' documentation, keeping it from 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 clearly states the specific action ('extend'), target resource ('a sketch curve'), and precise behavior ('to the nearest intersection') with the end selection logic ('The end nearest to the given point is extended'). It distinguishes from siblings like 'trim_curve' or 'offset_curve' by focusing on extension rather than cutting or offsetting.

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 'trim_curve' or 'offset_curve', nor does it mention prerequisites such as needing an existing sketch or intersecting geometry. It lacks explicit context for tool selection among the many sibling CAD operations.

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

extrudeExtrudeC

Extrude a sketch profile

NameRequiredDescriptionDefault
heightYes
directionNopositive
operationNonew_body
profile_indexNo

TDQS

C2.4/5.0
Behavior2/5

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

Annotations indicate the tool is not read-only, idempotent, or destructive, but the description adds minimal behavioral context. It does not explain what extrusion entails (e.g., creating new geometry, modifying existing bodies based on the 'operation' parameter), potential side effects, or performance considerations. While not contradicting annotations, the description fails to provide meaningful behavioral insights beyond the basic action.

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

Conciseness5/5

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

The description is extremely concise—a single phrase—with no wasted words. It is front-loaded and efficiently states the core action, though this brevity contributes to gaps in other dimensions. Every word earns its place by directly addressing the tool's function.

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 (4 parameters, including enums for 'operation' and 'direction'), lack of output schema, and minimal annotations, the description is incomplete. It does not cover parameter meanings, expected outcomes, or integration with sibling tools, leaving significant gaps for an agent to understand and use the tool effectively in a 3D modeling 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?

With 0% schema description coverage, the input schema lacks parameter explanations, and the description does not compensate by detailing any parameters. It mentions 'sketch profile' but does not clarify how parameters like 'height', 'profile_index', 'operation', or 'direction' affect the extrusion process. This leaves key semantics undocumented, failing to add value beyond the bare schema.

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 'Extrude a sketch profile' clearly states the action (extrude) and target (sketch profile), providing a basic understanding of the tool's function. However, it lacks specificity about what extrusion does (e.g., creating 3D geometry from 2D profiles) and does not distinguish it from similar sibling tools like 'revolve', 'sweep', or 'loft', which also create 3D geometry from sketches. This makes the purpose somewhat vague in context.

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

Usage Guidelines1/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. It does not mention prerequisites (e.g., needing an existing sketch), compare it to sibling tools like 'revolve' or 'sweep' for different 3D modeling approaches, or specify scenarios where extrusion is preferred. This absence of usage context leaves the agent without direction on tool selection.

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

filletFillet EdgesB

Round edges of a body

NameRequiredDescriptionDefault
radiusYes
body_nameNoBody name (preferred)
body_indexNo
edge_selectionNoall

TDQS

B3/5.0
Behavior3/5

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

Annotations indicate this is a non-readOnly, non-idempotent, non-destructive operation, but the description adds minimal behavioral context. It implies a geometric modification ('round edges') without specifying permanence, side effects, or what happens to the original body. No contradiction with annotations exists, but the description doesn't enrich understanding beyond the basic action.

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

Conciseness5/5

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

The description is extremely concise with just four words, front-loading the core action. There's no wasted language, though this brevity contributes to gaps in other dimensions. Every word earns its place in conveying the basic 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?

For a 4-parameter tool with low schema coverage, no output schema, and annotations that only cover basic hints, the description is insufficient. It doesn't explain what 'round edges' means in practice, what the radius parameter does, how edge selection works, or what the tool returns. The context demands more detail for effective use.

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?

With only 25% schema description coverage (only 'body_name' has a description), the description doesn't compensate for the undocumented parameters. It mentions 'edges' generally but doesn't explain the 'edge_selection' enum options or clarify the relationship between 'body_name' and 'body_index'. The description adds little semantic value beyond what's implied by the tool name.

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 ('round edges') and target ('of a body'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'chamfer' (which also modifies edges) or 'shell' (which might involve rounding), so it doesn't fully distinguish from alternatives.

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 like 'chamfer' or other edge-modification tools. The description only states what the tool does, not when it's appropriate or what prerequisites might be needed for successful operation.

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

flat_patternFlat PatternB

Create a flat pattern from a sheet metal body

NameRequiredDescriptionDefault
body_nameYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate this is a non-read-only, non-idempotent, non-destructive operation, but the description does not add behavioral context beyond this. It mentions creating a flat pattern, which aligns with the annotations, but fails to disclose details like potential side effects, error conditions, or performance considerations, resulting in moderate 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, direct sentence that efficiently conveys the core action without unnecessary words. It is front-loaded and wastes no space, making it highly concise and well-structured for quick understanding.

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 (creating a flat pattern from sheet metal), lack of output schema, and minimal annotations, the description is somewhat incomplete. It does not explain the result format, potential errors, or dependencies, but it adequately states the basic purpose, meeting a minimum viable level for 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?

With 0% schema description coverage for the single parameter 'body_name', the description does not provide any additional semantic information about this parameter, such as what constitutes a valid body name or examples. However, since there is only one parameter, the baseline is set to 4, but the lack of compensation for the coverage gap reduces the score to 3.

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') and the resource ('flat pattern from a sheet metal body'), making the purpose understandable. However, it does not explicitly differentiate from sibling tools like 'unfold' or 'create_bend', which might have related sheet metal functions, leaving room for improvement in 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 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, such as 'unfold' or other sheet metal-related siblings. It lacks context on prerequisites, constraints, or specific scenarios for application, offering minimal usage direction.

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

get_bounding_boxGet Bounding BoxA
Read-onlyIdempotent

Axis-aligned bounding box for a body or component by name. Returns min, max, size, and center in cm (Fusion internal units). For components, unions bounding boxes of all contained bodies. Useful for measuring imported reference geometry.

NameRequiredDescriptionDefault
nameYesBody or component name

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds valuable behavioral details: the return of min, max, size, and center in cm (Fusion internal units), and the specific behavior for components (unions bounding boxes of all contained bodies). This goes beyond the annotations without contradicting them.

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 sentences with no redundancy. The first sentence front-loads the core purpose and return values, the second adds a key behavioral nuance, and the third gives a practical use case. Every sentence earns its place, and it is appropriately sized for the tool's simplicity.

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

Completeness5/5

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

Given the tool's low complexity (one parameter, no output schema), the description is complete: it explains what is returned, the units, component behavior, and a typical use case. Annotations cover safety, and the schema covers the parameter. Nothing critical is missing for 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?

The input schema has 100% coverage: the 'name' parameter is described as 'Body or component name'. The tool description reinforces that by saying 'by name' but does not add new semantic meaning beyond the schema. The component behavior is not parameter-specific, so the description adds no extra value to parameter understanding beyond what the schema already provides.

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 ('Axis-aligned bounding box') and resource ('body or component by name'), and lists the returned fields (min, max, size, center). It does not explicitly name a sibling tool for comparison, but the specific concept of a bounding box distinguishes it from other measurement tools like get_physical_properties or measure_distance. The purpose is unambiguous and not a tautology.

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

Usage Guidelines3/5

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

The description provides a usage context ('Useful for measuring imported reference geometry') but does not explicitly state when to use this tool over alternatives, nor does it mention exclusions or prerequisites. It implies a scenario but leaves the agent to infer selection criteria without direct guidance on sibling tools.

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

get_design_typeGet Design TypeA
Read-onlyIdempotent

Check if the design is in parametric or direct mode. Use this to detect accidental mode switches.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive, so safety is covered. The description adds genuinely new context: the two possible modes returned and the diagnostic purpose, which is more than the annotations convey.

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 with zero filler, and the core purpose is front-loaded ahead of the recommended use case.

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

Completeness4/5

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

With no output schema, the description does carry the burden of indicating the return value and it names the two modes (parametric/direct), which is sufficient for a zero-parameter read tool. Nothing needed to invoke it correctly is missing.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to clarify and the baseline of 4 applies. The description correctly implies the tool needs no input to resolve the mode.

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

Purpose4/5

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

The description states a specific check ('is the design in parametric or direct mode') with a clear verb and resource, which distinguishes it from the sibling set_design_type. It is slightly terse but unambiguous about what is being read.

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

Usage Guidelines3/5

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

It gives one concrete usage scenario ('detect accidental mode switches'), which implies when to call it, but never names set_design_type as the counterpart or states when not to call it. Usage is inferable rather than explicit.

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

get_object_infoGet Object InfoB
Read-onlyIdempotent

Get detailed info about a named body or sketch

NameRequiredDescriptionDefault
nameYesObject name

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe, repeatable read operation. The description adds minimal context beyond this, specifying it retrieves 'detailed info' but not elaborating on what that includes or any limitations. No contradiction with annotations exists.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and wastes no space, making it easy to parse quickly.

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, read-only, idempotent) and lack of an output schema, the description is minimally adequate. It specifies the resource types ('body or sketch') but doesn't detail the return format or potential errors. For a basic info-retrieval tool with good annotations, it meets the minimum viable threshold.

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 100%, with the single parameter 'name' documented as 'Object name'. The description adds no additional meaning beyond this, such as format examples or constraints. With high schema coverage, the baseline score of 3 is appropriate as the schema handles parameter documentation adequately.

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 ('Get detailed info') and resource ('about a named body or sketch'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_parameters', 'get_physical_properties', or 'get_scene_info', which also retrieve information but about different resources.

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. It doesn't mention prerequisites, such as needing an existing object name, or compare it to siblings like 'get_physical_properties' for different types of object details. Usage is implied only by the tool name and description.

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

get_parametersGet ParametersB
Read-onlyIdempotent

List all user parameters in the design

NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe, repeatable read operation. The description adds minimal behavioral context beyond this, as it does not specify output format, pagination, or error handling. No contradiction with annotations is present.

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, clear sentence that efficiently conveys the core purpose without any wasted words. It is front-loaded and appropriately sized for a simple tool.

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 low complexity (0 parameters, no output schema) and rich annotations, the description is minimally complete. However, it could benefit from more context, such as explaining the return format or linking to related tools, to better assist an agent in usage.

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 has 0 parameters with 100% coverage, so no parameter documentation is needed. The description does not add parameter details, which is acceptable in this case, as the baseline for 0 parameters is 4, indicating adequate handling.

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 ('List') and resource ('user parameters in the design'), making the purpose specific and understandable. However, it does not explicitly differentiate from sibling tools like 'get_object_info' or 'get_scene_info', which might also retrieve information, so it lacks 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 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. It does not mention any context, prerequisites, or exclusions, such as when to prefer 'get_parameter' (if it existed) or other info-retrieval tools in the list.

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

get_physical_propertiesGet Physical PropertiesB
Read-onlyIdempotent

Get mass, volume, surface area, center of mass, and density of a body

NameRequiredDescriptionDefault
accuracyNomedium
body_nameYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already indicate this is a read-only, idempotent, non-destructive operation, so the agent knows it's safe. The description adds value by specifying the exact properties returned, but doesn't disclose behavioral traits like performance implications of the 'accuracy' parameter, potential errors for invalid bodies, or if it works on all body types.

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, efficient sentence that front-loads the key information (what properties are retrieved). There's no wasted text, making it easy to parse quickly.

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 read-only tool with annotations covering safety, the description adequately states what it returns. However, without an output schema, it doesn't detail the return format (e.g., units, structure), and the lack of parameter explanations leaves gaps in understanding how to use it effectively.

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?

With 0% schema description coverage, the description doesn't explain either parameter. It mentions 'body' but not the 'body_name' parameter specifically, and omits the 'accuracy' parameter entirely, failing to compensate for the schema's lack of descriptions.

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 ('Get') and the specific properties returned (mass, volume, surface area, center of mass, density) for a body, making the purpose explicit. However, it doesn't distinguish this tool from potential measurement-related siblings like 'measure_distance' or 'measure_angle', which slightly limits 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?

No guidance is provided on when to use this tool versus alternatives. For example, it doesn't mention if this is for physical bodies only, how it relates to 'get_object_info' or 'measure_distance', or any prerequisites like needing a body to exist first.

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

get_scene_infoGet Scene InfoB
Read-onlyIdempotent

Get design name, bodies, sketches, features, camera info

NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate read-only, idempotent, and non-destructive behavior, so the description does not need to repeat these. However, it adds value by specifying the types of scene information retrieved (e.g., design name, camera info), which provides useful context beyond the annotations. No contradictions with annotations are present.

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

Conciseness5/5

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

The description is a single, efficient phrase that lists all retrieved information without any redundant words. It is front-loaded and every word contributes directly to understanding the tool's purpose, making it highly concise and well-structured.

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 0 parameters, rich annotations (read-only, idempotent, non-destructive), and no output schema, the description adequately covers what information is retrieved. However, it lacks details on the format or structure of the returned data, which could be helpful for an agent to interpret results, leaving room for improvement.

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 parameters and 100% schema description coverage, the schema fully documents the lack of inputs. The description does not need to cover parameters, and it appropriately focuses on the output information, earning a baseline score of 4 for not introducing unnecessary parameter details.

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 ('Get') and the specific information retrieved ('design name, bodies, sketches, features, camera info'), making the purpose evident. However, it does not explicitly differentiate from sibling tools like 'get_object_info' or 'get_parameters', which limits the score to 4 instead of 5.

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 such as 'get_object_info' or 'get_parameters', nor does it mention any prerequisites or context for usage. It merely lists what information is retrieved without indicating appropriate scenarios.

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

import_meshImport MeshA

Import a mesh file (STL, OBJ, or 3MF) as a mesh body. Returns the mesh name and bounding box. Use for reference geometry (e.g. exported SketchUp model).

NameRequiredDescriptionDefault
unitsNoSource mesh units (default: mm)mm
file_pathYesAbsolute path to mesh file (.stl/.obj/.3mf)
component_nameNoTarget component name (omit for root component)

TDQS

A4/5.0
Behavior3/5

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

Annotations indicate this is not read-only, not idempotent, and not destructive, and the description adds that it creates a mesh body and returns the mesh name and bounding box. It does not disclose further side effects such as whether repeated imports create duplicates or how invalid files are handled, so it meets but does not exceed expectations.

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 with no filler. The first sentence states the action, formats, result, and return value; the second provides usage context. Every clause earns its place.

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

Completeness4/5

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

The description covers the essential return value and primary use case, which is important because there is no output schema. It could be more complete by noting potential error conditions or component scoping, but those are not critical for a simple import tool and the schema covers the parameters.

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 100%, so all three parameters are already documented in the input schema. The description adds supported file formats ('STL, OBJ, or 3MF') and the ultimate use of the mesh, but it does not add significant parameter-level meaning 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 states a specific verb and resource: 'Import a mesh file (STL, OBJ, or 3MF) as a mesh body.' It also states the output (mesh name and bounding box) and a clear use case (reference geometry), which differentiates it from sibling import/export and geometry-creation 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?

The description gives a concrete when-to-use signal: 'Use for reference geometry (e.g. exported SketchUp model).' It does not explicitly name alternatives or when-not-to-use cases, but for a straightforward import tool the stated use case is sufficient to guide selection.

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

list_componentsList ComponentsB
Read-onlyIdempotent

List all components in the design

NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds minimal context by implying it lists 'all' components, but does not disclose details like pagination, sorting, or return format. It does not contradict annotations, so it earns a baseline score for adding some value beyond the structured data.

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, efficient sentence with no wasted words. It is front-loaded with the core action and resource, making it easy to parse and understand quickly.

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 (0 parameters, annotations covering safety), the description is adequate but incomplete. It lacks output details (no schema provided) and does not specify scope or limitations, such as whether it returns a flat list or structured data, leaving gaps for the agent.

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

Parameters4/5

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

With 0 parameters and 100% schema description coverage, the schema fully documents the input (none required). The description does not need to add parameter details, and it correctly implies no filtering or arguments, earning a high baseline score for clarity in a parameter-less tool.

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 ('List') and resource ('components in the design'), making the purpose specific and understandable. However, it does not differentiate from sibling tools like 'get_object_info' or 'get_scene_info', which might also retrieve component-related data, so it lacks explicit distinction.

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. It does not mention any context, prerequisites, or exclusions, such as whether it lists all components globally or in a specific scope, leaving the agent with no usage direction.

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

loftLoftB

Loft between two or more sketch profiles

NameRequiredDescriptionDefault
operationNonew_body
profile_sketch_namesYesOrdered list of sketch names whose first profile will be lofted

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate this is a non-readOnly, non-idempotent, non-destructive operation, which the description doesn't contradict. The description adds minimal behavioral context beyond annotations—it mentions 'lofting' profiles but doesn't explain what lofting entails (e.g., creating a smooth transition surface), potential side effects, or error conditions. With annotations covering basic safety, a 3 is appropriate as the description adds some value but limited behavioral insight.

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, efficient sentence with zero wasted words. It's front-loaded with the core action and resources, making it easy to parse quickly. Every word earns its place by conveying essential information without 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?

Given the tool has 2 parameters with partial schema coverage, no output schema, and annotations covering basic behavioral hints, the description is minimally adequate. It states the purpose but lacks details on usage context, parameter effects, or expected outcomes. For a modeling operation with multiple 'operation' options, more guidance would be helpful, but annotations provide some safety 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 50% (one of two parameters has a description). The description mentions 'two or more sketch profiles', which aligns with the 'profile_sketch_names' parameter's purpose but doesn't add details beyond the schema's minItems constraint. It doesn't explain the 'operation' parameter's semantics or how choices affect the loft result. Baseline 3 is correct as the schema does partial work and the description adds minimal compensation.

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

Purpose4/5

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

The description clearly states the action ('loft') and the target resources ('two or more sketch profiles'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate this from sibling tools like 'sweep' or 'ruled_surface' which might also create surfaces from profiles, leaving some ambiguity about when to choose loft over those alternatives.

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 'sweep' or 'extrude', nor does it mention prerequisites (e.g., needing existing sketches) or context for choosing between the 'operation' options. It simply states what the tool does without usage context.

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

measure_angleMeasure AngleB
Read-onlyIdempotent

Measure angle between two entities

NameRequiredDescriptionDefault
entity_oneYesFirst entity name (face, edge)
entity_twoYesSecond entity name

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, indicating a safe, repeatable operation. The description adds no behavioral context beyond this, such as what 'entities' refer to (faces, edges), how angles are calculated, or any limitations. It doesn't contradict annotations, but offers minimal additional insight.

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, direct sentence with zero wasted words, making it highly efficient and easy to parse. It front-loads the core purpose without unnecessary elaboration.

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 low complexity (2 parameters, no output schema) and rich annotations covering safety and idempotency, the description is minimally adequate. However, it lacks details on entity types, measurement units, or error conditions, which could aid an agent in 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 100%, with clear descriptions for both parameters ('First entity name (face, edge)' and 'Second entity name'). The description adds no extra meaning beyond the schema, such as entity selection rules or angle calculation specifics. Baseline 3 is appropriate given the schema's thoroughness.

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 purpose with a specific verb ('measure') and resource ('angle between two entities'), making it immediately understandable. However, it doesn't differentiate from sibling tools like 'measure_distance', which serves a similar measurement function but for distance rather than angle.

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. It doesn't mention sibling tools like 'measure_distance' for different measurement types or specify contexts where angle measurement is appropriate, leaving usage decisions ambiguous.

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

measure_distanceMeasure DistanceB
Read-onlyIdempotent

Measure minimum distance between two entities

NameRequiredDescriptionDefault
entity_oneYesFirst entity name (body, sketch, or point 'x,y,z')
entity_twoYesSecond entity name or point

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, indicating this is a safe, repeatable read operation. The description adds minimal behavioral context beyond this, specifying 'minimum distance' but not detailing output format, units, or error conditions. It doesn't contradict annotations, but adds limited value.

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, efficient sentence that directly states the tool's function without unnecessary words. It's front-loaded with the core purpose and contains zero redundant information, making it easy for an agent to parse quickly.

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

Completeness3/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 (distance measurement between entities), the description is minimally adequate. Annotations cover safety and idempotency, and the schema fully documents parameters. However, without an output schema, the description doesn't explain return values (e.g., numeric distance, units), leaving a gap for the agent to infer or test.

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 100%, with both parameters clearly documented as entity names or points. The description adds no additional parameter semantics beyond what the schema provides, such as examples of valid entities or distance calculation specifics. Baseline 3 is appropriate given the comprehensive 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 the tool's purpose: 'Measure minimum distance between two entities'. It specifies the verb ('measure'), resource ('distance'), and scope ('minimum', 'between two entities'). However, it doesn't explicitly differentiate from sibling tools like 'measure_angle' or 'check_interference', which also involve measurement or spatial analysis.

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. It doesn't mention sibling tools like 'measure_angle' for angular measurements or 'check_interference' for collision detection, nor does it specify prerequisites or typical use cases. The agent must infer usage from the tool name alone.

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

mirrorMirror BodyB

Mirror a body across a construction plane

NameRequiredDescriptionDefault
body_nameNo
body_indexNo
mirror_planeYes

TDQS

B3/5.0
Behavior3/5

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

Annotations indicate this is a non-read-only, non-idempotent, non-destructive operation, but the description adds minimal behavioral context. It implies a geometric transformation but doesn't specify if it creates a new body, modifies the original, or details side effects like requiring specific plane setups. The description doesn't contradict annotations, but offers limited value beyond them.

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, direct sentence with no wasted words, making it highly concise and front-loaded. It efficiently communicates the core action without unnecessary elaboration, though this brevity contributes to gaps in other dimensions.

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 3-parameter tool with no output schema and 0% schema coverage, the description is insufficient. It lacks details on parameter meanings, behavioral outcomes (e.g., what the tool returns or how it affects the scene), and doesn't leverage annotations to fill gaps, making it incomplete for effective agent use.

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?

With 0% schema description coverage for 3 parameters, the description fails to compensate by explaining 'mirror_plane', 'body_name', or 'body_index'. It mentions 'construction plane' but doesn't clarify how it relates to the enum values (xy, yz, xz) or the other parameters, leaving semantics largely undocumented.

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

Purpose4/5

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

The description clearly states the action ('mirror') and the resource ('a body across a construction plane'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'scale_body' or 'move_body' which also transform bodies, leaving room for ambiguity in tool selection.

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, such as 'scale_body' for resizing or 'move_body' for translation. It lacks context about prerequisites (e.g., needing an existing body) or exclusions, leaving the agent to infer usage from the tool name alone.

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

move_bodyMove BodyB

Translate a named body by (x, y, z)

NameRequiredDescriptionDefault
xNo
yNo
zNo
body_nameYes

TDQS

B3/5.0
Behavior3/5

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

Annotations indicate this is a non-read-only, non-idempotent, non-destructive operation, but the description adds no behavioral context beyond 'Translate' (e.g., whether it moves relative to current position or to absolute coordinates, if it affects constraints, or what happens on failure). No contradiction with annotations exists, but minimal value is added.

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, efficient sentence with no wasted words. It's front-loaded with the core action and parameters, making it easy to parse quickly. Every word contributes directly to understanding the tool's function.

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 complexity (a mutation tool with 4 parameters), lack of output schema, and 0% schema coverage, the description is insufficient. It doesn't explain return values, error conditions, or practical usage context (e.g., in a CAD environment). The annotations help but don't fully compensate for these gaps.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions parameters (x, y, z) but provides no semantics (e.g., units, coordinate system, or that 'body_name' identifies the target). This leaves key details undocumented, failing to adequately supplement the bare schema.

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

Purpose4/5

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

The description clearly states the action ('Translate') and the resource ('a named body') with specific parameters (x, y, z). It distinguishes from siblings like 'scale_body' or 'mirror' by focusing on translation, but doesn't explicitly differentiate from tools that might also move bodies indirectly (e.g., 'create_component' could involve positioning).

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. It doesn't mention prerequisites (e.g., the body must exist), exclusions (e.g., not for rotating), or related tools (e.g., 'scale_body' for resizing). The agent must infer usage from the name and context alone.

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

new_documentNew DocumentA

Create a new design document and make it active. Every other tool needs an active design, and Fusion sits at the data tab with none after a fresh launch, so this is the way in from a cold start. The document is created through the API on purpose: documents created in the Fusion UI are Part Design documents, which reject addNewComponent, so components and joints are impossible in them.

NameRequiredDescriptionDefault
nameNoOptional document name.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations only say readOnly=false, idempotent=false, destructive=false. The description adds real behavioral context beyond that: the call mutates global state by activating the new document, and it explains the deliberate API-vs-UI path because UI-created documents are Part Design documents that reject addNewComponent. It does not say what happens to a previously active document or whether repeated calls stack up new documents, which is the main residual gap.

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

Conciseness5/5

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

Three short sentences, front-loaded with the action, then the usage condition, then the design rationale. No sentence is filler; even the API-vs-UI note earns its place by warning about a downstream failure mode.

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

Completeness4/5

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

No output schema exists and the description does not say what comes back (document name, handle, or success flag), nor how it interacts with an already-active design. Otherwise it is complete for a stateful entry-point tool, covering purpose, precondition, and the rationale that affects downstream capability.

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 100% for the single optional "name" parameter, and the description never mentions it, so it adds no naming, defaulting, or collision behavior (e.g. what happens when the name already exists). Baseline 3 applies because the schema fully documents the parameter.

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

Purpose5/5

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

"Create a new design document and make it active" is a precise verb+resource+scope statement. It is clearly distinguishable from every sibling (no other tool creates documents), and it explicitly frames itself as the prerequisite entry point for the rest of the toolset.

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 states the exact trigger condition: Fusion sits at the data tab with no active design after a fresh launch, and every other tool requires an active design. That is an explicit when-to-use rule with a stated dependency, leaving nothing to inference.

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

offset_curveOffset CurveB

Offset connected sketch curves by a distance. Direction is determined by the direction_point.

NameRequiredDescriptionDefault
curve_indexYesIndex of a curve in the connected loop
direction_xNoX of direction point
direction_yNoY of direction point
sketch_nameNoSketch name (default: most recent)
offset_distanceYesOffset distance (cm)

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate this is a mutable (readOnlyHint: false), non-idempotent, and non-destructive operation. The description adds that it offsets 'connected sketch curves', implying it works on 2D sketch geometry within a loop, which provides useful context beyond annotations. However, it lacks details on side effects (e.g., how it modifies the sketch), error conditions, or performance considerations, limiting its 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, efficient sentence that front-loads the core action ('offset connected sketch curves') and adds a key detail ('direction is determined by the direction_point'). There is no wasted verbiage or redundancy, making it highly concise and well-structured for quick understanding.

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 moderate complexity (5 parameters, no output schema), the description is adequate but incomplete. It covers the basic purpose and direction mechanism, but lacks information on return values, error handling, or interaction with other sketch tools. With annotations providing safety cues, it meets minimum viability but could be more comprehensive for a geometric 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 100%, so parameters are well-documented in the schema. The description adds minimal value by mentioning 'direction_point' (implied by direction_x and direction_y parameters) and that curves are 'connected', but doesn't clarify semantics like what 'curve_index' refers to in a loop or how 'sketch_name' defaults work. This meets the baseline for high schema coverage.

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 ('offset') and target ('connected sketch curves'), with a specific mechanism ('direction is determined by the direction_point'). It distinguishes from siblings like 'offset_faces' (which operates on faces) and 'extend_curve' (which extends rather than offsets). However, it doesn't explicitly differentiate from all similar tools (e.g., 'draw_spline' for creating curves), keeping it from a perfect score.

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. It doesn't mention prerequisites (e.g., needing an existing sketch), exclusions (e.g., not for 3D geometry), or direct comparisons to siblings like 'offset_faces' or 'draw_spline'. This leaves the agent to infer usage from context alone.

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

offset_facesOffset FacesB

Push/pull faces of a body by a distance

NameRequiredDescriptionDefault
distanceYesOffset distance in cm (positive = outward)
body_nameYes
face_indicesNoSpecific face indices (overrides face_selection)
face_selectionNoWhich faces to offsettop

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate this is a non-read-only, non-idempotent, and non-destructive operation, but the description adds minimal behavioral context. It implies geometric modification without specifying effects on adjacent faces or constraints, offering some value beyond annotations but not detailed behavioral traits.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It is front-loaded and wastes no space, making it easy to parse quickly.

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 lack of an output schema and moderate parameter coverage, the description is minimally complete but lacks details on return values or error conditions. It provides enough to infer basic usage but falls short of fully informing an agent about outcomes or edge 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?

With 75% schema description coverage, the schema documents parameters well, including details like 'distance' direction and 'face_selection' options. The description adds no additional parameter semantics, so it meets the baseline for adequate coverage without enhancing understanding.

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 ('push/pull') and target ('faces of a body'), making the purpose understandable. However, it does not differentiate from sibling tools like 'extrude' or 'shell' which also modify geometry, leaving room for ambiguity in tool selection.

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 'extrude' or 'shell', nor does it mention prerequisites or exclusions. The description lacks context for appropriate application, relying solely on the tool name and parameters.

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

patch_surfacePatch SurfaceB

Create a patch surface from boundary edges

NameRequiredDescriptionDefault
continuityNoconnected
sketch_nameYesSketch with boundary curves
profile_indexNo

TDQS

B3/5.0
Behavior3/5

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

Annotations indicate this is a non-read-only, non-idempotent, non-destructive operation, but the description adds no behavioral context beyond that. It doesn't explain what 'patch surface' means in terms of output (e.g., a new surface entity), potential side effects, or error conditions, so it relies heavily on annotations without enhancing understanding.

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, direct sentence with no wasted words, making it easy to parse and front-loaded with the core purpose. It's appropriately sized for the tool's complexity.

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

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 (creating a geometric surface), lack of output schema, and low schema coverage, the description is insufficient. It doesn't explain the result (e.g., what a 'patch surface' is), usage constraints, or how it fits with other modeling operations, leaving significant gaps for an agent to understand and invoke it 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 low at 33%, with only 'sketch_name' documented. The description mentions 'boundary edges' but doesn't clarify how parameters like 'profile_index' or 'continuity' relate to creating the patch, leaving key semantics unexplained and failing to compensate for the schema's 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 action ('create a patch surface') and the resource ('from boundary edges'), which is specific and actionable. However, it doesn't explicitly differentiate from sibling tools like 'loft', 'sweep', or 'ruled_surface', which might also create surfaces from curves, so it misses 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 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. It doesn't mention prerequisites (e.g., needing a sketch with closed boundary curves) or compare to other surface-creation tools in the sibling list, leaving the agent to guess based on context alone.

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

pingPingA
Read-onlyIdempotent

Health check — returns immediately without touching Fusion API

NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety and idempotency. The description adds valuable behavioral context beyond annotations by specifying that it 'returns immediately' (performance characteristic) and 'without touching Fusion API' (scope limitation), though it doesn't mention response format or error behavior.

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

Conciseness5/5

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

The description is extremely concise (one short sentence) yet fully informative. Every word earns its place: 'Health check' establishes purpose, 'returns immediately' describes behavior, and 'without touching Fusion API' provides critical context. No wasted words or redundancy.

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

Completeness4/5

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

Given the tool's simplicity (0 parameters, no output schema), the description is nearly complete. It covers purpose, usage context, and behavioral constraints. The only minor gap is lack of explicit mention of what the health check actually verifies or what format the return takes, but for such a simple tool, this is acceptable.

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 parameters and 100% schema description coverage, the baseline is 4. The description appropriately doesn't discuss parameters since none exist, and it doesn't need to compensate for any schema gaps. It correctly focuses on the tool's behavior rather than 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 clearly states the tool's purpose with specific verbs ('health check', 'returns immediately') and distinguishes it from all sibling tools, which are CAD/design operations. It explicitly notes it doesn't touch the Fusion API, making its scope distinct from other tools that perform actual design operations.

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 guidance on when to use this tool: for health checking when you need immediate feedback without affecting the Fusion API. It implicitly suggests alternatives (other tools) for actual design operations, and the context of sibling tools reinforces this distinction.

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

project_geometryProject GeometryB

Project edges or bodies onto the active sketch plane

NameRequiredDescriptionDefault
is_linkedNoTrue = parametrically linked to source geometry
sketch_nameNoTarget sketch (default: most recent)
source_nameYesName of body or edge to project

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate this is a non-read-only, non-idempotent, non-destructive operation, but the description adds minimal behavioral context. It mentions 'projecting' which implies a transformation, but doesn't detail effects like whether it creates new sketch entities or modifies existing ones. No contradictions with annotations exist.

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, efficient sentence that front-loads the core action without unnecessary words. It directly states what the tool does, making it easy to parse and understand quickly.

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 no output schema and annotations cover basic safety (non-destructive), the description is minimally adequate. However, for a CAD operation with potential complexity (e.g., effects on sketches, error conditions), it could benefit from more context on outcomes or usage scenarios to be 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?

With 100% schema description coverage, the input schema fully documents parameters like 'source_name' and 'is_linked'. The description doesn't add extra meaning beyond implying projection involves a source and target, which is already inferred from parameter names. Baseline score of 3 is appropriate as the schema carries the load.

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') and the target ('edges or bodies onto the active sketch plane'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'offset_curve' or 'create_sketch', which might have overlapping contexts in CAD operations.

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. For example, it doesn't specify if this is for converting 3D geometry to 2D sketches or how it relates to tools like 'create_sketch' or 'offset_curve'. The description lacks context on prerequisites or exclusions.

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

rectangular_patternRectangular PatternB

Pattern a body in rows and columns

NameRequiredDescriptionDefault
x_countNo
y_countNo
body_nameYes
x_spacingNoSpacing between columns (cm)
y_spacingNoSpacing between rows (cm)

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate this is a mutable (readOnlyHint=false), non-idempotent, non-destructive operation. The description adds that it patterns 'a body', implying it operates on existing geometry rather than creating new bodies from scratch. However, it lacks details on what 'pattern' entails (e.g., creates copies, maintains associations) or behavioral traits like error conditions or performance implications.

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?

Extremely concise with a single, front-loaded sentence: 'Pattern a body in rows and columns'. Every word contributes directly to the tool's purpose without any fluff 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 5-parameter mutation tool with no output schema and moderate schema coverage (40%), the description is minimal. It covers the core action but lacks details on inputs, outputs, error handling, or dependencies. Annotations help by clarifying mutability and safety, but more context would aid agent decision-making.

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 40% (only x_spacing and y_spacing have descriptions). The description mentions 'rows and columns', which aligns with y_count/rows and x_count/columns parameters, adding semantic context. However, it doesn't explain 'body_name' (the target) or default behaviors, leaving gaps despite partial compensation.

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

Purpose4/5

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

The description clearly states the verb ('pattern') and resource ('a body'), specifying it's done 'in rows and columns'. It distinguishes from sibling 'circular_pattern' by implying rectangular vs. circular arrangement, but doesn't explicitly differentiate from other patterning or creation tools like 'mirror' or 'create_component'.

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 'circular_pattern', 'mirror', or array creation methods. It doesn't mention prerequisites (e.g., needing an existing body) or exclusions, leaving the agent to infer usage from context alone.

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

rename_bodyRename BodyA
Idempotent

Rename a body (searches root and all components)

NameRequiredDescriptionDefault
new_nameYesNew name for the body
body_nameYesCurrent body name

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description usefully adds that the search spans root and all components, which is real behavioral context, but it says nothing about what happens on a name collision or if the body is not found.

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

Conciseness5/5

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

A single front-loaded sentence that states the action and the scoping caveat with no wasted words. Ideal size for a two-parameter 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 simple rename tool with full parameter documentation and annotations covering safety and idempotency, the description is nearly complete. The only gaps are error/edge-case behavior (missing body, duplicate names), which are minor and predictable.

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 100% with only two self-explanatory string parameters, so the schema already carries the parameter meaning. The description adds no syntax, format, or uniqueness constraints beyond what the schema provides; baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Rename a body') and adds the search scope, which is enough to distinguish it from siblings like move_body, scale_body, and split_body that also act on bodies. An agent can select this tool without opening the schema.

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

Usage Guidelines3/5

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

Usage is implied by the name and description — rename a body when you want to change its name — but there is no explicit when-to-use, no prerequisites, and no mention of alternatives. Nothing is misleading, but nothing is guiding either.

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

render_viewRender ViewportA
Read-onlyIdempotent

Capture the active viewport as a PNG so you can visually verify the model. Pass a canonical view (iso/front/top/etc.) to reposition the camera first, or 'current' to keep it as is. Returns base64-encoded image bytes alongside metadata; the MCP server delivers it as an image content block.

NameRequiredDescriptionDefault
fitNoCall Viewport.fit() before capture
viewNoCamera preset; 'current' preserves the existing viewcurrent
widthNo
heightNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely useful context beyond that: it discloses the return payload (base64 bytes plus metadata) and that the MCP server surfaces it as an image content block, plus the camera-repositioning side effect of the view parameter.

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 tight sentences: capability, then the key parameter decision, then the return contract. Front-loaded and zero 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?

No output schema exists, and the description steps in to describe the return value and delivery mechanism, which is exactly what is needed. Annotations cover the safety envelope. Only minor gap is that per-parameter detail for width/height is left implicit.

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 50%: 'fit' and 'view' are documented in the schema, and the description reinforces 'view' semantics ('current' preserves vs canonical reposition). Width and height carry no description in either place, though their min/max bounds make them self-evident. Adds meaning for one parameter but does not fully compensate for the gap.

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

Purpose5/5

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

States a specific verb (Capture), resource (active viewport), output format (PNG), and purpose (visually verify the model). This clearly distinguishes it from siblings like export_view_sheet or export_stl, which produce different artifacts.

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

Usage Guidelines4/5

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

Explains the choice condition between passing a canonical view to reposition versus 'current' to keep it as is, and frames the overall use case (visual verification). It does not name an explicit alternative sibling, so it falls short of a 5.

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

revolveRevolveA

Revolve the most recent sketch's profile about an axis. axis_origin and axis_direction are model space (cm). The axis must be coplanar with the profile: a world-aligned direction through the model origin uses Fusion's own construction axis, anything else becomes a construction line in the sketch, and an axis leaving the sketch plane is refused with AXIS_OUT_OF_PLANE. The result reports axis_model_start/axis_model_end.

NameRequiredDescriptionDefault
angleYes
operationNonew_body
axis_origin_xNoAxis origin X, model space (cm)
axis_origin_yNoAxis origin Y, model space (cm)
axis_origin_zNoAxis origin Z, model space (cm). Must be the profile's own plane height; an offset along the plane normal is dropped and reported.
profile_indexNoIndex of the profile in the most recent sketch
axis_direction_xNoAxis direction X, model space (normalised)
axis_direction_yNoAxis direction Y, model space (normalised)
axis_direction_zNoAxis direction Z, model space (normalised)

TDQS

A4/5.0
Behavior4/5

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

Annotations only say it is a non-idempotent, non-destructive write; the description goes well beyond that by disclosing a real side effect (a non-world-aligned axis becomes a construction line in the sketch), an explicit failure mode (AXIS_OUT_OF_PLANE), the special casing for world-aligned axes through the model origin, and the fact that the result reports axis_model_start/axis_model_end. It does not explain how the operation modes (join/cut/intersect) affect existing bodies, which is the one behavioral gap left.

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?

Four sentences, front-loaded with purpose, then the axis contract, the edge-case behavior, and the return fields. The middle sentence is long and chains three conditional behaviors together, which costs a little readability, but no sentence is filler.

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

Completeness4/5

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

For a 9-parameter mutation tool with no output schema, the description covers the geometry contract, the failure mode, and the returned axis endpoints well enough to call the tool confidently. What remains thin is the semantics of the operation enum and whether the source sketch is modified or consumed.

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?

At 78% schema coverage the baseline would be 3, but the description both restates the unit contract ('axis_origin and axis_direction are model space (cm)') and adds rules absent from the schema: the axis must be coplanar with the profile, world-aligned directions resolve to Fusion's construction axis, and off-plane axes are rejected. This is genuine meaning beyond the field-level descriptions.

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

Purpose4/5

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

The description opens with a specific verb and resource: 'Revolve the most recent sketch's profile about an axis.' That immediately separates it from the other sketch-consuming siblings (extrude, sweep, loft) and pins down which input geometry is consumed. It stops short of explicitly naming an alternative for the cases where revolve is wrong, so a 5 is not warranted.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: the tool operates on 'the most recent sketch's profile', which tells the agent a sketch must already exist, and the coplanarity rule tells it which axes are legal. There is no explicit when-to-use/when-not guidance relative to extrude, sweep or loft, and nothing about prerequisites such as a closed profile.

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

ruled_surfaceRuled SurfaceB

Create a ruled surface from an edge or sketch curve

NameRequiredDescriptionDefault
distanceNoRuled surface distance (cm)
body_nameYes
rule_typeNonormal
edge_indexYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations indicate this is a non-readOnly, non-idempotent, non-destructive operation, implying it creates new geometry without deleting existing data. The description adds context by specifying the source ('edge or sketch curve'), but does not disclose further behavioral traits like error conditions, performance, or output format, relying on annotations for basic safety.

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, direct sentence with no wasted words, efficiently stating the tool's purpose. It is front-loaded and appropriately sized for the complexity, earning full marks 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?

Given the tool's complexity (creating geometry with 4 parameters), lack of output schema, and low schema coverage, the description is insufficient. It does not explain the result (e.g., type of surface created), error handling, or practical usage scenarios, leaving significant gaps for an AI agent.

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

Parameters3/5

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

Schema description coverage is low at 25%, with only the 'distance' parameter documented. The description mentions 'edge or sketch curve', which loosely relates to 'body_name' and 'edge_index', but does not clarify parameter meanings, formats, or interactions beyond the schema, resulting in minimal added value.

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

Purpose4/5

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

The description clearly states the action ('Create a ruled surface') and the resource ('from an edge or sketch curve'), providing a specific verb+resource combination. However, it does not distinguish this tool from sibling tools like 'loft', 'sweep', or 'extrude' that also create surfaces, missing explicit 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 offers no guidance on when to use this tool versus alternatives, such as for generating surfaces along curves compared to other surface creation methods. It lacks context on prerequisites, exclusions, or named alternatives, leaving usage unclear.

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

scale_bodyScale BodyB

Scale a body uniformly or non-uniformly

NameRequiredDescriptionDefault
scaleYesUniform scale factor
scale_xNoX scale (overrides uniform scale)
scale_yNoY scale
scale_zNoZ scale
anchor_xNoScale anchor point X
anchor_yNoScale anchor point Y
anchor_zNoScale anchor point Z
body_nameYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already indicate this is a mutable operation (readOnlyHint=false), non-idempotent, and non-destructive. The description adds that scaling can be uniform or non-uniform, which provides useful context beyond annotations. However, it doesn't mention important behavioral aspects like coordinate system implications, effect on constraints/parameters, or error conditions.

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

Conciseness5/5

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

The description is a single, efficient sentence that communicates the core functionality without any wasted words. It's appropriately sized for a transformation operation with good schema documentation.

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 geometric transformation tool with 8 parameters, no output schema, and moderate annotation coverage, the description is adequate but minimal. It covers the scaling modes but lacks information about coordinate systems, effect on geometry properties, or typical use cases that would help an agent understand when and how to apply this transformation correctly.

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 88% schema description coverage, the schema already documents most parameters well. The description adds the concept of uniform vs. non-uniform scaling, which helps interpret the scale vs. scale_x/y/z parameters, but doesn't provide additional syntax, format, or interaction details beyond what's in the schema descriptions.

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 ('Scale') and resource ('a body'), specifying both uniform and non-uniform scaling modes. It distinguishes from sibling tools like 'move_body' or 'mirror' by focusing on scaling transformations, though it doesn't explicitly differentiate from similar transformation 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 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. The description doesn't mention prerequisites, when scaling is appropriate versus other transformations, or how it relates to sibling tools like 'move_body' or transformation patterns.

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

set_appearanceSet AppearanceB
Idempotent

Assign a material appearance to a body, face, or component from the Fusion appearance library

NameRequiredDescriptionDefault
face_indexNoFace index (if target_type=face)
target_nameYesName of body or component
target_typeNobody
appearance_nameYesLibrary appearance name (e.g. 'Steel - Satin', 'Aluminum - Anodized Red')

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate this is a non-destructive, idempotent mutation tool. The description adds value by specifying the source ('Fusion appearance library') and providing examples of appearance names, which helps contextualize the operation. However, it doesn't disclose additional behavioral traits like permission requirements, error conditions, 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 a single, well-structured sentence that efficiently conveys the tool's purpose without redundancy. It front-loads the key action and target, making it 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 mutation tool with no output schema, the description is moderately complete. It covers the what and where but lacks details on outcomes, error handling, or integration with sibling tools. Given the annotations provide safety context, it's adequate but leaves gaps in operational guidance.

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 75% schema description coverage, the baseline is 3. The description adds minimal semantics by mentioning 'library appearance name' and giving examples, but it doesn't explain parameter interactions (e.g., face_index only used with target_type=face) or provide context beyond what the schema already covers.

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 ('Assign a material appearance') and the target ('to a body, face, or component'), with specific reference to the 'Fusion appearance library'. It distinguishes from siblings by focusing on appearance assignment rather than geometric operations or other functions, though it doesn't explicitly name alternatives.

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

Usage 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. It doesn't mention prerequisites, context (e.g., after creating geometry), or exclusions, leaving the agent to infer usage based on the tool name and parameters alone.

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

set_colorSet Body ColorA
Idempotent

Assign a flat RGB color to a body (creates/reuses a design-local appearance). Useful for visually distinguishing parts before render_view.

NameRequiredDescriptionDefault
redYes
blueYes
greenYes
opacityNo1.0 = opaque, 0.0 = invisible
body_nameYesBody name

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate this is a mutating, idempotent, non-destructive operation. The description adds valuable behavior beyond that by explaining that it creates or reuses a design-local appearance, which clarifies the side effect on the model and that this is not a global material change.

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. The core action is front-loaded, and the parenthetical adds meaningful behavioral context without bloating the text.

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

Completeness4/5

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

For a simple setter tool with no output schema, the description covers the purpose, the scoping of the appearance, and the intended rendering relationship. It does not explain the return value or mention opacity in prose, but the schema supplies the latter and the operation is simple enough that the absence is not critical.

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 only 40%, the description partially compensates by explaining the high-level meaning of 'RGB color' and 'body', and by adding the design-local nuance. However, it does not mention the optional opacity parameter or the RGB channel ranges, although the schema does provide ranges and an opacity description.

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

Purpose4/5

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

The description opens with a specific verb and resource: 'Assign a flat RGB color to a body', which clearly identifies the operation. It also adds useful scoping ('design-local appearance') and a mention of rendering, but it does not explicitly distinguish itself from the closely related sibling set_appearance.

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 phrase 'Useful for visually distinguishing parts before render_view' gives a clear intended use case and temporal context. It does not explicitly state when not to use this tool or mention alternatives such as set_appearance, so it stops short of full exclusionary guidance.

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

set_design_typeSet Design TypeA
Idempotent

Switch design type between 'parametric' and 'direct'. Use 'parametric' to recover from accidental direct-mode switches (equivalent to Capture Design History in the UI).

NameRequiredDescriptionDefault
design_typeYesTarget design type

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare non-destructive, idempotent write semantics, so the bar is lower. The description adds the useful UI equivalence and recovery framing, but omits what actually happens to existing features/history when the mode flips, which is the main behavioral concern for this 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 sentences, zero waste, with the mode values front-loaded ahead of the recovery guidance. Every clause 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?

Adequate for a single required parameter with a fully covered schema and annotations, but for a state-changing mode switch the description never states the consequence of switching modes or points to get_design_type for inspection, leaving a meaningful gap.

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 100% with an enum and a 'Target design type' description, so the schema already carries the parameter. The description adds meaning to the 'parametric' value only, leaving 'direct' undefined, which matches the baseline 3 for high-coverage schemas.

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

Purpose5/5

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

States a specific verb (switch) and resource (design type), enumerating the two valid target values. It is instantly distinguishable from the sibling get_design_type since one reads and one writes the mode.

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

Usage Guidelines4/5

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

Gives a concrete when-to-use scenario for 'parametric' (recovering from accidental direct-mode switches) and maps it to the UI concept 'Capture Design History'. It stops short of saying when 'direct' is the right choice or explicitly naming get_design_type as the read counterpart.

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

set_joint_valueSet Joint ValueA

Drive a joint to a value and confirm Fusion kept it. Angles are in degrees unless units='rad'; slide values are lengths in cm and are never converted. Works on as-built joints unless as_built=False. Fusion resets joint values to zero on the next design.computeAll(), so avoid recomputing after this call - the command itself does not.

NameRequiredDescriptionDefault
unitsNoUnits for angle values only; slide values are always cm.deg
valueYesTarget value: degrees for rotations (or radians with units='rad'), centimetres for slide values.
as_builtNoSearch as-built joints (True) or regular joints (False).
joint_nameNoJoint to drive. Omit to use joint_index.
value_kindNoWhich value to drive on joints carrying more than one. Defaults to rotation (pitch for ball joints). Use primary_slide/secondary_slide for planar and pitch/yaw/roll for ball.
joint_indexNoIndex into the joint collection when joint_name is omitted.

TDQS

A3.9/5.0
Behavior4/5

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

Adds genuinely useful behavior beyond the annotations: the call verifies Fusion retained the value, and Fusion zeroes joint values on the next design.computeAll(), so recomputing must be avoided. That is a non-obvious side effect the readOnly/idempotent/destructive hints do not convey. It stops short of 5 because error behavior (out-of-range values, unknown joint name) and the shape of the confirmation are unstated.

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

Conciseness4/5

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

Front-loads the action and confirmation, then layers units, joint targeting, and the computeAll caveat in tight sentences. The trailing clause "- the command itself does not" is slightly ambiguous and could be trimmed or clarified.

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 six-parameter mutation with no output schema, the description covers the essential semantic traps: unit conventions, slide-is-always-cm, as-built default, and the recompute hazard. Missing failure modes and the form of the success confirmation keep it from full completeness.

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 100%, so every parameter is already documented, including the units enum, the cm-only slide rule, and as_built default. The description mostly restates those facts; the only marginal addition is the emphasis that slide values are never converted. Baseline 3 applies.

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

Purpose4/5

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

States a concrete verb and resource plus an outcome: "Drive a joint to a value and confirm Fusion kept it." That is clearly distinct from joint-creation siblings like add_joint or create_as_built_joint, but the description never names an alternative to route against, so it stops short of 5.

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

Usage Guidelines4/5

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

Gives real decision context: as-built joints are the default target unless as_built=False, and the agent is warned to avoid computeAll() after this call. It does not state when to prefer this over a different tool or what to do if the joint is missing, so no explicit exclusions.

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

set_parameterSet ParameterA
Idempotent

Update the value of an existing user parameter

NameRequiredDescriptionDefault
nameYesParameter name
valueYesNew numeric value, expressed in the unit the parameter already declares

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the mutation is safely characterized. The description adds the 'existing' constraint but does not disclose failure behavior, side effects, or what happens when the parameter does not exist.

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 action and object directly, earning its place with zero 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?

For a simple two-parameter, idempotent update with full schema coverage and no output schema, the description is nearly sufficient. It could have explicitly noted how missing parameters are handled, but the 'existing' wording covers the main prerequisite.

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 100% with clear descriptions for both `name` and `value`, including the unit semantics for `value`. The description adds only the broader 'existing' context, not meaningful per-parameter detail 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 states a specific verb ('Update'), a clear resource ('the value of an existing user parameter'), and the scope ('existing'), which distinguishes it from siblings like create_parameter, delete_parameter, and get_parameters. An agent can tell what this tool does without opening the schema.

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

Usage Guidelines3/5

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

The word 'existing' implies this is not for creating new parameters, and sibling names suggest alternatives, but the description never explicitly says when to use this tool versus create_parameter or get_parameters. Usage context is implied rather than stated.

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

shellShell BodyB

Hollow out a body by removing a face

NameRequiredDescriptionDefault
body_nameNo
thicknessYes
body_indexNo
face_selectionNotop

TDQS

B3/5.0
Behavior3/5

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

Annotations indicate this is a mutable (readOnlyHint: false), non-idempotent, non-destructive operation, but the description adds minimal context—it implies removal of material but doesn't specify if this creates a shell-like structure or leaves the body open. No rate limits, auth needs, or detailed behavioral traits are disclosed.

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

Conciseness5/5

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

The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action, making it easy to parse quickly.

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 4-parameter mutation tool with no output schema and low schema coverage, the description is inadequate. It lacks details on parameter usage, expected outcomes, error conditions, and how it fits within the CAD modeling context provided by siblings.

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?

With 0% schema description coverage for 4 parameters, the description fails to compensate. It mentions 'removing a face' which loosely relates to 'face_selection', but doesn't explain 'thickness', 'body_name', or 'body_index', leaving key inputs undocumented.

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

Purpose4/5

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

The description clearly states the action ('hollow out a body') and the method ('by removing a face'), which is specific and distinguishes it from siblings like 'extrude' or 'thicken_surface'. However, it doesn't explicitly differentiate from similar tools like 'split_body' or 'offset_faces' that might also involve body modification.

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. It doesn't mention prerequisites (e.g., needing a solid body), exclusions (e.g., not for surfaces), or compare to siblings like 'create_hole' or 'offset_faces' for hollowing operations.

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

split_bodySplit BodyB

Split a body using a plane or face

NameRequiredDescriptionDefault
body_nameYes
extend_toolNoExtend tool to cut through entire body
splitting_bodyNoName of a body/surface to use as splitting tool (overrides plane)
splitting_planeNoPlane to split with (or use splitting_body)xy

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate this is a mutable (readOnlyHint: false), non-idempotent, non-destructive operation. The description adds that it splits a body, implying geometric modification, but doesn't elaborate on behavioral traits like whether it creates new bodies, modifies the original, or has side effects. No contradiction with annotations, but minimal value beyond them.

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, efficient sentence with no wasted words. It's front-loaded with the core action and immediately specifies the splitting methods. Every word contributes directly to understanding the tool's function.

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 geometric operation with 4 parameters, no output schema, and annotations covering basic traits, the description is minimally adequate. It states the purpose but lacks details on usage context, output (e.g., what happens to split bodies), or error conditions. Completeness is borderline given the tool's complexity.

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

Parameters3/5

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

Schema description coverage is 75%, with clear descriptions for parameters like 'splitting_plane' and 'extend_tool'. The description mentions 'plane or face', hinting at 'splitting_body' usage, but doesn't add significant meaning beyond the schema. Baseline 3 is appropriate as the schema does most of the work.

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 ('Split') and the target ('a body'), and specifies the splitting methods ('using a plane or face'). It distinguishes from sibling 'split_face' by targeting bodies rather than faces. However, it doesn't explicitly differentiate from other geometric operations like 'boolean_operation' or 'trim_surface' that might also divide geometry.

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. It doesn't mention prerequisites (e.g., needing an existing body), exclusions, or compare to siblings like 'split_face' (for faces) or 'boolean_operation' (for other cuts). The description only states what it does, not when it's appropriate.

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

split_faceSplit FaceB

Split faces of a body using a plane

NameRequiredDescriptionDefault
body_nameYes
extend_toolNo
face_indicesNoIndices of faces to split (default: all faces)
splitting_planeNoxy

TDQS

B3.2/5.0
Behavior3/5

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

Annotations indicate this is a mutable (readOnlyHint: false), non-idempotent, and non-destructive operation. The description adds minimal behavioral context beyond this, mentioning the splitting action but not detailing effects like how faces are modified, whether the operation is reversible, or any performance considerations. No contradiction with annotations exists.

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, direct sentence with no wasted words, efficiently conveying the core action. It is appropriately sized for the tool's complexity and is front-loaded with essential information.

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 moderate complexity (4 parameters, low schema coverage, no output schema) and annotations that only cover basic hints, the description is insufficient. It lacks details on parameter meanings, expected outcomes, error conditions, or how it fits within the CAD modeling workflow, making it incomplete for effective agent use.

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 low (25%), with only 'face_indices' having a description. The tool description does not compensate by explaining parameters like 'body_name', 'splitting_plane', or 'extend_tool', leaving their semantics unclear beyond what the schema minimally provides (e.g., enums for 'splitting_plane').

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 ('split') and target resource ('faces of a body') with the method ('using a plane'), making the purpose understandable. However, it doesn't explicitly differentiate this from sibling tools like 'split_body' or 'offset_faces', which might involve similar geometric operations on CAD bodies.

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. The description lacks context about prerequisites (e.g., needing an existing body), exclusions, or comparisons to sibling tools like 'split_body' or 'offset_faces', leaving the agent to infer usage scenarios.

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

stitch_surfacesStitch SurfacesB

Stitch surface bodies into a single body

NameRequiredDescriptionDefault
toleranceNoStitch tolerance (cm)
body_namesYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate this is a non-read-only, non-idempotent, non-destructive operation, but the description adds minimal behavioral context. It implies a merging action but does not detail effects like geometry changes, error conditions, or output format. With annotations covering basic safety, the description adds limited value beyond them.

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, efficient sentence with no wasted words, clearly front-loading the core action. It is appropriately sized for the tool's complexity, making it easy to parse quickly.

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 moderate complexity (2 parameters, no output schema) and annotations covering basic behavior, the description is minimally adequate. It states the purpose but lacks details on usage, parameter nuances, or output expectations, leaving gaps in contextual understanding for effective agent use.

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 50%, with 'tolerance' documented but 'body_names' lacking a description. The description mentions 'surface bodies' and 'single body', hinting at the purpose of 'body_names', but does not clarify parameter semantics beyond what the schema partially provides. Baseline 3 is appropriate given the schema's partial coverage.

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 ('stitch') and resource ('surface bodies'), specifying the action and target. However, it does not differentiate from sibling tools like 'patch_surface' or 'thicken_surface', which also manipulate surfaces, leaving some ambiguity about when to choose this specific tool.

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. It lacks context about prerequisites (e.g., needing existing surface bodies), exclusions, or comparisons to siblings like 'patch_surface' or 'boolean_operation', leaving the agent without usage direction.

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

suppress_featureSuppress FeatureB

Suppress (disable) a feature in the timeline

NameRequiredDescriptionDefault
feature_nameYes

TDQS

B3/5.0
Behavior3/5

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

Annotations indicate this is a non-read-only, non-idempotent, non-destructive operation, but the description adds minimal behavioral context beyond 'disable'. It doesn't clarify what 'suppress' entails (e.g., temporary vs. permanent, visibility changes, or impact on dependencies), nor does it mention permissions, side effects, or error conditions. No contradiction with annotations exists.

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, efficient sentence that front-loads the core action and resource without unnecessary words. It earns its place by conveying the essential purpose clearly, making it highly concise and well-structured.

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 (a mutation operation with no output schema and low schema coverage), the description is inadequate. It lacks details on behavior, parameter usage, return values, or error handling, leaving significant gaps for an AI agent to understand how to invoke it correctly 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?

With 0% schema description coverage and one parameter ('feature_name'), the description provides no additional meaning about the parameter. It doesn't explain what constitutes a valid feature name, format expectations, or examples, leaving the schema to carry the full burden without compensation from the description.

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

Purpose4/5

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

The description clearly states the action ('suppress/disable') and resource ('a feature in the timeline'), making the purpose immediately understandable. It distinguishes from sibling 'unsuppress_feature' by specifying the opposite action, though it doesn't explicitly differentiate from other tools that might modify features.

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 'unsuppress_feature' or other modification tools. It lacks context about prerequisites, such as whether the feature must exist or be active, and doesn't mention any exclusions or typical scenarios for its application.

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

sweepSweepB

Sweep a sketch profile along a path (sketch curve)

NameRequiredDescriptionDefault
operationNonew_body
profile_indexYes
path_curve_indexNo
path_sketch_nameYesName of the sketch containing the sweep path

TDQS

B3/5.0
Behavior3/5

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

Annotations indicate this is a mutable, non-idempotent, non-destructive operation (readOnlyHint: false, idempotentHint: false, destructiveHint: false), which the description does not contradict. The description adds minimal behavioral context beyond annotations, as it only mentions the sweep action without detailing effects like geometry creation or potential errors. However, it does not provide additional insights into rate limits, authentication needs, or specific outcomes.

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, efficient sentence that directly states the tool's action without unnecessary words. It is front-loaded with the core functionality, making it easy to parse quickly. There is no wasted verbiage, adhering well to the principle of conciseness.

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 complexity of a 3D modeling operation with 4 parameters, low schema coverage, no output schema, and annotations that only cover basic hints, the description is insufficient. It lacks details on parameter meanings, expected outcomes, error conditions, or how it integrates with sibling tools. This leaves significant gaps for an agent to understand and invoke the tool effectively 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 low at 25%, with only one parameter ('path_sketch_name') having a description. The tool description does not compensate by explaining parameters like 'profile_index', 'path_curve_index', or the 'operation' enum values (e.g., 'new_body', 'join'). This leaves key inputs poorly documented, hindering the agent's ability to use them correctly without external knowledge.

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 ('sweep') and the resources involved ('a sketch profile along a path (sketch curve)'), making the purpose understandable. However, it does not explicitly differentiate this tool from sibling tools like 'extrude', 'revolve', or 'loft', which also create 3D geometry from sketches, leaving some ambiguity about when to choose sweep over those alternatives.

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, such as 'extrude' for linear paths or 'revolve' for circular ones. It also lacks information about prerequisites, like needing existing sketches, or exclusions, such as invalid path types. Without such context, the agent must infer usage from the tool name and parameters alone.

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

thicken_surfaceThicken SurfaceB

Thicken a surface body into a solid

NameRequiredDescriptionDefault
body_nameYes
directionNosymmetric
thicknessYesThickness (cm)

TDQS

B3.2/5.0
Behavior3/5

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

Annotations indicate this is a non-read-only, non-idempotent, non-destructive operation, which the description aligns with by implying a creation action ('into a solid'). However, the description adds minimal behavioral context beyond annotations—it doesn't specify if the operation modifies the original surface or creates a new body, or any error conditions like invalid inputs.

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, direct sentence with no wasted words, making it highly concise and front-loaded. It efficiently communicates the core action without unnecessary elaboration.

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 complexity of a 3D modeling operation with 3 parameters, low schema coverage (33%), no output schema, and annotations that only cover basic hints, the description is inadequate. It lacks details on input validation, output format, error handling, or how it integrates with sibling tools, leaving significant gaps for an AI agent.

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

Parameters3/5

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

Schema description coverage is 33% (only 'thickness' has a description), and the description does not compensate by explaining parameters like 'body_name' or 'direction'. It implies 'thickness' but doesn't add meaning beyond the schema's numeric constraint and unit. With low coverage, the description falls short of fully clarifying parameter roles.

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 ('Thicken') and the target ('a surface body into a solid'), making the purpose immediately understandable. However, it does not explicitly differentiate this tool from other modeling operations like 'extrude' or 'shell', which could also create solids from surfaces, leaving room for sibling confusion.

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 'extrude' or 'shell', nor does it mention prerequisites such as needing an existing surface body. It simply states what the tool does without contextual usage information.

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

trim_curveTrim CurveA

Trim a sketch curve at its intersections. The segment nearest to the given point is removed.

NameRequiredDescriptionDefault
point_xYesX near the segment to remove
point_yYesY near the segment to remove
curve_indexYesIndex of the curve to trim
sketch_nameNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations indicate this is a non-readonly, non-idempotent, non-destructive operation. The description adds valuable behavioral context by specifying that trimming occurs 'at its intersections' and removes 'the segment nearest to the given point', which clarifies how the tool behaves beyond the basic annotation information. However, it doesn't mention potential side effects like how the remaining curve segments are handled.

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 perfectly concise with two clear sentences that front-load the core action and then specify the selection logic. Every word earns its place with no redundancy or unnecessary elaboration, making it easy to parse quickly.

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 mutation tool with no output schema and moderate schema coverage, the description adequately explains the core operation but lacks information about return values, error conditions, or how the tool interacts with the broader sketching context. Given the annotations cover basic safety aspects, the description provides minimum viable context but could be more 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 75% schema description coverage, the schema already documents most parameters well. The description adds meaningful context by explaining that point_x and point_y define 'the given point' used to determine 'the segment nearest to remove', which provides semantic understanding beyond the schema's technical descriptions. However, it doesn't address the undocumented 'sketch_name' parameter.

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

Purpose5/5

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

The description clearly states the specific action ('Trim a sketch curve at its intersections') and the outcome ('The segment nearest to the given point is removed'), distinguishing it from sibling tools like 'extend_curve' or 'offset_curve' that modify curves differently. It uses precise technical language that identifies both the resource (sketch curve) and the operation (trim at intersections).

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 'extend_curve', 'offset_curve', or 'trim_surface', nor does it mention prerequisites such as needing an existing sketch with curves. It simply describes what the tool does without contextual usage information.

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

trim_surfaceTrim SurfaceB

Trim a surface body with another body

NameRequiredDescriptionDefault
body_nameYesSurface body to trim
tool_nameYesTrimming tool body

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate this is a non-read-only, non-idempotent, non-destructive operation, but the description adds minimal behavioral context. It clarifies that trimming involves two bodies (one as target, one as tool), which isn't covered by annotations. However, it lacks details on effects (e.g., whether the tool body is consumed, if the operation is reversible, or error conditions), leaving gaps in understanding 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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and resources, making it easy to parse. Every part of the sentence contributes essential information.

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

Completeness3/5

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

Given the tool's complexity (a geometric operation with two bodies), lack of output schema, and annotations covering basic safety, the description is minimally adequate. It states what the tool does but lacks details on outcomes, error handling, or visual/geometric effects. For a tool that modifies geometry, more context on results or limitations would improve completeness.

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 100%, with clear parameter descriptions in the schema. The description adds no additional meaning beyond the schema, such as explaining the relationship between 'body_name' and 'tool_name' or providing usage examples. Baseline score of 3 is appropriate since the schema adequately documents 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 clearly states the action ('trim') and the target resource ('a surface body'), specifying it's trimmed 'with another body'. It distinguishes from sibling tools like 'split_body' or 'trim_curve' by focusing on surface trimming. However, it doesn't explicitly differentiate from similar operations like 'boolean_operation' which might also involve trimming.

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. It doesn't mention prerequisites (e.g., needing existing bodies), when not to use it, or refer to sibling tools like 'boolean_operation' or 'split_body' that might handle related operations. Usage is implied but not explicitly stated.

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

undoUndoA

Step the design back one operation. Parametric designs move the timeline marker back one step (synchronous and verified; the feature stays in the timeline, suppressed, and returns if you roll forward). Direct designs issue Fusion's asynchronous undo command and report undone: 'issued', verified: false — confirm with get_scene_info. Reports undone: false when there is nothing to undo.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

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

The description goes well beyond annotations by explaining synchronous versus asynchronous undo semantics, verification state, the effect on parametric timeline features, and the exact return signal when no undo is possible. These details are material for a mutating operation that annotations mark as non-read-only and non-idempotent.

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 definition is front-loaded with the core action and then tightly covers the design-type branches and return behavior. Every sentence carries operational information, and the parenthetical details add useful precision rather than clutter.

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 no-parameter undo tool with no output schema, the description supplies the behavioral details an agent needs: design-type handling, return states, and the recommended confirmation path for asynchronous undo. Nothing essential for correct invocation is missing.

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

Parameters4/5

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

The tool has zero parameters and schema coverage is 100%, so there is no parameter meaning for the description to add. The baseline for a no-parameter tool is appropriate here.

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 and scope: 'Step the design back one operation.' It immediately distinguishes parametric versus direct design behavior and explains the effect on timeline features, so an agent can distinguish this from deletion or suppression 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?

Usage context is clear, including when there is nothing to undo and when to confirm asynchronous results with get_scene_info. It does not explicitly compare against sibling tools such as suppress_feature or delete_all, so it falls short of full alternative-routing guidance.

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

unfoldUnfoldB

Unfold specific bends in a sheet metal body

NameRequiredDescriptionDefault
body_nameYes
bend_indicesNoIndices of bends to unfold (omit to unfold all)

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate this is a non-read-only, non-idempotent, non-destructive operation, but the description adds value by specifying it unfolds bends in sheet metal, implying a geometric transformation. However, it does not detail effects like permanence, error conditions, or interaction with other features, missing richer behavioral context.

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

Conciseness5/5

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

The description is a single, direct sentence with no wasted words, front-loading the core action. It efficiently conveys the tool's purpose without unnecessary elaboration, making it highly concise and well-structured.

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 tool with two parameters, no output schema, and annotations covering basic hints, the description is minimally adequate. It specifies the domain (sheet metal) and action but lacks details on outcomes, error handling, or integration with sibling tools, leaving gaps in full contextual understanding.

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 50%, with 'bend_indices' documented but 'body_name' lacking a description. The description mentions 'specific bends' and 'sheet metal body', aligning with parameters but not adding significant meaning beyond the schema. Baseline 3 is appropriate given partial schema coverage.

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 ('unfold') and target ('bends in a sheet metal body'), making the purpose evident. However, it does not explicitly differentiate from sibling tools like 'flat_pattern' or 'create_bend', which might have related sheet metal functions, so it misses the highest clarity mark.

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 'flat_pattern' or 'create_bend'. The description lacks context on prerequisites, exclusions, or typical scenarios, leaving usage unclear beyond the basic action.

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

unsuppress_featureUnsuppress FeatureB

Unsuppress (re-enable) a feature in the timeline

NameRequiredDescriptionDefault
feature_nameYes

TDQS

B3/5.0
Behavior3/5

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

Annotations indicate this is a non-read-only, non-idempotent, non-destructive operation, which the description aligns with by implying a state change (re-enabling). However, the description adds minimal behavioral context beyond annotations—it doesn't specify effects on the timeline, error conditions, or permissions needed, missing opportunities for richer disclosure.

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 and front-loaded, consisting of a single, direct sentence that conveys the core purpose without any wasted words. Every part of the sentence earns its place by clearly stating the action and target.

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 lack of output schema and low schema description coverage, the description is insufficiently complete. It fails to explain the outcome of unsuppressing a feature, potential side effects, or error handling, making it inadequate for a mutation tool with minimal structured support.

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?

With 0% schema description coverage for the single parameter 'feature_name', the description provides no additional meaning about this parameter. It doesn't explain what constitutes a valid feature name, format, or examples, leaving the parameter semantics entirely undocumented and unhelpful for the agent.

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 ('Unsuppress (re-enable)') and the target resource ('a feature in the timeline'), making the purpose immediately understandable. However, it does not explicitly differentiate from its sibling 'suppress_feature' beyond the opposite action, missing an opportunity for clearer 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 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, such as its sibling 'suppress_feature' or other feature-related tools. It lacks context about prerequisites, conditions for use, or typical scenarios, leaving the agent with no usage direction.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 96 tool updatesv0.4.1
    • First observedadd_constraint
    • First observedadd_dimension
    • First observedadd_joint
    • First observedauto_constrain
    • First observedboolean_operation
    • First observedcam_create_operation
    • First observedcam_create_setup
    • First observedcam_generate_toolpath
    • First observedcam_get_operation_info
    • First observedcam_list_operations
    • First observedcam_list_setups
    • First observedcam_post_process
    • First observedchamfer
    • First observedcheck_interference
    • First observedcircular_pattern
    • First observedcompare_meshes
    • First observedcreate_as_built_joint
    • First observedcreate_bend
    • First observedcreate_box
    • First observedcreate_box_parametric
    • First observedcreate_component
    • First observedcreate_construction_axis
    • First observedcreate_construction_plane
    • First observedcreate_cylinder
    • First observedcreate_flange
    • First observedcreate_hole
    • First observedcreate_parameter
    • First observedcreate_polygon
    • First observedcreate_rigid_group
    • First observedcreate_section_analysis
    • First observedcreate_sketch
    • First observedcreate_sphere
    • First observedcreate_thread
    • First observedcreate_torus
    • First observedcreate_ucs
    • First observeddelete_all
    • First observeddelete_parameter
    • First observeddraft_faces
    • First observeddraw_arc
    • First observeddraw_circle
    • First observeddraw_circles
    • First observeddraw_line
    • First observeddraw_rectangle
    • First observeddraw_spline
    • First observedexecute_code
    • First observedexport
    • First observedexport_f3d
    • First observedexport_step
    • First observedexport_stl
    • First observedexport_view_sheet
    • First observedextend_curve
    • First observedextrude
    • First observedfillet
    • First observedflat_pattern
    • First observedget_bounding_box
    • First observedget_design_type
    • First observedget_object_info
    • First observedget_parameters
    • First observedget_physical_properties
    • First observedget_scene_info
    • First observedimport_mesh
    • First observedlist_components
    • First observedloft
    • First observedmeasure_angle
    • First observedmeasure_distance
    • First observedmirror
    • First observedmove_body
    • First observednew_document
    • First observedoffset_curve
    • First observedoffset_faces
    • First observedpatch_surface
    • First observedping
    • First observedproject_geometry
    • First observedrectangular_pattern
    • First observedrename_body
    • First observedrender_view
    • First observedrevolve
    • First observedruled_surface
    • First observedscale_body
    • First observedset_appearance
    • First observedset_color
    • First observedset_design_type
    • First observedset_joint_value
    • First observedset_parameter
    • First observedshell
    • First observedsplit_body
    • First observedsplit_face
    • First observedstitch_surfaces
    • First observedsuppress_feature
    • First observedsweep
    • First observedthicken_surface
    • First observedtrim_curve
    • First observedtrim_surface
    • First observedundo
    • First observedunfold
    • First observedunsuppress_feature

TDQS

B3.2/5.0

Scored across 96 tools

Disambiguation4/5

Most tools have clearly distinct purposes with rich descriptions, e.g. add_joint vs create_as_built_joint is explicitly differentiated. However, there are overlapping clusters: export vs export_stl/export_step/export_f3d (a unified wrapper duplicating three primitives), create_box vs create_box_parametric, and draw_circle vs draw_circles (batch). These overlaps slightly muddy selection.

Naming Consistency5/5

Nearly the entire surface follows a consistent snake_case verb_noun pattern (create_sketch, draw_line, split_body, cam_create_setup). Minor deviations like the bare 'export' wrapper and 'ping' are cosmetic and do not break readability.

Tool Count2/5

96 tools far exceeds a workable set, even for a broad CAD domain. While sketching, modeling, surfaces, sheet metal, CAM, measurement, and export are genuine sub-domains, several tools (export family, box family) could be consolidated, and the sheer count risks decision fatigue and misselection.

Completeness4/5

Coverage is impressive across sketching, solid/surface modeling, sheet metal, assembly/joints, parameters, measurement, CAM, and export, giving near-full lifecycle support. Minor gaps exist: no explicit delete_body/delete_component, mirror is body-only, and there is limited feature-editing / timeline-inspection beyond undo and suppress.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Connects AI coding agents to Autodesk Fusion 360 for CAD automation, enabling natural language control over sketching, 3D modeling, and CAM operations. It uses a Python-based bridge and a custom add-in to execute over 80 tools ranging from simple geometry creation to complex assembly and parameter management.
    80
    467 PyPI
    143
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Connects AI coding agents to Autodesk Fusion 360 for CAD/CAM automation, exposing 84 tools for sketching, modeling, assembly, inspection, export, and G-code post-processing through any MCP-compatible client.
    85
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    Enables AI coding agents to drive Autodesk Fusion 360 over the Model Context Protocol, exposing 92 tools for sketching, modeling, querying, measuring and exporting CAD geometry through natural language. Includes an in-Fusion add-in that executes API calls safely on Fusion's main thread, with stdio transport compatible with any MCP client.
    8
    92
    MIT