Fusion360 Live MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Fusion360 Live MCPCreate a 5 cm cube, then fillet the vertical edges with a 0.5 cm radius."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Fusion360 Live MCP
Last updated: 2026-09-27
Beta — This project is under active development. APIs and tool behavior may change between releases. Use at your own discretion. Feedback and bug reports welcome via GitHub Issues.
Origin — This is a derivative of faust-machines/fusion360-mcp-server (MIT-licensed), adapted for Autodesk Fusion 2704.1.53 with additional bug fixes found through live testing inside Fusion. See CORRECOES.md for the full list of changes from upstream. The original copyright notice is preserved in LICENSE as required by its MIT license. Upstream's package, module and add-in names (
fusion360-mcp-server,fusion360_mcp,Fusion360MCP) were renamed here so both projects can be installed side by side without clashing.
MCP server that connects AI coding agents to Autodesk Fusion 360 for CAD automation.
Live-tested with Claude Code. Works with any client that speaks the Model Context Protocol over stdio — Hermes Agent, OpenClaw, Codex, Gemini CLI, Cursor and others; see Other agents and LLMs.
How it works
Any MCP Client ←(stdio MCP)→ This Server ←(TCP :9876)→ Fusion360LiveMCP Add-in ←(CustomEvent)→ Fusion Main ThreadTwo components:
MCP Server (this repo) — Python process that speaks MCP protocol to Claude and forwards commands over TCP
Fusion360LiveMCP Add-in (installed in Fusion's AddIns folder) — runs inside Fusion 360, executes API calls safely on the main thread
Related MCP server: fusion360-mcp-server
Prerequisites
uv (Python package manager)
Autodesk Fusion 360
An MCP-compatible client (Claude Code, OpenCode, Codex, Cursor, etc.)
Installation
1. Install the Fusion 360 Add-in
Quick install (symlink for development):
./scripts/install-addon.shManual install:
# macOS
cp -r addon ~/Library/Application\ Support/Autodesk/Autodesk\ Fusion\ 360/API/AddIns/Fusion360LiveMCP
# Windows (PowerShell)
Copy-Item -Recurse addon "$env:APPDATA\Autodesk\Autodesk Fusion 360\API\AddIns\Fusion360LiveMCP"Then start it in Fusion: Shift+S → Add-Ins → Fusion360LiveMCP → Run
You should see [MCP] Server listening on localhost:9876 in the TEXT COMMANDS window.
2. Connect your MCP client
This fork is not published on PyPI (upstream's fusion360-mcp-server package there does not include the fixes in CORRECOES.md). Clone this repo and run it from source with uv:
git clone https://github.com/tbrito88/fusion360-live-mcp.git
cd fusion360-live-mcp
uv syncClaude Code
claude mcp add fusion360-live -- uv run --directory /path/to/fusion360-live-mcp -m fusion360_live_mcp --mode socketOther agents and LLMs
The server speaks standard MCP over stdio, so it works with any client that supports stdio servers and tool calling — which model runs behind the client doesn't matter. The launch command is always:
uv run --directory /path/to/fusion360-live-mcp -m fusion360_live_mcp --mode socketTo avoid needing uv at runtime, point the client at the virtual environment's Python instead: /path/to/fusion360-live-mcp/.venv/Scripts/python.exe on Windows (.venv/bin/python elsewhere) with args -m fusion360_live_mcp --mode socket.
Three settings matter in every client:
Timeouts. Fusion operations can be slow, and on Windows the first call may start Fusion and wait up to 240 s for the add-in. Allow at least 300 s per tool call and 60 s for startup.
Environment. Some clients (Hermes, Codex) don't pass your whole shell environment to the server. If you use
FUSION360_LIVE_MCP_HOST,_PORTor_AUTOLAUNCH, declare them in the client'senvblock.Tool count. The 92 tool definitions take about 15k tokens. OpenAI-compatible APIs reject requests with more than 128 tools (the agent's own tools count too), and small local models get less accurate with long tool lists. When that matters, use the client's tool filter with this core set (~40 tools, ~6k tokens):
ping, "get_*", list_components, create_sketch, "draw_*", create_polygon, extrude, revolve, fillet, chamfer, shell, create_hole, mirror, rectangular_pattern, circular_pattern, boolean_operation, move_body, rename_body, delete_body, create_box, create_cylinder, create_sphere, "measure_*", check_interference, "*_parameter", export, render_view, undo
Every tool description states its units (cm and degrees), and the server sends the same rules as MCP instructions, so models that never saw this README still get sizes right.
mcp_servers:
fusion360-live:
command: "uv"
args: ["run", "--directory", "/path/to/fusion360-live-mcp", "-m", "fusion360_live_mcp", "--mode", "socket"]
timeout: 300
connect_timeout: 60
# tools:
# include: [ping, "get_*", extrude, ...] # the core set aboveHermes registers the tools as mcp_fusion360_live_<tool>.
{
mcp: {
servers: {
"fusion360-live": {
transport: "stdio",
command: "uv",
args: ["run", "--directory", "/path/to/fusion360-live-mcp", "-m", "fusion360_live_mcp", "--mode", "socket"],
connectionTimeoutMs: 60000,
requestTimeoutMs: 300000,
// toolFilter: { include: ["ping", "get_*", "extrude"] }, // the core set above
},
},
},
}[mcp_servers.fusion360-live]
command = "uv"
args = ["run", "--directory", "/path/to/fusion360-live-mcp", "-m", "fusion360_live_mcp", "--mode", "socket"]
startup_timeout_sec = 60 # default 10 is too short for the first uv run
tool_timeout_sec = 300 # default 60 is too short for auto-launch
# enabled_tools = ["ping", "get_scene_info", "extrude"]{
"mcpServers": {
"fusion360-live": {
"command": "uv",
"args": ["run", "--directory", "/path/to/fusion360-live-mcp", "-m", "fusion360_live_mcp", "--mode", "socket"],
"timeout": 600000
}
}
}Add "includeTools": [...] to limit the tool list.
{
"mcpServers": {
"fusion360-live": {
"command": "uv",
"args": ["run", "--directory", "/path/to/fusion360-live-mcp", "-m", "fusion360_live_mcp", "--mode", "socket"]
}
}
}What has been verified: the MCP protocol with a generic client (the official Python SDK) running under the same filtered environment Hermes uses, and every tool schema against OpenAI's and Gemini's rules (tests/test_client_compat.py). Live modelling inside Fusion has so far been done with Claude only.
Cross-machine setup (LAN)
If the MCP server and Fusion 360 run on different machines (e.g. MCP server on a Mac Mini, Fusion on a Windows PC), override the bind/connect address via environment variables on both sides.
On the Fusion host (where the add-in runs), bind to all interfaces before starting Fusion:
# Windows
$env:FUSION360_LIVE_MCP_HOST = "0.0.0.0"# macOS / Linux
export FUSION360_LIVE_MCP_HOST=0.0.0.0Then start Fusion and run the Fusion360LiveMCP add-in. The log line Server listening on 0.0.0.0:9876 confirms the bind.
On the MCP-server host, point the client at the Fusion host's LAN IP:
# Either via CLI flag
uv run --directory /path/to/fusion360-live-mcp -m fusion360_live_mcp --mode socket --host 192.168.1.42
# Or via env var (useful in MCP client configs)
FUSION360_LIVE_MCP_HOST=192.168.1.42 uv run --directory /path/to/fusion360-live-mcp -m fusion360_live_mcp --mode socketSecurity note: the TCP socket has no authentication. Only expose it on a trusted LAN — never bind to 0.0.0.0 on a host reachable from the public internet. See Security.
3. Verify
Call the ping tool from your client. If it returns {"ok": true, "status": "pong"}, everything is connected.
Uninstalling
Remove the
fusion360-liveentry from your MCP client configStop the add-in in Fusion (Shift+S → Add-Ins → Fusion360LiveMCP → Stop)
Delete the add-in folder from Fusion's AddIns directory
Available Tools (92)
Tools marked (2026+) require a recent Fusion build — they use APIs introduced in the January–July 2026 releases.
Scene & Query
Tool | Description |
| Health check (instant, no Fusion API) |
| Design name, bodies, sketches, features, camera |
| Detailed info about a named body or sketch |
| Axis-aligned bbox (min/max/size/center) for body or component; unions all bodies when called on a component |
| List all components in the design |
Design Type Safety
Tool | Description |
| Check if design is in parametric or direct mode |
| Switch design type (parametric/direct recovery) |
Sketching
Tool | Description |
| New sketch on xy/yz/xz plane, optional offset |
| Rectangle in most recent sketch |
| Circle in most recent sketch |
| Line in most recent sketch |
| Arc (center + start + sweep angle) |
| Fit-point or control-point spline |
| Regular polygon (3–64 sides) |
| Geometric constraint (coincident, parallel, tangent, etc.) |
| (2026+) Auto-constrain a sketch via the AutoConstrain API — 3 result options (thorough / fast / tolerance-adjusting) |
| Driving dimension (distance, angle, radial, diameter) |
| Offset connected sketch curves |
| Trim at intersections |
| Extend to nearest intersection |
| Project edges/bodies onto sketch plane |
Features
Tool | Description |
| Extrude a sketch profile |
| Revolve a profile around an axis |
| Sweep a profile along a path |
| Loft between two or more profiles |
| Round edges (all/top/bottom/vertical) |
| Chamfer edges |
| Hollow out a body |
| Mirror a body across a plane |
| Hole feature on a body face |
| Pattern in rows and columns |
| Pattern around an axis |
| Add threads (cosmetic or modeled) |
| Draft/taper faces for mold release |
| Split a body using a plane |
| Split faces of a body |
| Push/pull faces by a distance |
| Scale uniformly or non-uniformly |
| Suppress a timeline feature |
| Re-enable a suppressed feature |
Body Operations
Tool | Description |
| Translate a body by (x, y, z) |
| Rename a body (searches root and all components) |
| Join/cut/intersect two bodies |
| Delete one named body (searches root and all components) — use instead of |
| Clear the design |
| Undo last operation (with design-type safety guard) |
Direct Primitives
Tool | Description |
| Box (via TemporaryBRepManager, history-less) |
| History-based box: sketch rectangle + dimensions + extrude. |
| Cylinder |
| Sphere |
| Torus |
Surface Operations
Tool | Description |
| Create a patch surface from boundary edges |
| Stitch surface bodies into a single body |
| Thicken a surface body into a solid |
Sheet Metal
Tool | Description |
| Convert a solid body of uniform thickness into sheet metal (thickness taken from the geometry) |
| Bend a sheet metal body along a line of the last sketch (draw the line with |
| Create the flat pattern of a sheet metal body (run |
| Export the flat pattern as DXF for laser/plasma/waterjet cutting (run |
Construction Geometry
Tool | Description |
| Offset, angle, midplane, 3-point, tangent |
| Two-point, intersection, edge, perpendicular |
| (2026+, preview API) User Coordinate System at a point with optional rotation |
Assembly
Tool | Description |
| Create a sub-assembly component |
| Joint between two components |
| Joint from current positions |
| Lock components together |
Inspection & Analysis
Tool | Description |
| Minimum distance between entities |
| Angle between entities |
| Mass, volume, area, center of mass |
| Section plane through model |
| Detect collisions between components |
| (2026+) Deviation statistics between two mesh bodies (min/max/mean/RMS, cm) — e.g. validate against a reference STL |
Appearance
Tool | Description |
| Assign material appearance from library |
| (2026+) Assign a flat RGB color (+ opacity) to a body |
Parameters
Tool | Description |
| List all user parameters |
| Create a new parameter |
| Update a parameter value |
| Remove a parameter |
Import / Export
Tool | Description |
| Import STL/OBJ/3MF as mesh body via |
| Export body as STL (supports bodies inside components) |
| Export body as STEP (supports bodies inside components) |
| Export design as Fusion archive |
| Export multi-view PNG sheet (iso/front/top/right) for visual inspection |
| Unified dispatcher — routes to |
CAM / Manufacturing
Tool | Description |
| Create a manufacturing setup (milling/turning/cutting); applies stock mode/offsets |
| Add a machining operation (face, contour, adaptive, drilling, etc.); applies stepdown/feed/speed/coolant parameters |
| Generate toolpaths for operations |
| Post-process to G-code — pass a full |
| List all manufacturing setups |
| List operations in a setup |
| Get operation details (strategy, tool, parameters) |
Code Execution
Tool | Description |
| Run arbitrary Python in Fusion (REPL-style) |
Perception
Tool | Description |
| Capture the active viewport as PNG (optional camera preset: iso/front/top/...). Returns an image block for visual verification |
MCP Protocol Features
Tool annotations — each tool is tagged with
readOnlyHint,destructiveHint, andidempotentHintso MCP clients can auto-approve safe operationsResources —
fusion360://status,fusion360://design,fusion360://parametersfor passive state inspectionResource templates —
fusion360://body/{name},fusion360://component/{name}for dynamic entity lookupPrompts —
create-box,model-threaded-bolt,sheet-metal-enclosureworkflow templatesStructured errors — failures carry
isError=Trueplus a stableerror_kind(e.g.BODY_NOT_FOUND,TIMEOUT), contextualhints, and a traceback; infrastructure errors (bridge timeout, unknown command) are classified the same way, not flattened to a generic messageMock mode —
--mode mockreturns plausible test data without Fusion running (all responses include"mode": "mock")
Development
uv sync --dev # install deps
uv run pytest -v # run tests (497 tests)
uv run ruff check # lintNotes
All Fusion API units are centimeters (Fusion's internal unit).
One operation per tool call. Batching multiple operations crashes the add-in.
Timeouts: the add-in's main-thread bridge times out after 30s and cancels the queued command; the client waits up to 45s so it receives that structured
TIMEOUTerror. Mutation commands are never auto-retried — after a timeout, callget_scene_infoto check whether anything was applied before retrying.Add-in logs to
~/fusion360livemcp.log.Auto-launch (Windows): when the add-in is unreachable on
localhostand Fusion is not running, the server starts Fusion and marks this add-in as run on startup in Fusion's add-in list (JSLoadedScriptsinfo). If Fusion is already running it does nothing, so no unsaved work is lost. SetFUSION360_LIVE_MCP_AUTOLAUNCH=0to disable.The
undotool includes a design-type safety guard — it checks before/after and auto-redoes if the undo would switch from parametric to direct mode.This fork is tested on Fusion 2704.1.53 (Windows x86_64) — see CORRECOES.md for the full validation log. Tools marked (2026+) need a build from 2026 or later.
Security
The add-in listens on
localhost:9876with no authentication. Any program running under your user account can connect and send commands — includingexecute_code, which runs arbitrary Python inside Fusion with your permissions. Only run the add-in on machines where you trust the local software.Connections that don't speak the add-in's JSON protocol are dropped before any command is read. This blocks a web page from making your browser send commands to
localhost.execute_codeis annotated as destructive, so MCP clients won't auto-approve it. Read the code an agent wants to run before approving it.Binding to
0.0.0.0(the LAN setup) extends the same trust to every machine on that network.Please report vulnerabilities privately through the repository's Security → Report a vulnerability page, not in a public issue.
Acknowledgements
Inspired by BlenderMCP — the socket bridge architecture originated there.
Also built on ideas from the existing Fusion 360 MCP ecosystem:
License
MIT — see LICENSE.
Autodesk and Fusion are registered trademarks of Autodesk, Inc. This project is not affiliated with, endorsed by, or supported by Autodesk.
Available Tools
92 toolsadd_constraintAdd Sketch ConstraintB
Add a geometric constraint in the active sketch. Entities are referenced by index within the sketch.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_one | No | Index of the first sketch entity | |
| entity_two | No | Index of the second sketch entity (not needed for fix/horizontal/vertical) | |
| sketch_name | No | Sketch name (default: most recent) | |
| symmetry_line | No | Index of the symmetry line (only for symmetry constraint) | |
| constraint_type | Yes |
TDQS
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.
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.
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.
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.
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.
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. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | Dimension value (cm or degrees) | |
| entity_one | No | Index of first entity (point or curve) | |
| entity_two | No | Index of second entity (for distance/angular; not for radial/diameter) | |
| sketch_name | No | Sketch name (default: most recent) | |
| dimension_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare the safety profile (not read-only, not idempotent, not destructive), so the description doesn't need to restate it. But it discloses nothing about behavior beyond that: no mention of what happens on over-constraint, that the operation is undoable, or what state the sketch must be in.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with the core action front-loaded. The second and third sentences restate the same cm/degrees rule, which is redundant rather than wasteful, so it stays readable but could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-param mutation tool with no output schema and no annotations covering failure/state behavior, the description is minimally adequate: it covers units but omits sketch-state prerequisites and constraint-conflict behavior an agent would need.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 80%, so the baseline is 3. The description's unit conventions (cm for lengths, degrees for angles) largely duplicate what the schema already states on the value parameter, adding little beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (add), resource (driving dimension), and scope (sketch geometry constraint). An agent can distinguish it from add_constraint (which adds geometric constraints) and measure_distance/measure_angle (which measure rather than constrain).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to use this versus the sibling add_constraint or auto_constrain, nor prerequisites such as the sketch needing to be active/edited. The only guidance given is about units, which is parameter semantics rather than usage routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_jointAdd JointB
Add a joint between two components
| Name | Required | Description | Default |
|---|---|---|---|
| joint_type | No | rigid | |
| component_one | Yes | ||
| component_two | Yes |
TDQS
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 creation but doesn't detail effects like persistence, error conditions, or dependencies. With annotations covering safety, a 3 reflects some added value but limited depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words, front-loading the core action. It's 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no output schema), the description is incomplete. It lacks usage guidelines, detailed parameter explanations, and behavioral insights like how joints interact with components or what happens on failure. Annotations help but don't fully compensate, leaving gaps for an agent to operate effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for undocumented parameters. It mentions 'two components' and 'joint', hinting at 'component_one' and 'component_two', but doesn't explain their format or the 'joint_type' enum meanings. This adds minimal semantics beyond the bare schema, failing to address the coverage gap adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add') and resource ('a joint between two components'), making the purpose evident. However, it doesn't differentiate from sibling tools like 'add_constraint' or 'create_as_built_joint', which might have overlapping functionality in a CAD/mechanical context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With many sibling tools (e.g., 'add_constraint', 'create_as_built_joint'), the description lacks context about prerequisites, typical scenarios, or exclusions, leaving the agent to infer usage.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sketch_name | No | Sketch name (default: most recent) | |
| result_option | No | 1 = most thorough (slowest), 2 = fastest, 3 = adjusts geometry within tolerance |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, so the safety profile is partly structured. The description adds genuinely non-redundant behavior: option 3 may move geometry within tolerance, and the tool requires Fusion 2026+ AutoConstrain API. It doesn't say what happens to pre-existing constraints or how failure is reported, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, followed by a compact option mapping and a version note. It is efficient, though the option mapping duplicates the schema and is slightly redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with no output schema, the description covers the action, the outcome, the version requirement, and the notable side effect of the geometry-moving option. No return values need explaining, and nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so result_option's meaning is already fully documented in the schema, and the description's '1 = thorough/slow, 2 = fast, 3 = may move geometry' largely restates it. No added syntax, bounds rationale, or interaction between the option and sketch_name is provided, so baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (add geometric constraints and dimensions), the resource (a sketch), and the outcome (fully constrain), which clearly separates it from the manual add_constraint/add_dimension siblings. It stops short of explicitly naming those siblings as alternatives, so it is clear but not maximally differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'fully constrain a sketch' — an agent can infer this is the bulk alternative to manually adding constraints. However, it never states when to prefer this over add_constraint/add_dimension, nor any prerequisites (e.g., which sketch state is valid), leaving the routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
boolean_operationBoolean OperationA
Combine two named bodies (join/cut/intersect). For 'join', target_body and tool_body must actually touch or overlap — confirmed live that Fusion silently discards the tool body's geometry (no error, no merge) when they don't, so this refuses up front with the real minimum distance between them instead of reporting a false success.
| Name | Required | Description | Default |
|---|---|---|---|
| operation | No | join | |
| tool_body | Yes | ||
| target_body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real value beyond the sparse annotations (readOnly=false, idempotent=false, destructive=false): it discloses that Fusion silently discards the tool body's geometry on a non-touching join and that the tool instead refuses proactively and reports the minimum distance. This failure-mode disclosure is exactly the kind of context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the operation and modes, then the one non-obvious precondition. No filler, and the parenthetical failure explanation earns its length by preventing a silent-success trap.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A destructive-in-effect modeling operation with no output schema and zero schema documentation is partially covered: the join-touch pitfall is handled, but cut/intersect behavior, body consumption, and result/report format are left unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It names target_body and tool_body and states their required relationship for join, and its operation vocabulary matches the enum, but it never explains what happens to the tool body (consumed?), the default mode, or how target vs tool roles differ for cut/intersect.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (combine), the exact resource (two named bodies), and enumerates the three modes (join/cut/intersect), which maps 1:1 to the schema enum. It is clearly separable from neighbors like split_body, mirror, or loft.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an important precondition for the 'join' mode (bodies must touch or overlap), but there is no guidance on when to choose join vs cut vs intersect, nor on prerequisites such as selecting bodies in the same component. Usage is implied by the mode names rather than explained.
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 OperationB
Add a machining operation to a setup. Strategy determines the toolpath type. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Operation name | |
| coolant | No | flood | |
| stepdown | No | Axial depth of cut (cm) | |
| stepover | No | Radial stepover (cm) | |
| strategy | Yes | Machining strategy | |
| feed_rate | No | Feed rate (cm/min) | |
| setup_name | Yes | Name of the parent setup | |
| tool_number | No | Tool number from library | |
| spindle_speed | No | Spindle speed (RPM) | |
| tool_diameter | No | Not supported — tool geometry comes from the CAM tool library; select via tool_number instead. Passing this raises an error. | |
| geometry_face_index | No | Index (0-based) of a face on the setup's model body whose outer loop becomes the operation's chain geometry — equivalent to clicking that face in the Fusion UI. Required for chain-based strategies (2d_contour, 2d_pocket, 2d_adaptive, drilling, bore, ...) to generate a toolpath; find face indices via get_object_info on the body. | |
| tool_from_operation | No | Name of an existing operation whose real library tool should be reused, syncing the tool-search filter to match. tool_number alone only writes a parameter and leaves the operation without a tool — generating it then opens a modal dialog inside Fusion that freezes this connection until someone dismisses it by hand. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=false, non-idempotent), so the description adds rather than carries this. It usefully discloses a cross-cutting behavioral convention (units in cm, angles in degrees) that is not derivable from the annotations, but omits workflow consequences such as needing a tool before toolpaths can be generated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action and immediately followed by the two facts (strategy semantics, unit conventions) an agent most needs. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter mutation tool with no output schema, the description covers the essential unit convention, but the schema carries all critical gotchas (tool_number fallback, modal freeze, geometry_face_index requirements). The description itself leaves the workflow context — sequencing with toolpath generation — unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is already 92%, so the baseline is 3. The description goes beyond the schema by stating the global unit convention for lengths, coordinates and angles, which disambiguates several numeric parameters whose schema notes are terse or absent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Add a machining operation to a setup') and clarifies the role of the strategy parameter. It is clear against generic siblings, though it never names or distinguishes itself from close CAM siblings like cam_create_setup or cam_generate_toolpath.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no exclusions. It does not say that a setup must exist first, nor when to follow this with cam_generate_toolpath or cam_post_process, so the agent must infer the CAM workflow from sibling names alone.
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). Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Setup name | |
| body_name | Yes | Body to machine | |
| stock_mode | No | relative_box | |
| operation_type | No | milling | |
| stock_offset_top | No | Top offset (cm) | |
| stock_offset_sides | No | Side offset (cm) | |
| stock_offset_bottom | No | Bottom offset (cm) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false. The description adds useful behavioral context about unit conventions (cm and degrees unless stated otherwise) and clarifies what the setup defines, but does not disclose what happens on repeated calls, whether existing setups are modified, or any permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose and followed by unit conventions. The middle sentence about stock, coordinate system, and operation type is slightly redundant with the purpose but still adds useful detail without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter mutation tool with no output schema, the description covers purpose and unit semantics but leaves gaps in workflow context, return values, and behavior relative to sibling CAM tools. It is adequate but not fully complete for an agent navigating CAM operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 71%, and the description adds a global unit convention that applies across parameters, which is valuable beyond the schema's per-parameter hints. However, it does not explain the stock_mode options or add meaning to the enum parameters beyond restating the operation_type choices.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Create') and resource ('manufacturing setup for a body'), and lists what it defines (stock, coordinate system, operation type). It distinguishes this from sibling CAM tools only implicitly through the resource, not by explicitly naming alternatives like cam_create_operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives such as cam_create_operation or cam_list_setups. There is no explicit when/when-not, nor any mention of prerequisites or typical workflow context.
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
| Name | Required | Description | Default |
|---|---|---|---|
| setup_name | No | Setup name (generates all its operations) | |
| generate_all | No | Generate all toolpaths | |
| operation_name | No | Specific operation name. Requires setup_name too — does not stand alone |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already covering the safety profile (not read-only, not idempotent, not destructive), the description adds no behavioral context beyond restating what the schema parameters already say. It does not disclose computational cost, side effects on the CAM setup, or prerequisites for successful generation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It immediately states the action and its scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 100% schema coverage and present annotations, the description is minimally adequate. However, it omits any usage context, prerequisites, or behavioral implications for a CAM mutation tool. With no output schema, it need not explain return values, but it could do more to orient an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents setup_name, generate_all, and operation_name. The description's phrase 'specific operation or all operations in a setup' aligns with those parameters but adds no syntax or constraints beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: generate toolpaths for a specific operation or all operations in a setup. It is clear what the tool does, though it does not explicitly differentiate itself from sibling CAM tools like cam_create_operation or cam_post_process.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the basic use case (generate toolpaths for an operation or setup) but gives no explicit guidance on when to use this tool versus alternatives such as cam_create_operation or cam_post_process. No prerequisites or exclusions are stated.
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 InfoBRead-onlyIdempotent
Get details about a specific operation (strategy, tool, parameters, toolpath status)
| Name | Required | Description | Default |
|---|---|---|---|
| setup_name | Yes | ||
| operation_name | Yes |
TDQS
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.
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.
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.
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.
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.
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 OperationsARead-onlyIdempotent
List operations within a setup
| Name | Required | Description | Default |
|---|---|---|---|
| setup_name | Yes |
TDQS
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.
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.
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.
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.
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.
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 SetupsBRead-onlyIdempotent
List all manufacturing setups in the document
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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 ProcessC
Post-process toolpaths to generate NC code (G-code)
| Name | Required | Description | Default |
|---|---|---|---|
| setup_name | Yes | Setup to post-process | |
| output_units | No | mm | |
| program_name | No | NC program name/number written into the G-code header. Most posts (including fanuc) require a plain integer here and reject a text label | 1001 |
| output_folder | No | Output directory (default: ~/Desktop) | |
| operation_name | No | Specific operation (omit to post all in setup) | |
| post_processor | No | Post 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the safety profile is partially covered. But the description adds nothing behavioral: it never mentions that the tool writes G-code files to disk (output_folder), what happens on repeat runs or whether existing output is overwritten.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded clause with no filler or redundancy. It is tight, though the brevity contributes to the specification gaps noted elsewhere rather than being an independent virtue.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter CAM operation with no output schema, the description omits prerequisites, the relationship to cam_generate_toolpath, and the fact that the operation produces files as side effects. An agent could invoke it correctly from the schema alone but lacks the workflow context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 83% with rich per-parameter notes (e.g., the fanuc integer-only program_name constraint, post-processor resolution rules), so the schema carries the semantic load. The description adds no parameter meaning beyond naming the G-code output, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource+result: post-processes toolpaths to produce NC code (G-code), which is clearly distinct from CAM siblings like cam_create_setup and cam_create_operation. It does not, however, differentiate itself from cam_generate_toolpath, which an agent could plausibly confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus cam_generate_toolpath, nor on prerequisites such as needing an existing setup with generated toolpaths. The only usage signal ('omit to post all in setup') lives in the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chamferChamfer EdgesB
Chamfer edges of a body. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| x_max | No | Keep only edges lying entirely at X <= x_max (cm). | |
| x_min | No | Keep only edges lying entirely at X >= x_min (cm). | |
| y_max | No | Keep only edges lying entirely at Y <= y_max (cm). | |
| y_min | No | Keep only edges lying entirely at Y >= y_min (cm). | |
| z_max | No | Keep only edges lying entirely at Z <= z_max (cm). | |
| z_min | No | Keep only edges lying entirely at Z >= z_min (cm). Combine with z_max to pick an edge ring at an intermediate height. | |
| distance | Yes | ||
| body_name | No | ||
| convexity | No | Keep only inside-corner (concave) or outside-corner (convex) edges. Mixing both at shared vertices makes Fusion fail with ASM_BL_CANNOT_REORDER; split them into two calls. | any |
| body_index | No | ||
| edge_selection | No | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations declaring readOnlyHint=false, idempotentHint=false and destructiveHint=false, safety is partly covered. The description usefully adds the unit convention (cm, not mm; angles in degrees) and implies the operation is non-idempotent via the schema's convexity failure note, but says nothing about failure modes, needed selections, or reversibility itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, purpose front-loaded before the unit caveat. 'Unless a parameter says otherwise' is slightly vague but does not waste much space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter mutation tool with no output schema, the description covers the highest-risk ambiguity (units) but omits how body_name and body_index interact, what happens if no edges match the filters, and whether the operation must be undone rather than reversed. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
At 64% schema coverage, the schema documents the bounding-box filters, convexity and edge_selection, but leaves 'distance' and 'body_name'/'body_index' undescribed. The description only supplies unit semantics ('lengths and coordinates in cm, angles in degrees'), which partially compensates and largely repeats the per-parameter cm notes already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Chamfer edges of a body'), which is unambiguous and distinguishable from the geometric siblings fillet/shell by name alone. It stops short of explicitly contrasting with fillet, which would be the natural confusion point.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites (e.g. body selection), and no mention of when to prefer fillet or split face instead. The agent must infer applicability purely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_interferenceCheck InterferenceARead-onlyIdempotent
Detect collisions between components/bodies. Interference volumes in cm³.
| Name | Required | Description | Default |
|---|---|---|---|
| component_names | Yes | Names of components to check | |
| include_coincident_faces | No | Count touching faces as interference |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds genuinely new information about the result (interference volumes reported in cm³), which matters since no output schema exists, though it says nothing about how results are structured (per-pair list vs. single boolean).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences with zero filler. The core action comes first and the return-unit note follows.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter, read-only geometry query with no output schema, the description covers the action, the units of the result, and the collision semantics implied by the name. It stops short of describing the shape of the returned result set, which is the only real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (component_names, include_coincident_faces) are fully documented in the schema. The description adds no syntax or format detail beyond it; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Detect collisions between components/bodies') and adds the output unit ('Interference volumes in cm³'), which clearly distinguishes it from measurement siblings like measure_distance or get_bounding_box. It does not explicitly name alternatives, but the operation is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives (e.g., measure_distance, compare_meshes), no prerequisites, and no indication of when component selection is appropriate. The agent must infer the use case purely from the name and one-line purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
circular_patternCircular PatternA
Pattern a body OR a feature around an axis. Without feature_name, this duplicates the whole body N times as separate overlapping bodies (correct for copying a whole part, e.g. around a turntable) — it does NOT add copies of a feature to the same body. For the common case — a bolt circle, repeating a single hole around one part — pass feature_name (the feature that created it, e.g. from create_hole's feature_name) so the result stays one body with N holes. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | z | |
| count | Yes | ||
| body_name | Yes | Body to pattern. Still required even when feature_name is given, to resolve the axis; ignored as the pattern target in that case. | |
| total_angle | No | Total angle to distribute copies over (degrees) | |
| feature_name | No | Name of an existing feature (e.g. a hole feature) to pattern instead of the whole body. This is what keeps the result as ONE body with N copies of the feature — a real bolt circle — instead of N separate overlapping bodies. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring it is a non-readonly, non-idempotent, non-destructive write, the description adds the crucial outcome distinction: without feature_name you get N separate overlapping bodies rather than copies of a feature in one body. It also adds a non-obvious units rule (cm not mm). It stops short of describing whether the source body/feature is preserved or what the call returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded — the body-vs-feature distinction leads, and the units caveat closes. Slightly long relative to the operation, but nearly every clause carries decision-relevant information rather than restating the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-param mutation with no output schema and no annotations on safety nuance, the description covers the mode selection and units cleanly. It leaves minor ambiguity — whether the original counts toward 'N times' and whether the source geometry is consumed — but nothing an agent needs 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%, and the description compensates well: it explains the interaction between feature_name and body_name (body_name stays required only to resolve the axis) and pins down units for lengths, coordinates, and angles. It leaves 'count' and 'total_angle' semantics to the schema, which documents them adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Pattern a body OR a feature around an axis') and immediately disambiguates the two modes. An agent can distinguish this from rectangular_pattern and mirror 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to omit feature_name (turntable-style whole-part copy) versus when to pass it (bolt circle, repeated hole), and names the sibling create_hole as the source of feature_name. Both branches of the decision are spelled out with examples.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_meshesCompare Mesh BodiesARead-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+.
| Name | Required | Description | Default |
|---|---|---|---|
| mesh_name_a | Yes | Name of the first mesh body | |
| mesh_name_b | Yes | Name of the reference mesh body |
TDQS
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.
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.
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.
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.
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.
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.
convert_to_sheet_metalConvert to Sheet MetalA
Convert a solid body of uniform thickness into sheet metal. Thickness is taken from the geometry, not from the rule. This replaces flange creation, which the Fusion API does not expose: model the shape with extrude/shell, then convert.
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | Yes | ||
| rule_name | No | Sheet metal rule. Default: first available | |
| face_index | No | Base face. Default: largest planar face |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses a non-obvious behavioral trait beyond the annotations: thickness is taken from the geometry, not from the rule. This corrects the natural assumption that rule_name governs thickness. Annotations only cover read/write and idempotency hints, so this added context is genuinely valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core action and followed by the two facts an agent actually needs (thickness source, alternative workflow). No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter mutation tool with no output schema, the description covers purpose, workflow prerequisite, and the key thickness behavior. It does not state what happens to the original solid body or what the call returns, a minor gap given the annotations cover safety hints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% with rule_name ('Default: first available') and face_index ('Default: largest planar face') already documented in the schema; body_name is undocumented. The description clarifies that thickness does not come from the rule, adding meaning to rule_name, but does not otherwise expand parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb and resource: 'Convert a solid body of uniform thickness into sheet metal,' including the precondition (uniform thickness) that qualifies which bodies are eligible. It does not explicitly differentiate from the closest sibling fold_sheet_metal, so it falls 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives strong context: it replaces flange creation because the Fusion API doesn't expose it, and prescribes the workflow ('model the shape with extrude/shell, then convert'). No explicit exclusions or named alternatives among siblings, so 4 rather than 5.
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 JointC
Create a joint from components' current positions (easier than geometric joints)
| Name | Required | Description | Default |
|---|---|---|---|
| joint_type | Yes | rigid | |
| component_one | Yes | ||
| component_two | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate the tool is not read-only, idempotent, or destructive, which the description does not contradict. The description adds context about using 'components' current positions' and being 'easier than geometric joints,' offering some behavioral insight beyond annotations, but lacks details on permissions, side effects, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. It avoids redundancy and wastes no words, though it could be slightly more structured by explicitly listing key parameters or usage scenarios.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, 0% schema coverage, no output schema, and annotations only covering basic hints), the description is inadequate. It lacks details on parameter semantics, behavioral traits like error handling, and does not reference sibling tools, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for undocumented parameters. It mentions 'components' current positions' and 'joint,' hinting at 'component_one' and 'component_two,' but does not explain parameter meanings, the 'joint_type' enum options, or their implications, leaving significant gaps in understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a joint') and the resource ('from components' current positions'), with a specific verb and target. It distinguishes itself from geometric joints by noting it's 'easier,' though it doesn't explicitly differentiate from sibling tools like 'add_joint' or 'create_rigid_group.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal guidance, only implying usage when easier joint creation is needed compared to geometric methods. It does not specify when to use this tool over alternatives like 'add_joint' or 'create_rigid_group,' nor does it mention prerequisites or exclusions, leaving usage context vague.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_boxCreate BoxA
Create a box primitive (non-parametric via TemporaryBRepManager). center_x/center_y are the box CENTER, but center_z is its BOTTOM face: the box spans center_z .. center_z + height (confirmed live: center_z=6, height=12 gave Z 6..18). Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| width | Yes | ||
| height | Yes | ||
| length | Yes | ||
| center_x | No | ||
| center_y | No | ||
| center_z | No |
TDQS
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/safety profile is largely covered. The description adds non-obvious behavioral context that annotations cannot: the center_z-as-bottom-face convention with a live-verified example, plus the cm/degree unit system. It stops short of describing side effects such as whether repeated calls stack bodies or which component receives the result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, front-loaded with the core purpose and non-parametric caveat before the parameter/unit details. Every sentence earns its place, though the parenthetical source attribution adds slight noise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter mutation tool with no output schema and 0% schema description coverage, this covers the highest-risk ambiguities (units, center convention). It does not address what the call returns or the default placement context, which would matter for an agent chaining calls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the load, and it does: it disambiguates the three center_* parameters (XY center vs Z bottom face) with a concrete numeric example and specifies the unit system (cm, degrees) that the schema leaves entirely unstated. length/width/height semantics are left to be inferred from names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a box primitive') and immediately qualifies the implementation mode ('non-parametric via TemporaryBRepManager'), which is exactly what distinguishes it from the sibling create_box_parametric. An agent can select correctly without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(non-parametric via TemporaryBRepManager)' implies when this tool is appropriate versus its parametric sibling, but it never names create_box_parametric or states the condition explicitly ('use X if you need editable parameters'). Usage is therefore implied rather than directed.
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. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| plane | No | xy | |
| width | Yes | Along sketch Y: number (cm) or expression | |
| height | Yes | Extrude distance: number (cm) or expression | |
| length | Yes | Along sketch X: number (cm) or expression | |
| origin_x | No | ||
| origin_y | No | ||
| origin_z | No | Z-offset of sketch plane (cm) | |
| body_name | No | Optional name for the resulting body | |
| component_name | No | Target component (omit for root) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read/write safety hints, and the description adds useful behavioral context: it creates a history feature via sketch+extrude, accepts expressions, and has a create_parameter prerequisite. It does not describe failure modes or return behavior, but with annotations present the added context is meaningful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loaded: purpose and sibling distinction first, then parameter semantics, then the create_parameter prerequisite, then units. Every sentence carries relevant information for correct invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter creation tool with no output schema, it provides the critical context: method, expression support, prerequisite, and unit convention. It does not explain the plane orientation meaning or what the tool returns, but those gaps are minor given the schema and annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, so the description must add value. It explains that length/width/height accept either a number in cm or a string expression, gives examples like '56 mm' and 'outer - 2 * wall_t', and clarifies that lengths/coordinates default to cm while angles are degrees. It leaves plane enum semantics and some origin/body/component details to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Create a history-based rectangular box') and immediately distinguishes it from the sibling create_box by implementation method. An agent can tell which box tool to choose without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: this is history-based and expression-capable, unlike create_box, and requires create_parameter first for named parameters. It does not explicitly spell out when to prefer create_box, but the alternative and prerequisite are clear enough for routing.
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
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Component name | |
| parent_name | No | Parent component name (omit for root) |
TDQS
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.
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.
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.
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.
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.
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 AxisB
Create a construction axis. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| method | Yes | ||
| body_name | No | Body name (for edge method) | |
| plane_one | No | First plane (for intersection) | |
| plane_two | No | Second plane (for intersection) | |
| point_one | No | ||
| point_two | No | ||
| edge_index | No | Edge index on the body |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, so the mutation/non-destructive profile is already covered. The description adds genuinely useful unit-convention context (cm not mm, degrees) but says nothing about failure modes or per-method behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with the core action front-loaded and the unit caveat immediately after. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists so return values needn't be described, and the unit note is valuable. However, the four-method enum with divergent parameters (body_name/edge_index vs plane_one/plane_two vs point_one/point_two) is left entirely unexplained, which is a meaningful gap for a modeling agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 57%, with method, point_one, and point_two lacking schema descriptions. The description partially compensates by stating the unit convention (cm, degrees), which is critical for the point coordinates, but adds nothing about method values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource: 'Create a construction axis.' This distinguishes it from sibling create_construction_plane by resource type, though it doesn't explain how the four methods differ from each other.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance or alternatives are given. The agent isn't told which of the four methods to pick or under what conditions, and no sibling routing (e.g., plane vs axis) is offered.
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. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| angle | No | Angle in degrees (for angle method) | |
| plane | No | Reference plane (for offset/angle) | |
| method | Yes | ||
| offset | No | Offset distance in cm (for offset) | |
| edge_name | No | Edge or axis to rotate around (for angle method) | |
| plane_one | No | First plane (for midplane) | |
| plane_two | No | Second plane (for midplane) | |
| point_one | No | [x,y,z] first point | |
| point_two | No | [x,y,z] second point | |
| point_three | No | [x,y,z] third point |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-idempotent, non-destructive operation. The description adds default unit context (cm/degrees) but does not disclose permissions, side effects, or other behavioral traits 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose and followed by an important default-unit caveat. No filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 10 parameters and five construction methods, the description is minimal. It adds unit context but does not explain method-specific parameter usage, and no output schema exists to cover return behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 90%, so baseline is 3. The description adds meaningful semantics by clarifying that lengths and coordinates are in cm and angles in degrees unless a parameter overrides this, which supplements point parameters whose schema entries lack unit details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Create a construction plane for sketching.' An agent can identify the tool's purpose, though the description does not distinguish it from similar siblings like create_construction_axis or create_ucs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided. 'For sketching' hints at context but does not route between alternatives or state prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_cylinderCreate CylinderA
Create a cylinder (or cone, with top_radius) primitive (non-parametric via TemporaryBRepManager). The base circle is centred at (base_x, base_y, base_z); the body extends height along axis, or along (direction_x, direction_y, direction_z) when given — any direction, e.g. an inclined valve bore. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | Cylinder axis direction | z |
| base_x | No | ||
| base_y | No | ||
| base_z | No | ||
| height | Yes | ||
| radius | Yes | ||
| top_radius | No | Radius at the far end (cone); default = radius | |
| direction_x | No | Axis direction vector (overrides axis) | |
| direction_y | No | ||
| direction_z | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover safety (readOnly=false, idempotent=false, destructive=false), so the bar is lower. The description adds valuable behavioral context beyond that: the result is a non-parametric body, the base circle position convention, that direction_* overrides axis, and the critical units caveat (cm not mm, degrees). It stops short of saying whether the new body is selected/merged or what happens on failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A tight paragraph where each clause adds information (variant, mechanism, geometry layout, axis override, units). The nested parenthetical about TemporaryBRepManager slightly interrupts flow, but nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter primitive-creation tool with no output schema, the description supplies the geometry semantics, the non-parametric nature, and the non-obvious cm/degree unit convention. It is largely self-sufficient; only the return value and any preconditions (an open design/component context) are left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 30%, so the description must compensate, and it largely does: it explains base_x/y/z as the base circle centre, that height runs along axis, that direction_x/y/z override axis, that top_radius produces a cone, and the global unit convention for lengths and angles. The few remaining undescribed params (e.g., direction_y/z) are inferable from the direction_x note.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a cylinder... primitive') and even names the cone variant via top_radius, plus the underlying mechanism (TemporaryBRepManager, non-parametric). However, it does not differentiate itself from sibling primitive creators like create_box, create_sphere, or create_torus, nor from parametric feature tools such as extrude.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'non-parametric via TemporaryBRepManager' note implicitly signals when this is appropriate (throwaway geometry vs. a parametric feature), and the direction-vector example ('an inclined valve bore') hints at use cases. But there is no explicit when-to-use/when-not guidance or named alternative among the many sibling creation tools.
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. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| depth | Yes | ||
| center_x | No | Hole centre X in model space (cm) | |
| center_y | No | Hole centre Y in model space (cm) | |
| diameter | Yes | ||
| body_name | No | ||
| body_index | No | ||
| face_selection | No | Drill into the highest up-facing (top) or lowest down-facing (bottom) planar face, which must be near-horizontal (within ~0.6 deg) | top |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose a non-read-only, non-idempotent, non-destructive mutation. The description contributes a genuinely useful behavioral convention (cm and degrees by default) that is not in the annotations, but it says nothing about preconditions, whether an existing body/face is required, or what happens on failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and followed immediately by the cross-cutting unit convention. Nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter mutation tool with 43% schema coverage and no output schema, the description covers units but leaves body identification (body_name vs body_index) and the semantics of the required depth/diameter under-explained. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 43%, so the description carries weight; the unit statement (cm, degrees) usefully applies to depth/diameter/center coordinates. However, it does not clarify the relationship between body_name and body_index, nor the meaning of depth relative to the selected face, so several undocumented parameters remain opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a hole feature on a body face'), which an agent can distinguish from sibling feature tools like extrude, shell, or chamfer. It doesn't explicitly distinguish itself from shape primitives such as create_cylinder, but the 'feature on a body face' framing is reasonably clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus alternatives such as create_cylinder, extrude with a cut, or boolean_operation. No preconditions (e.g., an active design or an existing body) are stated; the only usage-like content is the unit convention.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_parameterCreate ParameterA
Create a new user parameter. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Parameter name | |
| unit | Yes | Unit the value is given in (e.g. 'mm', 'cm', 'in', 'deg'). Empty means unitless. | |
| value | Yes | Numeric value, expressed in `unit` | |
| comment | No | Optional comment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the safety profile is already covered. The description adds useful behavioral context by stating the default unit convention: lengths/coordinates are in cm not mm, and angles in degrees. It still does not disclose duplicate-name behavior or return values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action and then the important unit convention. It is concise and has no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter creation tool with full schema coverage and annotations, the description supplies the essential purpose and unit context. It omits return-value information, but that is a minor gap given the simplicity of the operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter. The description adds meaning beyond the schema by clarifying the default unit convention for values, which is relevant when using the required 'unit' parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Create a new user parameter.' The word 'new' also distinguishes it from set_parameter, which likely modifies an existing parameter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'Create a new user parameter' — use it when a parameter does not already exist. However, the description does not explicitly say when not to use it or name set_parameter as the alternative for existing parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_polygonCreate PolygonB
Draw a regular polygon in the most recent sketch. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| sides | Yes | ||
| radius | Yes | Circumradius (cm) | |
| center_x | No | ||
| center_y | No | ||
| center_z | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, so the mutation profile is covered by structured data. The description adds real value by disclosing the 'most recent sketch' target and the cm/degree unit convention, but omits what happens if no sketch is active and whether it creates geometry non-idempotently.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and target; the unit caveat is appropriately placed at the end. No filler, though the second sentence is a generic caveat rather than parameter-specific detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter creation tool with no output schema and low schema coverage, the description covers target context and units but leaves the sketch prerequisite, failure modes, and most parameter semantics undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20% (just radius), so the description must compensate. It does partly by stating that lengths and coordinates default to cm and angles to degrees, which clarifies center_x/y/z and radius, but 'sides' and the center point meaning remain unexplained beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Draw) and resource (regular polygon) plus the target location ('most recent sketch'). This cleanly distinguishes it from draw_rectangle, draw_circle, and draw_line by resource name, though it does not name those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use/when-not guidance and no mention of alternatives such as draw_circle (a polygon as a many-sided alternative) or the requirement that a sketch must already exist. Only the unit convention is supplied, which is not usage guidance.
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
| Name | Required | Description | Default |
|---|---|---|---|
| component_names | Yes | Names of components to group | |
| include_children | No | Include child sub-components |
TDQS
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.
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.
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.
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.
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.
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. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| plane | No | yz | |
| offset | No | Offset from the plane (cm) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, so the agent knows this mutates state but is not destructive. The description adds a genuinely useful behavioral detail (default units are cm, not mm, and angles in degrees) but says nothing about whether the section persists as a feature, what gets created in the tree, or how repeated calls behave.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the core action front-loaded and no filler. The unit caveat is worth its space, though the hedge 'Unless a parameter says otherwise' is slightly loose for two parameters, only one of which carries units.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and low schema coverage on the plane enum, the description should say what the tool produces and whether the section is a persistent feature. The unit convention is covered, but the return/result behavior is entirely absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Coverage is 50%: 'offset' is documented in the schema as cm, but 'plane' is only an enum with a default and no explanation of the planes' orientation. The description's unit note reinforces the offset semantics but adds no meaning for the plane parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Cut a section plane through the model'), so an agent knows this creates a cross-section. It does not distinguish itself from nearby siblings like create_construction_plane or split_body, which a stronger definition would do.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as split_body or create_construction_plane. The agent must infer applicability purely from the name and one-line description.
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. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| plane | No | xy | |
| z_offset | No | Offset distance from the plane (cm) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-readonly, non-idempotent, non-destructive mutation, so the safety profile is covered. The description adds genuinely useful context—units are cm not mm and angles are degrees—but says nothing about what is returned (sketch identity) or what happens on duplicate/failed creation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the core action front-loaded and the units caveat second. Nothing is wasted, though the appended units clause could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and only partial param coverage, the unit convention helps but leaves gaps: no return value, no prerequisite design context, no interaction with the sketch's parent body/component.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: z_offset is documented in the schema while plane relies on its enum. The description reinforces the cm unit for lengths/offsets, which is added value, but it does not explain the plane enum or the offset's direction/sign convention.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (create sketch) and constrains it to the three named planes with an optional offset, so an agent can tell it apart from primitives like create_box or curve tools like draw_line. It does not differentiate itself from the related create_construction_plane sibling, but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is given; it never says whether this should precede draw_rectangle/draw_line or how it relates to create_construction_plane. The unit convention is the only contextual rule offered.
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) Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| radius | Yes | ||
| center_x | No | ||
| center_y | No | ||
| center_z | No |
TDQS
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 the non-parametric BRep nature and the unit convention, which is genuine extra context, but says nothing about where the body is created (active component/design) or whether it is unlinked geometry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core action front-loaded and the unit caveat second. No filler, though the parenthetical implementation detail could arguably be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 4-parameter primitive with no output schema, the description covers units and the geometry type, which is the essential information. It leaves open the resulting body's context (component, naming, editability), a minor but real gap for a creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema documents only types and defaults. The description compensates for units (cm and degrees) for radius and center coordinates, which is valuable, but it explains none of the individual parameters' meaning or geometry.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a sphere primitive') and adds a meaningful qualifier that it is non-parametric via TemporaryBRepManager, distinguishing it from a parametric solid. It does not explicitly contrast with the other primitive creators (create_box, create_cylinder, create_torus), but the name and mechanism make the target unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The mention of 'non-parametric' implies when this is appropriate versus a parametric primitive, but the description never states when to choose it or what alternatives exist. Usage is only inferable, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_threadCreate ThreadB
Add threads to a cylindrical face (cosmetic or modeled) Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| near_x | No | Instead of face_index: a point on the hole/shaft axis; the cylindrical face whose axis passes closest is used | |
| near_y | No | ||
| near_z | No | ||
| body_name | Yes | ||
| face_index | No | Index of the cylindrical face | |
| is_modeled | No | True = physical geometry, False = cosmetic | |
| is_internal | No | Internal (hole) or external (shaft) thread. Omit it: it is inferred from the face, and a value that contradicts the face is rejected. | |
| thread_type | No | Thread standard (e.g. 'ISO Metric profile', 'ANSI Unified Screw Threads') | ISO Metric profile |
| thread_class | No | Thread class (e.g. '6g', '6H') | 6g |
| thread_length | No | Thread length in cm (only if is_full_length=false) | |
| is_full_length | No | Thread entire cylinder length | |
| thread_designation | No | Size designation (e.g. 'M10x1.5') | M10x1.5 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, idempotent=false, destructive=false, so safety is covered. The description adds a genuinely useful behavioral detail: the global unit convention (cm not mm, angles in degrees) applies unless a parameter overrides. It says nothing about what happens to a pre-existing thread, failure modes, or whether the operation is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and resource, followed by the unit caveat. The second sentence is slightly awkward in phrasing ('Unless a parameter says otherwise, lengths and coordinates are in cm') but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter, non-idempotent mutation tool with no output schema, the description covers mode and units but omits replacement semantics, error behavior, and any indication of what is returned. An agent can invoke it, but not fully predict its effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, so the schema documents most parameters itself, and the description's only addition is the repo-wide unit convention (cm/degrees). It does not clarify the near_x/near_y/near_z triple, the face_index tie-break, or valid thread_type/thread_class values beyond what the schema already says. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Add threads to a cylindrical face') plus the two modes (cosmetic or modeled), which is more than the title alone. No sibling tool covers threads, so there is nothing to disambiguate from in the sibling list, which keeps it just 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicit guidance appears in the schema (near_x 'Instead of face_index', is_internal 'Omit it: it is inferred') but the description itself gives no when-to-use/when-not-to-use or alternative-tool routing. Adequate but thin.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_torusCreate TorusA
Create a torus primitive (non-parametric via TemporaryBRepManager) Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | z | |
| center_x | No | ||
| center_y | No | ||
| center_z | No | ||
| major_radius | Yes | Distance from center to tube center | |
| minor_radius | Yes | Tube cross-section radius |
TDQS
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 meaningful behavioral context beyond annotations by stating that the torus is non-parametric via TemporaryBRepManager and that lengths/coordinates default to cm and angles to degrees.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is two sentences with no wasted words. The purpose is front-loaded, followed immediately by the unit caveat, making it easy to parse despite a minor punctuation gap.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple primitive-creation tool with annotations and no output schema, the description covers purpose, method, and units adequately. However, it omits side-effect context such as whether it adds a new body to the active design and does not route the agent among similar creation tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low at 33%, with only major_radius and minor_radius documented in the schema. The description compensates by specifying the critical unit convention for lengths, coordinates, and angles, which is absent from the schema and affects most numeric parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "Create a torus primitive." The parenthetical "non-parametric via TemporaryBRepManager" clarifies the creation method and distinguishes it from parametric primitive creators such as create_box_parametric, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like create_sphere, create_cylinder, or parametric creation tools. Usage is only implied by the tool name: call it when a torus primitive is needed.
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. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | Origin X (cm) | |
| y | No | Origin Y (cm) | |
| z | No | Origin Z (cm) | |
| name | No | UCS name | |
| angle_x | No | Rotation about X (degrees) | |
| angle_y | No | Rotation about Y (degrees) | |
| angle_z | No | Rotation about Z (degrees) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly=false, idempotent=false, destructive=false), but the description adds a genuinely non-obvious side effect: a hidden anchor sketch is created and must not be deleted. That is behavior an agent could not infer from the schema or annotations. It stops short of covering naming conflicts or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with what is created, then the side effect, then the unit convention. No filler and each sentence carries a distinct piece of information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter, all-optional tool with no output schema and no annotations beyond hints, the description covers purpose, units, preview status and the hidden-sketch caveat. It is slightly thin on the active-design/component context the UCS is created in and does not mention any return value, though nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter already carries a unit annotation, so the baseline is 3. The description earns above baseline by reinforcing the cross-cutting unit convention ('cm, not mm') and noting that per-parameter overrides exist, which guards against the common mm assumption in Fusion workflows.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a UCS') plus the key coordinate inputs and optional rotation. No sibling tool creates a UCS, so there is nothing to confuse it with, and the parenthetical version note adds precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description flags that this relies on the Fusion 2026+ UCS API and is in preview, which is real usage context, but it never states when to reach for this versus, say, create_construction_plane or create_construction_axis, nor any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_allDelete AllADestructive
Clear the design (delete all timeline items)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_bodyDelete BodyADestructive
Delete one named body (searches root and all components). Use this instead of undo to remove a body: API-created features are not reliably on Fusion's UI undo stack.
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | Yes | Body to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false. The description adds non-obvious context: the destructive operation spans root and all components, and it explains why undo is not a substitute. It stops short of stating irreversibility or what happens on a name miss, but the annotation carries the core safety signal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. The scope constraint is front-loaded before the alternative-tool guidance, which is the right order for an agent deciding whether to call it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter mutation tool with no output schema, the description plus annotations cover what is needed. It does not address behavior when the named body is absent or ambiguous across components, a minor gap given the 'searches root and all components' wording.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (body_name) and schema coverage is 100%, so the schema already documents it. The description's 'one named body' reinforces the parameter's intent, and 'searches root and all components' hints at semantics, but no additional syntax or formatting guidance is provided beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (delete) and resource (one named body) and clarifies scope: it searches the root and all components. This distinguishes it clearly from the sibling delete_all, which removes everything.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the alternative (undo) and gives the condition that selects this tool over it: API-created features are not reliably on Fusion's UI undo stack. This is a concrete when/when-not rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_parameterDelete ParameterBDestructive
Remove a user parameter
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Parameter name |
TDQS
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.
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.
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.
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.
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.
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) Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| angle | Yes | Draft angle in degrees | |
| body_name | Yes | ||
| face_selection | No | Which faces to draft | vertical |
| is_tangent_chain | No | Include tangent-connected faces | |
| pull_direction_plane | No | Plane defining the pull direction | xy |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, so the safety profile is covered. The description adds a useful unit convention (cm and degrees by default), but says nothing about reversibility, permission/body-state requirements, or whether the operation can fail on degenerate faces.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, with the core action front-loaded ahead of the unit caveat. No filler, though the trailing unit sentence could have been folded into the schema descriptions for the affected parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter, no-output-schema mutation tool with annotations covering the safety profile, the description is adequate but thinnest where it matters: it does not clarify how face_selection interacts with pull_direction_plane or how tangent chains are treated, leaving an agent to infer the geometry behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 80%, with enum values and defaults already documented for face_selection, pull_direction_plane, and is_tangent_chain. The description adds a global unit convention for lengths and angles, but the caveat 'unless a parameter says otherwise' is vague and no parameter is named, so it adds little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (add) and resource (draft angle to faces of a body) and gives the engineering rationale (mold release / injection molding). It is clearly distinguishable from nearby face-modifying siblings like offset_faces or split_face, though it does not name them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains why one would draft (mold release), but never states when to use this tool versus sibling alternatives such as offset_faces or shell, nor any prerequisites (e.g., body must exist, direction of pull drives face selection). No exclusions or context triggers are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draw_arcDraw ArcA
Draw an arc in the most recent sketch (center + start point + sweep angle) Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| start_x | Yes | ||
| start_y | Yes | ||
| start_z | No | ||
| center_x | Yes | ||
| center_y | Yes | ||
| center_z | No | ||
| sweep_angle | Yes | Sweep angle in degrees (positive = CCW) |
TDQS
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 useful unit context (cm, degrees) and sketch scope, but does not disclose whether an active sketch is required, what happens if none exists, or other behavioral constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences with no wasted text. The core action and scope are front-loaded, and the unit caveat follows immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and low parameter coverage, the description covers the basic action, sketch target, and units. However, it omits prerequisites such as requiring an active sketch and does not clarify the working plane or coordinate system, leaving notable gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 14%, so the description must compensate. It adds critical unit semantics for lengths and angles, but does not explain coordinate order, z-coordinate defaults, or the meaning of optional center_z/start_z beyond what parameter names imply.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Draw an arc in the most recent sketch.' It also names the geometric definition (center + start point + sweep angle), which distinguishes it from sibling draw_* tools like draw_circle and draw_line.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit when-to-use, when-not-to-use, or alternatives guidance. It implies an active sketch is needed by saying 'in the most recent sketch,' but it does not state that prerequisite or route the agent to sibling 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. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| radius | Yes | ||
| center_x | No | ||
| center_y | No | ||
| center_z | No |
TDQS
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 agent knows this is a non-destructive, non-idempotent mutation. The description usefully adds the unit convention (cm not mm, degrees), which is behaviorally relevant, but says nothing about what happens with no sketch present or how the new geometry affects downstream features.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the action front-loaded and the unit caveat attached; nothing is wasted and no filler is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations covering return values, the description covers the essential unit semantics but omits error/failure behavior (e.g., no active sketch) and any note on whether defaults place the circle at the sketch origin. Adequate but with clear gaps for a state-mutating tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. It clarifies the unit system for lengths and coordinates (cm) and angles (degrees), which is genuinely useful, but never explains that center_x/y/z define the circle center or that they default to 0; the reader must infer this from the parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Draw a circle') and scopes the target ('in the most recent sketch'), which meaningfully narrows it among drawing siblings like draw_rectangle, draw_arc, and draw_line. It is clear but does not 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to use this versus draw_arc, draw_rectangle, or create_polygon, nor any prerequisite such as requiring an existing/active sketch. The mention of 'most recent sketch' implies context but gives no explicit condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draw_lineDraw LineB
Draw a line in the most recent sketch. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| end_x | Yes | ||
| end_y | Yes | ||
| end_z | No | ||
| start_x | Yes | ||
| start_y | Yes | ||
| start_z | No |
TDQS
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 genuinely useful context not in structured fields: default units are cm (not mm) and angles are degrees. It does not, however, disclose failure modes (no sketch present) or which sketch is modified beyond 'most recent'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action before the convention caveat. Efficient overall, though the mention of angles in degrees earns little since this tool exposes no angle parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists and annotations only cover the safety profile, so the description is the agent's main source of detail for a 6-parameter geometry mutation. It delivers the critical unit convention but leaves prerequisites (existing sketch) and the coordinate system unexplained, leaving gaps for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 6 parameters, so the description carries the full burden. It supplies the unit convention (cm) and mentions angles in degrees, but the actual parameters are all coordinates and there are no angle parameters, so that clause is largely irrelevant and the z-default behavior and coordinate origin remain unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Draw a line') and scopes it to 'the most recent sketch', which distinguishes it from the rectangle/circle/arc/spline siblings without needing to open a schema. It stops short of explicitly contrasting with those siblings, so it is clear but not maximally differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance, and no alternative named (e.g., draw_spline for curves, draw_arc for arcs). The phrase 'in the most recent sketch' implies a sketch must already exist, but this prerequisite is only implicit rather than stated as a rule.
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. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| width | Yes | ||
| height | Yes | ||
| origin_x | No | ||
| origin_y | No | ||
| origin_z | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, so the mutation profile is covered. The description adds genuinely non-obvious unit conventions (cm not mm, degrees) but says nothing about failure when no sketch exists, what the call operates on, or whether the rectangle is added as a constrained entity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler, purpose front-loaded and the unit caveat placed second where it belongs. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no meaningful annotations, the description must carry more weight than it does. It omits prerequisites, failure modes, and return behavior for a 5-parameter mutation tool, leaving real gaps an agent would hit at call time.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 5 parameters, so the description must compensate and largely does not. It gives unit conventions but never explains what origin_x/y/z represent (corner vs. center) or clarifies width vs. height semantics, leaving the parameters effectively undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (draw) and resource (rectangle) plus the target context (the most recent sketch), which no sibling tool claims. It does not explicitly distinguish itself from draw_line/draw_circle, but the scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'in the most recent sketch' implies the tool requires an existing sketch, which is useful context, but it never states this as a prerequisite or says when to prefer a rectangle over draw_line/create_box. Usage is inferable but not spelled out.
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. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| degree | No | Spline degree (only for control_points, 3 or 5) | |
| points | Yes | Array of [x,y] or [x,y,z] points | |
| spline_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, covering the safety profile. The description adds valuable behavioral context beyond annotations: it specifies that the spline is drawn in the most recent sketch and that lengths/coordinates default to cm and angles to degrees, which is essential for correct invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the primary action and context, followed by parameter guidance and then unit defaults. Every sentence adds necessary information with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple drawing tool with three parameters and no output schema, the description covers the essential context: action, target sketch, spline type semantics, and units. It does not state whether a sketch must already exist or what happens if none is active, but those gaps are minor given the tool's scope and the annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% (degree and points documented; spline_type enum lacks a description). The description compensates by explaining the meaning of the two spline_type enum values and by adding unit context (cm, degrees) for coordinate values, which the schema does not provide. The degree parameter is already covered, so this is not a full 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (draw) and resource (spline) plus the context (most recent sketch), making it immediately distinguishable from sibling drawing tools like draw_line or draw_arc. No ambiguity remains 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear guidance for choosing between the two spline_type values (fit_points vs control_points), but it does not explicitly say when to use draw_spline over alternatives such as draw_arc or create_polygon. Usage is only implied by the tool's name and the prerequisite of an active sketch.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_codeExecute CodeADestructive
Run arbitrary Python in Fusion 360. The last expression's value is returned (REPL-style). Pre-defined names: app, ui, design, component, adsk, math, late_results. The add-in waits 30 s by default; pass timeout_s (max 600) for a script that runs many features on a large timeline. A command that times out while running still finishes; its result is kept and late_results() returns it. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| timeout_s | No | Seconds to wait for the script (default 30). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the safety profile (destructive, non-idempotent). The description goes well beyond that: it discloses the REPL return convention, the pre-injected names (app, ui, design, component, adsk, math, late_results), the 30 s default wait, and the non-obvious fact that a timed-out command still completes and its result is retrievable via late_results(). That timeout semantics detail is exactly the kind of behavior an agent cannot infer elsewhere.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded: purpose, return convention, available names, timeout behavior, then units. Every sentence carries information, though the late_results clause is stated twice in slightly different terms.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description defines the return convention (last expression value, late_results) so the agent knows what it will get back. For an arbitrary-code tool with no annotations covering behavior, this covers the semantics an agent needs to call it safely and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (timeout_s documented in schema, code not). The description compensates by explaining the timeout behavior, the 600 s ceiling in context, and adding unit conventions (cm, degrees) that govern the free-form code parameter. It does not describe any constraint on the code string itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Run arbitrary Python in Fusion 360') and immediately narrows the semantics with 'REPL-style' return behavior. This clearly separates it from every sibling, all of which are narrow CAD operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains when to raise timeout_s ('a script that runs many features on a large timeline'), but never states when to prefer this escape hatch over the dedicated siblings like extrude or fillet, nor any when-not-to-use conditions. Usage is implied rather than guided.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Output format. Inferred from file_path extension if omitted. | |
| body_name | No | Body to export (required for stl/step) | |
| file_path | No | Destination path (default: ~/Desktop/<name>.<ext>) |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | No | Destination path (default: ~/Desktop/<design_name>.f3d) |
TDQS
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.
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.
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.
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.
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.
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_flat_pattern_dxfExport Flat Pattern DXFA
Export the flat pattern of a sheet metal body as DXF, for laser, plasma or waterjet cutting (run flat_pattern first)
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | Yes | ||
| file_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, so the write/no-destroy profile is covered. The description usefully adds the prerequisite dependency on flat_pattern, but says nothing about file overwrite behavior, default output location, or what happens when the body has no flat pattern — notable gaps given idempotentHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the action, resource and format, with the prerequisite appended in parentheses. Zero wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no parameter documentation, leaving the agent without return values (e.g., resulting file path), path semantics, or error conditions. For a file-producing, non-idempotent tool with 0% schema coverage, the definition is too thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for both parameters, so the description must carry parameter meaning. It only loosely implies body_name (a sheet metal body) and file_path (a DXF destination); it never states that body_name must be an existing sheet-metal body with a generated flat pattern, nor whether file_path is a full filename or a directory, or what the default is.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (export), a specific resource (the flat pattern of a sheet metal body), and a concrete output format (DXF), plus the downstream intent (laser/plasma/waterjet cutting). This clearly separates it from the many sibling export_* tools (export_stl, export_step, export_f3d, export_view_sheet), which handle different artifacts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the precondition 'run flat_pattern first', which is exactly the routing information an agent needs before calling. It does not name alternatives or state when NOT to use it (e.g., non-sheet-metal bodies), 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.
export_stepExport STEPB
Export a body or component as a STEP file
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | Yes | ||
| file_path | No | Destination path (default: ~/Desktop/<name>.step) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | Yes | ||
| file_path | No | Destination path (default: ~/Desktop/<name>.stl) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Free-form notes rendered below the views. Newlines preserved; HTML is escaped. | |
| title | No | Heading shown on the sheet (default: document name). | |
| views | No | Ordered list of views to render (default: iso, front, top, right). | |
| image_size | No | [width, height] in pixels (default [1200, 900]). | |
| output_dir | No | Destination folder (default: ~/Desktop/<doc>_views_<timestamp>). |
TDQS
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.
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.
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.
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.
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.
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 CurveB
Extend a sketch curve to the nearest intersection. The end nearest to the given point is extended. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| point_x | Yes | X near the end to extend | |
| point_y | Yes | Y near the end to extend | |
| curve_index | Yes | Index of the curve to extend | |
| sketch_name | No |
TDQS
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 description's job is supplementary. It usefully discloses the unit convention (cm not mm, angles in degrees) and which end is affected, but says nothing about the non-idempotent character of repeated calls or what happens when no intersection exists in the extension direction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler, and the core action is front-loaded ahead of the units caveat. Every clause carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists and the tool has a mutation with a non-idempotent hint, yet the description omits failure behavior (no intersection found, point not near a curve end) and leaves sketch_name entirely undocumented. The units clarification helps, but the definition is not complete for a 4-parameter editing operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, so the point_x/point_y/curve_index meanings are already documented in the schema. The description adds only the global unit convention; it does not explain the undocumented sketch_name parameter or how the point relates to curve selection beyond the schema's own wording.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Extend a sketch curve') plus the precise scope of the action ('to the nearest intersection'), which lets an agent distinguish it from trim_curve or offset_curve. It stops short of naming any sibling explicitly, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose this over trim_curve or offset_curve, and no prerequisites or preconditions (e.g. sketch must be active or in edit mode are never mentioned). The only usage-like content is the mechanical note that the end nearest the given point is extended, which describes behavior rather than when-to-use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extrudeExtrudeA
Extrude a sketch profile. For operation cut/intersect, pass target_body_name whenever the document has more than one body — confirmed live that leaving it unset cuts EVERY body the tool geometrically reaches, not just an intended target. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| height | Yes | ||
| direction | No | positive | |
| operation | No | new_body | |
| profile_index | No | ||
| target_body_name | No | For operation cut/intersect: restrict the cut to this body only. Without it, EVERY body within geometric reach of the tool gets cut, including unrelated ones elsewhere in the document — confirmed live, not a theoretical risk. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations: it explicitly warns that omitting target_body_name in cut/intersect mode cuts EVERY body the tool geometrically reaches, and states unit conventions (cm, degrees). These are exactly the behavioral facts an agent cannot derive from readOnlyHint/idempotentHint/destructiveHint. Note the tension with destructiveHint=false, but the description is not claiming a different operation type, so it is not a direct contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the purpose and the safety-critical warning. The target_body_name caution largely duplicates the schema's own description text, which is the only redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-param, no-output-schema mutation tool, the critical gaps are covered: units, the collateral-cut risk, and the target_body_name mitigation. Missing minor items such as the meaning of profile_index or behavior when no skippable profile exists keep it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema coverage at only 20%, the description carries most of the load and does so for the highest-risk items: the cm/degree unit convention (a classic CAD footgun) and the consequences of an unset target_body_name. It leaves profile_index and direction semantics to the schema/defaults, so it is not fully compensatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Extrude a sketch profile'), which cleanly separates it from revolve, loft, and sweep, all of which need different inputs. It does not name or contrast against those siblings, so it stops short of the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a conditional rule for a *parameter* (pass target_body_name for cut/intersect when multiple bodies exist), but nothing about when to choose extrude over revolve/loft/sweep, which is the real selection problem here. Usage is implied by 'sketch profile' rather than stated.
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. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| x_max | No | Keep only edges lying entirely at X <= x_max (cm). | |
| x_min | No | Keep only edges lying entirely at X >= x_min (cm). | |
| y_max | No | Keep only edges lying entirely at Y <= y_max (cm). | |
| y_min | No | Keep only edges lying entirely at Y >= y_min (cm). | |
| z_max | No | Keep only edges lying entirely at Z <= z_max (cm). | |
| z_min | No | Keep only edges lying entirely at Z >= z_min (cm). Combine with z_max and edge_selection='all' to pick an edge ring at an intermediate height — 'top'/'bottom' only reach the body's extreme Z. | |
| radius | Yes | ||
| body_name | No | Body name (preferred) | |
| convexity | No | Keep only inside-corner (concave) or outside-corner (convex) edges. Mixing both at shared vertices makes Fusion fail with ASM_BL_CANNOT_REORDER; split them into two calls. | any |
| body_index | No | ||
| edge_selection | No | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the mutation/safety profile is partially covered, and the description adds a genuinely useful non-obvious convention (cm not mm, degrees). However, it says nothing about idempotency, whether the operation is reversible/undoable, or the known failure mode when mixing convex and concave edges, all of which matter for a non-idempotent mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, with the core action front-loaded and the unit caveat immediately after. Nothing is repeated from the schema and every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter, non-idempotent mutation with no output schema, the description covers units but omits body-targeting expectations, the interplay of edge_selection with the min/max filters, and error behavior. The schema picks up some of this slack, so the definition is workable but leaves real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 73%, and the schema itself documents the bounding-box filters in cm, so much of the parameter meaning is already in structured fields. The description contributes a global unit convention that covers the undocumented required 'radius' parameter, but adds no detail on the enum semantics or how the filters compose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Round edges of a body" gives a specific verb plus resource and clearly reads as a modeling operation, but it never distinguishes itself from the sibling chamfer tool, which is the most likely confusion point. An agent can identify the action but not confidently rule out the alternative from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of prerequisites (a body must exist), and no routing to chamfer or shell for adjacent tasks. The only usage-adjacent content is the unit convention, which is a formatting note rather than selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flat_patternFlat PatternA
Create the flat pattern of a sheet metal body (run convert_to_sheet_metal first)
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | Yes | ||
| face_index | No | Stationary face. Default: largest planar face |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-idempotent, non-destructive operation, so the safety profile is covered. The description adds the prerequisite state needed to call it, but says nothing about what feature is created, whether an existing flat pattern is replaced, or whether a flat pattern already existing causes an error.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with the action front-loaded and the prerequisite in a parenthetical. Every word earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter, no-output-schema mutation, the description covers the essential prerequisite but omits the result semantics (what flat pattern artifact is produced, and whether it can be exported afterward via export_flat_pattern_dxf). Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: face_index is documented in the schema (stationary face, default largest planar face) while body_name is undocumented. The description partially compensates by specifying the body must be a sheet metal body, but adds nothing about face_index or how face selection interacts with the flat pattern orientation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Create) and resource (flat pattern of a sheet metal body), which cleanly distinguishes it from siblings like fold_sheet_metal and export_flat_pattern_dxf. An agent can tell what it produces without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical 'run convert_to_sheet_metal first' is an explicit prerequisite and implicitly routes the agent to that sibling. It doesn't state when not to use it or what happens if the body isn't already sheet metal, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fold_sheet_metalFold Sheet MetalA
Bend a sheet metal body along a line of the last sketch. Draw the line on the sheet face with draw_line first. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | Yes | ||
| bend_angle | Yes | Degrees | |
| face_index | No | Stationary face. Default: largest planar face | |
| line_index | No | Line in the last sketch. Default: last line | |
| line_position | No | ||
| allow_bend_relief | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, idempotent=false, destructive=false, so the mutation/repeat profile is known. The description usefully adds a global units caveat (cm, not mm; degrees) and the sketch prerequisite, but says nothing about whether the body is modified in place, how bend relief is chosen, or whether the operation is undoable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action, then the prerequisite, then the units caveat. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter mutation tool with 50% schema coverage and no output schema, the description supplies the crucial units convention and sketch precondition but omits the meaning of line_position and allow_bend_relief and any statement of return/result, leaving gaps an agent must guess at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: bend_angle's 'Degrees' and the face/line defaults are already in the schema. The description adds a genuinely useful cross-cutting note that lengths and coordinates default to cm rather than mm, but it leaves line_position's enum values and allow_bend_relief unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (bend) and resource (sheet metal body) with the exact mechanism (a line of the last sketch), which cleanly separates it from neighbors like extrude, revolve, and flat_pattern. An agent can identify the operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit prerequisite and routes to the sibling tool: 'Draw the line on the sheet face with draw_line first.' There is clear context for use, though no explicit when-not or alternative for the case of bending without a sketch line.
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 BoxARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Body or component name |
TDQS
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.
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.
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.
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.
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.
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 TypeARead-onlyIdempotent
Check if the design is in parametric or direct mode. Use this to detect accidental mode switches.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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 InfoBRead-onlyIdempotent
Get detailed info about a named body or sketch. Bounding box in cm.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Object name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety behavior is covered. The description adds useful context that the result includes bounding box information measured in cm. Beyond that, it does not describe what else the 'detailed info' contains or how missing objects 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. It front-loads the main action and follows with the most concrete return detail, the bounding box unit. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with one fully described parameter and safety annotations, the definition is adequate but thin. Because there is no output schema, the description should explain the return contents more fully; 'detailed info' is vague and only the bounding box unit is specified. This leaves the agent unsure what fields or measurements will actually be returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter has a schema description of 'Object name.' The description adds marginal value by clarifying that the named object can be a body or a sketch. This is a baseline case where the schema already documents the parameter, so a 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get detailed info about a named body or sketch.' It scopes the object types to bodies and sketches, which narrows the request. However, it does not differentiate this tool from siblings like get_bounding_box, get_scene_info, or get_physical_properties, leaving some ambiguity about exactly what 'detailed info' means.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives. The description mentions named bodies and sketches, which implies a use case, but it does not say when to choose it over get_bounding_box, get_scene_info, or get_parameters. No exclusions or prerequisites are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_parametersGet ParametersBRead-onlyIdempotent
List all user parameters in the design
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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 PropertiesBRead-onlyIdempotent
Get mass, volume, surface area, center of mass, and density of a body. Returns mass in kg, volume in cm³, area in cm², density in kg/cm³ and center of mass in cm.
| Name | Required | Description | Default |
|---|---|---|---|
| accuracy | No | medium | |
| body_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered structurally. The description adds genuinely useful behavioral context by specifying output units (kg, cm³, cm², kg/cm³, cm) — which annotations cannot convey — but says nothing about accuracy semantics or how the accuracy setting affects results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler; the returned-property list is front-loaded and the units sentence directly follows. Efficient, though the second sentence could have been spent on the accuracy parameter rather than pure return formatting.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description helpfully documents return fields and units, which is the right use of space. However, for a tool exposing a four-level accuracy enum with zero schema documentation, the omission leaves the most consequential calling decision unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden for two parameters, yet it never mentions body_name or accuracy. The enum parameter accuracy (low/medium/high/very_high) has meaningful tradeoffs distinctly unexplained — an agent cannot tell whether 'high' costs performance or changes fidelity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get) and enumerates the exact resources returned: mass, volume, surface area, center of mass, density of a body. This distinguishes it from measurement siblings like measure_distance or measure_angle, though it never names an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus get_object_info, get_bounding_box, or measure_distance, all of which could plausibly supply overlapping physical data. The agent must infer the selection context from the description alone.
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 InfoBRead-onlyIdempotent
Get design name, bodies, sketches, features, camera info
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| units | No | Source mesh units (default: mm) | mm |
| file_path | Yes | Absolute path to mesh file (.stl/.obj/.3mf) | |
| component_name | No | Target component name (omit for root component) |
TDQS
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.
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.
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.
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.
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.
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 ComponentsBRead-onlyIdempotent
List all components in the design
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
loftLoftC
Loft between two or more sketch profiles
| Name | Required | Description | Default |
|---|---|---|---|
| operation | No | new_body | |
| target_body_name | No | For operation cut/intersect: restrict it to this body. Without it EVERY body the tool reaches is cut. | |
| profile_sketch_names | Yes | Ordered list of sketch names whose first profile will be lofted |
TDQS
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 agent knows this is a non-destructive, non-idempotent mutation. However, the description adds no further behavioral context such as what bodies are created or modified, how operation modes (new_body, join, cut, intersect) affect outcomes, or any side effects. It only restates the tool's purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no waste, but it is under-specified for a tool with three parameters and multiple operation modes. Appropriately sizing the description would require including key usage or behavioral details, so its extreme brevity is a liability rather than a virtue.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a loft operation with an operation enum and target body option, and the absence of an output schema, the description omits critical context. It does not explain how the operation parameter affects the result, nor does it mention the target_body_name restriction warning that appears in the schema, leaving an agent without enough guidance for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, with target_body_name and profile_sketch_names having descriptions, while the operation enum lacks a description. The tool description itself provides no parameter semantics at all, failing to compensate for the moderate coverage gap. It adds no meaning beyond what the schema already conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Loft between two or more sketch profiles.' This clearly conveys the core operation, distinguishing it from other modeling tools like extrude or sweep, though it does not explicitly name alternatives. The scope is well understood for a CAD agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance or alternatives are provided. The description neither mentions when loft is preferred over siblings like extrude, sweep, or revolve, nor does it outline prerequisites or conditions for use. It merely states what the tool does.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
measure_angleMeasure AngleARead-onlyIdempotent
Measure the angle between one face of each of two bodies (picked by index — defaults to each body's first face).
| Name | Required | Description | Default |
|---|---|---|---|
| entity_one | Yes | First body's name | |
| entity_two | Yes | Second body's name | |
| face_index_one | No | Face index on the first body | |
| face_index_two | No | Face index on the second body |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds only the default-selection behavior (first face), which is mostly a parameter detail; it says nothing about units, precision, or what happens with invalid face indices.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the core action first and the selection/default rule in a compact parenthetical. No waste, nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should say something about the return value — at minimum the unit (degrees vs radians) or format — and it does not. For a measurement tool that omission is a real gap, though the input contract itself is fully specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented in the schema, including defaults of 0. The description's 'defaults to each body's first face' merely restates the schema default, adding no new syntax or constraint information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Measure the angle') plus the precise scope: one face of each of two bodies, selected by index. That is enough to separate it functionally from siblings like measure_distance and get_bounding_box, though it never names an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (you need an angular measurement between two bodies' faces) and explains the default face selection, but offers no explicit when-to-use vs measure_distance or when-not-to-use guidance. Adequate but leaves routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
measure_distanceMeasure DistanceARead-onlyIdempotent
Measure minimum distance between two entities. Returns the distance and closest points in cm.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_one | Yes | First entity name (body, sketch, or point 'x,y,z') | |
| entity_two | Yes | Second entity name or point |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds useful non-annotation context by specifying that it returns both the distance and closest points, with the unit in cm.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero waste. The core operation is front-loaded, and the return information follows immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only measurement tool with fully described parameters and safety annotations, the description is nearly complete. It covers the return shape and unit, though it could clarify the coordinate context of the returned closest points.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are fully documented in the schema. The description does not add meaning beyond the schema's entity-type guidance, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific operation (measure minimum distance) and target (between two entities), clearly distinguishing it from sibling measurement tools like measure_angle or get_bounding_box. An agent can tell what it does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool does but gives no guidance on when to use it versus alternatives such as measure_angle, get_bounding_box, or check_interference. There are no preconditions, exclusions, or routing hints.
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
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | No | ||
| body_index | No | ||
| mirror_plane | Yes |
TDQS
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.
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.
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.
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.
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.
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 BodyA
Move a named body: optional rotation (angle, degrees) about an axis parallel to x/y/z through (pivot_x, pivot_y, pivot_z), then translation by (x, y, z). Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| z | No | ||
| axis | No | z | |
| angle | No | Rotation in degrees (right-hand rule about +axis) | |
| pivot_x | No | ||
| pivot_y | No | ||
| pivot_z | No | ||
| body_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare it as a non-destructive, non-idempotent mutation, so the safety profile is covered. The description adds genuinely useful behavior beyond that: the rotation-then-translation ordering, the pivot-based rotation model, the right-hand axis convention, and a units caveat (cm and degrees rather than mm). It stops short of saying what happens on an unknown body name or whether the move is undoable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the verb and resource, then the operation sequence, then the units contract. Every clause carries information; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter mutation tool with no output schema, the description supplies the geometric semantics and unit conventions an agent needs to call it correctly. Remaining gaps are modest: error behavior for a missing body name, default behavior when only body_name is supplied, and interaction with any design history.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 11% (only 'angle' is documented), so the description must compensate. It does well: it explains that x/y/z are a translation, that pivot_x/y/z define the rotation point, that axis is the rotation axis, and that lengths are in cm while angles are in degrees. Defaults and the required body_name remain undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Move a named body') and details the two composed operations (rotation about a pivot axis, then translation), which cleanly separates it from scale_body and mirror without naming them. It lacks explicit sibling disambiguation, but the operation semantics are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the operation description (use to reposition/rotate an existing body), but there is no guidance on when to prefer this over mirror, scale_body, or pattern tools, nor any prerequisites (does the body need to be a standalone body vs a component?).
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. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| curve_index | Yes | Index of a curve in the connected loop | |
| direction_x | No | X of direction point | |
| direction_y | No | Y of direction point | |
| sketch_name | No | Sketch name (default: most recent) | |
| offset_distance | Yes | Offset distance (cm) |
TDQS
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 agent knows this mutates state, is not idempotent, and is non-destructive. The description adds a genuinely useful unit convention (cm not mm, degrees), but says nothing about whether a new curve is created or the original is modified, or about error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action, and the unit caveat is a non-obvious detail that earns its place. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should say more about the result — whether a new curve is added and whether the original curve is affected. Units and direction are covered, which is above average, but the mutation outcome is unspecified for a non-idempotent write operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description reinforces the unit convention for offset_distance and explains that direction comes from direction_x/direction_y, but adds no syntax or range detail beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Offset connected sketch curves by a distance.' The 'sketch curves' scoping implicitly differentiates it from the sibling offset_faces, though no sibling is named explicitly. An agent can identify the operation and its target geometry.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains how direction is determined but gives no guidance on when to choose this tool over alternatives such as offset_faces, nor any prerequisites (e.g., an active sketch must exist). Usage context is left entirely to inference.
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. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| distance | Yes | Offset distance in cm (positive = outward) | |
| body_name | Yes | ||
| face_indices | No | Specific face indices (overrides face_selection) | |
| face_selection | No | Which faces to offset | top |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it is a non-read-only, non-idempotent, non-destructive mutation, so the safety profile is partly covered. The description adds a genuinely useful cross-cutting rule about default units (cm not mm). However, it does not say whether the change is reversible/undoable, what happens to invalid face indices, or how face_selection interacts with body shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, action first, unit caveat second. Nothing redundant and no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating geometry tool with no output schema and only partial annotation detail, the description covers the operation and units but omits error behavior, undo semantics, and how face_indices vs face_selection precedence resolves. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75% and already documents distance (cm, positive = outward) and face_selection, but the description adds a global unit convention ('unless a parameter says otherwise... cm not mm, angles in degrees') that the schema cannot express locally. body_name remains undocumented, so it is not a full 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+mechanism (push/pull faces of a body by a distance), which an agent can distinguish from adjacent tools like draft_faces, split_face, or scale_body. It does not explicitly name or contrast with those siblings, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, or alternative guidance is given. The agent has no signal for choosing this over draft_faces or scale_body, nor any prerequisite (e.g., an active design, existing body) spelled out.
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
| Name | Required | Description | Default |
|---|---|---|---|
| continuity | No | connected | |
| sketch_name | Yes | Sketch with boundary curves | |
| profile_index | No |
TDQS
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.
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.
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.
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.
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.
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.
pingPingARead-onlyIdempotent
Health check — returns immediately without touching Fusion API
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| is_linked | No | True = parametrically linked to source geometry | |
| sketch_name | No | Target sketch (default: most recent) | |
| source_name | Yes | Name of body or edge to project |
TDQS
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.
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.
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.
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.
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.
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 PatternA
Pattern a body in rows and columns. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| x_count | No | ||
| y_count | No | ||
| body_name | Yes | ||
| x_spacing | No | Spacing between columns (cm) | |
| y_spacing | No | Spacing between rows (cm) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, covering the mutation safety profile. The description adds useful unit behavior ('cm not mm' and degrees) but omits whether the original body is preserved, what result is produced, and whether repeated calls are safe.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, with the purpose front-loaded and the global unit caveat second. Every sentence earns its place and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a non-readonly CAD pattern tool, the description states purpose and units but omits selection guidance versus circular_pattern, whether new bodies are created or the original is modified, and what is returned. Annotations cover safety, but usage and outcome context remain incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 40%: x_spacing and y_spacing have descriptions, but body_name, x_count, and y_count do not. The description clarifies default units for lengths and coordinates (cm) and angles (degrees), adding meaning beyond the schema, but it does not explain count parameters or the required body_name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'Pattern' and resource 'a body' with scope 'in rows and columns', which directly distinguishes it from the sibling circular_pattern. An agent can identify the operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no when-to-use guidance, prerequisites, or alternatives. It does not mention circular_pattern or explain when rectangular patterning is preferable. Only unit convention is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_bodyRename BodyAIdempotent
Rename a body (searches root and all components)
| Name | Required | Description | Default |
|---|---|---|---|
| new_name | Yes | New name for the body | |
| body_name | Yes | Current body name |
TDQS
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.
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.
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.
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.
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.
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 ViewportARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| fit | No | Call Viewport.fit() before capture | |
| view | No | Camera preset; 'current' preserves the existing view | current |
| width | No | ||
| height | No |
TDQS
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.
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.
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.
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.
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.
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.
revolveRevolveB
Revolve a sketch profile around an axis. For operation cut/intersect, pass target_body_name whenever the document has more than one body — confirmed live that leaving it unset cuts EVERY body within the revolve's sweep, not just an intended target (it sliced two unrelated bodies elsewhere in the document purely because they sat within the sweep radius). Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| angle | Yes | Revolve angle in degrees | |
| operation | No | new_body | |
| axis_origin_x | No | ||
| axis_origin_y | No | ||
| axis_origin_z | No | ||
| profile_index | No | ||
| axis_direction_x | No | ||
| axis_direction_y | No | ||
| axis_direction_z | No | ||
| target_body_name | No | For operation cut/intersect: restrict the cut to this body only. Without it, EVERY body within the revolve's sweep radius around the axis gets cut, including unrelated ones — confirmed live, not a theoretical risk. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description contradicts the destructiveHint=false annotation. It explicitly warns that cut/intersect with target_body_name unset will cut EVERY body within the revolve's sweep and cites a live incident where unrelated bodies were sliced. That is destructive behavior, so the annotation and description are inconsistent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly written sentences: purpose first, then the critical safety warning, then units. The warning is long but every clause earns its place by preventing a confirmed destructive mistake. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter CAD tool with no output schema and low schema coverage, the description covers the most important safety issue and unit conventions. But it leaves many parameters semantically opaque and includes a destructive warning that conflicts with the destructiveHint=false annotation, reducing trust in the tool contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20%, so the description must compensate. It adds critical meaning for target_body_name and clarifies that lengths/coordinates are in cm and angles in degrees. But operation enum values, axis_origin_* / axis_direction_* semantics, and profile_index remain unexplained in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource: 'Revolve a sketch profile around an axis.' It clearly identifies the operation. It does not differentiate from siblings like extrude, sweep, or loft, so it falls 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a strong conditional rule for operation cut/intersect: pass target_body_name when the document has more than one body. However, it does not say when to choose revolve over alternatives such as extrude or sweep, nor does it explain when to use new_body versus join. Usage is implied rather than fully guided.
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. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | Yes | Uniform scale factor | |
| scale_x | No | X scale (overrides uniform scale) | |
| scale_y | No | Y scale | |
| scale_z | No | Z scale | |
| anchor_x | No | Scale anchor point X | |
| anchor_y | No | Scale anchor point Y | |
| anchor_z | No | Scale anchor point Z | |
| body_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, so safety/mutation status is already structured. The description adds genuinely useful behavioral context about measurement units (cm, degrees), but omits what non-idempotence means in practice (scaling is cumulative/compounding) and whether downstream features are affected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, with the core action front-loaded and the unit caveat trailing. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter mutation tool with no output schema, the description covers the action and units but leaves the result unspecified: no mention of the returned value, how scale_x/y/z override interplay behaves, or whether the operation compounds across calls. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 88%, so the schema already documents nearly every parameter, making 3 the baseline. The description goes beyond it by supplying the unit convention for lengths, coordinates, and angles, which the schema never states – a real gap-filler for the anchor_x/y/z and scale parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Scale a body') and explicitly covers both modes (uniform or non-uniform), which lets an agent match it to a scaling operation. It does not distinguish itself from nearby transform siblings such as move_body or mirror, but the purpose itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no alternatives, and no prerequisites. An agent must infer from the name alone that this is the tool for resizing geometry rather than, say, move_body or create_box_parametric.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_appearanceSet AppearanceBIdempotent
Assign a material appearance to a body, face, or component from the Fusion appearance library
| Name | Required | Description | Default |
|---|---|---|---|
| face_index | No | Face index (if target_type=face) | |
| target_name | Yes | Name of body or component | |
| target_type | No | body | |
| appearance_name | Yes | EXACT library appearance name, in the Fusion UI's own display language — not necessarily English. Confirmed live: on a pt-BR install, names are 'Aço - Acetinado', not 'Steel - Satin' (English names raise a clear 'not found' error with close matches from the real library, not a silent failure). |
TDQS
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 adds nothing beyond that — it does not say existing appearance assignments are overwritten, nor what happens if the name is not found (that detail lives only in the schema).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the verb and scope front-loaded and no filler. It is appropriately sized for a simple setter, though there is no additional structure to earn a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should ideally say what a successful (or failed) assignment returns. For a straightforward idempotent setter with annotation coverage and a well-documented schema, the description is minimally adequate but leaves the return/confirmation behavior unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75%, so the schema already documents the parameters, including the valuable note that appearance_name must match the UI display language. The description contributes no parameter meaning of its own, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (assign), resource (material appearance), and valid targets (body, face, component) from a named library. It is clear what the tool does, but it never distinguishes itself from the sibling set_color, which an agent will likely confuse with this.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the target list, but there is no explicit when-to-use guidance, no statement of when to prefer set_appearance over set_color, and no indication of prerequisites (e.g., the target must exist or be named exactly).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_colorSet Body ColorAIdempotent
Assign a flat RGB color to a body (creates/reuses a design-local appearance). Useful for visually distinguishing parts before render_view. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| red | Yes | ||
| blue | Yes | ||
| green | Yes | ||
| opacity | No | 1.0 = opaque, 0.0 = invisible | |
| body_name | Yes | Body name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare the safe/idempotent profile (readOnlyHint=false, idempotentHint=true, destructiveHint=false), so the bar is lower. The description adds real behavioral detail beyond them: the call creates or reuses a design-local appearance rather than merely mutating a scalar, which explains the idempotency and the side effect on the design's appearance list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are tight and front-loaded. The third sentence is a canned units disclaimer that does not earn its place, since set_color takes no length, coordinate, or angle parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter mutation tool with no output schema but with annotations covering safety and idempotency, the description covers purpose, side effect, and intended workflow. The remaining gap - behavior when body_name does not resolve, and whether an existing appearance is replaced or shared - is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 40%, so the description needs to compensate for red/green/blue, which are undocumented in the schema; 'flat RGB color' only loosely implies the 0-255 channel semantics that the schema's numeric bounds actually carry. The unit note (cm, degrees) is irrelevant to this tool's parameters, so it adds no semantic value here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Assign a flat RGB color to a body.' It adds the mechanism ('creates/reuses a design-local appearance') and a motivating outcome ('visually distinguishing parts before render_view'). It stops short of naming the obvious sibling set_appearance, so the boundary between the two is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one concrete when-to-use cue ('before render_view'), which is helpful context. However it never states when-not to use it, nor points to set_appearance for non-flat/materials or textures, so the agent must infer the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_design_typeSet Design TypeAIdempotent
Switch design type between 'parametric' and 'direct'. Use 'parametric' to recover from accidental direct-mode switches (equivalent to Capture Design History in the UI).
| Name | Required | Description | Default |
|---|---|---|---|
| design_type | Yes | Target design type |
TDQS
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.
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.
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.
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.
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.
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_parameterSet ParameterAIdempotent
Update the value of an existing user parameter. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Parameter name | |
| value | Yes | New numeric value, expressed in the unit the parameter already declares |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, idempotent, non-destructive behavior, so the safety profile is covered. The description adds the useful unit convention (cm and degrees by default), but says nothing about rebuild/regeneration side effects or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no waste, with the core action front-loaded and the unit caveat properly placed second.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation whose safety annotations are already supplied, the description plus schema is nearly complete. The only minor gap is whether setting a value triggers a model rebuild, which an agent might care about.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description goes beyond the schema by stating the default unit convention (cm for lengths, degrees for angles), clarifying the schema's more abstract 'unit the parameter already declares'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Update the value') and resource ('existing user parameter'), which cleanly separates it from create_parameter, delete_parameter, and get_parameters. It is clear but 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'existing' implies the parameter must already exist, hinting at the boundary with create_parameter, but there is no explicit when-to-use guidance or stated prerequisites. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shellShell BodyA
Hollow out a body, removing the selected planar face(s) as the opening. top/bottom = the +Z/-Z facing face(s) at the body's extreme Z; up_facing/down_facing = every +Z/-Z facing planar face (e.g. a stepped rim), optionally limited by z_min/z_max. Returns faces_removed and removed_face_z. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| z_max | No | ||
| z_min | No | ||
| body_name | No | ||
| thickness | Yes | ||
| body_index | No | ||
| face_selection | No | top |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare a non-destructive, non-idempotent mutation, so the safety profile is covered. The description adds valuable context beyond annotations: the return values ('faces_removed and removed_face_z') and a global units clarification (cm and degrees), which are important behavioral details for correct invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with a clear structure: purpose first, then face-selection semantics, then return values and units. Every sentence is informative and front-loaded, with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter mutation tool with no output schema and zero schema descriptions, the description covers the most complex aspects (face selection, units, returns) well. The main gap is the lack of any mention of body selection parameters (body_name, body_index) or the thickness parameter, though the latter is required and its name is largely self-explanatory.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the burden. It successfully clarifies the face_selection enum values and the role of z_min/z_max, but it says nothing about thickness, body_name, or body_index, leaving three of six parameters undocumented anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Hollow out') and resource ('a body'), and clarifies the mechanism ('removing the selected planar face(s) as the opening'), which distinguishes it from other body-modifying siblings like fillet or chamfer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the face selection options (top/bottom/up_facing/down_facing) and the optional z_min/z_max limits, which is useful for using the tool correctly. However, it doesn't specify when to use shell vs alternatives like offset_faces or thicken_surface, nor does it state prerequisites such as needing a solid body.
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
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | Yes | ||
| extend_tool | No | Extend tool to cut through entire body | |
| splitting_body | No | Name of a body/surface to use as splitting tool (overrides plane) | |
| splitting_plane | No | Plane to split with (or use splitting_body) | xy |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | Yes | ||
| extend_tool | No | ||
| face_indices | No | Indices of faces to split (default: all faces) | |
| splitting_plane | No | xy |
TDQS
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.
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.
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.
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.
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.
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. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| tolerance | No | Stitch tolerance (cm) | |
| body_names | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, so the safety profile is covered. The description adds a genuinely useful unit convention (cm and degrees), but it omits whether the input bodies are consumed by the stitch, what happens on tolerance failure, and that at least two bodies are required — all relevant for a mutating operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core action front-loaded and the units caveat second. No filler, though the second sentence is a broad convention statement rather than tool-specific detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter mutation tool with no output schema and no annotations covering side effects, the description leaves real gaps: whether input bodies survive the operation, the minimum-two-bodies constraint, and any failure conditions. The units note helps but does not fill those behavioral holes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: tolerance is documented as '(cm)', but body_names has no description. The description partially compensates by clarifying that lengths are in cm not mm, which disambiguates the tolerance unit, but it says nothing about the body_names array semantics (orientations, ordering, whether all bodies are consumed).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (stitch) and resource (surface bodies) and the resulting output (single body), which cleanly separates it from siblings like patch_surface, thicken_surface, and boolean_operation. It stops short of naming any sibling it is distinct from, so differentiation relies on the agent's inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives (e.g., patch_surface for closing gaps vs. stitch for joining coincident edges). The only contextual help is a units convention, which is parameter interpretation rather than 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 FeatureA
Suppress (disable) one or more timeline features. Pass feature_names for a batch: it recomputes the timeline ONCE (one call per feature costs a full recompute each — ~2.5 s apiece on a 200+ item timeline). Suppressing a Combine cut/join brings its tool body back; the result lists bodies_appeared so you can suppress the feature that made it.
| Name | Required | Description | Default |
|---|---|---|---|
| feature_name | No | ||
| feature_names | No | Several features, suppressed with a single recompute |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false. The description adds substantial behavioral detail: batching recomputes the timeline once (cost ~2.5s per single call on a 200+ item timeline), suppressing a Combine cut/join surfaces bodies_appeared, and the result lists them. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core action, followed by batching performance rationale and a special-case side effect. Every sentence adds actionable detail; there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description explains that the result contains bodies_appeared for Combine cases. Combined with the annotations and schema, an agent has enough context to call correctly, including batch optimization and documented side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (only feature_names has a schema description). The description compensates by explaining that feature_names takes several features and saves recomputes, which implies feature_name is for a single feature. It does not define feature_name's format or constraints, but adds key batch semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Suppress (disable)') and resource ('timeline features') with scope ('one or more'). It implicitly distinguishes from the sibling 'unsuppress_feature' by naming the opposite action, and from destructive deletion tools by using 'disable'. An agent can identify the operation immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit batching guidance ('Pass feature_names for a batch') and explains the cost tradeoff versus repeated single-feature calls. It also gives a specific scenario for Combine cut/join. However, it does not name 'unsuppress_feature' as the alternative for re-enabling, nor does it state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sweepSweepC
Sweep a sketch profile along a path (sketch curve)
| Name | Required | Description | Default |
|---|---|---|---|
| operation | No | new_body | |
| profile_index | Yes | ||
| path_curve_index | No | Omit to sweep along every non-construction curve of the path sketch (curves drawn by separate calls are joined by position). Give an index to chain only from that curve. The result reports path_curves/path_length. | |
| path_sketch_name | Yes | Name of the sketch containing the sweep path | |
| target_body_name | No | For operation cut/intersect: restrict it to this body. Without it EVERY body the tool reaches is cut. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the agent knows it is a mutation that is not idempotent but not destructive. The description adds no behavioral context beyond that—it does not explain operation modes (new_body/join/cut/intersect), what happens to existing geometry, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence, but for a tool with five parameters and complex behavioral options, it is severely under-specified rather than appropriately concise. The brevity leaves essential information out.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, partial schema descriptions, and minimal annotations, the description is far from complete. It omits how to choose an operation, how profile_index relates to the sketch, and what the tool returns, all of which are needed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60%: three parameters have descriptions, but operation and profile_index have none. The description mentions 'sketch profile' and 'path' but adds no meaning beyond the parameter names already in the schema, failing to compensate for the undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'sweep' and the resources 'sketch profile' and 'path (sketch curve)', making the core operation clear. However, it does not differentiate from similar modeling siblings like loft, extrude, or revolve, which an agent might confuse.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, prerequisites, or alternatives. It simply states the operation without indicating when sweeping is preferable to extrude, revolve, or loft.
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. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| body_name | Yes | ||
| direction | No | symmetric | |
| thickness | Yes | Thickness (cm) |
TDQS
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 agent knows this is a non-idempotent mutation. The description adds a useful unit convention (cm/degrees by default) beyond the annotations, but says nothing about what happens to the source surface body, reversibility, or required preconditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the core action front-loaded and the unit caveat immediately after. No filler, though the definition is arguably a touch terse given the gaps it leaves.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter mutation tool with no output schema, the definition covers the core action and units but omits what an agent most needs: whether the original surface is consumed, what the direction modes do, and what the call returns. Annotations carry the safety profile, keeping this from being inadequate, but gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% – thickness has a description, but body_name and direction are undocumented. The unit sentence ('lengths and coordinates are in cm ... angles in degrees') clarifies thickness units beyond the schema, which is genuine added value, but there is no explanation of body_name expectations or the direction enum's effect.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Thicken a surface body into a solid'), so the agent knows exactly what operation is performed. It does not explicitly name a sibling or differentiate from similar surface tools like stitch_surfaces or patch_surface, but the purpose itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no when-to-use context, no prerequisites (e.g. that a surface body must exist), and no routing to alternatives. The only guidance is a unit convention, which is not usage guidance about selecting this tool.
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. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| point_x | Yes | X near the segment to remove | |
| point_y | Yes | Y near the segment to remove | |
| curve_index | Yes | Index of the curve to trim | |
| sketch_name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnly=false, idempotent=false, destructiveHint=false, which tells the agent little about a geometry edit. The description compensates with real behavioral detail: which segment is removed (the one nearest the supplied point) and the unit conventions (cm not mm, degrees). It still doesn't say whether the operation is reversible or requires an open sketch.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and the removal rule before the unit caveat. Nothing is padded, though the unit sentence is the only part an experienced agent might already expect from convention.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter mutation tool with no output schema, the description covers the core semantics, the selection rule, and units. The remaining gaps (undocumented sketch_name, reversibility, sketch-context requirements) are modest rather than crippling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75% with sketch_name left undescribed. Against that baseline the description adds genuine meaning: it establishes that the supplied point identifies the segment to remove and that all lengths/coordinates default to cm rather than mm, which the schema never states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Trim a sketch curve') plus the operative rule (removes the segment at the intersection nearest the given point). It does not explicitly contrast itself with the closely related sibling extend_curve, so an agent must infer the trim-vs-extend boundary, but the action itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the mechanic described (you supply a point near the segment you want gone), but there is no explicit when-to-use statement, no prerequisites (e.g. an active sketch), and no routing to alternatives such as extend_curve or delete_body. Minimum viable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
undoUndoB
Undo the last operation
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 mutation ('undo') without destruction. However, the description adds minimal behavioral context beyond annotations—it doesn't specify what 'last operation' means (e.g., scope, limitations), whether it's reversible, or error conditions. With annotations covering safety aspects, a baseline score of 3 is appropriate as the description adds some value but lacks rich behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence ('Undo the last operation') that directly states the tool's purpose with zero waste. It's front-loaded and appropriately sized for a simple tool with no parameters, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema) and annotations that cover key behavioral hints, the description is minimally complete. However, it lacks context about what constitutes an 'operation' in this CAD environment, potential limitations (e.g., only undoing certain types of changes), or expected outcomes, which could help an AI agent use it more effectively. It's adequate but has clear gaps in contextual detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is acceptable here. A baseline score of 4 is given because the schema fully handles parameters, and the description appropriately focuses on the tool's action without redundant parameter explanations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Undo the last operation' clearly states the verb ('undo') and resource ('last operation'), making the purpose understandable. However, it doesn't distinguish this tool from potential alternatives like 'redo' or 'history' tools that might exist in other contexts, and it's somewhat vague about what qualifies as an 'operation' in this CAD environment. It avoids being a tautology of the name/title by specifying 'last operation'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., requiring a previous operation to undo), exclusions (e.g., irreversible operations), or compare it to sibling tools like 'delete_all' or 'suppress_feature' that might handle similar undo-like actions. 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.
unsuppress_featureUnsuppress FeatureB
Unsuppress (re-enable) one or more timeline features; feature_names recomputes once for the whole batch.
| Name | Required | Description | Default |
|---|---|---|---|
| feature_name | No | ||
| feature_names | No | Several features, unsuppressed with a single recompute |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare this is a mutation (readOnlyHint=false) and non-idempotent, so the safety profile is partly covered. The description adds a genuinely useful behavioral detail — that batch input triggers a single recompute — but says nothing about what happens if the feature is already unsuppressed or what the call returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One efficiently constructed sentence with the batch-recompute behavior placed immediately after the action. No padding, though it is arguably too sparse for a mutation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no permission/auth guidance, and an undocumented single-feature parameter, the description leaves real gaps for a state-changing tool. An agent cannot tell whether both parameters can be combined or what a partial failure looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: feature_names is documented in the schema, feature_name is not. The description reinforces the batch semantics ('recomputes once for the whole batch') but does not explain the single feature_name parameter or whether the two are mutually exclusive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb plus resource ('Unsuppress (re-enable) one or more timeline features'), and the parenthetical disambiguates the term. It does not name suppress_feature as the inverse operation, but the action is unambiguous on its own.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The inverse relationship to suppression is implied but never stated, and no conditions, prerequisites, or alternatives are given. An agent can infer when to use it, but nothing confirms it must point at a previously suppressed feature.
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.
92 tool updates
v0.1.0- First observed
add_constraint - First observed
add_dimension - First observed
add_joint - First observed
auto_constrain - First observed
boolean_operation - First observed
cam_create_operation - First observed
cam_create_setup - First observed
cam_generate_toolpath - First observed
cam_get_operation_info - First observed
cam_list_operations - First observed
cam_list_setups - First observed
cam_post_process - First observed
chamfer - First observed
check_interference - First observed
circular_pattern - First observed
compare_meshes - First observed
convert_to_sheet_metal - First observed
create_as_built_joint - First observed
create_box - First observed
create_box_parametric - First observed
create_component - First observed
create_construction_axis - First observed
create_construction_plane - First observed
create_cylinder - First observed
create_hole - First observed
create_parameter - First observed
create_polygon - First observed
create_rigid_group - First observed
create_section_analysis - First observed
create_sketch - First observed
create_sphere - First observed
create_thread - First observed
create_torus - First observed
create_ucs - First observed
delete_all - First observed
delete_body - First observed
delete_parameter - First observed
draft_faces - First observed
draw_arc - First observed
draw_circle - First observed
draw_line - First observed
draw_rectangle - First observed
draw_spline - First observed
execute_code - First observed
export - First observed
export_f3d - First observed
export_flat_pattern_dxf - First observed
export_step - First observed
export_stl - First observed
export_view_sheet - First observed
extend_curve - First observed
extrude - First observed
fillet - First observed
flat_pattern - First observed
fold_sheet_metal - First observed
get_bounding_box - First observed
get_design_type - First observed
get_object_info - First observed
get_parameters - First observed
get_physical_properties - First observed
get_scene_info - First observed
import_mesh - First observed
list_components - First observed
loft - First observed
measure_angle - First observed
measure_distance - First observed
mirror - First observed
move_body - First observed
offset_curve - First observed
offset_faces - First observed
patch_surface - First observed
ping - First observed
project_geometry - First observed
rectangular_pattern - First observed
rename_body - First observed
render_view - First observed
revolve - First observed
scale_body - First observed
set_appearance - First observed
set_color - First observed
set_design_type - First observed
set_parameter - First observed
shell - First observed
split_body - First observed
split_face - First observed
stitch_surfaces - First observed
suppress_feature - First observed
sweep - First observed
thicken_surface - First observed
trim_curve - First observed
undo - First observed
unsuppress_feature
TDQS
Scored across 92 tools
The set covers many distinct CAD operations, but there is significant overlap: multiple export tools (export, export_stl, export_step, export_f3d), two box creation tools (create_box, create_box_parametric), multiple joint tools (add_joint, create_as_built_joint, create_rigid_group), and both render_view and export_view_sheet produce images. Descriptions help resolve most cases, but an agent must read carefully to avoid misselection.
Names are consistently snake_case and mostly follow a verb_noun pattern (split_body, create_sketch, get_parameters). A few single-verb names (extrude, mirror, loft) are conventional CAD terms and do not break the pattern; minor deviations like 'export' vs 'export_stl' and 'boolean_operation' are acceptable.
92 tools is far beyond the 3–15 typical range and exceeds even the 25+ 'too many' threshold. While the domain is broad, many operations could be consolidated (e.g., export variants, primitive creation, sketch drawing tools), indicating an over-exposed surface that increases cognitive load.
The surface covers modeling, sketching, constraints, assemblies, measurement, export/import, sheet metal, CAM, and rendering—nearly all of Fusion 360's major workflows. Minor gaps exist (e.g., importing STEP/IGES, creating engineering drawings), but execute_code provides an escape hatch for missing operations.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Related MCP Servers
- AlicenseBqualityCmaintenanceConnects 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.80329 PyPI108MIT
- AlicenseNot gradedqualityFmaintenanceEnables AI assistants to generate Autodesk Fusion 360 Python scripts through natural language commands, using the Model Context Protocol (MCP) for tool calls and script generation.6MIT
- AlicenseNot gradedqualityDmaintenanceOpen-source MCP server for controlling Autodesk Fusion 360 from any AI agent, enabling 3D modeling operations via natural language.3MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to inspect and automate Autodesk Fusion 360 through MCP, providing tools for CAD modeling, CAM manufacturing, and document management.-