catia-mcp
Provides tools for driving CATIA V5 through its COM automation interface, including document handling, 3D solid and surface modeling, assemblies, drafting, measurement, and data exchange.
catia-mcp
A Model Context Protocol server that lets an AI assistant drive CATIA on a Windows machine through its COM automation interface.
It targets CATIA V5 (roughly R14 through V5-6R20xx) and adapts to whatever release and licence bundle it finds rather than assuming one. 161 tools cover document handling, sketching, Part Design, dress-up, patterns and booleans, Generative Shape Design, assemblies, measurement, Knowledge parameters and formulas, drafting, viewing and data exchange — plus a VBScript escape hatch to everything else in the CATIA object model.
catia_connect → catia_new_part → catia_create_sketch(support="xy")
→ catia_sketch_centered_rectangle(width=80, height=50)
→ catia_pad(length=20)
→ catia_fillet(edges=["edge@40,25,10"], radius=6)
→ catia_screenshot() # returns the picture, not a pathWhy this exists
Driving CATIA from a script means solving five problems. None of them are exotic — every client that talks to CATIA over COM meets them — but each one fails quietly, which is what makes them expensive:
1. Measurements silently return zeros.
CATIA declares Measurable::GetCOG, GetInertia, GetBoundingBox and
Product::Position::GetComponents as taking an [in] array that it then writes
into. Hand a late-bound Python list to one of those and CATIA fills a copy —
the call succeeds, and the caller reads back the zeros it passed in. Centre of
gravity, inertia, bounding boxes and component positions are all affected.
This server reads those arrays through a VT_BYREF VARIANT, and cross-checks
an all-zero answer against a VBScript trampoline evaluated inside CATIA before
believing it.
2. Naming an edge is not the same as selecting it.
CATIA's own handle for a face or an edge is a BRep name like
RSur:(Face:(Brp:(Pad.1;0:(Brp:(Sketch.1;2)))...), which is unstable across
releases and across edits to the model. Without a way to resolve geometry
live, a client ends up filleting "the last feature" instead of the edge that
was asked for.
3. COM threading is easy to get wrong.
pythoncom.CoInitialize() is per-thread, while MCP handlers run on a thread
pool — so a proxy obtained on one thread is routinely used from another. And
CATIA rejects calls outright with RPC_E_CALL_REJECTED whenever a modal dialog
is open, which a native client handles with an IMessageFilter and Python
cannot.
4. Enumeration values are not exposed.
CATIA's automation constants cannot be read through COM, so every client
hardcodes the integers; when one is wrong the failure is often silent — a
capture written as CGM into a .jpg, a minimal-propagation fillet where you
asked for tangency.
5. Prose results are hard to chain.
"Pad created: 20 mm (normal). Feature: 'Pad.1'" is fine for a human and poor
for a model that has to decide what to do next.
Everything below is how this server addresses them.
Related MCP server: SolidworksMCP-python
What is different
One COM apartment, with busy-retry
Every CATIA call is marshalled onto a single dedicated STA thread that owns
CoInitialize. Transient rejections (RPC_E_CALL_REJECTED,
RPC_E_SERVERCALL_RETRYLATER) are retried with bounded exponential backoff —
the job a native client gives to IMessageFilter. Lost connections are detected
and transparently re-attached. See catia_mcp/core/apartment.py.
A reference grammar for geometry
The hardest part of scripting CATIA is pointing at things. BRep names like
RSur:(Face:(Brp:(Pad.1;0:(Brp:(Sketch.1;2)))...) are unstable across releases
and across edits. Instead, every tool that needs geometry takes a token:
Token | Means |
| the part's origin planes |
| the most recent feature this server created |
| a sketch by name |
| the main body, or a body by name |
| any tree element by its CATIA name |
| the n-th topological element |
| whichever face/edge is nearest that point |
Index tokens are cheap but any model change renumbers them. Proximity tokens
survive edits, which makes them the right choice for anything referenced more
than once — catia_list_faces and catia_list_edges report the centroids to
aim at, along with area, length and the outward normal of planar faces.
The same tokens work inside an assembly: Selection returns product-context
references, so catia_assembly_constraint(elements=["face@0,0,10","face@0,0,50"])
constrains real geometry across two components.
Adaptive invocation instead of one hardcoded signature
ShapeFactory and HybridShapeFactory grew ...FromRef overloads and extra
parameters across releases. comutil.try_variants walks a list of candidate
calls and keeps the first CATIA accepts, re-raising immediately on busy or
disconnected (which say nothing about whether the signature was right). One
code path serves old and new releases; when every candidate fails you get all
of the attempts back, not just the last error.
Constants that are probed, not trusted
Where a wrong enumeration fails silently, the value is discovered at runtime.
catia_screenshot writes one throwaway capture per candidate integer and reads
the file's magic bytes to learn what that integer means on this installation
(catia_capture_formats shows the result). Everything else can be corrected
per-site through a JSON file named by CATIA_MCP_CONSTANTS, without patching
code.
Structured results with remediation
Every tool returns JSON with an ok flag. Failures carry a stable error code, a
decoded HRESULT, and a remediation field:
{
"ok": false,
"error": {
"code": "catia_busy",
"message": "CATIA is busy and rejected the call (Call was rejected by callee.)",
"remediation": "CATIA rejected the call because it is busy - usually a modal
dialog is open, or a command is still running. Dismiss any
dialog in the CATIA window, then retry."
}
}Nothing escapes as a protocol-level error, so a model always gets something it can read and act on.
Screenshots come back as images
catia_screenshot returns an actual MCP image (downscaled PNG when Pillow is
installed), so the assistant can look at the model rather than inferring its
shape from the feature tree.
Diagnosis before blame
catia_check_environment works with no CATIA connection at all: Python version
and bitness, whether pywin32 imported, whether CATIA.Application is registered
in the COM class table, which MCP SDK is in use, and a list of concrete
problems. catia_capabilities then probes what the installation can actually
do — licences, not release numbers, decide whether GSD or Sheet Metal work.
Connecting does not launch CATIA by default
A cold CATIA start takes minutes and checks out a licence. catia_connect
attaches to a running session; passing launch=true is an explicit choice.
Requirements
Windows, with CATIA installed and started at least once as the current user (that is what registers the
CATIA.ApplicationCOM class)Python 3.10+
pywin32,mcp>=1.2,pydantic>=2— plus optionalpillowfor smaller screenshots
CATIA's automation server is out-of-process, so 32-bit/64-bit Python both work. CATIA and Python must run as the same Windows user at the same elevation — a CATIA started as administrator is invisible to a non-elevated client.
Install
pip install -e ".[images]"or, without the package install:
pip install -r requirements.txtCheck it works — before involving CATIA
python -m catia_mcp --doctorpython scripts/protocol_check.pyprotocol_check.py starts the server over stdio, performs the MCP handshake,
lists the tools, validates every input schema, and confirms that calling a CATIA
tool with no CATIA returns a structured error rather than a crash. It needs
neither CATIA nor a licence.
Check it works — with CATIA running
Start CATIA, then:
python scripts/live_smoke.pyIt builds a small part end to end — sketch, pad, fillet an edge chosen by
proximity, drill a hole, measure it, screenshot it, export STEP — and prints
PASS / FAIL / SKIP per step. Steps needing a licence you do not have are
reported as SKIP, so the output doubles as a capability report for your seat.
Add --close to discard the scratch part afterwards.
Drive it by hand
The MCP Inspector gives you a browser UI over every tool — pick one, fill in its arguments from a generated form, fire it, and read the raw JSON-RPC:
npx @modelcontextprotocol/inspector uv run python catia_mcp/server.pyThis is the fastest way to isolate a problem, because there is no model in the
loop deciding anything: you supply the exact arguments and see the exact
result. --cli and --tui give the same thing headless and in the terminal.
Wire it to a client
The simplest route, which needs no extra tooling:
python scripts/install_client_config.py --dry-runpython scripts/install_client_config.pyIt writes the entry into the Claude desktop app's claude_desktop_config.json,
backing the file up first. --target code targets Claude Code's ~/.claude.json
instead, --target project writes a .mcp.json beside the repository,
--target all does every one, and --remove undoes it. The interpreter it
records is the one you ran it with — which is the one that has pywin32 and
mcp installed, and the usual cause of a server that starts and then cannot do
anything.
claude mcp addwill not work unless you have separately installed the Claude Code CLI (npm install -g @anthropic-ai/claude-code). It is a different package from the desktop app. The script above avoids needing it.
To write the configuration by hand instead, add this to
claude_desktop_config.json — on Windows at
%APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"catia": {
"command": "C:\\path\\to\\python.exe",
"args": ["-m", "catia_mcp"],
"env": { "PYTHONPATH": "C:\\path\\to\\catia-mcp" }
}
}
}Use the full path to the interpreter you installed the dependencies into,
not bare python; the client does not inherit your shell's PATH. Restart the
client afterwards.
An HTTP transport is available for remote or multi-client use:
python -m catia_mcp --transport http --port 8765The tools
161 tools in 14 groups. python -m catia_mcp --list-tools prints the full
inventory as JSON.
Group | n | Covers |
| 11 | connect, disconnect, status, environment diagnosis, capability probe, reference help, VBScript execution, undo/redo, batch mode |
| 11 | new/open/save/save-as/close/activate for parts, products and drawings; document info; part number, revision and definition |
| 15 | describe the spec tree, list bodies / features / faces / edges / vertices, resolve and verify a reference token, find by wildcard, show/hide, rename, delete, select, update |
| 16 | sketches on planes or faces, points, lines, circles, arcs, ellipses, rectangles, centred rectangles, polygons, slots, polylines, splines, constraints, geometry listing |
| 10 | pad, pocket, shaft, groove, rib, slot, stiffener, holes (five types, from a point or a sketch), solid combine — with up-to-next / up-to-last / up-to-plane / up-to-surface limits and thin walls |
| 10 | edge fillet, variable fillet, face-face fillet, tritangent fillet, chamfer, shell, thickness, draft, thread, remove-face |
| 8 | rectangular / circular / user patterns, mirror, translate-rotate-symmetry-scale, new body, boolean add/remove/intersect/union-trim, split |
| 28 | geometrical sets, points, lines, circles, splines, polylines, helices, planes, extrude, revolve, sweep, multi-section, fill, offset, blend, join, split, trim, intersect, project, extract, healing, transforms, thick-surface, close-surface, axis systems |
| 12 | insert components, new parts and sub-assemblies, list, remove, read and set placement, nine constraint kinds, list/delete constraints, bill of materials, update |
| 9 | measure any element, minimum distance with contact points, angle, bounding box, mass properties, point coordinates, face plane and normal, list and apply materials |
| 12 | list/get/set/create/delete parameters, list relations, create formulas, activate/deactivate, design tables and configurations |
| 7 | sheets, generative views in seven orientations, text, scale, regenerate, delete |
| 8 | standard orientations, fit, zoom, background colour, screenshot, capture-format probe, render style, window list |
| 4 | export (STEP, IGES, STL, VRML, 3D XML, CGR, model, and DXF/DWG/PDF/CGM/SVG for drawings), export every open document, bill of materials to CSV, format list |
Trimming the tool surface
161 tools is a lot of context. Restrict it with CATIA_MCP_GROUPS:
CATIA_MCP_GROUPS=document,tree,sketch,part_design,dressup python -m catia_mcpThe session group is always registered so connection and diagnosis stay
available. With the example above the server exposes 73 tools instead of 161.
Configuration
Variable | Effect |
| comma-separated tool groups to register; default is all |
| path to a JSON file overriding CATIA enumeration values |
| also write logs to this file |
|
|
|
|
Logs go to stderr, never stdout — stdout carries the MCP transport.
Notes, limits and honest caveats
Sheet Metal has no dedicated tools.
catia_capabilitiesreports whether theSheetMetalFactoryis available, but the wall/bend/unfold API varies enough between releases that shipping unverified signatures would be worse than pointing you atcatia_run_script. The same applies to DMU kinematics and clash analysis; for clearance checking,catia_measure_distancebetween two components works well and needs no extra licence.Selection.Searchonly finds visible geometry. Ifcatia_list_facesreturns nothing, the body is probably hidden —catia_show_elementfixes it. This is a CATIA behaviour, not a bug here.Face and edge indices are not stable. Adding a fillet renumbers every face. Use
face@x,y,zfor anything you reference twice.catia_start_commandandcatia_undoare best-effort. CATIA gives automation clients no way to confirm an interactive command ran, and the command names follow the user-interface language.Pattern direction defaults.
catia_rect_patternandcatia_circ_patternwill use CATIA's own defaults if you do not pass direction or axis tokens. Pass an edge token when the direction matters.This server can modify and delete work. It is designed for a CATIA session you are supervising. Tools that delete or overwrite are annotated
destructiveHintso a client can prompt before running them.
Layout
catia_mcp/
compat.py MCP SDK shim (MCPServer 1.29+ / FastMCP earlier)
server.py entry point, transports, tool inventory
core/
apartment.py single STA thread, busy-retry
comutil.py by-ref arrays, adaptive invocation, defensive reads
connection.py attach/launch, version detection, capability probing
errors.py HRESULT decoding and the error taxonomy
refs.py the reference-token grammar and topology search
capture.py runtime probing of the capture formats
constants.py CATIA enumerations, overridable per site
result.py the result envelope
tools/ 14 tool modules, one per domain
scripts/
install_client_config.py register the server with an MCP client
protocol_check.py MCP conformance check, no CATIA needed
live_smoke.py end-to-end build against a real CATIA
tests/test_offline.py 36 tests, no CATIA and no Windows requiredDevelopment
python -m pytest tests/ -q
ruff check catia_mcp
python scripts/protocol_check.pyLicence
GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later). See LICENSE.
The AGPL's network clause is the point: if you run a modified version of this server so that others interact with it over a network, you have to offer them its source. Using it privately, or driving your own CATIA with it, carries no such obligation.
CATIA is a registered trademark of Dassault Systèmes. This project automates CATIA; it neither includes nor replaces it, and is not affiliated with or endorsed by them. You need your own CATIA installation and licence.
Available Tools
161 toolscatia_activate_documentAIdempotent
Bring an already-open document to the front and make it the target of subsequent modelling calls.
| Name | Required | Description | Default |
|---|---|---|---|
| document | Yes | Name or full path of the document. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotent and non-destructive behavior. The description adds valuable context by disclosing that the call changes focus and redirects subsequent modelling calls, which is a non-obvious side effect. It also specifies the already-open prerequisite.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no filler. The core action, prerequisite, and behavioral effect are all front-loaded 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?
For a simple one-parameter tool with high schema coverage and no output schema, the description is nearly complete. It could additionally mention error behavior when the document is not open, but that is a minor 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?
The schema covers the single parameter with 'Name or full path of the document.' The description adds the important constraint that the document must already be open, which is not stated in the schema. This extra semantic context helps agents choose a valid value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: bringing an already-open document to the front and making it the target of subsequent modelling calls. This clearly distinguishes it from related siblings like catia_open_document, catia_close_document, and catia_set_active_body.
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 clearly implies when to use the tool: after a document is already open and before performing modelling operations on it. However, it does not explicitly mention alternatives or 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.
catia_add_componentA
Insert one or more existing CATPart or CATProduct files into the active assembly.
| Name | Required | Description | Default |
|---|---|---|---|
| paths | Yes | Absolute paths of the files to insert. | |
| parent | No | Instance name of the sub-product to insert into. Defaults to the root. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal mutation (readOnlyHint=false), so the description does not need to restate that. It adds context that only existing CATPart/CATProduct files are inserted and that the target is the active assembly, but it does not disclose potential side effects like assembly tree modification, broken references, or requirements about the parent instance. 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 entire description is a single well-structured sentence that front-loads the verb and object. It contains no filler and every word earns its place. The one-sentence format is ideal for this 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?
For a two-parameter tool with full schema coverage and no output schema, the description plus annotations are largely sufficient for an agent to invoke it correctly. The main gap is that it does not explicitly state that the active document must be an assembly or explain failure behavior for invalid paths/parents, but these are edge conditions rather than core invocation requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully describes both parameters, but the description adds the file-type constraint (CATPart/CATProduct), which meaningfully narrows what values 'paths' may contain. It also confirms that one or more files can be inserted at once. This goes slightly beyond the schema without repeating 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 clear verb-resource pair: insert existing CATPart or CATProduct files into the active assembly. The word 'existing' differentiates this from sibling creation tools like catia_add_new_part and catia_add_new_product. No ambiguity remains about what the tool does or where it operates.
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 tool is for adding pre-existing components to an assembly, which gives basic usage context. However, it does not explicitly state when to choose this tool over adding new parts/products, nor mention prerequisites like the active document needing to be an open assembly. There is no guidance on exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_add_design_tableA
Attach a design table (an Excel or tab-separated file) whose columns drive the document's parameters. Each row becomes a selectable configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the design table relation. | |
| path | Yes | Absolute path to the .xls, .xlsx or .txt design table. | |
| comment | No | Optional description. | |
| copy_data | No | Copy the data into the CATIA document instead of linking to the file on disk. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate that this is not read-only, not idempotent, not destructive, and not open-world. The description adds meaningful behavioral context beyond that: the attached file's columns drive parameters and rows become configurations, which clarifies the outcome of the operation. It does not discuss edge cases like overwriting an existing design table, but the annotation baseline lowers the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences deliver the core purpose and outcome without filler. The information is front-loaded and every clause contributes to understanding the 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 tool with four parameters, one required, complete schema descriptions, and annotations covering safety, the description sufficiently explains what attaching a design table does and why it is used. It does not mention return values, but there is no output schema and the operation is an action rather than a query, so this is not a significant 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%, so all four parameters are already documented with descriptions. The tool description adds some context about the file format ('Excel or tab-separated') and the resulting configuration behavior, but it does not explain the remaining parameters (name, comment, copy_data) beyond what the schema already 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 opens with a specific verb and resource: 'Attach a design table', then explains its purpose with 'columns drive the document's parameters' and 'Each row becomes a selectable configuration'. This is distinct from sibling tools such as catia_list_design_tables or catia_set_design_table_configuration, so an agent could identify the right operation without inspecting the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives like catia_set_design_table_configuration or catia_list_design_tables. There are no explicit exclusions or conditions, so the agent is left to infer usage solely from the verb 'attach'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_add_new_partB
Create a brand-new empty part directly inside the active assembly.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Instance and part number for the new part. | |
| parent | No | Sub-product to add it to. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only and not destructive, so the description adds only the location constraint ('directly inside the active assembly'). It does not disclose what happens if no assembly is active, whether the part gets a default body, or what side effects occur on the assembly tree. For a mutation tool, this is a minimal behavioral disclosure 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, well-structured sentence that is front-loaded with the core action. Every word earns its place, and it is immediately clear what the tool does. There is no unnecessary fluff 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 a simple creation tool with only two optional parameters and no output schema, the description covers the essential purpose but leaves some gaps. It does not state the requirement of an active assembly (it implies it), nor does it explain failure modes or the expected state of the part after creation. Given the large number of sibling tools, it could benefit from clarifying when this is preferable to catia_new_part or catia_add_new_product.
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 have descriptions), so the baseline is 3. The description adds a small extra context: 'directly inside the active assembly' implies the parent parameter is optional and that the part is placed in the active assembly when no parent is given. However, it does not elaborate on the syntax or format of the name or parent, so it adds limited value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (create), the resource (a brand-new empty part), and the context (directly inside the active assembly). It is specific enough to distinguish from similar tools like catia_new_part or catia_add_new_product, though it does not explicitly name alternatives. The phrase 'empty part' and 'inside the active assembly' add valuable specificity beyond the name.
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 its siblings (e.g., catia_add_new_product, catia_new_part, catia_add_component). It does not mention prerequisites like having an active assembly open, nor does it explain when the parent parameter should be used. Agents are left to infer usage from the name and context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_add_new_productB
Create a new empty sub-assembly inside the active assembly.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Instance and part number for the sub-assembly. | |
| parent | No | Sub-product to add it to. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate readOnlyHint=false and destructiveHint=false, so the description is not required to restate that this is a mutation. It adds the useful context that the created sub-assembly is empty and added inside the active assembly. However, it does not disclose behavior around naming conflicts, parent resolution, or what happens if no active assembly 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?
A single clear sentence, front-loaded with the primary verb 'Create' and the resource 'new empty sub-assembly.' Every word contributes meaningful context, and there is no redundant or filler content.
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 create operation with two fully described optional parameters, the description is sufficient: it states what is created, its nature, and its location. Given the schema covers parameters and annotations cover mutability, the main missing context is when to choose this over sibling creation tools, which is addressed under usage 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?
The input schema fully describes both parameters (name and parent) and covers 100% of the schema descriptions, so the baseline is 3. The description does not add extra parameter semantics beyond reinforcing that the operation creates a sub-assembly, which aligns with the parameter names and descriptions already present.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific action: 'Create a new empty sub-assembly inside the active assembly.' It names the verb, resource type, and scope. It does not explicitly differentiate from closely named siblings like catia_add_new_part or catia_new_product, but 'empty sub-assembly' is specific enough to distinguish the core intent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given for when to use this tool over alternatives such as catia_add_new_part, catia_new_product, or catia_add_component. The only implied context is 'inside the active assembly,' but there is no mention of prerequisites, exclusions, or criteria for choosing another sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_apply_materialA
Apply a material from a CATIA catalogue to the active part or a named body. Once a material is applied, catia_mass_properties reports a real mass instead of needing a density.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | Body name to apply to. Empty applies to the whole part. | |
| family | No | Family to look in. Empty searches every family. | |
| material | Yes | Material name, e.g. 'Steel' or 'Aluminium'. | |
| catalog_path | No | Path to the .CATMaterial catalogue. Empty uses the default. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-read-only, non-destructive mutation, so the description adds useful behavioral context beyond that: applying a material changes subsequent mass-property reporting by supplying a real density. It does not mention overwriting existing materials, but this is not a serious gap given 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 tight sentences, no filler. The first sentence states the action and target; the second gives a valuable downstream consequence. Information is front-loaded 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 a mutation tool with fully documented parameters and no output schema, the description is largely complete: it explains what the tool does, where it applies, and the observable effect on mass properties. It could mention what happens if a material is already applied or if the body does not exist, but these are not essential 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 already documents all four parameters with descriptions, and schema coverage is 100%. The description's mention of 'active part or a named body' mirrors the body parameter but adds little 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 names a specific action ('Apply a material'), a precise resource ('CATIA catalogue', 'active part or a named body'), and the consequence for downstream mass properties. This distinguishes it clearly from sibling tools like catia_list_materials and catia_mass_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?
The description clearly states the target scope ('active part or a named body') and the practical reason to use it (so catia_mass_properties reports a real mass). It does not explicitly mention alternatives or when not to use the tool, but the context is clear enough for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_assembly_constraintA
Constrain components to each other. Reference the geometry with the usual tokens - inside an assembly 'face#3' and 'face@x,y,z' resolve against every visible component, and catia_list_faces reports which component each belongs to. Dimensional kinds (offset, distance, angle) take a value.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | coincidence | contact | offset | distance | angle | planar_angle | parallel | perpendicular | fix. | |
| name | No | Name for the constraint. | |
| value | No | Offset in mm or angle in degrees, where applicable. | |
| elements | Yes | Reference tokens of the geometry to constrain, e.g. ['face@0,0,10','face@0,0,50']. One element for 'fix', two otherwise. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false (readOnly=false, destructive=false, etc.), so the description carries the burden of behavioral disclosure. It does add context about how geometry tokens resolve (against every visible component) and that dimensional kinds require a value, which is useful. However, it doesn't disclose side effects such as adding a constraint to the assembly tree, error handling on invalid references, or any impact on existing constraints. It's transparent enough for a mutation tool but leaves 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 compact and efficient: one sentence states the purpose, the second provides essential reference-token details and highlights the value requirement. Every sentence earns its place without repetition, and the critical purpose is front-loaded. No fluff or irrelevant text.
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 moderate-complexity tool (4 params, array input, no output schema), the description covers the main usage aspects: how to reference geometry, that dimensional kinds need values, and points to a helper tool (catia_list_faces). It does not explicitly mention prerequisites like needing an active assembly document, or common failure modes (e.g., invalid references), but the 'inside an assembly' phrase implies the environment. Overall, sufficient for an agent to call it correctly in most cases, with minor 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 100% and already documents each parameter (kind list, value units, elements as reference tokens). The description adds beyond the schema by explaining the token syntax ('face#3' and 'face@x,y,z') and reinforcing that dimensional kinds need a value, which clarifies how to fill in the 'elements' and 'value' fields. This adds meaningful semantic context, so it merits a 4.
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 ('Constrain components to each other') and identifies the resource (components in an assembly). It distinguishes from sketch constraints by specifying 'components' and referencing assembly contexts. However, it doesn't explicitly say 'create a new constraint' or name alternatives like catia_sketch_constraint, so it's not a perfect 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 implies usage in an assembly context and gives a pointer to catia_list_faces for reference resolution. It does not explicitly state when to use this tool versus alternatives (e.g., catia_sketch_constraint, catia_list_constraints, catia_delete_constraint), nor does it mention prerequisites like having an active assembly. Usage guidance is mainly implicit, earning a 3.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_bill_of_materialsARead-only
Build a bill of materials for the active assembly: every distinct part number with its quantity, source file and the instances that use it.
| Name | Required | Description | Default |
|---|---|---|---|
| max_depth | No | Recursion depth. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is read-only and non-destructive. The description adds meaningful behavior by stating that the tool aggregates distinct part numbers with their quantities, source files, and using instances. It does not discuss depth-limit behavior or error conditions when no active assembly exists, but the safety profile is well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one front-loaded sentence with no filler: it states the verb, scope, and output fields immediately. Every clause contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one optional parameter and no output schema, the description adequately specifies the returned BOM fields and the active-assembly scope. Minor gaps are the lack of an explanation for what happens with no active assembly and how max_depth affects the final result.
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 single parameter, max_depth, is fully documented in the input schema with its type, default, minimum, maximum, and a description. The tool description adds no additional meaning beyond the schema, so the baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific operation ('Build a bill of materials') and a clear scope ('active assembly'), then specifies the output details: distinct part number, quantity, source file, and instances. It is clear enough to distinguish from generic component listing, though it does not explicitly reference sibling tools like catia_list_components or catia_export_bom_csv.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool instead of related siblings such as catia_list_components or catia_export_bom_csv. The phrase 'for the active assembly' provides context, but there are no exclusions, prerequisites, or alternative-selection cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_booleanB
Combine two bodies: add (union), remove (subtract), intersect, or union-trim. The tool body is consumed into the target body, which is the usual CATIA behaviour.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the resulting feature. | |
| operation | Yes | add | remove | intersect | union_trim. | |
| tool_body | Yes | Name of the body to combine in, e.g. 'Body.2'. | |
| target_body | No | Body to combine into. Defaults to the part's main body. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that 'the tool body is consumed into the target body', which is a destructive side effect on the tool body. This contradicts the tool's annotations where destructiveHint is false. Per the rubric, a description that contradicts annotations must receive a 1.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The first sentence front-loads the core purpose and operation list, and the second delivers the essential side-effect warning. Every word 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 primary purpose and the key side effect, but it leaves gaps for a mutation tool: no mention of what happens to the target body after the operation, no return/result info (no output schema), no prerequisites, and no explanation of the name parameter's role. It is adequate but not 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 coverage, the baseline is 3. The description adds value by mapping operation values to familiar terms (add=union, remove=subtract) and by clarifying the tool/target body relationship through the consumption behavior. This goes beyond the raw enum strings 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?
The description clearly states the tool combines two bodies and enumerates the supported operations (add, remove, intersect, union-trim), making the purpose unmistakable. However, it does not distinguish itself from similar sibling tools like catia_solid_combine, 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?
The description offers no guidance on when to use this tool versus alternatives such as catia_solid_combine, nor does it mention prerequisites or when not to use it. The only behavioral note about tool body consumption is a side-effect warning, not a usage guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_bounding_boxARead-only
Report the axis-aligned bounding box of an element or of the whole solid, with the minimum and maximum corners and the overall dimensions. Useful for sizing stock material or checking a part fits an envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| element | No | Reference token. Defaults to the part's main body. | body |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description does not need to restate that. It adds valuable behavioral detail by specifying the output (minimum/maximum corners and overall dimensions) and the scope ('element or whole solid'). It also clarifies the bounding box is axis-aligned, which is a meaningful behavioral trait not covered by 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 two sentences with no filler. The first sentence states the action and outputs; the second provides practical use cases. All information is front-loaded and each 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 simple read-only tool with one optional parameter and no output schema, the description adequately explains what the agent will receive (corners and dimensions). It does not mention units or coordinate system, but these are not critical for an agent to call the tool correctly. The description is sufficient for basic usage, though it could note that the element must be a referenceable object, which is implied by 'element'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage for the single parameter 'element', describing it as a 'Reference token. Defaults to the part's main body.' The description's mention of 'element or whole solid' aligns with the parameter but does not add new syntactic or semantic details beyond what the schema already provides. Since schema coverage is high, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: reporting the axis-aligned bounding box of an element or whole solid, including minimum/maximum corners and dimensions. It uses a specific verb ('Report') and resource ('axis-aligned bounding box'), and the context of sizing stock or envelope checking distinguishes it from generic measurement tools like catia_measure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete usage scenarios ('sizing stock material' and 'checking a part fits an envelope'), which implicitly tell the agent when this tool is appropriate. However, it does not explicitly contrast it with sibling measurement tools (e.g., catia_measure, catia_measure_distance) or state when not to use it, leaving some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_capabilitiesARead-only
Probe what this specific CATIA installation can do - Part Design, Generative Shape Design, Sheet Metal, Assembly, Drafting, measurement, kinematics and the in-process script bridge. Licences, not release numbers, decide most of these, so this is probed by attempting the real calls.
| Name | Required | Description | Default |
|---|---|---|---|
| refresh | No | Re-probe instead of using the cached answer. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds valuable behavioral context beyond annotations: that the probe works by 'attempting the real calls' rather than relying on version numbers, and that results are installation-specific. This helps the agent understand why the tool behaves as it does.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero filler. The first sentence front-loads the action and scope, and the second sentence explains the licensing rationale that distinguishes this probe from a simple version check. Every word 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 tool with one optional parameter, a rich annotation set, and no output schema, the description is sufficiently complete: it states what the tool returns conceptually (a list of capabilities), why the probe is done this way, and how caching is handled via the `refresh` parameter. The only minor gap is not explicitly describing the return format, but that is not critical for a discovery tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: the only parameter `refresh` is fully documented in the schema with its type, default, and meaning. The description does not add additional parameter semantics, but the schema fully covers the parameter, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Probe') and a clear resource ('what this specific CATIA installation can do'), listing the capability domains covered. It is unmistakably distinct from the many sibling operation tools, which perform individual actions rather than enumerating available functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: this tool probes installation capabilities, and it explains that licensing rather than release numbers determines availability, implying the agent should call it to verify what is supported before attempting licensed features. It does not name explicit alternatives, but none exist among the siblings for this discovery purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_capture_formatsARead-only
Report which image formats this CATIA installation can actually write, as determined by probing rather than by assuming the documented enumeration.
| Name | Required | Description | Default |
|---|---|---|---|
| reprobe | No | Discard the cached result and probe again. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false, so the description need not restate safety. It adds that the tool probes rather than merely reading the documented enumeration, but caching behavior is only disclosed in the schema's reprobe parameter, not in the description itself. This is useful but modest extra context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the main action and resource. The final clause about probing rather than assuming the documented enumeration is valuable for differentiation and does not feel like 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 zero-required-parameter, read-only report tool with no output schema, the description tells the agent what is reported (image formats) and why it differs from documented lists. The caching/reprobe behavior is already captured in the schema, so nothing critical is missing. It could optionally state the output type explicitly, but it is easily inferred.
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% because the only parameter, reprobe, has a full description and default value. The tool description reinforces the probing concept and indirectly explains why reprobe exists, but it adds no syntax or value semantics beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Report') and resource ('image formats this CATIA installation can actually write'), and the 'determined by probing rather than by assuming the documented enumeration' clause distinguishes it from sibling listing/export tools. It could name an explicit sibling such as catia_list_export_formats, but the purpose is clear enough for an agent to understand 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 probing-vs-documentation contrast implies this tool is for obtaining ground-truth capabilities rather than trusting the documented enumeration. However, there is no explicit when-to-use or when-not-to-use guidance, and the agent is left to infer when to prefer this over catia_capabilities or catia_list_export_formats.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_chamferB
Bevel one or more edges. Choose length_angle mode (a length and an angle, the usual case) or two_lengths mode (a setback on each face).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | length_angle | two_lengths. | length_angle |
| name | No | Name for the resulting feature. | |
| angle | No | Chamfer angle in degrees (length_angle mode). | |
| edges | Yes | Reference tokens of the edges to chamfer. | |
| length | No | Chamfer length in mm. | |
| reverse | No | Swap which face the length is measured on. | |
| second_length | No | Second length in mm (two_lengths mode). | |
| propagate_tangency | No | Follow tangent edges. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations report readOnlyHint=false, idempotentHint=false, and destructiveHint=false, but the description adds little behavioral context beyond the verb 'bevel.' It does not disclose that the operation modifies the solid body, may fail on invalid edges, or whether it inserts a feature. No side effects or failure modes are mentioned.
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, front-loaded with the action 'Bevel one or more edges' before the mode explanation. Every clause earns its place, and there is no filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter tool, the description is lean, but the schema covers all parameter semantics. The main gap is that the description does not state that a chamfer feature is created in the part tree or that the operation requires an active part context, though these are common to sibling CAD tools. Overall, an agent has enough to select and invoke the tool 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?
The schema already documents all 8 parameters with descriptions (100% coverage), so the baseline is 3. The description adds conceptual meaning: length_angle is 'a length and an angle, the usual case' and two_lengths is 'a setback on each face,' which helps an agent choose the right mode and parameters. This additional context justifies a 4.
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: 'Bevel one or more edges.' It is distinct from siblings like catia_fillet, which rounds rather than bevels, though it does not explicitly name the alternative. The mention of modes ('length_angle' vs 'two_lengths') adds useful specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use chamfer rather than a fillet or other edge operation. It only instructs the agent to choose between two modes, calling length_angle 'the usual case,' which is more about parameter selection than tool selection. There are no exclusions, prerequisites, or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_check_environmentARead-only
Diagnose the host before blaming CATIA: Python version and bitness, whether pywin32 imported, whether the CATIA.Application COM class is registered, and which MCP SDK is in use. Works without a CATIA connection - run it first when catia_connect fails.
| 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 and destructiveHint=false. The description adds meaningful behavioral context beyond that: it works without a CATIA connection and is intended as a pre-connect diagnostic step, which is valuable for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler. The purpose and diagnostic items are front-loaded, and the usage trigger is placed clearly at the end.
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 zero-parameter diagnostic tool, the description covers purpose, checks performed, connection independence, and when to invoke it. Since there is no output schema, slightly more detail about the returned report structure would make it 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?
The tool has 0 parameters, so the description carries no parameter-semantics burden. Per the baseline for zero-parameter tools, this receives a 4.
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, 'Diagnose the host,' and enumerates concrete checks: Python version and bitness, pywin32 import status, CATIA.Application COM registration, and MCP SDK. This clearly differentiates it from siblings like catia_connect and catia_status.
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 strong trigger condition: 'run it first when catia_connect fails,' and notes it works without a CATIA connection. It doesn't explicitly name sibling alternatives or exclusions, 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.
catia_circ_patternC
Repeat a feature around an axis. The rotation axis is a reference token for a cylindrical face, an edge, a line or an axis-system axis.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | Reference token of the rotation axis: a cylindrical face, an edge, or a line. | |
| name | No | Name for the resulting feature. | |
| feature | No | Reference token of the feature to repeat. | |
| reverse | No | Rotate the other way. | |
| instances | No | Number of instances around the axis. | |
| radial_spacing | No | Radial spacing between rings, mm. | |
| angular_spacing | No | Angle between instances, degrees. | |
| radial_instances | No | Rings of instances at increasing radius. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, but the description adds little behavioral context. It does not mention whether the original feature is kept, whether the pattern is associative, or any side effects. The description does not contradict annotations, but it also does not enrich them beyond stating the action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loads the main action, with no filler. It could add more value per sentence, but it avoids redundancy and is easy to scan.
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 8 parameters and no output schema, the description is too sparse. It does not explain expected results, prerequisites (e.g., an active part with a selected feature), or relationship to similar pattern tools. An agent would need external knowledge to invoke this correctly beyond parameter names.
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 provides complete descriptions for all 8 parameters (100% coverage). The description repeats the axis reference token types already present in the schema ('cylindrical face, an edge, or a line') without adding new semantic depth, so it meets the baseline for schema-heavy documentation.
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: 'Repeat a feature around an axis.' It clearly conveys this is a circular pattern operation. However, it does not explicitly differentiate from sibling tools like catia_rect_pattern or catia_user_pattern, though the tool name and 'around an axis' partially imply it.
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 such as catia_rect_pattern or catia_user_pattern. The description only explains the basic action without conditions, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_close_documentADestructive
Close a document. Unsaved changes are discarded unless save=true, so check catia_list_documents first if you are unsure.
| Name | Required | Description | Default |
|---|---|---|---|
| save | No | Save before closing (requires an existing file path). | |
| document | No | Document name to close. Defaults to the active one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly discloses the destructive nature: 'Unsaved changes are discarded unless save=true.' This goes beyond the annotations (destructiveHint=true) by detailing the discard behavior and the save mitigation. It also advises a safety check, adding valuable behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, direct sentence conveys the core action, the risk, the mitigation, and a safety tip. No filler or redundancy; every part 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 behavior (closing, discard, save option) and even guides the user to check document lists. It lacks an output schema, but for a close action, no return value is expected. It is sufficiently complete 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 already provides descriptions for both parameters (save and document) with 100% coverage. The tool description adds no additional parameter-specific details beyond what the schema states, so it meets the baseline for a fully documented 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 'Close a document' with a specific verb and resource. It also implies the scope by mentioning the save option and pointing to catia_list_documents, distinguishing it from save and open operations. No ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description suggests checking catia_list_documents first if unsure, which is a usage hint, but it does not explicitly state when to use this tool versus alternatives like catia_save_all or catia_save_document. It gives context for safe use but lacks explicit exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_close_sketchAIdempotent
Finish editing the current sketch. The solid tools do this automatically, so you only need it when you want to inspect a finished sketch or switch to another one.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint=true and destructiveHint=false, covering safety. The description adds context that this command manually terminates sketch-editing mode and is complementary to solid tools, which auto-close. 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?
Two short sentences, with the primary action and key usage condition front-loaded. No filler or repeated annotation values.
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 zero-parameter, no-output-schema tool, the description covers the action, when it is needed, and when it is not. An agent can determine whether to invoke it without consulting additional sources.
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 no parameter detail the description must supply. Baseline 4 applies for parameterless tools, and the description focuses on the operation rather than inputs.
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: 'Finish editing the current sketch' – clearly an action to exit sketch-editing mode. It also differentiates from solid tools by noting they do this automatically, so an agent can distinguish manual close from other 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 explicitly specifies when manual invocation is needed: 'only need it when you want to inspect a finished sketch or switch to another one.' It also gives the when-not: solid tools close the sketch automatically, so the call is unnecessary in those workflows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_component_positionARead-only
Read a component's placement in the assembly: translation, Euler angles and the raw 12-value CATIA matrix.
| Name | Required | Description | Default |
|---|---|---|---|
| instance_name | Yes | Instance name of the component. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is consistent with the readOnlyHint annotation ('Read' matches read-only). It adds value by specifying the exact output contents (translation, Euler angles, matrix), but it does not disclose any additional behavioral traits such as required permissions, potential errors, or performance implications. With annotations already covering the read-only safety profile, a 3 is appropriate – it adds some context but not rich behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly worded sentence. The verb and resource are front-loaded, followed by the specific data types returned. There is no filler or redundant information – every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with one parameter, no output schema, and a clear description of the return data, the description is adequate. It tells the agent exactly what to expect (translation, Euler angles, matrix) and that it's a read operation. It lacks explicit return format details, but since there is no output schema, the description carries the burden – and it does so sufficiently for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description covers the single parameter instance_name at 100% ('Instance name of the component.'), so the baseline is 3. The tool description does not add any additional meaning about the parameter beyond what the schema provides, such as format examples or constraints. No compensation needed, but no enhancement either.
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 ('Read'), a specific resource ('a component's placement in the assembly'), and enumerates the returned data (translation, Euler angles, raw CATIA matrix). This clearly distinguishes it from sibling tools like catia_move_component, which writes, and catia_list_components, which lists components rather than their placement.
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 (when you need placement data) but does not explicitly state when not to use it or name alternatives. There is no mention of scenarios where other tools like catia_measure or catia_point_coordinates would be more appropriate. The usage context is clear but not explicit about exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_connectAIdempotent
Attach to a running CATIA session. Call this first. By default it only attaches to a CATIA that is already open; pass launch=true to start one (slow, and it checks out a licence). Returns the detected release and family so later calls can be tailored to it.
| Name | Required | Description | Default |
|---|---|---|---|
| launch | No | Start CATIA if no running instance is found. | |
| visible | No | Show the CATIA window when launching it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and destructiveHint=false, so the description adds value beyond them: it discloses that launch=true starts a new instance (with slowness and license cost) and that the tool returns release and family info. This is useful context that isn't in the annotations. No 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 sentences with no fluff. The core purpose is front-loaded in the first sentence, the usage nuance in the second, and the return value in the third. 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?
No output schema exists, but the description mentions it returns release and family, which is enough for the agent to tailor later calls. It doesn't explicitly state the failure mode when no CATIA is open and launch=false, but that is strongly implied by the default-attach description. Given the tool's simple scope, this is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description enriches the launch parameter by explaining its real-world consequences (slow, license checkout), which is beyond the schema's simple 'Start CATIA if no running instance is found.' That added semantics justifies a 4.
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 ('Attach') and the resource ('a running CATIA session'), and also positions it as the entry point with 'Call this first.' This distinguishes it from all sibling tools that operate on an already-connected session, so its purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs 'Call this first' and explains the default behavior (attach to open CATIA) and how to override it with launch=true, including caveats ('slow, and it checks out a licence'). This gives the agent clear when-to-use and behavior-modifier guidance, and since it's the entry point, no alternative is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_create_formulaA
Drive one parameter from an expression involving others. The expression is CATIA Knowledge syntax and must carry units, for example 'Width * 2 + 5mm'. Feature dimensions can be the target, so this is how you make a model self-adjusting.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the formula. | |
| comment | No | Optional description. | |
| expression | Yes | CATIA Knowledge expression, with units: 'Width * 2 + 5mm'. | |
| target_parameter | Yes | Exact name of the parameter to drive, e.g. 'Pad.1\FirstLimit\Length'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds some context about expression syntax and units, but does not disclose side effects like persistent formula creation, validation failures, or idempotency issues. With annotations indicating a write operation (readOnlyHint=false), the description does not go beyond that to explain consequences of repeated calls or invalid expressions.
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 concise sentences front-load the purpose, give an example, and add a use case. No fluff.
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 information needed to call the tool - the expression format and target parameter example. It lacks information about error conditions or whether the target must already exist, but given the schema coverage and example, it is fairly complete for a typical call. It does not mention that the formula is a persistent relation, but that may be implied.
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 already describes both parameters with examples. The description reinforces the expression format and notes feature dimensions as valid targets, providing additional context beyond the schema. However, it does not cover the optional name/comment parameters, but those are self-explanatory.
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 function: driving one parameter from an expression. It provides an example and notes feature dimensions as valid targets. It does not explicitly distinguish from sibling tools like catia_set_parameter, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains the use case - making a model self-adjusting - which implies when to use it. It does not explicitly mention alternatives or exclusions, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_create_parameterA
Create a user parameter to drive the model - a named length, angle, number, string or flag that formulas and feature dimensions can refer to.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name for the new parameter. | |
| value | No | Initial numeric value (mm for length, degrees for angle). | |
| comment | No | Optional description. | |
| text_value | No | Initial value for a string parameter. | |
| parameter_type | No | length | angle | real | integer | string | boolean. | length |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, so the mutation and non-destructive safety profile is clear. The description adds useful context about the parameter's role in the model, but it does not disclose behavioral details beyond that, such as behavior on duplicate names or whether the active document must be a part.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core action and purpose. Every clause adds meaning without repetition or filler, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool with full schema coverage and minimal annotations, the description is nearly complete: it defines the object, its types, and its intended use. The only gaps are implied prerequisites like an active part document and behavior on name collisions, which are common to many CATIA tools and not explicitly required here.
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 fully documents all five parameters, including types, defaults, and units. The description adds minimal semantic value by grouping parameter types as 'length, angle, number, string or flag,' which mostly mirrors the schema's 'length | angle | real | integer | string | boolean' enumeration.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Create' with the resource 'user parameter' and states its purpose: to drive the model and be referenced by formulas and feature dimensions. This clearly distinguishes it from related sibling tools like catia_set_parameter or catia_delete_parameter, which have different operations on the same resource.
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 the tool ('to drive the model' with named lengths, angles, etc.) but does not explicitly state when not to use it or name alternatives such as catia_set_parameter for modifying an existing parameter. The intended usage is inferable but not directly contrasted with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_create_sketchA
Create a sketch on a plane or a planar face and open it for drawing. The support is a reference token: 'xy', 'yz', 'zx' for the origin planes, 'face#3' or 'face@x,y,z' to sketch directly on a face of the solid, or the name of a construction plane. Subsequent catia_sketch_* calls draw into this sketch until you close it or create another one.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | Body to create the sketch in. Defaults to the in-work body. | |
| name | No | Name for the new sketch. | |
| origin | No | Optional 3D origin [x,y,z] for the sketch axis system, in part coordinates. Use it to place a sketch away from the plane's origin without needing a construction plane. | |
| support | No | Reference token for the sketch plane: 'xy' | 'yz' | 'zx' | 'face#3' | 'face@10,0,25' | 'name:Plane.1'. | xy |
| horizontal_direction | No | Optional 3D vector [x,y,z] for the sketch's H axis. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnly=false and destructive=false, which are thin. The description adds the crucial behavioral fact that the tool both creates and opens an active sketch context, and that subsequent sketch calls target this sketch until closed or replaced. This stateful behavior is exactly the kind of side effect an agent needs to know.
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 carry all the essential information: the purpose, the support syntax, and the stateful behavior. There is no filler or redundant restatement of the schema.
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 sparse annotations, the description covers the main invocation workflow and the active-sketch lifecycle. It does not mention prerequisites such as an open document or existing body, but the schema's body default and support descriptions fill in most 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?
The schema already documents all five parameters with descriptions, so the baseline is 3. The description goes beyond the schema by explaining the support token semantics: origin planes, face references ('face#3', 'face@x,y,z') for faces of the solid, and construction-plane names. It does not add detail for origin or horizontal_direction, but the schema handles those.
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 names the exact action ('Create a sketch'), the target ('on a plane or a planar face'), and the mode ('open it for drawing'). It also references the sibling family 'catia_sketch_*' as downstream consumers, so an agent can distinguish this entry-point tool from the individual sketch-drawing 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 clear sequencing: create a sketch, then draw with catia_sketch_* until you close it or create another. This tells an agent when this tool is the right entry point, though it never names the explicit alternative catia_close_sketch or warns against creating a new sketch while one is already being drawn on.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_delete_constraintBDestructive
Delete an assembly constraint by name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Constraint name, from catia_list_constraints. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the description's 'delete' adds no new behavioral information. No mention of irreversibility, failure behavior, or any side effects beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the action and resource, no filler. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter destructive tool, the description plus schema and annotations provide adequate context: the operation, the required parameter, and the destructive nature. It could mention failure behavior but is sufficient for a simple delete 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 schema already documents the 'name' parameter and its source. The description's 'by name' adds no additional semantic meaning, matching the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (delete), a specific resource (assembly constraint), and the selection criterion (by name). It clearly differentiates from sibling tools like catia_delete_element (generic delete) and catia_remove_component (removes components), and aligns with catia_list_constraints for obtaining names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor any preconditions or exclusions. The only hint is in the parameter schema ('from catia_list_constraints'), which is not part of the tool description itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_delete_elementADestructive
Delete a tree element. Deleting a feature that later features depend on will put those into error, so check catia_list_features afterwards.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | Reference token of the element to delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the destructive nature is covered. The description adds valuable context about dependent features going into error and recommends verifying with catia_list_features, which goes beyond the annotation.
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 wasted words. The primary action is front-loaded, and the dependency warning is placed immediately after, making it easy to scan.
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 delete tool with one parameter and no output schema, the description covers the essential action and the critical risk (dependent features). It could mention the result of deletion or reversibility, but annotations already indicate destructiveness, so 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 the token parameter is clearly described as 'Reference token of the element to delete'. The description adds no additional meaning beyond the schema, so it meets the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action clearly ('Delete a tree element') with a specific verb and resource. It distinguishes itself from sibling delete tools like catia_delete_constraint and catia_delete_parameter by focusing on tree elements, though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this vs other delete tools. It does provide a caution about dependencies and suggests checking catia_list_features afterwards, which is useful but not about selecting this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_delete_parameterADestructive
Delete 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 declare destructiveHint=true, and the description's verb 'Delete' aligns with that. The description adds no extra behavioral context such as irreversibility, permissions required, or effects on dependent relations. Since the destructive nature is already captured by annotations, the description contributes minimal additional transparency; however, there is no contradiction, so a baseline 3 is appropriate.
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, compact sentence: 'Delete a user parameter.' It is front-loaded with the action and object, contains zero filler words, and is appropriately sized for the tool's simplicity. Every word earns its place; no unnecessary details or redundancies exist.
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 that the tool has only one parameter, no output schema, and no nested objects, the description covers the essential action. The destructive hint is provided via annotations, and the target (user parameter) is clearly stated. It could potentially mention that the parameter is deleted from the active document, but that is reasonably implied by the tool's context and sibling tools. The description is sufficient for an agent to 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 100%, meaning the only parameter 'name' is fully documented in the input schema as 'Parameter name.' The description does not add any further detail about the parameter's format, valid values, or relationship to the document. With full schema coverage, the baseline of 3 applies; the description adds no additional meaning 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 'Delete a user parameter.' states a clear action (delete) on a specific resource (user parameter). This distinguishes it from sibling tools like catia_get_parameter, catia_set_parameter, catia_create_parameter, and catia_list_parameters, all of which perform different operations on parameters. The verb-resource pair is explicit and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention preconditions (e.g., the parameter must exist), when not to use it, or how it differs from deleting a constraint or element. There is no context about the active document or scope. For a simple tool this may be acceptable, but the definition offers no explicit usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_delete_relationBDestructive
Delete a formula, rule, check or design table.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Relation name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only restates the destructive action already declared by annotations (destructiveHint=true). It does not disclose additional behavioral traits such as cascading effects on dependent formulas, irreversibility beyond the annotation, or any required permissions. With annotations covering the destructive hint, the description adds no extra behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that front-loads the action ('Delete') and immediately clarifies the scope. Every word earns its place, with no fluff 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 simple single-parameter destructive tool, the description covers the essential action and target. However, it omits any usage context (e.g., when deletion is appropriate) and does not elaborate on side effects beyond the annotation, which might be expected for a destructive operation. It is adequate but not rich.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage for the single 'name' parameter with the description 'Relation name.' The tool description does not add any further semantics or constraints beyond what the schema already states, so it meets the baseline without improvement.
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 clear action (delete) and a specific resource (relation) with enumerated types (formula, rule, check, design table). This distinguishes it from sibling deletion tools like catia_delete_parameter and catia_delete_element, which target different 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?
No guidance is given on when to use this tool versus alternatives such as catia_set_relation_active or catia_list_relations. There is no mention of prerequisites, exclusions, or context about the relation lifecycle, leaving the agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_describe_treeARead-only
Walk the specification tree of the active document and return it as nested JSON: bodies, geometrical sets, sketches, features and - for assemblies - the component hierarchy. Every node carries a reference token you can pass straight to the modelling tools. Start here when you do not know what is in the document.
| Name | Required | Description | Default |
|---|---|---|---|
| max_depth | No | How deep to recurse. | |
| max_children | No | Cap on children reported per node. | |
| include_types | No | Include each element's CATIA type name. Accurate but costs an extra selection pass per level; turn off for very large models. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds valuable context: the output format, the inclusion of reference tokens for later modelling, and a performance hint via the include_types parameter (cost per level). This goes beyond what annotations alone provide.
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 zero wasted words. The first sentence defines the operation and output; the second adds the reference-token detail and the usage guidance. Everything earns its place and the key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only inspection tool with well-documented parameters and no output schema, the description covers the essential aspects: scope (active document), output type (nested JSON), element categories, and the reference-token mechanism. Minor omissions like behaviour on empty documents or performance characteristics are acceptable given the parameter 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 description coverage is 100% – all three parameters (max_depth, max_children, include_types) have descriptive text. The description itself adds no new parameter semantics; it only alludes to the output structure and reference token, which are output-related. Baseline 3 is appropriate when the schema already documents parameters well.
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 (walk), a resource (specification tree), and a precise output (nested JSON of bodies, geometrical sets, sketches, features, and component hierarchy). It distinguishes itself from the many specific list tools (catia_list_bodies, catia_list_features, etc.) by positioning itself as the starting point when the document's contents are unknown.
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 when-to-use instruction: 'Start here when you do not know what is in the document.' It implies that for known specific needs, more targeted tools should be used, though it does not name them explicitly. The guidance is clear enough for an agent to decide when to call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_disconnectAIdempotent
Release this server's COM reference to CATIA. CATIA itself keeps running and no document is closed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint=true and destructiveHint=false, so the description adds value by specifying the exact side effects: releasing the COM reference while leaving CATIA running and documents open. This is useful context beyond the annotations, though it doesn't discuss error cases or prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the core action, and every clause earns its place. No fluff 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 zero-parameter tool with no output schema, the description fully covers what an agent needs: what the tool does, its side effects, and its boundary relative to closing documents. Nothing essential 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 has zero parameters, so there is nothing to explain. Per the rubric, a baseline of 4 is appropriate when there are no parameters to document, and the description correctly avoids inventing 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 states a specific action ('Release this server's COM reference to CATIA') and clearly distinguishes it from related tools like catia_connect and catia_close_document by explicitly noting that CATIA keeps running and no document is closed. This makes the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it—as the counterpart to catia_connect—and explicitly states what it does not do (close a document), which helps an agent decide between this and catia_close_document. However, it doesn't name alternative tools or provide explicit 'when not to use' guidance, so it's slightly below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_document_infoARead-only
Describe the active document in detail: type, path, save state, and for parts and products the tree contents and product properties (part number, revision, definition, nomenclature).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and destructiveHint=false, so the description only needs to add context beyond safety. It adds the scoping to 'active document' and enumerates returned information, but it does not disclose behavior when no document is active or output size/format expectations. 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?
A single front-loaded sentence with no filler. Every phrase adds meaningful detail about the document aspects the tool returns, making it efficient and 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?
For a zero-parameter, read-only introspection tool with no output schema, the description covers the main return categories well: type, path, save state, tree contents, and product properties. It could mention the 'no active document' failure case, but overall it is sufficiently complete for an agent to invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is vacuously 100%, so there are no parameter descriptions needed. The description still clarifies that the implicit target is the active document, which is sufficient given no inputs exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Describe') and resource ('the active document'), then lists concrete content: type, path, save state, tree contents, and product properties. This makes it distinguishable from siblings like catia_describe_tree and catia_status, though it does not explicitly name any alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus catia_describe_tree, catia_status, or catia_list_documents. The description implies a metadata-overview use case, but it does not state exclusions or conditions for choosing an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_draftA
Apply a draft angle to faces so a moulded or cast part can be released from the tool. Needs the faces to draft, a neutral element the draft pivots about (usually a planar face or plane), and a pulling direction.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the resulting feature. | |
| angle | No | Draft angle in degrees. | |
| faces | Yes | Reference tokens of the faces to draft. | |
| neutral_element | Yes | Reference token of the neutral face or plane the draft pivots about, e.g. 'face@0,0,0' or 'xy'. | |
| pulling_direction | No | Reference token for the pull direction; usually the same plane as the neutral element. Defaults to the neutral element. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no safety profile (readOnlyHint=false, destructiveHint=false), so the description carries the full burden. While it states that a draft angle is applied, it does not disclose side effects such as feature creation, body modification, reversibility, or prerequisites beyond the listed inputs. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero fluff. The main purpose is front-loaded, and the necessary inputs are mentioned succinctly. 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 CAD feature that modifies geometry, the description is adequate but not complete. It does not explain what the result looks like (e.g., a feature in the tree) or mention how default behaviors work (like pulling_direction defaulting to neutral element, which is in schema). With no output schema and no safety annotations, more context about the resulting feature and side effects would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already documented. The description adds value by explaining the neutral element's role ('the draft pivots about') and clarifying the pulling direction concept, which goes beyond the schema's field descriptions. This justifies a score above the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action—'Apply a draft angle to faces'—with a clear purpose ('so a moulded or cast part can be released from the tool'). This distinguishes it from sibling operations like fillets, chamfers, or shells, and no other tool covers this exact functionality.
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 clear context for when to use the tool (for moulded or cast parts needing release) and lists the required inputs (faces, neutral element, pulling direction). However, it does not explicitly mention when not to use it or name alternative tools, so it falls short of the top score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_drawing_add_sheetA
Add a sheet to the active drawing and make it current.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the sheet. | |
| scale | No | Sheet scale, e.g. 1.0 or 0.5. | |
| landscape | No | Landscape orientation. | |
| paper_size | No | A0-A4 or A-F. | A3 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false (readOnlyHint, openWorldHint, idempotentHint, destructiveHint), providing no behavioral signals. The description adds one behavioral detail: 'make it current,' indicating a side effect on the active sheet. However, it does not disclose potential errors, side effects on existing sheets, or any other behavioral traits. With neutral annotations, the description carries some burden but only partially fulfills it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the action and the key effect. There is no redundancy or unnecessary detail, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately covers the core operation and its immediate effect, and the schema covers parameter details. It does not explicitly state that an active drawing must exist, but the phrase 'active drawing' implies it. There is no output schema, so return value explanation is not expected. The description is sufficient for a simple mutation tool, though it could be slightly more explicit about prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all four parameters (name, scale, landscape, paper_size) having descriptions. The tool description does not mention any parameters, so it adds no additional meaning beyond what the schema already provides. The baseline of 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 sheet to the active drawing and make it current.' It specifies the verb (add), the resource (sheet), the context (active drawing), and an additional effect (make it current). This distinguishes it from sibling tools like catia_drawing_add_view (adds a view) and catia_drawing_list_sheets (lists sheets).
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 by mentioning the 'active drawing' as a prerequisite, but it does not explicitly state when to use this tool over alternatives, nor does it mention exclusions or conditions. It provides minimal context but no explicit guidance on selection among drawing-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_drawing_add_textA
Place a text annotation on a drawing sheet - a note, a title or a revision mark.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | X position on the sheet, mm. | |
| y | No | Y position on the sheet, mm. | |
| text | Yes | The text to place. | |
| view | No | View to place the text in. Empty uses the sheet's main view. | |
| sheet | No | Sheet name. | |
| height | No | Character height, mm. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is consistent with the annotations: 'Place' implies a write operation matching readOnlyHint=false and is not presented as destructive. However, it adds little behavioral context beyond the annotations, such as whether each call creates a new annotation or how the tool interacts with the current/active document.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly worded sentence with a clear action, target resource, and illustrative examples. It is front-loaded and contains 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 relatively simple creation tool with a complete parameter schema and annotations, the description is largely sufficient. It leaves minor details unstated, such as the need for an active drawing document and the absence of return-value information, but neither is critical to selecting or invoking this 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 100%, so the parameter details are already fully documented in the schema. The description adds no extra semantic detail about the parameters such as position, sheet, view, or height.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and object: 'Place a text annotation on a drawing sheet,' with content examples like note, title, or revision mark. This makes the tool's function unambiguous and clearly distinct from the many sketch, solid, and drawing-management 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 explicit when-to-use guidance, exclusions, or prerequisites are given. The description does not mention that a drawing document must be active, nor does it point to alternatives among the drawing-related sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_drawing_add_viewA
Add a generative view of an open 3D document to a drawing sheet. Choose a standard orientation, where the view goes on the sheet, and its scale. Call catia_drawing_update afterwards to make CATIA compute the geometry.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | View centre X on the sheet, mm. | |
| y | No | View centre Y on the sheet, mm. | |
| name | No | Name for the view. | |
| scale | No | View scale. | |
| sheet | No | Sheet name. Empty uses the active sheet. | |
| orientation | No | front | back | top | bottom | left | right | isometric. | front |
| source_document | No | Name of the open 3D document to draw. Empty uses the first Part or Product that is open. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations: it notes that the view geometry is not computed until catia_drawing_update is called, and it implies the operation modifies the drawing sheet. Since annotations already declare readOnlyHint=false and destructiveHint=false, the description's mention of the update requirement adds value by clarifying the incomplete nature of the operation without contradicting 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 two sentences with no filler. It front-loads the core purpose, mentions key adjustable attributes (orientation, placement, scale), and ends with the critical follow-up action. Every sentence earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter tool with all parameters defaulted and fully documented in the schema, the description covers the essential workflow: add a view, specify its placement and orientation, then update. It mentions the prerequisite of an open 3D document and the need for a follow-up call, which is sufficient for an agent to invoke the tool correctly. It does not describe return values or error conditions, but given the simple, non-output-schema tool, this is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 7 parameters are fully described in the schema (100% coverage), so the baseline is 3. The description's mention of 'standard orientation, where the view goes on the sheet, and its scale' loosely mirrors the schema fields but adds no new meaning beyond what the schema already provides. It does not clarify units, defaults, or edge cases beyond what the schema 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?
The description clearly states the action ('Add a generative view') and the resource ('to a drawing sheet'), specifying the type of view and the context (open 3D document). It distinguishes from siblings like catia_drawing_add_text or catia_drawing_add_sheet by focusing on view creation, and the verb 'add' plus 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?
The description provides a clear follow-up action ('Call catia_drawing_update afterwards') and implies a prerequisite (an open 3D document). However, it does not explicitly contrast with alternative view-related tools like catia_set_view or catia_drawing_delete_view, nor state when not to use this tool. The usage context is implied rather than explicit, leaving some room for an agent to select incorrectly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_drawing_delete_viewBDestructive
Delete a view from a drawing sheet.
| Name | Required | Description | Default |
|---|---|---|---|
| view | Yes | View name. | |
| sheet | No | Sheet name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the agent knows this is destructive. The description adds the specific target (a view on a drawing sheet) but doesn't disclose consequences like whether dependent elements are also deleted, whether the operation is undoable, or whether the sheet must be active. With destructiveHint covering the main safety concern, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the operation clearly. It is appropriately sized for a simple tool with two parameters, though it could add a brief usage note without becoming bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation with no output schema, the description is adequate but minimal. It doesn't mention prerequisites (e.g., whether the drawing must be active), error conditions, or what happens to associated elements. The annotations cover the destructive nature, but an agent might still be uncertain about edge cases.
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 (view and sheet) are documented in the schema. The description adds no additional parameter semantics beyond what the schema provides. Baseline 3 is correct when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete a view from a drawing sheet' clearly states the verb (delete), the resource (view), and the context (drawing sheet). It is specific enough to distinguish from generic delete tools like catia_delete_element, though it doesn't explicitly differentiate from other drawing-related 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 implies usage context (drawing sheet views) but provides no explicit guidance on when to use this tool versus alternatives like catia_delete_element or catia_sketch_delete_element. The sibling list contains many delete-type tools, so an agent would benefit from explicit routing guidance, but the drawing-specific scope is reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_drawing_list_sheetsARead-only
List the sheets of the active drawing, with their paper size, scale and views.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds the concrete output content (paper size, scale, views), which is useful behavioral context beyond the annotations. It doesn't introduce any contradictions and provides a reasonable level of transparency for a simple read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no unnecessary words. It front-loads the verb and resource, and immediately states what information is returned. Every word 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?
Given zero parameters and no output schema, the description is nearly complete. It states the action, the scope, and the return content. The main omission is an explicit statement about requiring an open drawing document, though 'active drawing' strongly implies it. Error conditions or behavior when no drawing is active are not mentioned, but are minor for a simple read 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?
There are no parameters (schema coverage 100% trivially), so the baseline is 4. The description correctly avoids describing parameters, as none exist. It adds no extra parameter semantics, but none are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'List' and resource 'sheets of the active drawing', and explicitly names the output fields (paper size, scale, views). This clearly differentiates it from other listing tools like catia_list_features or catia_drawing_add_sheet, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states the scope 'active drawing', which implies the prerequisite that a drawing must be open and active. While it doesn't explicitly mention alternatives or when not to use it, the context is clear enough for an agent to infer when to call it. A small addition about not being applicable to part documents could improve it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_drawing_set_scaleA
Change the scale of a sheet or of one view.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | View name. Empty changes the whole sheet's scale. | |
| scale | Yes | New scale, e.g. 0.5 for half size. | |
| sheet | No | Sheet name. Empty uses the active sheet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-readOnly and non-destructive behavior. The description adds no further behavioral context, such as immediate application, state requirements, or side effects. It does not contradict 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, tightly worded sentence: 'Change the scale of a sheet or of one view.' It is front-loaded with the core purpose and contains no redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple mutation tool with full schema coverage and no output schema, the description is sufficient for an agent to select it. It lacks explicit mention of default behavior (e.g., active sheet), but these details are already in the parameter descriptions.
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 has a clear description. The tool description only restates the sheet/view distinction already present in the schema, adding minimal value beyond what structured fields provide.
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 ('Change'), resource ('scale'), and scope ('of a sheet or of one view'), clearly distinguishing it from sibling tools like catia_drawing_add_view or catia_set_view. It is unambiguous 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 conveys the tool's purpose but gives no explicit guidance on when to use it versus alternatives. It implies its usage (when scale needs adjustment) but does not mention any alternative tools or conditions where it should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_drawing_updateAIdempotent
Regenerate every generative view on a sheet from the current state of the 3D model. Run this after changing the part.
| Name | Required | Description | Default |
|---|---|---|---|
| sheet | No | Sheet name. Empty updates the active sheet. | |
| all_sheets | No | Update every sheet in the drawing. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and destructiveHint=false, and the description does not contradict these. Although it does not explicitly mention that the operation is non-destructive, it implies regeneration, which is non-destructive. The description adds value by specifying the scope (every generative view, from current state) which is useful context 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 concise sentence and a trailing instruction. It is front-loaded with the main action and followed by usage context. Every word is purposeful, with no fluff.
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 only two optional parameters and no output schema, the description is adequate. It lacks details on return values or error handling, but such information is not required given the tool's simplicity and the annotations covering idempotency. The trigger for usage is explicit, making it reasonably complete for agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the parameters. The description does not add additional semantics beyond what the schema provides (e.g., default behavior for sheet name). Thus, the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (regenerate), the resource (generative views on a sheet), and the trigger (after changing the 3D model). It is specific and distinct from sibling tools like 'catia_update' (which likely updates the drawing) by focusing on generative views.
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 explicitly says 'Run this after changing the part,' which gives clear context for when to use it. It does not explicitly name alternatives, but it is self-contained for its purpose, and the trigger is clear enough for an agent to infer when to call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_exportA
Export the active document to a neutral format - STEP, IGES, STL, VRML, 3D XML, CGR for 3D documents, and DXF, DWG, PDF, CGM or SVG for drawings. The format is taken from the file extension unless you name it explicitly.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Destination file path, including the extension. | |
| format | No | Format name, e.g. 'step', 'stl', 'iges'. Empty derives it from the file extension. | |
| overwrite | No | Replace the file if it already exists. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral context about format resolution ('format is taken from the file extension unless you name it explicitly') and supported formats per document type. However, with annotations carrying little safety detail, it does not disclose side effects like whether the default overwrite=true replaces existing files, whether the export blocks, or what the function returns. It is not misleading, but it leaves some behavioral burden uncovered.
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 carry all the crucial information: what the tool exports, to which formats, and how format selection works. The active-document scope is front-loaded, and every phrase contributes value without repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter export tool with no output schema, the description covers the main inputs and scope well. It is incomplete in that it does not mention return behavior, error conditions, or the overwrite default behavior, though the overwrite parameter is documented in the schema. Overall it is adequate but not fully 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 coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by listing accepted neutral formats and clarifying which formats apply to 3D documents versus drawings, and by explaining the extension-vs-explicit-format precedence. This helps the agent choose valid path/format combinations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Export the active document'), a resource ('active document'), and a concrete scope ('neutral format'). It enumerates supported formats for both 3D documents and drawings, which distinguishes it from sibling export tools like catia_export_all_open and catia_export_bom_csv without requiring the agent to inspect their schemas.
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 by saying 'active document' and enumerates format categories, but it does not explicitly route the agent toward alternatives such as catia_export_all_open for exporting all open documents or catia_export_bom_csv for BOM data. Usage context is present, but exclusions and direct sibling comparisons are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_export_all_openA
Export every open 3D document to a directory in one format. Useful for turning a session's worth of work into STEP files in a single call.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Format name, e.g. 'step' or 'stl'. | step |
| directory | Yes | Destination directory. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, providing no safety profile. The description says 'export every open 3D document' but doesn't disclose potential side effects like creating files on disk, overwriting existing files, or handling of unsaved documents. It also doesn't mention any errors or limitations. Since annotations don't cover these, the description carries the burden and only partially discloses 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 sentences, both informative, with no waste. The purpose is front-loaded. The second sentence gives a use case and example format, which is concise and helpful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with only 2 params and no output schema, but the description doesn't explain the success/failure behavior, whether a progress report is returned, or any prerequisites (e.g., documents must be saved). It's adequate for basic use but could be more complete for error handling and edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema documents both parameters. The description adds a hint that format has a default of 'step' and mentions 'STEP files' as an example, but otherwise doesn't add meaningful semantics beyond the schema. It doesn't clarify accepted format names or directory requirements.
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 exports all open 3D documents to a directory in one format, using a specific verb and resource. It distinguishes itself from siblings like catia_export (which likely exports a single document) and catia_save_all (which saves, not exports). However, it doesn't explicitly name those siblings, 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?
The description implies usage for batch exporting a session's work, which is clear. It doesn't explicitly contrast with catia_export or list when not to use it, so it lacks explicit exclusions. The example of STEP files gives a concrete use case, but no alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_export_bom_csvA
Write the active assembly's bill of materials to a CSV file: part number, quantity, nomenclature, revision, definition and source file.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Destination .csv path. | |
| max_depth | No | Recursion depth. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark it as not read-only and not destructive, so the write side effect is already implied; the description adds that it writes to a CSV file. It does not disclose whether an existing file is overwritten, whether the operation requires saving, or what happens if no assembly is active.
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 that states the operation, target, and output contents without wasted words. Every clause adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, no-output-schema tool, the description covers the core purpose well. Missing context includes what the tool returns or confirms after writing, whether the destination file is overwritten, and how max_depth interacts with nested assemblies, leaving some non-trivial behavior 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 coverage is 100%, so both path and max_depth are already documented. The description adds useful context about which BOM fields are exported but does not clarify how max_depth affects the BOM content beyond the schema's 'Recursion depth' 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?
The description uses a specific verb ('Write'), identifies the exact resource ('active assembly's bill of materials'), and specifies the output artifact (CSV file) and the included fields. This clearly distinguishes it from generic export tools and the read-oriented catia_bill_of_materials sibling.
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 'active assembly' implies it should be used only when a CATIA assembly is active and the caller wants a CSV BOM export. However, it does not explicitly state when to prefer this over siblings like catia_bill_of_materials or catia_export, nor does it mention failure cases or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_face_filletA
Round the junction between two faces that need not share an edge - CATIA's Face-Face Fillet. Use it where an edge fillet cannot reach, such as across a step.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the resulting feature. | |
| radius | No | Fillet radius in mm. | |
| first_face | Yes | Reference token of the first face. | |
| second_face | Yes | Reference token of the second face. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal readOnly=false and destructive=false, so the mutation status is known. The description adds behavioral context beyond annotations by clarifying the geometric precondition (faces need not share an edge) and the domain (CATIA's Face-Face Fillet). It does not disclose side effects, but this is minor given the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The main action is front-loaded, and the usage guidance follows immediately. Every word 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 tool with four simple parameters and no output schema, the description provides enough for selection and invocation: what it does, when to use it, and its distinguishing characteristic. It lacks a note about prerequisite face selection or failure conditions, but these are not essential given the schema and annotation context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters first_face, second_face, radius, and name are already documented in the schema. The description adds no parameter-specific semantics beyond the schema, which matches the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Round the junction') and resource ('two faces that need not share an edge'), and explicitly names the CATIA Face-Face Fillet feature. It differentiates itself from edge fillet by noting it works where an edge fillet cannot reach, so an agent can distinguish it from sibling fillet 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?
It gives an explicit usage rule: 'Use it where an edge fillet cannot reach, such as across a step.' This tells the agent when to select this tool over an edge fillet alternative and provides a concrete example of the intended scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_face_planeARead-only
For a planar face, report its plane: a point on it, its two in-plane directions and the outward normal. This is what you need to decide which face is 'the top one' before sketching on it.
| Name | Required | Description | Default |
|---|---|---|---|
| face | Yes | Reference token of the face. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds value by specifying the input must be planar and by detailing the returned components, including the outward normal's orientation. It does not mention failure behavior for non-planar faces, but this is implied by the precondition.
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 tight sentences: the first defines the tool's action and output, the second gives the motivating use case. No filler or repetition; the key benefit is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the full burden of describing return values, and it does so clearly. The read-only annotations cover safety, the single parameter is documented, and the tool's role in the sketcher workflow is explicit, making it complete for this low-complexity 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?
The schema already describes 'face' as a reference token, and the description adds the crucial constraint that the face must be planar, which affects how the parameter should be chosen. Since schema coverage is 100%, the description provides useful extra semantics 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?
The description uses a specific verb ('report') and a clear resource ('plane of a planar face'), enumerating the exact outputs: point, two in-plane directions, outward normal. It also gives a concrete use case (deciding the top face before sketching) that separates it from sibling tools like catia_measure or catia_gsd_plane.
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 explicitly states when to use this tool: when you need to decide which face is 'the top one' before sketching on it. It provides clear context but does not name alternatives or say when not to use it, so it falls short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_filletA
Round one or more edges with a constant radius. Edges are named with reference tokens - 'edge#4' by index, or 'edge@20,0,10' to pick the edge nearest a point, which survives later model changes. Tangent-continuous edges are followed by default so a single token usually rounds a whole chain.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the resulting feature. | |
| edges | Yes | Reference tokens of the edges to round, e.g. ['edge#3','edge@0,0,20']. A face token rounds every edge of that face. | |
| radius | No | Fillet radius in mm. | |
| propagate_tangency | No | Continue the fillet across tangent-continuous edges. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide basic flags, so the description carries real behavioral weight. It adds valuable non-obvious behavior: edge tokens like 'edge#4' and 'edge@20,0,10', the latter surviving model changes, and the default propagation across tangent-continuous edges. It could go further by noting failure behavior when an edge token is invalid, but it materially exceeds the annotated baseline.
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 packed sentences front-load the core action and then explain the two most important behavioral nuances. Every clause earns its place: reference token syntax, model-change robustness, and tangent-chain default. There is 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 CAD feature tool, the description plus 100% schema coverage gives an agent what it needs to select edges, set radius, and understand tangency propagation. It does not mention prerequisites such as active workbench/body or what the tool returns, but these are less essential for a straightforward fillet operation, making it nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, satisfying the baseline, and the description goes beyond it by explaining the edge token formats and the difference between index-based and point-based references. This is genuinely useful semantic context that the schema examples alone do not convey. Radius and propagation semantics are already well covered by the schema, so the description does not need to repeat them.
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 and resource: 'Round one or more edges with a constant radius.' The qualifier 'constant radius' clearly separates it from sibling tools like catia_variable_fillet, and 'edges' separates it from face-based fillets. It also previews key behavior (tangent chains), so the tool's purpose is unmistakable.
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 makes clear this is the tool for constant-radius edge rounding and explains that a single token usually rounds a whole tangent-continuous chain. It does not explicitly name alternative tools or state when not to use it, but the 'constant radius' and 'edges' framing gives enough context to select it correctly among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_find_elementsARead-only
Search the active document for elements whose name matches a pattern (shell-style wildcards, e.g. 'Pad.*' or 'Hole'). Returns reference tokens for every match.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum matches. | |
| pattern | Yes | Name pattern with * and ? wildcards, e.g. 'Sketch.*'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that the tool returns reference tokens for each match, which is not present in the annotations or schema. This gives the agent useful information about the result format without contradicting any 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 action and scope. Every word earns its place: search, active document, pattern matching, and return value. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with complete schema coverage and no output schema, the description provides all necessary information: scope (active document), filter (name pattern), and return type (reference tokens). Nothing an agent needs to call this tool 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 100% for both parameters, so the schema already supplies basic meaning. The description adds value with concrete wildcard examples ('Pad.*', '*Hole*') and clarifies that these are shell-style wildcards, going beyond the schema's generic 'Name pattern with * and ? wildcards.'
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb ('Search'), identifies the resource ('active document for elements'), and clearly defines the operation (name-pattern matching with wildcards). This differentiates it from siblings like catia_list_elements, catia_select_elements, and catia_list_features, which have different search/selection semantics.
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 clearly sets the context: search within the active document by name patternasi. It does not explicitly name alternatives or exclusions, but the tool's specific purpose is obvious from the description alone, so the agent knows when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_fit_allAIdempotent
Zoom and centre the view so everything visible fits in the window.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-destructive and idempotent behavior, and the description does not contradict them. It adds the scope of 'everything visible' and the result 'fits in the window', but offers no additional behavioral traits such as whether the view change affects all windows or if there are any side effects. The extra value over annotations is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly worded sentence with no unnecessary words. The key action and outcome are front-loaded, making it immediately digestible.
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 zero-parameter, no-output view command, the description is sufficient: an agent can correctly predict the behavior without needing return-value specs. It could clarify whether 'everything visible' means all loaded geometry or only the current viewport, but that ambiguity 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?
The tool has zero parameters, so the baseline is 4. The description appropriately communicates that no input is needed, and the schema's 100% coverage confirms the complete absence of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Zoom and centre the view') and clearly states the outcome: everything visible fits in the window. It distinguishes itself from sibling catia_zoom, which likely performs a different kind of zoom, by specifying the fit-all behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like catia_zoom or catia_set_view. The context of use is only implied by the name and action; no explicit conditions 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.
catia_get_parameterARead-only
Read one parameter by its exact name, including its formula if it is driven by one.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Exact parameter name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds that the formula is included when driven by one, which is useful behavioral context. It does not describe error behavior or return format, but given the annotations, this is acceptable.
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, front-loaded with the action and object, and includes a valuable qualifier about formulas. 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?
For a simple read-only tool with one parameter and no output schema, the description covers the essential purpose and the formula detail. It does not specify return structure or not-found behavior, but these are minor for such a tool, and annotations cover safety.
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% ('Exact parameter name.'). The description's mention of 'exact name' is redundant with the schema, adding no new meaning. Baseline 3 is appropriate since the schema already documents the parameter fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Read' and identifies the resource 'one parameter by its exact name'. It also adds that it returns the formula if driven by one, which clarifies scope. It does not explicitly name a sibling like catia_list_parameters for differentiation, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: use this when you know the exact parameter name. It does not explicitly contrast with listing tools (e.g., catia_list_parameters) or mention when not to use it, leaving alternatives unaddressed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_grooveA
Cut material by revolving a sketch profile around an axis - the subtractive counterpart of catia_shaft.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | Optional revolution axis reference token. | |
| name | No | Name for the resulting feature. | |
| angle | No | Revolution angle in degrees. | |
| sketch | No | Profile sketch name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=false, so the description is not required to restate those. The description adds the key behavioral fact that this is a subtractive operation ('Cut material'), which is useful context beyond the annotations. However, it does not disclose details like whether the sketch must be closed, how the axis is resolved, or what happens if the groove cannot be computed.
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, information-dense sentence that front-loads the core action ('Cut material by revolving a sketch profile around an axis') and immediately adds the sibling relationship. Every word earns its place; 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?
For a feature-creation tool with 100% schema coverage and no output schema, the description is largely complete: it states the operation, the input concept, and the sibling relationship. The only minor gap is that it does not mention prerequisites (e.g., an active part, an existing sketch) or failure behavior, but these are not critical for an agent to invoke the tool correctly given the 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 description coverage is 100%, so the schema already documents all four parameters (axis, name, angle, sketch). The description adds the conceptual meaning of the parameters (revolving a sketch profile around an axis) but does not add syntax, defaults, 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 ('Cut material'), a specific resource ('revolving a sketch profile around an axis'), and explicitly names its counterpart (catia_shaft). This clearly distinguishes it from the many other feature-creation tools in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description identifies the tool as the subtractive counterpart of catia_shaft, which gives an agent a clear context for when to use it (when a revolved cut is needed rather than a revolved add). It does not explicitly list exclusions or alternative tools beyond catia_shaft, but the counterpart framing provides sufficient usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_gsd_axis_systemA
Create an axis system at a point with explicit X and Y directions - useful as a local reference frame for positioning and measurement.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the axis system. | |
| origin | No | Origin [x,y,z] in part coordinates, mm. | |
| set_current | No | Make it the part's current axis system. | |
| x_direction | No | X axis direction [x,y,z]. | |
| y_direction | No | Y axis direction [x,y,z]. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal a non-read-only, non-destructive write operation, and the description's 'Create' aligns with that. It adds only that a new local reference frame is produced; it does not disclose prerequisites such as an active document or behavior when X and Y directions are not perpendicular. 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?
A single sentence front-loaded with the verb and resource, followed by a compact purpose clause. Every phrase earns its place; 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?
Adequate for a moderately complex creation tool: the concept, key parameters, and a use case are covered, and the schema documents every parameter. Gaps include no mention of the return value (the created axis system reference), given there is no output schema, and no caveat about CATIA's orthogonalization behavior when X/Y are not perpendicular.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline holds. The description adds modest interpretive value by connecting origin ('at a point') and the two direction arrays ('explicit X and Y directions') into the concept of a reference frame, but it does not add semantics beyond the schema such as normalization or Z-axis derivation.
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 an axis system') with clarifying scope ('at a point with explicit X and Y directions') and names its role as a local reference frame. This is enough to distinguish it from GSD siblings like catia_gsd_point and catia_gsd_plane without opening schemas.
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 'useful as a local reference frame for positioning and measurement' provides a concrete use-case context for when an agent should invoke this tool. It does not name alternatives or exclusion conditions, but the situational guidance is explicit and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_gsd_blendB
Blend between two curves or edges to create a transition surface.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the surface. | |
| geoset | No | Target geometrical set. | |
| first_curve | Yes | First curve reference token. | |
| second_curve | Yes | Second curve reference token. | |
| first_support | No | Optional first support surface. | |
| second_support | No | Optional second support surface. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation is not read-only, not idempotent, and not destructive. The description adds that it creates a transition surface, which is the key behavioral outcome. However, it does not mention side effects such as where the surface is placed, whether it appears in the active geoset, or how optional supports affect 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?
The description is a single clear sentence with no filler: it names the action, the inputs, and the outcome in that order. It is concise while still conveying the essential 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?
The description is adequate for a straightforward parametric surface creation tool, and the schema fills in parameter details. However, it does not explain the purpose of the optional support surfaces, what a successful call returns, or how this tool relates to similar GSD surface tools. These gaps are meaningful for an agent deciding whether and how to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter already has a meaningful description. The tool description does not need to repeat that detail; it simply frames the operation at a high level. This fits the baseline for a fully documented schema without adding extra parameter-level insight.
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 (Blend), a clear resource (two curves or edges), and the resulting output (transition surface). It is easy to understand, but it does not explicitly distinguish itself from nearby GSD surface tools like fill, sweep, or multi-section, 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?
The description gives a basic sense of what the tool does but provides no guidance on when to use it instead of alternatives such as catia_gsd_fill, catia_gsd_sweep, or catia_gsd_multi_section. No exclusions, prerequisites, or selection criteria are given, leaving the agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_gsd_circleB
Create a circle or arc. Modes: 'center_radius' needs a centre point, a support plane and a radius; 'center_point' passes through a point; 'three_points'.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | center_radius | center_point | three_points. | center_radius |
| name | No | Name for the circle. | |
| center | No | Centre point reference token. | |
| geoset | No | Target geometrical set. | |
| points | No | Three point reference tokens for three_points mode. | |
| radius | No | Radius in mm. | |
| support | No | Support plane or surface reference token. | xy |
| through_point | No | Point the circle passes through (center_point mode). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the description carries the burden of disclosing mutation behavior. The description only says 'Create' without elaborating on side effects, such as whether it adds an element to the tree, requires an active geometry set, or may fail if prerequisites are missing. It does not mention error conditions or what the operation modifies.
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 and then enumerates modes. It has no fluff and uses semicolons to compactly present the mode logic. However, it omits some context that could be added without length, but overall it is well-structured and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, no required fields, and no output schema, the description leaves significant gaps. It does not explain how the tool behaves without required parameters for a given mode, what it returns (e.g., a reference token), or how it integrates with the broader GSD workflow. The schema covers parameter definitions, but the description fails to provide the contextual framing needed for safe and correct 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?
Schema description coverage is 100%, so the baseline is 3. The description adds value by explaining the three modes and the parameters each requires (e.g., center_radius needs a center point, support plane, and radius). This goes beyond the schema's per-parameter descriptions and clarifies how the parameters interrelate across modes.
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 'Create a circle or arc' which clearly identifies the verb and resource. It does not explicitly distinguish from similar sibling tools like catia_sketch_circle or catia_sketch_arc, but the 'gsd' prefix and the listing of distinct modes provide enough differentiation. The purpose is clear but lacks explicit sibling differentiation.
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 lists three modes but gives no guidance on when to use this tool versus alternatives (e.g., sketch-based circles, other GSD curves). It does not state when to select each mode or mention prerequisites like requiring an active part or document. There is no explicit 'use this when' or 'prefer that if' language.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_gsd_close_surfaceA
Close a watertight surface into a solid. The surface must bound a closed volume, so join and heal the pieces first if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the resulting feature. | |
| surface | Yes | Reference token of the closed surface. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the agent knows this is a modifying operation. The description adds the precondition of watertightness and the tip to join/heal first, which is useful context. However, it doesn't describe the exact result or side effects, but given annotations cover the safety profile, this is adequate.
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 one concise sentence that front-loads the action, states the condition, and offers a practical tip. No redundancy or wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple operation with no output schema, the description provides the essential precondition (watertight) and a remediation tip (join/heal). It's complete enough for an agent to know when and how to use it. Minor gap: it doesn't explicitly state that the result is a new solid feature, but that's implied by 'into a solid'.
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 both parameters (name and surface) having descriptions. The description doesn't add parameter-specific details but provides context about the surface needing to be watertight, which is relevant. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb 'close' with a specific resource 'watertight surface' and result 'solid'. It clearly distinguishes from sibling tools like join and heal by defining the condition that must be met, making the tool's unique purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly advises to 'join and heal the pieces first if needed', which implies when to use this tool (only on watertight surfaces) and when not to (when surface is not watertight). While it doesn't name alternative tools, the reference to join and heal serves as clear guidance for preparation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_gsd_create_geosetA
Create a geometrical set to hold surface and wireframe geometry, and make it the target for subsequent GSD calls. Keeping construction geometry in named sets is what stops a surface model becoming unnavigable.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the geometrical set. | |
| parent | No | Parent geometrical set name, for nesting. Optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all neutral/false, so the description carries most of the behavioral burden. It discloses that the tool creates a geoset and makes it the target for subsequent calls, but it does not describe what happens if a set with the same name already exists or whether the previous active target is changed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The primary action is front-loaded, and the second sentence provides useful rationale without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with two optional parameters and no output schema, and the description covers purpose and typical usage. However, it leaves gaps around naming behavior, what happens with the default empty name, and what the caller receives in return.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 and the schema already documents both parameters. The description adds the conceptual point about named sets but no additional parameter-specific semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Create a geometrical set'), the resource it operates on, and its purpose ('hold surface and wireframe geometry'). It also clarifies that the created set becomes the target for subsequent GSD calls, which clearly differentiates it from siblings like catia_gsd_set_active_geoset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this when you need a new named container for GSD construction geometry and want it to be the active target. It does not explicitly say when to prefer catia_gsd_set_active_geoset instead, so it lacks explicit exclusions, but the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_gsd_extractA
Extract a face, edge or set of connected elements from existing geometry into an independent surface or curve. This is the clean way to reuse solid topology in surface work.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the result. | |
| geoset | No | Target geometrical set. | |
| element | Yes | Reference token of the face or edge to extract. | |
| propagate | No | Propagate across tangent-continuous neighbours. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no meaningful safety hints (readOnlyHint=false, destructiveHint=false). The description adds behavioral context by stating the result is 'independent' and that extraction is a clean reuse of topology – implying a non-destructive copy. It does not detail failure modes or what happens to the source, but the 'independent' phrasing covers the key trait.
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 core operation and result front-loaded. The second sentence earns its place by framing the use case. 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 4-parameter tool with full schema coverage and no output schema, the description covers what is produced (independent surface/curve) and why to use it. It omits an explicit note that the source geometry remains intact, though 'independent' implies this – a minor 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% for all four parameters, so the schema already documents each parameter adequately. The description adds only loose alignment ('face, edge or connected elements' maps to `element`) without extra syntax or selection detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Extract') with a distinct resource ('face, edge or set of connected elements') and a clear result ('into an independent surface or curve'). It clearly differentiates from siblings like catia_remove_face (removes) and catia_list_faces (lists).
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 second sentence gives clear context for when to use this tool ('the clean way to reuse solid topology in surface work'), which signals a specific use case. However, it does not name alternative tools or explicitly 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.
catia_gsd_extrudeB
Extrude a profile (a sketch or curve) along a direction to make a surface.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the surface. | |
| geoset | No | Target geometrical set. | |
| length | No | Extrusion length in mm. | |
| profile | Yes | Reference token of the profile. | |
| direction | No | Direction vector [x,y,z]. | |
| length_reverse | No | Length in the opposite direction, mm. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, indicating a modifying operation, and the description adds that it creates a surface, which is consistent. However, the description does not disclose any further behavior such as side effects, required context (e.g., active document), or failure conditions. It adds minimal value beyond the annotation.
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, clean sentence that is front-loaded with the core purpose. No wasted words. It is appropriately concise for a tool with a well-defined schema.
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 six parameters and no output schema, the description is thin. It does not explain what a 'profile' refers to, how direction is interpreted (e.g., relative to sketch plane), or any behavior when parameters are omitted (e.g., default direction). An agent may need to infer from the sibling tools or schema, which is insufficient.
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 each parameter (profile, direction, length, length_reverse, name, geoset) already has a description in the schema. The tool description adds no extra meaning beyond the schema, so 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?
The description clearly states the action: extrude a profile along a direction to make a surface. It specifies the resource (profile) and outcome (surface), which distinguishes it from solid extrusion tools like catia_pad. However, it does not explicitly differentiate from other GSD surface tools like revolve or sweep, though the name implies it.
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 such as catia_pad (solid extrude) or catia_gsd_sweep/revolve. There is no mention of prerequisites, nor exclusions. The description only states what it does, not when to choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_gsd_fillA
Fill a closed boundary of curves or edges with a surface.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the surface. | |
| geoset | No | Target geometrical set. | |
| boundaries | Yes | Reference tokens forming a closed boundary. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description plainly implies a surface-creation operation, which is the crucial behavioral fact. Annotations are unhelpful (all false), so the description carries some burden, but it does not disclose whether an existing element is overwritten, where the new surface is placed, or what happens with an invalid boundary.
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 conveys the core operation with no filler. The essential information is front-loaded and every word 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 relatively simple surface-creation tool, the description covers the core operation and the schema covers parameters. Missing elements include typical failure modes, output/return behavior, and guidance on how boundaries should be selected or combined, but these gaps are not critical given the schema's parameter descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all three parameters with descriptions. The description adds marginal meaning by clarifying that boundaries can be curves or edgesholars, but it does not elaborate on name or geoset 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?
The description states a specific verb, 'fill', a specific resource, 'closed boundary of curves or edges', and the result, 'a surface'. It is clearly distinguishable from most GSD siblings like extrude or revolve, though it does not explicitly contrast with the nearby catia_gsd_close_surface.
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 usage context is implied: use this when a closed boundary of curves or edges exists and a filled surface is needed. However, it gives no explicit when-not-to-use guidance or alternatives for open boundaries or other surface-creation scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_gsd_healingB
Heal small gaps between surfaces so they can be joined or closed into a solid.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the result. | |
| geoset | No | Target geometrical set. | |
| elements | Yes | Reference tokens to heal. | |
| merging_distance | No | Largest gap to close, mm. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all negative hints (readOnlyHint=false, destructiveHint=false), so the description carries the burden of explaining side effects. It does not state whether the original surfaces are modified or a new healed geometry is created, nor does it describe behavior when gaps exceed merging_distance beyond a basic 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, front-loaded sentence with no filler. It states the action, the target resource, and the purpose efficiently.
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 the description is too sparse for a complex GSD healing operation. It omits return/result behavior, side effects on input surfaces, and clear differentiation from closely related sibling tools, so an agent lacks enough context to invoke it with confidence.
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 parameter meanings are already fully documented in the input schema. The description adds little parameter-specific value, but the full schema coverage keeps this at 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?
The description uses a specific verb ('heal') and a specific resource ('small gaps between surfaces'), and explains the intended outcome ('so they can be joined or closed into a solid'). This clearly differentiates healing from sibling operations such as catia_gsd_join or catia_gsd_fill.
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 'so they can be joined or closed into a solid' implies a preparatory use case, but the description does not explicitly state when to choose healing over related operations like catia_gsd_join or catia_gsd_close_surface. No exclusions, prerequisites, or alternative conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_gsd_helixB
Create a helix around an axis - the curve to sweep for a spring or a thread.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | Yes | Reference token of the axis line. | |
| name | No | Name for the helix. | |
| pitch | No | Pitch (rise per turn) in mm. | |
| geoset | No | Target geometrical set. | |
| height | No | Total height in mm. | |
| clockwise | No | Clockwise revolution. | |
| start_point | Yes | Reference token of the start point. | |
| taper_angle | No | Taper angle in degrees, for a conical helix. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no safety hints (all false), so the description must carry the burden. It only states creation and does not disclose preconditions (e.g., required existing axis/start point tokens), side effects on the part, or return behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence, front-loaded with action and object, no wasted words. The structure is ideal for quick scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, no output schema, and no annotations easing the burden, the description is too sparse to fully guide usage; it lacks details on prerequisites, behavior when inputs are invalid, and what the result is (e.g., a new feature).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters are fully described in the schema with high coverage, so the description adds no extra parameter semantics; it only gives general context about springs/threads. Baseline score is appropriate since schema carries the details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Create') and resource ('helix around an axis'), and even gives a use-case ('for a spring or a thread'), which differentiates it from other GSD creation tools like sweep or extrude. The description is precise and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for helixes but does not contrast with alternatives such as catia_thread or catia_gsd_sweep. No explicit when-to-use vs other tools, and no exclusions, leaving the agent to infer from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_gsd_intersectA
Create the intersection of two elements - a curve where two surfaces meet, or a point where a curve meets a surface.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the result. | |
| geoset | No | Target geometrical set. | |
| first_element | Yes | First element reference token. | |
| second_element | Yes | Second element reference token. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only, not idempotent, and not destructive. The description adds the useful detail that the operation creates either a curve or a point as the result. However, it does not disclose behavior around invalid inputs, non-intersecting elements, or what happens inside the model.
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 operation and result types with no filler. Every word contributes to understanding the tool's 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?
The definition is adequate for a simple creation tool with four documented parameters and safety annotations. It could be more complete by mentioning that the two elements must be existing, intersecting geometry and by stating how the result is returned or named.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline of 3 applies. The description adds no extra meaning beyond the schema for 'name', 'geoset', 'first_element', or 'second_element'.
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 ('Create the intersection of two elements') and clarifies possible result types ('a curve where two surfaces meet, or a point where a curve meets a surface'). This clearly differentiates it from sibling GSD operations like join, trim, or project.
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 choose it over alternatives such as catia_gsd_project, catia_gsd_join, or catia_gsd_split. No exclusions, prerequisites, or alternative conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_gsd_joinA
Join several surfaces or curves into a single element. This is what you do before thickening or closing a set of surfaces into a solid.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the result. | |
| geoset | No | Target geometrical set. | |
| elements | Yes | Reference tokens of the elements to join. | |
| tolerance | No | Merging distance in mm. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, so the description carries the behavioral disclosure burden. It explains the combining effect and downstream purpose, but does not mention tolerance-based merging behavior, whether original elements are modified, or what the returned result is. This is adequate but not detailed.
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 front-load the operation and then add one high-value workflow context sentence. There is no filler or repeated schema content.
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 tool with 4 well-described parameters and no output schema, the description covers what join does and when it fits in the workflow. Gaps like failure conditions and return value are minor for this operation, so it is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the schema already documents elements, name, geoset, and tolerance. The description adds only a small clarification that elements are surfaces or curves, not enough to raise the score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Join several surfaces or curves into a single element', which clearly identifies the operation. It also gives workflow context by noting this precedes thickening or closing surfaces, though it does not explicitly name or differentiate against sibling alternatives like healing or fill.
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 'This is what you do before thickening or closing a set of surfaces into a solid' provides a clear when-to-use context in the surface-to-solid workflow. It does not offer exclusions or compare directly with related GSD operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_gsd_lineB
Create a line. Modes: 'two_points'; 'point_direction' with a length; 'normal' to a surface at a point; 'tangent' to a curve at a point.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Reference token of the end point (two_points). | |
| mode | No | two_points | point_direction | normal | tangent. | two_points |
| name | No | Name for the line. | |
| start | No | Reference token of the start point. | |
| geoset | No | Target geometrical set. | |
| length | No | Line length in mm. | |
| support | No | Surface or curve reference token for normal/tangent. | |
| direction | No | Direction vector [x,y,z] for point_direction mode. | |
| start_offset | No | Offset of the line start from the point, mm. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all non-informative (readOnlyHint false, destructiveHint false), so the description carries the full burden. It only states 'Create a line' and the modes; it does not disclose that this creates a GSD feature, what happens to the geometric set, or any failure conditions. This is a significant gap for a mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, core verb and resource first, then an efficient enumeration of the modes. Every phrase earns its place and there is no redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 9 parameters and 4 modes, but no output schema and no annotations. The description explains the modes but not which parameters are required for each mode (e.g., start and end for two_points, direction for point_direction). The schema is well-documented, so an agent can reconstruct the needed information, but the description alone is not comprehensive for this level of 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?
With schema description coverage at 100%, the baseline is 3. The description adds value by associating modes with parameter usage ('point_direction with a length', 'normal to a surface at a point'), which helps infer that length is relevant for point_direction and support is needed for normal/tangent. It does not fully map all parameters per mode, but it goes 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 opens with 'Create a line,' a specific verb and resource, and enumerates four distinct construction modes. It does not explicitly contrast with sibling tools like catia_sketch_line or catia_gsd_polyline, though the GSD-specific modes (normal to a surface, tangent to a curve) imply a 3D wireframe 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?
The description lists modes but does not explain when to use this tool versus a sketch line or polyline, nor which mode fits which scenario. It provides a clear picture of internal options but no guidance on selection from the sibling toolset.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_gsd_list_elementsARead-only
List the contents of the geometrical sets in the active part - points, curves, surfaces and nested sets - with reference tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| geoset | No | Limit to one geometrical set. Empty lists them all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only nature is covered. The description adds useful behavioral context beyond that: it lists contents of the active part, includes nested sets, and returns reference tokens. 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?
One compact sentence delivers the resource, scope, content types, and output token information without wasted words. The most important scoping constraint, 'in the active part,' is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only listing tool with one optional parameter and no output schema, the description covers the essential behavior: what is listed, where it is listed from, and what the output includes (reference tokens). It could be slightly more explicit about the exact return format, but nothing critical is missing for an agent to call 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 100%, so the single geoset parameter is already fully documented, including that empty means 'list them all.' The description adds no additional meaning about the parameter beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and a precise resource ('contents of the geometrical sets in the active part'), then enumerates what is included: points, curves, surfaces and nested sets, plus reference tokens. This clearly separates it from sibling list tools like catia_list_bodies or catia_list_components.
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 establishes clear context: it operates on geometrical sets in the active part, and the optional geoset parameter lets an agent limit the listing to one set. It does not explicitly contrast this with sibling tools such as catia_list_features or catia_describe_tree, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_gsd_multi_sectionA
Loft a surface through a series of section curves - CATIA's Multi-Sections Surface. Optional guide curves control the shape between sections.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the surface. | |
| geoset | No | Target geometrical set. | |
| guides | No | Optional guide curve reference tokens. | |
| sections | Yes | Reference tokens of the section curves, in order. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate the tool is not read-only, not idempotent, and not destructive. The description adds one useful behavioral note: guide curves control the shape between sections. But it does not disclose operational behavior such as whether a new surface is created, where it is placed, what happens with invalid section ordering, or what the tool returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The core purpose is front-loaded, and the optional guide-curve behavior is stated in a second concise sentence. Every word contributes.
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 CAD surface creation tool with no output schema, the description is minimal. It covers the core concept and optional guides, but it omits practical invocation context such as prerequisites, return value, error/failure expectations, and when to choose this over sibling GSD tools. It is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description adds some semantic value by explaining that guide curves influence the shape between sections, but it does not meaningfully elaborate on the 'name', 'geoset', or 'sections' parameters beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Loft') and resource ('surface through a series of section curves'), and names the CATIA feature ('Multi-Sections Surface'). It is specific enough for an agent to understand what the tool does, though it does not explicitly contrast it with sibling surface tools like catia_gsd_blend or catia_gsd_sweep.
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 'through a series of section curves' implies when to use the tool, and the mention of optional guides adds context. However, there is no explicit guidance on when to prefer this over alternatives such as blend, sweep, or fill, and no exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_gsd_offset_surfaceB
Create a surface offset from an existing one by a set distance.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the surface. | |
| geoset | No | Target geometrical set. | |
| offset | No | Offset distance in mm. | |
| reverse | No | Offset the other way. | |
| surface | Yes | Reference token of the surface. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the operation is not read-only, idempotent, or destructive by default; the description adds the basic behavior of creating an offset from an existing surface. It does not disclose edge cases such as direction handling, tolerances, or whether the original surface is left unchanged, but that goes beyond the typical bar given 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?
Single sentence, no filler, and the core purpose is front-loaded. It is concise, though it offers no structural signposting for usage notes.
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 create-with-parameters tool, schema plus description are minimally sufficient to invoke it. However, there is no output schema and no statement of what the tool returns or how the new surface is registered, and usage context is 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?
Schema covers all five parameters (name, geoset, offset, reverse, surface) with descriptions and defaults, so the description adds no additional parameter semantics. Baseline 3 applies because schema coverage is 100%.
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-resource pair ('Create a surface offset') and clearly identifies the operation. It is distinguishable from siblings by the offset concept, though it does not explicitly contrast with related surface tools like catia_gsd_thick_surface.
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; no mention of when not to use it. The only implied usage is 'create offset surface', which is too thin to help an agent choose among the many GSD surface tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_gsd_planeA
Create a construction plane. Modes: 'offset' from an existing plane; 'three_points'; 'normal_to_curve' at a point; 'equation' from ax+by+cz=d; 'angle' rotated about an axis. Construction planes are what you sketch on when no face is in the right place.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | offset | three_points | normal_to_curve | equation | angle. | offset |
| name | No | Name for the plane. | |
| angle | No | Rotation angle in degrees (angle mode). | |
| point | No | Point token for normal_to_curve mode. | |
| geoset | No | Target geometrical set. | |
| offset | No | Offset distance in mm (offset mode). | |
| points | No | Three point tokens for three_points mode. | |
| reverse | No | Offset the other way. | |
| equation | No | [a, b, c, d] for equation mode, with lengths in mm. | |
| reference | No | Base plane, curve or axis reference token. | xy |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, providing essentially no behavioral disclosure, so the description carries the burden. It correctly states this is a creation operation (aligning with readOnlyHint=false) and lists the construction modes, but does not disclose side effects such as whether a new element is added to the active geoset, whether references are required for certain modes, or what failure conditions exist. 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, zero fluff, with the core purpose front-loaded and the mode list compactly formatted. The final motivational sentence is slightly optional but earns its place by clarifying the tool's role. A tight, well-ordered definition.
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 5 distinct modes, the description is reasonably complete but leaves gaps: it doesn't explicitly state that most modes require a reference token, that reference defaults to 'xy', or how the reverse parameter interacts with offset mode. The mode-to-parameter mapping is implied rather than spelled out, which could trip up an agent on required-argument assembly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds real value by mapping each mode to its governing parameters (offset→offset/reference, three_points→points, normal_to_curve→point/reference, equation→equation, angle→angle/reference). This mode-to-parameter linkage is not present in the individual schema field descriptions and helps an agent assemble correct arguments.
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') plus a specific resource ('construction plane'), then enumerates all five modes with their defining inputs. The closing sentence explains the practical role of construction planes, distinguishing this tool from geometry-creation siblings like catia_gsd_point, catia_gsd_line, and catia_gsd_spline.
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?
Each mode names its required inputs ('offset' from an existing plane, 'three_points', 'normal_to_curve' at a point, 'equation' from ax+by+cz=d, 'angle' rotated about an axis), giving clear context for when each variant applies. The final sentence gives situational guidance ('when no face is in the right place'). It does not explicitly name alternative tools or list exclusions, but the mode breakdown is enough to route an agent correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_gsd_pointA
Create a point. Modes: 'coordinates' (x,y,z); 'on_curve' at a ratio or distance along a curve; 'between' two points at a ratio; 'center' of a circle or sphere; 'on_plane' at plane coordinates.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | X coordinate, mm (coordinates/on_plane). | |
| y | No | Y coordinate, mm. | |
| z | No | Z coordinate, mm. | |
| mode | No | coordinates | on_curve | between | center | on_plane. | coordinates |
| name | No | Name for the point. | |
| ratio | No | Position along the curve or between the points, 0 to 1. | |
| geoset | No | Target geometrical set. | |
| distance | No | Distance along the curve in mm; overrides ratio when given. | |
| reference | No | Curve, circle or plane reference token, depending on mode. | |
| second_reference | No | Second point reference token, for mode='between'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a non-read-only, non-idempotent, non-destructive operation. The description adds mode semantics but no extra disclosure about side effects, geoset placement, duplicate creation, or failure behavior. 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?
Two sentences with the main action front-loaded and the modes packed into a compact semicolon-separated list. There is no filler, repetition, or unnecessary explanation.
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 mode list covers the main scenarios, but for a tool with 10 optional parameters, five modes, and no output schema, the description leaves some mode-specific input requirements to inference, such as which reference is needed for 'center' or 'on_plane'. The schema partially compensates, but the description is not fully self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 10 parameters are already documented in the schema. The description's mode list summarizes how parameters like ratio, distance, and references are used, but it does not add parameter-level meaning beyond the schema, keeping it at 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?
The description opens with 'Create a point', a clear verb+resource pair, and enumerates five distinct construction modes. It does not explicitly contrast with sibling point-related tools such as catia_point_coordinates or catia_sketch_point, so full differentiation is left to the 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?
The description explicitly states when each mode applies, e.g. 'on_curve' at a ratio or distance and 'between' two points at a ratio, giving clear call context. It does not mention exclusions or alternative tools, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_gsd_polylineB
Create a polyline through a list of existing points, given as reference tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the polyline. | |
| closed | No | Close the polyline. | |
| geoset | No | Target geometrical set. | |
| points | Yes | Reference tokens of the points. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is a mutation (readOnlyHint=false) and not destructive, which the description aligns with by saying 'Create.' The description adds the detail about reference tokens, clarifying the input mechanism, but does not disclose any additional behavioral traits such as side effects or failure conditions. This is a moderate improvement over annotations alone.
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 efficiently conveys the core action and input requirement without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool, it covers the essential action and input, but it lacks any mention of required context such as an active document or geoset, and doesn't differentiate from similar curve-creation tools. While the schema covers parameters, the description leaves some ambiguity about operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented in the schema. The description reiterates the 'reference tokens' concept for the points parameter but adds no new meaning beyond what the schema already provides. Baseline of 3 is appropriate given the high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Create a polyline through a list of existing points, given as reference tokens.' It specifies the input type (existing points via reference tokens), which helps distinguish it from sketch-based polyline tools, though it doesn't explicitly contrast with other GSD curve tools like spline or 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?
No guidance is provided on when to use this tool versus alternatives such as catia_gsd_spline or catia_sketch_polyline. The description only states the action without any context about selection criteria or prerequisites, 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.
catia_gsd_projectC
Project a curve or point onto a surface or plane.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the result. | |
| geoset | No | Target geometrical set. | |
| normal | No | Project normal to the support rather than along a direction. | |
| element | Yes | Element to project. | |
| support | Yes | Surface or plane to project onto. | |
| direction | No | Projection direction [x,y,z] when normal=false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=false and destructiveHint=false, the annotations signal a non-read-only operation but do not clarify its effect, and the description adds nothing beyond the bare operation. The description never states that the tool creates a new projected element, where it is placed (despite the 'geoset' parameter), or the consequence of the normal/direction switch. No contradiction exists with the annotations, but the behavioral burden that the annotations leave open is not shouldered by the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with zero filler and no redundancy with the schema. It is efficiently structured, though the terseness is part of why the richer dimensions (guidelines, transparency) score low.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a 6-parameter tool with a conditional mode (normal vs. direction), no output schema, and mostly-false annotations, so the description carries a heavy completeness burden. It fails to state that the operation produces a new projected feature, what the return value is, or how the geoset/name parameters affect output placement. An agent cannot reliably predict the side effects or result format from this definition alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; the schema already documents element, support, normal, direction, name, and geoset. The description does add marginal value by clarifying that 'element' may be a curve or point and 'support' is a surface or plane, but it mostly restates schema semantics and contributes nothing about the normal/direction interaction or geoset placement.
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 ('project') and resource (a curve or point onto a surface or plane), which clearly distinguishes the core operation from GSD siblings like split, trim, or intersect. It is unambiguous about what geometry goes in and what the target is. However, it never names a sibling or explains why this tool rather than a related GSD construction tool, so it stops short of explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as catia_gsd_intersect, catia_gsd_extract, or catia_gsd_split, which can also operate on a curve and a surface. There are no prerequisites mentioned (e.g., that the element must be selectable, that a target geoset must exist for placement of the result). The agent is left to infer applicability entirely from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_gsd_revolveC
Revolve a profile around an axis to make a surface of revolution.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | Yes | Reference token of the revolution axis. | |
| name | No | Name for the surface. | |
| angle | No | First angle in degrees. | |
| geoset | No | Target geometrical set. | |
| profile | Yes | Reference token of the profile. | |
| second_angle | No | Second angle in degrees. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no hints (all false), so the description carries the full burden. It only states the basic action and output, but does not disclose side effects (e.g., creating a feature in the part), whether it modifies the active geoset, or any constraints like the axis being a line or the profile being planar. This is insufficient for a mutation tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is direct and front-loaded. It conveys the essential action without unnecessary words. No wasted content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimal for a tool with 6 parameters and no output schema. It does not explain the effect of angle and second_angle (partial revolve), optional parameters like name and geoset, or any prerequisites or limitations. Given the lack of annotations, the description should provide more context about what the tool does and when it is appropriate, but it is too sparse.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters including default values and units. The description does not add any extra meaning beyond what the schema provides; it only mentions profile and axis without elaborating on their token format or relationships. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (revolve) and the resource (profile around an axis) and specifies the output as a surface of revolution. It distinguishes from solid revolve tools like shaft by saying 'surface of revolution', but it does not explicitly name alternatives or differentiate from other GSD surface tools such as extrude or sweep.
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. It does not mention that shaft is for solid revolution, or that this tool is specifically for GSD surfaces, nor any prerequisites like requiring a closed profile or a linear axis. The required parameters are evident from the schema, but no context on when to choose this tool over siblings is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_gsd_set_active_geosetAIdempotent
Choose which geometrical set new GSD geometry goes into.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Geometrical set name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and destructiveHint=false. The description adds the stateful effect that future GSD geometry will be placed into the chosen geoset, which is useful. It does not disclose additional behavioral details such as whether the geoset must exist beforehand or what happens if an invalid name is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It immediately conveys the purpose and effect of the 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 one-parameter state-setting tool, the description is adequate but leaves out the prerequisite that the geoset must exist (managed by catia_gsd_create_geoset). An agent might need that context to avoid errors, but the tool is otherwise well-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%, and the parameter 'name' is documented as 'Geometrical set name.' The tool description adds minimal extra meaning beyond restating that the name identifies the target geoset, so it stays at the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('Choose') and a specific resource ('geometrical set') and explains the effect ('new GSD geometry goes into'). It distinguishes this tool from siblings like catia_gsd_create_geoset and catia_set_active_body by making the target resource explicit.
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: the agent can infer this is used before creating GSD geometry to route it to a specific geoset. However, there is no explicit mention of when to use it over alternatives such as catia_gsd_create_geoset or catia_set_active_body, nor any prerequisites like 'the geoset must already exist'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_gsd_splineA
Create a 3D spline through a list of existing points, given as reference tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the spline. | |
| closed | No | Close the spline into a loop. | |
| geoset | No | Target geometrical set. | |
| points | Yes | Reference tokens of the points to pass through, in order. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no positive annotations (all hints false), the description carries the burden. It discloses the primary behavior (creates a spline) and input must be existing reference tokens, which is useful. However, it doesn't mention side effects on the active geoset, failure modes for invalid tokens, 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?
A single, front-loaded sentence with zero wasted words. It names the operation, the resource, and the essential input constraint without listing optional 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 4-parameter creation tool with no output schema and no annotations, the description is minimal but adequate: the schema covers parameter semantics. Gaps include no mention of return value, active geoset behavior, or what happens if points are invalid.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description's phrase 'existing points, given as reference tokens' essentially repeats the schema's points description, adding no new parameter-level meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific action (create) on a specific resource (3D spline) with a clear input type (list of existing points as reference tokens). It distinguishes from sibling catia_sketch_spline by explicitly saying 3D, and from other GSD curve tools by naming spline.
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 you need a 3D spline through existing points) but provides no explicit guidance about when to choose this over alternatives like catia_sketch_spline or catia_gsd_polyline, and no mention of prerequisites beyond points being existing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_gsd_splitB
Cut a surface or curve with another element, keeping one side.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the result. | |
| geoset | No | Target geometrical set. | |
| element | Yes | Reference token of the element to cut. | |
| cutting_element | Yes | Reference token of the cutter. | |
| keep_positive_side | No | Keep the positive side of the cut. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and idempotentHint=false, so the agent knows this is a mutating, non-idempotent operation. The description adds a modest behavioral detail—the result keeps one side of the cut—but does not disclose whether the original element is preserved, whether the cutting element must intersect the target, or what state changes occur in the model tree. 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?
A single 12-word sentence with zero filler. The verb, target, cutting element, and result are all front-loaded in natural reading order. Every word contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimally adequate because the schema fully documents all five parameters and the annotations cover the state-changing safety profile. However, for a geometric operation that modifies a model, it omits operational context an agent would want: whether the original is destroyed or preserved, the requirement that the cutter intersect the target, and how the 'positive side' is determined relative to the element's orientation. It is complete enough to attempt a call but not to anticipate failures.
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 clear per-parameter descriptions ('Reference token of the element to cut', 'Reference token of the cutter', 'Keep the positive side of the cut'), so the baseline of 3 applies. The description paraphrases the key parameters in plain language (element, cutting_element, keep_positive_side) but adds no new semantic detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a precise verb ('Cut'), a specific target ('a surface or curve'), the cutting mechanism ('with another element'), and the outcome ('keeping one side'). It is clear and specific enough for an agent to understand the operation, though it does not explicitly differentiate it from the closely related sibling catia_gsd_trim, leaving some distinction to domain knowledge.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives. The sibling list includes catia_gsd_trim, catia_gsd_intersect, and catia_gsd_join, which are near-equivalent geometry operations, but the description gives no conditions, prerequisites, or exclusions to help the agent choose. The agent must decide based on schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_gsd_sweepB
Sweep a profile along a guide curve to make a surface.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the surface. | |
| guide | Yes | Reference token of the guide curve. | |
| geoset | No | Target geometrical set. | |
| profile | Yes | Reference token of the profile to sweep. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the operation is not read-only and not idempotent; the description adds that it creates a surface. It does not disclose where the surface is placed, whether repeated calls produce separate surfaces, or what happens on invalid references, but the annotations lower the burden and there is no 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?
One short, front-loaded sentence with no filler; the core action and result are immediately visible. It is concise, though it does not use the available space to add routing or behavioral cues.
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 schema fully documents the parameters and annotations cover the basic safety profile, so the one-line purpose is enough for a basic invocation. However, with no output schema and no mention of active-geoset behavior or returned reference, the description leaves some operational context to convention or trial-and-error.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter already has a named meaning. The description only reinforces that profile and guide are the swept inputs and that the result is a surface; it adds no detail about token formats, valid geometry types, or default behavior for the name and geoset 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 names a specific operation—sweeping a profile along a guide curve—and the produced resource (a surface), so an agent can tell it from extrude or revolve. It does not explicitly contrast it with catia_rib or catia_gsd_multi_section, which also involve profiles and curves, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to choose this tool over sibling surface or solid creation tools, nor about prerequisites such as active document, closed vs open profile, or guide-curve continuity. The usage context must be inferred entirely from the tool name and the one-line description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_gsd_thick_surfaceB
Thicken a surface into a solid of a given wall thickness.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the resulting feature. | |
| reverse | No | Thicken the other way. | |
| surface | Yes | Reference token of the surface. | |
| thickness | No | Thickness in mm. | |
| second_thickness | No | Thickness on the other side, mm. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal mutation (readOnlyHint=false) and non-destructiveness (destructiveHint=false), and the description adds the core behavioral trait: converting a surface into a solid. However, it offers no context about whether the source surface is preserved, where the resulting solid feature is created, or what happens with invalid/unclosed surfaces.
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 zero filler — every word contributes to the core meaning of the operation. It is appropriately compact for a geometrically simple action, though it foregoes the opportunity to pack in routing or prerequisite 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?
Together with the fully documented schema, the one-line summary makes the tool minimally callable. But the definition is thin overall: it omits when to prefer this over related thickness/shell/close-surface siblings, what surface conditions are required, and what the resulting feature looks like — and there is no output schema to compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all five parameters (surface, thickness, reverse, second_thickness, name) already documented inline with units and defaults. The phrase 'wall thickness' loosely mirrors the thickness/second_thickness parameters but adds no meaning 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?
The description names a specific verb ('Thicken') and resource ('a surface') with a clear outcome ('a solid of a given wall thickness'), making the surface-to-solid transformation unambiguous. It implicitly distinguishes itself from siblings like catia_thickness (which thickens a solid) and catia_gsd_close_surface by describing the wall-thickness action, though it never explicitly names 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?
No guidance is given about when to use this tool versus alternatives. The description neither states prerequisites (e.g., an existing surface reference token) nor routes away from related siblings such as catia_thickness, catia_shell, catia_gsd_close_surface, or catia_gsd_offset_surface, leaving selection entirely to inference 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.
catia_gsd_transformA
Copy geometry with a transformation: translate, rotate, symmetry, scale or affinity. Unlike catia_transform_body this creates new surface geometry and leaves the original in place.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the result. | |
| value | No | Angle in degrees for rotate, ratio for scale. | |
| geoset | No | Target geometrical set. | |
| vector | No | Translation vector [x,y,z] in mm. | |
| element | Yes | Reference token of the element to copy. | |
| operation | No | translate | rotate | symmetry | scale. | translate |
| reference | No | Axis, plane or point reference token, depending on operation. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds that it creates new geometry and preserves the original, which is a useful behavioral nuance beyond the annotations. No contradiction with 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 with no fluff. The main purpose is front-loaded, and the differentiating comparison is second. Every word 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?
Given 7 parameters and no output schema, the description covers the core purpose and the main differentiation. It does not explain which parameters are required for specific operations (e.g., that rotate needs a reference and value), but the schema already describes each parameter. It is adequate for an agent to understand the tool's role, though it could be more detailed about operation-specific requirements.
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 already has a description. The description does not add extra semantics about parameters; it merely lists operations in prose. The mention of 'affinity' is inconsistent with the schema's operation enum (which only has translate, rotate, symmetry, scale), which could confuse agents, but overall the schema carries the parameter meaning.
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?
Clearly states the action: 'Copy geometry with a transformation' and lists the specific operations (translate, rotate, symmetry, scale, affinity). It also distinguishes itself from the sibling catia_transform_body by noting it creates new surface geometry. This gives an agent a precise understanding of the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly contrasts with catia_transform_body, stating the key differentiator: 'Unlike catia_transform_body this creates new surface geometry and leaves the original in place.' This tells the agent when to choose this tool over the sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_gsd_trimB
Trim two surfaces or curves against each other, keeping one side of each.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the result. | |
| geoset | No | Target geometrical set. | |
| first_element | Yes | First element reference token. | |
| second_element | Yes | Second element reference token. | |
| keep_first_positive | No | Keep the positive side of the first element. | |
| keep_second_positive | No | Keep the positive side of the second element. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false arabers. The description adds the key behavior that one side of each element is kept, but it does not state whether this creates a new feature, modifies the originals, or what happens to the discarded sides beyond not being kept. This is modest value 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?
A single sentence with zero filler, front-loaded with the operation and outcome. Every phrase earns its place: 'Trim' gives the action, 'two surfaces or curves' gives the object, and 'keeping one side of each' gives the result.
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 operation with two required parameters and a complete schema, the description is adequate. However, it does not mention prerequisites (e.g., that the elements must intersect) or define the meaning of 'positive side' for the boolean parametersفق and there is no output schema to clarify 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 100%, so all six parameters are already documented in the input schema. The description does not add any additional parameter semantics; it only rephrases the side-keeping concept already present in the boolean parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Trim'), a specific resource ('two surfaces or curves'), and the outcome ('keeping one side of each'). It clearly identifies the operation, though it does not explicitly contrast it with the sibling catia_gsd_split, relying on 'against each other' to convey the mutual trimming nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance about when to use this tool versus alternatives like catia_gsd_split or catia_gsd_intersect. The context is only implied by the verb 'trim' and the phrase 'against each other'; no criteria or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_hide_elementAIdempotent
Hide an element in the 3D view without deleting it.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | Reference token of the element to hide. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=false and idempotentHint=true, so the safety profile is well established. The description adds useful scope context ('in the 3D view') and reinforces that the element is retained, which complements the annotations without contradicting them. It does not explain persistence or reversibility in depth, but the annotation coverage lowers the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the action, scope, and key exclusion with no filler. Every word earns its place and the message is immediately understood.
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 one-parameter tool with no output schemaasi and annotations covering destructiveness and idempotence, the description provides all necessary behavior: it hides an element in the 3D view while keeping it. An agent equipped with a token from list-style operations can 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?
The schema already describes the only parameter token as 'Reference token of the element to hide', giving 100% coverage. The tool description itself adds no further detail about token format or acquisition, so the baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Hide') and resource ('element in the 3D view'), and adds the key qualifier 'without deleting it'. This clearly distinguishes it from catia_delete_element and pairs naturally with the sibling catia_show_element, leaving no ambiguity about its function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without deleting it' explicitly contrasts with deletion, which is the most relevant alternative. However, it does not explicitly mention catia_show_element as the inverse or state conditions for when to hide versus remove. The intended usage is still clear from the sibling context and the non-destructive wording.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_holeB
Create a hole in a face. Position it either by a 3D point (the usual case - give the point and the face token) or from a sketch containing hole centres. Supports simple, tapered, counterbored, countersunk and counterdrilled holes, blind or through, with optional threading.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | Hole centre X in part coordinates, mm. | |
| y | No | Hole centre Y in part coordinates, mm. | |
| z | No | Hole centre Z in part coordinates, mm. | |
| face | Yes | Reference token of the face to drill into, e.g. 'face#1' or 'face@0,0,20'. Use catia_list_faces to find it. | |
| name | No | Name for the resulting feature. | |
| depth | No | Hole depth in mm. | |
| through | No | Make the hole go all the way through the material. | |
| diameter | No | Hole diameter in mm. | |
| threaded | No | Add a thread to the hole. | |
| hole_type | No | simple | tapered | counterbored | countersunk | counterdrilled. | simple |
| head_angle | No | Head angle for countersunk holes, degrees. | |
| head_depth | No | Head depth for counterbored holes, mm. | |
| head_diameter | No | Head diameter for counterbored/countersunk holes, mm. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, indicating a modifying operation, and destructiveHint=false, suggesting no destructive side effects. The description adds only the purpose ('create a hole') and capability list; it does not disclose behavioral traits such as requiring an active part, the effect on the feature tree, or failure modes (e.g., point not on face). It also introduces a sketch-based method that has no corresponding parameter in the schema, creating ambiguity about how that method is invoked. With annotations present, the description contributes little beyond the 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 two sentences with no filler. The first sentence states the core purpose and positioning methods; the second lists supported types and options. Information is front-loaded, and every clause adds relevant detail. It is appropriately sized for a tool with 13 parameters and rich capabilities.
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 main purpose and supported hole types but omits several context items that would help an agent call it correctly: it does not explain the sketch-based method in terms of parameters, does not state that the tool requires an active part (though siblings like catia_set_active_body exist), and does not describe the return value or any side effects. Since there is no output schema, the description should at least hint at what the tool returns (e.g., a feature token), but it does not. The schema descriptions partially compensate (e.g., face token guidance), but overall the description leaves gaps for a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter has a description. The description adds value by clarifying that x, y, z define a 3D point and that the 'usual case' is point+face, and it mentions an alternative sketch method. However, it does not explain how the sketch method maps to any schema parameter (no sketch token is present), which is a gap. It also does not elaborate on the interplay between hole_type and the head_* parameters, leaving the agent to infer from the schema. Overall, it adds some context but does not fully compensate for the sketch ambiguity.
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 and resource: 'Create a hole in a face.' It enumerates supported hole types (simple, tapered, counterbored, countersunk, counterdrilled) and depth modes (blind or through), and describes two positioning methods (3D point or sketch). However, it does not distinguish itself from the sibling tool catia_hole_from_sketch, which also handles sketch-based holes, leaving ambiguity about which tool to select for sketch-based workflows.
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: it mentions that point-based positioning is 'the usual case' and that sketch-based positioning is an alternative, but it never explicitly says when to use this tool versus catia_hole_from_sketch. There are no exclusion criteria or alternative recommendations, and the mention of sketch support could mislead an agent into using this tool instead of the dedicated sibling. No guidance is given on prerequisites such as having an active part or the need for a valid face token.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_hole_from_sketchA
Create holes at every point of a sketch, drilled into the named face. Convenient for bolt patterns laid out in a sketch.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the resulting feature. | |
| depth | No | Hole depth in mm. | |
| sketch | Yes | Sketch containing the hole centre points. | |
| through | No | Drill all the way through. | |
| diameter | No | Hole diameter in mm. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context beyond the annotations by explaining that every sketch point becomes a hole and that the drilling target is a face. However, it does not clarify how the face is identified (no face parameter exists), what happens to existing features, or idempotency implications, which would matter for a mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler. The main action is front-loaded, followed by a concise use-case note.
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 schema covers all parameters and the description supplies the main purpose and application, but the 'named face' reference is unexplained and unsupported by the input schema. An agent may not know how the face is selected or what preconditions apply (e.g., sketch with only points, active face naming).
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 that sketch points are hole centres, but it adds no meaning for name, depth, through, or diameter beyond the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pair: 'Create holes at every point of a sketch, drilled into the named face.' It clearly distinguishes itself from single-hole operations like catia_hole by emphasizing 'every point' and calling out bolt patterns.
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 states when to use the tool: 'Convenient for bolt patterns laid out in a sketch.' It does not explicitly name an alternative or give when-not-to-use guidance, but the use case is clear enough to route the agent correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_list_bodiesARead-only
List the solid bodies in the active part, flagging which one is the main body and which is currently in work (the target of new features).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds meaningful operation-specific behavior by saying the result flags the main body and the currently in-work body, which tells the agent what information to expect beyond a plain listing.
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 entire description is one efficient, front-loaded sentence. It leads with the action and resource, then adds the two important flag semantics without redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only list operation it is nearly complete: the agent knows the scope, the object type, and the key extra output semantics. It does not describe the exact return shape or error behavior when no part/body is active, but the low complexity keeps this from being a large 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?
The tool takes zero parameters and schema coverage is 100%, so there is no parameter documentation burden on the description. The description's scope language ('active part') clarifies the implicit context for this parameter-less call.
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 ('List'), a specific resource ('solid bodies'), and the scoping container ('the active part'). It adds two discriminating output semantics—main-body flag and in-work-body flag—which distinguishes it from generic listing tools like catia_list_features or catia_describe_tree.
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 active-part scoping and 'target of new features' wording imply a body-inspection use case, but there is no explicit guidance about when to prefer this tool over catia_list_features, catia_describe_tree, or catia_set_active_body, and no exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_list_componentsARead-only
List the components of the active assembly, with instance names, part numbers, source files and current positions.
| Name | Required | Description | Default |
|---|---|---|---|
| max_depth | No | Recursion depth. | |
| recursive | No | Include sub-assembly contents. | |
| include_position | No | Read each component's placement matrix. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds that it returns component metadata and positions, but there is a slight inconsistency: it says 'current positions' are included, yet the schema's include_position defaults to false, implying positions are optional. It does not mention recursion limits beyond parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, directly states the operation, no filler. Front-loaded with the core action 'List the components'.
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 read-only list operation with optional parameters and no output schema, the description covers the essential purpose and data returned. It does not specify output format or prerequisites beyond 'active assembly', but those are implied. Minor gaps like position default inconsistency are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema documents all three parameters. The description mentions 'current positions' which relates to include_position, but does not add details beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the verb 'List' and resource 'components of the active assembly', and enumerates the returned fields (instance names, part numbers, source files, positions). This clearly distinguishes it from siblings like catia_bill_of_materials or catia_describe_tree, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context that it operates on the active assembly, which implies when to use it, but does not explicitly name alternatives or exclusions. No guidance on when not to use it or which sibling to choose instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_list_constraintsARead-only
List the assembly constraints, with their type, value and current status.
| 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 and destructiveHint=false, covering the safety profile. The description adds that it returns type, value, and status, which is useful context. However, it does not mention prerequisites (e.g., an open assembly) or behavior when no constraints exist. With annotations present, the added value is moderate.
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, efficient sentence that front-loads the action and immediately specifies the resource and included attributes. No wasted words; every element adds meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with no parameters and no output schema, the description adequately conveys what is returned. It does not mention the context (e.g., current assembly) but that is reasonably implied by the tool name and sibling set. Slightly more detail about the response format would push it to 5, but it is sufficient for an agent to invoke 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?
The tool has zero parameters, so there is nothing for the description to explain beyond the absence. The baseline for no parameters is 4, and the description correctly implies a fixed, global list operation without needing 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 ('List'), the resource ('assembly constraints'), and the detail included ('type, value and current status'). It distinguishes itself from sibling tools like catia_assembly_constraint (create) and catia_delete_constraint (delete) by focusing on listing, and from catia_sketch_constraint by specifying 'assembly' constraints.
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 usage is implied: if you need to inspect assembly constraints, this is the tool. However, it does not explicitly mention when not to use it or name alternatives, such as catia_list_features for sketch constraints or catia_assembly_constraint for creation. No explicit when/when-not guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_list_design_tablesARead-only
List the design tables attached to the document, with their row counts and the row currently applied.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnlyHint=true, destructiveHint=false). The description adds useful behavioral context by specifying exactly what is reported: the design tables, their row counts, and the row currently applied. This goes beyond the annotations and clarifies the tool's return semantics.
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, focused sentence that front-loads the action and resource, then adds the two key pieces of output detail. Every word earns its place; there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, read-only listing tool, the description is complete: it states what is listed and what information is returned (row counts, applied row). No output schema exists, but the description adequately covers return semantics for an agent to understand and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool accepts no parametersaca, so parameter semantics are inherently simple. With zero parametersander 100% schema coverage, the description's focus on what is listed is appropriate and sufficient.
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 ('List'), a clear resource ('design tables attached to the document'), and the relevant scope of output (row counts and currently applied row). This clearly distinguishes it from design-table mutation siblings like catia_add_design_table and catia_set_design_table_configuration.
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 intended use is implied: call this when you need to inspect design tables rather than create or configure them. There is no explicit mention of alternatives or exclusions, but the read-only listing purpose is fairly self-evident from the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_list_documentsARead-only
List every document currently open in CATIA, with its type, file path and whether it has unsaved changes.
| 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 and destructiveHint=false, covering safety. The description adds value by specifying the output structure (type, path, unsaved changes) and the 'currently open' scope, which goes beyond the structured annotations. It does not mention performance or side effects, but these are not expected for a non-destructive list 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?
A single, front-loaded sentence that states the action, scope, and output fields with zero wasted words. It is optimally concise 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 simplicity of the tool and the absence of an output schema, the description adequately explains what will be returned (type, path, unsaved changes). There is nothing missing that an agent needs to know to invoke or interpret the result 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?
The tool has zero parameters, so the schema is fully covered (100%). The description correctly omits parameter details, and with no parameters, a baseline of 4 is appropriate per the rubric.
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 ('List') and resource ('every document currently open in CATIA'), and enumerates the exact fields returned (type, file path, unsaved changes). This clearly distinguishes it from sibling tools like catia_document_info (which likely details a single document) and catia_list_windows (which lists windows, not documents).
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: whenever an agent needs an inventory of open documents. It does not explicitly name alternatives or exclusion criteria, but the context is clear enough for a simple read operation. It does not claim to filter or search, so there is no ambiguity about scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_list_edgesARead-only
List the edges of the visible solid geometry in the active document, with the index token (edge#n), the centre of gravity to aim proximity tokens at and the length. Indices change whenever the model changes; centroids do not, so prefer 'edge@x,y,z' tokens for anything you will reference more than once.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number to return. | |
| include_metrics | No | Measure each element (centroid, area or length). Accurate and usually what you want, but one measurement call each - turn it off on very large models. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly and non-destructive hints, the description discloses that indices are unstable across model changes while centroids remain stable, which is important behavioral context. It also scopes the tool to visible solid geometry, adding specificity. 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?
The description is two concise sentences, with the core purpose stated first and a practical usage tip second. No extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the output fields (token, centroid, length) and the stability caveat, which is essential for correct use. With no output schema, this provides sufficient context for an agent to understand the return structure. It also implies the scope of visible solid geometry. Minor omission: it doesn't mention pagination or limit behavior, but those are in the 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?
The schema already fully documents both parameters (limit and include_metrics) with descriptions, so the description adds no additional parameter meaning. It does not mention them at all, so it does not exceed the schema 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?
The description clearly states the action (list), the resource (edges of visible solid geometry in active document), and the key output components (index token, centroid, length). This distinguishes it from sibling list tools like list_faces and list_vertices by specifying 'edges' and 'visible solid 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 provides guidance on how to use the returned tokens, advising to prefer centroid-based tokens for repeated references because indices change. However, it does not explicitly contrast this tool with alternatives or state when to use it over list_faces or list_vertices, so usage guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_list_export_formatsARead-only
List the neutral formats this server knows how to ask CATIA for, and which document types each applies to. Whether a given format actually works also depends on the licences installed.
| 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 and destructiveHint=false, so the safety profile is clear. The description adds behavioral context beyond annotations by noting that format availability depends on the licences installed, which is a non-obvious runtime factor. This extra context justifies giving more credit than a baseline read-only tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero filler. The primary action and scope are front-loaded, and the license caveat is a meaningful addition at the end. Every word earns its place, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple no-parameter, read-only listing tool, the description covers the essential aspects: what is listed, the document type mapping, and the licensing caveat. There is no output schema, but the verb 'list' implies a return of formats and document types. It lacks explicit return-format details, but that is a minor omission given the low 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?
The tool has zero parameters, so the schema is trivially complete. The description does not need to elaborate on parameters, and it does not introduce any parameter-related confusion. A baseline of 4 is appropriate given the no-parameter case.
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 ('List'), resource ('neutral formats'), and scope ('this server knows how to ask CATIA for'), and also mentions 'which document types each applies to' – making the purpose unambiguous. It distinguishes itself from siblings like catia_export by focusing on listing available formats, not performing exports.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is used to discover available export formats and notes the license dependency, which helps decide whether a format will work. However, it does not explicitly state when to use this tool versus alternatives (e.g., before catia_export) or provide exclusions. No sibling tool performs the same function, so the guidance is adequate but implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_list_facesARead-only
List the faces of the visible solid geometry in the active document, with the index token (face#n), the centre of gravity to aim proximity tokens at, the area, and the outward normal for planar faces. Indices change whenever the model changes; centroids do not, so prefer 'face@x,y,z' tokens for anything you will reference more than once.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number to return. | |
| include_metrics | No | Measure each element (centroid, area or length). Accurate and usually what you want, but one measurement call each - turn it off on very large models. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint, and the description adds beyond that: it discloses that indices change whenever the model changes while centroids remain stable, which affects how outputs should be used. It also scopes the operation to visible solid geometry and clarifies normals only apply to planar faces. This is meaningful behavioral context without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the operation and output fields, then a focused stability note that directly informs usage. No filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description enumerates the returned face data (index token, centroid, area, normal) and gives practical token-stability guidance. It could add return format/pagination details or clarify behavior when no visible solid geometry exists, but for a simple read-only list tool with well-covered parameters this is nearly 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?
The input schema covers all parameters at 100% with adequate descriptions (limit maximum and include_metrics performance cost), so the description need not repeat them. The description does not add parameter-level semantics beyond the schema; its mention of centre of gravity/area/normal describes output content rather than parameter behavior.
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: 'List the faces of the visible solid geometry in the active document.' This distinguishes it from sibling tools like catia_list_edges and catia_list_vertices by naming the resource type, and includes output details (index token, centroid, area, normal) that make its purpose concrete.
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 clear context: it targets faces of visible solid geometry in the active document, and the second sentence tells when to use face@x,y,z tokens over face#n ('anything you will reference more than once'). It does not explicitly name alternatives or exclusions, so it falls short of a 5 but provides useful selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_list_featuresARead-only
List the features of a body in creation order, optionally reporting which ones CATIA currently considers to be in error - this is how you find the feature blocking an update. Note that on releases with no update-status property, checking errors works by asking CATIA to recompute each feature, which is harmless but not free on a large part.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | Body name. Defaults to the main body. | |
| include_errors | No | Check each feature's update status. Costs one extra call per feature, and may trigger a recompute of features CATIA has not evaluated yet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds valuable behavioral detail about the extra per-feature call and potential recompute cost, which goes beyond the annotations and informs the agent about performance implications. It does not contradict any 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 two sentences, front-loaded with the core action and purpose, then a concise note on error-checking cost. Every sentence earns its place; there is no fluff or repetition. It is efficient 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?
For a low-complexity tool with no output schema, the description covers the essential calling context: what it lists, order, error option, and cost. It does not describe the return format, but that is not strictly necessary for a list operation, and the annotations cover safety. The description is sufficient for an agent to call 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 100% and each parameter already has a clear description (body defaults to main body; include_errors cost). The tool description adds no additional parameter semantics beyond what the schema provides, so a baseline of 3 is appropriate. The description does not repeat or enhance the 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 it lists features of a body in creation order, with an optional error-reporting feature. It explicitly mentions the use case of finding the feature blocking an update, which distinguishes it from sibling tools like catia_list_bodies or catia_list_faces. The verb 'List' and resource 'features of a body' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear intended use case ('this is how you find the feature blocking an update') and notes the cost behavior on releases without update-status property. While it does not explicitly name alternatives or state when not to use it, the purpose is specific enough that an agent can infer when it is appropriate. It lacks explicit exclusions but gives actionable context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_list_materialsARead-only
List the materials available in a CATIA material catalogue. With no path, the standard catalogue shipped with the detected CATIA installation is used.
| Name | Required | Description | Default |
|---|---|---|---|
| family | No | Limit to one material family, e.g. 'Metal'. | |
| catalog_path | No | Path to a .CATMaterial catalogue. Empty uses the default. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds the default catalogue behavior, but does not disclose return format or behavior when the path is invalid or no materials match.
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: the first states the core purpose, the second clarifies default behavior. Every word 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-only listing tool with zero required parameters and fully documented optional parameters, the description is largely complete. It could mention the output shape explicitly since there is no output schema, but the phrase 'List the materials' adequately implies the return value.
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 both parameters already have meaningful descriptions. The tool description's path note essentially duplicates the catalog_path schema description ('Empty uses the default'), so it adds no substantial new 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?
The description states a specific verb and resource: 'List the materials available in a CATIA material catalogue.' This clearly distinguishes it from other list tools like catia_list_components or catia_list_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?
The description provides useful default-path context ('With no path, the standard catalogue shipped with the detected CATIA installation is used'), which helps in typical usage. However, it does not explicitly mention when to use this tool versus alternative material-related tools like catia_apply_material, nor does it state exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_list_parametersARead-only
List the document's parameters with their current values. Feature dimensions appear here under names such as 'Pad.1\FirstLimit\Length', which is how you drive an existing model without editing its features.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum to return. | |
| filter | No | Case-insensitive substring to match against names. | |
| user_only | No | Show only user-created parameters, hiding the many automatic feature dimensions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds behavior beyond that: it returns current values and includes automatic feature dimensions, not just user parameters. This is useful context for a simple read-only list tool, though it does not describe output formatting or pagination 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 sentences with no filler. The core purpose is front-loaded, and the example parameter name earns its place by explaining an important behavioral detail about how feature dimensions are represented.
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 list tool with no output schema, the description gives enough information to invoke it correctly: what is returned, that feature dimensions are included, and how those names can be used to drive a model. It does not exhaustively describe return structure, but the annotations and schema cover safety and 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 the parameters limit, filter, and user_only are already fully documented in the schema. The description adds no further parameter-level semantics, matching the baseline of 3 for 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?
States a specific verb and resource: 'List the document's parameters with their current values.' It also distinguishes itself from feature-editing tools by explaining that feature dimensions appear here under names like 'Pad.1\FirstLimit\Length', which is how you drive an existing model without editing features. This gives clear differentiation from siblings such as catia_list_features and catia_set_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 provides clear context: use this tool to inspect document parameters and drive an existing model via feature dimension names. It implies the alternative of editing features but does not name specific alternatives or give explicit when-not-to-use conditions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_list_relationsARead-only
List the document's relations - formulas, rules, checks and design tables - with their expressions and whether they are active.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, so the description doesn't need to state safety. The description adds useful context about the content (expressions and activity status) but doesn't go beyond that. No 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?
The description is a single, tightly written sentence that covers the purpose and scope with no fluff. It is appropriately concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with no parameters and no output schema, so the description suffices. However, it doesn't mention whether the current document must be open or if the relations are from the active part, which could add context but isn't critical.
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 has zero parameters, and the schema is empty. The description accurately explains what will be listed, which is sufficient for parameter semantics since there is no schema to add meaning.
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 lists the document's relations (formulas, rules, checks, design tables) with expressions and activity status. It is specific about the resource and content, though it doesn't explicitly contrast with sibling tools like catia_list_design_tables, which is a close relative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is for inspecting relations in the current document, but it doesn't explicitly state when to use it versus alternatives like catia_list_design_tables or catia_list_parameters. It provides no exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_list_verticesARead-only
List the vertexs of the visible solid geometry in the active document, with the index token (vertex#n), the centre of gravity to aim proximity tokens at and the exact position. Indices change whenever the model changes; centroids do not, so prefer 'vertex@x,y,z' tokens for anything you will reference more than once.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number to return. | |
| include_metrics | No | Measure each element (centroid, area or length). Accurate and usually what you want, but one measurement call each - turn it off on very large models. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context: indices change whenever the model changes, centroids do not, and it explains the token format ('vertex@x,y,z'). This goes beyond the annotations and helps the agent understand the stability of returned 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 two sentences with no wasted words. The core purpose is front-loaded, and the second sentence provides important stability guidance about indices vs centroids. 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 read-only list tool with two well-documented parameters and no output schema, the description covers the essential context: what is listed, the token format, and the stability caveat. It doesn't describe the exact return structure, but with no output schema and a simple list operation, the description is sufficiently complete for an agent to call 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 100%, so the schema already documents both parameters (limit and include_metrics) with descriptions. The tool description doesn't add parameter-specific meaning beyond what the schema provides, but it does mention 'centre of gravity' and 'exact position' which relate to the include_metrics output. Baseline 3 is appropriate since the schema carries the parameter documentation burden.
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 lists vertices of visible solid geometry in the active document, with a specific verb and resource. It distinguishes itself from sibling tools like catia_list_faces and catia_list_edges by focusing on vertices, though it doesn't explicitly name those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it operates on visible solid geometry in the active document. It also gives practical guidance on when to use index tokens vs centroid tokens, implying when this tool is useful for referencing geometry. It doesn't explicitly state when not to use it or name alternatives, but the guidance is actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_list_windowsARead-only
List CATIA's open windows and which document each shows.
| 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 and destructiveHint=false, so the safety profile is covered. The description adds a behavioral detail—that the tool maps each window to its document—which goes beyond the annotations. It does not overload with unnecessary side effects, and nothing 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 concise sentence directly states the tool's function with no filler or repetition. It front-loads the verb and resource, making the purpose immediately accessible. Every word 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 zero-parameter, read-only tool with no output schema, the description fully captures the behavior: it lists open windows and their associated documents. Annotations cover safety, and the description provides all necessary information for an agent to decide when and how to call it without ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema confirms this with an empty properties object. The description correctly omits parameter details since there are none. With 100% schema coverage and no parameters, the baseline of 4 applies—there is nothing for the description to add.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('CATIA's open windows') and clarifies the purpose: listing windows and the document each displays. It clearly distinguishes from similar tools like catia_list_documents by focusing on windows rather than documents alone, making its intent 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 purpose is clear enough that an agent can infer when to call this tool (to inspect the window-to-document mapping). However, the description does not explicitly contrast it with alternatives such as catia_list_documents or catia_activate_document, nor does it state conditions for when not to use it. The guidance is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_mass_propertiesARead-only
Report volume, surface area, mass, centre of gravity and the inertia matrix. When the document has a material applied, CATIA's own Analyze interface supplies the mass; otherwise pass a density and it is computed from the measured volume.
| Name | Required | Description | Default |
|---|---|---|---|
| density | No | Density in kg/m3, used only when no material is applied. Steel is about 7850, aluminium about 2700. | |
| element | No | Reference token to measure. Defaults to the whole document, which is what you want for a part or an assembly. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only and non-destructive. The description adds meaningful behavioral context beyond the annotations: the mass source depends on whether a material is applied, and density is only used for the computed alternative. This helps the agent predict results without contradicting 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 two sentences, front-loaded with the key outputs, and each sentence earns its place. The material-vs-density nuance is explained efficiently without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description clearly enumerates the returned quantities. It also handles the main edge case (material applied vs not) and points to density in kg/m3. It does not specify units for the reported measurements, but the listed quantities and conditioning logic are sufficient for an agent to invoke the tool 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 100%, so the baseline is 3 even without extra parameter detail. The description reinforces the density/material condition already in the schema, and the element parameter is adequately documented by the schema with its default-to-document behavior. No new parameter meaning is added beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Report') and a precise set of resources: volume, surface area, mass, centre of gravity, and inertia matrix. This is clear and readily distinguishes the tool from generic measurement siblings like catia_measure, though it does not explicitly name a sibling or draw a contrast.
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 useful conditional guidance: when a material is applied, CATIA supplies the mass; otherwise pass a density. However, it never tells the agent when to choose this tool over alternatives such as catia_measure or catia_bill_of_materials, so usage context is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_measureARead-only
Measure a single element: its type, and whichever of length, area, volume, radius and centre of gravity apply. Works on faces, edges, vertices, sketches, surfaces, bodies and whole components.
| Name | Required | Description | Default |
|---|---|---|---|
| element | Yes | Reference token: 'face#2', 'edge@10,0,0', 'body', 'name:Pad.1', and so on. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, establishing the non-destructive nature. The description adds meaningful behavioral context by stating the tool returns only the measurements that apply to the given element type, and it lists the range of element types supported. This goes beyond the annotations and helps the agent predict the output without overstating anything.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff. The first sentence states the core purpose and what is measured; the second covers the operand types. All information is relevant and front-loaded, making it easy for an agent to quickly 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?
For a simple single-parameter read-only tool, the description covers the purpose, supported elements, and the nature of the output (type and applicable measurements). It does not mention units or error behavior, but these are not critical for a CAD measure tool given the annotations. The lack of an output schema is mitigated because the description lists what will 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?
The single parameter 'element' has detailed schema description with reference token examples ('face#2', 'edge@10,0,0'), so schema coverage is 100%. The tool description adds no additional semantics about the parameter beyond what the schema already provides; it merely mentions the element types in the description, which complements but doesn't extend the parameter's meaning.
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 (measure) and resource (a single element), and enumerates the exact measurements returned (type, length, area, volume, radius, centre of gravity). It also lists the supported element types, making it unambiguous and clearly distinguishable from sibling tools like catia_measure_distance or catia_measure_angle, which operate on pairs or angles.
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 this tool by specifying what element types it works on and that it measures single elements, but it does not explicitly contrast it with alternatives such as catia_measure_distance or catia_mass_properties. There is no direct 'use this instead of X' guidance, so the usage context is clear but not fully explicit about exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_measure_angleARead-only
Measure the angle between two elements - two planar faces, two lines, or a line and a plane.
| Name | Required | Description | Default |
|---|---|---|---|
| first | Yes | First element reference token. | |
| second | Yes | Second element reference token. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds no further behavioral context (e.g., return format, side effects, or prerequisites). It does not contradict annotations, but adds little 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 sentence that front-loads the action ('Measure the angle') and immediately provides the specific element types. 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 simple read-only measurement tool with two parameters and no output schema, the description covers purpose and element types. It does not explicitly state the return value (e.g., angle in degrees), but that is implied by the action. Annotations cover safety, so the definition is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with generic 'element reference token' descriptions. The tool description adds meaningful semantics by specifying that the elements can be planar faces, lines, or a line and a plane, clarifying the acceptable input types 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 (measure) and resource (angle between two elements), and explicitly enumerates the supported element pairs (faces, lines, line-plane). This clearly distinguishes it from sibling tools like catia_measure_distance and catia_measure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It specifies the exact element combinations that are valid (two faces, two lines, or line-plane), giving the agent a clear usage context. However, it does not explicitly mention alternatives or when not to use this tool, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_measure_distanceARead-only
Measure the shortest distance between two elements, and report the two points where that minimum occurs. A distance of zero means the elements touch or interfere - which makes this a quick clearance check between two components in an assembly.
| Name | Required | Description | Default |
|---|---|---|---|
| first | Yes | First element reference token. | |
| second | Yes | Second element reference token. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds valuable behavioral detail: it reports the points of minimum distance and interprets zero distance as touch/interference. It does not contradict any 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, no filler, front-loaded with the primary action. The clearance-check use case is a useful addition without bloating the description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (two params, no output schema), but the description does not specify the return format (e.g., distance value, coordinate structure, units). An agent needs to know what the tool returns to use it correctly. This is a notable gap given no 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 described as element reference tokens). The description merely refers to 'two elements' without adding format, acquisition, or constraint details beyond the schema. Since schema is comprehensive, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool measures the shortest distance between two elements and reports the two points where the minimum occurs. It distinguishes itself from catia_measure_angle (angle measurement) and adds specific semantics (zero distance means touch/interference). This is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for distance measurement and explicitly mentions a clearance check between assembly components. However, it does not explicitly contrast with sibling tools like catia_measure or catia_measure_angle, though the purpose is clear enough for most scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_mirrorB
Mirror the current body about a plane or planar face.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the resulting feature. | |
| plane | No | Reference token of the mirror plane, e.g. 'yz' or 'face#2'. | yz |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is mutating (readOnlyHint=false) and non-destructive (destructiveHint=false), lowering the burden on the description. The description adds that the operation acts on the current body and accepts a plane or planar face, but it does not disclose whether the result is a new feature, replaces the body, or how the original is 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?
A single clear, front-loaded sentence with no filler. Every word contributes meaning, and the core operation is immediately visible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, the schema documents both parameters, and annotations cover the safety profile. However, the description omits the outcome of the operation (new feature vs. modified body) and does not state what the tool returns, which matters since no output schema is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well documented. The description adds no meaningful parameter-level detail beyond the schema's own descriptions of 'Name' and '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 uses a specific verb ('Mirror') with a clear resource ('the current body') and qualifying geometry ('about a plane or planar face'). It distinguishes the operation from broader transform/list tools, though it does not explicitly contrast itself with a sibling like catia_transform_body.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given about when to use this tool versus alternatives. The description implies the prerequisite of an active/current body and the need for a plane reference, but it never states exclusions or directs the agent to sibling tools for related operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_move_componentA
Move a component in the assembly. By default the translation and rotation are applied relative to where it is now; set absolute=true to place it at exactly that position and orientation instead.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | X translation in mm. | |
| y | No | Y translation in mm. | |
| z | No | Z translation in mm. | |
| rx | No | Rotation about X in degrees. | |
| ry | No | Rotation about Y in degrees. | |
| rz | No | Rotation about Z in degrees. | |
| absolute | No | Treat the values as an absolute placement. | |
| instance_name | Yes | Instance name of the component. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutating operation (readOnlyHint=false), so the description's main contribution is the non-obvious relative-vs-absolute placement semantics. It does not cover side effects such as interactions with assembly constraints, but it is consistent with the annotations and adds meaningful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The core purpose is front-loaded, and the conditional absolute-mode behavior is stated compactly without repeating schema content.
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 schema and description together cover units, defaults, the required instance_name, and the critical relative/absolute behavior. There is no output schema and the annotations cover the safety profile, so the definition is largely complete, though it does not mention possible effects on existing assembly constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents all eight parameters with units and defaults, so baseline is 3. The description adds the key semantic that x/y/z and rx/ry/rz are relative to the component's current pose unless absolute=true, which is not fully captured by the individual schema property descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly names the action and resource: 'Move a component in the assembly.' It is unambiguous and matches the tool name, but it does not explicitly differentiate itself from close siblings such as catia_component_position or catia_add_component, so it stops short of a 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?
The relative-vs-absolute sentence gives useful operational guidance for how the move is applied, and the overall wording implies this tool is for repositioning existing components. However, it does not explicitly state when to prefer this over catia_component_position, catia_assembly_constraint, or catia_add_component, so the selection guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_new_bodyA
Add a new empty body to the part and make it the in-work object, so subsequent features go into it. This is how you build shapes to combine with boolean operations.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the new body. | |
| set_in_work | No | Make the new body the target for new features. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=false. The description adds meaningful behavioral context: the new body becomes the in-work object, and subsequent features go into it. This is a side effect beyond what annotations convey. It doesn't mention whether an existing body with the same name is replaced or errors, but the core behavioral trait (making it in-work) is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. The first sentence states the action and its primary side effect; the second gives the strategic purpose. Information is front-loaded and every word 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 2-parameter tool with no output schema, the description is nearly complete. It explains the action, the side effect, and the use case. It doesn't mention error conditions (e.g., duplicate name) or whether the body is created in the active part, but given the simplicity and the schema coverage, this is adequate. A 4 is appropriate because it fully equips an agent to decide when to call it and what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (name and set_in_work). The description adds context for set_in_work ('make it the in-work object') but doesn't add meaning beyond the schema's 'Make the new body the target for new features.' The name parameter is self-explanatory. Baseline 3 is appropriate since 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 states a specific verb ('Add'), a specific resource ('a new empty body to the part'), and the key behavioral effect ('make it the in-work object, so subsequent features go into it'). It also explains the purpose ('build shapes to combine with boolean operations'), which distinguishes it from sibling tools like catia_set_active_body and catia_list_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?
The description clearly implies when to use this tool: when you need a new body to hold subsequent features, especially before boolean operations. It doesn't explicitly name alternatives or exclusions, but the context 'This is how you build shapes to combine with boolean operations' provides clear usage context. It doesn't say when not to use it (e.g., when you just want to switch active body, use catia_set_active_body).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_new_drawingA
Create a new CATDrawing document. Optionally sets the drafting standard and the first sheet's paper size.
| Name | Required | Description | Default |
|---|---|---|---|
| standard | No | Drafting standard: ISO, ANSI, JIS or ASME. | ISO |
| landscape | No | Landscape orientation. | |
| paper_size | No | Paper size for sheet 1: A0-A4 or A-F. | A3 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate mutation (readOnlyHint false). The description adds that it optionally sets drafting standard and paper size, but doesn't disclose return value or side effects like whether it activates the document. Lacks behavioral detail beyond 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?
Two concise sentences with no fluff, main purpose front-loaded, and every word 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 creation tool, it's mostly complete, but it doesn't mention return value or whether the new document becomes active. With no output schema, this is a gap that could leave the agent uncertain about the result.
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 covers all three parameters with descriptions. The description adds that standard and paper_size apply to the first sheet, which is useful context beyond schema. Also confirms they are optional, though defaults already imply that.
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 ('CATDrawing document'), and mentions optional settings for standard and paper size. Clearly distinguishes from sibling tools like catia_drawing_add_sheet or catia_new_part by the document type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description doesn't explicitly discuss alternatives or when not to use this tool. However, the name and purpose make it obvious that it's for creating new drawing documents, distinct from creating parts or products. No explicit exclusion guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_new_partA
Create a new empty CATPart document and make it active. This is the starting point for any solid or surface modelling.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the part inside the tree (not the file name). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses that the tool creates a new empty document and changes the active document. It is consistent with idempotentHint=false by implying each invocation creates a new part. It does not discuss side effects like file saving, but annotations already establish that the operation is not read-only or destructive.
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: the first states the action and result, the second explains its role. There is no redundant or filler content, and the main behavior is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool with one documented parameter and no output schema, the description covers what the tool does, the active-document side effect, and its typical use. It could mention the distinction from adding a part to an assembly, but that gap is minor given the clarity of 'new empty CATPart document'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for the single 'name' parameter, including that it is the part name inside the tree, not the file name. The description adds no additional parameter detail, 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 uses a clear verb ('Create') and resource ('new empty CATPart document'), and it is further clarified by 'make it active' and 'starting point for any solid or surface modelling'. It does not explicitly differentiate itself from the sibling catia_add_new_part, so it stops short of a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'starting point for any solid or surface modelling' gives a clear context for when to use this tool. It does not state exclusions or mention alternatives such as catia_add_new_part, but the intended use is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_new_productA
Create a new empty CATProduct (assembly) document and make it active.
| Name | Required | Description | Default |
|---|---|---|---|
| part_number | No | Part number for the root product. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the operation is not read-only, and the description adds the concrete side effect of making the new document active. It does not detail the effect on the previously active document or any return value, but the main behavioral trait is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence conveys the action, resource, and result with 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 low-complexity creation tool with one optional parameter, the description is sufficient for an agent to invoke it. It could mention what happens to the previously active document or expected return, but these are minor gaps given the simple 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%: part_number is documented as the part number for the root product. The tool description does not add parameter-level meaning, which is acceptable given the complete 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 uses a specific verb ('Create') and resource ('new empty CATProduct (assembly) document') and adds a behavioral outcome ('make it active'). This clearly separates it from siblings like catia_new_part and catia_add_new_product, which target different document/product 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 implies the tool is for creating a new assembly document, but it never states when to prefer it over catia_add_new_product or catia_new_part, nor does it list exclusions. An agent can infer usage, but the guidance is not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_open_documentA
Open an existing file in CATIA. Handles native documents (.CATPart, .CATProduct, .CATDrawing) and every neutral format CATIA can read directly, such as .stp, .igs, .stl and .model.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute path to the file to open. | |
| activate | No | Bring the document to the front after opening. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=false, destructiveHint=false, etc. The description adds supported-format context but does not disclose behavioral details like what happens if the file is already open or whether opening modifies the target file. 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?
Two sentences, front-loaded with the main purpose, followed by a useful format list. 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 simple open operation with only two parameters, all covered by schema descriptions, the description is nearly complete. It does not cover return values or error cases, but no output schema exists and complexity is low.
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 schema already documents both 'path' and 'activate' clearly. The tool description adds no parameter-specific meaning beyond what the schema provides, so 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 ('Open an existing file'), resource ('CATIA'), and lists supported file formats. The wording clearly distinguishes it from creation tools like catia_new_part or catia_new_product.
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 through 'Open an existing file' and lists format coverage, but it does not explicitly say when to use this over catia_activate_document or how it differs from creating/importing documents. Context is understandable, but exclusions are not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_padB
Extrude a closed sketch profile into solid material. Supports a fixed length, symmetric extrusion about the sketch plane, a second limit in the opposite direction, up-to-next / up-to-last, stopping at a named plane or surface, and thin-walled pads.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the resulting feature. | |
| length | No | Extrusion length in mm (ignored for up_to_* modes). | |
| sketch | No | Profile sketch name. Defaults to the most recent sketch. | |
| reverse | No | Extrude towards the other side of the sketch plane. | |
| symmetric | No | Extrude the same distance either side of the sketch plane. | |
| thickness | No | Wall thickness in mm to make this a thin pad instead of solid. | |
| limit_mode | No | How the extrusion ends: dimension | up_to_next | up_to_last | up_to_plane | up_to_surface. | dimension |
| second_length | No | Length of a second limit on the other side of the sketch, mm. | |
| limiting_element | No | Reference token of the plane or surface to stop at, for up_to_plane and up_to_surface. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include readOnlyHint=false, indicating a mutation, but the description doesn't detail the operation's side effects (e.g., modifies the part's geometry, creates a feature). It adds some context by listing the supported limit modes and thin-wall capabilities, which goes beyond basic mutation, but doesn't disclose prerequisites like requiring an active sketch or potential errors. 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?
The description is a single, well-structured sentence that front-loads the core purpose and then enumerates the key options. It is concise with no filler, but could be more structured with bullet points for readability. Still, it earns a 4 for efficiency.
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 9 parameters, no output schema, and no explicit error-handling info in the description, the definition is moderately complete. It covers the main functional modes but doesn't mention potential failure cases (e.g., invalid sketch) or what a successful call returns. The schema covers parameters well, but the absence of output schema and edge-case guidance leaves 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 100%, so each parameter has a description in the schema. The tool description adds value by explaining 'up-to-next/up-to-last' and 'thin-walled pads' at a high level, but doesn't elaborate on parameter interactions (e.g., how second_length relates to symmetric). Given the high schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool extrudes a closed sketch profile into solid material, using the specific verb 'Extrude' and resource 'sketch profile'. It effectively distinguishes from siblings like catia_sketch_spline by being about creating a solid feature. However, it doesn't explicitly contrast with the sibling catia_pocket (which removes material), though the purpose is clear enough.
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 for creating solid extrusions from sketches but doesn't explicitly state when to choose this over alternatives like catia_pocket (which removes material) or catia_shaft (revolve). It provides no exclusions or explicit 'when not to use' guidance, leaving the agent to infer based on the verb and context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_pocketB
Cut material by extruding a closed sketch profile into the solid. Same limit options as catia_pad, including through-all via up_to_last.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the resulting feature. | |
| depth | No | Cut depth in mm. | |
| sketch | No | Profile sketch name. | |
| reverse | No | Cut towards the other side. | |
| symmetric | No | Cut both sides of the sketch plane. | |
| limit_mode | No | dimension | up_to_next | up_to_last (through all) | up_to_plane | up_to_surface. | dimension |
| limiting_element | No | Reference token of the plane or surface to stop at. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no hints (readOnlyHint=false, destructiveHint=false), so the description must disclose behavioral traits. It mentions 'Cut material' which implies modification but does not explicitly warn about destructive side effects or state any requirements (e.g., the sketch must be closed, or that the operation modifies the active body). It also defers to catia_pad for limit options without explaining their behavior directly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, two sentences, and front-loaded with the primary action ('Cut material'). It avoids unnecessary detail and directly states the key behavioral similarity to catia_pad. There is no fluff 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?
Given the tool's complexity (7 parameters), no output schema, and neutral annotations, the description is incomplete. It does not mention prerequisites such as having a closed sketch, how depth interacts with limit modes, or potential failure conditions. It also does not explain the resulting feature or how it fits into the model tree. The reference to catia_pad helps but leaves many gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides descriptions for all 7 parameters (100% coverage), so the description adds little beyond what the schema already states. The reference to 'same limit options as catia_pad' provides supplementary context that could help an agent reuse knowledge from a sibling tool, but it does not elaborate on parameter semantics itself. A score of 3 reflects the baseline for high schema coverage with minimal additional description value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Cut material') and the mechanism ('by extruding a closed sketch profile into the solid'), which distinguishes it from additive operations like catia_pad. The explicit reference to 'same limit options as catia_pad' further clarifies its behavior and relationship to a sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks explicit guidance on when to use this tool versus alternatives such as catia_hole, catia_groove, or catia_remove_face. It only implies it is for cutting material, but does not mention prerequisites (e.g., an existing sketch) or conditions when other tools would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_point_coordinatesARead-only
Read the 3D coordinates of a point, vertex or the centre of a circle.
| Name | Required | Description | Default |
|---|---|---|---|
| element | Yes | Reference token, e.g. 'vertex#4' or 'name:Point.1'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds context about which element types are valid (point, vertex, circle centre), which goes beyond annotations. However, it does not disclose output format, coordinate system, or potential failure modes. The added context is useful but not extensive.
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, concise and directly states the purpose. It is front-loaded with the action and includes no filler. All content is necessary to convey 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?
The tool is simple (one parameter, read-only, no output schema). The description covers what it reads and the parameter is defined in the schema, but the output format (e.g., coordinate tuple, units) is not specified. Without an output schema, the description should optionally hint at the return structure. The current description leaves this gap, making it inadequate for an agent that needs to parse the result.
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?
Despite 100% schema description coverage for the single parameter 'element', the tool description does not add further meaning about that parameter. It only reiterates the element types in general terms. Since the schema already explains the reference token format with examples, the description adds no substantial value for parameter 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 (read) and the resource (3D coordinates) with specific target types (point, vertex, circle centre). It distinguishes itself from measurement siblings like catia_measure_distance and catia_measure_angle by focusing on coordinate extraction. The verb-resource pairing is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool vs alternatives. The description implies usage for coordinate retrieval, but does not mention when not to use it (e.g., for distances or angles) or point to sibling tools. Usage is only implied by the purpose, not clearly demarcated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_rect_patternA
Repeat a feature on a rectangular grid. Directions are given as reference tokens of an edge or line - for example 'edge#1' - because CATIA needs a real direction element, not an axis name. Leave a direction empty to let CATIA choose its default for that axis.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the resulting feature. | |
| feature | No | Reference token of the feature to repeat. Defaults to the last one. | |
| reverse_1 | No | Reverse the first direction. | |
| reverse_2 | No | Reverse the second direction. | |
| spacing_1 | No | Spacing along the first direction, mm. | |
| spacing_2 | No | Spacing along the second direction, mm. | |
| direction_1 | No | Reference token of an edge or line for the first direction. | |
| direction_2 | No | Reference token for the second direction. | |
| instances_1 | No | Number of instances along the first direction. | |
| instances_2 | No | Number of instances along the second direction. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clearly indicates the tool creates a repeated feature (a mutation), consistent with readOnlyHint=false. It adds important behavioral context by explaining that directions must be real elements (e.g., 'edge#1') rather than axis names, which is a functional requirement. Since annotations are minimal, this transparency is valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, tightly packed: the purpose is front-loaded and the direction guidance is given in a single additional sentence. No redundant information or filler, making it highly efficient for an agent 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?
For a tool with 10 parameters and no output schema, the description covers the core operation and the trickiest parameter behavior. It doesn't mention return values or side effects, but those are not essential given the schema's robustness. It could note that it creates a feature in the tree, but overall it is sufficient 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 already describes all 10 parameters with 100% coverage. The description adds significant semantic value by illustrating the direction parameters ('edge#1') and explaining the empty-default behavior, clarifying the most nuanced parameters beyond the schema's basic 'Reference token' descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear, specific action: 'Repeat a feature on a rectangular grid.' This distinguishes it from sibling tools like catia_circ_pattern (circular) and catia_user_pattern (user-defined). It also explains the critical direction-token requirement, making the purpose unmistakable.
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 implicitly guides usage by specifying it is for rectangular grids, and it explicitly explains how to provide directions (reference tokens of edges/lines, not axis names) and that leaving a direction empty uses CATIA's default. However, it does not explicitly state when to choose this over the circular or user pattern alternatives, though the name and description imply it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_redoADestructive
Redo the last undone operation(s) in CATIA. Best-effort, like catia_undo.
| Name | Required | Description | Default |
|---|---|---|---|
| times | No | How many steps to redo. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the agent knows this mutates state. The description adds the behavioral nuance 'Best-effort, like catia_undo,' indicating the operation may not fully succeed, which is valuable beyond the structured fields. 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?
The description is two sentences with no filler. It front-loads the purpose ('Redo the last undone operation(s)') and then adds a behavioral caveat and sibling comparison, all in minimal 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 a simple one-parameter tool with full schema coverage and annotations describing destructiveness, the description is mostly complete. A minor gap is that it does not explicitly state that the operation applies to the active document, which could matter in a multi-document CATIA session, but this is implied by the tool's context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the 'times' parameter is fully documented with its meaning ('How many steps to redo') and constraints. The description adds no additional parameter semantics, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb ('Redo') and resource ('last undone operation(s) in CATIA'), clearly indicating its function. The phrase 'like catia_undo' anchors it as the counterpart to a sibling, making it distinguishable from other tools without opening schemas.
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 clear context: it is for redoing previously undone operations. It doesn't explicitly state when not to use it or name alternatives, but since catia_undo is the only directly related sibling and the purpose is unambiguous, the usage context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_reference_helpARead-only
Explain the reference-token grammar used by every tool that needs to point at geometry (planes, faces, edges, sketches, features). Read this before guessing at a selector.
| 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 and destructiveHint=false, and the description aligns by saying 'Explain' rather than describing any mutation. It adds contextual scope about when the tool applies, but it does not describe the returned output format or length, so it does not go beyond a minimal transparent profile.
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, purposeful sentences. The verb and subject are front-loaded, and the second sentence gives a concrete usage directive without 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 a zero-parameter, read-only help tool, the description tells the agent exactly when to invoke it and what it will learn. There is no output schema, but 'Explain the reference-token grammar' sufficiently conveys that the output is that explanation.
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 zero parameters, so there is nothing for the description to add beyond the schema. The mention of selector grammar is contextual rather than parameter documentation; a baseline of 4 is appropriate for a parameterless 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 uses a specific verb ('Explain') and a specific resource ('the reference-token grammar'), and explicitly scopes it to geometry-pointing tools with examples of element types. It clearly positions the tool as a read-only help utility rather than a geometry operation, distinguishing it from every sibling in the list.
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 explicit directive: 'Read this before guessing at a selector,' and states the grammar is used by every tool that points at geometry. It does not list alternatives or when-not-to-use, but no equivalent help tool exists among siblings, so the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_remove_componentADestructive
Remove a component from the assembly. The underlying file is untouched.
| Name | Required | Description | Default |
|---|---|---|---|
| instance_name | Yes | Instance name of the component to remove. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the agent knows this is destructive. The description adds valuable context: 'The underlying file is untouched,' which clarifies the scope of the destruction (only the assembly reference is removed, not the file). This goes beyond the annotation and helps the agent understand the real-world consequence. 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?
Two short sentences with no filler. The core action is front-loaded, and the key caveat ('underlying file is untouched') is included in the second sentence. Every word 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 single-parameter destructive operation with annotations covering the destructive nature, the description is nearly complete. It explains the action, the scope (assembly), and the non-destructive effect on the file. It doesn't mention return values, but there is no output schema and the operation is a simple removal, so that is not a significant gap. It could name a sibling like catia_delete_element for contrast, but that is a minor omission.
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%: the only parameter, instance_name, is described as 'Instance name of the component to remove.' The description adds no additional parameter-level detail beyond the schema, so the baseline 3 applies. The tool description's mention of 'component' aligns with the parameter, but no extra semantics are provided.
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 ('Remove a component from the assembly') and the resource ('component'), and it distinguishes itself from related operations by noting the underlying file is untouched. It doesn't explicitly name sibling alternatives like catia_delete_element or catia_move_component, but the verb 'remove' and the assembly context make the purpose clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: use this when you want to remove a component from an assembly without deleting its file. It doesn't explicitly state when not to use it or name alternatives (e.g., catia_delete_element for deleting elements, catia_move_component for repositioning). The context is clear enough for an agent to infer the primary use case, but explicit exclusions are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_remove_faceADestructive
Delete faces from the solid and let CATIA heal the result by extending the neighbouring faces - the Remove Face feature. Useful for simplifying a model before analysis or export.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the resulting feature. | |
| faces_to_keep | No | Optional reference tokens of faces that must survive intact. | |
| faces_to_remove | Yes | Reference tokens of the faces to delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true, so the description adds the healing behavior ('let CATIA heal the result by extending the neighbouring faces'), which is valuable extra context. It does not disclose permission requirements, reversibility, or error behavior, but given the annotation coverage, a 3 is appropriate.
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 primary action and feature name. The additional use-case note is brief and useful. 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?
The description covers the purpose and a high-level behavior, but for a destructive operation with no output schema, it omits what happens on failure, whether faces_to_keep and faces_to_remove interact, and how reference tokens are obtained (though sibling tools like catia_list_faces would provide them). It is adequate but not fully complete for an agent deciding to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% description coverage for all three parameters (name, faces_to_keep, faces_to_remove), each with clear descriptions. The tool description adds no additional parameter-level meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (delete faces) and the resource (solid), and names the CATIA feature 'Remove Face'. It provides a specific use case (simplifying before analysis/export). However, it does not explicitly differentiate from sibling tools like catia_shell or catia_split_body, which also remove geometry, so it misses a chance to disambiguate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a general use case ('useful for simplifying a model before analysis or export') but gives no explicit guidance on when to use this tool versus alternatives, nor any exclusions (e.g., when faces are not removable or when other operations would be preferred). The usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_rename_elementA
Rename a tree element. Worth doing for anything you will reference later - a stable name survives model edits, unlike a face or edge index.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | Reference token of the element to rename. | |
| new_name | Yes | The new name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal readOnlyHint=false, destructiveHint=false, and idempotentHint=false. The description adds behavioral context by explaining that a stable name survives model edits, which is valuable. However, it does not disclose naming constraints, error conditions, or any side effects beyond the basic act of renaming.
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. The main action is front-loaded, and the second sentence earns its place by explaining the practical benefit of renaming. 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 simple two-parameter tool with no output schema, the description is sufficiently complete: it states the action, the target, and the strategic reason to use it. It could mention naming rules or behavior on duplicate names, but it is not clearly incomplete for an agent to invoke 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 100%: both token and new_name are documented. The description adds no additional parameter-level meaning beyond what the schema already provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Rename a tree element' — a specific verb, resource, and clear action. It is unambiguously distinct from siblings like catia_delete_element or catia_show_element, and no other sibling tool performs renaming.
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 'Worth doing for anything you will reference later' gives an explicit when-to-use condition. The comparison to 'a face or edge index' signals when an alternative approach is weaker, though it does not explicitly name a sibling alternative or when not to rename.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_resolve_referenceARead-only
Check what a reference token actually points at before you use it in a modelling call. Returns the resolved element's name, type and - for topology - its measured position, so you can confirm you are about to fillet the right edge.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | Reference token, e.g. 'xy', 'name:Pad.1', 'face#3', 'edge@10,0,5'. See catia_reference_help. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds useful behavioral detail by specifying the return values (name, type, measured position for topology), which goes beyond the schema. No 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?
Two sentences with zero fluff. The purpose and output are front-loaded, and every word contributes to understanding when and why to use the 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?
Complete for a single-parameter read-only tool. The description explains what it returns, the schema covers the input, and annotations cover safety. No missing information 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 coverage is 100% with a detailed description of the 'token' parameter including examples. The tool description adds no additional parameter meaning beyond what the schema already provides, so 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?
The description states a specific verb ('Check') and resource ('what a reference token actually points at'), and specifies the return content (name, type, position). It clearly differentiates from siblings like catia_reference_help by focusing on resolution before modelling calls.
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 to use it 'before you use it in a modelling call', giving clear context. It doesn't name exclusions or alternatives, but the timing is unambiguous and sufficient for typical usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_ribA
Sweep a closed profile along a guide curve to add material - CATIA's Rib feature. The profile and the centre curve must be separate sketches or curves.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the resulting feature. | |
| profile | Yes | Reference token of the profile sketch. | |
| center_curve | Yes | Reference token of the guide curve or sketch. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false. The description adds context by stating the profile must be closed and that the profile and center curve must be separate, and that it adds material. This clarifies the mutating nature beyond annotations, though it does not disclose failure modes or context requirements like an active body.
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, front-loaded with the core action and effect. The prerequisite is stated clearly after the main description, making it 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 schema descriptions and annotations, the description covers the essential operation, prerequisites, and effect. It does not mention the need for an active body or part, or error handling, but these are common to many CATIA feature tools, and the description is sufficient for an agent to 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 100%, so parameters are documented. The description adds extra meaning by specifying the profile must be closed and that profile and center curve must be separate, which clarifies expectations beyond the schema descriptions. This is valuable for the profile and center_curve parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (sweep), the resource (closed profile along a guide curve), and the effect (add material), naming it as CATIA's Rib feature. It distinguishes itself from sibling tools like pad (linear extrusion) and gsd_sweep (surface sweep) by specifying a solid material addition.
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 a swept solid is needed and provides a prerequisite (separate sketches/curves), but it does not explicitly contrast with alternative feature tools like pad, pocket, or shaft. An agent would need to infer the selection criteria 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.
catia_run_scriptADestructive
Run a VBScript function inside CATIA and return its value. This is the escape hatch to the whole CATIA object model, including anything this server has no dedicated tool for and any API that only exists on some releases. The script must define the named function; CATIA is passed in automatically as the first parameter unless you pass your own. Returns whatever the function returns.
| Name | Required | Description | Default |
|---|---|---|---|
| script | Yes | Full VBScript source, defining the function named below. Example: 'Function Run(catia)\n Run = catia.Documents.Count\nEnd Function' | |
| function | No | Name of the function inside the script to call. | Run |
| pass_application | No | Pass the CATIA Application object as the first argument to the function. Turn this off if your function takes no arguments. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and idempotentHint=false; the description adds that arbitrary CATIA object model access is possible, CATIA is passed as the first argument automatically, and the return value is whatever the function returns. 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 focused sentences front-load the purpose, then provide selection guidance and invocation semantics. Every sentence earns its place; 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 high-complexity escape-hatch tool with no output schema, it explains what the script must define, how CATIA is passed, and what is returned. Potential side effects are covered by the destructiveHint annotation, though error behavior is not described.
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 clear parameter descriptions and an example, so the baseline is 3. The description adds some context about automatic CATIA passing, but most parameter meaning is already present 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 action: run a VBScript function inside CATIA and return its value. Positions itself as the 'escape hatch' to the whole CATIA object model, clearly distinguishing it from the many dedicated sibling 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?
Explicitly says to use it for anything the server has no dedicated tool for and for release-specific APIs. The escape-hatch framing tells the agent this is the fallback when no specialized sibling applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_save_allA
Save every open document that has unsaved changes and already has a file path. Documents that have never been saved are reported back and skipped.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as non-read-only and non-destructive, and the description adds useful behavioral nuance: only changed documents with saved paths are written, while never-saved documents are skipped and reported. This is meaningful context beyond the raw annotation flags.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The core behavior and scope are front-loaded, and the skip/report behavior is stated efficiently.
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 parameterless save-all tool, the description covers the essential behavior, conditions, and the handling of unsaved documents. It does not specify the exact format of the returned 'reported back' information, but this is a minor gap given no output schema and low tool 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?
The tool has zero parameters, so the schema is already complete. Description adds no parameter-level detail, and the baseline of 4 is appropriate for a parameterless 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 states a specific action ('Save every open document') and precisely scopes the target documents ('has unsaved changes and already has a file path'). This distinguishes it from single-document save and export tools without requiring the reader to open any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when the tool applies through its scoping conditions, but it never explicitly contrasts it with alternatives like catia_save_document or catia_export_all_open. It provides context but no direct when-to-use vs. alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_save_documentA
Save a document. With no path it saves in place (and fails for a document that has never been saved); with a path it does Save As, which also converts format when the extension differs.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Destination path for Save As. Leave empty to save in place. The directory is created if needed. | |
| document | No | Which open document to save. Defaults to the active one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the annotations by disclosing a key failure mode (saving a never-saved document without a path) and a side effect (format conversion when the extension differs). These are meaningful behavioral details that the annotations themselves do not 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 compact sentences convey all essential behavior with no filler. The action is front-loaded and the distinction between in-place and Save As is presented clearly.
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 save operation, the description and schema together provide enough to invoke the tool correctly: which document, destination path, behavior, and one failure condition. It does not mention overwrite semantics or relationship to catia_save_all, but those are secondary for this tool's core task.
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 both parameters well. The description adds value by clarifying the behavioral implications of the path parameter: empty means save in place, non-empty means Save As, and a differing extension triggers format conversion.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the verb ('Save') and resource ('a document'), and specifies two distinct behaviors: in-place save and Save As with format conversion. However, it does not explicitly differentiate this tool from its sibling catia_save_all, so an agent must infer the scope difference rather than being told.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use each mode (no path vs. path), which is useful operational guidance. It does not, however, state when to choose this tool over alternatives like catia_save_all or catia_close_document, and it offers no exclusions or cautionary conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_screenshotARead-only
Capture the CATIA 3D viewport and return it as an image you can look at, optionally saving it to a file as well. Use it to check that geometry came out the way you intended - it is far more reliable than reasoning about the feature tree alone.
| Name | Required | Description | Default |
|---|---|---|---|
| fit | No | Fit the model in the window first. | |
| path | No | Where to save the image. Leave empty to capture to a temporary file and only return the picture. | |
| max_pixels | No | Longest edge of the returned image in pixels; larger captures are downscaled to keep the response small. Needs Pillow. | |
| orientation | No | Optionally set a standard view first: front, top, isometric, and so on. Empty keeps the current camera. | |
| return_image | No | Return the picture itself, not just the file path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds that it returns an image and can optionally save to a file, which are behavioral details not fully covered by annotations. It does not contradict any annotation, and it adds a reliability caveat about geometry checking. Some gaps remain (e.g., behavior when no model is open), but given annotation coverage, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero filler. It front-loads the core action ('Capture the CATIA 3D viewport and return it as an image') and then adds the primary use case. Every word 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 tool with 5 optional parameters and no output schema, the description covers what it does and when to use it. It explains the return behavior (image) and optional file saving. It does not specify return format details, but since the tool returns an image, that is self-evident. The only minor gap is the absence of environment prerequisites (e.g., active document), but this is not critical for a read-only capture 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 100%, so the parameters are fully documented in the input schema. The description does not add new meaning beyond the schema, but it doesn't need to. It mentions optional saving and image return, which maps to the path and return_image parameters, but the schema already explains these. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool captures the CATIA 3D viewport and returns an image, with an optional file save. It names the specific verb 'capture' and resource '3D viewport', and distinguishes itself from siblings like catia_zoom or catia_fit_all which only manipulate the view rather than produce an image.
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: 'check that geometry came out the way you intended' and notes it is more reliable than reasoning about the feature tree. It does not explicitly list alternatives, but the purpose is so distinct that an agent can infer when to use it. A brief mention of when not to use it (e.g., for measuring distances) would have made it a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_select_elementsA
Highlight elements in the CATIA window. Purely visual - useful to show a person at the workstation which geometry you are about to modify.
| Name | Required | Description | Default |
|---|---|---|---|
| tokens | Yes | Reference tokens to highlight together. | |
| replace | No | Clear the existing selection first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral context beyond annotations by noting the action is 'purely visual' and tied to upcoming modifications. It does not contradict the annotations: readOnlyHint=false is consistent with selection being a UI state change. It could further explain side effects on the current selection, but for a highlight tool this is adequate.
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 no filler. The core purpose and key limitation ('purely visual') are front-loaded, making the tool easy to scan 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?
For a simple two-parameter tool with no output schema and fully documented parameters, the description is nearly complete. It could mention that selection state is changed or that replace affects existing selection, but those details are already in the 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 description coverage is 100%, so the schema already documents both 'tokens' and 'replace'. The description adds no additional parameter-level meaning, which is acceptable given the schema fully covers 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 states a specific action ('Highlight elements in the CATIA window') and gives a clear use case. It does not explicitly differentiate from siblings like catia_show_element, but 'purely visual' helps separate it from geometry-modifying or visibility-toggle 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?
It provides clear context: this is for visually showing a person at the workstation which geometry is about to be modified. It does not name alternatives or explicitly state when not to use it, but the intended scenario is clear enough for a simple selection tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_set_active_bodyAIdempotent
Choose which body (or geometrical set) new features are added to, by setting CATIA's in-work object. Everything created afterwards lands there.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Body or geometrical set name, e.g. 'PartBody' or 'Body.2'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
It reveals the key stateful behavior: it changes CATIA's in-work object and redirects all subsequent feature creation, which is useful context beyond the idempotentHint=true and destructiveHint=false annotations. It doesn't cover error cases or persistence across sessions, but those are secondary for a setter.
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 no filler; the core action and the consequence are front-loaded. Every word 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 one-parameter state setter with full schema coverage and supporting annotations, the description covers the purpose and the lasting effect. It would be slightly stronger if it pointed to catia_gsd_set_active_geoset for the alternative case, so it isn't a perfect 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 100% schema coverage and an example in the parameter description, the schema already documents the name parameter. The tool description adds no additional semantics about the parameter, so 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?
The description names a specific verb ('Choose/set'), the resource (body or geometrical set), and the observable effect (new features afterwards land in it). It doesn't explicitly distinguish from the sibling catia_gsd_set_active_geoset, so it is clear but not sibling-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?
No guidance is given about when to use this tool instead of catia_gsd_set_active_geoset or before creating features. The description only states the effect, leaving the agent to infer when it should be called.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_set_background_colorAIdempotent
Set the 3D viewer's background colour. A white background gives much more legible screenshots than CATIA's default gradient.
| Name | Required | Description | Default |
|---|---|---|---|
| red | No | Red, 0 to 1. | |
| blue | No | Blue, 0 to 1. | |
| green | No | Green, 0 to 1. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint=true and destructiveHint=false, but the description adds no behavioral context beyond restating the operation. It doesn't clarify whether the setting applies to the active viewer only, all windows, or persists across sessions.
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 no redundancy. The main action is front-loaded, and the second sentence adds a practical tip that is directly relevant to a common 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?
For a simple setter with fully documented parameters and helpful annotations, the description is mostly complete. It lacks explicit scope details (e.g., which viewer is affected), but this is inferable and the screenshot advice provides useful context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter documented as a number from 0 to 1. The description adds no parameter-level information, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'set' and the specific resource '3D viewer's background colour'. It is distinguishable from sibling tools like catia_set_render_style and catia_screenshot by naming the exact resource being modified.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a usage context ('A white background gives much more legible screenshots') but does not explicitly state when to use this tool versus alternatives, nor does it mention any exclusions or comparisons with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_set_batch_modeAIdempotent
Suspend or resume CATIA's screen refresh and file-alert dialogs. Turning batch mode on makes long sequences of modelling calls markedly faster and stops modal save/overwrite prompts from blocking automation. Always turn it back off when you are done, or the user is left with a frozen-looking viewport.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | True to suspend refresh and alerts, False to restore. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and readOnlyHint=false. The description adds behavioral details beyond annotations: it changes state (suspend/resume) and warns about the persistent side effect of a frozen-looking viewport if left on. This helps the agent understand the toggle's non-ephemeral nature and the need to reset it.
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, each earning its place: the first states the purpose, the second explains the benefit, and the third provides a critical warning. The most important information is front-loaded, and there is no wasted text 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 a simple one-parameter toggle with no output schema, the description covers what, why, when, and a warning. It doesn't mention error conditions or return values, which are not expected for such a tool. The warning about turning it off is crucial for correct usage and is included, making the description sufficient for an agent to call it safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the single boolean parameter well ('True to suspend refresh and alerts, False to restore'), with 100% coverage. The description adds meaning by explaining that turning it on makes long sequences faster and stops prompts, giving the agent a clear rationale for setting true vs false. This is a bonus over the schema, not a redundancy.
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 'Suspend or resume' with a specific resource (CATIA's screen refresh and file-alert dialogs). It distinguishes this tool from siblings by focusing on batch mode toggling, which is unique among the many modeling tools listed. There is no ambiguity about the tool's function.
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 explicit context on when to use it: 'long sequences of modelling calls' and explains the benefit (faster execution, stops modal prompts from blocking automation). It also includes a critical caution: 'Always turn it back off when you are done, or the user is left with a frozen-looking viewport.' However, it doesn't explicitly name alternative tools or situations where it should not be used, so it's strong but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_set_design_table_configurationB
Select which row of a design table drives the model, then recompute.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Design table relation name. | |
| configuration | Yes | 1-based row number to apply. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, so it is known to be a mutating operation. The description adds the recompute side effect, which is useful. However, it does not disclose error conditions (e.g., invalid row number) or whether the change is reversible. It adds some context beyond annotations but not richly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no filler. It front-loads the action and includes the recompute consequence, earning its place entirely.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description covers the action and its direct effect (recompute). It lacks explicit mention of prerequisites like an active document or the need to verify the row exists, but these are relatively minor for an experienced user. Overall, it is fairly complete for the tool's simplicity.
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 both parameters have descriptive text ('Design table relation name' and '1-based row number to apply'). The description does not add significant meaning beyond what the schema provides; it merely paraphrases the configuration parameter as 'which row drives the model.'
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 ('Select') and resource ('row of a design table drives the model') and includes the side effect of recomputing. It is clear enough to distinguish from siblings like catia_list_design_tables (list) and catia_add_design_table (add), though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 does not mention prerequisites like having an active document or using catia_list_design_tables first to choose a valid row. The only implicit context is that a design table must exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_set_document_propertiesA
Set the product identity fields CATIA stores on a Part or Product document: part number, revision, definition, nomenclature and description. These are what flow into a bill of materials and a drawing title block.
| Name | Required | Description | Default |
|---|---|---|---|
| revision | No | Revision string. | |
| definition | No | Definition / description field. | |
| description | No | Reference description. | |
| part_number | No | Part number. | |
| nomenclature | No | Nomenclature field. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations are all false and thus provide no behavioral information stub: readOnlyHint=false, idempotentHint=false, destructiveHint=false. The description only restates that the tool 'sets' fields, which is tautological, and does not disclose whether it operates on the active document, what happens when a field is omitted or set to an empty string, whether it overwrites existing values, or if any document type restrictions apply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero redundancy. The first sentence introduces the action, resource, and field list; the second gives the motivational context. Every word earns its place, and the core information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 5 parameters and no output schema, an agent needs to know which document is modified (active document?), whether empty values clear fields or leave them untouched, and what confirmation is expected. None of this is mentioned. The description covers what the fields are but not how the tool behaves at runtime, which is a meaningful gap for a CATIA automation 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 100%, so each parameter already has a description (e.g., 'Part number.', 'Revision string.'). The tool description adds collective framing by calling them 'product identity fields' and explaining their downstream purpose, but it provides no additional per-parameter meaning, formatting constraints, or interaction rules. The baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Set') and a concrete resource ('product identity fields CATIA stores on a Part or Product document'), then enumerates the exact fields: part number, revision, definition, nomenclature and description. This precisely separates it from generic parameter-setting siblings like catia_set_parameter and gives the agent a clear mental model.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: these fields flow into a bill of materials and a drawing title block, so an agent can decide when to use the tool. It does not explicitly name alternatives or exclusions, but the scope is evident and no competing sibling handles this exact set of identity fields.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_set_parameterA
Change a parameter's value and recompute the model. Give either a number, or a string with a unit such as '25mm' or '30deg' - the string form is safer because CATIA does the unit conversion itself.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Exact parameter name. | |
| value | No | Numeric value, in CATIA's internal units (mm, deg). | |
| update | No | Recompute the model afterwards. | |
| text_value | No | Value with an explicit unit, e.g. '25mm', '3.5in', '45deg'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses that the model is recomputed after the change and explains that the string form is safer because CATIA performs unit conversion. This adds meaningful behavior context that is not visible in the annotations or schema alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The core action is front-loaded, and the unit guidance is directly relevant to correct invocation. 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 setter with a 100%-covered schema and no output schema, the description provides enough for correct invocation: the action, the value alternatives, and the recompute behavior. It does not cover failure cases like unknown parameter names, but those are not essential for a straightforward set 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, but the description adds practical guidance on the two value formats: numeric values versus strings with units. It explains why the string form is preferred, which goes beyond the raw schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: changing a parameter's value and recomputing the model. It clearly distinguishes this tool from sibling parameter tools like catia_get_parameter, catia_create_parameter, and catia_delete_parameter by focusing on the modify 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 gives clear context for when to use the tool: whenever an existing parameter's value needs to be changed. It does not explicitly name alternatives or exclusion cases, so it falls short of the top score, but the intended use is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_set_relation_activeA
Activate or deactivate a formula or rule. Deactivating a formula is what lets you set its target parameter by hand again.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Relation name. | |
| active | Yes | True to activate, False to deactivate. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, so the mutation behavior is expected. The description adds useful functional context by explaining what deactivation enables (manual control of a parameter), but it does not disclose further side effects, persistence, or implications for rules. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences front-load the core action and then provide the key use-case insight. There is no filler or redundant repetition of the schema or title.
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 mutation tool with full schema coverage and no output schema, the description provides the essential domain context. An agent knows what to call, why it matters, and what the boolean parameter accomplishes.
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%: 'name' is documented as the relation name and 'active' as true/false. The description reinforces that these apply to formulas/rules but does not add meaningful detail beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb-resource pair: 'Activate or deactivate a formula or rule.' It also explains the practical consequence of deactivation, making the tool's purpose both actionable and distinct from relation creation, deletion, or listing.
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 clearly conveys when to use this tool: deactivate a formula when you want to set its target parameter by hand again. It does not explicitly name alternatives or exclusion cases, but the usage context is unambiguous enough for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_set_render_styleA
Change how the model is drawn: shaded, shaded with edges, wireframe, or a few CATIA variants. Falls back to the interactive command when the release does not expose the property.
| Name | Required | Description | Default |
|---|---|---|---|
| style | No | shaded | shaded_with_edges | wireframe | hidden_line_removal | shaded_with_material. | shaded_with_edges |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutating operation (readOnlyHint false, destructiveHint false). The description adds value by specifying the behavior: it changes the drawing style and, critically, falls back to the interactive command when the property is not exposed. This fallback is a behavioral trait not captured in annotations, providing extra context about robustness and failure mode.
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 purpose and options, followed by a concise fallback note. No wasted words, efficient and easy to parse. The structure is ideal for an agent scanning multiple tools.
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 setter with one parameter and no output schema, the description covers the essential context: what it does, the options, and a fallback behavior. Annotations cover safety. Nothing an agent needs to invoke it correctly is missing. The fallback note addresses potential environment variability, making it complete for 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 100% – the parameter 'style' is fully documented with valid values. The description adds a high-level summary of those values ('shaded, shaded with edges, wireframe, or a few CATIA variants') but does not go beyond the schema. It reinforces the list but adds no new semantic detail, so 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?
The description clearly states the tool's purpose: 'Change how the model is drawn' – a specific verb and resource. It enumerates the style options (shaded, shaded with edges, wireframe, CATIA variants), making it unambiguous what the tool does. It stands apart from sibling tools like catia_set_view or catia_fit_all because it specifically targets render style.
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 (to change visual representation) but provides no explicit alternatives or when-not-to-use guidance. It does mention a fallback to the interactive command, which is a usage nuance but not about selecting this tool over siblings. Lacks explicit routing compared to tools like catia_get_calls that name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_set_viewAIdempotent
Point the camera at a standard orientation - front, back, top, bottom, left, right, isometric, iso_rear or dimetric - and fit the model in the window.
| Name | Required | Description | Default |
|---|---|---|---|
| fit | No | Zoom to fit afterwards. | |
| orientation | No | front | back | top | bottom | left | right | isometric | iso_rear | dimetric. | isometric |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and destructiveHint=false, covering safety. The description adds the behavioral specifics: it changes the camera to a standard orientation and optionally fits the model. It does not contradict annotations and provides useful context about the tool's effect beyond the name.
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, efficient sentence that front-loads the purpose (point the camera) and enumerates the allowed orientations. No wasted words; it is both 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?
For a simple view command with fully documented parameters and no output schema, the description and schema together cover everything an agent needs: the action, the orientation options, and the fit behavior. There are no missing requirements or ambiguous context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both 'fit' and 'orientation' already documented with descriptions and enumerated values. The tool description does not add any parameter semantics beyond what the schema provides. Baseline 3 is appropriate because the schema carries the full weight.
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: point the camera at a standard orientation (listing all nine allowed values) and fit the model. This distinguishes it from siblings like catia_zoom (which zooms) and catia_fit_all (which fits without orientation). The verb+resource is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when this tool is appropriate: when a standard orientation and fit are desired. However, it does not explicitly mention alternatives or exclusions (e.g., catia_zoom for custom zoom levels, catia_fit_all for fit-only). The context is clear but not fully explicit about 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.
catia_shaftA
Revolve a sketch profile around an axis to make a solid of revolution. The axis is the sketch's centre line if it has one (see the axis flag on catia_sketch_line), otherwise pass an explicit axis reference.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | Optional reference token for the revolution axis, e.g. a construction line or 'name:Line.1'. Omit to use the sketch's centre line. | |
| name | No | Name for the resulting feature. | |
| angle | No | Revolution angle in degrees. | |
| sketch | No | Profile sketch name. | |
| second_angle | No | Angle revolved the other way, degrees. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutating operation (readOnlyHint=false). The description adds the axis-resolution behavior—preferring the centre line—which is useful. However, it does not disclose edge cases like open profiles, invalid axes, or what happens if neither a centre line nor an explicit axis is provided.
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. The primary operation is front-loaded in the first sentence, and the second efficiently explains the axis fallback logic. Every phrase 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 100% schema coverage, a clear operation statement, and adequate axis-handling guidance, an agent has enough to invoke the tool correctly. A small gap remains around the requirement of a closed profile or error behavior, but this is not critical 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 baseline is 3. The description's only parameter-related addition is the cross-reference to catia_sketch_line's axis flag and the rule for omitting 'axis'. This adds marginal value beyond the schema but does not compensate for gaps, since there are none.
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 ('Revolve'), a clear resource ('a sketch profile around an axis'), and the expected outcome ('a solid of revolution'). It implicitly distinguishes from surface revolve (catia_gsd_revolve) and removal revolve (catia_groove) by emphasizing 'solid' and 'make', but it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context on axis selection: use the sketch's centre line when present, otherwise pass an explicit axis reference. It also cross-references catia_sketch_line's axis flag. It does not discuss when to choose this tool over groove or other revolve-style operations, so it stops short of full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_shellA
Hollow the solid out to a thin wall, removing the named faces to leave the interior open. Give at least one face token, or the result is a fully closed hollow body.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the resulting feature. | |
| thickness | No | Wall thickness inwards, in mm. | |
| faces_to_remove | Yes | Reference tokens of the faces to open, e.g. ['face@0,0,40']. | |
| outward_thickness | No | Additional wall thickness outwards, in mm. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses key behaviors: the operation removes the named faces, leaves the interior open, and produces a closed hollow body if no face token is supplied. This adds practical behavioral context that annotations alone do not provide, and it does not contradict 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 tightly written sentences present the main action first, then the result, then the critical warning. Every sentence carries meaning and there is no redundant wording.
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 operation's effect and the key pitfall, while the schema documents all parameters and defaults. The only minor gap is that it does not explicitly state which solid body is operated on, but in context this is likely the active body, and the description's language implies a current solid.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all parameters at 100% coverage, which sets a baseline of 3. The description adds value by clarifying that at least one face token is required, effectively adding a non-empty constraint to the faces_to_remove array that the schema does not explicitly express.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Hollow') and resource ('the solid') and clearly describes the result: a thin-walled body with named faces removed to leave the interior open. This uniquely identifies a shell operation and distinguishes it from sibling tools like catia_pocket, catia_thickness, or catia_remove_face.
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 clearly conveys when to use the tool: when you want to hollow a solid into a thin wall and open specific faces. It also provides a critical condition for correct use: 'Give at least one face token, or the result is a fully closed hollow body.' It does not explicitly compare with alternatives, but the context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_show_elementBIdempotent
Make an element visible in the 3D view. Also the fix when catia_list_faces or catia_list_edges returns nothing: CATIA's search skips hidden geometry.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | Reference token of the element to show. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include idempotentHint=true, readOnlyHint=false, and destructiveHint=false. The description adds the practical note about search skipping hidden geometry, which is useful context. However, for a mutation-like tool (showing an element), the description does not disclose potential side effects or requirements like token validity or document state. It does not contradict annotations, but it does not fully elaborate beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, concise and front-loaded with the main action. The second sentence adds a specific usage tip that is relevant but not critical. No unnecessary information 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?
Given the tool is relatively simple with one parameter and no output schema, the description covers the primary action and a key usage scenario. However, it does not mention any prerequisites or potential errors, and the connection to list commands is slightly cryptic. Overall, it is adequate but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the token parameter is described as a reference token. The description does not add further detail about the token format or how to obtain it, but since the schema already provides the meaning, a baseline of 3 is appropriate. No extra semantic guidance is provided.
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 clear purpose: making an element visible in the 3D view, with a specific verb and resource. It also hints at a side effect (fixing list commands). However, it does not explicitly distinguish from its sibling catia_hide_element, though the opposite action is implied.
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 clear context for when to use it: when catia_list_faces or catia_list_edges return nothing, implying hidden geometry. It does not state when not to use it or explicitly mention alternatives, but the context is strong enough for an agent to infer the appropriate use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_sketch_arcA
Add a circular arc, given its centre, radius and the start and end angles measured counter-clockwise from the sketch's H axis.
| Name | Required | Description | Default |
|---|---|---|---|
| radius | Yes | Radius in mm. | |
| sketch | No | Target sketch. | |
| center_x | Yes | Centre H coordinate, mm. | |
| center_y | Yes | Centre V coordinate, mm. | |
| end_angle | No | End angle in degrees. | |
| start_angle | No | Start angle in degrees. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only says 'Add', which implies a mutating operation consistent with readOnlyHint=false. It does not disclose prerequisites (e.g., active sketch, targeting via the 'sketch' parameter), side effects, or error conditions. With annotations providing no behavioral hints, the description carries the full burden but does not deliver.
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 concise sentence with zero redundancy. It front-loads the action and immediately provides the defining parameters and angle convention, making it easy to scan and interpret.
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 6 parameters and no output schema, the description covers the geometric meaning but omits how the target sketch is specified (the 'sketch' parameter) and whether a sketch must be active. It is adequate for a simple geometry operation but leaves some operational context to be inferred.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes each parameter with units (100% coverage), but the description adds a key semantic: angles are measured counter-clockwise from the sketch's H axis. This convention is not present in the schema and is essential for correct invocation.
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 ('Add') and resource ('circular arc'), with the defining geometry (centre, radius, start/end angles). It clarifies the angle convention (counter-clockwise from H axis), which distinguishes it from siblings like catia_sketch_circle and catia_sketch_ellipse without opening schemas.
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: use this when you need a partial circular arc in a sketch. However, it does not explicitly mention when not to use it or compare with alternatives such as catia_sketch_circle for full circles, leaving the selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_sketch_centered_rectangleA
Add a closed rectangle centred on a point, given its width and height.
| Name | Required | Description | Default |
|---|---|---|---|
| width | Yes | Total width along H, mm. | |
| height | Yes | Total height along V, mm. | |
| sketch | No | Target sketch. | |
| center_x | Yes | Centre H coordinate, mm. | |
| center_y | Yes | Centre V coordinate, mm. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate that this is not read-only, and the description confirms it adds geometry rather than merely modifying state. It adds the closed-shape and center-anchored behavior, but says nothing about sketch targeting, coordinate frame H/V, or side effects if a sketch is not specified.
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 compact sentence front-loads the action and shape, then the defining inputs. There is no filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple geometry-creation tool with fully documented parameters, the description is mostly adequate. The notable omission is the behavior of the optional sketch parameter (what happens if omitted), and with no output schema the agent is not told what the call returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline applies. The description adds the relationship between the center point and width/height, but the schema already documents units (mm), H/V orientation, and the optional target sketch.
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 concrete action ('Add') and a specific resource ('a closed rectangle centred on a point') with the defining width and height. This conveys the shape and center anchoring, though it does not explicitly call out sibling catia_sketch_rectangle as the non-centered alternative.
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 'centred on a point, given its width and height' implies the use case: a centered rectangle defined by center coordinates and dimensions. However, it gives no explicit when/when-not guidance, no prerequisites such as an active sketch, and no mention of when catia_sketch_rectangle would be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_sketch_circleB
Add a full circle to the current sketch.
| Name | Required | Description | Default |
|---|---|---|---|
| radius | Yes | Radius in mm. | |
| sketch | No | Target sketch. | |
| center_x | Yes | Centre H coordinate, mm. | |
| center_y | Yes | Centre V coordinate, mm. | |
| construction | No | Construction geometry. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'current sketch' but the schema includes a 'sketch' parameter that allows targeting another sketch, creating ambiguity about the tool's actual behavior. No annotations cover these behavioral details (readOnlyHint is false, but no further annotations). The description does not disclose whether the 'sketch' parameter overrides the current sketch, nor does it mention the 'construction' parameter or coordinate system interpretation. With annotations providing little beyond mutation, the description carries the burden and falls short.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence that is front-loaded with the core action. There is no filler or redundancy; every word contributes to the purpose. This is an exemplary concise description.
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 (5 parameters, no output schema, sparse annotations), the description is insufficient. It fails to explain the coordinate system (H/V relative to sketch origin), the behavior of the 'sketch' parameter vs. the stated 'current sketch', and the role of 'construction'. An agent cannot reliably call the tool without assumptions, as several critical behavioral gaps remain uncovered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning to any parameter; it does not explain 'center_x'/'center_y' coordinates beyond what the schema says ('Centre H/V coordinate, mm.') nor does it clarify the 'sketch' or 'construction' semantics. It neither adds value nor contradicts the schema, so the baseline score 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 uses a specific verb ('Add') and resource ('a full circle') with an explicit location ('current sketch'). It clearly differentiates from sibling tools like catia_sketch_arc and catia_sketch_ellipse, and the 'sketch' wording distinguishes it from GSD circle tools. The purpose is immediately 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 usage context is implied: it is meant for adding a full circle to a sketch. However, there is no explicit guidance on when to choose this over sibling tools like catia_sketch_arc or catia_sketch_ellipse, and no mention of prerequisites such as an active sketch or the 'sketch' parameter. The description implies usage but provides no exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_sketch_constraintA
Add a constraint to the current sketch. Dimensional kinds (distance, length, radius, diameter, angle) take a value; geometric kinds (horizontal, vertical, parallel, perpendicular, tangent, coincidence, concentric, symmetry) do not. Element names come from catia_sketch_geometry; append '.start', '.end' or '.center' to reference a point of an element.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | One of: horizontal, vertical, radius, diameter, length, distance, angle, parallel, perpendicular, tangent, coincidence, concentric, symmetry. | |
| value | No | Dimension value: mm for lengths, degrees for angles. | |
| sketch | No | Target sketch. | |
| elements | Yes | Sketch element names, e.g. ['Line.1'] or ['Line.1','Line.3'] or ['Line.1.start','Circle.1.center']. | |
| reference_only | No | Create a driven (measured) dimension instead of a driving one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=false, so the description's statement of adding a constraint is consistent. The description adds the context of 'current sketch' and the distinction between dimensional and geometric constraints, but it does not disclose potential side effects, failure modes, or reversibility beyond what the annotations imply. It provides minimal additional behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences. The first sentence states the primary purpose, and the second provides critical details about parameter usage and element referencing. There is no filler, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the key aspects of using the tool: how to specify constraint kinds, when a value is needed, and how to reference element points. It implicitly assumes an active sketch. The 'sketch' parameter and 'reference_only' are documented in the schema, so they don't need repeating. However, it does not explicitly mention prerequisites like having geometry created first or that the tool will fail if constraints conflict, but these are minor gaps given the schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all parameters with descriptions, including the 'kind' enum and examples for 'elements'. The description adds value by explicitly explaining which kinds require a 'value' and how to reference points via '.start', '.end', or '.center' suffixes. This goes beyond the schema's generic examples and helps an agent construct correct arguments.
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 constraint') and the resource ('to the current sketch'). It differentiates between dimensional and geometric kinds, which is a specific behavior that distinguishes it from other constraint tools like assembly constraints. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage in the context of sketch geometry and mentions that element names come from catia_sketch_geometry, but it does not explicitly state when to use this tool over alternatives like catia_assembly_constraint or when not to use it. It lacks explicit exclusions or conditions, but the context is clear enough for an agent to infer the primary use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_sketch_delete_elementBDestructive
Delete one 2D element from a sketch.
| Name | Required | Description | Default |
|---|---|---|---|
| sketch | No | Target sketch. | |
| element | Yes | Element name, e.g. 'Line.3'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate destructiveHint=true and readOnlyHint=false, so the description adds no new behavioral context. It does not mention that deleting an element may affect constraints, dependent geometry, or downstream features, nor does it explain whether the action is undoable or if the sketch must be active.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no filler. It is front-loaded with the action and resource, and every word 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?
Although the tool is simple)Skip parameter count and schema coverage are high, the description is too thin for a destructive operation. It does not explain what happens when the optional 'sketch' parameter is omitted, how sketch context is resolved, or how this relates to deleting elements via catia_delete_element. Given the destructive nature, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds a small amount of context by describing the element as '2D', and the schema already provides an example ('Line.3') and the 'Target sketch' description, so no major parameter guidance is missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Delete'), a clear resource ('one 2D element from a sketch'), and implicitly distinguishes this from the more generic sibling catia_delete_element by scoping to 2D sketch geometry. It is unambiguous about what operation is performed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as catia_delete_element, nor any explanation of prerequisites like needing an active sketch or selecting a sketch first. The phrase 'from a sketch' implies context, but the agent is not told when this tool is preferred or not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_sketch_ellipseA
Add an ellipse or elliptical arc to the current sketch.
| Name | Required | Description | Default |
|---|---|---|---|
| sketch | No | Target sketch. | |
| center_x | Yes | Centre H coordinate, mm. | |
| center_y | Yes | Centre V coordinate, mm. | |
| rotation | No | Rotation of the major axis from H, in degrees. | |
| end_angle | No | End angle, degrees. | |
| start_angle | No | Start angle, degrees. | |
| major_radius | Yes | Semi-major axis, mm. | |
| minor_radius | Yes | Semi-minor axis, mm. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only, not idempotent, and not destructive, so the description needs only modest behavioral context. It adds that the operation targets the current sketch and can create either a full ellipse or an elliptical arc, but it does not clarify how the sketch parameter overrides the current-sketch behavior or what happens if no sketch is active.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence that leads with the primary action and object. There is no filler, and it is appropriately front-loaded; it says exactly what the tool does without redundantly restating the tool 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 an 8-parameter tool with no output schema, the description is minimal but viable: it communicates the core purpose and target context, with parameter semantics fully delegated to the schema. It lacks richer context like coordinate system, relationship to start/end angles, or failure behavior when no sketch is active, which leaves clear gaps but does not make the tool unusable.
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 8 parameters are already explained with units and defaults in the schema. The description adds no parameter-level information, which is acceptable given the baseline of 3 for fully covered schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Add'), a concrete resource ('ellipse or elliptical arc'), and a clear target ('current sketch'). This distinguishes it from sibling tools like catia_sketch_circle or catia_sketch_arc, making selection unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as catia_sketch_arc, catia_sketch_circle, or catia_sketch_spline. It mentions 'current sketch' but does not state prerequisites like requiring an active sketch or how to select a different sketch.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_sketch_geometryARead-only
List the 2D elements of a sketch with their names, types and coordinates, plus its constraints. Use the element names in catia_sketch_constraint.
| Name | Required | Description | Default |
|---|---|---|---|
| sketch | No | Sketch name. Defaults to the most recent sketch. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds value beyond annotations by disclosing the full content of the returned data (element names, types, coordinates, plus constraints), which is the primary behavioral trait an agent needs to know.
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. The core scoping statement is front-loaded, and the follow-up sentence adds routing value. Every word 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-only listing tool with one optional parameter and no output schema, the description adequately characterizes the return content. It does not mention coordinate reference frame or formatting of the list, but these are minor omissions for a tool of this simplicity.
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 schema already explains the single 'sketch' parameter including the default to the most recent sketch. The description adds no further parameter detail, so the baseline of 3 applies since the schema carries the burden.
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 ('List') plus the resource ('2D elements of a sketch') and details what is returned (names, types, coordinates, constraints). This clearly distinguishes it from sibling listing tools like catia_list_features or catia_describe_tree, and the constraint mention separates it from creation tools like catia_sketch_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 second sentence ('Use the element names in catia_sketch_constraint') gives concrete downstream guidance and implies when the output is needed. However, it does not explicitly state when to prefer this tool over alternatives such as catia_list_features or when not to use it, so it falls short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_sketch_lineA
Add a straight line between two points in the current sketch. Set construction=true for a reference line that does not take part in the profile, and axis=true to make it the sketch's revolution axis (what catia_shaft and catia_groove revolve around).
| Name | Required | Description | Default |
|---|---|---|---|
| x1 | Yes | Start H coordinate, mm. | |
| x2 | Yes | End H coordinate, mm. | |
| y1 | Yes | Start V coordinate, mm. | |
| y2 | Yes | End V coordinate, mm. | |
| axis | No | Use this line as the sketch's revolution axis. | |
| sketch | No | Target sketch. | |
| construction | No | Make it a construction (reference) line. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, so the description carries the burden of behavioral disclosure. It does add non-obvious behavior: construction lines do not take part in the profile, and axis=true has downstream meaning for shaft/groove creation. However, it does not disclose invocation prerequisites, error behavior, or what happens if no sketch is active, so coverage is only partial.
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. The first sentence states the core action, and the second efficiently covers the two optional modes plus their downstream consequences.
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 line tool with four required coordinates and two booleans, the core behavior is covered well. But with no output schema and no annotations carrying safety details, the description should at least mention the active-sketch prerequisite and what the call returns or confirms; both are 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?
The schema already documents all seven parameters, but the description adds meaning beyond the schema by explaining that construction lines 'do not take part in the profile' and that axis=true is what catia_shaft and catia_groove use as the revolution axis. This gives an agent useful decision support for setting the boolean parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Add') and resource ('a straight line between two points in the current sketch'), and the 'current sketch' qualifier clearly separates it from GSD surface tools like catia_gsd_line. It also flags the two special line modes, so an agent can understand what this tool contributes at a glance.
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 useful contextual hints such as 'current sketch', construction vs profile participation, and axis relevance to catia_shaft and catia_groove. However, it never explicitly states when to prefer this tool over sibling sketch tools like catia_sketch_polyline or catia_sketch_geometry, nor does it mention exclusions or prerequisites like 'requires an open sketch'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_sketch_pointA
Add a 2D point to the current sketch. Points are useful as hole centres and as constraint anchors.
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | H coordinate in the sketch plane, in mm. | |
| y | Yes | V coordinate in the sketch plane, in mm. | |
| sketch | No | Target sketch. Defaults to the open one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false (a write operation) and destructiveHint=false. The description aligns by saying 'Add', but adds no further behavioral detail such as whether the point becomes a separate feature, potential errors, or return value. Since annotations cover the basic safety profile, the description adds only the use-case context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The action and scope are front-loaded, and the use-case note is concise. Every word 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 point-creation tool, the description covers the essentials. It implies the need for an open sketch (via 'current sketch') and the schema provides defaults. It does not mention return values, but no output schema exists, so this is acceptable. It could have explicitly stated the sketch prerequisite, but the schema's default parameter mitigates this.
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% – x, y, and sketch are all described. The description does not add parameter-specific meaning; it only notes that points are useful for hole centres and anchors, which is general context. It does not compensate for any schema gaps because there are none.
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 ('Add'), the resource ('a 2D point'), and the scope ('to the current sketch'), which distinguishes it from sibling sketch tools like line, circle, or spline. It is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a point is needed (e.g., hole centres, constraint anchors) and mentions 'current sketch', suggesting an open sketch is required, but it does not explicitly contrast with alternatives or state prerequisites like 'ensure a sketch is open before calling'. It offers context but no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_sketch_polygonB
Add a closed regular polygon (hexagon, octagon and so on) inscribed in or circumscribed about a circle.
| Name | Required | Description | Default |
|---|---|---|---|
| sides | Yes | Number of sides. | |
| radius | Yes | Radius in mm. | |
| sketch | No | Target sketch. | |
| center_x | Yes | Centre H coordinate, mm. | |
| center_y | Yes | Centre V coordinate, mm. | |
| rotation | No | Rotation of the first vertex from H, degrees. | |
| circumscribed | No | True for across-flats (radius is the inscribed circle, as with a hex nut), False for across-corners. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate the operation is not read-only and not destructive, providing minimal behavioral insight. The description adds that the polygon is closed and related to a circle, but does not explain side effects like appending to a sketch, auto-constraining, or interaction with the current sketch state. With little annotation support, this leaves a meaningful gap for an agent.
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 entire description is a single efficient sentence that front-loads the core purpose ('Add a closed regular polygon') and mentions both variation options (inscribed/circumscribed). There is no redundant or optional content; every word 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?
Given the schema fully covers parameters and there is no output schema, the description is adequate for a simple creation action. However, it does not explain how the tool locates the target sketch (e.g., default behavior, whether an active sketch is needed) or provide any usage context beyond the core action. This leaves room for an agent to misinterpret prerequisites.
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 each parameter. The description adds no new parameter details beyond the terms 'inscribed' and 'circumscribed', which align with the circumscribed parameter. Baseline 3 is appropriate since the schema carries the semantic weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Add') and resource ('closed regular polygon') and highlights the inscribed/circumscribed distinction, which clearly differentiates it from sibling sketch tools like rectangle or polyline. An agent can immediately understand what this tool does and how it differs from other 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 no guidance on when to use this tool versus alternatives such as catia_sketch_rectangle or catia_sketch_polyline. It also does not state prerequisites, such as needing an active sketch or how the target sketch is selected. The agent must infer usage context from the schema or sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_sketch_polylineA
Add a chain of connected lines through a list of points, optionally closing it back to the first point. Shared end points are created explicitly, so a closed polyline is immediately usable as a pad or pocket profile.
| Name | Required | Description | Default |
|---|---|---|---|
| closed | No | Join the last point back to the first. | |
| points | Yes | Points as [[x1,y1],[x2,y2],...] in sketch coordinates, mm. | |
| sketch | No | Target sketch. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond the annotations by noting that 'Shared end points are created explicitly,' which is a meaningful side-effect detail. It also explains the optional closing behavior. Annotations only indicate non-read-only and non-destructive, so the extra detail about endpoint creation is valuable and not redundant.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The first sentence front-loads the core action, and the second sentence adds a concrete benefit. Every word contributes to understanding the tool's purpose and behavior.
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 and the complete parameter schema, the description covers the essential behavior and use case. It does not mention prerequisites like having an active sketch, but the 'sketch' parameter and schema cover that. No output schema exists, so return-value explanation is not required. Minor gap around prerequisites but otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already documented in the schema. The description mostly restates the 'closed' parameter as 'optionally closing it back to the first point' and does not add new meaning to the 'points' or 'sketch' parameters. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Add a chain of connected lines through a list of points, optionally closing it back to the first point.' It distinguishes the tool from siblings by specifying 'chain of connected lines' and the closed-polyline use case for pad/pocket profiles, which separates it from single-line, spline, and polygon 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 use case ('immediately usable as a pad or pocket profile') and implies when to use it (when a connected chain of lines is needed). However, it does not explicitly name alternatives or state when not to use this tool, such as preferring a spline for smooth curves or a polygon for a closed figure.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_sketch_rectangleB
Add a closed rectangle from two opposite corners. The four lines share explicit corner points, so the profile is genuinely closed and can be padded or pocketed straight away.
| Name | Required | Description | Default |
|---|---|---|---|
| x1 | Yes | First corner H coordinate, mm. | |
| x2 | Yes | Opposite corner H coordinate, mm. | |
| y1 | Yes | First corner V coordinate, mm. | |
| y2 | Yes | Opposite corner V coordinate, mm. | |
| sketch | No | Target sketch. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false, destructiveHint=false, and idempotentHint=false, implying a mutating operation that is not idempotent. The description adds behavioral value by confirming the profile is 'genuinely closed' and can be padded/pocketed immediately, which is a key behavioral trait. However, it doesn't disclose potential side effects like constraints added, or if the tool modifies the sketch in any other way.
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, tight and no fluff. The core purpose is front-loaded with the closed-profile benefit stated immediately. Every word adds value, though a third sentence could clarify the 'sketch' parameter, but that's minor.
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 is moderate (5 params, 1 optional), the description covers the main purpose and the key benefit (closed profile). However, it doesn't explain how the optional 'sketch' parameter is used, nor whether the tool auto-selects a sketch if not provided. It also doesn't mention return value, but there is no output schema, so that's acceptable. The description is adequate but not exhaustive for an agent to fully understand preconditions.
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 parameters are documented in the schema. The description doesn't add new parameter meaning beyond what the schema provides, but it does reinforces that the tool uses opposite corners, which is consistent with the schema. The 'sketch' parameter is optional and not explained in the description, but the schema covers its purpose minimally.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a closed rectangle from two opposite corners, which is specific and distinct from siblings like catia_sketch_centered_rectangle and catia_sketch_polygon. It also mentions the four lines share explicit corner points, reinforcing the closed profile aspect. It doesn't explicitly name the sibling alternatives, but the purpose is clear enough to distinguish it.
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 in a sketching context and emphasizes the closed profile is ready for padding or pocketing, which suggests when to use this over other sketch tools. However, it doesn't explicitly state when not to use it or contrast with centered rectangle, polygon, or other geometry tools. The closed-profile benefit is a clear usage hint but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_sketch_slotA
Add a closed slot (obround) profile: two parallel lines capped by semicircles, defined by the centres of the two end arcs and the slot radius.
| Name | Required | Description | Default |
|---|---|---|---|
| x1 | Yes | First arc centre H coordinate, mm. | |
| x2 | Yes | Second arc centre H coordinate, mm. | |
| y1 | Yes | First arc centre V coordinate, mm. | |
| y2 | Yes | Second arc centre V coordinate, mm. | |
| radius | Yes | Slot radius (half its width), mm. | |
| sketch | No | Target sketch. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate it is not read-only, not idempotent, and not destructive, which provides minimal safety context. The description adds that it 'adds' a profile, implying a write operation, but does not disclose prerequisites (e.g., active sketch), behavior when a sketch is not provided, or whether it modifies existing geometry. The burden is partially on the description, and it is only partially met.
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 zero redundancy. It front-loads the tool's purpose and clearly explains the shape definition in a compact manner. Every word contributes to understanding, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a geometry-creation tool with six parameters and no output schema, the description explains the shape and parameter roles well, but it omits context about the 'sketch' parameter (whether it uses the active sketch or requires explicit specification). It also lacks guidance on prerequisites or constraints, leaving the agent to infer the operating context. This is a noticeable gap for a tool that interacts with an active sketch environment.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already documented (e.g., 'First arc centre H coordinate'). The description adds the phrase 'defined by the centres of the two end arcs and the slot radius', which restates the schema without adding new meaning. It provides minimal value beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Add'), a specific resource ('closed slot (obround) profile'), and defines the geometry precisely. It clearly distinguishes this from sibling tools like line, circle, or rectangle by naming the unique shape and its defining parameters.
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 its use case by defining the shape, and the context is clear: if you need a slot profile, this is the tool. However, it does not explicitly mention when not to use it or compare it to alternatives like rectangle or polygon, so it lacks exclusions but is still unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_sketch_splineB
Add a spline through a list of control points.
| Name | Required | Description | Default |
|---|---|---|---|
| points | Yes | Control points as [[x1,y1],[x2,y2],...], mm. | |
| sketch | No | Target sketch. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide minimal detail (all flags false), so the description carries the burden. It only states the action without disclosing side effects, preconditions (like needing an active sketch), or potential failures. No additional behavioral context is offered beyond the obvious add operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It states the action and the core input efficiently, and the key information is front-loaded. It is appropriately concise 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 simplicity (2 params, 1 required, no output schema), the description is minimally sufficient. However, it lacks context about the sketch environment and does not clarify how this differs from the GSD spline tool, which could matter given the many siblings. It is adequate but not richly informative.
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 both parameters documented (points format and sketch target). The tool description adds no extra meaning beyond restating that a spline goes through control points, which aligns with the schema. Baseline of 3 is appropriate since the schema already covers 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?
The description states a specific verb ('Add') and resource ('spline'), and mentions the key input ('control points'). However, it does not differentiate from sibling tools like catia_sketch_polyline or catia_gsd_spline, which also create curves. The purpose is clear but not uniquely distinguished.
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. There is no mention of prerequisites (e.g., active sketch) or exclusions (e.g., not for GSD splines). The agent is left to infer usage from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_slotA
Sweep a closed profile along a guide curve to remove material - CATIA's Slot feature, the subtractive counterpart of catia_rib.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the resulting feature. | |
| profile | Yes | Reference token of the profile sketch. | |
| center_curve | Yes | Reference token of the guide curve. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false (no readOnly, idempotent, or destructive hints), so the description carries the burden of behavioral disclosure. It only states that material is removed, but does not explain side effects, prerequisites (e.g., active body, closed profile), or any limitations. This is minimal for a geometry-modifying operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core action and purpose. It contains no redundant words and efficiently conveys 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 tool with only two required parameters and no output schema, the description is mostly complete. It explains the purpose and the relationship between the profile and guide curve. It could mention the need for a closed profile (already stated) and prerequisites like an active part, but these are implied by the CATIA context. Overall, it is sufficient for an agent to understand and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter having a description (e.g., 'Reference token of the profile sketch'). The description adds conceptual meaning by linking the parameters to the sweep operation, but it does not provide syntax or format details beyond the schema. Baseline 3 is appropriate given high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Sweep a closed profile along a guide curve to remove material') and names the resource ('CATIA's Slot feature'). It also distinguishes from the sibling catia_rib by explicitly calling itself the 'subtractive counterpart', making its role clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides useful context by naming catia_rib as the additive counterpart, implying that this tool should be used when material removal is needed. However, it does not mention other subtractive alternatives like pocket or groove, so the guidance is not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_solid_combineA
Create a solid from two intersecting sketch profiles extruded normal to their planes - CATIA's Combine feature. Useful for shapes that are hard to express as one profile.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the resulting feature. | |
| first_sketch | Yes | First profile sketch name. | |
| second_sketch | Yes | Second profile sketch name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a write operation (readOnlyHint=false) and not destructive (destructiveHint=false). The description adds useful behavior: the solid is produced by extruding both profiles normal to their planes, and the profiles must intersect. However, it does not mention failure conditions, whether the sketches are kept, or where the resulting feature appears.
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, efficient sentences. The first sentence front-loads the primary operation and inputs; the second gives a practical use case. There is 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 feature-creation tool with complete parameter schema and annotations, the description gives a solid mental model: provide two intersecting sketch profiles and optionally a name, and a solid is created. A note about prerequisites, such as the sketches needing to exist in the active body, would improve completeness, but nothing essential 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%, with all three parameters already documented. The description adds no parameter-specific detail beyond the schema. It only re-emphasizes the concept of intersecting profiles, which is minimally additive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation ('Create a solid'), the required inputs ('two intersecting sketch profiles'), the mechanism ('extruded normal to their planes'), and the feature name ('CATIA's Combine feature'). This allows an agent to distinguish it from other solid-creation tools like pad or shaft.
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 explicit context for when the tool is appropriate: 'Useful for shapes that are hard to express as one profile.' It does not explicitly name alternatives or provide when-not-to-use conditions, but the use case is clear enough for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_split_bodyA
Cut the current body with a surface or plane, keeping the material on one side.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the resulting feature. | |
| cutting_element | Yes | Reference token of the plane or surface to cut with. | |
| keep_positive_side | No | Keep the material on the positive side of the cutter. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false (readOnlyHint, destructiveHint, etc.), so the description carries the behavioral burden. It adds 'current body' and 'keeping the material on one side', but does not explicitly disclose that the body is modified in-place, that the other side is discarded, or any prerequisites or side effects. Some behavior is implied but not fully detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It states the action and key behavior immediately, and every word 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 relatively simple operation with three parameters and no output schema, the description covers the core behavior. It correctly implies the active body and the fate of the discarded side (not kept). It could explicitly note that it operates on solid bodies (vs. surfaces) to further disambiguate from catia_gsd_split, but this is a minor 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 each parameter already described. The tool description adds no new meaning beyond what the schema provides—'cutting_element' as plane/surface and 'keep_positive_side' behavior are already in the parameter descriptions. Baseline 3 applies because the schema handles the semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (cut), resource (current body), instrument (surface or plane), and outcome (keeping material on one side). This clearly distinguishes it from siblings like catia_gsd_split (surface splitting) and catia_pocket (sketch-based removal).
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 you need to split a solid body with a plane or surface. However, it does not explicitly mention when not to use it or compare with alternatives such as catia_gsd_split or catia_remove_face. The context is clear but no exclusions or alternatives are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_start_commandADestructive
Trigger a CATIA interactive command by its name, the way a menu item would - for example 'Undo', 'Redo', 'Fit All In' or 'Isometric View'. Useful for the handful of behaviours CATIA exposes nowhere else in the automation API. The command name must match the language of the CATIA user interface.
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | Interactive command name, e.g. 'Undo' or 'Fit All In'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry destructiveHint=true and idempotentHint=false, so the safety profile is known. The description adds the GUI-equivalence behavior and the language-matching requirement, but it does not disclose what happens for an unknown command name or whether state changes can be observed or reverted. Given the annotation coverage, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three purposeful sentences with no filler. The action, examples, use case, and critical language caveat are all front-loaded and each sentence contributes new 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 one-parameter, no-output-schema tool, the description covers the action, the invocation style, the use case, and the localization constraint. It is slightly thin on error/edge behavior, but not to a degree that would confuse an agent about how to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the single 'command' parameter at 100% coverage, so the baseline is 3. The description adds meaning beyond the schema by giving two additional examples ('Redo', 'Isometric View') and, more importantly, the language-matching constraint. It does not enumerate valid command names, but no enum exists 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?
The description opens with a specific verb and resource: 'Trigger a CATIA interactive command by its name', and clarifies the mode with 'the way a menu item would'. It provides concrete examples ('Undo', 'Redo', 'Fit All In', 'Isometric View') and positions the tool as covering behaviors not exposed elsewhere in the automation API, which separates it from dedicated sibling 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 states a clear use case: 'Useful for the handful of behaviours CATIA exposes nowhere else in the automation API,' which implies using a dedicated catia_* tool when one exists. It does not explicitly name alternatives or say when not to use it, but the intended context is reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_statusARead-only
Report the current connection: CATIA release, the active document and its type, how many documents are open, and the geometry this server created most recently.
| 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 and destructiveHint=false, covering the safety profile. The description adds useful behavioral context by enumerating the exact information returned (release, active document, type, open document count, recent geometry). 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?
A single, concise sentence that front-loads the core purpose ('Report the current connection') and lists the specific data points. There is no fluff or repetition; every part of the description 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 parameterless read-only status tool, the description fully specifies what the tool returns. It doesn't mention potential failure conditions (e.g., not connected) or whether the recent geometry is from the active document, but these are minor for a status check. No output schema is provided, so the description's enumeration of returned data is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, and the schema is fully covered (100%). The description adds no parameter semantics, but since there are zero parameters, there is nothing to explain. The baseline for a no-parameter tool is 4, which is appropriate 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 clearly states the tool reports current connection status including CATIA release, active document, type, count, and recent geometry. It uses a specific verb 'report' and defines the resource (connection state). While it doesn't explicitly differentiate from siblings like catia_document_info or catia_check_environment, the specificity of what it returns makes its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as catia_document_info or catia_list_documents. The description implies it's a general status check, but it doesn't state when this is preferable to other diagnostic tools, nor does it mention any prerequisites like being connected.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_stiffenerA
Create a stiffener (rib/gusset) from an open sketch profile, thickened normal to the sketch plane and extended until it meets the existing solid.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the resulting feature. | |
| sketch | No | Open profile sketch name. | |
| thickness | No | Stiffener thickness in mm. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag readOnlyHint=false and destructiveHint=false, so the description adds value by detailing the geometric behavior: thickening normal to the sketch plane and extending until meeting the solid. This goes beyond the annotations and clarifies the operation's nature, though it does not mention potential errors or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant wording. It immediately states the purpose and key geometric details without any fluff.
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, the description covers the essential action, prerequisites (open sketch), and behavior (thickness normal to plane, extension to solid). It omits details like active body targeting or symmetric thickness options, but these are not critical for correct invocation and are typical of such 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 coverage is 100% (all three parameters have descriptions), so the description adds little beyond what the schema provides. The description mentions the thickness direction but does not elaborate on parameter meanings or constraints beyond the schema's own documentation. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a stiffener'), the resource (rib/gusset), and the specific geometric approach ('from an open sketch profile, thickened normal to the sketch plane and extended until it meets the existing solid'). It distinguishes this from similar tools like catia_rib by specifying the open-profile and extension-to-solid behavior.
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 context (requires an open sketch and an existing solid to extend to) but does not explicitly name alternatives or state when to choose this over similar tools like rib or pad. There is no exclusionary language or comparison to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_thicknessA
Add or remove material on specific faces by a set thickness, without shelling the whole solid. A negative value thins the wall.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the resulting feature. | |
| faces | Yes | Reference tokens of the faces. | |
| thickness | No | Thickness to add in mm; negative removes material. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (readOnlyHint false, destructiveHint false), so the description carries the burden of behavioral disclosure. It clearly states that material is added or removed, and that a negative value thins the wall. It also notes the scope ('specific faces') and contrasts with shelling. This is more transparent than typical, though it does not mention potential failures or side effects on existing features, which would push it higher.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no redundancy. The core operation is front-loaded, and the negative-value clarification is essential and placed second. Every word contributes to clarity, and it avoids unnecessary 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 simple three-parameter tool with no output schema, the description adequately explains the primary behavior and the meaning of the thickness parameter. It also hints at the distinction from shelling. It does not mention prerequisites (e.g., an active solid body) or how to obtain face references, but these are either implied by the schema or not critical for an agent to invoke correctly. Overall, it is complete enough for a straightforward CAD 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?
The schema description covers all three parameters (100% coverage), including the negative value behavior for thickness. The description repeats the negative-value note but adds no new semantic detail for the 'faces' or 'name' parameters. Since the schema already documents parameters fully, the description adds minimal extra value, 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 uses a specific verb ('Add or remove material') and a clear resource ('specific faces') with a defined thickness. It explicitly distinguishes itself from shelling the whole solid, which separates it from the sibling tool catia_shell. This makes its purpose immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a usage context: adding or removing material on specific faces, and contrasts it with 'without shelling the whole solid', which hints at when to prefer this over shell. However, it does not explicitly name alternatives like catia_shell or catia_remove_face, nor does it state when NOT to use this tool. The guidance is present but implicit, leaving the agent to infer the exact decision boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_threadA
Add a thread or tap to a cylindrical face. The lateral face is the cylinder to thread and the limit face is the flat face the thread starts from.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the resulting feature. | |
| depth | No | Threaded depth in mm. | |
| pitch | No | Thread pitch in mm. | |
| diameter | No | Thread diameter in mm; omit to keep CATIA's default. | |
| limit_face | Yes | Reference token of the face the thread starts from. | |
| lateral_face | Yes | Reference token of the cylindrical face to thread. | |
| right_handed | No | Right-hand thread. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description is not the sole source. The word 'Add' makes clear it mutates the model, which is consistent with annotations. However, the description does not disclose any further behavioral traits such as whether a new feature is created in the active body, reversibility, or failure conditions, so it adds minimal value 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 two sentences with no filler, front-loading the core purpose ('Add a thread or tap to a cylindrical face') and then immediately clarifying the face roles. Every word earns its place, and the structure is 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?
The tool has 7 parameters and no output schema, but the schema covers all parameters with descriptions. The main gap is that the description does not clarify the distinction between 'thread' and 'tap' (e.g., external vs internal thread) or any prerequisites like requiring an active body. It is adequate for invoking with the schema, but leaves some situational ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description goes beyond the schema for the two required face parameters by explaining their semantic relationship ('lateral face is the cylinder to thread; limit face is the flat face the thread starts from'), which is not fully captured in the schema's individual descriptions. This addition justifies one point above 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?
The description states a specific verb+resource: 'Add a thread or tap to a cylindrical face', which is unambiguous among sibling tools. It further clarifies the roles of the two required face parameters ('lateral face is the cylinder to thread', 'limit face is the flat face the thread starts from'), making the operation's intent clear without needing to inspect 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 implies usage by mentioning 'to a cylindrical face', but it provides no explicit when-to-use guidance, no exclusions, and no alternatives. It does not compare against catia_hole or other feature-creation tools, leaving the agent to infer the tool's niche from its name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_transform_bodyA
Apply a transformation feature to the current body: translate along a direction, rotate about an axis, mirror about a plane, or scale about a reference. These are history features - they move the body from that point in the tree onwards.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the resulting feature. | |
| value | No | Distance in mm for translate, angle in degrees for rotate, ratio for scale. Ignored for symmetry. | |
| operation | Yes | translate | rotate | symmetry | scale. | |
| reference | Yes | Reference token for the operation: a direction (edge/line) for translate, an axis for rotate, a plane for symmetry, a point or plane for scale. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context beyond the annotations by explaining that these are history features that move the body from that point in the tree onwards. This tells the agent the operation is model-tree-affecting and order-sensitive, which is valuable given the annotations provide no read-only or idempotency guarantees.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The first sentence front-loads the action, target, and operation variants; the second sentence adds the key history-feature behavior. Every clause contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity—four operations with different reference types—the description covers the full scope and the schema covers all parameters. The main gaps are no mention of return values and no explicit prerequisite about how the current body is selected, but these are secondary for a mutation-style tool with a well-covered 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 description coverage is 100%, so the schema already documents all four parameters meaningfully. The description lists the operation types and the history-feature behavior, but it does not add parameter semantics beyond what the schema already 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 ('apply') and resource ('current body'), and enumerates the four distinct transformation types: translate, rotate, mirror, and scale. This clearly differentiates it from surface-level sibling tools like catia_gsd_transform by anchoring it to the body and history-based feature 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?
The description makes clear that the tool operates on the current body and creates history features, giving an agent enough context to select it over GSD surface transforms or direct geometry manipulation. It does not explicitly name alternatives or list exclusion conditions, but the operational context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_tritangent_filletA
Replace a face with a fillet tangent to three faces - CATIA's Tritangent Fillet. The removed face is the one that disappears into the round.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the resulting feature. | |
| first_face | Yes | First supporting face token. | |
| second_face | Yes | Second supporting face token. | |
| face_to_remove | Yes | Face token to be removed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, so the tool is known to modify geometry. The description adds valuable context by explicitly stating that the removed face 'disappears into the round', clarifying the effect of the face_to_remove parameter. 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 two sentences with no filler. The primary action is front-loaded, and the clarifying note about the removed face is concise. Every word contributes 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 specialized fillet operation, the description explains the core concept and the role of the removed face. With no output schema and all parameters documented, the description is sufficient for an agent to understand what the tool does. It could mention prerequisites (e.g., valid face configuration) but that is beyond typical scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description provides a hint about the face_to_remove parameter ('the one that disappears into the round'), which adds a small semantic clarification beyond the schema's 'Face token to be removed.' However, it does not elaborate on first_face and second_face, so the added value is marginal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Replace') and resource ('a face'), and specifies the operation as a tritangent fillet tangent to three faces. It also clarifies the role of the removed face, distinguishing it from sibling fillet tools like catia_fillet and catia_face_fillet. 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 implies usage context (when a tritangent fillet is needed) but does not explicitly mention when to use this tool versus alternatives such as catia_face_fillet or catia_variable_fillet. It provides no exclusions or comparison, so an agent must infer the appropriate choice from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_undoADestructive
Undo the last operation(s) in CATIA. Implemented through the interactive Undo command, so it is best-effort: CATIA gives automation clients no way to confirm how far the stack actually rewound.
| Name | Required | Description | Default |
|---|---|---|---|
| times | No | How many steps to undo. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint: true, but the description adds valuable context that it is best-effort and that CATIA provides no way to confirm how far the stack rewound. This goes beyond the destructive hint and sets accurate expectations for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary action and then the caveat. Every word earns its place, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description covers the essential caveat about best-effort execution. It provides enough context for an agent to call it correctly, though it could optionally mention which document it applies to, but that is not necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully describes the only parameter ('times' – 'How many steps to undo'), with 100% coverage. The description does not add additional meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Undo the last operation(s) in CATIA' – a specific verb and resource. It inherently distinguishes from the sibling catia_redo by the action, and the phrase 'best-effort' adds specificity without confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the best-effort nature and lack of confirmation, but does not explicitly state when to use this tool versus alternatives like catia_redo. The intended usage is implied but not directly articulated, leaving some ambiguity for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_updateAIdempotent
Force CATIA to recompute the active part or assembly. Call this after a batch of edits, or to surface which feature is in error.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover idempotency and non-destructiveness. The description adds meaningful behavioral context beyond those annotations by explaining that the tool forces recomputation and can surface the feature that is in error, helping the agent understand what invoking this tool will do.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words: the first states the core action and scope, the second gives concrete use cases. Information is front-loaded and 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 parameterless tool with safety-oriented annotations, the description covers purpose, when to call it, and expected behavioral outcome. It does not explicitly clarify the relationship with catia_update_assembly or define the exact return format, but the operation is simple enough that these are minor 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?
The tool has zero parameters and schema description coverage is 100%, so there is nothing for the description to document. Per the baseline for zero-parameter tools, this dimension is well handled.
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 ('Force CATIA to recompute') and a clear resource ('the active part or assembly'). It clearly conveys the tool's function, but it does not explicitly differentiate it from the sibling catia_update_assembly, so it stops short of full sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage context: 'Call this after a batch of edits, or to surface which feature is in error.' This tells an agent when to use the tool, but it does not mention when not to use it or compare it against alternatives like catia_update_assembly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_update_assemblyAIdempotent
Recompute the active assembly, applying every constraint.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds that it applies every constraint, which is a useful behavioral detail. It does not elaborate on side effects or state changes, but with annotations covering the main traits, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the core action and includes no extraneous details. Every word contributes to the meaning, 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?
For a zero-parameter, no-output-schema tool, the description adequately covers the operation. It could hint at when to use it (e.g., after modifying constraints), but given the simplicity and reliance on annotations, it is essentially 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?
There are no parameters in the schema, so the description need not explain any. The phrase 'active assembly' provides contextual meaning about the target of the operation, which is helpful. With zero parameters, the baseline of 4 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 'Recompute' and a resource 'active assembly', and clarifies that it applies every constraint. It is clear and distinct from the name alone, though it does not explicitly differentiate from sibling catia_update, which might handle parts or documents. The action 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 such as catia_update or other assembly-related operations. No prerequisites, context, or exclusions are mentioned, leaving the agent to infer usage from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_user_patternA
Repeat a feature at every point of a sketch - CATIA's User Pattern. Use it for irregular hole layouts that no rectangular or circular pattern can describe.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the resulting feature. | |
| feature | No | Reference token of the feature to repeat. | |
| positions_sketch | Yes | Sketch whose points give the instance positions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide only false hints, so the description carries the behavioral disclosure burden. It usefully explains that positions come from sketch points and that instances repeat the chosen feature, but it does not mention whether the original feature remains, whether the pattern is associative, or what happens on invalid inputs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences: one defines the mechanism, the other gives the canonical use case. There is no filler or repetition of schema text, and the action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description plus complete schema descriptions give enough to select the tool and understand the main parameters. However, the definition misses important operational context: feature is effectively required despite the schema's required list, and there is no guidance on valid source tokens or failure behavior. It is adequate but has clear gaps for a CAD mutation tool with no 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 description coverage is 100%, so the schema already documents all parameters. The description adds conceptual context by linking 'every point of a sketch' to positions_sketch, but it does not clarify that feature is conceptually required even though the schema lists only positions_sketch as required.
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 precise verb and resource: 'Repeat a feature at every point of a sketch' and names CATIA's User Pattern. It also distinguishes itself from sibling tools by noting it is for irregular hole layouts that no rectangular or circular pattern can describe.
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?
'Use it for irregular hole layouts that no rectangular or circular pattern can describe' explicitly states when to use this tool. It names the alternative pattern families, which map to sibling tools catia_rect_pattern and catia_circ_pattern, making the selection criterion clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_variable_filletA
Round an edge with a radius that varies along it, between a start and an end radius.
| Name | Required | Description | Default |
|---|---|---|---|
| edge | Yes | Reference token of the edge to round. | |
| name | No | Name for the resulting feature. | |
| end_radius | No | Radius at the end, mm. | |
| start_radius | No | Radius at the start, mm. | |
| propagate_tangency | No | Follow tangent edges. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-read-only, non-idempotent, non-destructive operation. The description adds the core behavior of creating a rounded edge with a variable radius, but it does not explain edge start/end direction, prerequisites, or failure behavior, so it adds only moderate context 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, front-loaded sentence with no filler. It is concise and readable, but slightly too terse to carry important operational context such as edge direction or selection, leaving those details entirely to the schema.
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 CAD feature-creation tool with no output schema, the description covers the main operation but leaves gaps around how start and end are determined, how to obtain the edge token, and what propagation means in practice. The well-described schema compensates partially, but contextual guidance remains average.
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 each parameter already has a clear description, including the edge reference token, radii in mm, and tangency propagation. The tool description only restates the start/end radius concept and adds no meaning beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Round') and resource ('an edge'), and distinguishes this from sibling fillet tools by specifying that the radius varies along the edge between a start and end radius. This is unambiguous and immediately identifies the intended 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 implies this tool is for variable-radius filleting, but it does not explicitly contrast it with constant-radius catia_fillet or other fillet variants, nor does it state when not to use it. The usage context is inferable but not directly articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catia_zoomB
Zoom the 3D view in or out by a number of steps, or reframe on one element.
| Name | Required | Description | Default |
|---|---|---|---|
| steps | No | Positive zooms in, negative zooms out. | |
| on_element | No | Optional reference token to centre on; the element is selected and the view reframed around it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a mutating operation (readOnlyHint=false) and not destructive. The description adds that it zooms the 3D view and can reframe on an element, which is useful but doesn't go deeper into side effects (e.g., view state persistence, interaction with selection). Given annotations cover the safety profile, a 3 is appropriate.
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, 17 words, front-loaded with the core action and resource. It efficiently covers both modes 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?
Complete for a simple view-navigation tool: annotations cover mutation/non-destructive, schema covers all params end-to-end with descriptions. The only minor gap is the unspecified interaction when both steps and on_element are supplied together, which the 'or' leaves ambiguous.
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 well-described with defaults and sign semantics. The description adds only slight context ('3D view', 'reframe') that mostly paraphrases the schema, so it doesn't materially increase meaning beyond the structured fields.
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 (Zoom) and resource (3D view), and describes two distinct actions: stepping in/out and reframing on an element. It is clear, but doesn't explicitly distinguish itself from sibling view tools like catia_fit_all or catia_set_view.
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?
Implies usage by describing the action, but gives no explicit guidance on when to prefer this over sibling view controls such as catia_fit_all or catia_set_view. No alternatives named, no exclusions.
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.
161 tool updates
v1.0.1- First observed
catia_activate_document - First observed
catia_add_component - First observed
catia_add_design_table - First observed
catia_add_new_part - First observed
catia_add_new_product - First observed
catia_apply_material - First observed
catia_assembly_constraint - First observed
catia_bill_of_materials - First observed
catia_boolean - First observed
catia_bounding_box - First observed
catia_capabilities - First observed
catia_capture_formats - First observed
catia_chamfer - First observed
catia_check_environment - First observed
catia_circ_pattern - First observed
catia_close_document - First observed
catia_close_sketch - First observed
catia_component_position - First observed
catia_connect - First observed
catia_create_formula - First observed
catia_create_parameter - First observed
catia_create_sketch - First observed
catia_delete_constraint - First observed
catia_delete_element - First observed
catia_delete_parameter - First observed
catia_delete_relation - First observed
catia_describe_tree - First observed
catia_disconnect - First observed
catia_document_info - First observed
catia_draft - First observed
catia_drawing_add_sheet - First observed
catia_drawing_add_text - First observed
catia_drawing_add_view - First observed
catia_drawing_delete_view - First observed
catia_drawing_list_sheets - First observed
catia_drawing_set_scale - First observed
catia_drawing_update - First observed
catia_export - First observed
catia_export_all_open - First observed
catia_export_bom_csv - First observed
catia_face_fillet - First observed
catia_face_plane - First observed
catia_fillet - First observed
catia_find_elements - First observed
catia_fit_all - First observed
catia_get_parameter - First observed
catia_groove - First observed
catia_gsd_axis_system - First observed
catia_gsd_blend - First observed
catia_gsd_circle - First observed
catia_gsd_close_surface - First observed
catia_gsd_create_geoset - First observed
catia_gsd_extract - First observed
catia_gsd_extrude - First observed
catia_gsd_fill - First observed
catia_gsd_healing - First observed
catia_gsd_helix - First observed
catia_gsd_intersect - First observed
catia_gsd_join - First observed
catia_gsd_line - First observed
catia_gsd_list_elements - First observed
catia_gsd_multi_section - First observed
catia_gsd_offset_surface - First observed
catia_gsd_plane - First observed
catia_gsd_point - First observed
catia_gsd_polyline - First observed
catia_gsd_project - First observed
catia_gsd_revolve - First observed
catia_gsd_set_active_geoset - First observed
catia_gsd_spline - First observed
catia_gsd_split - First observed
catia_gsd_sweep - First observed
catia_gsd_thick_surface - First observed
catia_gsd_transform - First observed
catia_gsd_trim - First observed
catia_hide_element - First observed
catia_hole - First observed
catia_hole_from_sketch - First observed
catia_list_bodies - First observed
catia_list_components - First observed
catia_list_constraints - First observed
catia_list_design_tables - First observed
catia_list_documents - First observed
catia_list_edges - First observed
catia_list_export_formats - First observed
catia_list_faces - First observed
catia_list_features - First observed
catia_list_materials - First observed
catia_list_parameters - First observed
catia_list_relations - First observed
catia_list_vertices - First observed
catia_list_windows - First observed
catia_mass_properties - First observed
catia_measure - First observed
catia_measure_angle - First observed
catia_measure_distance - First observed
catia_mirror - First observed
catia_move_component - First observed
catia_new_body - First observed
catia_new_drawing - First observed
catia_new_part - First observed
catia_new_product - First observed
catia_open_document - First observed
catia_pad - First observed
catia_pocket - First observed
catia_point_coordinates - First observed
catia_rect_pattern - First observed
catia_redo - First observed
catia_reference_help - First observed
catia_remove_component - First observed
catia_remove_face - First observed
catia_rename_element - First observed
catia_resolve_reference - First observed
catia_rib - First observed
catia_run_script - First observed
catia_save_all - First observed
catia_save_document - First observed
catia_screenshot - First observed
catia_select_elements - First observed
catia_set_active_body - First observed
catia_set_background_color - First observed
catia_set_batch_mode - First observed
catia_set_design_table_configuration - First observed
catia_set_document_properties - First observed
catia_set_parameter - First observed
catia_set_relation_active - First observed
catia_set_render_style - First observed
catia_set_view - First observed
catia_shaft - First observed
catia_shell - First observed
catia_show_element - First observed
catia_sketch_arc - First observed
catia_sketch_centered_rectangle - First observed
catia_sketch_circle - First observed
catia_sketch_constraint - First observed
catia_sketch_delete_element - First observed
catia_sketch_ellipse - First observed
catia_sketch_geometry - First observed
catia_sketch_line - First observed
catia_sketch_point - First observed
catia_sketch_polygon - First observed
catia_sketch_polyline - First observed
catia_sketch_rectangle - First observed
catia_sketch_slot - First observed
catia_sketch_spline - First observed
catia_slot - First observed
catia_solid_combine - First observed
catia_split_body - First observed
catia_start_command - First observed
catia_status - First observed
catia_stiffener - First observed
catia_thickness - First observed
catia_thread - First observed
catia_transform_body - First observed
catia_tritangent_fillet - First observed
catia_undo - First observed
catia_update - First observed
catia_update_assembly - First observed
catia_user_pattern - First observed
catia_variable_fillet - First observed
catia_zoom
TDQS
Scored across 161 tools
Several tool pairs have unclear boundaries: catia_new_part vs catia_add_new_part, catia_update vs catia_update_assembly, catia_measure vs catia_measure_distance, catia_sketch_spline vs catia_gsd_spline, and catia_transform_body vs catia_gsd_transform. The descriptions clarify once read, but the volume of overlapping concepts makes misselection likely.
Most tools follow a snake_case catia_verb_noun pattern, but there are notable deviations like catia_bounding_box, catia_status, catia_capabilities, catia_measure, and catia_zoom. The mixed mix of list_/create_/set_/get_ alongside bare nouns and verbs is readable but not uniform.
161 tools is an extreme count for a single MCP server. Even for CATIA's broad domain, this creates a massive surface that is difficult to navigate and maintain; the set would benefit from consolidation or modular splitting.
The tool surface is remarkably deep, covering part design, sketches, GSD, assemblies, constraints, measurements, drawings, parameters, materials, and export. Minor gaps exist (e.g., drawing dimensions, sketch fillet/chamfer), but core workflows are well supported.
Maintenance
Related MCP Connectors
61 text, security, converter, calculator, and PDF tools -- callable via MCP on one host.
MCP server for aerospace calculations: orbital mechanics, ephemeris, DSN operations, ...
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceConnect Claude AI to Dassault Systemes CATIA V5 via the Model Context Protocol (MCP). Drive CATIA V5 CAD modeling from Claude Desktop or Claude Code using natural language.98MIT
- AlicenseCqualityAmaintenancePython MCP server for SolidWorks automation with 109 tools covering the full CAD lifecycle. Enables AI-assisted design workflows through COM automation on Windows.10076MIT
- AlicenseAqualityAmaintenanceMCP server for full AutoCAD automation, AutoCAD LT automation, and headless DXF generation. It provides 8 consolidated tools for drawing, entity, layer, block, annotation, P&ID, view, and system operations via MCP stdio transport.1220MIT
- FlicenseNot gradedqualityCmaintenanceAn MCP server that drives SolidWorks 2023+ on Windows, exposing CAD operations like sketching, extrusions, assemblies, and exports through tools for AI assistants like Kimi and Claude.-