Skip to main content
Glama
AstroQuestStudio

catia-v5-mcp

catia-v5-mcp

An MCP server that lets AI agents drive CATIA V5 through COM, and get it right the first time.

Most CAD automation gives a model a bag of tools and hopes. This one is built around what actually goes wrong when an agent models real parts for hours: silent no-ops, default feature names, a constraint that says OK while the part flipped, a dialog that freezes every call, the same mistake made again in the next session. Each of those has a mechanism here.

CATIA is a registered trademark of Dassault Systèmes. This project is independent and is not affiliated with, endorsed by or sponsored by Dassault Systèmes. You need your own licensed CATIA V5; nothing here bypasses or emulates licensing. Validated on CATIA V5 R19 (French UI) on Windows 11.

What makes it different

Problem

Mechanism

40 tool calls = 40 model round trips, and a typo in call 31 is found after 30 modifications

catia_batch validates every step against the tool schemas before touching CATIA, then runs them with stop-on-error and a compact timed report. dry_run validates only.

The same COM pitfall bites every new session

Lessons ledger: 152 verified pitfalls (docs/LESSONS.md). The critical ones ship as server instructions, the matching lesson is appended to the error that triggered it, and agents record new discoveries with catia_add_lesson; they are merged at the next start. The server gets smarter with use.

"It ran" does not mean "it is right"

Every solid feature reports its volume change; geometry is designated by 3D points on it (never guessed names); catia_get_tree audits names; sketches can be overlaid on the source drawing.

Default names (Pad.1, Extrusion.3) make a tree unreadable

Every creation tool takes name; the server renames the new object, reads the name back, hides consumed sketches, and warns when a default is left.

A modal dialog silently freezes CATIA and every queued call

Popup watchdog closes single-OK information boxes, logs them, and never answers a question. Optional cross-process lock and hang guard.

100+ tool schemas overwhelm a smaller model

Tool sets (CATIA_MCP_TOOLSETS=part, assembly, ...) advertise only what the task needs; hidden tools still work. Prompts carry the proven workflow so a model that is weak at 3D follows the right sequence.

Assemblies that read "all constraints OK" while a part flipped

Pose-tracking assembly kit: pre-position, constrain on real faces, verify final poses, explain every clash.

Assemblies that take minutes and flicker the screen (every constraint re-opens a part window)

catia_prepare_geometry opens each part once and resolves all its designations together, a designation cache, and deferred solving: a 58-constraint wheel went from 293 s to 47 s (details below).

A failed call leaves a broken feature in the tree

The server removes what a failed creation call left behind and tells you ([cleanup]).

Turning a drawing into a model by eye

Drawing tools (optional) extract exact circles, arcs and lines from vector PDFs (radii to a few hundredths of a mm) and overlay a sketch on the drawing to prove it matches.

Related MCP server: AI-to-CATIA MCP

Install

Windows with a licensed CATIA V5, Python 3.10+.

git clone https://github.com/AstroQuestStudio/catia-v5-mcp.git
cd catia-v5-mcp
pip install -e .              # add ".[drawing]" for the PDF drawing tools

Claude Code:

claude mcp add catia-v5 -- python -m catia_mcp

Claude Desktop (claude_desktop_config.json):

{ "mcpServers": { "catia-v5": { "command": "python", "args": ["-m", "catia_mcp"] } } }

CATIA must be registered as a COM server once (cnext.exe /regserver, as administrator). The server attaches to a running CATIA or starts one.

Use

Ask for what you want; the server's instructions and prompts carry the method. For repeatable work, write a scenario instead of improvising:

catia-mcp-run scenario.json --dry-run     # validate every step against the schemas, touch nothing
catia-mcp-run scenario.json               # run, log, non-zero exit code on failure

templates/ holds fill-in-the-blank part and assembly scripts (# FILL: markers) built on catia_mcp.scripting, which emits validated steps and tracks component poses.

Prompts (one-click workflows): model_part_from_drawing, assemble_product, large_assembly, audit_model, reverse_engineer_part.

Safety tiers (CATIA_MCP_SAFETY=read|write|dangerous, default dangerous): a review agent runs with read, an unattended modeller with write. The tier can be lowered from a tool call (catia_set_safety) but only a human can raise it, by restarting the server. catia_batch checks every step against the tier before running anything.

Tools

Over 100 tools in groups (catia_*, plus drawing_*):

  • Documents: new part / product, open, save, close, list.

  • Sketcher: lines, arcs, circles, rectangles, profiles, splines, constraints, geometry read-back.

  • Part Design: pad, pocket, shaft, groove, hole, fillet, chamfer, thread, shell, draft, thickness, patterns, mirror; bodies and boolean operations for the multi-body method.

  • Generative Shape Design: wireframe, surfaces (sweep, loft, fill, blend...), solids from surfaces.

  • Assembly: components, sub-assemblies, fix / coincidence / contact / offset / angle constraints, move, clash analysis, clean display, save all.

  • Measure: distance, inertia, bounding box, parameters.

  • Export and view: STEP, IGES, STL, screenshots, standard views.

  • Server: catia_batch, catia_lessons, catia_add_lesson.

Tools carry read-only / destructive / idempotent annotations so clients can auto-approve harmless calls.

Configuration (environment variables)

Variable

Default

Effect

CATIA_MCP_TOOLSETS

full

Advertised groups or presets: part, assembly, surface, review, or a list of groups

CATIA_MCP_WATCHDOG

1

Popup watchdog

CATIA_MCP_LOCK

0

Cross-process lock so several agents queue instead of interleaving

CATIA_MCP_HANG_SECONDS

0

Log a call that blocks longer than this; CATIA_MCP_HANG_KILL=1 also kills CATIA

CATIA_MCP_AUTOTRACE

0

CSV line + screenshot after every feature tool

CATIA_MCP_HOME

%APPDATA%\catia-mcp

State: log, lessons, lock, trace

CATIA_MCP_OFFLINE

unset

Never attach to or start CATIA (tests, CI, unlicensed machines)

CATIA_MCP_PROFILE

0

Append to every call the split of its time (snapshot, execute, checks, naming)

CATIA_MCP_DESIGNATION_CACHE

1

Cache face/axis/edge designations per (file, modification time, point)

CATIA_MCP_DESIGNATION_CACHE_DISK

1

Keep that cache on disk between sessions (a rebuild of a 70-component assembly went from 780 s to 164 s)

CATIA_MCP_SAFETY

dangerous

Safety tier: read, write or dangerous (see above)

CATIA_MCP_CLEANUP_ON_FAILURE

1

Remove the objects a failed creation tool left in the tree

Performance, measured

Live on CATIA V5 R19 (French UI, 8-core laptop). Timings vary by up to 3x between identical runs, so the figures below are medians of repeated runs; the speed-ups are 10x or more, far above that noise.

Before

After

Contact constraint (mean, 40 to 300 instances)

2.48 s

0.16 s

Adding one component at 150 parts

1.5 s (grew with the assembly)

0.01 s (flat)

30-component, 58-constraint wheel assembly

293 s

47 s

150 constraints

249 s

36 s

300 instances, 301 constraints (906 steps)

n/a

81 s, 0 errors

What did the work: one part opening for all the designations of a part (catia_prepare_geometry, added automatically by the kit and the runner), a bounded designation cache, deferred solving, and O(1) component lookup. The server's own bookkeeping (tree snapshot, volume check, renaming) costs 0.1 to 0.3 s per feature. What stays slow is intrinsic to CATIA: designating two edges on a dense part takes 20-30 s, so prefer faces and axes. Use CATIA_MCP_PROFILE=1 to see where your own scenario spends its time.

Working at scale

Aircraft and vehicles are thousands of parts. The MCP layer is linear (100 000 steps validate in about 4 s, listings are paginated, the cache is bounded); what limits a huge model is CATIA's own memory and load time, so structure the work: one sub-product per system, build and check each alone, save after each, batch in chunks with stop-on-error, query one sub-product at a time (catia_list_components takes path, depth, limit, offset). See the large_assembly prompt and docs/GUIDE_ASSEMBLY.md (section 9). The live checklist is docs/LIVE_VALIDATION.md.

Status and honesty

  • Live-validated on CATIA V5 R19. Later releases should work, but the COM surface varies: report what you see.

  • Parts marked UNVERIFIED-LIVE in the source are not yet proven against a real session.

  • Drafting (catia_drawing_*, see docs/DRAFTING.md) and reverse engineering (catia_describe_model, catia_audit_model, catia_measure_model, see docs/REVERSE_ENGINEERING.md) were run live; whatever could not be proven is listed in those documents and not exposed. A model described and replayed comes back with the same volume, box, centre of gravity and inertia (checked on brackets, flanges, stepped pins, plates and a 6-feature link); patterns, shells, drafts and threads are reported as opaque features, never guessed.

  • Known gaps: formulas and design tables, materials, rib / slot, undo, sketch constraint replay. See docs/ROADMAP.md.

  • The optional drawing tools use PyMuPDF, which is AGPL-3.0. It is a separate, lazily imported dependency and is never required by the server.

Contributing

Read CONTRIBUTING.md; the rule is prove it. Found a pitfall? Add a lesson. Security: SECURITY.md.

Licence

MIT, see LICENSE.

Available Tools

121 tools
catia_activate_bodyA
Idempotent

Set a Body as the active 'in work object' (Part.InWorkObject) — the 'Define In Work Object' right-click action from the CATIA GUI. After calling this, catia_create_sketch/catia_pad/catia_pocket/etc. create their features inside this body instead of MainBody. Call this right after catia_new_body to start working in it.

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameYesName of the body to activate, e.g. 'Body.2' or 'Rough'.

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations, the description discloses the key behavioral consequence: after activation, catia_create_sketch/catia_pad/catia_pocket/etc. create features inside this body instead of MainBody. It also maps the operation to the CATIA GUI 'Define In Work Object' action, which helps an agent understand the state change.

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

Conciseness5/5

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

The description is three sentences, front-loads the core purpose, then immediately states the downstream effect and the prerequisite call. Every sentence adds actionable information, and there is no redundant or filler text.

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

Completeness5/5

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

For a simple state-setting tool with a single documented parameter and no output schema, the description covers what it does, when to use it, and how it affects subsequent operations. Nothing essential is missing for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100% and the single body_name parameter already has a clear example in the schema. The description adds no syntax or format details beyond what the schema provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description names a specific verb and resource: 'Set a Body as the active in work object.' It distinguishes this state-changing action from sibling tools by naming catia_new_body as the predecessor and catia_create_sketch/catia_pad/catia_pocket as the affected followers. An agent can identify exactly what this tool does without opening the schema.

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

Usage Guidelines4/5

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

It gives clear usage context: call this right after catia_new_body so subsequent feature-creation tools work inside the newly active body. It does not explicitly state when not to call it, but the sequencing and effect are sufficiently clear for correct invocation.

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 existing CATPart/CATProduct file(s) into the active assembly (Insérer un composant existant), optionally inside a sub-assembly. Returns the new instance name(s), to use in constraints.

ParametersJSON Schema
NameRequiredDescriptionDefault
parentNoSub-assembly path to insert into (default: root product).
file_pathYesFull path of the .CATPart/.CATProduct.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare the mutation safety profile (writable, non-destructive, non-idempotent, closed-world), so the description need not repeat that. It adds useful behavioral context by stating that the tool returns the new instance name(s) and that those names are intended for later constraints, which helps the agent understand the workflow.

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

Conciseness5/5

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

Two tight sentences with the core action front-loaded. Every clause earns its place by covering insertion target, optional parent, and return value purpose.

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

Completeness4/5

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

For a mutation tool with no output schema, the description covers the essential return value and the active-assembly context. It does not explain error conditions or prerequisites such as ensuring the file is accessible, but it is complete enough for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both file_path and parent. The description reinforces that file(s) are inserted and that insertion may optionally target a sub-assembly, but it adds little parameter syntax or format meaning 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.

Purpose5/5

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

States a specific verb (Insert) and resource (existing CATPart/CATProduct file(s)) with the target context (active assembly) and optional sub-assembly placement. The word 'existing' helps distinguish it from siblings like catia_add_new_part, so an agent can identify the operation without opening the schema.

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

Usage Guidelines3/5

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

The description gives clear context for what the tool does and notes the optional sub-assembly placement, but it does not explicitly say when to use this versus alternatives such as catia_add_new_part, catia_add_sub_assembly, or catia_duplicate_component. Usage is implied rather than guided.

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

catia_add_lessonA

Record a NEW pitfall or rule you discovered so that every future session (yours and other agents') is warned automatically. Use it as soon as you find something that failed, surprised you, or needed a workaround. Give the exact observed error text in error_patterns (regex) so the hint is attached to that error next time, and state how it was proven. Stored in the user's lessons file (not in the package); duplicates are refused.

ParametersJSON Schema
NameRequiredDescriptionDefault
areaNocom|sketch|part|boolean|topology|measure|assembly|display|process|drawing|performance
ruleYesImperative, actionable rule (what to do / avoid).
causeNoRoot cause, if known.
proofNoHow it was verified (what was tried, what worked).
titleYesOne-line summary of the pitfall.
toolsNo
symptomNoWhat was observed.
severityNo
error_patternsNoRegexes matching the error text this lesson explains.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare write (readOnlyHint=false), non-idempotent, non-destructive. The description adds real context beyond that: storage location ('user's lessons file, not in the package') and dedup behavior ('duplicates are refused'), which are not derivable from annotations or schema.

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

Conciseness4/5

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

Four dense sentences, all load-bearing, with the primary action front-loaded. Slightly long but no filler or repetition.

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

Completeness4/5

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

Covers purpose, trigger, storage, and dedup for a 9-param write tool with no output schema. Minor gaps remain (what a duplicate returns, whether the lesson is immediately live), but nothing critical is missing.

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

Parameters4/5

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

Schema coverage is 78% (baseline 3), but the description adds meaning the schema lacks: error_patterns must be the 'exact observed error text (regex)' and proof must state 'how it was proven', clarifying the intent of two non-obvious fields.

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

Purpose5/5

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

States a specific verb ('Record') and resource ('a NEW pitfall or rule'), plus the effect ('every future session ... is warned automatically'). The write intent clearly contrasts with the read-only sibling catia_lessons, even without naming it.

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

Usage Guidelines4/5

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

Gives explicit timing/trigger: 'Use it as soon as you find something that failed, surprised you, or needed a workaround.' No when-not guidance or named alternative, but the invocation 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_add_new_partA

Create a new empty Part inside the assembly (or a sub-assembly), with its part number. It must be modelled and then saved (catia_save_all) before faces can be designated for constraints.

ParametersJSON Schema
NameRequiredDescriptionDefault
parentNoSub-assembly path (default: root).
part_numberYesPart number, e.g. 'Shaft_A'.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare non-readOnly, non-destructive, non-idempotent, so the safety profile is covered. The description adds genuinely non-structured context: the created part starts empty, and it must be saved via catia_save_all before faces become constrainable — a real behavioral dependency an agent must respect.

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

Conciseness5/5

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

Two sentences, no filler, and the core action ('Create a new empty Part...') is front-loaded before the workflow caveat. Every clause carries information.

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

Completeness4/5

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

For a two-parameter creation tool with no output schema and adequate annotation coverage, the description supplies the essential prerequisite chain (create → model → save → constrain). The only gap is the absence of disambiguation from the near-identical sibling catia_new_part.

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

Parameters3/5

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

Schema description coverage is 100% (both 'parent' and 'part_number' are documented inline with an example), so the schema carries the parameter burden. The description only echoes 'with its part number' and implies the assembly/sub-assembly target, adding no syntax or format detail beyond the schema.

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

Purpose4/5

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

States a specific verb and resource ('Create a new empty Part') plus scope ('inside the assembly (or a sub-assembly), with its part number'). Clear on its own, but it never distinguishes itself from the sibling tools catia_new_part and catia_add_sub_assembly, which an agent could easily confuse with this one.

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

Usage Guidelines3/5

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

Gives a valuable sequencing rule ('must be modelled and then saved (catia_save_all) before faces can be designated for constraints'), which tells the agent where this step sits in the workflow. However, it never says when to pick this over catia_new_part 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_add_sub_assemblyA

Create a new sub-assembly (Product) inside the assembly: the way to structure a big assembly (e.g. Wheel / Shaft sub-assemblies).

ParametersJSON Schema
NameRequiredDescriptionDefault
parentNoParent sub-assembly path (default: root).
part_numberYesPart number of the sub-assembly.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations cover the safety profile (not read-only, not idempotent, not destructive, closed-world), and the description does not contradict them. It adds the structural context that a Product is nested inside an existing assembly, but omits whether the parent must already exist, whether the new sub-assembly becomes active, and the duplicate-creation risk implied by idempotentHint=false.

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

Conciseness5/5

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

A single sentence that front-loads the action and resource, then supplies one compact clarifying example. Nothing is redundant and nothing is missing for its length.

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

Completeness3/5

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

For a creation tool with no output schema and only annotation-level behavioral coverage, the description is adequate but thin: it does not say what is returned or what state changes on success. Given a simple 2-parameter schema with full coverage, this is acceptable but not complete.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters (parent, part_number) are already documented, including the root default. The description adds no syntax, format, or path-convention detail beyond the schema, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Create a new sub-assembly (Product) inside the assembly') and clarifies the concept with an example (Wheel / Shaft sub-assemblies). It distinguishes itself reasonably from sibling creation tools like catia_add_component and catia_new_product, though it never explicitly contrasts them.

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

Usage Guidelines3/5

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

The parenthetical rationale ('the way to structure a big assembly') implies when this is useful, but there is no explicit when-to-use guidance or routing against alternatives such as catia_add_component or catia_new_product. Usage is implied rather than stated.

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

catia_angle_constraintC

Angle between two planes/faces/axes of two components, in degrees.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoExplicit name for the angle constraint in the tree (recommended).
angleYesAngle in degrees.
element1YesGeometry of the component, in the component's OWN part coordinates (mm): {'face_point': [x,y,z]} a point inside a face; {'axis_point': [x,y,z]} a point on a cylindrical/conical face, meaning its AXIS; {'edge_point': [x,y,z]}; or {'plane': 'xy'|'yz'|'zx'} one of the component's origin planes. Use catia_list_faces on the part to find points, radii and axes.
element2YesGeometry of the component, in the component's OWN part coordinates (mm): {'face_point': [x,y,z]} a point inside a face; {'axis_point': [x,y,z]} a point on a cylindrical/conical face, meaning its AXIS; {'edge_point': [x,y,z]}; or {'plane': 'xy'|'yz'|'zx'} one of the component's origin planes. Use catia_list_faces on the part to find points, radii and axes.
component1YesInstance name (e.g. 'Engine.1'), or a path 'Sub.1/Part.1' for a sub-assembly child.
component2YesSecond instance name or path.
defer_updateNoSkip the solve after this constraint (default false). Each solve re-computes EVERY constraint, so its cost grows with the assembly: in a long sequence defer all but the last, then check with catia_update_assembly. The status is NOT evaluated when deferred.

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, so the agent knows this is a non-destructive write. The description adds nothing beyond that: it doesn't say it appends a constraint to the assembly tree, that it triggers an expensive solve, or how the deferred-update behavior works (that detail lives only in the schema).

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

Conciseness4/5

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

It is a single tight sentence with no filler, and the core subject (angle between two elements) is front-loaded. It is arguably too short rather than bloated, so it does not lose points for verbosity.

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

Completeness2/5

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

For a 7-parameter assembly-mutation tool with nested geometry objects and no output schema, a one-line fragment is inadequate. It says nothing about the assembly context, the interaction with the solve/defer_update mechanism, or what happens to the model on success.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents component paths, the element geometry objects, the angle, and defer_update in detail. The description only restates 'in degrees' and the element types, adding no syntax or format meaning beyond the schema. Baseline 3 applies.

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

Purpose3/5

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

The fragment names the resource (angle constraint between two components' planes/faces/axes) but omits the verb entirely – it never says it *creates/adds* a constraint. An agent can infer the action from the name `catia_angle_constraint` and the sibling set (coincidence/contact/offset constraints), but the description itself does not commit to it.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites (e.g. must be in an assembly, components must be positioned), and no reference to the sibling constraint tools (catia_fix_coincidence/contact/offset_constraint) that an agent would choose among. The reader gets zero routing help.

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

catia_audit_modelA
Read-only

Audit the ACTIVE document's tree WITHOUT modifying it. Returns issues ranked error > warning > info, each with a code, where, message and the exact tool calls that fix it ('fix', a list of {tool, args}) or a 'manual' instruction when no tool can. Part: default names, bodies without result or empty, hidden or unmerged bodies, features not up to date or deactivated, sketches unused, open profiles, unsatisfied constraints, order (dress-up before material). Assembly: constraints not OK, default names, components not constrained outside the fixed one, broken links. 'not_checked' says what the API cannot tell (degrees of freedom of a sketch).

ParametersJSON Schema
NameRequiredDescriptionDefault
min_severityNoHide issues below this severity.info

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=true and openWorldHint=false. The description goes well beyond: it does not modify the document, ranks issues error>warning>info, returns a structured issue shape (code, where, message), supplies fix tool calls with args or a 'manual' fallback, and discloses 'not_checked' limits of the API (e.g. sketch degrees of freedom). This is rich behavioral disclosure for a 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.

Conciseness4/5

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

Front-loaded with the core action and read-only guarantee, then dense but informative enumeration of checks and return shape. Every clause adds value (checks per Part vs Assembly, the fix/manual contract, not_checked). It is somewhat long as a single block but not padded.

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

Completeness5/5

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

With no output schema, the description carries the burden of describing returns, and it does so thoroughly (severity ranking, issue fields, fix tool+args, manual instruction, not_checked). For a complex audit tool this is complete enough for an agent to invoke and interpret results correctly.

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

Parameters4/5

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

Schema coverage is 100% with an enum on min_severity, so the schema already documents the parameter. The description adds meaning by explaining the severity ordering (error>warning>info), which is exactly the scale the min_severity filter operates on, giving the agent context beyond the raw enum.

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

Purpose5/5

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

States a specific verb+resource+scope: 'Audit the ACTIVE document's tree WITHOUT modifying it.' This clearly distinguishes it from sibling tools like catia_get_tree (raw tree fetch), catia_drawing_check (drawing-specific), and catia_describe_model (description). An agent can tell what it does and what it doesn't.

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

Usage Guidelines4/5

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

The read-only 'WITHOUT modifying it' constraint and the extensive list of what it checks give strong context for when to invoke it. It implies that remediation is a separate step via the returned 'fix' tool calls, but it never names a sibling as an alternative or gives explicit when-not-to-use guidance.

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

catia_batchA

Run MANY catia_* tool calls in ONE round trip (10-100x fewer LLM turns). Every step is validated against the tool schemas BEFORE anything runs (unknown tool, misspelt/missing argument, wrong type, bad enum value): a typo in step 31 is reported up front and CATIA is left untouched. Steps then run in order and stop at the first failure (stop_on_error). Use dry_run=true to only validate. Compact per-step report with timings. Not nestable. Prefer it for any sequence you already know (sketch -> pad -> rename -> check), and keep separate calls for steps that depend on a value you must read first (e.g. face points from catia_list_faces).

ParametersJSON Schema
NameRequiredDescriptionDefault
stepsYesOrdered calls: [{"tool": "catia_create_sketch", "args": {"plane": "xy", "name": "Sketch_Base"}}, ...]
dry_runNoOnly validate every step; execute nothing (default false).
stop_on_errorNoStop at the first failing step (default true).

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only provide safety flags; the description adds substantial operational behavior: pre-execution validation against tool schemas, ordered execution, stop-on-error, dry-run, non-nestability, and a compact report with timings. It also clarifies failure behavior during validation ('CATIA is left untouched'). 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.

Conciseness5/5

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

Front-loads the core purpose, then behavior, then usage in a tightly packed paragraph. Each sentence adds a distinct fact (validation, execution order, failure, dry-run, report, nesting, usage) with no filler.

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

Completeness5/5

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

For a complex batch meta-tool, the description covers purpose, validation, execution flow, failure semantics, nesting constraint, report format, and usage routing. With full schema coverage and safety annotations already present, remaining omissions (e.g., maximum steps) are minor and do not impede correct invocation.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds meaning by explaining that the steps array is validated for unknown tools, misspelt/missing arguments, wrong types, and bad enum values, and clarifies dry_run and stop_on_error as validate-only and halt modes. It does not expand on the args object structure beyond the schema example.

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

Purpose5/5

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

States a specific verb and resource: running many catia_* tool calls in one round trip. Explicitly distinguishes itself from sibling tools by telling the agent to prefer it for known sequences and keep separate calls when values must be read first. An agent can identify it without opening the schema.

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

Usage Guidelines5/5

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

Gives explicit when-to-use ('Prefer it for any sequence you already know') and when-not ('keep separate calls for steps that depend on a value you must read first'), with a concrete example. Also names dry_run for validation-only usage. No inference needed.

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

catia_boolean_operationA
Destructive

Combine two Bodies with a boolean operation (right-click a body > x.Objet > ... in the GUI). This is how the multi-corps method produces the final solid: model each functional zone in its own Body, then combine them here.

  • assemble: union that respects each body's feature nature (a Pocket in the tool body removes material — most common case).

  • add: union that always adds material, even if the tool body's first feature is a Pocket (it's reinterpreted as a Boss).

  • remove: target_body minus tool_body.

  • intersect: keeps only material common to both bodies.

  • union_trim: union with control over which side to keep/remove (faces_to_remove_points / faces_to_keep_points: one [x, y, z] inside each face of the tool body; see catia_list_faces).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoExplicit name for the created feature in the specification tree (e.g. 'Pad_Bras_20mm', 'Trou_Conique_D12'). Strongly recommended: default names like 'Extrusion.3' make the tree unreadable and are flagged by tree audits.
operationYes
tool_bodyYesName of the body being combined INTO the target (e.g. 'Body.2').
target_bodyNoName of the body receiving the operation. Defaults to the currently active body (InWorkObject) if omitted.
faces_to_keep_pointsNounion_trim only: a point inside each tool-body face to keep.
faces_to_remove_pointsNounion_trim only: a point inside each tool-body face to discard.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already flag destructive=true, idempotent=false, but the description adds genuine behavioural context: assemble respects feature nature, add always adds material, remove is target minus tool, intersect keeps common material, and union_trim requires in-face points. It also notes target_body defaults to the active body. No return/error behaviour is described, keeping it at a 4.

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

Conciseness5/5

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

Front-loaded with the core action, then a compact per-mode bullet list where every line earns its place. The GUI aside is brief and aids recognition; nothing is wasted.

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

Completeness4/5

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

For a 6-parameter destructive mutation tool with no output schema, the description covers operation semantics and the tricky union_trim points adequately, and annotations carry the safety profile. Minor gaps remain around failure modes and the result of the operation, but nothing essential for invocation is missing.

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

Parameters4/5

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

Schema coverage is already 83%, so baseline is 3, but the description adds real meaning: it explains that faces_to_remove_points/faces_to_keep_points apply only to union_trim and require one [x,y,z] point inside each tool-body face, and points the agent to catia_list_faces. This complements the schema rather than repeating it.

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

Purpose5/5

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

States a specific verb+resource (combine two Bodies with a boolean operation) and enumerates all five operation modes so the agent knows exactly what each does. This clearly distinguishes it from siblings like catia_new_body or catia_pad, and even frames the multi-body modelling workflow.

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

Usage Guidelines4/5

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

Explains the context in which the tool is used ('model each functional zone in its own Body, then combine them here') and clarifies the subtle difference between assemble vs add for a Pocket-first tool body. It lacks an explicit 'when not to use / use alternative' statement, 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_chamferA

Chamfer one or more edges as ONE feature. Edges designated by a 3D point on each (same as catia_fillet). Mode length+angle (default 45°) or two lengths.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoExplicit name for the created feature in the specification tree (e.g. 'Pad_Bras_20mm', 'Trou_Conique_D12'). Strongly recommended: default names like 'Extrusion.3' make the tree unreadable and are flagged by tree audits.
angleNoChamfer angle in degrees (default: 45). Ignored if length2 is given.
lengthYesChamfer length in mm
length2NoSecond length (mm) for a length/length chamfer.
edge_pointsYesOne [x, y, z] (mm) per edge, each ON the edge.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare the safety profile (readOnly=false, destructive=false, non-idempotent). The description adds real behavioral context beyond that — the single-feature grouping behavior and the edge-identification convention shared with catia_fillet — but says nothing about failure modes, required active container, or whether re-running with the same points creates a duplicate feature.

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

Conciseness5/5

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

Two short sentences, front-loaded with the core action ('Chamfer one or more edges as ONE feature') before the edge-addressing and mode details. No filler and no repetition.

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

Completeness4/5

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

For a feature-creation tool with no output schema and full schema coverage, the description covers the essentials: what is created, how edges are addressed, and the available modes. It stops short of naming the active-body/selection prerequisite or the resulting feature name, which slightly limits completeness.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents every parameter including defaults and the 'ignored if length2 is given' rule. The description's mode sentence largely restates that, adding only light framing of the two accepted combinations; baseline 3 is appropriate.

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

Purpose5/5

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

Specific verb (chamfer) plus resource (one or more edges) and an explicit scope qualifier ('as ONE feature') that tells the agent this produces a single specification-tree feature rather than one per edge. It also anchors itself to the sibling catia_fillet for edge designation, so it is distinguishable from other modeling tools.

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

Usage Guidelines3/5

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

The description explains the two chamfer modes and their interaction with the parameters, which is genuinely useful selection guidance, but it never states when to prefer this over catia_fillet or what preconditions must hold (e.g. an active body, existing solid). Usage is implied rather than instructed.

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

catia_circ_patternA

Circular Pattern (Répétition circulaire) of a feature around an axis: the normal of an origin plane through the origin (axis_plane, e.g. 'zx' = around Y), or the axis of the cylindrical face through axis_face_point. count instances including the original; default spacing 360/count = complete crown.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoExplicit name for the created feature in the specification tree (e.g. 'Pad_Bras_20mm', 'Trou_Conique_D12'). Strongly recommended: default names like 'Extrusion.3' make the tree unreadable and are flagged by tree audits.
countYesNumber of instances, the original included.
reverseNoRotate the other way.
axis_planeNoRotation axis = normal of this origin plane (xy→Z, yz→X, zx→Y).
feature_nameNoFeature to pattern. Defaults to last feature.
angular_spacingNoAngular spacing in degrees (default: 360/count, complete crown).
axis_face_pointNo[x, y, z] on a cylindrical face whose axis is the rotation axis.

TDQS

A3.9/5.0
Behavior3/5

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

Annotations declare readOnly=false, idempotent=false, destructive=false, so the safety profile is already known. The description usefully adds that count includes the original and that spacing defaults to a complete crown, but it does not disclose tree/specification side effects of creating the pattern or any prerequisites about an active feature.

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

Conciseness4/5

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

A single dense sentence pair with the operation and axis choice front-loaded and no filler. Some parenthetical asides (the French term, the zx=Y example) make it slightly packed, but nothing is wasted.

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

Completeness4/5

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

For a 7-parameter mutation tool with no output schema, the description covers the key calls an agent must get right: which axis variants exist, that count includes the original, and the spacing default. Remaining gaps are about selection prerequisites and post-creation behavior rather than the core invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents every parameter including the axis_plane→Z/Y/X mapping. The description restates that mapping and the default spacing, adding consistency but little information beyond the structured fields; the baseline of 3 applies.

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

Purpose5/5

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

States a specific operation (circular pattern of a feature) plus the precise axis semantics, and the parenthetical French name mirrors the CATIA UI term an agent or user would recognize. It is clearly distinguishable from sibling operations like catia_rect_pattern and catia_mirror.

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

Usage Guidelines4/5

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

Explains the two mutually exclusive ways to define the rotation axis (origin-plane normal via axis_plane, or cylindrical face via axis_face_point) and the count/spacing defaults, which is strong context. It stops short of explicit when-to-use vs when-not guidance (e.g. linear pattern or mirror alternatives).

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

catia_clash_analysisA
Read-only

Interference check of the whole assembly (Analyse > Interférence, DMU Space Analysis): lists every CLASH (two components interpenetrate; 'at' = a point of the interference, assembly coordinates) and counts the CONTACTS. A correct assembly has 0 clash (except intended press fits / cosmetic threads). The analysis object is removed afterwards so the product tree stays clean.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_listNoMax clashes listed.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover the read-only, closed-world safety profile, and the description adds genuine behavioral context: the analysis object is removed afterwards so the product tree stays clean, and it defines what constitutes a clash and the coordinate frame of 'at' points. It does not discuss runtime cost on large assemblies, but the extra side-effect disclosure is substantive.

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

Conciseness4/5

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

Compact and front-loaded – the core purpose leads, followed by result semantics and the cleanup side effect. The parenthetical UI navigation is arguably extra, but it aids disambiguation at low cost.

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

Completeness4/5

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

With no output schema, the description usefully describes what is returned (clash list with interference points in assembly coordinates, plus a contact count) and the post-run state. That covers the essentials for a simple check tool, though it omits details like whether clashes are ordered or capped by max_list.

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

Parameters3/5

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

Schema coverage is 100% for the single max_list parameter, so the schema already documents its meaning and default. The description adds no hints about truncation or ordering behavior, so the baseline of 3 applies.

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

Purpose5/5

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

States a specific action (interference check) on a specific resource (whole assembly), and clarifies the two outputs: a list of CLASHes and a count of CONTACTS. It also anchors the operation to the CATIA UI path, making it clearly distinct from siblings like catia_measure_distance or catia_get_bounding_box.

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

Usage Guidelines3/5

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

Explains how to interpret results ('A correct assembly has 0 clash, except intended press fits / cosmetic threads'), which implies the intended use, but never explicitly says when to run this versus alternatives or what prerequisites exist. Usage is inferable rather than stated.

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

catia_clean_displayA
Idempotent

Presentation view before screenshots: hide every origin/offset plane, sketch and axis system of every part, and the assembly constraint symbols (green markers). Display only: nothing is saved (call it AFTER saving).

ParametersJSON Schema
NameRequiredDescriptionDefault
hide_treeNoAlso hide the specification tree (window Layout = geometry only), so the 3D view is centred and unobstructed. false (default) shows it again.

TDQS

A4.2/5.0
Behavior4/5

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 important non-obvious fact that the change is display-only and nothing is persisted, plus ordering relative to saving. It does not say how to restore the original display state or whether it affects the saved model, but the key behavior 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.

Conciseness5/5

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

One front-loaded sentence enumerating what gets hidden, followed by a short caveat sentence. No filler; every clause earns its place.

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

Completeness4/5

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

For a one-optional-param, no-output-schema tool, the description covers what is hidden, the purpose, and the persistence caveat. It could mention how to undo the cleanup, but otherwise an agent has enough to invoke it correctly.

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

Parameters3/5

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

Schema description coverage is 100% and the single hide_tree parameter is fully documented in the schema, including its default and the window Layout effect. The description adds nothing 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.

Purpose5/5

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

States a specific verb+resource (hide planes, sketches, axis systems, constraint symbols) and frames the intent as preparing a presentation view before screenshots. This distinguishes it from catia_hide_show_body (which toggles bodies) and catia_screenshot itself.

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

Usage Guidelines4/5

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

Gives clear timing guidance ('before screenshots', 'call it AFTER saving') and a persistence caveat. It does not name an alternative tool or state when-not to use it, but the context of 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_close_allA
Destructive

Close EVERY open document without saving (fresh session). Use it before starting a new piece/assembly: stale documents from earlier work (duplicate parts, old copies) make Save As fail and confuse which file a product uses. Unsaved work is lost — save first.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the mutating nature is known; the description adds the key behavioral detail that documents are closed WITHOUT saving and that unsaved work is permanently lost, plus the fresh-session end state.

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

Conciseness5/5

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

Three tight sentences, front-loaded with the action and scope, then the use case, then the risk warning. No filler.

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

Completeness5/5

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

For a parameterless, non-returning mutation, the description covers action, scope, purpose, and data-loss warning — everything an agent needs to decide to call it.

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

Parameters4/5

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

The tool takes zero parameters, so the schema carries no semantics to supplement and no parameter explanation is needed. Per the baseline for 0-param tools, a 4 is appropriate.

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

Purpose5/5

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

Names a specific verb+resource (close EVERY open document) with explicit scope ('ALL', 'without saving') that distinguishes it from the sibling catia_close_document, which closes one.

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

Usage Guidelines4/5

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

Clearly states when to use it ('before starting a new piece/assembly') and gives concrete failure symptoms it prevents (Save As fails, ambiguous product file). It stops short of naming the alternatives (catia_save_all, catia_close_document) as explicit choices.

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

catia_close_documentC
Destructive

Close the active CATIA document.

ParametersJSON Schema
NameRequiredDescriptionDefault
saveNoWhether to save before closing (default: false)

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, so the description is not contradicting them, but it adds no behavioral context of its own. The critical fact for a destructive close — that unsaved changes are discarded unless save=true is passed — is never stated.

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

Conciseness4/5

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

One short, front-loaded sentence with no filler. It is efficient, though the brevity comes at the cost of the safety information an agent actually needs.

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

Completeness2/5

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

For a destructive, non-idempotent tool with no output schema, the description omits the one thing that matters: unsaved work is lost when save is left at its false default. That omission makes it incomplete for safe invocation.

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

Parameters3/5

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

Schema description coverage is 100% and the single 'save' parameter is documented in the schema with its default, so the schema carries the semantics. The description adds nothing beyond it, which is the baseline 3 for a fully covered schema.

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

Purpose4/5

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

States a specific verb (Close) and a specific resource (the active CATIA document), which implicitly separates it from catia_close_all, catia_close_sketch and catia_drawing_close. It stops short of naming any alternative explicitly, 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.

Usage Guidelines2/5

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

No when-to-use or when-not-to-use guidance. An agent cannot tell from this sentence whether it should prefer catia_close_all, catia_save_document + close, or catia_disconnect, nor what happens to a document with unsaved edits.

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

catia_close_sketchA

Close the active sketch and return to Part Design. Must be called after finishing sketch geometry before applying 3D features.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, so the mutation profile is covered. The description adds useful workflow context (mode transition back to Part Design), but does not disclose failure behavior when no sketch is open or the consequence of the non-idempotent nature.

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

Conciseness5/5

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

Two short sentences, zero padding, with the action front-loaded and the prerequisite second. Every clause earns its place.

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

Completeness4/5

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

For a zero-parameter, no-output-schema lifecycle tool this is nearly complete: it covers the action, the resulting state, and the workflow position. It could state what happens if there is no active sketch, which is the one plausible edge case an agent would hit.

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

Parameters4/5

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

The tool takes zero parameters, which is the baseline-4 case: there is nothing for the description to clarify beyond the empty schema. No parameter-level guidance is needed or missing.

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

Purpose4/5

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

States a specific verb ('Close') plus resource ('the active sketch') and the resulting mode switch ('return to Part Design'), so it is distinguishable from the catia_create_sketch / catia_sketch_* family. It stops short of naming a sibling alternative, but 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.

Usage Guidelines4/5

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

Explicitly gives the sequencing rule: called after finishing sketch geometry, before applying 3D features such as catia_pad or catia_pocket. Clear context for when to invoke, though it does not say what happens if no sketch is active or whether it can be safely skipped.

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

catia_coincidence_constraintB

Coincidence (Coïncidence) between two elements of two components: axis/axis (use axis_point on both), plane/plane, face/face, point/axis...

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoExplicit name for the coincidence in the tree (recommended).
element1YesGeometry of the component, in the component's OWN part coordinates (mm): {'face_point': [x,y,z]} a point inside a face; {'axis_point': [x,y,z]} a point on a cylindrical/conical face, meaning its AXIS; {'edge_point': [x,y,z]}; or {'plane': 'xy'|'yz'|'zx'} one of the component's origin planes. Use catia_list_faces on the part to find points, radii and axes.
element2YesGeometry of the component, in the component's OWN part coordinates (mm): {'face_point': [x,y,z]} a point inside a face; {'axis_point': [x,y,z]} a point on a cylindrical/conical face, meaning its AXIS; {'edge_point': [x,y,z]}; or {'plane': 'xy'|'yz'|'zx'} one of the component's origin planes. Use catia_list_faces on the part to find points, radii and axes.
component1YesInstance name (e.g. 'Engine.1'), or a path 'Sub.1/Part.1' for a sub-assembly child.
component2YesSecond instance name or path.
defer_updateNoSkip the solve after this constraint (default false). Each solve re-computes EVERY constraint, so its cost grows with the assembly: in a long sequence defer all but the last, then check with catia_update_assembly. The status is NOT evaluated when deferred.

TDQS

B3/5.0
Behavior2/5

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

Annotations mark this as a non-read-only, non-idempotent mutation, so the agent knows it changes state, but the description itself adds nothing about the effect: it does not state that a constraint is added to the assembly tree, whether a solve is triggered, what happens on failure, or how it interacts with existing constraints. With no output schema, the description carries the full behavioral burden and does not meet it.

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

Conciseness3/5

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

It is a single compact sentence with the supported pairings front-loaded, which is efficient. But the trailing ellipsis signals an unfinished enumeration, so the brevity reflects under-specification rather than disciplined concision.

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

Completeness2/5

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

For a multi-parameter assembly-mutation tool with nested geometry objects and no output schema, the description is too thin: it does not explain the resulting tree entry, solve behavior, or how defer_update/update_assembly fit the workflow (that context lives only in the schema). It leaves the agent without enough surrounding context to invoke the tool confidently in a sequence.

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

Parameters3/5

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

Schema description coverage is 100% and the nested element objects are richly documented (coordinates, units, plane enums, reference to catia_list_faces). The description only adds the pairing-to-parameter mapping ('use axis_point on both'), a marginal gain over 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.

Purpose4/5

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

The description names the specific constraint type (coincidence) and enumerates the element pairings it supports (axis/axis, plane/plane, face/face, point/axis), which distinguishes it from sibling constraint tools. However, it omits an explicit action verb (it never states that it CREATES/ADDS a constraint) and trails off with an ellipsis, leaving the full set of supported pairings ambiguous.

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

Usage Guidelines3/5

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

It gives one embedded usage hint ('axis/axis (use axis_point on both)'), which tells the agent how to supply a pairing, and the pairing list implies where coincidence applies. But it never says when to choose coincidence over the sibling constraints catia_contact_constraint, catia_offset_constraint, or catia_angle_constraint, and there is no explicit when/when-not guidance.

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

catia_connectA
Idempotent

Connect to CATIA V5. Attaches to a running instance or launches a new one. Must be called before any other CATIA tool.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=true), and the description adds genuinely new behavioral detail: the dual attach-or-launch mode and the mandatory ordering constraint. It leaves out what happens on failure (no instance, CATIA not installed) and whether multiple calls are safe, which keeps it below a 5.

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

Conciseness5/5

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

Three short sentences, zero waste, with the action stated first and the critical prerequisite placed at the end where it reads as a rule rather than an afterthought. Every sentence earns its place.

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

Completeness4/5

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

For a zero-parameter bootstrap tool with no output schema, the description supplies the essentials: what it connects to, how it obtains an instance, and when it must run. Error/edge-case behavior is the only real gap, and it is a minor one at this complexity level.

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

Parameters4/5

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

The tool takes zero parameters, so the schema imposes no documentation burden and the baseline of 4 applies. The description correctly does not fabricate parameter detail.

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

Purpose5/5

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

Specific verb+resource ('Connect to CATIA V5') with the exact behavioral scope spelled out: it either attaches to an existing instance or launches a new one. This distinctively separates it from sibling catia_disconnect and from every operation tool that assumes a live session.

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

Usage Guidelines4/5

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

States a hard prerequisite — 'Must be called before any other CATIA tool' — which is exactly the sequencing guidance an agent needs for a session-bootstrap tool. It does not name catia_disconnect as the teardown counterpart or describe re-connect behavior, so it stops short of full when/when-not coverage.

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

catia_contact_constraintC

Surface contact (Contact) between two faces of two components (type verified: catCstTypeSurfContact = 20).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoExplicit name for the contact in the tree (recommended).
element1YesGeometry of the component, in the component's OWN part coordinates (mm): {'face_point': [x,y,z]} a point inside a face; {'axis_point': [x,y,z]} a point on a cylindrical/conical face, meaning its AXIS; {'edge_point': [x,y,z]}; or {'plane': 'xy'|'yz'|'zx'} one of the component's origin planes. Use catia_list_faces on the part to find points, radii and axes.
element2YesGeometry of the component, in the component's OWN part coordinates (mm): {'face_point': [x,y,z]} a point inside a face; {'axis_point': [x,y,z]} a point on a cylindrical/conical face, meaning its AXIS; {'edge_point': [x,y,z]}; or {'plane': 'xy'|'yz'|'zx'} one of the component's origin planes. Use catia_list_faces on the part to find points, radii and axes.
component1YesInstance name (e.g. 'Engine.1'), or a path 'Sub.1/Part.1' for a sub-assembly child.
component2YesSecond instance name or path.
defer_updateNoSkip the solve after this constraint (default false). Each solve re-computes EVERY constraint, so its cost grows with the assembly: in a long sequence defer all but the last, then check with catia_update_assembly. The status is NOT evaluated when deferred.

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare non-destructive, non-idempotent mutation, and the description adds nothing behavioral beyond a numeric type ID. It does not state that a constraint feature is added to the tree, that the model is solved, or what happens if the geometry does not resolve.

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

Conciseness4/5

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

A single front-loaded sentence with no padding, giving the constraint kind and the type constant. It is efficient, though the parenthetical type ID is arguably noise for an agent.

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

Completeness3/5

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

For a mutation tool with no output schema, the one-line description leaves gaps: whether the constraint is committed immediately, how the deferred solve interacts with catia_update_assembly (that detail lives only in the schema), and what a failure looks like. The rich schema compensates partially but not fully.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents component/element encoding and the defer_update solve behavior; the description adds nothing about parameters. Baseline 3 applies when the structured schema carries the parameter burden.

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

Purpose4/5

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

The description names a specific verb+resource: a surface contact constraint between two faces of two components, and even pins the internal constraint type (catCstTypeSurfContact = 20). It clearly differentiates from the sibling constraint tools (coincidence, offset, angle) by naming 'surface contact', though it never explicitly contrasts them.

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

Usage Guidelines2/5

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

There is no guidance on when to choose this over catia_coincidence_constraint or catia_offset_constraint, nor any stated prerequisites (e.g. components must already be placed in an assembly). Usage is only implied by the tool name and the parameter shape.

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 new 2D sketch (in the active body) and open it for editing. Support, in priority order: face_point (the planar face of the solid that passes through this 3D point, e.g. 'the top face of the boss'), else plane + offset (a named offset plane is inserted in the tree), else the origin plane. The sketch axes are aligned on the origin plane parallel to the support (xy: H=X,V=Y; yz: H=Y,V=Z; zx: H=Z,V=X) with its origin on the projection of (0,0,0), so 2D coordinates stay the ones read on the drawing's view. Close with catia_close_sketch.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional name for the sketch.
planeNoOrigin plane: 'xy', 'yz', 'zx'. With face_point it is auto-detected from the face normal and can be omitted.xy
offsetNoDistance (mm) along the plane normal for a parallel offset plane.
face_pointNo[x, y, z] in mm of a point INSIDE the planar face to sketch on (not on its border). Searched in the active body first, then in the other bodies.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare it is a non-idempotent mutation with no global side effects; the description adds real behavior the agent needs: the sketch lands in the active body, it is opened for editing, an offset plane is inserted into the tree, and axis orientation is defined relative to the support.

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

Conciseness4/5

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

Front-loaded with the action and the support-selection priority before the axis-alignment detail. Dense but every clause carries information; the axis-mapping sentence is the most expendable but is still useful orientation context.

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

Completeness5/5

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

For a zero-required-param mutation tool with no output schema, the description covers creation, support resolution, editing state, tree effects, and the closing step. Nothing an agent needs to invoke it correctly is missing.

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

Parameters4/5

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 genuine meaning: what face_point really selects ('the top face of the boss'), that plane is auto-detected from the face normal and can be omitted, and how the sketch axes map to the chosen origin plane.

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

Purpose5/5

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

States a specific verb and resource ('Create a new 2D sketch ... and open it for editing'), scopes it to the active body, and distinguishes itself from the many catia_sketch_* geometry siblings that add content rather than create the sketch container itself.

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

Usage Guidelines5/5

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

Gives an explicit priority order for support selection (face_point, else plane + offset, else origin plane) and names the follow-up tool (catia_close_sketch). The agent knows both how to choose a support and how to end the workflow.

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

catia_delete_featureA
Destructive

Delete a feature or sketch from the active Body (right-click > Delete in the GUI). Use this to clean up after a failed/wrong operation instead of closing and recreating the whole document — e.g. a Shaft/Groove that raised an UpdateObject error can still leave a broken feature behind in the tree; delete it, fix the sketch, and retry.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoWhere to look for name: 'feature' (Body.Shapes), 'sketch' (Body.Sketches), or 'auto' (try both).auto
nameYesName of the feature or sketch to delete (e.g. 'Gorge.1'). Required: the tool never guesses which feature to delete.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, and non-idempotency; the description adds useful context beyond them — that the target must be in the active Body and that the tool 'never guesses which feature to delete', implying failure rather than a blind default. It does not say whether deletion is reversible or how the tree reacts, so it is strong but not complete.

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

Conciseness5/5

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

Two sentences with no filler: the action and scope come first, followed by the recovery workflow. Every clause earns its place.

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

Completeness4/5

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

For a simple two-parameter mutation with no output schema, the description covers scope, intent, and the failure mode that motivates it. It is nearly complete; only the post-deletion state (return value or tree effect) is left implicit, which is minor here.

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

Parameters3/5

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

Schema coverage is 100% and both parameters, including the enum values for 'kind' and the example name, are already documented. The description's mention of 'feature or sketch' largely restates what the kind enum encodes, so it adds little beyond the schema; baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Delete a feature or sketch') plus the exact scope ('from the active Body'), which separates it cleanly from siblings like catia_rename_feature, catia_list_features, or catia_get_tree. The GUI equivalence (right-click > Delete) anchors the action unambiguously.

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

Usage Guidelines5/5

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

Gives an explicit when-to-use scenario and names the alternative it replaces: clean up a broken feature left by a failed Shaft/Groove UpdateObject rather than closing and recreating the whole document, then fix the sketch and retry. The agent knows both the trigger and the competing strategy.

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

catia_describe_modelA
Read-only

Reverse-engineer the ACTIVE document without modifying it. CATPart: bodies, features in tree order, sketches with exact geometry (mm, sketch axes) and constraints, parameters, plane frames, volume, bounding box, inertia, plus the source of a replayable PartScript that rebuilds the part in a NEW document. A feature the reader does not understand is listed under 'opaque' (name, type, what is known, why) and the spec says replay.complete=false: nothing is guessed. CATProduct: components, poses, constraints and statuses. Limits: sketch constraints are described, not replayed; patterns, shell, draft, thickness and surfaces are opaque; edges are reproduced by a point on them. Units mm and degrees. Set output_dir to write _spec.json and _replay.py.

ParametersJSON Schema
NameRequiredDescriptionDefault
measureNoMeasure volume, box and inertia (the exact bounding box costs ~0.25 s per face; parts above 400 faces skip it).
validateNoDry-run the generated script against the tool schemas.
output_dirNoFolder to write the spec JSON and the replay script into (created if needed).
replay_nameNoPart name of the replay (default '<part>_Replay').
include_specNoReturn the full spec in the answer (false = summary only, useful for big models; the file is written either way).
include_scriptNoReturn the script source in the answer (it is written to output_dir either way).

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare readOnlyHint and openWorldHint, and the description goes well beyond them: it confirms no document mutation, discloses the 'opaque' fallback with replay.complete=false and 'nothing is guessed', and lists precise coverage limits (patterns, shell, draft, thickness, surfaces). This is the honest behavioral envelope an agent needs before trusting a spec-driven replay.

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

Conciseness4/5

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

Front-loaded with the core action and scope, then organized by CATPart / CATProduct / Limits / side effects. Dense and slightly long, but nearly every clause carries distinct information (units, file names, opaque handling) rather than restating the name.

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

Completeness5/5

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

With no output schema, the description must carry the return-value burden, and it does: it enumerates the spec contents per document type, states units, and explains the opaque/replay.complete mechanism. An agent has everything needed to call it and interpret the result.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds value the schema does not: it names the concrete artifacts written ('<name>_spec.json', '<name>_replay.py') and clarifies that files are written to output_dir regardless of the include_* flags. That extra artifact-level detail lifts it above baseline.

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

Purpose5/5

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

States a specific verb ('reverse-engineer') and resource ('the ACTIVE document') and then enumerates exactly what is produced for CATPart versus CATProduct. This clearly separates it from siblings like catia_get_tree, catia_audit_model, and catia_measure_model, which the agent can rule out 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.

Usage Guidelines4/5

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

Gives strong usage context ('without modifying it', active document only, output_dir to persist artifacts) and an explicit limits section naming what is described vs opaque. It does not name an alternative sibling or state when-not-to-use, 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_disconnectA
Idempotent

Disconnect from CATIA V5 (does not close CATIA).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true, destructiveHint=false, and readOnlyHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context the annotations cannot express: the session-level effect is a disconnect, not a document/session teardown, which reassures the agent that open documents survive.

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

Conciseness5/5

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

One short sentence with zero waste; the most load-bearing fact (does not close CATIA) is bolted directly onto the verb rather than buried.

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

Completeness4/5

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

For a parameterless, side-effecting session tool this is essentially complete: the scope boundary is stated and annotations cover idempotency and safety. No output schema exists, so there are no return values to explain.

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

Parameters4/5

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

Zero parameters, so there is nothing for the description to disambiguate and the baseline applies. No param guidance is missing or needed.

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

Purpose5/5

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

States a specific verb (disconnect) and resource (CATIA V5 session), and immediately distinguishes itself from the closing siblings by clarifying it does not close CATIA. An agent can tell this apart from catia_close_document or catia_close_all without opening any schema.

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

Usage Guidelines4/5

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

The parenthetical scoping note ('does not close CATIA') implicitly tells the agent when to reach for this rather than a close tool, which is the main ambiguity in this sibling set. It stops short of an explicit when-to-use statement, but the contrast with the close family is clear.

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

catia_draftC

Draft (Dépouille) of the faces through face_points by 'angle' degrees, about the neutral face through neutral_face_point (or an origin plane neutral_plane), pulling along 'direction'. Verified live.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoExplicit name for the created feature in the specification tree (e.g. 'Pad_Bras_20mm', 'Trou_Conique_D12'). Strongly recommended: default names like 'Extrusion.3' make the tree unreadable and are flagged by tree audits.
angleYes
directionYesPulling direction [dx, dy, dz].
face_pointsYes
neutral_planeNo
neutral_face_pointNo

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, and openWorldHint=false. The description adds only 'Verified live,' which does not disclose mutation side effects, required workbench/selection state, or how the feature is committed. It does not contradict annotations, but it contributes almost no behavioral detail 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.

Conciseness4/5

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

A single dense sentence front-loads the operation and key inputs. 'Verified live.' is extraneous and the parenthetical nesting makes parsing harder, but overall there is little waste.

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

Completeness3/5

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

For a 6-parameter feature-creation tool with no output schema and only 33% schema coverage, the description covers the core geometric recipe but omits prerequisites (active body/geoset, face selection state) and any result/return context. With annotations covering safety flags, this is minimum viable but not complete.

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

Parameters3/5

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

Schema coverage is 33%, so the description must compensate for undocumented parameters. It explains angle is in degrees, direction is pulling direction, face_points define drafted faces, and neutral_face_point/neutral_plane provide the neutral reference. It still leaves face_points' expected geometry (points-on-face? coordinates?) and neutral_plane enum semantics largely implicit, so compensation is partial.

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

Purpose4/5

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

States a specific modeling operation: creates a draft (Dépouille) on faces using angle, neutral reference, and pull direction. It is not a tautology and clearly names the CATIA feature. It does not explicitly distinguish itself from other feature-creation siblings such as fillet/chamfer, but 'draft' is a distinct operation.

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

Usage Guidelines2/5

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

No explicit when-to-use, prerequisites, or alternative-tool guidance is given. The agent is told what inputs to supply, not when to choose catia_draft over neighboring feature tools. 'Verified live' does not function as usage guidance.

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

catia_drawing_add_centerlinesA

Draw centre lines (thin chain lines, ISO 128-2 type 04.1) crossing at each given circle centre of a view, extending extension_mm (paper) beyond the circle. centres: [{u, w, radius}] in view coordinates. Returns the number of lines created.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewYes
centresYes
drawingNoName of the CATDrawing document (default: the active document).
extension_mmNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare it is a write, non-idempotent, non-destructive operation. The description adds useful context: the exact line type, that extension_mm is measured in paper space beyond the circle, and that the return value is a count of created lines. It does not mention duplicate creation on repeat calls, though the non-idempotent annotation covers that behavior.

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

Conciseness5/5

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

Three short sentences/fragments, front-loaded with the action and line standard, followed by parameter semantics and return value. No redundant or filler text.

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

Completeness4/5

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

For a write tool with no output schema, the description covers the operation, the centre coordinate meaning, extension behavior, and return count. It omits explicit clarification of the required 'view' parameter's expected format and the drawing default, but these are minor given the schema and annotations.

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

Parameters3/5

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

Schema coverage is only 25%, so the description must compensate. It explains centres as [{u, w, radius}] in view coordinates and extension_mm as paper-space extension beyond the circle, but leaves the required 'view' and optional 'drawing' parameters unspecified.

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

Purpose5/5

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

States a specific verb ('Draw centre lines'), the resource (view circles), the line standard (thin chain, ISO 128-2 type 04.1), and the extension behavior. Clearly distinguishable from siblings such as catia_drawing_add_dimension or catia_drawing_add_view.

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

Usage Guidelines3/5

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

Implies usage for adding centerlines to circles in a drawing view, but gives no explicit when-to-use/when-not-to-use guidance or named alternatives. The agent must infer the operational context 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_drawing_add_dimensionA

Add ONE dimension to a view, in view coordinates (u, w) (mm, model scale, see catia_drawing_add_view). type='linear': from and to points, orientation horizontal | vertical | aligned, the dimension line is placed offset_mm (paper) away on side (below/above for horizontal, right/left for vertical, left/right of the from->to direction for aligned). type='diameter' or 'radius': centre and diameter/radius of the circle, leader at leader_angle_deg. Take the values from the model (catia_list_faces gives cylinder radii and axes), never from memory: the dimension shows the value you give, the tool cannot attach it to the generated edge; catia_drawing_check compares it with the PDF. ISO 129-1: one dimension per feature, keep dimension lines >= 10 mm from the outline (offset_mm default 10), each following line 7 mm further. prefix e.g. '4x ' for identical holes. Returns JSON {dimension, type, value_mm, expected_mm, line}; a value that differs from the request by more than 0.005 mm removes the dimension and fails.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNolinear: second point [u, w].
fromNolinear: first point [u, w].
sideNo
typeYes
viewYesView name (see catia_drawing_info).
centreNodiameter/radius: circle centre [u, w].
prefixNoText before the diameter/radius symbol and value, e.g. '4x ' is written before the diameter symbol.
radiusNoradius dimension: the circle radius, mm.
drawingNoName of the CATDrawing document (default: the active document).
diameterNodiameter dimension: the circle diameter, mm.
offset_mmNoDistance of the dimension line from the feature, paper mm.
orientationNohorizontal
allow_duplicateNodiameter/radius: allow a second dimension of the same value in the view (refused by default, ISO 129-1).
leader_angle_degNodiameter/radius: direction of the dimension line, degrees counter-clockwise from +u.

TDQS

A4.6/5.0
Behavior5/5

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

Adds substantial behavioral context beyond the annotations: it discloses the JSON return shape, a precise failure mode (value differs by >0.005 mm removes the dimension and fails), and the key limitation that the dimension displays the supplied value rather than attaching to generated edges. These details materially help an agent predict outcomes and handle errors, while the annotations already cover mutability and idempotency.

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

Conciseness4/5

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

Front-loads the core action ('Add ONE dimension') and organizes remaining details by dimension type and constraint. It is dense and somewhat run-on, but every sentence adds operational information for a complex 14-parameter tool, so there is little waste.

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

Completeness5/5

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

Complete for a mutation tool with no output schema: it describes the return value, failure behavior, source-of-truth requirement, coordinate system, and relevant drafting standards. An agent has enough context to call the tool correctly without needing to inspect other structured fields.

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

Parameters4/5

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

With 14 parameters and 79% schema description coverage, the description contributes meaningful semantics for many parameters, including coordinate meaning (u,w in model scale), orientation behavior, side placement, leader angle for radius/diameter, and ISO spacing rules for offset_mm. Some parameters, such as drawing and allow_duplicate, rely mainly on the schema, so it does not fully compensate for every gap.

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

Purpose5/5

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

States a specific verb and resource: 'Add ONE dimension to a view' and enumerates the supported dimension types (linear, diameter, radius) with their required geometry. It distinguishes itself from related tools by referencing catia_list_faces for source values, catia_drawing_check for verification, and catia_drawing_add_view for coordinate context.

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

Usage Guidelines4/5

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

Gives clear procedural guidance: values must be taken from the model, not from memory, and it cites ISO 129-1 placement rules and the offset default. However, it does not explicitly state when to use this manual dimensioning tool versus the sibling catia_drawing_generate_dimensions, leaving that alternative to inference.

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 one view of the 3D source to the drawing and place it. kind: front (the base view, create it first), top/bottom/left/right/rear (orthographic projections of the front view: 'right' = seen from the right of the front view), isometric, section, detail. Placement (position='auto', default): ISO 5456-2 arrangement from the plan of catia_drawing_create (first angle: top view BELOW the front, right view on its LEFT; third angle mirrored), else beside the parent in a free spot. Give position [x, y] (sheet mm, origin bottom-left, view CENTRE) to override. A view that would overlap another one or leave the frame is refused and removed. View coordinates (u, w), used by section/detail/dimensions, are millimetres at MODEL scale with the origin on the projection of the model origin; u to the right, w up. With view_from='-Y': front u=X, w=Z; top u=X, w=Y; right u=Y, w=Z; left u=-Y, w=Z; bottom u=X, w=-Y; rear u=-X, w=Z. section: give parent, cut_direction ('vertical' = cutting line x=cut_at, 'horizontal' = line y=cut_at, in the parent's (u,w)) or cutting_line [[u1,w1],[u2,w2]]; the tool draws the cutting-plane arrows, labels (A-A) and hatching; flip with side=1 if the wrong half is shown. detail: parent, centre [u,w], radius (mm, model scale), scale (default '5:1'). Returns JSON: view name, kind, scale, centre, paper box, origin, and the axes needed by catia_drawing_check.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYes
sideNosection: which side is drawn.
labelNoView name (default: the kind, capitalised; CATIA appends A-A / A to section and detail views).
scaleNoView scale ('1:2', '5:1'); default the sheet scale (details default to '5:1'). A view whose scale differs from the sheet must be labelled (ISO 5455): CATIA prints it.
centreNodetail: circle centre [u, w] in the parent view (model mm).
cut_atNosection: u (vertical) or w (horizontal) of the cutting line.
gap_mmNoMinimum clearance between views (paper mm).
parentNoReference view for projections, section, detail (default: the front view).
radiusNodetail: circle radius (model mm).
sourceNoOpen CATPart/CATProduct (default: the one given to create).
drawingNoName of the CATDrawing document (default: the active document).
positionNoauto
view_fromNofront only: side the viewer stands on (default: from create, '-Y').
cutting_lineNosection: [[u1, w1], [u2, w2]] in the parent view (model mm).
hidden_linesNoShow hidden edges as thin dashed lines.
cut_directionNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations declare the safety profile (non-readOnly, non-destructive, non-idempotent), and the description adds real behavioral context: overlapping/out-of-frame views are refused and removed, CATIA prints scale labels, CATIA appends A-A/A to section/detail names. It does not cover auth/preconditions or response side effects beyond the return JSON note.

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

Conciseness4/5

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

Front-loaded with the core action and kind list before the deeper placement/coordinate mechanics, and virtually every sentence carries necessary information. It is dense and long, but justified by the 16-parameter, multi-mode nature of the tool; a slightly lighter structure would be ideal.

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

Completeness5/5

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

With no output schema, the description compensates by naming the returned JSON fields (view name, kind, scale, centre, paper box, origin, axes for catia_drawing_check). Combined with the placement, coordinate and section/detail rules, an agent has everything needed to call it correctly.

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

Parameters5/5

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

Schema coverage is 81% (baseline 3), but the description goes well beyond it: it explains the ISO 5456-2 auto-placement rule and first/third-angle behavior, the sheet-mm centre-based position override, the (u,w) model-scale coordinate system with per-view_from axis mapping, and the section cut_direction/cutting_line semantics. This is substantive meaning the schema does not convey.

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

Purpose5/5

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

States a specific verb and resource ('Add one view of the 3D source to the drawing and place it') and enumerates the exact kind options, so it is clearly distinguishable from siblings like catia_drawing_create or catia_drawing_add_dimension. The scope is unambiguous.

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

Usage Guidelines4/5

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

Gives a clear ordering constraint ('front (the base view, create it first)'), and the kind list effectively documents which kind to pick for which purpose. It does not explicitly name alternative tools or when-not-to-use, 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_drawing_checkA
Read-only

CLOSED-LOOP CHECK: export the drawing to PDF, read it back and compare it with the 3D model. For every orthographic view created by add_view: circles (diameters within 0.02 mm, centres within 0.05 mm, hole pitches), the four sides of the projected outline, the view size on paper vs the 3D bounding box x scale. The 3D side is read from source (catia_list_faces cylinders + catia_get_bounding_box of the active body) unless expected is given. Diameter/radius dimensions are cross-checked against the circles found in the PDF. Limits: a blind hole is only visible from its open side (list the views that show it in views); circles under 2 mm are text-sized and ignored. Returns JSON with ok and per-view details.

ParametersJSON Schema
NameRequiredDescriptionDefault
pdfNoExisting PDF of this drawing (default: export a temporary one).
viewsNoView names to check (default: all).
sourceNo
drawingNoName of the CATDrawing document (default: the active document).
expectedNoOverride of the 3D side: {view: {circles: [{cx, cy, d}], box: [umin, wmin, umax, wmax]}} in view mm.
centre_tol_mmNo
diameter_tol_mmNo
require_circlesNoFail unless at least this many circles were expected and matched in total (a check that expects nothing proves nothing).
fail_on_mismatchNoRaise an error (exit code 1 in the scenario runner) when anything does not match.

TDQS

A4.3/5.0
Behavior4/5

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

The description goes well beyond the sparse annotations: it discloses the closed-loop workflow, the tolerances applied, the error behavior of fail_on_mismatch (exit code 1), the return shape (JSON with ok and per-view details), and two real limits (blind holes only visible from the open side, sub-2mm circles ignored). readOnlyHint=true is not contradicted since it only exports a temporary PDF.

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

Conciseness4/5

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

The critical framing ('CLOSED-LOOP CHECK') is front-loaded, followed by what is checked, the data source, and the limits. It is dense and slightly overpacked into a few long sentences, but nearly every clause carries information an agent needs.

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

Completeness4/5

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

For a 9-parameter verification tool with no output schema and minimal annotations, the description is substantially complete: it covers inputs, data sources, tolerances, limits, and the failure mode. It could still say more about when the check is appropriate relative to sibling QA tools, but nothing needed to invoke it correctly is missing.

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

Parameters4/5

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

With 67% schema coverage, the description compensates by explaining the semantics of `source` (catia_list_faces + catia_get_bounding_box of the active body), `expected` (the override structure), `views` (which views a blind hole appears in), and the tolerance defaults (0.02 mm diameter, 0.05 mm centre). This adds real meaning over the raw schema.

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

Purpose5/5

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

The opening line names a specific verb chain and resource: 'export the drawing to PDF, read it back and compare it with the 3D model.' It is immediately distinguishable from siblings like drawing_render, drawing_overlay, or drawing_extract_geometry, which do not perform a 3D-vs-PDF comparison.

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

Usage Guidelines4/5

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

It tells the agent what the check covers, what the defaults are (export temp PDF, check all views) and the condition that switches the 3D side ('unless `expected` is given'). It stops short of explicitly contrasting with alternatives such as catia_audit_model or drawing_overlay, so no 'when not to use'.

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

catia_drawing_closeA

Close ONE drawing (the named one, else the drawing this session last used) without touching any other document; the 3D source stays open. save=false (default) discards changes, save=true saves it first (the drawing must already have a file name: use catia_save_document with a path beforehand).

ParametersJSON Schema
NameRequiredDescriptionDefault
saveNo
drawingNoName of the CATDrawing document (default: the active document).

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly=false, idempotent=false, destructive=false; the description adds genuine behavioral detail beyond that — save=false silently discards changes, save=true persists, the 3D source is untouched, and saving demands a prior file name. The one tension is that 'discards changes' has a mildly destructive flavor against destructiveHint=false, though this is a reasonable design choice rather than a clear contradiction.

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

Conciseness4/5

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

Front-loaded with the core action and scope, then the save semantics and prerequisite. Dense but every clause (scope, source-stays-open, save default, file-name requirement) carries information the agent needs; only the nested parenthetical is slightly heavy.

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

Completeness4/5

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

For a 2-parameter, no-output-schema tool this is close to complete: default resolution, save behavior, preconditions, and blast radius are all covered. A brief word on failure mode (e.g., what happens if save=true without a file name) would close the last gap.

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

Parameters4/5

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

With 50% schema coverage the description must carry part of the load, and it does: it explains the resolution order for 'drawing' (named, else this session's last used) and the full semantics of 'save' including its default and its file-name prerequisite. This exceeds the schema's bare 'default: the active document' note.

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

Purpose5/5

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

Specific verb (close) plus precise resource (ONE drawing, named or session-last-used) and an explicit negative scope ('without touching any other document'), which separates it cleanly from catia_close_document and catia_close_all. The added note that the 3D source stays open removes the main ambiguity an agent would otherwise have.

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

Usage Guidelines4/5

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

Usage context is clear: defaults to the last-used drawing, and save=true requires a pre-existing file name, routing the agent to catia_save_document with a path first. It does not explicitly state when to prefer catia_close_document or catia_close_all instead, but the 'ONE drawing / nothing else' framing makes the boundary inferable.

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

catia_drawing_createA

Create a new CATDrawing with an ISO 5457 sheet (A0-A4), a main scale (ISO 5455), the projection method (first_angle = Europe/ISO default, third_angle = USA) and the 0.7 mm drawing frame (20 mm left margin, 10 mm elsewhere). Then call catia_drawing_add_view for each view, catia_drawing_title_block, catia_drawing_export_pdf and catia_drawing_check. sheet='auto' and/or scale='auto' need source (an OPEN CATPart/CATProduct): the tool measures the views listed in views and picks the smallest sheet and the largest recommended scale (>= min_scale) that hold them with room for dimensions and the title block; the plan (sheet, scale, view centres) is returned and used by add_view when position='auto'. Units: mm. Returns JSON {drawing, sheet, scale, projection, frame, plan, warnings}. The drawing is left open and active; nothing is saved.

ParametersJSON Schema
NameRequiredDescriptionDefault
frameNoDraw the ISO 5457 frame.
scaleNo'1:1', '1:2', '2:1', '1:5'... (paper:model) or 'auto'.1:1
sheetNo'A0'..'A4' or 'auto'.A3
viewsNoViews to plan for 'auto' (default front, top, right).
sourceNoName of the open CATPart/CATProduct to draw (e.g. 'Flange.CATPart', or its part name 'Flange'). Required for sheet/scale 'auto'; remembered for add_view.
min_scaleNoSmallest acceptable scale for 'auto'.1:2
view_fromNoSide the viewer stands on for the FRONT view. '-Y' = CATIA's usual front (X right, Z up); '+Z' = look down at the part (X right, Y up).-Y
projectionNofirst_angle
orientationNoDefault: ISO 5457 (A0-A3 landscape, A4 portrait).
title_block_height_mmNoStrip kept free above the bottom frame line for the title block.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations declare a non-read-only, non-idempotent but non-destructive mutation; the description adds meaningful state effects beyond that — the drawing is left open and active and nothing is saved — plus the warnings field in the return and the plan-then-add_view handoff. It does not specify required permissions or license prerequisites, which keeps it short of a 5.

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

Conciseness4/5

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

The first sentence is front-loaded with the core capability; the second gives the workflow; the third explains the auto behavior; a short tail covers units, return shape, and open/unsaved state. It is dense and longer than most, but nearly every clause carries distinct information rather than restating the schema.

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

Completeness4/5

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

With no output schema, the description compensates by naming the returned JSON keys ({drawing, sheet, scale, projection, frame, plan, warnings}) and the open/unsaved side effect. Given 10 parameters and the auto-planning complexity, this is close to complete, though it omits permission/auth requirements and whether an existing open drawing affects the call.

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

Parameters4/5

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

Schema coverage is already 90%, so the baseline is 3, but the description adds real meaning for the auto path (sheet/scale='auto' needs source, measures views, picks smallest sheet and largest scale >= min_scale) and notes that source is 'remembered for add_view' and that the returned plan drives position='auto'. Units (mm) and the view_from convention are also clarified.

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

Purpose5/5

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

Opens with a specific verb+resource and immediately enumerates the distinguishing attributes (ISO 5457 sheet A0-A4, ISO 5455 scale, projection method, 0.7 mm frame with 20/10 mm margins). It also situates itself in the workflow by naming the follow-up drawing tools, so an agent can tell catia_drawing_create apart from catia_drawing_add_view or title_block 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.

Usage Guidelines4/5

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

Prescribes the exact downstream sequence (add_view, title_block, export_pdf, check) and states the prerequisite for the 'auto' path: source must be an OPEN CATPart/CATProduct. It does not name an alternative drawing-creation tool or explicitly say when not to use it, but for a creation entry point the sequencing guidance is clear.

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

catia_drawing_export_pdfB

Export the drawing to a vector PDF (DrawingDocument.ExportData). Checks the file exists and, when PyMuPDF is installed, that the PDF page equals the sheet (mm). Returns JSON {path, bytes, page_mm, sheet_mm, page_matches_sheet}. Overwrites an existing file.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute path ending in .pdf.
drawingNoName of the CATDrawing document (default: the active document).

TDQS

B3.4/5.0
Behavior1/5

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

The description discloses useful behavior such as file existence checking, optional PyMuPDF verification, return fields, and overwriting an existing file. However, overwriting an existing file contradicts the destructiveHint=false annotation, which claims only additive updates. This is an annotation contradiction.

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

Conciseness5/5

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

The description is compact and front-loaded, starting with the core action. Each sentence adds operational value: checks, return shape, and overwrite note.

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

Completeness4/5

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

For a two-parameter export tool with no output schema, the description supplies return fields, verification behavior, and overwrite behavior. It is nearly complete for invocation, though it lacks sibling routing guidance and the overwrite/destructiveHint conflict is misleading.

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

Parameters3/5

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

Schema description coverage is already 100%, and the description adds no parameter-level semantics beyond what the schema documents. The path and drawing parameters are fully described in 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.

Purpose5/5

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

The description states a specific verb and resource: export the drawing to a vector PDF, and even names the underlying API. It distinguishes the operation from generic export/screenshot siblings by specifying vector PDF output.

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

Usage Guidelines3/5

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

The intended context is implied by the PDF export purpose, but there is no explicit guidance on when to use this instead of siblings like catia_export, drawing_render, or drawing_overlay. No when-not conditions are given.

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

catia_drawing_generate_dimensionsA

Run CATIA's 'Generate Dimensions' on the active sheet: creates the dimensions driven by the 3D constraints of the model (pad lengths, hole diameters...). It does NOT dimension everything (overall sizes and hole positions are usually missing) and CATIA draws them green: complete the drawing with catia_drawing_add_dimension. Returns JSON with every dimension per view (type, value, mm).

ParametersJSON Schema
NameRequiredDescriptionDefault
drawingNoName of the CATDrawing document (default: the active document).

TDQS

A4.1/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false and idempotentHint=false, so the agent already knows this mutates state; the description adds genuinely new context — that the generated set is incomplete (overall sizes and hole positions missing), that dimensions are drawn green, and that a JSON summary is returned per view with type/value/mm. It does not mention undo/reversibility or whether rerunning duplicates dimensions, which is the main remaining gap.

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

Conciseness4/5

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

Front-loaded with the action and outcome, with the caveat and the sibling hand-off following in a logical order. It is dense but each clause carries information; the parenthetical return-format note is slightly compressed but not wasteful.

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

Completeness4/5

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

With no output schema, the description helpfully explains the return shape (JSON per view with type, value, mm) and warns about incomplete output, which an agent needs to plan around. Prerequisites and idempotency/duplicate-run behavior are unaddressed, keeping it below a 5.

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

Parameters3/5

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

Only one optional parameter ('drawing'), and its schema description already documents the default-to-active-document behavior at 100% coverage. The description adds no syntax or format detail beyond the schema, so the baseline of 3 applies.

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

Purpose5/5

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

States a specific verb and target ('Run CATIA's Generate Dimensions on the active sheet') and immediately describes what it produces (dimensions driven by 3D constraints such as pad lengths and hole diameters). It also explicitly distinguishes itself from the sibling catia_drawing_add_dimension, which handles the dimensions this tool leaves out.

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

Usage Guidelines4/5

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

Clearly frames the workflow: this tool auto-generates a partial set, and 'complete the drawing with catia_drawing_add_dimension' names the follow-up alternative. It could go further by stating prerequisites (an existing sheet/view must be active) or when to skip auto-generation entirely, 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_drawing_infoA
Read-only

Read the drawing back: sheet format, scale, projection, every view (kind, scale, centre, paper box, origin) and every dimension (type, value). Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
drawingNoName of the CATDrawing document (default: the active document).

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the trailing 'Read-only' is largely redundant. What earns credit is the rich disclosure of what is returned (view geometry, dimension values), which, with no output schema, gives the agent real behavioral context about the read operation.

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

Conciseness5/5

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

A single dense sentence with the primary action front-loaded and the payload inventory following. No filler, no repetition of the name or title.

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

Completeness4/5

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

With no output schema, the description carries the burden of describing returns and does so thoroughly. It is nearly complete for a one-parameter read tool; only minor gaps remain, such as error behavior when the drawing is missing.

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

Parameters3/5

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

Only one parameter and schema description coverage is 100%, so the schema already documents the 'drawing' name and its default to the active document. The description adds nothing beyond that, which is the expected baseline when the schema does the work.

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

Purpose5/5

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

States a precise verb+resource ('read the drawing back') and enumerates the exact content returned: sheet format, scale, projection, views (kind, scale, centre, paper box, origin) and dimensions (type, value). This inventory distinguishes it from siblings like catia_drawing_check (validation) and drawing_extract_geometry without needing to name them.

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

Usage Guidelines3/5

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

Usage is implied by the verb and the read-only nature, but there is no explicit when-to-use guidance and no mention of the nearby alternatives (catia_drawing_check, drawing_extract_geometry, drawing_render) or the conditions that select this tool over them.

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

catia_drawing_title_blockA

Draw the ISO 7200:2004 title block (180 mm wide table in the bottom right corner of the frame), the scale, the general tolerance note (ISO 2768) and the projection symbol of ISO 5456-2. fields: legal_owner, identification_number, date_of_issue, sheet_number, title, approval_person, creator, document_type are MANDATORY (missing ones are refused); optional: supplementary_title, revision_index, number_of_sheets, responsible_department, technical_reference, document_status, classification, paper_size. general_tolerance: f, m (default), c or v. Nothing is invented: only what you pass is written. Returns JSON with the block rectangle, rows written and ISO warnings (e.g. too long a title).

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsYesISO 7200 field key -> text.
drawingNoName of the CATDrawing document (default: the active document).
general_toleranceNom

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare a safe (non-readonly, non-destructive) mutation, but the description adds real value beyond them: 'missing ones are refused' documents validation behavior, 'Nothing is invented: only what you pass is written' rules out defaulting/inference, and the return payload including ISO warnings is disclosed. Only minor gaps (e.g., error modes when no drawing is active) remain.

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

Conciseness4/5

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

Front-loaded with the drawn artifacts, then constraints, then behavior and return value — a sensible ordering. It is dense and slightly run-on, but every clause (mandatory vs optional, tolerance codes, no-invention rule, warnings) earns its place.

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

Completeness4/5

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

For a mutation tool with no output schema, the description covers inputs, validation, write semantics, and the returned structure, which is close to complete. It omits what happens if no drawing document is open or which drawing the block attaches to by default, a minor gap.

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

Parameters5/5

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

Schema coverage is 67% and the nested 'fields' object is opaque ('ISO 7200 field key -> text'), so the description carries the load by enumerating the eight mandatory keys and eight optional keys plus their semantics. It also states the general_tolerance values and default, which the schema only lists as an enum.

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

Purpose5/5

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

Opens with a specific verb+resource ('Draw the ISO 7200:2004 title block') and enumerates the exact artifacts produced (block table, scale, ISO 2768 tolerance note, ISO 5456-2 projection symbol). This is unmistakably distinct from drawing siblings like catia_drawing_add_view or catia_drawing_add_dimension.

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

Usage Guidelines3/5

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

Usage context is implied (a drawing must exist, mandatory fields are refused if missing) but there is no explicit when-to-use statement or routing against alternatives such as catia_drawing_create or the other drawing_* tools. The agent must infer that this is a post-creation annotation step.

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

catia_duplicate_componentA

Insert N more instances of an existing component (same reference, like 'Définir une multi-instance'), each shifted by 'step' mm from the previous one. Constrain them afterwards.

ParametersJSON Schema
NameRequiredDescriptionDefault
stepNo[dx, dy, dz] shift between instances (default [0, 0, 50]).
countYes
componentYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations declare non-readonly, non-idempotent, non-destructive, so the mutation profile is known. The description adds real context beyond that: duplicates share the same reference, each is offset by the step vector, and they arrive unconstrained (requiring follow-up constraint work). It still doesn't mention failure/rollback behavior, but the added detail is meaningful.

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

Conciseness4/5

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

Two compact sentences, front-loaded with the core action and ending with the follow-up imperative. No padding. Slightly terse to the point where the follow-up clause reads as an aside rather than grounded guidance.

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

Completeness4/5

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

For a 3-parameter mutation tool with annotations covering the safety profile and no output schema, the definition gives what an agent needs to call it correctly: what gets created, how it is spaced, and that constraint work follows. Missing only edge-case behavior (invalid component reference, negative counts, mode/context requirements).

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

Parameters4/5

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

Schema description coverage is only 33% (only 'step' is documented in the schema), so the description must compensate. It does: 'N more instances' maps count, 'existing component' maps component, and the step shift is described, matching the schema's [dx, dy, dz] default. The default [0,0,50] is left to the schema.

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

Purpose5/5

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

States a specific verb (Insert N more instances) on a specific resource (an existing component) and names the native CATIA behavior it mirrors ('Définir une multi-instance'). It is clearly distinguishable from siblings like catia_add_component (new instance of a reference) and catia_move_component (repositioning).

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

Usage Guidelines3/5

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

The trailing 'Constrain them afterwards' implies a workflow step (duplicate, then constrain with catia_coincidence_constraint etc.), which is useful. However, it never says explicitly when to prefer this over catia_add_component or catia_add_new_part, nor any prerequisites such as the component existing in the active assembly.

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 file. Supported formats: STEP (.stp), IGES (.igs), STL (.stl), 3DXML (.3dxml), VRML (.wrl), PDF (2D drawings).

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoExport format (optional if file extension is provided). One of: step, iges, stl, 3dxml, vrml
file_pathYesOutput file path. The format is determined by the extension. Example: 'C:/export/my_part.stp'

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, so the mutation/safety profile is partly covered, and the description adds the format surface. However, it omits key export behavior: whether an existing target file is overwritten, whether the output directory must pre-exist, and whether export modifies the live document. The listed

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

Conciseness5/5

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

Two sentences, zero waste, with the core action front-loaded and the format enumeration kept compact. Nothing needs to be cut.

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

Completeness3/5

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

With no output schema, the description should carry more of the burden for an export tool. It never says what is returned (success flag, written path, error behavior), nor how it handles overwrites or missing directories, and it advertises PDF which the format enum does not contain.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters are fully documented, including the enum and the extension-overrides-format rule, so the baseline is 3. The description's format list merely restates part of the enum, adding no syntax or precedence detail beyond the schema.

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

Purpose5/5

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

States a specific verb (export), a specific resource (the active document), and a destination (a file), then enumerates the supported formats. An agent can distinguish it from catia_save_document (which persists the native document) without opening either schema.

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

Usage Guidelines3/5

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

Usage is implied by 'active document' and the format list, but there is no explicit guidance on when to use this versus catia_save_document or catia_drawing_export_pdf, and no prerequisites (e.g., an active document must exist). No when-not guidance or alternatives are named.

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

catia_filletA

Constant-radius edge fillet on one or more edges, as ONE fillet feature (like selecting several edges in the Congé d'arête dialog). Edges are designated by a 3D point lying on each of them (e.g. the midpoint of the edge read on the drawing); searched in the active body. Tangent edges are propagated automatically. Use catia_list_edges to see edge endpoints if unsure.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoExplicit name for the created feature in the specification tree (e.g. 'Pad_Bras_20mm', 'Trou_Conique_D12'). Strongly recommended: default names like 'Extrusion.3' make the tree unreadable and are flagged by tree audits.
radiusYesFillet radius in mm
edge_pointsYesOne [x, y, z] (mm) per edge, each ON the edge.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations cover the safety profile (non-readOnly, non-destructive, non-idempotent), and the description adds meaningful behavior beyond them: tangent edges are propagated automatically, edges are searched in the active body, and multiple edges collapse into a single feature. It does not describe failure behavior when a point misses an edge.

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

Conciseness4/5

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

Front-loaded with the core operation and scope, then the edge-identification rule and the sibling pointer. The parenthetical dialog analogy is slightly verbose but genuinely aids recognition; no wasted sentences.

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

Completeness4/5

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

For a mutation tool with no output schema, it covers the essentials: what is created, how edges are targeted, tangent propagation, and the search body. Missing only failure/validation behavior and whether the resulting feature name is returned, which the name parameter partly implies.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds practical meaning: edges are specified by a 3D point lying on each edge (midpoint hint), and the active body is the search scope. That is more than the schema alone conveys about how to supply edge_points.

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

Purpose5/5

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

States a specific verb+resource ('constant-radius edge fillet on one or more edges') and clarifies the key semantic that multiple edges yield ONE fillet feature, paralleling the Congé d'arête dialog. This clearly distinguishes it from siblings like catia_chamfer or catia_shell.

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

Usage Guidelines4/5

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

Explicitly routes the agent to catia_list_edges when edge endpoints are unknown, which is exactly the prerequisite an agent needs. It lacks an explicit when-not (e.g. variable-radius or face fillets, or chamfer-vs-fillet choice), so it falls short of a 5.

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

catia_fit_allA
Idempotent

Fit all geometry in the current 3D view (zoom to fit).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the agent knows this is a safe, repeatable operation. The description usefully adds that the effect is scoped to the current 3D view rather than the model, but it does not clarify that geometry/model data is untouched, which is the main thing an agent would want confirmed given readOnlyHint=false.

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

Conciseness5/5

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

A single short sentence with the action front-loaded and the clarifying gloss appended; no wasted words.

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

Completeness4/5

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

For a no-parameter view tool with no output schema, the description covers what the agent needs, though a brief note that it does not modify model data would fully close the gap left by readOnlyHint=false.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies.

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

Purpose5/5

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

States a specific verb (fit) and resource (all geometry) plus the scoped target (current 3D view), and the parenthetical 'zoom to fit' removes any ambiguity about what 'fit' means. An agent can distinguish this from view-manipulation siblings such as catia_set_view or catia_clean_display without opening a schema.

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

Usage Guidelines2/5

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

The description never states when to call this versus alternatives like catia_set_view or catia_clean_display, nor any prerequisite (e.g. an active document). Usage is only weakly implied by 'current 3D view'.

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

catia_fix_constraintB

Fix a component in space (Fixer). The first/reference component of an assembly must be fixed.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoExplicit constraint name (recommended).
componentYesInstance name or path.
defer_updateNoSkip the solve after this constraint (default false). Each solve re-computes EVERY constraint, so its cost grows with the assembly: in a long sequence defer all but the last, then check with catia_update_assembly. The status is NOT evaluated when deferred.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations declare readOnlyHint=false, destructiveHint=false, idempotentHint=false. The description adds one behavioral rule (first component must be fixed) but doesn't disclose reversibility, whether prior constraints are modified, or the solve cost — that detail lives in the schema's defer_update description, not here.

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

Conciseness4/5

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

Two short sentences, front-loaded with the operation and followed by the constraint rule. No wasted words, though it is arguably terse relative to the complexity of the tool.

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

Completeness3/5

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

For a mutation tool with no output schema and full schema coverage, the description is minimally adequate. It omits what the fixer changes, whether it can conflict with existing constraints, and how it interacts with the assembly solve workflow it references nowhere.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters in detail (including the defer_update solve-cost explanation). The description adds no parameter-level meaning beyond the schema baseline.

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

Purpose4/5

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

States a specific verb+resource: fix a component in space via a 'Fixer' constraint. This distinguishes it from the other assembly-constraint siblings (coincidence, contact, offset, angle). It doesn't explicitly name those siblings, so sibling differentiation is implied by constraint type rather than stated.

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

Usage Guidelines3/5

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

The description gives one usage rule: the first/reference component of an assembly must be fixed. That is useful context, but there's no guidance on when to use a fixer vs. other constraints, no exclusion criteria, and no explicit mention of an alternative.

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

catia_get_active_document_infoB
Read-only

Get detailed info about the active CATIA document: name, type, path, part bodies, features, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safe-read profile is covered. The description adds that output covers document identity and structure, but says nothing about behavior when no document is open, nor about return format or size.

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

Conciseness4/5

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

A single front-loaded sentence naming the subject before the field list. The trailing 'etc.' is slightly loose but costs little.

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

Completeness4/5

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

With no output schema, the description carries the burden of indicating what comes back and does so by listing document name, type, path, part bodies and features. It stops short of noting error conditions (e.g. no active document), which is a minor gap for a no-arg read tool.

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

Parameters4/5

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

Zero parameters, so there is nothing to document beyond what the schema (empty object) already conveys; the baseline for a no-param tool applies.

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

Purpose4/5

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

States a specific verb (get) and resource (active CATIA document) and enumerates the kinds of data returned (name, type, path, part bodies, features). It implicitly contrasts with catia_list_documents by scoping to the active document, but never names a sibling explicitly.

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

Usage Guidelines2/5

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

No when-to-use guidance and no routing to alternatives such as catia_list_documents, catia_get_tree, catia_describe_model, or catia_get_parameters. The agent must infer from the name alone when this introspection call is the right one.

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

catia_get_bounding_boxA
Read-only

Exact bounding box (mm) of a body's solid, curved shapes included: x/y/z [min, max] and size. Use it to check a piece against its drawing.

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNoBody to measure (default: active body).

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description usefully adds that the result is exact, in mm, includes curved geometry, and reports min/max plus size, but says nothing about performance, precision limits, or behavior on empty/invalid bodies.

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

Conciseness5/5

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

Two compact sentences with the output shape (x/y/z [min,max] and size) front-loaded ahead of the usage hint. No filler.

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

Completeness4/5

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

With no output schema, the description carries the burden of describing the return value and does so explicitly (min, max, size per axis, in mm, curved faces included). Completeness is good; only measurement caveats and edge-case behavior are absent.

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

Parameters3/5

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

Only one parameter and schema coverage is 100% – the schema already documents body_name and its active-body default. The description adds no syntax or naming guidance beyond what the schema provides, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb+resource (bounding box of a body's solid) and is precise about scope and units ('Exact ... (mm)', 'curved shapes included'). It does not explicitly contrast with siblings like catia_measure_distance or catia_get_inertia, which is the only thing keeping it from a 5.

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

Usage Guidelines3/5

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

Offers one concrete use case ('check a piece against its drawing') but gives no when-not conditions and never names an alternative measurement tool among the many siblings. Usage is implied rather than routed.

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

catia_get_inertiaA
Read-only

Get inertia properties of the active part: volume, surface area, center of gravity, mass (if density is defined), moments of inertia.

ParametersJSON Schema
NameRequiredDescriptionDefault
densityNoMaterial density in kg/m3 (optional, for mass calculation)
body_nameNoBody to measure (default: active body).

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds genuine behavioral context beyond that: it discloses the exact result set and the conditional that mass is only returned 'if density is defined', which is important for interpreting results. It stops short of saying what happens when no part is active or in what units results are returned.

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

Conciseness5/5

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

A single sentence, front-loaded with the operation and immediately followed by the return set. Every clause earns its place; nothing is redundant or padded.

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

Completeness4/5

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

The tool is a read-only measurement with no output schema, so the description correctly enumerates the returned values in place of a schema. Parameters are fully covered by the input schema. Minor gaps remain (units of measure, failure mode with no active body), but nothing essential for invoking it is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are already documented in the schema. The description only echoes the density-massing relationship already stated in the density parameter description, adding no new syntax or constraint information; baseline 3 applies 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.

Purpose4/5

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

Specific verb+resource ('Get inertia properties of the active part') followed by an enumeration of exactly which properties are returned (volume, surface area, center of gravity, mass, moments of inertia). It doesn't differentiate itself from nearby measurement siblings such as catia_measure_distance, catia_get_bounding_box, or catia_measure_model, 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.

Usage Guidelines2/5

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

The description contains no when-to-use guidance, no prerequisites (e.g. a part must be active/density must exist), and no mention of alternative measurement tools. Usage is only implied by the phrase 'of the active part'.

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

catia_get_parametersB
Read-only

List all user-defined and computed parameters of the active part. Includes dimensions, formulas, and design tables.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoOptional name filter (partial match)

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description usefully clarifies that both user-defined and computed parameters are returned and that formulas and design tables are included, which is real content context. It says nothing about return format, ordering, or behavior when no part is active, so it is adequate but not rich.

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

Conciseness5/5

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

Two short sentences, zero filler, with the core action front-loaded and the content enumeration second. Every clause contributes information an agent can act on.

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

Completeness4/5

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

For a one-parameter read-only listing tool with no output schema and annotations covering safety, the description is largely sufficient: it defines scope and returned content. Minor gaps remain around whether an active part must exist and how the result is structured, but neither is critical for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100% and the single 'filter' parameter is fully documented in the schema as an optional partial-match name filter. The description adds no example syntax, matching semantics, or scope notes 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.

Purpose4/5

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

States a specific verb (List) and resource (parameters) with clear scope: 'of the active part'. The inclusion of dimensions, formulas, and design tables sharpens what constitutes a parameter here. It does not, however, name or contrast itself with siblings such as catia_set_parameter (the write counterpart) or catia_get_tree, which also expose model metadata.

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

Usage Guidelines2/5

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

No when-to-use guidance, prerequisites (e.g. an active part/documented open), or alternatives are given. An agent must infer that this is the read counterpart to catia_set_parameter rather than being told so. The scoping phrase 'active part' hints at context but is not framed as usage guidance.

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

catia_get_safety_stateA
Read-only

Current safety tier of this session: read (inspect only), write (model and save) or dangerous (may also delete features and close documents), and what each tier allows.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

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

readOnlyHint=true and openWorldHint=false already establish this as a safe local read, and the description is consistent with that. It adds genuine value by defining the safety model itself: read = inspect only, write = model and save, dangerous = may also delete features and close documents. This tier semantics is the substantive behavioral context an agent needs.

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

Conciseness4/5

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

A single front-loaded sentence with no padding; the tier list is the payload and is placed immediately. The trailing 'and what each tier allows' is slightly redundant given the parentheticals that follow it, but costs little.

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

Completeness4/5

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

For a trivial zero-parameter getter with no output schema, the description supplies enough to know what it returns (the current tier) and what the returned tiers mean. It could note the return format (e.g., a string value) but the enumeration makes the output shape evident.

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

Parameters4/5

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

The tool takes no parameters, so there is nothing for the description to explain beyond what the empty schema already conveys. Baseline for a zero-parameter tool applies.

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

Purpose4/5

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

States a specific verb (get) and resource (safety state/tier of the session) and enumerates the three possible tier values with parenthetical glosses. It implicitly contrasts with the set_safety sibling by returning rather than mutating state, though it never names that sibling or explicitly frames itself as the read counterpart.

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

Usage Guidelines3/5

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

No explicit when-to-use statement or mention of alternatives, but the purpose (checking the current tier) makes the natural usage—inspecting permissions before destructive operations—reasonably inferable. There is no when-not guidance.

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

catia_get_treeA
Read-only

Specification tree of the active Part, as a reviewer sees it: every body (including those absorbed by Assemble/Add/Remove...), its sketches, features and planes, plus geometrical sets. Includes a naming AUDIT listing every element still carrying a default name (anything ending in '.N' like 'Extrusion.3'/'Pad.1'/'Esquisse.2', or 'Corps principal'/'PartBody'). Run it after each piece and fix every flagged name before saving.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds real content-level behavior: the tree includes absorbed bodies, and the result carries a naming AUDIT flagging default names with concrete patterns ('Extrusion.3', 'Esquisse.2', 'Corps principal'). It says nothing about output format or cost, which keeps it from a 5.

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

Conciseness4/5

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

Front-loaded with the core purpose, then density of examples (default-name patterns) that an agent can act on. Slightly long and example-heavy, but every clause carries information; no filler.

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

Completeness5/5

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

With no output schema, the description carries the burden and does so well: it describes the tree's composition and the audit payload, plus the corrective action to take. An agent can call it and interpret the result without further documentation.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4; there is no parameter surface for the description to clarify, and it correctly focuses on output content instead.

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

Purpose5/5

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

States a specific verb and resource ('Specification tree of the active Part') and enumerates exactly what the tree contains: bodies (including those absorbed by boolean ops), sketches, features, planes, and geometrical sets, plus a naming audit. It is clearly distinguishable from siblings like catia_list_features or catia_list_bodies that return narrower slices.

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

Usage Guidelines4/5

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

Gives explicit timing guidance ('Run it after each piece and fix every flagged name before saving'), which tells the agent when this belongs in a workflow. It does not name alternatives or exclusions (e.g., when to prefer catia_audit_model or catia_list_features), so it stops short of the 5 tier.

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

catia_grooveA

Create a Groove (revolution cut). Same axis rules as catia_shaft. Works as the FIRST feature of an empty body (it then holds the removed volume; assemble that body into the main one to cut it — the 'Machined' body pattern).

ParametersJSON Schema
NameRequiredDescriptionDefault
axisNoRevolution axis: the is_axis line of the sketch, or its H / V absolute axis.sketch_line
nameNoExplicit name for the created feature in the specification tree (e.g. 'Pad_Bras_20mm', 'Trou_Conique_D12'). Strongly recommended: default names like 'Extrusion.3' make the tree unreadable and are flagged by tree audits.
angleNoRevolution angle in degrees (default: 360)
sketch_nameNoName of sketch to use.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), so the bar is lower. The description earns credit by disclosing genuinely non-obvious behavior: a Groove can serve as the first feature of an empty body, holds the removed volume, and must be assembled into the main body to actually cut — behavioral context the annotations cannot convey.

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

Conciseness5/5

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

Three sentences, each load-bearing: the definition, the axis cross-reference, and the first-feature behavior. The core verb+resource is front-loaded with zero preamble or filler.

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

Completeness4/5

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

For a mutation tool with no output schema and full schema-coverage on parameters, the description supplies the key behavioral facts an agent needs (first-feature usage, removed-volume assembly). It does not explain prerequisites such as whether a sketch must exist first, a minor omission given the schema and annotations already carry substantial detail.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents axis, name, angle, and sketch_name in detail (including the enum for axis and a strong name-convention note). The description only adds 'Same axis rules as catia_shaft', which cross-references semantics but adds no new parameter detail. Baseline 3 is appropriate.

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

Purpose5/5

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

The description opens with a specific verb+resource ('Create a Groove') and immediately qualifies it as a '(revolution cut)', which cleanly distinguishes it from the additive sibling catia_shaft. An agent can route between material-removal and material-adding revolve operations without opening the schema.

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

Usage Guidelines4/5

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

It states a concrete usage context — 'Works as the FIRST feature of an empty body' — and names the 'Machined' body pattern, giving clear guidance on a non-obvious scenario. However, it never explicitly contrasts itself with catia_pocket (extruded cut) or states when a Groove is preferred over those alternatives, so the alternative-routing 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_gsd_blendC

Create a Blend surface connecting two curves.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional name for the surface
curve1YesFirst curve element name
curve2YesSecond curve element name

TDQS

C2.9/5.0
Behavior2/5

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

Annotations declare a non-readonly, non-idempotent, non-destructive write operation, but the description adds nothing about what gets created/destroyed, whether it needs an active geoset, or persistence behavior. For a surface-creation tool with no output schema, this leaves significant gaps.

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

Conciseness5/5

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

A single, front-loaded sentence with zero waste. Every word earns its place.

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

Completeness2/5

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

For a GSD surface-creation tool with no output schema and no annotations covering side effects, the description omits prerequisites, active-geoset context, and behavioral implications. It is too thin to fully guide correct invocation.

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

Parameters3/5

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

Schema coverage is 100%, so parameters are fully documented in the schema. The description repeats 'two curves' but adds no format or naming details 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.

Purpose4/5

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

States a specific verb (Create) and resource (Blend surface) with the connecting inputs (two curves). It is clearly distinct from siblings like gsd_fill or gsd_sweep, though it doesn't explicitly contrast against them.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites (e.g., curves must exist, active geoset requirement), and no mention of alternatives like multi_section_surface or fill. The agent must infer context entirely.

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 full 3D circle from a center point, a support plane, and a radius. Useful as a section for multi-sections surfaces.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional name for the circle
centerYes
radiusYesRadius (mm)
support_planeYesSupport plane: 'xy', 'yz', 'zx', or element name

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare this is a non-read-only, non-destructive, non-idempotent creation. The description adds the intended downstream role (multi-section surface section) but says nothing about which geoset the circle lands in, whether an active geoset must be set first, or what happens on name collision.

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

Conciseness4/5

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

Two short sentences, no filler, with the create action and its inputs front-loaded. The second sentence is a genuinely useful orientation hint rather than padding.

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

Completeness3/5

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

For a feature-creation tool with no output schema and a moderate schema, the definition is adequate but leaves the container/target question open (geoset placement, naming), which matters given siblings like catia_gsd_set_active_geoset.

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

Parameters3/5

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

Schema coverage is 75% and the schema already documents center (element name or [x,y,z] that creates a point), radius in mm, and the 'xy'/'yz'/'zx' plane options. The description only restates those three inputs, adding no syntax, units, or defaults beyond the schema.

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

Purpose4/5

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

States a specific verb (create) and resource (full 3D circle) along with the three inputs that define it. '3D' implicitly separates it from the sketch-level sibling catia_sketch_circle, but the description never names or contrasts that alternative explicitly.

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

Usage Guidelines3/5

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

'Useful as a section for multi-sections surfaces' gives one downstream usage context, hinting when the tool is relevant. It offers no when-not guidance and does not point to catia_gsd_multi_section_surface or catia_sketch_circle as the alternative path.

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

Turn a closed (watertight) surface into a SOLID (Part Design CloseSurface). The solid is created in the active body.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoExplicit name for the created feature in the specification tree (e.g. 'Pad_Bras_20mm', 'Trou_Conique_D12'). Strongly recommended: default names like 'Extrusion.3' make the tree unreadable and are flagged by tree audits.
surfaceYesSurface element name

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare this is not read-only and not destructive, so the safety profile is covered. The description adds useful context that the solid is created in the active body and that the surface must be closed, but it does not state what happens if the surface is open or whether the source surface is consumed.

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

Conciseness5/5

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

Two short sentences are front-loaded with the core operation and include only necessary context: the watertight prerequisite and the active-body result location. No filler or repetition.

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

Completeness4/5

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

For a mutation tool with no output schema, the description gives the essential input condition, the operation, and where the result is created. It omits failure behavior and return information, but the annotations and full schema coverage make the definition largely complete for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are already documented in the schema. The description adds the watertight constraint for the surface parameter but does not provide additional syntax or format details beyond what the schema supplies. Baseline 3 is appropriate.

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

Purpose4/5

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

The description states a specific verb and resource: turning a closed watertight surface into a solid via Part Design CloseSurface. It clearly distinguishes this from general solid creation siblings like pad or thick_surface, though it does not explicitly name an alternative tool.

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

Usage Guidelines3/5

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

The prerequisite that the input surface must be closed/watertight implies when this tool is appropriate, but the description offers no explicit when-not guidance or named alternatives such as thick_surface. 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_gsd_create_geosetA

Create a new Geometrical Set (HybridBody) in the active Part and make it the active target for subsequent GSD elements.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the new geometrical setGSD_Set

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already flag a non-readonly, non-idempotent, non-destructive write. The description adds meaningful stateful behavior beyond that: the new set becomes the active target for subsequent GSD elements. It omits any prerequisite (e.g., that an active Part must exist), but the state side effect is a useful addition.

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

Conciseness5/5

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

A single sentence with zero waste. The creation action is front-loaded and the side-effect consequence follows immediately.

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

Completeness4/5

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

For a simple single-parameter creation tool with no output schema, the description covers what is created, where, and the consequential state change. It is complete enough to call correctly, though it could note the active-Part precondition more explicitly.

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

Parameters3/5

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

Schema coverage is 100% and the single 'name' parameter is fully described with a default ('GSD_Set'). The description adds no naming convention or format detail beyond the schema, so it sits at the baseline for high-coverage schemas.

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

Purpose5/5

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

States a specific verb (Create) and resource (Geometrical Set/HybridBody), plus its location (in the active Part). It also names the resulting state change, making it clearly distinguishable from the sibling catia_gsd_set_active_geoset, which manipulates an existing set.

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

Usage Guidelines4/5

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

The clause 'make it the active target for subsequent GSD elements' implies this is the tool to reach for before adding new GSD geometry, versus catia_gsd_set_active_geoset for switching to an existing set. However, it does not explicitly name that alternative or state exclusion/precondition conditions.

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

catia_gsd_extrudeA

Extrude a profile (curve/sketch) into a surface along a direction vector. limit1/limit2 are the extents on each side (mm).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional name for the surface
limit1YesLength along direction (mm)
limit2NoLength opposite to direction (mm)
profileYesProfile element name
directionYesExtrusion direction vector [x, y, z]

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare the safety profile (not read-only, not destructive, not idempotent), so the agent knows this creates rather than mutates geometry. The description adds the symmetric limit1/limit2 scoping model but says nothing about which geoset/body the new surface lands in or what side effects accompany creation; with annotations present, a 3 is fair.

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

Conciseness5/5

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

Two tight sentences with no filler; the core action and output type come first, and the limit clarification follows. Every clause carries information.

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

Completeness4/5

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

With full schema coverage and no output schema, the essentials for calling the tool are documented, and annotations cover the safety profile. It is slightly thin on where the resulting surface is placed and what happens to the source profile, but nothing critical is missing for basic invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description restates limit1/limit2 as extents on each side in mm, which lightly reinforces the bidirectional framing but adds little beyond the schema's own 'Length along direction (mm)' / 'Length opposite to direction (mm)' descriptions.

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

Purpose5/5

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

States a specific verb (extrude), the input (profile curve/sketch), and the output type (surface) along a direction vector. Specifying 'surface' implicitly separates it from the solid-extrude siblings catia_pad/catia_pocket, so an agent can pick it without opening either schema.

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

Usage Guidelines2/5

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

There is no guidance on when to choose this over catia_gsd_sweep, catia_gsd_revolve, or catia_pad, nor any prerequisite stated (e.g., an active geoset or an existing profile in the document). The reader must infer usage entirely.

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

catia_gsd_fillB

Create a Fill surface bounded by a closed contour of curves (one closed curve or several connected curves).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional name for the surface
boundariesYesBoundary curve element names, in contour order

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, establishing a non-destructive creation operation. The description adds the constraint that boundaries must form a closed contour, which is useful, but it does not cover error behavior, required permissions, or where the result is created.

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

Conciseness5/5

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

A single, front-loaded sentence that states the action, the result, and the geometric constraint without any wasted words or redundancy.

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

Completeness3/5

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

For a creation tool with no output schema, the description lacks context about where the surface is placed (e.g., active geoset) or what happens on failure. Annotations cover safety, and the schema is fully documented, but this contextual gap keeps it at a minimum viable level.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3, but the description adds meaningful semantics: the boundaries must form a closed contour and can be one closed curve or several connected curves. This clarifies how to use the boundaries parameter beyond the schema's 'in contour order' note.

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

Purpose4/5

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

The description states a specific verb (Create) and resource (Fill surface) with a precise geometric constraint (bounded by a closed contour of curves). It clearly conveys what the tool does, but does not explicitly differentiate itself from similar siblings like catia_gsd_close_surface or catia_gsd_blend.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives. It simply states the operation without mentioning prerequisites, appropriate contexts, or any sibling tools to consider instead.

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

catia_gsd_intersectionB

Create the intersection of two elements (e.g. surface ∩ plane).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional name for the result
element1YesFirst element name
element2YesSecond element: 'xy', 'yz', 'zx', or element name

TDQS

B3.1/5.0
Behavior2/5

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

Annotations declare readOnlyHint=false, idempotentHint=false and destructiveHint=false, so the mutation profile is covered structurally, but the description adds nothing behavioral — it does not say whether the result is placed in the active geoset, whether inputs are consumed, or what happens if the elements do not intersect. 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.

Conciseness5/5

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

A single front-loaded sentence with zero filler; the verb+resource leads and the example clarifies immediately.

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

Completeness3/5

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

For a geometry-creation tool with no output schema and no annotations on result placement, the description is adequate but thin: it omits where the result lands, how it is named if 'name' is omitted, and what failure modes exist. An agent could call it, but not confidently.

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

Parameters3/5

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

Schema description coverage is 100%, so both required parameters are already documented, including the 'xy'/'yz'/'zx' plane options for element2. The description only adds an illustrative example of the operand types, which is marginal value over the schema baseline.

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

Purpose4/5

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

States a specific verb and resource ('Create the intersection of two elements') and gives a concrete example ('surface ∩ plane') that pins down the operation. It is distinguishable from siblings like catia_gsd_trim or catia_boolean_operation, though it never names them explicitly.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no routing to alternatives. An agent must guess whether intersection is preferred over catia_gsd_split, catia_gsd_trim, or catia_boolean_operation for a given modeling situation.

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

catia_gsd_joinC

Join (assemble) two or more curves or surfaces into one element.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional name for the result
elementsYesElement names to join

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare this is a non-readonly, non-destructive, non-idempotent operation, so the safety profile is covered. However, the description omits genuinely useful behavior: whether the source elements are consumed or preserved, whether the result is a new named element, and what happens if the inputs are non-contiguous or of mixed type.

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

Conciseness4/5

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

A single front-loaded sentence with the verb leading and no filler; nothing is wasted. It is slightly under-specified rather than over-long, but structurally clean.

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

Completeness2/5

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

For a GSD operation with no output schema, the description should explain the return (is the joined element returned or just created?) and the fate of the inputs. Neither is addressed, leaving the agent unable to predict the effect of a non-idempotent operation.

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

Parameters3/5

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

Schema coverage is 100% and both parameters (name, elements) are fully documented in the schema, so the baseline of 3 applies. The phrase 'two or more' loosely mirrors the minItems constraint but adds no syntax, ordering, or format detail beyond the schema.

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

Purpose4/5

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

States a specific verb ('join/assemble') and resource ('curves or surfaces') with the output shape ('into one element'), which distinguishes it from siblings like catia_gsd_trim and catia_gsd_split. It stops short of naming the closest alternative operators (e.g., catia_gsd_close_surface) that an agent might confuse it with.

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

Usage Guidelines2/5

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

No guidance on when to reach for join versus trim, split, close_surface, or boolean operations. There is no statement of prerequisites (e.g., curves must be contiguous) or when-not-to-use conditions; the agent must infer usage entirely from the name.

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

catia_gsd_lineA

Create a 3D line between two points. Each point is an existing element name or [x, y, z] coordinates.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional name for the line
point1Yes
point2Yes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and idempotentHint=false, so the mutation profile is largely covered. The description does add one non-obvious behavioral fact — passing coordinates creates a new point element as a side effect — but omits what the line is attached to (active geoset) and what the call returns.

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

Conciseness5/5

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

Two short sentences with zero filler; the action comes first and the point-input duality follows immediately. Nothing redundant or padded.

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

Completeness3/5

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

For a non-read-only geometry-creation tool with no output schema, the description covers the core input contract but leaves gaps: the containment context (which geoset/body receives the line), the effect of the optional 'name', and any return value or failure mode are unaddressed.

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

Parameters3/5

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

Schema coverage is only 33%, but the description's statement that each point is 'an existing element name or [x, y, z] coordinates' essentially restates the oneOf branches already documented in the schema, and says nothing about the optional 'name' parameter. It neither compensates for the coverage gap nor adds syntax beyond the schema.

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

Purpose5/5

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

States a specific verb and resource ('Create a 3D line between two points') with scope indicators ('3D', GSD context) that separate it from the 2D catia_sketch_line sibling. An agent can identify the operation without opening the schema.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites (e.g. does it require an active geoset?), and no routing to alternatives such as catia_gsd_spline or catia_sketch_line. The second sentence is parameter detail, not usage context.

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

catia_gsd_list_elementsB

List all geometrical sets with their wireframe/surface elements and sketches, plus sketches in solid bodies. Use this to find element names for other GSD tools.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior1/5

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

The description says 'List', which implies a read-only operation, but the annotations declare readOnlyHint=false and idempotentHint=false. This contradiction is not explained, and the description gives no side-effect or state-change context to reconcile it.

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

Conciseness5/5

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

Two sentences, front-loaded with the listing scope and then the use case. No filler or repetition.

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

Completeness2/5

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

With no output schema, the description should clarify what is returned and whether listing has side effects. It only implies element names are returned and leaves the readOnlyHint=false annotation unexplained, which could mislead an agent about state changes.

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

Parameters4/5

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

The tool takes zero parameters, so there are no parameter semantics to document. The baseline for a zero-parameter tool is 4.

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

Purpose4/5

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

States a specific verb and resource: list geometrical sets with wireframe/surface elements and sketches, plus sketches in solid bodies. It distinguishes itself from GSD creation tools by noting its role in finding element names, though it does not explicitly contrast with other listing tools like catia_get_tree.

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

Usage Guidelines4/5

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

Provides clear context: use this to find element names for other GSD tools. It does not state when not to use it or name alternative listing tools, but the intended usage is easy to infer.

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

catia_gsd_multi_section_surfaceA

Create a Multi-sections Surface (loft) through 2+ section curves (sketches, circles, splines...), optionally following guide curves. Sections should be listed in order along the lofting direction.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional name for the surface
guidesNoOptional guide curve element names. Each guide MUST geometrically intersect every section, or the surface fails.
sectionsYesSection curve element names, in lofting order
orientationsNoOptional per-section orientation, same length/order as sections. Set -1 for a section whose curve direction opposes the others (otherwise the loft twists or fails). Default: all 1.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare that this is a non-read-only, non-destructive, non-idempotent, closed-world creation operation. The description adds that at least two sections are needed and that order matters, but it does not add much beyond the annotations and schema, such as failure behavior beyond what the guide parameter already states.

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

Conciseness5/5

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

Two tight sentences that are front-loaded with the primary operation and then the essential ordering constraint. No filler or redundant explanation.

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

Completeness4/5

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

For a surface-creation tool with detailed schema descriptions and annotations covering safety and world assumptions, the description is nearly complete. It omits mention of the orientations parameter, but the schema fully covers that, and no output schema exists so return values need not be explained.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents every parameter in detail, including the guide-intersection failure condition and per-section orientation. The description repeats the 2+ sections requirement and ordering but adds no semantic detail beyond the structured fields.

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

Purpose4/5

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

States a specific verb (Create) and resource (Multi-sections Surface / loft), with the key input condition of 2+ section curves and optional guide curves. It is clear what the tool does, but does not explicitly distinguish this loft operation from sibling surface tools such as sweep, fill, or blend.

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

Usage Guidelines3/5

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

Implies usage through the required 2+ section curves and the note that sections should be listed in lofting order. However, it gives no explicit when-to-use guidance, no alternatives, and no exclusions relative to sibling surface-creation tools.

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 surface.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional name for the surface
offsetYesOffset distance (mm)
reverseNoOffset in the opposite direction
surfaceYesSurface element name

TDQS

B3.1/5.0
Behavior2/5

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, covering the safety profile. The description adds only that the input is an existing surface, which is already implied by the schema, and does not disclose side effects such as where the new surface is placed or whether an active geoset is required.

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

Conciseness5/5

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

Single sentence, front-loaded, zero waste. It is appropriately sized for a simple tool.

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

Completeness3/5

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

For a GSD surface creation tool with no output schema, the description is minimally adequate. It does not mention the active geoset context, return value, or whether the original surface is preserved, leaving some gaps for an agent to infer.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters are documented in the schema. The description adds no additional parameter meaning beyond what the schema provides, warranting the baseline of 3.

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

Purpose4/5

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

States a specific verb and resource: create a surface offset from an existing surface. Clear what the tool does, but does not explicitly differentiate from siblings like catia_gsd_thick_surface or catia_gsd_plane_offset.

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

Usage Guidelines2/5

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

No when-to-use, when-not-to-use, or alternative guidance. The description merely states the action, leaving the agent to infer context from the tool name and siblings.

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

catia_gsd_plane_3pointsB

Create a plane through three points (element names or [x,y,z]).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional name for the plane
point1Yes
point2Yes
point3Yes

TDQS

B3.1/5.0
Behavior2/5

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, covering the safety and mutation profile. The description adds no behavioral context beyond the basic create action, such as where the plane is added, whether it is inserted into the active geoset, or what happens with collinear points. It neither contradicts nor meaningfully extends the annotations.

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

Conciseness5/5

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

A single front-loaded sentence with zero filler. The purpose and input mode are both stated compactly.

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

Completeness3/5

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

For a simple geometric creation tool with no output schema, the description is adequate to permit invocation. It leaves gaps around the optional name parameter, the target geoset, and return behavior, but the essential action and input forms are present.

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

Parameters3/5

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

The description notes that points may be 'element names or [x,y,z]', which mirrors the schema's oneOf structure for the three point parameters. However, with reported schema description coverage of 25%, it does not compensate for the undocumented optional 'name' parameter or add any syntax details beyond what the schema already states. Minimum viable parameter guidance.

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

Purpose4/5

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

States a specific verb and resource: 'Create a plane through three points.' This clearly distinguishes it from sibling tools like catia_gsd_line or catia_gsd_plane_offset, though it does not explicitly name an alternative. Clear enough that an agent knows the core operation.

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

Usage Guidelines2/5

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

Provides no when-to-use guidance, prerequisites, or alternatives. It implies the tool is for creating a plane from three points, but does not say when to choose it over catia_gsd_plane_offset or other plane construction methods. No exclusions or context 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_plane_offsetB

Create a plane offset from a reference plane. Reference is 'xy', 'yz', 'zx', or the name of an existing plane element.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional name for the plane
offsetYesOffset distance (mm)
reverseNoOffset in the opposite direction
base_planeYesReference plane: 'xy', 'yz', 'zx', or element name

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare this is a write operation (readOnlyHint=false) that is non-destructive and non-idempotent. The description adds no further behavioral context, such as side effects, persistence, or required permissions, so it offers little beyond structured data.

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

Conciseness5/5

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

Two sentences, front-loaded with the tool's purpose and then a concise note on the reference plane format. No redundant or filler content.

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

Completeness3/5

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

Adequate for a simple plane-creation tool with full schema coverage and annotations. However, it omits context such as the need for an active geoset or document, and it does not help the agent choose between this and other plane-creation siblings.

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

Parameters3/5

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

Schema description coverage is 100%, so parameter details are fully documented in the schema. The description repeats the valid values for base_plane ('xy', 'yz', 'zx', or element name) without adding new semantic meaning, so it meets the baseline but does not exceed it.

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

Purpose4/5

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

States a specific verb ('Create') and resource ('plane') and the method ('offset from a reference plane'). Distinguishes from the 3-point plane sibling implicitly by the offset method, though it doesn't name the alternative.

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

Usage Guidelines2/5

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

Provides no explicit when-to-use or when-not-to-use guidance and does not mention sibling alternatives like catia_gsd_plane_3points. Usage is only implied by the tool's purpose.

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

catia_gsd_pointB

Create a 3D point at (x, y, z). Coordinates in mm.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesX coordinate (mm)
yYesY coordinate (mm)
zYesZ coordinate (mm)
nameNoOptional name for the point

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare this is a non-read-only, non-destructive, non-idempotent write. The description adds only the mm unit, which is already in the schema, and says nothing about the required active geoset context or that repeated calls create duplicate points rather than updating one.

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

Conciseness5/5

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

Two short sentences, action front-loaded, zero filler. Nothing here is padding given the tool's simplicity.

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

Completeness3/5

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

For a simple 4-parameter mutation with no output schema, the description is minimally adequate but omits the GSD-context prerequisite and what is returned/created, and does not distinguish the tool from its sketch-point sibling. These gaps are modest but real.

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

Parameters3/5

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

Schema description coverage is 100%, with x/y/z and name individually documented, so the schema carries the semantics. The description's '(x, y, z)' restates the schema ordering without adding format or range meaning; baseline 3 applies.

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

Purpose4/5

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

States a specific verb ('Create') and resource ('3D point') plus the coordinate convention, so the core action is unambiguous. However it gives no differentiation from the sibling catia_sketch_point, which an agent could easily confuse with this GSD point constructor.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisite (e.g., an active GSD geoset), and no mention of when to prefer this over catia_sketch_point or catia_gsd_line. The agent must infer all routing 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_projectB

Project a curve/point onto a support surface or plane.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional name for the result
elementYesName of the element to project
supportYesProjection support: 'xy', 'yz', 'zx', or element name

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, openWorldHint=false, idempotentHint=false, and destructiveHint=false. The description restates the operation but adds no behavioral context such as what feature is created, where it is stored, or whether it modifies existing geometry.

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

Conciseness5/5

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

The description is a single front-loaded sentence with no wasted words. It is appropriately sized for the operation being described.

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

Completeness3/5

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

The description is minimal but the input schema is fully documented and annotations cover the safety profile. It lacks detail about the resulting projection feature and active geoset context, leaving some gaps for a GSD modeling operation.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema documents all three parameters including the support values 'xy', 'yz', 'zx'. The description adds no parameter details beyond what the schema already provides, 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.

Purpose4/5

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

The description states a specific verb, 'project', and its resources, 'curve/point' onto a 'support surface or plane'. This clearly identifies the operation, though it does not explicitly differentiate it from sibling GSD tools such as intersection or split.

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

Usage Guidelines2/5

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

The description provides no when-to-use guidance, prerequisites, or alternatives among the many GSD siblings. Its purpose is only implied by the verb, 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_revolveB

Revolve a profile curve around an axis line to create a surface of revolution. Angles in degrees.

ParametersJSON Schema
NameRequiredDescriptionDefault
axisYesAxis line element name
nameNoOptional name for the surface
angle1NoFirst angle limit (degrees)
angle2NoSecond angle limit (degrees)
profileYesProfile element name

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already disclose the safety profile (non-read-only, non-destructive, not idempotent), so the description only needs to add context. It adds the useful unit clarification ('Angles in degrees'), but says nothing about failure modes (e.g., open profile), feature-tree placement, or whether the profile must be planar.

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

Conciseness4/5

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

Two sentences, correctly front-loaded with the operation and followed by the unit caveat. Nothing is wasted, though the unit note duplicates the schema.

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

Completeness3/5

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

For a 5-parameter geometry operation with no output schema, the description is minimally adequate: it conveys the operation and units but omits return/naming behavior and any constraint on valid input geometry.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents every parameter including the '(degrees)' units on angle1/angle2. The description's 'Angles in degrees' is redundant with the schema, so it neither compensates nor adds meaning.

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

Purpose4/5

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

States a specific verb+resource ('revolve a profile curve around an axis line') and the resulting object ('surface of revolution'), which is clearly distinct from the sibling sweep/extrude operations. It does not, however, explicitly name those siblings to sharpen the distinction.

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

Usage Guidelines2/5

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

No when-to-use guidance, prerequisites, or alternatives are provided. An agent must infer from the name alone whether to pick this over catia_gsd_sweep or catia_gsd_extrude for a given geometry.

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_geosetA
Idempotent

Select which Geometrical Set receives subsequently created GSD elements.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of an existing geometrical set

TDQS

A3.8/5.0
Behavior4/5

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

Annotations declare idempotentHint=true, destructiveHint=false and readOnlyHint=false, and the description earns credit by disclosing the key non-obvious behavior: this is a stateful pointer change whose effect lands on future operations rather than on existing geometry. It does not say what happens if the named set does not exist, nor whether the setting is document- or session-scoped.

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

Conciseness5/5

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

One sentence, front-loaded with the action and immediately qualified by the consequence. No filler and nothing that could be trimmed.

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

Completeness4/5

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

For a one-parameter state-setting tool with annotations covering idempotency and destructiveness, the description covers the essential mental model. Minor gaps remain around scope (document vs session) and failure behavior for a non-existent set name.

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

Parameters3/5

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

Schema description coverage is 100% and the single parameter is already documented as "Name of an existing geometrical set." The description adds no syntax, casing, or lookup detail beyond the schema, so the baseline 3 applies.

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

Purpose4/5

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 ("Geometrical Set") and adds the important scope qualifier that the choice affects "subsequently created GSD elements." It is clearly distinct from catia_gsd_create_geoset, though it never names or contrasts with that sibling explicitly.

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

Usage Guidelines3/5

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

Usage is only implied through "subsequently created GSD elements" — an agent can infer this should be called before GSD element creation, but there is no explicit when/when-not guidance, no prerequisites, and no mention of alternatives such as create_geoset or activate_body.

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

catia_gsd_splineB

Create a 3D spline through a list of points. Each point is an existing element name or [x, y, z] coordinates in mm.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional name for the spline
closedNoClose the spline into a loop
pointsYesPoints the spline passes through, in order

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare the safety profile (non-read-only, non-destructive, non-idempotent, closed-world), so the description is not the main source of behavioral truth. It does add useful context that coordinate inputs create new point elements as a side effect, but it omits that repeated calls create duplicate splines and says nothing about which geoset receives the result.

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

Conciseness5/5

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

Two sentences, zero waste, front-loaded with the operation and followed immediately by the input format constraint. Nothing extraneous.

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

Completeness3/5

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

For a creation tool with no output schema, the input contract is fully covered and the side-effect of coordinate points is disclosed. However, the creation target (active geoset) and any success/return indication are absent, leaving a mutation tool slightly under-described.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents points, name, and closed in detail. The description's point-format and mm-unit notes duplicate the nested schema descriptions rather than extending them, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Create a 3D spline through a list of points'), and the '3D' qualifier implicitly separates it from the 2D sibling catia_sketch_spline. It does not explicitly name or contrast any sibling, so it stops short of a 5.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no mention of alternatives such as catia_gsd_line or catia_sketch_spline. The agent must infer usage entirely from the name and schema.

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

catia_gsd_splitB

Split an element by a cutting element, keeping one side. Use orientation to flip which side is kept.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional name for the result
cutterYesCutting element: 'xy', 'yz', 'zx', or element name
elementYesElement to split
reverseNoKeep the other side

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so the mutation and safety profile is mostly covered. The description adds the outcome of keeping one side, but does not clarify whether the original element is consumed or a new element is created, and it references an 'orientation' parameter that does not exist in the schema.

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

Conciseness5/5

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

Two short sentences, front-loaded with the core action and followed by the side-selection behavior. There is no filler or redundant restatement.

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

Completeness3/5

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

With full schema coverage and annotations covering safety, the description is adequate for the basic action and side choice. It still lacks when-to-use guidance and contains a parameter-name mismatch, but the schema and annotations carry most of the remaining burden.

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

Parameters2/5

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

Schema description coverage is 100%, so the schema itself documents all four parameters clearly. However, the description says 'Use orientation to flip which side is kept' while the actual parameter is named 'reverse', which introduces confusion rather than adding correct semantic value.

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

Purpose4/5

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

States a specific verb (split), resource (element), cutting element, and the side-keeping behavior. It is clear but does not distinguish this operation from the sibling catia_gsd_trim tool, which is a closely related surface operation.

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

Usage Guidelines2/5

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

Provides only a parameter-usage hint for flipping the kept side, not when to use this tool versus alternatives like catia_gsd_trim. There is no guidance on prerequisites, context, or exclusions.

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

catia_gsd_sweepC

Create a swept surface by sweeping a profile curve along a guide curve (explicit sweep).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional name for the surface
guideYesGuide curve element name
profileYesProfile curve element name

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already supply the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=false), so the description's only extra claim is that a surface is created. It discloses nothing about prerequisites (e.g., an active geoset, pre-existing profile/guide elements), what happens on failure with invalid curves, or reversibility, which matters for a model-mutating feature tool.

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

Conciseness4/5

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

One front-loaded sentence with no filler; the mechanism (profile along guide) is placed before the disambiguating parenthetical. Slightly terse for a geometry-creation tool but every clause earns its place.

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

Completeness3/5

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

For a feature-creation tool with no output schema, the description identifies the operation but omits preconditions and the resulting context (geoset, feature naming). Annotations cover safety, so the gap is moderate rather than severe.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents name, guide, and profile; the description adds only the conceptual mapping of profile/guide to the sweep operation. Baseline 3 is appropriate when structured data carries the parameter detail.

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

Purpose4/5

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

States a precise verb ('Create a swept surface') and the exact inputs used (profile curve along a guide curve), which clearly separates it from generic surface creation. The parenthetical 'explicit sweep' adds CATIA-specific disambiguation, though it never names or contrasts a sibling tool directly.

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

Usage Guidelines2/5

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

No when-to-use conditions, prerequisites, or alternatives are given. The agent must infer from the name that this is the sweep tool rather than extrude, revolve, or multi_section_surface, but the description offers no 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_symmetryC

Mirror an element about a plane ('xy', 'yz', 'zx', or plane name).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional name for the result
planeYesMirror plane: 'xy', 'yz', 'zx', or element name
elementYesElement to mirror

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so the mutation/repeat behavior is covered structurally. The description adds nothing beyond that — it does not say whether a new element is created, where it is placed, or how the optional 'name' affects 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.

Conciseness4/5

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

A single compact sentence with the operation front-loaded and no filler. It is efficient, though the parenthetical plane list is redundant given the schema.

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

Completeness3/5

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

For a small three-parameter GSD tool with no output schema and covered safety annotations, the definition is minimally adequate. It omits where the mirrored element lands (geoset/body) and how 'name' behaves, which an agent might need.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters are documented in the schema itself. The description's enumeration of valid plane values merely repeats the schema's 'xy', 'yz', 'zx' list, adding no new syntax or semantics.

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

Purpose4/5

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

The description gives a specific verb+resource ('Mirror an element about a plane'), which is enough to distinguish it from unrelated siblings like catia_mirror (a part-level mirror) and catia_gsd_project. It stops short of explicitly naming the sibling it is not, so the differentiation is inferred rather than stated.

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

Usage Guidelines2/5

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

No guidance on when to use this over alternatives such as catia_mirror or catia_gsd_join, and no preconditions (e.g. an active geoset) are mentioned. The only usage hint is the enumeration of acceptable plane values.

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

catia_gsd_thick_surfaceA

Turn a surface into a SOLID by adding thickness (Part Design ThickSurface). The solid is created in the active body.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoExplicit name for the created feature in the specification tree (e.g. 'Pad_Bras_20mm', 'Trou_Conique_D12'). Strongly recommended: default names like 'Extrusion.3' make the tree unreadable and are flagged by tree audits.
surfaceYesSurface element name
thickness1YesThickness on the primary side (mm)
thickness2NoThickness on the other side (mm)

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare the safety profile (readOnly=false, destructive=false, non-idempotent, closed-world). The description adds the non-obvious placement fact that the resulting solid goes into the active body, but says nothing about prerequisites (e.g. surface must live in the same part), failure modes, or what is returned.

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

Conciseness5/5

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

Two short sentences, front-loaded with the verb+resource+mechanism. Every clause carries information; nothing is padding or restated from the schema.

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

Completeness4/5

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

For a 4-parameter creation tool with no output schema and full annotation coverage, the description covers the essential operation and placement. It is slightly thin on prerequisites and on whether the created feature is returned, but nothing critical blocks correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters (name, surface, thickness1, thickness2) are already documented, including the default of 0 for thickness2. The description adds no parameter-level meaning beyond that, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb+resource: turns a surface into a solid by adding thickness, and names the underlying CATIA operation (Part Design ThickSurface). It does not explicitly distinguish itself from the nearby sibling catia_thickness/shell tools, which a reader could confuse with this one.

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

Usage Guidelines3/5

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

The input requirement (a surface) and outcome (a solid) imply when this applies, but there is no explicit when-to-use/when-not guidance or routing to alternatives such as catia_thickness or catia_shell.

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

catia_gsd_trimB

Mutually trim two elements, keeping one side of each. Use reverse flags to flip which sides are kept.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional name for the result
element1YesFirst element name
element2YesSecond element name
reverse1NoKeep the other side of element1
reverse2NoKeep the other side of element2

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare the tool is a non-readonly, non-destructive, non-idempotent operation. The description adds that one side of each element is kept and that reverse flags flip the kept side, but it does not clarify whether originals are modified or whether the result is a new element. With annotations covering safety, 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.

Conciseness4/5

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

Two short sentences with the primary operation front-loaded and no wasted words. The second sentence is somewhat redundant with the schema descriptions of reverse1 and reverse2, but it remains compact.

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

Completeness3/5

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

For a mutation tool with no output schema, the description is adequate on the operation but omits what happens to the original elements or what the return value is. Annotations cover the safety profile, but an agent would still need to know whether the input elements are consumed or preserved.

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

Parameters3/5

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

Schema description coverage is 100%, so all five parameters are documented in the schema itself. The description only repeats the reverse flags' effect without adding syntax, format, or selection order details beyond what the schema provides.

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

Purpose4/5

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

States a specific verb (mutually trim) and resource (two elements), making the operation clear. However, it does not differentiate from sibling operations like catia_gsd_split or catia_gsd_intersection, which also modify elements.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. It simply states the operation without context for selection.

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

catia_hide_show_bodyB
Idempotent

Show or hide a Body in the 3D view (does not delete it).

ParametersJSON Schema
NameRequiredDescriptionDefault
visibleYestrue = show, false = hide
body_nameYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare idempotentHint=true and destructiveHint=false, and the description adds the useful clarification that the operation does not delete the body. However, it does not disclose side effects, required document state, or what happens if the body is already in the requested state.

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

Conciseness5/5

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

A single front-loaded sentence with zero waste. It communicates the operation and the key non-destructive guarantee compactly.

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

Completeness3/5

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

For a simple two-parameter toggle with annotations covering the safety profile, the description is minimally adequate. But it omits useful context such as which document the body belongs to and how body names are resolved, leaving an agent to infer these details.

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

Parameters2/5

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

The schema documents the 'visible' parameter (true = show, false = hide), but 'body_name' has no description. The tool description does not compensate by explaining how to reference a body (e.g., exact name from list_bodies), leaving half the parameters semantically thin.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource: show or hide a Body in the 3D view, and it explicitly distinguishes the operation from deletion. It does not differentiate from other body-related siblings such as activate_body or rename_body, but the core purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives like activate_body or delete_feature. The description only states what the tool does, not the context or prerequisites for invoking it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_holeA

Create a Hole (Trou) at a 3D point on a planar face, drilled along the face normal into the material. The face is the one through 'point' (active body first, then other bodies — a hole in a 'Machined' body on a face of the 'Rough' body works). Types: simple, tapered (conique, taper_angle), counterbored (lamé, head_diameter + head_depth), countersunk (fraisé, head_diameter + head_angle). Limit: fixed 'depth', or 'up_to_point' = a point inside the plane/face where the hole must stop (Jusqu'au plan).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoExplicit name for the created feature in the specification tree (e.g. 'Pad_Bras_20mm', 'Trou_Conique_D12'). Strongly recommended: default names like 'Extrusion.3' make the tree unreadable and are flagged by tree audits.
typeNosimple
depthNoHole depth in mm (ignored when up_to_point is given).
pointYes[x, y, z] mm: hole centre, lying ON the entry face.
diameterYesHole diameter in mm
threadedNoWhether to add threading (default: false)
head_angleNocountersunk: head angle (degrees, default 90).
head_depthNocounterbored: head depth (mm).
taper_angleNotapered: cone angle in degrees.
up_to_pointNo[x, y, z] mm of a point inside the face/plane the hole goes up to.
head_diameterNocounterbored/countersunk: head diameter (mm).

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the bare mutation profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false). The description goes beyond that by disclosing the body-search order for face resolution and the depth-vs-up_to_point precedence, both of which affect how the operation behaves. It omits prerequisites such as an active part/document being required, so it is not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three front-loaded sentences that put the core action first, then types, then limits, with parenthetical French aliases carrying their weight. The nested clauses make it dense but nothing is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter mutation tool with no output schema, the description covers the geometry decision (which face), the type/parameter matrix, and the limit modes, which is most of what an agent needs. It could be more complete about required document state, but the core calling decisions are covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 91%, so the baseline is 3, but the description adds real value by mapping each hole type to its parameter combination (tapered→taper_angle, counterbored→head_diameter+head_depth, countersunk→head_diameter+head_angle) and stating that depth is ignored when up_to_point is supplied. That is genuine semantics beyond the per-field schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a precise verb and resource — create a Hole at a 3D point on a planar face, drilled along the face normal into the material — and clearly separates it from siblings like catia_pocket or catia_thread. An agent knows exactly what CAD feature this produces without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains the face-resolution rule (active body first, then other bodies, with a concrete cross-body example) and enumerates the four hole types and the two limit modes, which tells the agent which parameters apply when. It stops short of naming alternative tools or stating when not to use this one, so it falls short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_lessonsA
Read-only

Search the knowledge base of proven CATIA V5 automation pitfalls and rules (each one verified live). Call it BEFORE a risky operation (topology selection, boolean ops, assembly constraints, measurements) or right after an unexplained COM error. With no query it returns the critical rules.

ParametersJSON Schema
NameRequiredDescriptionDefault
areaNoFilter: com, sketch, part, boolean, topology, measure, assembly, display, process, drawing, performance.
toolNoFilter by tool name, e.g. catia_pocket.
limitNoMax entries (default 15).
queryNoKeywords, e.g. 'pocket direction' or 'UpdateObject'.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered by structured data. The description adds value beyond that: entries are 'verified live' (a trust/quality signal) and the no-query call returns critical rules by default, which is real behavioral context. It stops short of describing output shape or entry count behavior, so a 4 rather than 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, zero filler, front-loaded with the resource and verb, then the invocation triggers, then the default behavior. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the burden of hinting at returns falls partly on the description; it does describe the content ('critical rules') and the verification provenance, which is enough for an agent to know what it will get. A brief note on entry shape or ordering would have closed the remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and all four filters (area, tool, limit, query) are documented with examples and an enum-like area list in the schema. The description adds meaning the schema does not: the query parameter is optional and omitting it returns the critical rules, which is a genuine default-behavior disclosure beyond the field docs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Search the knowledge base of proven CATIA V5 automation pitfalls and rules') and distinguishes itself from siblings by naming a concrete content domain, with catia_add_lesson as its obvious write counterpart. An agent can immediately tell this is a read-only lookup of curated lessons, not a modeling or query-execution tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the trigger conditions — before risky operations (with a parenthetical enumerating topology selection, boolean ops, assembly constraints, measurements) or after an unexplained COM error — and states the no-query fallback behavior. Nothing is left to inference about when to reach for this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_list_bodiesA
Read-only

List all Bodies in the active Part, their feature counts, and which one is currently active (InWorkObject).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds real behavioral value by disclosing the return surface (bodies, feature counts, which body is the InWorkObject) and the implicit scoping to the active Part, though it omits behavior when no Part is open.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler: verb first, then scope, then the payload returned. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so adequately by enumerating the reported fields. The only small gap is not mentioning behavior when no active Part exists, which is minor for a zero-param read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a no-argument tool is 4. No parameter syntax or defaults are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb (List) + resource (Bodies) + scope (in the active Part) and it names what is returned (feature counts, active/InWorkObject marker). This cleanly distinguishes it from sibling readers like catia_list_features, catia_list_edges, and catia_list_faces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: it is clearly the inspection call for bodies, after which catia_activate_body or catia_rename_body would follow. It never states when not to use it or that catia_get_tree provides overlapping tree information, so no explicit alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_list_componentsA
Read-only

Product tree: every component (recursively), its part number, file and position (origin + axes). With no argument: the whole tree as a JSON list (unchanged). On a big assembly do NOT list everything: pass path (one sub-assembly, e.g. 'Gearbox.1/Housing.1'), depth (levels to descend, 1 = direct children only) and limit/offset (pages of direct children). Then the answer is an object {total, offset, returned, components}. A listing of more than 5000 components is cut and flagged truncated.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoSub-assembly to list (default: the root).
depthNoLevels to descend (default: all).
limitNoDirect children per page.
offsetNoFirst direct child (default 0).

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint/openWorldHint annotations, it discloses that the return type changes shape depending on arguments (JSON list vs {total, offset, returned, components}) and that listings over 5000 components are silently cut and flagged truncated. These are non-obvious behavioral traits an agent must know.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core resource, then behavior, then the large-assembly caveat, and every sentence carries information. It is dense but slightly run-on with three parenthetical asides, keeping it short of perfect.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema present, the description steps in to describe both return shapes and the truncation flag, and it covers all four parameters' effects. Nothing an agent needs to invoke this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so the baseline is 3, but the description adds real meaning: a concrete path example ('Gearbox.1/Housing.1'), the clarification that depth 1 means direct children only, and that limit/offset page through direct children. That is more than the schema's bare one-liners convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (the product tree's components, recursively) and the exact payload returned (part number, file, origin + axes). It does not, however, distinguish itself from the sibling catia_get_tree or catia_list_bodies, which an agent may reasonably confuse it with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly covers the no-argument default ('the whole tree as a JSON list (unchanged)') and then gives the exact when-to-use rule for a large assembly ('do NOT list everything: pass path/depth/limit/offset'). This is precisely the routing guidance an agent needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_list_constraintsA
Read-only

Every constraint of the root assembly with its type and status (OK / broken...), plus a naming audit.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this a safe read (readOnlyHint=true) with no open-world access. The description adds genuinely new behavioral context by disclosing what the call returns — constraint type, OK/broken status, and a naming audit — which matters because there is no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the resource and scope, and the trailing 'plus a naming audit' addendum is short enough to earn its place. No filler or restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless read with no output schema, the description covers the main missing piece — what is returned — including status values and an extra audit. It stops short of stating preconditions (active session/document) or whether non-root/sketch constraints appear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4; there is no parameter syntax the description needs to explain. The description's implicit constraint that the listing is limited to the root assembly is a scope note, not a parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb+resource (list every constraint) with an explicit scope (root assembly) and enumerates what is reported: type and status. The root-assembly scoping implicitly separates it from catia_sketch_constraint, but the distinction is never made explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites (e.g. a connected session with an open assembly), and no routing to alternatives such as catia_sketch_get_geometry or catia_list_features when the agent needs different information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_list_documentsA
Read-only

List all open documents in CATIA V5 with their types and paths.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds that results include document types and paths, which is useful context, but it says nothing about ordering, environment requirements (must CATIA be connected?), or behavior when no documents are open.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no waste; the resource is named first and the returned content follows immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only tool with no output schema, the description should carry the burden of describing return values, and it does so at a basic level (types and paths). Minor gaps remain around ordering and empty-state behavior, but nothing essential to correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the schema places no semantic burden on the description. Baseline 4 applies; there is nothing for the description to clarify or omit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List all open documents in CATIA V5') plus what is returned (types and paths). This clearly separates it from siblings like catia_list_features, catia_list_bodies, or catia_close_all, though it does not name any sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The scope 'open documents' implies when the tool is useful (enumerating what is currently loaded before open/close/save operations), but there is no explicit when-to-use, prerequisite, or alternative guidance. Adequate but leaves routing entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_list_edgesA
Read-only

List the edges of a body's current solid with length and start/middle/end points (mm) — pick an edge's middle point to pass to catia_fillet / catia_chamfer edge_points.

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNoBody to inspect (default: active body).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description still adds useful behavioral detail: the result set is the current solid's edges and includes length plus start/middle/end vertex coordinates in millimetres.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense, front-loaded sentence with an em-dash continuation that adds the actionable hook. Every clause earns its place; nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully covers what is returned (edges with length and points in mm) and why. It stops short of mentioning ordering, empty-body behaviour, or response shape details for an edge list, which is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter (body_name) with 100% schema description coverage, including its default (active body). The description adds no syntax or format detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (edges of a body's current solid), plus the exact payload returned (length and start/middle/end points in mm). It is clearly distinguishable from the sibling catia_list_faces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells the agent what to do with the result: pick an edge's middle point to feed catia_fillet / catia_chamfer edge_points. This is concrete downstream usage guidance, though it never states when NOT to use it or compares against alternative inspection tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_list_facesA
Read-only

List the faces of a body's current solid: type, area, centre of gravity; planar faces: plane, parallel origin plane (xy/yz/zx + offset) and an inside_point guaranteed ON the face (the COG of a holed face is in the hole) — use it as face_point; cylinders/cones: radius and axis — any point on them works as axis_point.

ParametersJSON Schema
NameRequiredDescriptionDefault
body_nameNoBody to inspect (default: active body).

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare this as a read-only, non-open-world operation, and the description adds meaningful behavioral detail beyond that: the exact face properties returned, a caveat about the center of gravity of holed faces, and guidance on using inside_point or axis_point. It does not cover error behavior or pagination, but it substantially enriches the read-only picture.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense sentence with semicolons, front-loaded with the core purpose. It is appropriately sized and avoids fluff, though the run-on structure could be harder to scan than a short bulleted list.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description carries the burden of explaining return values and does so thoroughly, including how to use specific returned points. It is complete enough for an agent to invoke the tool and interpret its results, with only minor omissions like error handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single parameter (body_name) already has a clear description including the default active body. The tool description does not add parameter-specific meaning beyond what the schema 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'List the faces of a body's current solid'. It then enumerates the face data returned (type, area, COG, plane, inside_point, radius, axis), which makes it easy to distinguish from sibling tools like catia_list_edges 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives usage hints for the returned data ('use it as face_point', 'any point on them works as axis_point'), but it does not say when to call this tool versus alternatives like catia_list_edges or explicitly state prerequisites or exclusions. Usage is implied for downstream modeling operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_list_featuresA
Read-only

List all features in the active Part Body with their names and types.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and openWorldHint=false, so the safety profile is already covered. The description adds scope (active Part Body) and return content (names and types), but omits behavior when no Part Body is active and whether results are paginated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no redundant or filler content. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only list tool with no output schema, the description adequately communicates scope and returned fields. Edge-case behavior is not covered, but the tool is simple enough that this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. The description correctly does not attempt to document parameters and adds nothing that would be needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (features in the active Part Body) plus the returned fields (names and types). It is distinguishable from siblings like catia_list_bodies and catia_list_edges, but does not explicitly name or contrast them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the description (enumerate features of the active Part Body), but there is no explicit when-to-use guidance, no prerequisites, and no mention of alternatives such as catia_get_tree or catia_describe_model.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_measure_distanceB
Read-only

Measure the minimum distance between two geometry elements. Returns distance in mm.

ParametersJSON Schema
NameRequiredDescriptionDefault
element1YesName of first element (feature, face, edge, point)
element2YesName of second element

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description usefully adds the return unit (mm), which the annotations and schema do not provide, but says nothing about tolerances, failure cases, or whether geometry must be pre-selected/active.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no waste, with the action first and the return unit second. Everything present earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly discloses the returned quantity and unit, which is the key missing piece. The main gap is the absence of any routing versus the sibling catia_measure_model, but for a simple read-only measurement the definition is otherwise sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the two parameters are documented there, including the element type examples (feature, face, edge, point). The description adds no naming-format or resolution detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Measure) and resource (minimum distance between two geometry elements), which is unambiguous. However, it never distinguishes itself from the sibling catia_measure_model, so an agent must guess which measure tool applies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as catia_measure_model or catia_get_bounding_box. The agent gets the purpose but must infer the selection context on its own.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_measure_modelA
Read-only

Measure each body of the ACTIVE part: volume (mm3), area, centre of gravity, exact bounding box (mm) and inertia (principal moments and matrix at the COG, kg.mm2, and mass at the part density). Read-only. Use it to compare an original with its replay.

ParametersJSON Schema
NameRequiredDescriptionDefault
with_bboxNoCompute the exact bounding box (slow on parts with many faces).

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so 'Read-only' largely repeats structured data. The description does add useful context: it operates on the ACTIVE part, covers all bodies, and computes mass at the part density, but it omits cost/performance caveats (the slow-bbox note lives only in the schema).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense, front-loaded enumeration of metrics followed by two short sentences. Every clause carries information; no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description properly enumerates the return values and their units (mm3, mm, kg.mm2), which is what an agent needs. Minor gap: no note on scope limits or performance for large parts.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one optional parameter with full schema coverage and a good schema description (bbox 'slow on parts with many faces'). The tool description mentions the exact bounding box as an output but adds no parameter syntax 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (measure) and scope (each body of the ACTIVE part) and enumerates the exact metrics returned with units. It is clearly distinguishable from single-metric siblings like catia_get_inertia and catia_get_bounding_box, though it never names them explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides one concrete use case ('compare an original with its replay') but no when-not guidance and no explicit routing to the single-metric alternatives. Usage is implied rather than fully specified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_mirrorB

Symmetry of the whole active body's current solid about a plane (Symétrie): the result is the body plus its mirror image. Plane = an origin plane, or the planar face through plane_face_point.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoExplicit name for the created feature in the specification tree (e.g. 'Pad_Bras_20mm', 'Trou_Conique_D12'). Strongly recommended: default names like 'Extrusion.3' make the tree unreadable and are flagged by tree audits.
planeNo
plane_face_pointNo

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, destructiveHint=false and idempotentHint=false. The description adds real value by stating the outcome ('the result is the body plus its mirror image'), which implies the original solid is preserved. It does not say whether a new body is created or the active body is modified, or how the feature appears in the tree.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences that front-load the operation and its result, with the plane semantics afterward. No filler, though the parenthetical '(Symétrie)' is a small non-essential artifact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a non-read-only modeling operation with no output schema, the description covers the plane input and the geometric result but leaves the tree/body side effects and the interaction between the two plane parameters underspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% (only 'name' is documented), so the description must compensate. It does explain that 'plane' can be an origin plane or a planar face specified through plane_face_point, linking the two parameters, but it omits the point's coordinate format and what happens if plane and plane_face_point conflict.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: mirroring the whole active body's current solid about a plane, with the result defined as body plus mirror image. This distinguishes it implicitly from the surface-based sibling catia_gsd_symmetry, though it never names the sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance, and no mention of the closely related catia_gsd_symmetry alternative. The plane definition hints at the operation's inputs but does not tell the agent under which conditions this tool should be chosen.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_move_componentB

Translate/rotate a component (before constraining it, to pre-place it).

ParametersJSON Schema
NameRequiredDescriptionDefault
rxNodegrees
ryNo
rzNo
txNo
tyNo
tzNo
componentYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this is a non-readOnly, non-idempotent, non-destructive operation, and the description's 'pre-place it' hints at a temporary/repositioning workflow. It does not disclose whether the translation is absolute or relative to the current position, which is the key behavioral question for a move operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with the intent front-loaded and no filler. Not bloated, but also too thin for a seven-parameter mutation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Seven parameters, near-zero schema coverage, no output schema, and no annotations covering the geometry semantics. An agent still cannot determine units, reference frame, or whether motion is relative, so the definition is incomplete for the complexity of the operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 14% (only rx carries 'degrees'), so the description must carry the load and it does not: tx/ty/tz units, whether rotations are applied about the component origin or the assembly origin, and rotation order are all unspecified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (translate/rotate) and resource (component), and the parenthetical 'before constraining it, to pre-place it' separates it from the constraint tools in the sibling list. It is clear what the tool does, though it never states the reference frame for the motion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a usage context ('before constraining it, to pre-place it') that implies ordering relative to catia_coincidence_constraint and friends, but names no alternative and gives no explicit when-not guidance (e.g., what to do if the component is already constrained).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_new_bodyA

Insert a new Body in the active Part (Insertion > Corps in the French UI). This is the entry point of the multi-corps method: create one Body per functional zone of the piece, then combine them later with catia_boolean_operation. The new body is NOT made active automatically; call catia_activate_body next.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoDescriptive name for the body, e.g. 'Rough', 'Machined', 'Bague_ext'. If omitted, keeps CATIA's default 'Body.N'.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the write/non-idempotent/non-destructive profile, and the description adds a genuinely non-obvious side effect: the new body is NOT made active automatically. That is the key behavioral fact an agent needs. It stops short of covering failure modes or naming constraints, so not a full 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, each earning its place: what it does, where it sits in the workflow, and the follow-up call. Front-loaded and free of repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-optional-parameter creation tool with annotations covering safety, nothing needed to invoke it correctly is missing; the sequencing caveat is the one gap an agent might otherwise hit, and it is stated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single optional 'name' parameter whose default behavior ('Body.N') is already documented in the schema. The description adds nothing about the parameter, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Insert) and resource (new Body in the active Part), and even pinpoints the UI path (Insertion > Corps). It is unmistakable against siblings like catia_new_part, catia_new_product, or catia_activate_body.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly frames this as the entry point of the multi-corps method, tells the agent what to do next (call catia_activate_body) and what happens later (combine with catia_boolean_operation). The when-to-use and what-comes-next are both spelled out.

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 Part document in CATIA V5. A Part is used for single-body 3D modeling (sketches + features).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional name for the part

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the mutation profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), so safety is largely covered. The description adds that the created document is empty and that it targets CATIA V5, but says nothing about permissions, whether the new document becomes active, or side effects on existing documents.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the action and followed by the disambiguating scope. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple document-creation tool the description covers the essentials, but with no output schema it does not indicate what is returned (e.g., a document handle/name) or what state the agent should expect afterward (active document, readiness for sketching).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single optional parameter and schema description coverage is 100%, so the schema already explains 'name'. The description adds no naming conventions, defaults, or behavior when the name is omitted; baseline 3 applies 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a new empty Part document') and adds scope context that a Part is for single-body 3D modeling with sketches and features. It does not explicitly contrast itself with close siblings like catia_new_product or catia_add_new_part, so the distinction must be inferred.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The line 'A Part is used for single-body 3D modeling' implicitly signals when this tool applies versus a Product/Assembly context, but there is no explicit when-to-use/when-not-to-use statement or naming of alternatives such as catia_new_product.

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 Product (assembly) document in CATIA V5. A Product is used to assemble multiple Parts together.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional name for the product/assembly

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this is a non-read-only, non-destructive, non-idempotent creation with no open-world access. The description adds that the resulting document is 'empty', which is useful context. It does not disclose default naming behavior, what happens on a name collision, or where the document is created, so it adds only limited value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action, and each sentence carries distinct information (what is created, and what the concept is for). No waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple creation tool with one optional parameter, existing annotations, and no output schema, the description is nearly sufficient. The only meaningful gap is what happens with naming (default name or collision handling), which is minor for this operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single optional 'name' parameter, so the schema already documents it. The description contributes no additional syntax, default, or constraint information beyond what structured data provides, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a new empty Product (assembly) document in CATIA V5') and clarifies the domain concept ('a Product is used to assemble multiple Parts'). This implicitly distinguishes it from the sibling catia_new_part, though it never names that sibling directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The clause about assembling multiple Parts implies when a Product is appropriate versus a Part, but there is no explicit when-to-use or when-not-to-use guidance and no named alternative. Usage is left to inference from the domain explanation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_offset_constraintB

Offset (Décalage) between two planar faces/planes: signed distance in mm (0 = touching).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoExplicit name for the offset constraint in the tree (recommended).
offsetYesDistance in mm.
element1YesGeometry of the component, in the component's OWN part coordinates (mm): {'face_point': [x,y,z]} a point inside a face; {'axis_point': [x,y,z]} a point on a cylindrical/conical face, meaning its AXIS; {'edge_point': [x,y,z]}; or {'plane': 'xy'|'yz'|'zx'} one of the component's origin planes. Use catia_list_faces on the part to find points, radii and axes.
element2YesGeometry of the component, in the component's OWN part coordinates (mm): {'face_point': [x,y,z]} a point inside a face; {'axis_point': [x,y,z]} a point on a cylindrical/conical face, meaning its AXIS; {'edge_point': [x,y,z]}; or {'plane': 'xy'|'yz'|'zx'} one of the component's origin planes. Use catia_list_faces on the part to find points, radii and axes.
component1YesInstance name (e.g. 'Engine.1'), or a path 'Sub.1/Part.1' for a sub-assembly child.
component2YesSecond instance name or path.
orientationNoNormals same or opposite direction (optional).
defer_updateNoSkip the solve after this constraint (default false). Each solve re-computes EVERY constraint, so its cost grows with the assembly: in a long sequence defer all but the last, then check with catia_update_assembly. The status is NOT evaluated when deferred.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare non-readonly, non-destructive, non-idempotent behavior, so the safety profile is covered. The description adds only the signed-distance semantics (0 = touching), which is useful but narrow; it does not disclose that the constraint is added to the tree or that a solve is triggered (the latter is carried by the defer_update parameter description).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One tightly written sentence with the key qualifier (signed, mm, 0 = touching) front-loaded and no filler. It is efficient, though the terseness comes at some cost to guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with 8 parameters, nested geometry objects, and no output schema, the definition is adequate because the schema does heavy lifting for parameters. It still omits when to choose it over the sibling constraints and what happens to the assembly/tree after creation, leaving gaps for an agent working in a dense constraint family.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are fully documented in the schema (including element geometry, component paths, and defer_update solve cost). The description's 'signed distance in mm (0 = touching)' adds sign/zero semantics for offset but nothing beyond that. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (offset constraint) and the resources involved (two planar faces/planes) plus units, so the agent knows what is created. It does not, however, distinguish itself from the sibling constraint tools (catia_coincidence_constraint, catia_contact_constraint, catia_angle_constraint), which is the only thing keeping it from a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool rather than the other assembly-constraint siblings. The parenthetical '(0 = touching)' hints at the contact-constraint boundary but never names it or explains the selection condition, so the agent must infer usage entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_open_documentB

Open an existing CATIA document from a file path (.CATPart, .CATProduct, .CATDrawing).

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYesFull path to the CATIA document to open

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, covering the safety profile. The description adds only that the document must already exist, without stating what happens on failure, whether the document becomes active, or how it interacts with the connected session. With annotations carrying the safety signal, this is partial value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no filler. It could be slightly tighter but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter open operation with annotations covering safety, the description is minimally sufficient. It omits return value (e.g., document handle/status) and any session prerequisites, which would help in the context of ~90 sibling tools and no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter already has a description ('Full path to the CATIA document to open'). The description echoes the file path concept and adds accepted extensions, but the schema does most of the work. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('open') and resource ('existing CATIA document') and enumerates the accepted file types (.CATPart, .CATProduct, .CATDrawing). It does not explicitly differentiate from sibling loaders like catia_list_documents or catia_connect, but the operation is clear enough to distinguish.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The word 'existing' implies this is for already-saved documents, and the file extensions narrow scope. However, it does not state when to use this versus siblings such as catia_list_documents, catia_connect, or catia_new_part. No explicit when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_padB

Create a Pad (extrusion) from the last sketch. Extrudes a 2D profile into a 3D solid along the normal to the sketch plane.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoExplicit name for the created feature in the specification tree (e.g. 'Pad_Bras_20mm', 'Trou_Conique_D12'). Strongly recommended: default names like 'Extrusion.3' make the tree unreadable and are flagged by tree audits.
heightYesExtrusion height/depth in mm
directionNoExtrusion direction: 'normal' (default), 'reverse', 'both'normal
symmetricNoIf true, extrude equally on both sides (total = height)
sketch_nameNoName of sketch to use. If not specified, uses the last created sketch.
second_heightNoIndependent length for the OPPOSITE side (CATIA's 'Second Limit'), e.g. height=21, second_height=1 extrudes 21mm one way and 1mm the other — NOT the same as symmetric (which forces both sides equal). Ignored if symmetric=true.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the operation is a mutation (readOnlyHint=false) that is not destructive and not idempotent, so the safety profile is known. The description adds that the result is a solid generated along the sketch normal, which is useful context, but it omits prerequisites (active part/document, sketch existence) and failure behavior when no sketch is present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly worded sentences that front-load the core action and then the geometric result. No filler, no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with rich, fully documented parameters and annotations covering safety, the description covers the essential operation. However it omits prerequisites (must have a sketch and active part) and any output/return expectation, leaving some gaps an agent would need for reliable invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all six parameters thoroughly, including the subtle second_height vs symmetric distinction. The description only echoes 'along the normal to the sketch plane', adding no parameter detail 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Create') and resource ('Pad/extrusion') and clarifies what it produces: a 3D solid from a 2D profile along the sketch-plane normal. It does not, however, differentiate itself from siblings like catia_pocket (material removal) or catia_gsd_extrude (surface extrusion), which an agent must infer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'from the last sketch' implies a prerequisite sketch must exist, but there is no explicit when-to-use guidance, no when-not-to-use, and no routing to alternatives such as catia_pocket or catia_gsd_extrude. Usage must be inferred from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_pocketA

Create a Pocket (cut extrusion) from the last sketch. With direction='auto' (default) the tool checks that material was really removed and flips the direction if not (CATIA's default side is unreliable — proven live). Limits: fixed depth, 'up_to_next' (Jusqu'à la suivante) or 'up_to_last' (through).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoExplicit name for the created feature in the specification tree (e.g. 'Pad_Bras_20mm', 'Trou_Conique_D12'). Strongly recommended: default names like 'Extrusion.3' make the tree unreadable and are flagged by tree audits.
depthNoCut depth in mm (limit='dimension').
limitNodimension
directionNoauto = CATIA default side (against the sketch normal), flipped automatically if it removed nothing; normal = CATIA default side; reverse = the other side.auto
sketch_nameNoName of sketch to use. If not specified, uses the last sketch.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare safety flags (readOnly=false, destructive=false), so the description adds real value: it discloses that auto direction verifies material removal and flips if nothing was cut because CATIA's default side is unreliable. That is non-obvious behavior an agent cannot infer from the annotations or schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core action, then the direction caveat, then the limit enum. Dense and mostly waste-free, though the parenthetical '(Jusqu'à la suivante)' and '(proven live)' add flavor more than actionable content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-param mutation tool with no output schema and annotations covering the safety profile, the description covers the key behavioral pitfall (auto-direction flipping) and limit options. It leaves out error/precondition behavior (e.g. what happens with no sketch, or on failure), a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 80%, so the schema already documents most parameters. The description reinforces limit semantics (fixed depth, up_to_next, up_to_last/through) and the auto-direction behavior, but adds little for depth, name, or sketch_name beyond what the schema states, so baseline 3 holds.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a Pocket (cut extrusion) from the last sketch'), and the parenthetical clarifies it removes material, which implicitly distinguishes it from catia_pad. It does not explicitly name the sibling it contrasts with (e.g. catia_pad or catia_hole), so it falls just 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It describes how direction='auto' behaves and enumerates the limit modes, which implies when each applies, but never states when to choose a Pocket over sibling operations like catia_pad, catia_hole, or catia_groove, nor what prerequisites (active body, sketch present) must hold.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_prepare_geometryA

Resolve ALL the geometry designations an assembly will need in ONE pass, before adding constraints. Designating a face/axis/edge inside a part re-opens that part in CATIA (a window opens, is searched and closes again, the screen reloads), which is the slowest thing an assembly does; done per constraint it costs ~1 s each and flickers the screen. Here every part is opened ONCE and all its points are searched together; the results are cached, so the constraints that follow are instant. Give one item per (component, element) you will use in constraints. Already-cached items are skipped. A wrong point is reported here, with the distance of the closest element, before any constraint exists. Safe to call repeatedly (idempotent).

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYes[{'component': 'Bolt.1', 'element': {'face_point': [x,y,z]}}, ...]

TDQS

A3.7/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states 'Safe to call repeatedly (idempotent) and that already-cached items are skipped', but the annotations declare idempotentHint=false. An agent deciding whether to retry this call gets directly conflicting signals. Otherwise the description is rich (cache mechanism, screen-reload cost, error reporting with closest-element distance), but the direct conflict with the annotation dominates.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action and its scope, followed by the cost rationale, the input convention, and error behavior. Every sentence carries information, though the explanation of CATIA window open/search/close and screen reload is somewhat verbose for the value it adds over 'this is slow per-element'.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a single parameter, full schema coverage and no output schema, the description covers the important ground: pre-constraint timing, caching, repeat-call behavior, and failure reporting (wrong point + distance of nearest element). It does not describe the success return value or the shape of the cached result, a minor gap given no output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is already 100%: the nested 'element' object fully documents face_point/axis_point/edge_point/plane and the part-coordinate convention. The description adds planning semantics the schema does not ('one item per (component, element) you will use in constraints') and reinforces the catia_list_faces workflow, but repeats part of the schema hint.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Stated as a specific verb+resource ('resolve ALL the geometry designations an assembly will need') with an explicit scope qualifier ('in ONE pass, before adding constraints'). It is clearly distinguishable from the sibling constraint tools (catia_coincidence_constraint etc.) and from the listing tools (catia_list_faces), which it positions as the companion used to find points.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives strong context: call this before adding constraints, because per-constraint designation costs ~1 s each and flickers the screen. It also points to catia_list_faces for discovering the points/axes to pass in. It stops short of naming an alternative tool or an explicit when-not-to-call condition, so it is not a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_rect_patternB

Rectangular Pattern (Répétition rectangulaire) of a feature along two global axes.

ParametersJSON Schema
NameRequiredDescriptionDefault
dir1NoFirst direction (global axis).x
dir2NoSecond direction (global axis).y
nameNoExplicit name for the created feature in the specification tree (e.g. 'Pad_Bras_20mm', 'Trou_Conique_D12'). Strongly recommended: default names like 'Extrusion.3' make the tree unreadable and are flagged by tree audits.
dir1_countYesNumber of instances in first direction
dir2_countNoNumber of instances in second direction (default: 1)
dir1_spacingYesSpacing in first direction (mm)
dir2_spacingNoSpacing in second direction (mm)
feature_nameNoName of the feature to pattern. Defaults to last feature.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly=false, destructive=false, idempotent=false), so the description only needs to add context. It adds that the pattern is along two global axes, a behavioral constraint, but does not explain what gets created in the tree, whether the source feature is modified, or what the operation returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. The parenthetical French translation is optional but not wasteful, and the purpose is immediately clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter mutation tool, the description omits workflow context: which feature gets patterned, how to choose or default feature_name, what happens after creation, or any usage caveats. Although the schema and annotations are rich, the description is too thin to be considered complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 8 parameters are fully documented in the schema. The description adds no additional meaning, syntax, or defaults 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific operation: rectangular pattern of a feature along two global axes. The term 'rectangular' implicitly differentiates from the sibling catia_circ_pattern, but no sibling is named, and the verb is implicit rather than explicit ('Pattern' as a noun).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides no guidance on when to use this tool versus catia_circ_pattern, catia_mirror, or other patterning tools. No prerequisites, context, or alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_rename_bodyB

Rename a Body (in Part.Bodies) via the .Name COM property.

ParametersJSON Schema
NameRequiredDescriptionDefault
new_nameYesNew descriptive name.
old_nameNoCurrent body name, e.g. 'Body.2'. If omitted, renames the last body created.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the mutation profile (readOnly=false, destructive=false, idempotent=false), and the description adds little beyond that. It does not explain what happens on a name collision, whether the rename cascades to references/features built on that body, or why the operation is non-idempotent (omitting old_name depends on creation order). The COM-property note is an implementation detail, not agent-useful behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with the action front-loaded; nothing is wasted. The parenthetical scope qualifier arrives immediately after the verb.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter mutation with no output schema, the description is adequate but thin: it omits prerequisites (active part/document), failure modes (nonexistent body or duplicate name), and side effects. Annotations cover the safety profile, but the description leaves meaningful gaps for a write operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented in the schema, including the 'renames the last body created' fallback for old_name. The description adds no syntax or format detail beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Rename) and resource (Body, scoped to Part.Bodies), which is clear and distinct from the sibling catia_rename_feature. It does not, however, explicitly contrast itself with that sibling, so an agent must infer the body-vs-feature distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no preconditions (e.g. an active document/part must exist), and no reference to the sibling rename tool or list_bodies. The only behavioral hint, that omitting old_name targets the last body created, lives in the schema, not the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_rename_featureA

Rename a feature or sketch in the active Part Body. Sets the .Name COM property directly (CATIA V5 exposes Feature.Name and Sketch.Name as read/write) — no macro/VBA bridge required. Use this right after creating a feature (catia_pad, catia_pocket, ...) instead of asking the user to rename it by hand in the GUI.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoWhere to look for old_name: 'feature' (Body.Shapes), 'sketch' (Body.Sketches), or 'auto' (try both).auto
new_nameYesNew explicit name, e.g. 'Pad_bague_ext_30mm'.
old_nameNoCurrent name to look up (e.g. 'Pad.1'). If omitted, renames the most recently created feature/sketch.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds real behavioral context beyond the annotations: the rename is done by setting the .Name COM property directly, with no macro/VBA bridge, and it acts on the active Part Body. Annotations only cover safety/idempotency, so this mechanism disclosure is genuinely additive. It stops short of describing failure modes (name collisions, missing old_name) or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three front-loaded sentences with no filler: what it does, how it works, when to use it. The COM/VBA detail is slightly technical but earns its place by explaining reliability and the absence of a bridge dependency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema and annotations covering only safety hints, the description supplies scope, mechanism, and workflow placement. It omits error/edge-case behavior (duplicate names, old_name not found, no active document), which keeps it short of fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents kind, new_name, and old_name including the 'most recent feature' default behavior. The description adds no format, naming-convention, or constraint detail beyond that baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (rename) plus the exact resource and scope (a feature or sketch in the active Part Body). This cleanly separates it from the sibling catia_rename_body, which operates on bodies rather than features/sketches.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete usage context: call it right after creating a feature via catia_pad, catia_pocket, etc., rather than doing it manually in the GUI. It implies the workflow position but never explicitly excludes the related catia_rename_body sibling or states preconditions like an open/active document.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_save_allA
Idempotent

Save the whole assembly (Gestion des enregistrements): every new or modified part/sub-product is saved into 'folder' as .CATPart/.CATProduct, then the root product as . Documents that already have a file and are unmodified are left untouched.

ParametersJSON Schema
NameRequiredDescriptionDefault
folderYesTarget folder (created if needed).
file_nameNoRoot product file name, e.g. 'EngineAssembly.CATProduct'.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the write operation (readOnlyHint=false), idempotency (idempotentHint=true), and non-destructiveness (destructiveHint=false). The description adds valuable context: it specifies how files are named and where they are saved, and clarifies that unmodified documents are left untouched, which goes beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded, with the main action stated first, followed by essential details. Every sentence contributes to understanding the tool's behavior without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description fully explains the tool's behavior: what gets saved, where, under what naming scheme, and that unmodified documents are not re-saved. This is sufficient for an agent to understand the outcome of the operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning by explaining that 'folder' is the target directory for all saved files and 'file_name' determines the root product's file name, along with the naming conventions for parts and products.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific verb ('Save') and resource ('whole assembly'), and distinguishes itself from sibling tools like catia_save_document by emphasizing that it saves every new or modified part/sub-product, not just a single document.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it (to save the entire assembly with multiple changes), but provides no explicit guidance on when to prefer it over alternatives such as catia_save_document, nor any exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_save_documentA
Idempotent

Save the active CATIA document. Optionally save to a new path (Save As).

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathNoOptional new file path for Save As

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, idempotent=true and destructive=false, so the safety profile is covered. The description adds that the target is the active document, but does not say whether Save As silently overwrites an existing file, whether a prompt occurs, or what the result is on failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero filler, with the core action front-loaded and the optional variant second.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, non-destructive tool with no output schema and safety fully covered by annotations, the description is nearly sufficient. Missing only the sibling differentiation (save_all) and overwrite behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single file_path parameter, so the schema already documents it as an optional Save As target. The description repeats that meaning without adding format, path, or overwrite semantics, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Save the active CATIA document') plus the variant behavior (Save As). The 'active document' scoping implicitly distinguishes it from the sibling catia_save_all, but that sibling is never named.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The parenthetical 'Optionally save to a new path (Save As)' implies when to pass a path, but there is no explicit guidance on when to use this versus catia_save_all or what happens if the document is unsaved/never named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_screenshotA
Read-only

Capture CATIA. mode='window' (default): the whole CATIA window, specification tree included, as PNG — rendered by CATIA itself, so it is correct even when CATIA is behind other windows (what report screenshots need). mode='viewer': only the 3D view through CATIA's CaptureToFile (JPG/BMP/TIFF; a .png path becomes .jpg).

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNowindow
file_pathYesOutput image path (e.g., 'C:/screenshots/part.png')

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint and openWorldHint; the description adds genuinely non-obvious behavior: rendering is performed by CATIA itself so it is correct even when CATIA is behind other windows, and viewer mode silently coerces a .png path to .jpg. These are exactly the kind of gotchas annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One compact, front-loaded paragraph with each mode labeled; no filler sentences. Slightly dense and the 'Capture CATIA.' opener is terse, but every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description covers the return artifact (file path, image format, format coercion) adequately. It omits any note on connection prerequisites or overwrite behavior for an existing file_path, which would round out a capture tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50% and the enum for 'mode' has no per-value description. The description supplies the missing meaning for both values, states the default, and notes the output format implications (PNG vs JPG/BMP/TIFF), which the schema does not provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Capture CATIA') and immediately distinguishes two capture modes with precise scope: 'window' = whole CATIA window incl. spec tree, 'viewer' = only the 3D view. An agent can tell this apart from siblings like catia_set_view, catia_fit_all, or drawing_render without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for choosing between modes, including the purpose-driven hint that 'window' is what report screenshots need. It does not explicitly say when to prefer this tool over siblings such as drawing_render, but the mode-selection guidance is concrete and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_set_parameterB

Set the value of a named parameter in the active part. Useful for parametric design modifications.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFull parameter name (e.g., 'Part1\\Pad.1\\FirstLimit\\Length')
valueYesNew value for the parameter

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this is a non-readonly, non-destructive, non-idempotent mutation, so the safety profile is covered. The description adds the 'active part' scope, but says nothing about failure modes, permission requirements, or whether the model rebuilds.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core action. The second sentence is generic and slightly filler, but it adds a small amount of context without bloating the definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter mutation whose safety profile is covered by annotations, the description is adequate but leaves gaps: it does not state what happens if the parameter name is invalid or missing, nor does it mention any side effects of changing a parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters are clearly documented with an example of the full parameter name. The description adds no extra 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (set), resource (named parameter), and scope (active part), which is more precise than a tautology. However, it does not explicitly distinguish itself from the sibling catia_get_parameters, leaving sibling differentiation to the tool name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Useful for parametric design modifications' gives an implied use case but no explicit when-to-use condition, no alternatives, and no prerequisites (e.g., active part must exist, parameter must already exist). Guidance is generic rather than actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_set_safetyA

LOWER the safety tier of this session (dangerous -> write -> read), for instance before a review or when handing the session to a less trusted step. It can never be raised from a tool call: raising it needs a human to restart the server with CATIA_MCP_SAFETY.

ParametersJSON Schema
NameRequiredDescriptionDefault
tierYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only tell the agent this is not read-only and not destructive. The description adds the non-obvious asymmetric behavior that the tier can only be decreased programmatically and that raising it requires a human restart with the CATIA_MCP_SAFETY env var — context an agent could not get from any structured field.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, with the action verb emphasized up front and the hard constraint placed last. Every clause carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter session-setting tool with no output schema, the description covers the operation, its direction, and its irreversibility. It stops short of defining the practical effects of each tier, which is the only remaining gap an agent might want.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the enum values are self-describing and the description supplies the ordering semantics ('dangerous -> write -> read'). It does not explain what each tier actually permits, e.g. which operations 'read' blocks, so it only partially compensates for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('LOWER the safety tier of this session') and even names the direction of the operation with the tier ladder. An agent can immediately tell this mutates session safety, distinguishing it from the read-only sibling catia_get_safety_state.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use context ('before a review or when handing the session to a less trusted step') and an explicit when-not constraint ('It can never be raised from a tool call'). Both the use case and the hard limit are stated rather than inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_set_viewA
Idempotent

Set the 3D view orientation (Z up, as CATIA's standard views) and reframe. front = looking along +Y; isometric = from (+X+Y+Z) corner; isometric_back/left/right = the three other upper corners.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewYesView orientation

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the operation is non-destructive and idempotent, so the description does not need to repeat safety facts. It adds useful behavioral context by noting that the tool also reframes the view and by explaining several orientation mappings, though it omits any mention of whether view state is saved.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with the core action stated first and orientation details appended efficiently. Every clause adds useful information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-enum view tool with full schema coverage and annotations covering safety, the description is nearly complete. It explains the main view orientations and the reframe behavior, though it could briefly cover the remaining enum values or clarify the effect on the saved view state.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the enum is self-contained, so the baseline is 3. The description goes beyond the schema by explaining the orientation meaning of front, isometric, and the three isometric variants, though it leaves top/bottom/left/right to standard conventions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: setting the 3D view orientation and reframing. It is clear enough to distinguish from most siblings, though it does not explicitly differentiate from nearby view-related tools such as catia_fit_all.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the action itself, but there is no explicit statement of when to use this tool versus alternatives like catia_fit_all or catia_clean_display. No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_shaftA

Create a Shaft (revolution) from the last sketch. The revolution axis is the sketch axis: either a line drawn with catia_sketch_line(is_axis=true) (axis='sketch_line', default), or the sketch's own H or V axis (axis='h'/'v', e.g. 'the X axis available in the sketch' on an XY sketch). The closed profile must lie entirely on one side of the axis.

ParametersJSON Schema
NameRequiredDescriptionDefault
axisNoRevolution axis: the is_axis line of the sketch, or its H / V absolute axis.sketch_line
nameNoExplicit name for the created feature in the specification tree (e.g. 'Pad_Bras_20mm', 'Trou_Conique_D12'). Strongly recommended: default names like 'Extrusion.3' make the tree unreadable and are flagged by tree audits.
angleNoRevolution angle in degrees (default: 360 for full revolution)
sketch_nameNoName of sketch to use.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare a non-read-only, non-idempotent, non-destructive mutation, and the description adds real behavioral context beyond that: the sketch/profile constraint that will cause failure and the axis source options. It says nothing about what the operation returns or what happens if the axis is invalid, but for this feature type the disclosed constraint is the meaningful one.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the operation, then the axis options, then the failure precondition. Every clause carries information an agent needs to call this correctly; there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations covering the safety profile and no output schema to explain, the description covers the operation, axis semantics, and the geometric precondition. It is slightly incomplete on how sketch_name interacts with 'the last sketch' phrasing and does not mention the default angle, but those are covered by the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, and the description genuinely adds meaning: it explains what 'sketch_line' refers to concretely (a catia_sketch_line with is_axis=true) and clarifies 'h'/'v' as the sketch's own absolute axes with a worked XY example. That maps the enum values to real modeling concepts rather than restating the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Create a Shaft (revolution) from the last sketch') and immediately distinguishes a revolution from other feature types by explaining the axis mechanism. It does not explicitly name the closest siblings (catia_groove, catia_pad), so an agent must infer the boundary, but the purpose itself is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the precondition for use ('the last sketch' and 'the closed profile must lie entirely on one side of the axis'), which is the key gating context for a revolve. It gives no explicit when-not guidance or alternative tools (e.g. groove for revolutions that cut), 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_shellB

Shell (Coque): hollow the solid, keeping walls of 'thickness' mm inside (outer_thickness adds material outside). The faces through open_face_points are removed (openings). Verified live.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoExplicit name for the created feature in the specification tree (e.g. 'Pad_Bras_20mm', 'Trou_Conique_D12'). Strongly recommended: default names like 'Extrusion.3' make the tree unreadable and are flagged by tree audits.
thicknessYesInner wall thickness (mm).
outer_thicknessNo
open_face_pointsYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the mutation and safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false). The description usefully clarifies that outer_thickness adds material outward and that face points become openings, but it omits whether an active body is required, whether the feature is added to the tree, or what happens on failure. 'Verified live' is a vague reliability claim rather than disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence with the core action front-loaded and the parameter behaviors appended. The bilingual 'Shell (Coque)' and the trailing 'Verified live.' are marginal additions but cost little.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no output schema, the description covers the geometry well but leaves execution context unstated: required document/body state, whether a new feature is created in the specification tree, and interaction with siblings like catia_thickness. Adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50% (name and thickness are documented; outer_thickness and open_face_points are not). The description compensates by explaining that outer_thickness adds material outside the wall and that open_face_points define the removed/open faces, which is exactly the missing semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific operation (shell/hollow) on a specific resource (the solid), and the parenthetical French synonym plus the geometric outcome make the action unambiguous. It does not explicitly differentiate itself from the adjacent sibling catia_thickness, but the verb+resource pair is concrete enough to select correctly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the geometric result but never states when to use shell versus the closely related catia_thickness, nor any prerequisites (active part/body required). Usage must be inferred entirely from the mechanics described.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_sketch_arcA

Draw a circular arc defined by center, radius, and start/end angles (degrees). Angles are measured counter-clockwise from the positive X axis.

ParametersJSON Schema
NameRequiredDescriptionDefault
cxYesCenter X (mm)
cyYesCenter Y (mm)
radiusYesRadius (mm)
end_angleYesEnd angle (degrees)
start_angleYesStart angle (degrees)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations disclose the mutation profile (readOnlyHint=false, idempotentHint=false, openWorldHint=false), so the description need not restate safety. It does add useful domain context — the counter-clockwise angle convention from +X — but omits that geometry is added to the currently active sketch and what error conditions apply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences with zero filler; the geometric definition comes first and the angle convention immediately after. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-required-parameter mutation tool with no output schema, the description covers geometry but not prerequisites (active sketch required) or the creation result. Enough to call it, not enough to call it correctly in context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds genuine meaning the schema lacks: the angular reference frame and direction (counter-clockwise from positive X). That convention is essential to interpreting start_angle/end_angle correctly and is not stated anywhere in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (draw) and resource (circular arc) plus the exact construction method (center, radius, start/end angles), which cleanly separates it from siblings like catia_sketch_circle, catia_sketch_profile, and catia_sketch_two_circle_contour. An agent can tell what it produces without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no mention that an active sketch must be open/created first (catia_create_sketch), and no statement of what happens if no sketch is active. The agent must infer the workflow from sibling names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_sketch_centered_rectangleB

Draw a rectangle centered at (cx, cy) with given width and height. Coordinates and dimensions in mm.

ParametersJSON Schema
NameRequiredDescriptionDefault
cxNoCenter X (mm)
cyNoCenter Y (mm)
widthYesWidth in mm
heightYesHeight in mm

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so the mutation profile is covered structurally. The description adds unit context (mm) but does not disclose that geometry is added to the active sketch or any state prerequisites, so it contributes only marginal 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the operation and followed by the unit clarification. No filler, no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple non-destructive geometry tool with full parameter documentation and no output schema, the description is nearly sufficient. The only meaningful omission is the requirement for an active sketch context, which the surrounding sketch tools imply.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so cx, cy, width, and height are already documented with units in the schema. The description's 'coordinates and dimensions in mm' merely restates that, adding no syntax or default behavior (cx/cy default 0) beyond the structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Draw) and resource (rectangle) with the distinguishing 'centered at (cx, cy)' qualifier that separates it from the plane rectangle sibling. Clear, but it never explicitly names catia_sketch_rectangle as the alternative, so the differentiation is left implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides no when-to-use guidance, no comparison against catia_sketch_rectangle (corner-based), and no prerequisite that an active sketch must exist. The agent can infer usage from the name but the description offers no routing help.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_sketch_circleB

Draw a circle in the active sketch. Coordinates and radius in mm.

ParametersJSON Schema
NameRequiredDescriptionDefault
cxNoCenter X (mm)
cyNoCenter Y (mm)
radiusYesRadius in mm
constructionNoConstruction (dashed) circle: reference only, not part of the profile.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the write profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false), so the agent knows this mutates the model and is not repeat-safe. The description adds only the active-sketch scoping; it says nothing about failure when no sketch is active or how the new geometry is returned. With annotations covering 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and then the unit convention. The unit sentence is largely redundant with the schema, costing a point, but there is no padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter mutation tool with no output schema, the definition covers the basic action but omits the preconditions (active sketch required), error behavior, and what is created. Adequate but with clear gaps given the rich sibling set.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (cx, cy, radius, construction all documented with units and defaults), so the schema already carries parameter semantics. The description's 'Coordinates and radius in mm' merely restates units the schema provides and says nothing about the construction flag's effect.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('draw a circle') and scopes it to the active sketch, which is enough to separate it from siblings like catia_sketch_arc, catia_sketch_point, or catia_sketch_rectangle. It does not differentiate itself from catia_gsd_circle (the generative-shape counterpart), leaving that distinction 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'in the active sketch' implies context but never states the prerequisite (an active sketch must exist / be created via catia_create_sketch or catia_sketch_profile). There is no when-to-use vs when-not guidance and no naming of alternatives such as catia_sketch_arc.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_sketch_constraintB

Add a dimensional constraint to the active sketch. Supported types: distance, radius, angle, coincidence, tangent, perpendicular, parallel, horizontal, vertical, fix.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesConstraint type
valueNoConstraint value (mm or degrees). Required for distance, radius, angle.
geometry_index_1NoIndex of first geometry element (1-based, from sketch geometry list)
geometry_index_2NoIndex of second geometry element (for relational constraints)

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose the mutation profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false). The description adds the scoping fact that the constraint targets the active sketch, but says nothing about what happens on failure, whether over-constraining is rejected, or how the constraint is identified afterwards.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and scope. The type enumeration is somewhat redundant with the schema enum, which costs it a point, but there is no filler or ambiguity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a non-idempotent mutation tool with no output schema, the description is serviceable but thin: it omits the precondition that a sketch must be active, does not explain that geometry indices refer to the existing sketch geometry list, and gives no failure behavior. Enough to attempt a call, not enough to call it reliably.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including enum values and the note that 'value' is required for distance/radius/angle, so the schema carries the parameter burden. The description's type list merely restates the enum and adds no extra semantics such as index conventions or relational constraints needing two indices.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Add a dimensional constraint to the active sketch') and enumerates the supported constraint types, so the agent knows exactly what operation is performed. However, it never distinguishes itself from constraint-related siblings such as catia_fix_constraint, catia_coincidence_constraint, or catia_angle_constraint, which an agent might reasonably confuse it with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Mentioning 'the active sketch' implicitly tells the agent this belongs to the sketch-editing workflow, but there is no explicit when-to-use guidance, no statement of prerequisites (an open/active sketch), and no signposting of when to prefer this generic tool over the specialized constraint siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_sketch_get_geometryA
Read-only

List all geometry elements in the active sketch with their indices and types.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered by structured data. The description adds only the return shape (indices and types); it gives no indication of ordering, empty-sketch behavior, or error conditions when 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler; every clause earns its place by naming the resource and the returned data.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter inspection tool with no output schema, the description adequately conveys what the call returns. It could be strengthened with a note about the required state (active sketch) and ordering of results, but nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters and the schema is fully described, so there is nothing for the description to compensate for. Baseline 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (geometry elements in the active sketch) and names the returned fields (indices and types). It reads clearly against creation siblings like catia_sketch_line or catia_sketch_circle, though it doesn't explicitly contrast with other listing tools such as catia_list_edges/catia_list_faces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites (e.g. requiring an open active sketch), and no alternatives named. The agent must infer that this is the inspection tool for sketch geometry.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_sketch_lineA

Draw a line in the active sketch from (x1, y1) to (x2, y2). Coordinates in mm. Set is_axis=true to make it the sketch's axis (Sketch.CenterLine), REQUIRED before catia_shaft/catia_groove: without it CATIA has no revolution axis and the feature fails at update (confirmed live 2026-09-28). The axis is excluded from the profile, so draw the closed profile entirely on one side of it.

ParametersJSON Schema
NameRequiredDescriptionDefault
x1YesStart X coordinate (mm)
x2YesEnd X coordinate (mm)
y1YesStart Y coordinate (mm)
y2YesEnd Y coordinate (mm)
is_axisNoIf true, set this line as the sketch axis (Sketch.CenterLine) so it serves as the revolution axis for a Shaft/Groove on this sketch.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the generic mutation profile (readOnly=false, idempotent=false). The description goes well beyond that by disclosing a live-confirmed failure mode, the required precondition for Shaft/Groove, and the fact that the axis line is excluded from the profile geometry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the action and coordinates, then escalating to the critical axis requirement and the geometric caveat. No redundant restatement of schema fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no output schema and full parameter docs, the description covers the essential call-time prerequisites and failure mode. It does not mention whether a sketch must already be active/open or what identifier is returned, but nothing critical to invoking it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description nonetheless adds real meaning by naming the underlying Sketch.CenterLine construct for is_axis and explaining its downstream role rather than just restating the boolean.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Draw a line in the active sketch') plus the exact coordinate form and units. The 'active sketch' qualifier cleanly separates it from catia_gsd_line and the other sketch primitives (rectangle, circle, arc, spline).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the downstream consumers (catia_shaft/catia_groove) and states the precise condition under which is_axis must be set, including that omitting it causes a failure at feature update. It also tells the agent how to place the closed profile relative to the axis.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_sketch_pointA

Create a point in the active sketch. Coordinates in mm.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesX coordinate (mm)
yYesY coordinate (mm)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the agent knows this is a non-idempotent write. The description adds only the sketch scoping and units context, with no detail on failure behavior, required sketch state, or what happens if the point already exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no waste, and the core action is front-loaded before the units clarification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter creation tool with full schema coverage and annotations covering the safety profile, this is nearly complete. It could note the requirement that an active sketch exist, but nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters already document their units ('X coordinate (mm)'), so the description's 'Coordinates in mm' is redundant. Baseline 3 applies since the schema does all the parameter work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a point') and scopes it to the active sketch, which helps distinguish it from the sibling catia_gsd_point. However, it never names that sibling explicitly, so the differentiation is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'In the active sketch' implies the prerequisite that a sketch must exist and be active, but there is no explicit when-to-use guidance or mention of the GSD point alternative. Usage is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_sketch_profileA

Draw a connected chain of lines and arcs whose ends are SHARED sketch points (a real closed contour, unlike separate lines/arcs whose ends only nearly meet). The tool of choice for any non-trivial Pad/Pocket profile and for half-profiles of revolution (Shaft/Groove: add the axis with catia_sketch_line(is_axis=true) or use axis='h'/'v'). Arcs are given by center + end point (radius = distance center-start; the end must be at the same distance).

ParametersJSON Schema
NameRequiredDescriptionDefault
startYes[h, v] start point (mm, sketch coordinates).
closedNo
segmentsYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare a non-read-only, non-destructive, non-idempotent mutation. The description adds meaningful behavior beyond that: ends are shared sketch points, producing a real closed contour, and arc endpoints must be equidistant from the center. It still omits whether an active sketch is required and what happens on failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences and front-loads the core purpose before adding use-case and arc-detail notes. It is dense but mostly earns its space; the parenthetical axis mention is slightly confusing because this tool has no axis parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a sketch-geometry creation tool with no output schema and non-destructive annotations, the description covers purpose, downstream use cases, contour semantics, and arc construction. A key gap remains the sketch context: it does not state that an active sketch is required or how this interacts with catia_create_sketch and catia_close_sketch.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33%. The description compensates for arc parameters by explaining that arcs use center + end point with radius equal to center-start distance, but it does not explain the closed parameter or clarify the top-level segments structure beyond a general chain description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: drawing a connected chain of lines and arcs that form a real closed contour. It explicitly distinguishes this from separate line/arc tools whose ends only nearly meet, and it names the primary downstream use cases (Pad/Pocket profiles, half-profiles of revolution).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly says this is the tool of choice for non-trivial Pad/Pocket profiles and half-profiles of revolution, and it names catia_sketch_line as the alternative for adding an axis. However, it does not explicitly say when not to use it (e.g., simple shapes already covered by catia_sketch_rectangle or catia_sketch_circle).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_sketch_rectangleA

Draw a rectangle in the active sketch defined by two opposite corners. Creates 4 lines forming a closed profile. Coordinates in mm.

ParametersJSON Schema
NameRequiredDescriptionDefault
x1YesFirst corner X (mm)
x2YesOpposite corner X (mm)
y1YesFirst corner Y (mm)
y2YesOpposite corner Y (mm)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this is a non-read-only, non-destructive, non-idempotent write. The description adds genuine behavioral detail the annotations lack: that four lines are created as a closed profile. It does not disclose what happens on repeated invocation (relevant since idempotentHint=false) or whether the sketch must be editable/active.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with zero filler: the action, the resulting geometry, and the unit convention, delivered front-loaded. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a sketch-geometry tool with no output schema and full annotation coverage, the description covers action, result, and units adequately. Minor gap: no mention of failure behavior when no active sketch exists or whether geometric constraints are auto-applied.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four coordinates and their mm units are already documented in the schema; the description only restates that coordinates are in mm. Baseline 3 applies since the schema carries parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (draw) and resource (rectangle) plus the defining method (two opposite corners), which implicitly distinguishes it from the sibling catia_sketch_centered_rectangle. It does not name that sibling explicitly, so an agent must infer the distinction, but the geometry definition is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'in the active sketch' implies the prerequisite of an existing active sketch, which is useful context. However, it gives no explicit when-to-use guidance and never mentions the closest alternative, catia_sketch_centered_rectangle, leaving the choice between the two rectangle tools 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_splineB

Draw a spline through a list of control points. Each point is [x, y] in mm.

ParametersJSON Schema
NameRequiredDescriptionDefault
closedNoWhether to close the spline (default: false)
pointsYesList of [x, y] control points in mm

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=false, and idempotentHint=false, so the agent knows this is a non-destructive write operation. The description adds useful point format and unit context, but it does not disclose whether an active sketch is required or what side effects occur. With annotations covering the safety profile, this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no wasted words. It leads with the primary action and follows with the point format, making it well-structured for quick agent consumption.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple sketch primitive with annotations and full schema coverage, the description covers the core action and point units. It omits important contextual details such as whether an active sketch is required and how it relates to the sibling GSD spline tool. It is minimally adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the input schema already documents both points and closed with clear descriptions. The description repeats the point format and millimeter units rather than adding meaning beyond the schema. Baseline 3 is appropriate 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Draw a spline through a list of control points.' It distinguishes this from most sketch primitives like line, circle, and rectangle. However, it does not explicitly distinguish sketch splines from the sibling catia_gsd_spline, so sibling differentiation is incomplete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description only says what the tool does, not when to use it. It gives no prerequisites, no when-not conditions, and no alternative tools such as catia_gsd_spline. The agent must infer usage context from the tool name or surrounding workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_sketch_two_circle_contourC

Closed outer contour of two circles joined by their external tangent lines (connecting rod, lever, tow bar, arm). Tangent points are computed exactly and all ends are shared points.

ParametersJSON Schema
NameRequiredDescriptionDefault
c1Yes
c2Yes
r1Yes
r2Yes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare this is a non-destructive, non-idempotent write, so the safety profile is covered. The description adds genuine behavioral context beyond that — exact tangent-point computation and shared endpoints producing a closed contour — but omits whether an active sketch is required or what happens to existing sketch geometry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the core geometric definition before the examples. No filler, though it does not bother to state the creating verb explicitly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a sketch-geometry creation tool with four undocumented parameters, no output schema, and no stated prerequisites, the definition leaves substantial gaps. An agent cannot know the expected input format or which document/sketch state is required to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the parameter names (c1, c2, r1, r2) are cryptic. The phrase 'two circles' lets an agent guess c=center and r=radius, but no coordinate order, units, or sketch-plane frame is given, so the description does not compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete geometric result — a closed outer contour of two circles joined by external tangent lines — and parenthetically grounds it in real use cases (connecting rod, lever, tow bar). That is specific enough to distinguish it from siblings like catia_sketch_circle or catia_sketch_profile, though the verb (create) is only implied rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no indication of when to use this versus the many other sketch primitives, and no prerequisites are stated (e.g., whether an active sketch or open document is required). The agent must infer usage entirely from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_thicknessC

Thickness (Épaisseur): offset the faces through face_points by 'offset' mm (negative removes). Verified live.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoExplicit name for the created feature in the specification tree (e.g. 'Pad_Bras_20mm', 'Trou_Conique_D12'). Strongly recommended: default names like 'Extrusion.3' make the tree unreadable and are flagged by tree audits.
offsetYes
face_pointsYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, destructive=false, idempotent=false, and openWorld=false. The description adds useful sign behavior for offset ('negative removes') and claims live verification, but it does not explain return values, failure behavior, or state effects beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single front-loaded sentence with no unnecessary background. 'Verified live' is slightly extraneous, but overall the structure is appropriately terse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a CAD modeling operation with no output schema, the description is too terse. It omits prerequisites like active body/document, what feature is created, error behavior, and the meaning of face_points.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 33%: only the optional name parameter is documented in the schema. The description adds mm units and sign behavior for offset, but face_points remains unexplained as an array of three-number arrays, so the description does not compensate for the two undocumented required parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific operation: offset the faces through face_points by 'offset' mm, naming the CATIA feature 'Thickness (Épaisseur)'. It is clear what the tool does, but it does not distinguish itself from the shell, thick surface, or offset surface siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no alternatives, and no prerequisites. The only hint is '(negative removes)', which describes parameter behavior rather than tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_threadA

Thread / tap (Filetage / Taraudage, cosmetic as in the GUI) on a cylindrical face, starting from a planar limit face. Faces designated by a 3D point on each (lateral_face_point on the cylinder, limit_face_point on the end face where the thread starts). E.g. M100x4 over 47 mm: diameter=100, pitch=4, depth=47. Verified live.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoExplicit name for the created feature in the specification tree (e.g. 'Pad_Bras_20mm', 'Trou_Conique_D12'). Strongly recommended: default names like 'Extrusion.3' make the tree unreadable and are flagged by tree audits.
depthYesThreaded length (mm).
pitchYesPitch (mm).
diameterYesNominal diameter (mm).
polarityNothread = external (filetage), tap = internal (taraudage).thread
left_handNo
limit_face_pointYes
lateral_face_pointYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose that this is a mutating, non-destructive, non-idempotent, non-open-world operation. The description adds useful context that the feature is cosmetic as in the GUI and verified live, but it does not describe side effects like feature creation in the tree, error behavior, or repeat-call behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, and the example earns its place by tying the three numeric parameters together. The parenthetical French GUI terms and 'Verified live' add slight verbosity but no serious bloat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter mutation tool with no output schema, the description covers the critical non-obvious parameters and gives a working example. It leaves the boolean left_hand undocumented, but the core invocation path is adequately described given schema and annotation support.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 63%, so the description must compensate. It does so well for the two ambiguous required array parameters by mapping lateral_face_point to the cylinder and limit_face_point to the start face, and the M100x4 example clarifies diameter, pitch, and depth. Optional left_hand is not explained in either schema or description, a minor gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific operation and resource: thread / tap on a cylindrical face starting from a planar limit face. It distinguishes from siblings like catia_hole by describing the exact geometric context and cosmetic nature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implicitly tells when the tool applies by requiring a cylindrical lateral face and a planar limit face where the thread starts, and gives a concrete example. It does not explicitly compare to catia_hole or say when not to use it, so guidance is contextual but not complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_update_assemblyB
Idempotent

Update the assembly (Mise à jour): solves the constraints and moves the components.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safety profile (non-readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description usefully discloses what the operation actually does - recompute/solve constraints and reposition components - which is real behavioral context, but says nothing about failure modes (over-constrained or unsolvable assemblies) or what state must exist beforehand.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no padding; the parenthetical French term is minor noise but the effect statement follows immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-argument tool with full annotation coverage and no output schema, the description supplies the essential premise and effect. It is nearly complete; only the preconditions and failure behavior are absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the rubric baseline of 4 applies; there is nothing for the description to disambiguate and it does not introduce spurious argument hints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource (update the assembly) and clarifies the mechanism: solves constraints and moves components. That mechanism meaningfully separates it from siblings like catia_move_component and catia_update_part, though it never names those alternatives directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance, no prerequisites, and no mention of alternatives such as catia_move_component or catia_update_part. Usage is left entirely to inference from the words 'update the assembly'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

catia_update_partA
Idempotent

Force update/rebuild of the active part. Recalculates all features.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=true and destructiveHint=false, so the safety and repeatability profile is covered. The description usefully adds that all features are recalculated, which signals a potentially long-running rebuild, but says nothing about failure modes or what happens to suppressed/failed features.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and followed by the effect. No filler or repetition of the name/title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless mutation with no output schema, the description covers what it does and its effect, but omits prerequisites (must a document/part be active?), behavior on failure, and how it differs from catia_update_assembly. Adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; the schema (empty object) is self-explanatory. Baseline 4 applies for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource: 'Force update/rebuild of the active part' and clarifies the effect ('Recalculates all features'). It implicitly contrasts with sibling catia_update_assembly by scoping to the 'active part', though it never names that sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The word 'Force' hints at the use case (rebuilding a part whose features are stale or failed), but there is no explicit when-to-use/when-not guidance and no named alternative such as catia_update_assembly. Usage is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

drawing_extract_geometryA
Read-only

Extract EXACT geometry from a vector PDF drawing: numbered circles, arcs and line segments with centre, radius R and diameter D in part mm. Dimension values are drawn as vector strokes, not text: read them by eye on drawing_render, then CONFIRM with this measured geometry (they must agree; when they do not, the measurement wins). Workflow: (1) drawing_render the whole page to find the views and title block scale; (2) call this on one view's region WITHOUT origin to find the centre/axis (each entity lists its paper position); (3) call again with origin and scale to get part coordinates to feed the sketch tools. Beware: R vs D, rounded dimensions (a drawn tangent may differ from the written value by a few hundredths), wrong title block scale.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage index, 0-based.
scaleNoDrawing scale '1:2' (1 mm on paper = 2 mm on the part). If omitted the title block text is used when readable, else 1:1. The title block scale is sometimes WRONG: cross-check with a known dimension.
originNo[x, y] PAPER mm point that becomes the model origin (0, 0), typically an axis/centre found in a first call without origin. Model X is right, Y up.
regionNo[x0, y0, x1, y1] in PAPER mm from the sheet's top-left corner (y down). Omit for the whole sheet.
min_lenNoIgnore segments shorter than this (paper mm).
pdf_pathYesPath to a VECTOR PDF drawing (not a scan).
max_itemsNoMax entities listed per category.
min_radiusNoIgnore arcs/circles smaller than this (paper mm).

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this is a read-only, non-open-world operation, so the safety profile is covered. The description goes well beyond that, disclosing that dimensions are vector strokes rather than text, that a first call without origin returns paper positions, and the specific pitfalls (R vs D confusion, rounded drawn tangents differing from written values, wrong title block scale). However it is less explicit about output shape and cardinality beyond 'each entity lists its paper position', which tempers the score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but front-loaded: the purpose is in the first clause, followed by the confirm-the-dimension rule, the numbered workflow, then a short 'Beware' list of failure modes. Every sentence carries information, though the paragraph is longer than strictly necessary for an experienced caller.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so: it names the entity types returned and notes that entities carry paper positions, plus the geometry attributes (centre, R, D) in part mm. Combined with the pitfalls and workflow, an agent has what it needs to call and interpret results correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, but the description adds real operational meaning: origin is described as the paper point typically found in a first no-origin call, and scale is tied to the two-call workflow (paper coords vs part coords). It explains the intent of the origin/scale pairing rather than restating the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Extract EXACT geometry from a vector PDF drawing') and enumerates what is extracted (numbered circles, arcs, line segments with centre, radius R, diameter D in part mm). It also distinguishes itself from drawing_render, which it positions as the eyeball-reading sibling rather than the measurement source.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit three-step workflow: render the page first, call this without origin to find the axis, then call again with origin and scale. It states the selection condition against the alternative (read dimensions by eye on drawing_render, then confirm here) and explicitly says the measured value wins on disagreement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

drawing_overlayA
Read-only

Draw a CATIA sketch (in part mm) on top of the PDF drawing and return the PNG path: the coloured sketch must follow the black drawing lines everywhere. Do this for every non-trivial profile BEFORE pad/shaft, then LOOK at the image. sketch takes the same arguments as the sketch tools: a catia_sketch_profile object {start, segments}, an entity {type: line|circle|arc|rectangle, ...}, or a list of them. hv maps the sketch (h, v) axes to the view (X right, Y up): 'h,v', '-h,v', 'v,h', ...

ParametersJSON Schema
NameRequiredDescriptionDefault
hvNoh,v
dpiNo
pageNoPage index, 0-based.
scaleNoDrawing scale '1:2' (1 mm on paper = 2 mm on the part). If omitted the title block text is used when readable, else 1:1. The title block scale is sometimes WRONG: cross-check with a known dimension.
originNo[x, y] PAPER mm point that becomes the model origin (0, 0), typically an axis/centre found in a first call without origin. Model X is right, Y up.
regionNo[x0, y0, x1, y1] in PAPER mm from the sheet's top-left corner (y down). Omit for the whole sheet.
sketchNoSketch entities in mm (see description). Or use sketch_file.
out_pngNoOutput PNG path (default: temp folder).
pdf_pathYesPath to a VECTOR PDF drawing (not a scan).
sketch_fileNoPath to a JSON file holding the sketch.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint/openWorldHint; the description adds real behavioral context the annotations don't carry: the returned artifact is a PNG path, the sketch must trace the black geometry, and the title-block scale may be wrong so pixel/model alignment must be cross-checked. It does not mention file overwrite behavior for out_png, a minor gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and the return value, then the workflow cue and the argument formats. Dense but every clause carries information; the emphasis-heavy phrasing ('BEFORE', 'LOOK', 'WRONG') is slightly informal but not wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-param tool with no output schema, the description covers the sketch input format, axis mapping, the return artifact, and a caveat about scale detection. The remaining parameters (dpi, page, region, origin, out_png) are documented in the schema, so nothing an agent needs to call it is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 80% (baseline 3), and the description goes beyond it by explaining the accepted `sketch` forms (catia_sketch_profile object {start, segments}, a single entity, or a list) and the `hv` axis-mapping notation 'h,v', '-h,v', 'v,h'. This compensates for the sketch param whose schema description just says 'see description'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Draw a CATIA sketch on top of the PDF drawing') and the return value ('return the PNG path'), which clearly distinguishes it from drawing_render and drawing_extract_geometry. The added constraint 'the coloured sketch must follow the black drawing lines everywhere' sharpens intent but sibling differentiation is left implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit workflow condition: 'Do this for every non-trivial profile BEFORE pad/shaft, then LOOK at the image.' That tells the agent when in the pipeline to call it. It does not name a competing tool to use instead, so it stops short of a full when/when-not statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

drawing_renderA
Read-only

Render a page or region of a PDF drawing to a PNG and return its path (view it with an image reader). Use it to locate views and to READ the dimension values by eye: they are vectorised, so text search cannot find them. Zoom with region + higher dpi (300-400) for small annotations. With grid (part mm) and origin, a graduated grid in PART millimetres is drawn to help read positions.

ParametersJSON Schema
NameRequiredDescriptionDefault
dpiNo10-1200.
gridNoGrid step in part mm (needs origin).
pageNoPage index, 0-based.
scaleNoDrawing scale '1:2' (1 mm on paper = 2 mm on the part). If omitted the title block text is used when readable, else 1:1. The title block scale is sometimes WRONG: cross-check with a known dimension.
originNo[x, y] PAPER mm point that becomes the model origin (0, 0), typically an axis/centre found in a first call without origin. Model X is right, Y up.
regionNo[x0, y0, x1, y1] in PAPER mm from the sheet's top-left corner (y down). Omit for the whole sheet.
out_pngNoOutput PNG path (default: temp folder).
pdf_pathYesPath to a VECTOR PDF drawing (not a scan).

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint and openWorldHint=false, so safety is covered; the description adds behavioral context beyond that (output is a PNG path to be opened with an image reader, dimensions are vectorised and not text-searchable, grid+origin draws a graduated grid in part mm). It omits auth/error behavior, but adds real value over 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose leads, then usage and practical technique follow; all four sentences carry information. It is dense but largely waste-free, with only minor cramming of several ideas into single sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters and no output schema, the description does the needed work of explaining that the return is a PNG path to be viewed externally, and covers the key region/dpi/grid/origin behaviors. It leaves vector-only input and error handling implicit, so it is strong but not exhaustive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds interpretation the schema does not: region and higher dpi work together for zoom, and grid requires origin to produce the graduated scale. This clarifies parameter interactions rather than restating definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: render a page or region of a PDF drawing to a PNG and return its path. It also implicitly distinguishes itself from text-search/extract siblings by noting dimensions are vectorised and must be read by eye.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear when-to-use (locate views, read dimension values by eye) plus tactical guidance (zoom with region + higher dpi for small annotations). It never names a specific alternative sibling such as drawing_extract_geometry, so it stops short of the explicit when-not/alternatives level.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 121 tool updatesv0.4.0
    • First observedcatia_activate_body
    • First observedcatia_add_component
    • First observedcatia_add_lesson
    • First observedcatia_add_new_part
    • First observedcatia_add_sub_assembly
    • First observedcatia_angle_constraint
    • First observedcatia_audit_model
    • First observedcatia_batch
    • First observedcatia_boolean_operation
    • First observedcatia_chamfer
    • First observedcatia_circ_pattern
    • First observedcatia_clash_analysis
    • First observedcatia_clean_display
    • First observedcatia_close_all
    • First observedcatia_close_document
    • First observedcatia_close_sketch
    • First observedcatia_coincidence_constraint
    • First observedcatia_connect
    • First observedcatia_contact_constraint
    • First observedcatia_create_sketch
    • First observedcatia_delete_feature
    • First observedcatia_describe_model
    • First observedcatia_disconnect
    • First observedcatia_draft
    • First observedcatia_drawing_add_centerlines
    • First observedcatia_drawing_add_dimension
    • First observedcatia_drawing_add_view
    • First observedcatia_drawing_check
    • First observedcatia_drawing_close
    • First observedcatia_drawing_create
    • First observedcatia_drawing_export_pdf
    • First observedcatia_drawing_generate_dimensions
    • First observedcatia_drawing_info
    • First observedcatia_drawing_title_block
    • First observedcatia_duplicate_component
    • First observedcatia_export
    • First observedcatia_fillet
    • First observedcatia_fit_all
    • First observedcatia_fix_constraint
    • First observedcatia_get_active_document_info
    • First observedcatia_get_bounding_box
    • First observedcatia_get_inertia
    • First observedcatia_get_parameters
    • First observedcatia_get_safety_state
    • First observedcatia_get_tree
    • First observedcatia_groove
    • First observedcatia_gsd_blend
    • First observedcatia_gsd_circle
    • First observedcatia_gsd_close_surface
    • First observedcatia_gsd_create_geoset
    • First observedcatia_gsd_extrude
    • First observedcatia_gsd_fill
    • First observedcatia_gsd_intersection
    • First observedcatia_gsd_join
    • First observedcatia_gsd_line
    • First observedcatia_gsd_list_elements
    • First observedcatia_gsd_multi_section_surface
    • First observedcatia_gsd_offset_surface
    • First observedcatia_gsd_plane_3points
    • First observedcatia_gsd_plane_offset
    • First observedcatia_gsd_point
    • First observedcatia_gsd_project
    • First observedcatia_gsd_revolve
    • First observedcatia_gsd_set_active_geoset
    • First observedcatia_gsd_spline
    • First observedcatia_gsd_split
    • First observedcatia_gsd_sweep
    • First observedcatia_gsd_symmetry
    • First observedcatia_gsd_thick_surface
    • First observedcatia_gsd_trim
    • First observedcatia_hide_show_body
    • First observedcatia_hole
    • First observedcatia_lessons
    • First observedcatia_list_bodies
    • First observedcatia_list_components
    • First observedcatia_list_constraints
    • First observedcatia_list_documents
    • First observedcatia_list_edges
    • First observedcatia_list_faces
    • First observedcatia_list_features
    • First observedcatia_measure_distance
    • First observedcatia_measure_model
    • First observedcatia_mirror
    • First observedcatia_move_component
    • First observedcatia_new_body
    • First observedcatia_new_part
    • First observedcatia_new_product
    • First observedcatia_offset_constraint
    • First observedcatia_open_document
    • First observedcatia_pad
    • First observedcatia_pocket
    • First observedcatia_prepare_geometry
    • First observedcatia_rect_pattern
    • First observedcatia_rename_body
    • First observedcatia_rename_feature
    • First observedcatia_save_all
    • First observedcatia_save_document
    • First observedcatia_screenshot
    • First observedcatia_set_parameter
    • First observedcatia_set_safety
    • First observedcatia_set_view
    • First observedcatia_shaft
    • First observedcatia_shell
    • First observedcatia_sketch_arc
    • First observedcatia_sketch_centered_rectangle
    • First observedcatia_sketch_circle
    • First observedcatia_sketch_constraint
    • First observedcatia_sketch_get_geometry
    • First observedcatia_sketch_line
    • First observedcatia_sketch_point
    • First observedcatia_sketch_profile
    • First observedcatia_sketch_rectangle
    • First observedcatia_sketch_spline
    • First observedcatia_sketch_two_circle_contour
    • First observedcatia_thickness
    • First observedcatia_thread
    • First observedcatia_update_assembly
    • First observedcatia_update_part
    • First observeddrawing_extract_geometry
    • First observeddrawing_overlay
    • First observeddrawing_render

TDQS

B3.4/5.0

Scored across 121 tools

Disambiguation4/5

Most tools target clearly distinct CAD operations (sketching vs pad vs fillet vs assembly constraint), and descriptions provide strong context. However, with 121 tools there are some overlaps, such as multiple measurement and document-close/save variants, that could cause confusion.

Naming Consistency4/5

The overwhelming majority of tools use a consistent snake_case verb_noun pattern with a catia_ prefix. The only deviation is the drawing helper tools (drawing_render, drawing_extract_geometry, drawing_overlay) which lack the catia_ prefix used by the rest of the drawing family.

Tool Count1/5

121 tools far exceeds the 50+ threshold for an extreme mismatch, making the set difficult to navigate even for a complex CAD automation domain. Each tool may earn its place individually, but the sheer count creates a heavy cognitive load.

Completeness5/5

The surface covers the full CATIA V5 lifecycle: connection, document management, sketching, part design features, generative surface design, assembly, drawing, analysis, export, safety, and a lessons knowledge base. No obvious operations are missing for the stated purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables agent-assisted CAD engineering, allowing users to create, validate, and export CAD designs through natural language, with a deterministic engine that has zero LLM runtime dependency.
    Academic Free v1.1
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables safe, AI-driven CATIA V5 modeling through 36 guarded tools for creating and inspecting parametric CATParts, including sketch, part design, GSD/surface, and transaction operations, while preventing mutation of existing documents.
    1
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to build, measure, verify, and correct parametric SolidWorks parts and assemblies locally via the COM API, supporting operations like sketching, extruding, modeling, dimensioning, material assignment, export, and assembly mating.
    MIT
  • A
    license
    C
    quality
    B
    maintenance
    Enables AI agents or local operators to inspect, plan, execute, and verify bounded KOMPAS-3D CAD operations, including sketch and feature editing, parametric parts, springs, transmissions, specifications, relinking, quality checks, and safe exports.
    118
    1
    MIT