catia-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CATIA_MCP_LOG | No | Also write logs to this file | |
| CATIA_MCP_GROUPS | No | Comma-separated tool groups to register; default is all | |
| CATIA_MCP_CONSTANTS | No | Path to a JSON file overriding CATIA enumeration values | |
| CATIA_MCP_LOG_LEVEL | No | DEBUG, INFO, WARNING, ERROR | |
| CATIA_MCP_TRANSPORT | No | stdio (default), http, sse | stdio |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| catia_connectA | Attach to a running CATIA session. Call this first. By default it only attaches to a CATIA that is already open; pass launch=true to start one (slow, and it checks out a licence). Returns the detected release and family so later calls can be tailored to it. |
| catia_disconnectA | Release this server's COM reference to CATIA. CATIA itself keeps running and no document is closed. |
| catia_statusA | Report the current connection: CATIA release, the active document and its type, how many documents are open, and the geometry this server created most recently. |
| catia_check_environmentA | Diagnose the host before blaming CATIA: Python version and bitness, whether pywin32 imported, whether the CATIA.Application COM class is registered, and which MCP SDK is in use. Works without a CATIA connection - run it first when catia_connect fails. |
| catia_capabilitiesA | Probe what this specific CATIA installation can do - Part Design, Generative Shape Design, Sheet Metal, Assembly, Drafting, measurement, kinematics and the in-process script bridge. Licences, not release numbers, decide most of these, so this is probed by attempting the real calls. |
| catia_reference_helpA | Explain the reference-token grammar used by every tool that needs to point at geometry (planes, faces, edges, sketches, features). Read this before guessing at a selector. |
| catia_run_scriptA | Run a VBScript function inside CATIA and return its value. This is the escape hatch to the whole CATIA object model, including anything this server has no dedicated tool for and any API that only exists on some releases. The script must define the named function; CATIA is passed in automatically as the first parameter unless you pass your own. Returns whatever the function returns. |
| catia_start_commandA | Trigger a CATIA interactive command by its name, the way a menu item would - for example 'Undo', 'Redo', 'Fit All In' or 'Isometric View'. Useful for the handful of behaviours CATIA exposes nowhere else in the automation API. The command name must match the language of the CATIA user interface. |
| catia_undoA | Undo the last operation(s) in CATIA. Implemented through the interactive Undo command, so it is best-effort: CATIA gives automation clients no way to confirm how far the stack actually rewound. |
| catia_redoA | Redo the last undone operation(s) in CATIA. Best-effort, like catia_undo. |
| catia_set_batch_modeA | Suspend or resume CATIA's screen refresh and file-alert dialogs. Turning batch mode on makes long sequences of modelling calls markedly faster and stops modal save/overwrite prompts from blocking automation. Always turn it back off when you are done, or the user is left with a frozen-looking viewport. |
| catia_list_documentsA | List every document currently open in CATIA, with its type, file path and whether it has unsaved changes. |
| catia_new_partA | Create a new empty CATPart document and make it active. This is the starting point for any solid or surface modelling. |
| catia_new_productA | Create a new empty CATProduct (assembly) document and make it active. |
| catia_new_drawingA | Create a new CATDrawing document. Optionally sets the drafting standard and the first sheet's paper size. |
| catia_open_documentA | Open an existing file in CATIA. Handles native documents (.CATPart, .CATProduct, .CATDrawing) and every neutral format CATIA can read directly, such as .stp, .igs, .stl and .model. |
| catia_save_documentA | Save a document. With no path it saves in place (and fails for a document that has never been saved); with a path it does Save As, which also converts format when the extension differs. |
| catia_save_allA | Save every open document that has unsaved changes and already has a file path. Documents that have never been saved are reported back and skipped. |
| catia_close_documentA | Close a document. Unsaved changes are discarded unless save=true, so check catia_list_documents first if you are unsure. |
| catia_activate_documentA | Bring an already-open document to the front and make it the target of subsequent modelling calls. |
| catia_document_infoA | Describe the active document in detail: type, path, save state, and for parts and products the tree contents and product properties (part number, revision, definition, nomenclature). |
| catia_set_document_propertiesA | Set the product identity fields CATIA stores on a Part or Product document: part number, revision, definition, nomenclature and description. These are what flow into a bill of materials and a drawing title block. |
| catia_describe_treeA | Walk the specification tree of the active document and return it as nested JSON: bodies, geometrical sets, sketches, features and - for assemblies - the component hierarchy. Every node carries a reference token you can pass straight to the modelling tools. Start here when you do not know what is in the document. |
| catia_list_bodiesA | List the solid bodies in the active part, flagging which one is the main body and which is currently in work (the target of new features). |
| catia_set_active_bodyA | Choose which body (or geometrical set) new features are added to, by setting CATIA's in-work object. Everything created afterwards lands there. |
| catia_list_featuresA | List the features of a body in creation order, optionally reporting which ones CATIA currently considers to be in error - this is how you find the feature blocking an update. Note that on releases with no update-status property, checking errors works by asking CATIA to recompute each feature, which is harmless but not free on a large part. |
| catia_list_facesA | List the faces of the visible solid geometry in the active document, with the index token (face#n), the centre of gravity to aim proximity tokens at, the area, and the outward normal for planar faces. Indices change whenever the model changes; centroids do not, so prefer 'face@x,y,z' tokens for anything you will reference more than once. |
| catia_list_edgesA | List the edges of the visible solid geometry in the active document, with the index token (edge#n), the centre of gravity to aim proximity tokens at and the length. Indices change whenever the model changes; centroids do not, so prefer 'edge@x,y,z' tokens for anything you will reference more than once. |
| catia_list_verticesA | List the vertexs of the visible solid geometry in the active document, with the index token (vertex#n), the centre of gravity to aim proximity tokens at and the exact position. Indices change whenever the model changes; centroids do not, so prefer 'vertex@x,y,z' tokens for anything you will reference more than once. |
| catia_resolve_referenceA | Check what a reference token actually points at before you use it in a modelling call. Returns the resolved element's name, type and - for topology - its measured position, so you can confirm you are about to fillet the right edge. |
| catia_find_elementsA | Search the active document for elements whose name matches a pattern (shell-style wildcards, e.g. 'Pad.*' or 'Hole'). Returns reference tokens for every match. |
| catia_show_elementB | Make an element visible in the 3D view. Also the fix when catia_list_faces or catia_list_edges returns nothing: CATIA's search skips hidden geometry. |
| catia_hide_elementA | Hide an element in the 3D view without deleting it. |
| catia_rename_elementA | Rename a tree element. Worth doing for anything you will reference later - a stable name survives model edits, unlike a face or edge index. |
| catia_delete_elementA | Delete a tree element. Deleting a feature that later features depend on will put those into error, so check catia_list_features afterwards. |
| catia_select_elementsA | Highlight elements in the CATIA window. Purely visual - useful to show a person at the workstation which geometry you are about to modify. |
| catia_updateA | Force CATIA to recompute the active part or assembly. Call this after a batch of edits, or to surface which feature is in error. |
| catia_create_sketchA | Create a sketch on a plane or a planar face and open it for drawing. The support is a reference token: 'xy', 'yz', 'zx' for the origin planes, 'face#3' or 'face@x,y,z' to sketch directly on a face of the solid, or the name of a construction plane. Subsequent catia_sketch_* calls draw into this sketch until you close it or create another one. |
| catia_close_sketchA | Finish editing the current sketch. The solid tools do this automatically, so you only need it when you want to inspect a finished sketch or switch to another one. |
| catia_sketch_geometryA | List the 2D elements of a sketch with their names, types and coordinates, plus its constraints. Use the element names in catia_sketch_constraint. |
| catia_sketch_pointA | Add a 2D point to the current sketch. Points are useful as hole centres and as constraint anchors. |
| catia_sketch_lineA | Add a straight line between two points in the current sketch. Set construction=true for a reference line that does not take part in the profile, and axis=true to make it the sketch's revolution axis (what catia_shaft and catia_groove revolve around). |
| catia_sketch_circleB | Add a full circle to the current sketch. |
| catia_sketch_arcA | Add a circular arc, given its centre, radius and the start and end angles measured counter-clockwise from the sketch's H axis. |
| catia_sketch_ellipseA | Add an ellipse or elliptical arc to the current sketch. |
| catia_sketch_rectangleB | Add a closed rectangle from two opposite corners. The four lines share explicit corner points, so the profile is genuinely closed and can be padded or pocketed straight away. |
| catia_sketch_centered_rectangleA | Add a closed rectangle centred on a point, given its width and height. |
| catia_sketch_polygonB | Add a closed regular polygon (hexagon, octagon and so on) inscribed in or circumscribed about a circle. |
| catia_sketch_slotA | Add a closed slot (obround) profile: two parallel lines capped by semicircles, defined by the centres of the two end arcs and the slot radius. |
| catia_sketch_polylineA | Add a chain of connected lines through a list of points, optionally closing it back to the first point. Shared end points are created explicitly, so a closed polyline is immediately usable as a pad or pocket profile. |
| catia_sketch_splineB | Add a spline through a list of control points. |
| catia_sketch_constraintA | Add a constraint to the current sketch. Dimensional kinds (distance, length, radius, diameter, angle) take a value; geometric kinds (horizontal, vertical, parallel, perpendicular, tangent, coincidence, concentric, symmetry) do not. Element names come from catia_sketch_geometry; append '.start', '.end' or '.center' to reference a point of an element. |
| catia_sketch_delete_elementB | Delete one 2D element from a sketch. |
| catia_padB | Extrude a closed sketch profile into solid material. Supports a fixed length, symmetric extrusion about the sketch plane, a second limit in the opposite direction, up-to-next / up-to-last, stopping at a named plane or surface, and thin-walled pads. |
| catia_pocketB | Cut material by extruding a closed sketch profile into the solid. Same limit options as catia_pad, including through-all via up_to_last. |
| catia_shaftA | Revolve a sketch profile around an axis to make a solid of revolution. The axis is the sketch's centre line if it has one (see the axis flag on catia_sketch_line), otherwise pass an explicit axis reference. |
| catia_grooveA | Cut material by revolving a sketch profile around an axis - the subtractive counterpart of catia_shaft. |
| catia_ribA | Sweep a closed profile along a guide curve to add material - CATIA's Rib feature. The profile and the centre curve must be separate sketches or curves. |
| catia_slotA | Sweep a closed profile along a guide curve to remove material - CATIA's Slot feature, the subtractive counterpart of catia_rib. |
| catia_stiffenerA | Create a stiffener (rib/gusset) from an open sketch profile, thickened normal to the sketch plane and extended until it meets the existing solid. |
| catia_holeB | Create a hole in a face. Position it either by a 3D point (the usual case - give the point and the face token) or from a sketch containing hole centres. Supports simple, tapered, counterbored, countersunk and counterdrilled holes, blind or through, with optional threading. |
| catia_hole_from_sketchA | Create holes at every point of a sketch, drilled into the named face. Convenient for bolt patterns laid out in a sketch. |
| catia_solid_combineA | Create a solid from two intersecting sketch profiles extruded normal to their planes - CATIA's Combine feature. Useful for shapes that are hard to express as one profile. |
| catia_filletA | Round one or more edges with a constant radius. Edges are named with reference tokens - 'edge#4' by index, or 'edge@20,0,10' to pick the edge nearest a point, which survives later model changes. Tangent-continuous edges are followed by default so a single token usually rounds a whole chain. |
| catia_variable_filletA | Round an edge with a radius that varies along it, between a start and an end radius. |
| catia_face_filletA | Round the junction between two faces that need not share an edge - CATIA's Face-Face Fillet. Use it where an edge fillet cannot reach, such as across a step. |
| catia_tritangent_filletA | Replace a face with a fillet tangent to three faces - CATIA's Tritangent Fillet. The removed face is the one that disappears into the round. |
| catia_chamferB | Bevel one or more edges. Choose length_angle mode (a length and an angle, the usual case) or two_lengths mode (a setback on each face). |
| catia_shellA | Hollow the solid out to a thin wall, removing the named faces to leave the interior open. Give at least one face token, or the result is a fully closed hollow body. |
| catia_thicknessA | Add or remove material on specific faces by a set thickness, without shelling the whole solid. A negative value thins the wall. |
| catia_draftA | Apply a draft angle to faces so a moulded or cast part can be released from the tool. Needs the faces to draft, a neutral element the draft pivots about (usually a planar face or plane), and a pulling direction. |
| catia_threadA | Add a thread or tap to a cylindrical face. The lateral face is the cylinder to thread and the limit face is the flat face the thread starts from. |
| catia_remove_faceA | Delete faces from the solid and let CATIA heal the result by extending the neighbouring faces - the Remove Face feature. Useful for simplifying a model before analysis or export. |
| catia_rect_patternA | Repeat a feature on a rectangular grid. Directions are given as reference tokens of an edge or line - for example 'edge#1' - because CATIA needs a real direction element, not an axis name. Leave a direction empty to let CATIA choose its default for that axis. |
| catia_circ_patternC | Repeat a feature around an axis. The rotation axis is a reference token for a cylindrical face, an edge, a line or an axis-system axis. |
| catia_user_patternA | Repeat a feature at every point of a sketch - CATIA's User Pattern. Use it for irregular hole layouts that no rectangular or circular pattern can describe. |
| catia_mirrorB | Mirror the current body about a plane or planar face. |
| catia_transform_bodyA | Apply a transformation feature to the current body: translate along a direction, rotate about an axis, mirror about a plane, or scale about a reference. These are history features - they move the body from that point in the tree onwards. |
| catia_new_bodyA | Add a new empty body to the part and make it the in-work object, so subsequent features go into it. This is how you build shapes to combine with boolean operations. |
| catia_booleanB | Combine two bodies: add (union), remove (subtract), intersect, or union-trim. The tool body is consumed into the target body, which is the usual CATIA behaviour. |
| catia_split_bodyA | Cut the current body with a surface or plane, keeping the material on one side. |
| catia_gsd_create_geosetA | Create a geometrical set to hold surface and wireframe geometry, and make it the target for subsequent GSD calls. Keeping construction geometry in named sets is what stops a surface model becoming unnavigable. |
| catia_gsd_set_active_geosetA | Choose which geometrical set new GSD geometry goes into. |
| catia_gsd_list_elementsA | List the contents of the geometrical sets in the active part - points, curves, surfaces and nested sets - with reference tokens. |
| catia_gsd_pointA | Create a point. Modes: 'coordinates' (x,y,z); 'on_curve' at a ratio or distance along a curve; 'between' two points at a ratio; 'center' of a circle or sphere; 'on_plane' at plane coordinates. |
| catia_gsd_lineB | Create a line. Modes: 'two_points'; 'point_direction' with a length; 'normal' to a surface at a point; 'tangent' to a curve at a point. |
| catia_gsd_circleB | Create a circle or arc. Modes: 'center_radius' needs a centre point, a support plane and a radius; 'center_point' passes through a point; 'three_points'. |
| catia_gsd_splineA | Create a 3D spline through a list of existing points, given as reference tokens. |
| catia_gsd_polylineB | Create a polyline through a list of existing points, given as reference tokens. |
| catia_gsd_helixB | Create a helix around an axis - the curve to sweep for a spring or a thread. |
| catia_gsd_planeA | Create a construction plane. Modes: 'offset' from an existing plane; 'three_points'; 'normal_to_curve' at a point; 'equation' from ax+by+cz=d; 'angle' rotated about an axis. Construction planes are what you sketch on when no face is in the right place. |
| catia_gsd_extrudeB | Extrude a profile (a sketch or curve) along a direction to make a surface. |
| catia_gsd_revolveC | Revolve a profile around an axis to make a surface of revolution. |
| catia_gsd_sweepB | Sweep a profile along a guide curve to make a surface. |
| catia_gsd_multi_sectionA | Loft a surface through a series of section curves - CATIA's Multi-Sections Surface. Optional guide curves control the shape between sections. |
| catia_gsd_fillA | Fill a closed boundary of curves or edges with a surface. |
| catia_gsd_offset_surfaceB | Create a surface offset from an existing one by a set distance. |
| catia_gsd_blendB | Blend between two curves or edges to create a transition surface. |
| catia_gsd_joinA | Join several surfaces or curves into a single element. This is what you do before thickening or closing a set of surfaces into a solid. |
| catia_gsd_splitB | Cut a surface or curve with another element, keeping one side. |
| catia_gsd_trimB | Trim two surfaces or curves against each other, keeping one side of each. |
| catia_gsd_intersectA | Create the intersection of two elements - a curve where two surfaces meet, or a point where a curve meets a surface. |
| catia_gsd_projectC | Project a curve or point onto a surface or plane. |
| catia_gsd_extractA | Extract a face, edge or set of connected elements from existing geometry into an independent surface or curve. This is the clean way to reuse solid topology in surface work. |
| catia_gsd_healingB | Heal small gaps between surfaces so they can be joined or closed into a solid. |
| catia_gsd_transformA | Copy geometry with a transformation: translate, rotate, symmetry, scale or affinity. Unlike catia_transform_body this creates new surface geometry and leaves the original in place. |
| catia_gsd_thick_surfaceB | Thicken a surface into a solid of a given wall thickness. |
| catia_gsd_close_surfaceA | Close a watertight surface into a solid. The surface must bound a closed volume, so join and heal the pieces first if needed. |
| catia_gsd_axis_systemA | Create an axis system at a point with explicit X and Y directions - useful as a local reference frame for positioning and measurement. |
| catia_add_componentA | Insert one or more existing CATPart or CATProduct files into the active assembly. |
| catia_add_new_partB | Create a brand-new empty part directly inside the active assembly. |
| catia_add_new_productB | Create a new empty sub-assembly inside the active assembly. |
| catia_list_componentsA | List the components of the active assembly, with instance names, part numbers, source files and current positions. |
| catia_remove_componentA | Remove a component from the assembly. The underlying file is untouched. |
| catia_component_positionA | Read a component's placement in the assembly: translation, Euler angles and the raw 12-value CATIA matrix. |
| catia_move_componentA | Move a component in the assembly. By default the translation and rotation are applied relative to where it is now; set absolute=true to place it at exactly that position and orientation instead. |
| catia_assembly_constraintA | Constrain components to each other. Reference the geometry with the usual tokens - inside an assembly 'face#3' and 'face@x,y,z' resolve against every visible component, and catia_list_faces reports which component each belongs to. Dimensional kinds (offset, distance, angle) take a value. |
| catia_list_constraintsA | List the assembly constraints, with their type, value and current status. |
| catia_delete_constraintB | Delete an assembly constraint by name. |
| catia_bill_of_materialsA | Build a bill of materials for the active assembly: every distinct part number with its quantity, source file and the instances that use it. |
| catia_update_assemblyA | Recompute the active assembly, applying every constraint. |
| catia_measureA | Measure a single element: its type, and whichever of length, area, volume, radius and centre of gravity apply. Works on faces, edges, vertices, sketches, surfaces, bodies and whole components. |
| catia_measure_distanceA | Measure the shortest distance between two elements, and report the two points where that minimum occurs. A distance of zero means the elements touch or interfere - which makes this a quick clearance check between two components in an assembly. |
| catia_measure_angleA | Measure the angle between two elements - two planar faces, two lines, or a line and a plane. |
| catia_bounding_boxA | Report the axis-aligned bounding box of an element or of the whole solid, with the minimum and maximum corners and the overall dimensions. Useful for sizing stock material or checking a part fits an envelope. |
| catia_mass_propertiesA | Report volume, surface area, mass, centre of gravity and the inertia matrix. When the document has a material applied, CATIA's own Analyze interface supplies the mass; otherwise pass a density and it is computed from the measured volume. |
| catia_point_coordinatesA | Read the 3D coordinates of a point, vertex or the centre of a circle. |
| catia_face_planeA | For a planar face, report its plane: a point on it, its two in-plane directions and the outward normal. This is what you need to decide which face is 'the top one' before sketching on it. |
| catia_list_materialsA | List the materials available in a CATIA material catalogue. With no path, the standard catalogue shipped with the detected CATIA installation is used. |
| catia_apply_materialA | Apply a material from a CATIA catalogue to the active part or a named body. Once a material is applied, catia_mass_properties reports a real mass instead of needing a density. |
| catia_list_parametersA | List the document's parameters with their current values. Feature dimensions appear here under names such as 'Pad.1\FirstLimit\Length', which is how you drive an existing model without editing its features. |
| catia_get_parameterA | Read one parameter by its exact name, including its formula if it is driven by one. |
| catia_set_parameterA | Change a parameter's value and recompute the model. Give either a number, or a string with a unit such as '25mm' or '30deg' - the string form is safer because CATIA does the unit conversion itself. |
| catia_create_parameterA | Create a user parameter to drive the model - a named length, angle, number, string or flag that formulas and feature dimensions can refer to. |
| catia_delete_parameterA | Delete a user parameter. |
| catia_list_relationsA | List the document's relations - formulas, rules, checks and design tables - with their expressions and whether they are active. |
| catia_create_formulaA | Drive one parameter from an expression involving others. The expression is CATIA Knowledge syntax and must carry units, for example 'Width * 2 + 5mm'. Feature dimensions can be the target, so this is how you make a model self-adjusting. |
| catia_set_relation_activeA | Activate or deactivate a formula or rule. Deactivating a formula is what lets you set its target parameter by hand again. |
| catia_delete_relationB | Delete a formula, rule, check or design table. |
| catia_add_design_tableA | Attach a design table (an Excel or tab-separated file) whose columns drive the document's parameters. Each row becomes a selectable configuration. |
| catia_set_design_table_configurationB | Select which row of a design table drives the model, then recompute. |
| catia_list_design_tablesA | List the design tables attached to the document, with their row counts and the row currently applied. |
| catia_drawing_list_sheetsA | List the sheets of the active drawing, with their paper size, scale and views. |
| catia_drawing_add_sheetA | Add a sheet to the active drawing and make it current. |
| catia_drawing_add_viewA | Add a generative view of an open 3D document to a drawing sheet. Choose a standard orientation, where the view goes on the sheet, and its scale. Call catia_drawing_update afterwards to make CATIA compute the geometry. |
| catia_drawing_add_textA | Place a text annotation on a drawing sheet - a note, a title or a revision mark. |
| catia_drawing_set_scaleA | Change the scale of a sheet or of one view. |
| catia_drawing_updateA | Regenerate every generative view on a sheet from the current state of the 3D model. Run this after changing the part. |
| catia_drawing_delete_viewB | Delete a view from a drawing sheet. |
| catia_set_viewA | Point the camera at a standard orientation - front, back, top, bottom, left, right, isometric, iso_rear or dimetric - and fit the model in the window. |
| catia_fit_allA | Zoom and centre the view so everything visible fits in the window. |
| catia_zoomB | Zoom the 3D view in or out by a number of steps, or reframe on one element. |
| catia_set_background_colorA | Set the 3D viewer's background colour. A white background gives much more legible screenshots than CATIA's default gradient. |
| catia_screenshotA | Capture the CATIA 3D viewport and return it as an image you can look at, optionally saving it to a file as well. Use it to check that geometry came out the way you intended - it is far more reliable than reasoning about the feature tree alone. |
| catia_capture_formatsA | Report which image formats this CATIA installation can actually write, as determined by probing rather than by assuming the documented enumeration. |
| catia_set_render_styleA | Change how the model is drawn: shaded, shaded with edges, wireframe, or a few CATIA variants. Falls back to the interactive command when the release does not expose the property. |
| catia_list_windowsA | List CATIA's open windows and which document each shows. |
| catia_list_export_formatsA | List the neutral formats this server knows how to ask CATIA for, and which document types each applies to. Whether a given format actually works also depends on the licences installed. |
| catia_exportA | Export the active document to a neutral format - STEP, IGES, STL, VRML, 3D XML, CGR for 3D documents, and DXF, DWG, PDF, CGM or SVG for drawings. The format is taken from the file extension unless you name it explicitly. |
| catia_export_bom_csvA | Write the active assembly's bill of materials to a CSV file: part number, quantity, nomenclature, revision, definition and source file. |
| catia_export_all_openA | Export every open 3D document to a directory in one format. Useful for turning a session's worth of work into STEP files in a single call. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 161 tools
Several tool pairs have unclear boundaries: catia_new_part vs catia_add_new_part, catia_update vs catia_update_assembly, catia_measure vs catia_measure_distance, catia_sketch_spline vs catia_gsd_spline, and catia_transform_body vs catia_gsd_transform. The descriptions clarify once read, but the volume of overlapping concepts makes misselection likely.
Most tools follow a snake_case catia_verb_noun pattern, but there are notable deviations like catia_bounding_box, catia_status, catia_capabilities, catia_measure, and catia_zoom. The mixed mix of list_/create_/set_/get_ alongside bare nouns and verbs is readable but not uniform.
161 tools is an extreme count for a single MCP server. Even for CATIA's broad domain, this creates a massive surface that is difficult to navigate and maintain; the set would benefit from consolidation or modular splitting.
The tool surface is remarkably deep, covering part design, sketches, GSD, assemblies, constraints, measurements, drawings, parameters, materials, and export. Minor gaps exist (e.g., drawing dimensions, sketch fillet/chamfer), but core workflows are well supported.