AI assistance for CATIA V5 in vehicle development

A handbook for design engineers and mechanical engineers: what an AI assistant can do for you today via the CATIA V5 MCP server, how to use it safely, where its limits are, and what becomes possible by extending the CATIA Automation interface.

As of: 25 Sep 2026 · Based on: daiemon12/catia-v5-mcp-server v0.2.0 (MIT) with extensions from CadPilot (repository catia-ai-mcp) · 86 tools (78 from the original project + 8 of our own)

First live test: quick guide with checklist for the first test with CATIA – go to the live-test guide.

Important first: In this project, no tool has yet been tested against a real CATIA installation. The information in this handbook is based on analysis of the source code, on automated offline tests and on the statements of the original project (whose surface tools were tested there in a real CATIA session). The ratings in chapters 3 and 6 are therefore a reasoned assessment, not a release. Every measured value and every piece of geometry that feeds into a decision must be verified in CATIA.

1. What this is about

You know CATIA V5: sketches, Pads, Pockets, surfaces in Generative Shape Design, assemblies with constraints, parameters and measurements. Much of this work consists of recurring, clearly describable steps – a bracket with four mounting holes, a bolt circle on a flange, a wall-thickness variant with weight comparison, a STEP export for the supplier, a profile of a part you have taken over.

An AI assistant (for example GitHub Copilot in agent mode) can carry out these steps for you if it is allowed to operate CATIA. That is exactly what the MCP server does: it gives the assistant 86 clearly defined tools – “create sketch on XY”, “draw rectangle”, “Pad 12 mm”, “measure volume and centre of gravity”, “set parameter”, “export as STEP”. You describe the goal in plain language; the assistant breaks it down into tool calls, executes them in your running CATIA session and reports what happened.

What you gain

  • Quick familiarisation with unfamiliar models (profile, parameters, dimensions)
  • Routine steps by language instead of by clicking
  • Variant studies with clean documentation
  • Calculations (bolt circles, masses, conversions) with a traceable working

What stays with you

  • The design decision
  • Checking every result in CATIA
  • Strength, manufacturability, standards, tolerances
  • Release of design states

What matters

  • Work on copies, never on released originals
  • Unambiguous names, units and planes in the instruction
  • Measure, don’t trust: re-measure every change
  • Data protection: which model data the AI may see

Guiding principle of this project: The AI proposes and operates – CATIA calculates – the design engineer decides. Dimensions, volumes and distances come from CATIA, not from the language model. The language model is good at breaking an instruction into steps, calculating coordinates and summarising results; it is not a calculation program and knows your model only through what the tools report back.

2. How the AI works with CATIA

Flow: design engineer, AI assistant, MCP server, CATIA V5 Design engineer instruction in words AI assistant plans steps, selects tools MCP server 86 tools, Safe Mode, checks CATIA V5 computes geometry, update, measurement tool call COM Automation result/error response report
The assistant never addresses CATIA directly, only through the tools of the MCP server. The server uses the official COM Automation interface of CATIA V5 – the same one that VBA macros use.

The building blocks in simple terms

MCP (Model Context Protocol)
An open standard through which an AI assistant uses external tools. Each tool has a name (e.g. catia_pad), a description and precisely defined parameters (e.g. height in mm).
MCP server
A small Python program that runs on the CATIA machine. It translates tool calls into CATIA commands and returns the response.
COM Automation
The programming interface that CATIA V5 provides for macros. In principle, anything a VBA or CATScript macro can do, the MCP server can also do – but only what a tool has been built for.

A workflow in detail

  1. You describe the goal, e.g. “Create a plate 120 × 80 × 8 mm, centred on the origin, and give me its volume and mass in aluminium.”
  2. The assistant plans: new part → sketch on XY → centred rectangle → close sketch → Pad 8 mm → measure with density 2700 kg/m³.
  3. It calls the tools one after another. Each call is executed in your visible CATIA session – you see the tree grow.
  4. CATIA calculates (update, volume) and reports back.
  5. The assistant reports and states the values used. You check in CATIA (Measure Inertia) and decide.

The AI only sees what the tools report. It does not “look” at the screen. If you change something in CATIA at the same time (switch windows, delete features), the assistant knows nothing about it until it queries again. So do not work in the same document while an instruction is running, or explicitly tell the assistant to re-read the current state.

3. Maturity and trust

Not all of the 86 tools are equally reliable. We use three levels; they appear next to every tool in the catalogue:

LevelMeaningCountHow to handle
usableImplementation plausible after code review; for the surface tools, additionally tested in CATIA by the original project.53Use it; check the result like any design change.
limitedWorks only within a narrower scope than the description promises, or part of the output is questionable.23Use only within the described scope; always re-measure the result.
not reliableKnown or strongly suspected defect: parameters are ignored or wrong CATIA constants are used.10Do not use for real work. Carry out the step manually in CATIA.

The reasons for each rating are given in chapter 8. As soon as the first test has run on a machine with a CATIA licence, this table will be updated – with CATIA release, date and result.

Rule of thumb: reading and measuring is low-risk; geometry from sketch + Pad/Pocket and all surface tools are the most reliable way to build geometry; fillets, chamfers, shells, drafts and assembly constraints you do yourself in CATIA for now.

4. Setup and protection

Prerequisites

Installation in four steps – without admin rights

  1. Install Python for your own user (python.org installer, untick “Use admin privileges …”) – or use an existing Python.
  2. Place the project folder in your own user profile (ZIP or Git).
  3. Double-click scripts\setup_user.cmd. The script creates the Python environment, installs the server, creates the working folder %USERPROFILE%\CATIA_MCP_Work, writes the Copilot configuration .vscode\mcp.json with Safe Mode and checks everything without CATIA.
  4. In VS Code, open the project folder, in .vscode\mcp.json, above the catia-v5 entry, click Start, and open Copilot Chat in Agent mode. Start CATIA normally beforehand (not “as administrator”).

The detailed guide with troubleshooting, and the list of cases where company policies do require IT after all (e.g. Copilot policy, AppLocker, missing CATIA COM registration), is in the project under docs/ANLEITUNG_COPILOT.md.

What the Copilot configuration looks like

Generated by the setup script with the paths on your machine; you do not have to write it by hand.

{
  "servers": {
    "catia-v5": {
      "type": "stdio",
      "command": "C:\\Users\\Name\\catia-ai-mcp\\.venv\\Scripts\\python.exe",
      "args": ["-m", "catia_mcp"],
      "env": {
        "CATIA_MCP_SAFE_MODE": "1",
        "CATIA_MCP_WORK_DIR": "C:\\Users\\Name\\CATIA_MCP_Work",
        "CATIA_MCP_RESULT_FORMAT": "v2"
      }
    }
  }
}

Working with Copilot

Safe Mode – strongly recommended

Without protection, the assistant can save an open original in place or overwrite arbitrary files. Safe Mode prevents this:

SettingEffect
CATIA_MCP_SAFE_MODE=1Protection active. A typo in the value prevents start-up – the protection never fails silently.
CATIA_MCP_WORK_DIRThe only folder into which files may be saved or exported or images written. Existing files are not overwritten.
CATIA_MCP_READ_DIRSOptional: models may only be opened from these folders (and the working folder).
CATIA_MCP_ALLOW_OVERWRITE=1Optional: allow overwriting in the working folder (e.g. for repeated exports).

Typical workflow with a working copy: open the original → “Save a working copy as C:/CATIA_MCP_Work/Bracket_v1.CATPart” → from now on the session works with the copy → changes → saving goes to the copy. The original is no longer touched. If the assistant nevertheless tries to save an original, it receives a clear error message with the safe alternative.

Limits of Safe Mode: It only protects actions that go through the assistant – not your own operation of CATIA, not macros and not CATIA’s own backups. For assemblies, “Save As” copies only the product; the individual parts remain references to the originals (saving those is, however, blocked).

Structured results (v2)

With CATIA_MCP_RESULT_FORMAT=v2, every tool reports a structured result: ok/not ok, a unique error code (e.g. NO_ACTIVE_DOCUMENT, OBJECT_NOT_FOUND, POLICY_BLOCKED) and a safe recommended action. This lets the assistant detect errors reliably instead of reading them out of free text. Without this setting, the server behaves exactly like the original project.

Data protection and confidentiality

Everything a tool reports back goes to the AI service: file paths, part and feature names, parameter names and values, dimensions, volumes, component names. With a cloud AI service, this information leaves your company. Before using real project data, clarify whether this is permitted. Screenshots and CATPart files themselves are not transferred to the AI by the server, but paths and names in the responses are. In Safe Mode, the log on disk contains no paths or values.

To get started, we recommend purpose-built or anonymised test models.

5. Good working practice

5.1 Writing instructions so that the result is right

Imprecise

“Make me a bracket for the control unit.”

The AI has to guess dimensions, plane, material, hole pattern and position – the result is random.

Precise

“New part ‘ECU_Bracket’. Base plate 140 × 90 mm, 4 mm thick, on the XY plane, centre at the origin. Four through holes Ø 6.6 mm (M6) on a centred 120 × 70 mm rectangle. Then measure volume and mass for steel 7850 kg/m³ and give me the values in a table.”

Proven elements of an instruction:

5.2 Units, planes and coordinate systems

5.3 Names and references

The tools find elements by their name in the specification tree (e.g. Sketch.2, Pad.1, Contour_A). Three rules follow from this:

  1. Names depend on the language: a German CATIA user interface may generate different default names from an English one. Assigning your own names is more robust.
  2. Without a name, many tools take the most recently created element (last sketch, last feature). This is convenient but error-prone if something else has been created in between.
  3. Edges and faces have no stable names. Tools that would need a specific edge or face (fillet, chamfer, draft, shell) are therefore currently not reliable.

5.4 Checking results – “measure, don’t trust”

Today, a success message means: CATIA accepted the command without error. It does not mean that the geometry looks as intended (a Pocket in the wrong direction, for example, cuts into empty space). So have a measurement taken after every material change:

Undo: “Show the journal” and “Undo the last change” revert the assistant’s last step (parameter value or most recently created feature) – as long as nothing has been built on it.

New (25 Sep 2026): with CATIA_MCP_RESULT_FORMAT=v2 – set by the setup script – the server measures the body volume before and after for 15 material tools (Pad, Pocket, Shaft, Groove, Hole, Shell, patterns, fillet …). A feature with no effect (“Pocket into empty space”) or with the wrong direction is reported as an error, together with the volume change and a recommended action. Tested offline, not yet confirmed in CATIA; your own check is still needed.

6. Tool catalogue – all 86 tools

Each tool with its purpose from a design engineer’s point of view, key parameters, maturity and notes. You do not need to know the tool names – the assistant chooses them itself. The overview helps you judge what is possible and what you are better off doing yourself.

6.1 Session and documents (9)

ToolPurposeParametersMaturityNotes
catia_connectConnect to the running CATIA session; starts CATIA if none is running.–usableUsually unnecessary: every other tool connects automatically. May start a new CATIA instance – open CATIA yourself first.
catia_disconnectDisconnect; CATIA stays open.–usableOnly for a deliberate reset.
catia_new_partCreate a new, empty CATPart.name (optional)usableSome CATIA versions do not allow renaming; the assistant then reports the actual name.
catia_new_productNew, empty assembly (CATProduct).name (optional)usableAs above.
catia_open_documentOpen a CATPart/CATProduct/CATDrawing.file_pathusableIn Safe Mode only from permitted folders and with a CATIA file extension.
catia_save_documentSave the active document or “Save As”.file_path (optional)limitedWithout Safe Mode it overwrites the original! With Safe Mode: only working copies in the working folder.
catia_close_documentClose the active document, optionally saving it.savelimitedWithout saving, changes are lost; with saving, what was said for save_document applies.
catia_list_documentsAll open documents with type and path.–usableA good first step to clarify the context.
catia_get_active_document_infoProfile of the active document: bodies with features, Geometrical Sets, number of parameters, or the components of an assembly.–usableBasis for any model analysis.

6.2 Sketcher – 2D sketches (11)

Sketches are always placed in the main body (PartBody) on one of the three origin planes. Coordinates are local sketch coordinates in mm.

ToolPurposeParametersMaturityNotes
catia_create_sketchCreate and open a sketch on XY, YZ or ZX.planeusableOrigin planes only; no sketches on faces or offset planes.
catia_close_sketchClose and update the sketch – prerequisite for Pad/Pocket.–usableDon’t forget: open sketches block 3D features.
catia_sketch_lineLine from (x1, y1) to (x2, y2).x1 y1 x2 y2usableEnd points are not connected automatically – use exactly identical coordinates for profiles.
catia_sketch_rectangleRectangle from two corner points.x1 y1 x2 y2usableConsists of four separate lines without constraints; check dimensions after the Pad using a bounding box.
catia_sketch_centered_rectangleRectangle from centre point, width, height – ideal for symmetrical plates.width height cx cyusableAs for rectangle.
catia_sketch_circleFull circle – for holes via Pocket, spigots, shafts.radius cx cyusableNote: radius, not diameter. “Ø 6.6” → radius 3.3.
catia_sketch_arcCircular arc from centre, radius, start and end angle (degrees, anticlockwise from +x).cx cy radius start_angle end_anglelimitedSince 25 Sep 2026 uses the correct CATIA method CreateCircle (previously CreateArc, which does not exist – the tool could never have worked). Connection to lines only via exactly matching coordinates; check orientation.
catia_sketch_splineSpline through support points.points closedlimitedThe points are control points (poles): the curve does not necessarily pass through them – check in CATIA. “closed” closes with a straight line.
catia_sketch_pointSketch point, e.g. as a hole centre.x yusable–
catia_sketch_constraintDimension/constraint (distance, radius, angle, coincidence, parallel …).type value geometry_index_1/2limitedCorrected on 25 Sep 2026: previously wrong CATIA constants (e.g. “radius” → distance constraint). The correction has not yet been confirmed in CATIA. Check indices beforehand with catia_sketch_get_geometry (the list includes the sketch axes).
catia_sketch_get_geometryElements of the open sketch with index and type.–usableThe list also contains the sketch’s axis elements.

6.3 Part Design – solids (15)

All features are created in the main body. Without sketch_name/feature_name, the most recently created sketch or the last feature is used.

ToolPurposeParametersMaturityNotes
catia_padPad (extrusion) from a closed sketch.height direction symmetric sketch_nameusable“both” acts like “symmetric”. Whether the total length or the length per side applies is unresolved (K15). If the update fails, the defective feature remains in the tree (K14). Always check the volume afterwards.
catia_pocketPocket/cut-out – also for simple holes from circles.depth direction sketch_namelimitedMay cut in the wrong direction into empty space – check the volume decrease, otherwise direction: reverse.
catia_shaftRevolved solid (shaft, pin, bush).angle sketch_namelimitedThe sketch needs an axis of rotation; passing of the angle is uncertain – check the result.
catia_grooveRevolved groove (recess, undercut).angle sketch_namelimitedAs for Shaft.
catia_filletEdge fillet.radius edge_namenot reliableedge_name is ignored; no specific edge is filleted.
catia_chamferChamfer.length angle edge_namenot reliableCall uses the correct signature since 25 Sep 2026, but the edge still cannot be selected (K10).
catia_holeHole feature.diameter depth type threaded sketch_namelimitedSince 25 Sep 2026: diameter set correctly and “threaded” no longer inverted (previously a plain hole was created). type (counterbore, countersink …) is still ignored. More reliable: sketch a circle + Pocket.
catia_rect_patternRectangular pattern of a feature (hole array, ribs).dir1_count dir1_spacing dir2_count dir2_spacing feature_namelimitedDirections cannot be selected; check the number of instances afterwards.
catia_circ_patternCircular pattern (bolt circle).count angular_spacing feature_namelimitedAxis of rotation cannot be selected. More robust: have the bolt-circle coordinates calculated and sketch the circles (scenario 7.4).
catia_mirrorMirror about XY/YZ/ZX.plane feature_namenot reliablefeature_name is looked up in the tree but not passed to CATIA; what gets mirrored cannot be controlled specifically.
catia_shellHollow out with wall thickness.thickness faces_to_removenot reliableFaces to remove are not found reliably; the CATIA call deviates from the reference.
catia_draftDraft (demoulding for casting/injection moulding).angle face_name pulling_directionnot reliableface_name is ignored.
catia_thicknessAdd/remove thickness on a face.offset face_namenot reliableface_name is ignored.
catia_list_featuresFeature list of the main body.–usableProves that a feature was created – not that it has the right effect.
catia_list_edgesList the edges of the last feature.–limitedEdge names are not persistent; changes the CATIA selection.

6.4 Generative Shape Design – wireframe and surface geometry (24)

This group was tested by the original project in a real CATIA session (30/30 steps) and is the most carefully implemented. New elements are placed in the active Geometrical Set (if there is none, one is created). If an element fails on update, it is removed from the tree again and the reason is reported. Points can be given as a name or as [x, y, z] in mm.

ToolPurposeParametersMaturityNotes
catia_gsd_create_geosetCreate a Geometrical Set and make it active – keeps the tree tidy.nameusableHave a separate set created for each task.
catia_gsd_set_active_geosetSelect the target set for new elements.nameusableRemembered by the server, not by CATIA.
catia_gsd_list_elementsList all sets, elements and sketches.–usableSource for exact names.
catia_gsd_point3D point, e.g. a mounting or attachment point.x y z nameusableAbsolute part coordinates.
catia_gsd_lineStraight line between two points, e.g. an axis or guide line.point1 point2 nameusable–
catia_gsd_plane_offsetParallel offset plane, e.g. a section plane or package-space boundary.base_plane offset reverse nameusable–
catia_gsd_plane_3pointsPlane through three points, e.g. a mounting plane from three fixing points.point1 point2 point3 nameusableThe points must not lie on a straight line.
catia_gsd_spline3D spline through support points, e.g. a line routing or edge path.points closed nameusableNo tangency/curvature constraints.
catia_gsd_circleFull circle in space, e.g. a cross-section for Sweep or loft.center support_plane radius nameusable–
catia_gsd_projectProject a curve/point onto a surface or plane.element support nameusable–
catia_gsd_intersectionIntersection of two elements, e.g. surface ∩ plane = section contour.element1 element2 nameusableGood for section analyses on surfaces.
catia_gsd_multi_section_surfaceLoft through several cross-sections, optionally with guide curves.sections guides orientations nameusableGuide curves must hit every section; for twisting use orientations: -1.
catia_gsd_sweepProfile along a guide curve – ducts, line envelopes, seal profiles.profile guide nameusableExplicit sweep without further options.
catia_gsd_extrudeExtrude a curve in one direction to form a surface.profile direction limit1 limit2 nameusableDirection as vector [x, y, z].
catia_gsd_revolveSurface of revolution about an axis.profile axis angle1 angle2 nameusable–
catia_gsd_fillFill surface within a closed boundary.boundaries nameusableBoundaries in contour order.
catia_gsd_blendBlend surface between two curves.curve1 curve2 nameusableContinuity conditions cannot be set.
catia_gsd_offset_surfaceOffset surface – material thickness, distance surface, clearance envelope.surface offset reverse nameusableCATIA may refuse with strong curvature.
catia_gsd_joinJoin curves/surfaces.elements nameusable–
catia_gsd_splitSplit an element with a cutting element, keep one side.element cutter reverse nameusableCheck afterwards which side was kept.
catia_gsd_trimTrim two elements against each other.element1 element2 reverse1 reverse2 nameusable–
catia_gsd_symmetryMirror an element – left/right side of the vehicle.element plane nameusableVehicle centre usually the ZX plane (Y = 0) – observe your company standard.
catia_gsd_thick_surfaceThicken a surface into a solid (e.g. sheet-metal/plastic shell).surface thickness1 thickness2usableResult in the main body.
catia_gsd_close_surfaceFill a closed surface to form a solid.surfaceusableThe surface must be watertight.

6.5 Assemblies – Assembly Design (9)

ToolPurposeParametersMaturityNotes
catia_add_componentLoad an existing part/product into the active assembly.file_pathusableInserted at the origin. Check the component list afterwards.
catia_add_new_partNew empty part directly in the assembly.nameusableSince 25 Sep 2026 creates a real part (CATPart); previously an empty sub-assembly was created. name becomes the part number; the instance is called e.g. “Bracket.1”.
catia_fix_constraintFix a component (reference part).component_namelimitedPasses the component instead of a CATIA reference – check the constraint status.
catia_coincidence_constraintCoincidence of axes/planes of two components.component1 component2 element1 element2not reliableWrong constraint type, element1/2 ignored.
catia_offset_constraintOffset between components.component1 component2 offsetnot reliableNo geometry reference on the components.
catia_angle_constraintAngle between components.component1 component2 anglenot reliableWrong constraint type.
catia_move_componentMove/rotate a component (mm, degrees).component_name tx ty tz rx ry rzlimitedReads the current position robustly since 25 Sep 2026; if it cannot be read, the tool aborts instead of writing an unusable position. Only for rough positioning; check the position in CATIA.
catia_list_componentsComponents with name, part number and position.–limitedNames and part numbers reliable. Positions are read robustly since 25 Sep 2026; if that is not possible, null is shown instead of false zero values.
catia_list_constraintsConstraints with status (resolved/broken).–usableGood for tracking down broken constraints.

6.6 Measuring and parameters (6)

ToolPurposeParametersMaturityNotes
catia_measure_distanceMinimum distance between two elements (mm).element1 element2limitedLookup by name. Ambiguous names lead to an error. CATIA cannot measure bodies and Geometrical Sets – the tool states this explicitly since 25 Sep 2026; use a face, edge, point or feature. Changes the CATIA selection.
catia_get_inertiaVolume, surface area, centre of gravity, inertia matrix; mass if density is given.densitylimitedSince 25 Sep 2026 in the correct units: CATIA returns volume in m³ and area in m², the server converts to mm³/mm² (previously masses would have been too small by a factor of 10⁹). Centre of gravity in mm; if it is missing, a note is shown instead of zero values. No inertia matrix: the measurement object does not provide one, the alternative route has yet to be checked live. Not yet confirmed in CATIA.
catia_get_bounding_boxBounding box: min/max and edge lengths.–not reliableCATIA V5 Automation offers no bounding-box method; the tool reports this explicitly since 25 Sep 2026 (UNSUPPORTED_CAPABILITY). Alternative: measure distances to offset planes.
catia_get_parametersParameters with value (and comment), optionally filtered.filterusableAlways filter for large parts (e.g. “Pad.1”, “WallThickness”).
catia_set_parameterSet a parameter value and update the part – the core of every variant study.name valuelimitedFull parameter name required (e.g. Part1\Pad.1\FirstLimit\Length); numeric values only; no automatic undo – have the old value noted.
catia_update_partUpdate the part.–usableNecessary, but no proof of correctness.

6.7 View and export (4)

ToolPurposeParametersMaturityNotes
catia_exportExport as STEP, IGES, STL, 3DXML, VRML, CGR (PDF for drawings).file_path formatusableFormat from the file extension. Export licence required per format. Since 25 Sep 2026 the tool checks whether the file was actually created. In Safe Mode only into the working folder.
catia_screenshotImage of the current 3D view (JPG/BMP/TIFF).file_path width heightlimitedWidth/height are not applied (image at window size) – the message says so explicitly; .png is saved as .jpg. Since 25 Sep 2026 the tool checks whether the image file was created.
catia_set_viewStandard view: front, back, top, bottom, left, right, isometric.viewusableViewing directions may differ from your CATIA settings.
catia_fit_allFit all in.–usableBefore every screenshot.

6.8 Session: journal and undo (2) – new

An addition by this project. During the running session, the server logs parameter changes and features created by material tools – including defective features from failed calls (K14).

ToolPurposeParametersMaturityNotes
catia_journal_listWhat has the assistant changed in the model during this session?–usableOnly changes made via the server, not your own clicks in CATIA.
catia_undo_lastRevert the last change: restore the old parameter value or delete the most recently created features.–limitedOnly the last step, only in the same document, a feature only as long as it is the last one in the body. Not a CATIA transaction, not yet confirmed in CATIA – working copies remain the real protection.

6.9 Product structure, Knowledge and batch processing (6) – new

An addition by this project, tested offline against the simulator; Automation members checked against the reference (pycatia), not confirmed in CATIA. Details: docs/EXTENDED_TOOLS.md.

ToolPurposeParametersMaturityNotes
catia_get_product_propertiesPart number, revision, definition, nomenclature, source and user-defined properties of a part/product or a component.component_nameusableRead-only. Whether user-defined properties come with a path prefix will be shown by the first CATIA test.
catia_list_relationsFormulas and rules of a part (Knowledgeware), with active/inactive.filterlimitedWhether the expression of rules/checks is readable via Automation is open.
catia_get_parameter_detailsOne parameter in detail: value, display with unit, read-only/hidden, driving formula.nameusableUseful before any parameter change: is the value driven by a formula? value is always in mm or degrees, even if CATIA displays e.g. inches (value_as_string shows the displayed value).
catia_get_bomBill of materials of the active assembly from the product structure: level, part number, nomenclature, revision, quantity.max_depthusableRead-only; does not write a file.
catia_batch_summaryProfiles for an entire folder: type, number of features, parameters, volume, optionally mass.folder pattern max_files densitylimitedOpens each file and closes it without saving; documents that are already open are left untouched. In Safe Mode only from permitted folders. Whether large assemblies show dialogs when opened is open.
catia_batch_exportExport an entire folder as STEP/IGES/STL/3DXML/CGR, e.g. for suppliers.folder target_dir format pattern max_fileslimitedNever overwrites; existing target files are skipped and reported. In Safe Mode the target must be in the working folder.

7. Use cases in vehicle development

The following scenarios show how to combine today’s tools sensibly. They have been chosen so that they get by with the reliable tools or explicitly work around the limits. The dialogues are shortened; the tool calls show what happens in the background. All dimensions are examples – not design specifications. Measured values in the responses are illustrative (not obtained in CATIA); where they can be recalculated, they have been.

7.1 Profile of a part you have taken over

Situation: You take over a part from a previous project or from a colleague – e.g. an ancillary-unit bracket – and need to get an overview quickly: structure, driving parameters, main dimensions, weight.

You
Open the working copy C:/CATIA_MCP_Work/UnitBracket.CATPart and create a profile: structure of the feature tree, all parameters with “Thickness”, “Length” or “Radius” in the name, main dimensions and mass in cast aluminium (2700 kg/m³).
Tools
catia_open_document → catia_get_active_document_info → catia_list_features → catia_get_parameters(filter="Thickness") → …(Length) → …(Radius) → catia_get_inertia(density=2700)
Assistant
The part consists of 1 main body with 23 features (base plate as Pad, 2 ribs, 6 holes as Pockets, 11 fillets …) and 2 Geometrical Sets. Driving parameters: WallThickness = 4 mm, RibLength = 85 mm, … Volume 312.4 cm³ → mass 0.843 kg. Note: if CATIA does not return the centre of gravity or bounding box, I say so explicitly instead of giving zero values – please measure in CATIA in that case.
Your check
Cross-check the mass with CATIA “Measure Inertia”; compare the number of features in the tree.

Benefit: familiarisation in minutes instead of half an hour; the profile can be taken straight into handover or review documents. Risk: low (read-only). Tip: Ask for anomalies to be listed – e.g. parameters without a comment, features that have not been renamed, very long trees.

7.2 Designing a simple bracket

Situation: A control unit, a relay carrier or a sensor needs a simple sheet-metal or machined bracket for a concept, a prototype or a package-space study.

You
New part “ECU_Bracket”. Base plate 140 × 90 × 4 mm on XY, centred on the origin. Four through holes Ø 6.6 mm on a centred 120 × 70 mm rectangle. Then a vertical tab at the plate edge y = +45 mm: 30 mm high above the top of the plate, 4 mm thick, along the full length. Measure volume and mass for steel.
Tools
catia_new_part → catia_create_sketch(xy) → catia_sketch_centered_rectangle(140, 90) → catia_close_sketch → catia_pad(4) → catia_get_inertia → catia_create_sketch(xy) → 4× catia_sketch_circle(r=3.3; ±60, ±35) → catia_close_sketch → catia_pocket(4) → catia_get_inertia (volume decrease?) → catia_create_sketch(yz) → catia_sketch_rectangle(41, 4, 45, 34) → catia_close_sketch → catia_pad(140, symmetric) → catia_get_inertia(7850)
Assistant
Base plate: 50,400 mm³. After the holes: 49,853 mm³ (−547 mm³ ≈ 4 × π × 3.3² × 4 ✔). I sketched the tab as a profile on the YZ plane (y 41…45, z 4…34) and extruded it symmetrically, because sketches are only possible on origin planes. Expected is +16,800 mm³ (4 × 30 × 140); I measured +16,800 mm³ ✔. Total 66,653 mm³ → 0.52 kg (steel 7850 kg/m³).
Your check
Measure the hole spacings in CATIA; check the position of the tab – on the YZ plane, the sketch horizontal must be Y and the sketch vertical Z, otherwise the tab is in the wrong place.

Caution with “symmetric”: for symmetric, the tool description promises “total height = height”. In CATIA, “Mirrored extent” usually means the length per side – which would produce a 280 mm long tab. Until this has been clarified in CATIA (finding K15), the assistant must re-measure the volume increase or the length after a symmetric Pad and, if it deviates, repeat with half the length.

Why holes as circle + Pocket? The hole tool currently ignores the hole type and deviates from the CATIA call; circle and Pocket are more reliable. The assistant checks the volume decrease against the circle formula – a simple but effective plausibility test.

What you do yourself: fillets and chamfers (tools not reliable), bend radii for sheet metal, tolerances, thread specifications.

7.3 Variant study and weight comparison

Situation: Lightweight-design discussion: how does the mass of a bracket change if the wall thickness goes from 4 to 3 mm and the rib height from 20 to 25 mm? Which combination stays within the package space?

You
Work on the copy. First read the parameters “WallThickness” and “RibHeight” and note them. Then work through all combinations of WallThickness {3, 3.5, 4} mm and RibHeight {20, 25} mm: in each case set the parameters, update, measure volume and mass (aluminium 2700). Output a table and at the end reset the original values.
Tools
catia_get_parameters ×2 → (6×: catia_set_parameter ×2 → catia_update_part → catia_get_inertia) → catia_set_parameter (original values) → catia_get_inertia (check)
Assistant
Wall thicknessRib heightVolume cm³Mass kgΔ vs. series
4.020312.40.843Baseline
3.020251.90.680−19%
……………
Original values restored; the check volume is back at 312.4 cm³.
Your check
Stiffness/strength are assessed by you or by the simulation team – the table covers only the geometry and mass side.

Benefit: parameter studies that would otherwise cost an hour of clicking and an Excel list run reproducibly. Important: the server does not yet have automatic undo; so always ask in the instruction to “note the original values and reset them”, and work on a copy. A separate file for each variant: “save each variant as Bracket_W3_R25.CATPart in the working folder”.

7.4 Hole patterns, bolt circles and flange variants

Situation: A connection flange (e.g. exhaust, intake, pump) needs a bolt circle, or a hole pattern has to be adapted to a supplier part.

You
On the flange (Pad.1, thickness 10 mm, XY plane), a bolt circle: pitch circle Ø 96 mm, 6 holes Ø 9 mm, first hole at 0°. Calculate the coordinates, show them to me, then execute.
Assistant
Pitch circle radius 48 mm, spacing 60°: (48, 0), (24, 41.569), (−24, 41.569), (−48, 0), (−24, −41.569), (24, −41.569). Hole radius 4.5 mm. Shall I execute?
Tools
catia_create_sketch(xy) → 6× catia_sketch_circle(r=4.5, …) → catia_sketch_get_geometry (check) → catia_close_sketch → catia_pocket(10) → catia_get_inertia (ΔV ≈ 6 × π × 4.5² × 10 = 3817 mm³?)
Your check
Measure the pitch circle and angular position in CATIA; check edge distances to the flange contour.

Why calculate instead of using a circular pattern? The circular-pattern tool cannot select the axis of rotation. The coordinates are simple trigonometry – the assistant shows the working, you can check it, and the result does not depend on an uncertain pattern function. Irregular hole patterns can be taken over from a supplier table in the same way (“hole pattern as per table: …”).

Variant: checking a supplier part’s hole pattern – “list the centre points of all circles in Sketch.4 and compare them with this table” (with catia_sketch_get_geometry while the sketch is open; coordinates may have to be read off in CATIA, as the tool only returns names and types).

7.5 Package-space and clearance study on a part

Situation: A part has to fit into a defined package space or maintain a minimum distance from a boundary surface (e.g. 10 mm from a heat-shield surface, 25 mm clearance from an envelope surface).

  1. Have the boundaries created as geometry: “In the set ‘PackageSpace’, create a plane 180 mm above XY (upper package-space limit) and one 60 mm beside ZX.” (catia_gsd_plane_offset)
  2. Measure distances: “Measure the minimum distance between PartBody and Limit_Top.” (catia_measure_distance)
  3. Create an envelope: “Create an offset surface 10 mm around the surface HeatShield and measure the distance to the bracket.” (catia_gsd_offset_surface + measurement)
  4. Have the result documented as a table with target/actual.

Limits today: the distance measurement works within one part and via element names; with identically named elements, it silently takes the first one. Real clearance checks between parts of an assembly, motion envelopes (spring travel, steering lock) and clash analyses are not yet covered (see Outlook). The bounding-box measurement is currently unreliable.

7.6 Surface design: air ducting, trim panel, duct

Situation: Concept phase of an air duct (e.g. brake cooling, charge air, cabin ventilation) or of a trim shell: cross-sections at specific stations, the shape in between, material thickness.

You
Set “Duct”. Three circular cross-sections: at x = 0 Ø 80 mm, at x = 150 Ø 70 mm (centre offset to z = 20), at x = 300 Ø 60 mm (z = 45). The section planes are parallel to YZ. Loft through the three circles, then 2 mm wall thickness outwards as a solid. Volume and mass in PA6 GF30 (1360 kg/m³).
Tools
catia_gsd_create_geoset("Duct") → 3× catia_gsd_plane_offset(yz, 0/150/300) → 3× catia_gsd_point → 3× catia_gsd_circle → catia_gsd_multi_section_surface → catia_gsd_thick_surface(2) → catia_get_inertia(1360)
Assistant
Loft “Duct_Inner” created; 2 mm thickening outwards in the main body; volume 181.6 cm³ → 0.247 kg. If the thickening points inwards: use thickness2 instead of thickness1.
Your check
Check the transitions visually (twisting?), measure the cross-sectional areas; the flow design is done by CFD.

Further surface tasks: section contours at fixed stations (catia_gsd_intersection with offset planes) for cross-section progressions; mirroring to the other side of the vehicle (catia_gsd_symmetry about the vehicle centre); material thickness of shells via catia_gsd_offset_surface/thick_surface; blend surfaces (catia_gsd_blend) between two connecting contours.

7.7 Package space for lines and hoses

Situation: A coolant hose or wiring harness is to be routed between two connection points; you need an envelope geometry early on for package-space coordination.

  1. Connection and support points in vehicle coordinates as 3D points (catia_gsd_point), e.g. from a table.
  2. Routing as a spline through the points (catia_gsd_spline).
  3. Cross-section: circle with outer diameter plus allowance at the first point, perpendicular to the line – for this, a plane through three points or an offset plane (catia_gsd_plane_3points, catia_gsd_circle).
  4. Envelope tube by Sweep (catia_gsd_sweep), measure distances to neighbouring parts.

Not included: minimum bend radii, hose length tolerances, motion (engine mounts, axle), fixing distances. However, the assistant can give you the length of the spline via a measurement and calculate support-point distances from the coordinates.

7.8 Assembly check

Situation: Before a review or a data handover, you want to know whether an assembly is consistent.

You
Active assembly: list all components with part number and all constraints with status. Flag broken constraints, duplicate part numbers and components whose name does not start with the part number.
Tools
catia_list_components → catia_list_constraints
Assistant
14 components, 22 constraints, of which 2 are broken: Offset.7, Coincidence.12. Part number A123-456 occurs twice (instances .1 and .2 – probably intentional). …

Not reliable today: creating constraints (coincidence, offset, angle) and reading exact positions. Use the assistant here as an inspector, not as an assembler.

7.9 Review documents and data exchange

Note: the image size is currently the window size. Exports are subject to your company’s licences and export rules (export control, confidentiality).

7.10 Checking design guidelines and naming conventions

Situation: Your department has modelling guidelines – e.g. “all driving dimensions as named parameters”, “give features meaningful names”, “wall thickness ≥ 2.5 mm”, “at most one main body”.

You
Check the active part against these rules: (1) no features with default names such as “Pad.3”, (2) parameter “WallThickness” present and ≥ 2.5 mm, (3) at most one body, (4) all Geometrical Sets have names without “Geometrical Set”. Output as a list with OK/deviation.
Tools
catia_get_active_document_info → catia_list_features → catia_get_parameters(filter="WallThickness")

Benefit: quick pre-check before release or handover. Limit: the language model checks the rules against the reported data; geometric rules (minimum radius, wall thickness at every point, demouldability) need real analysis functions and are part of the outlook.

7.11 Onboarding, learning and explaining

For newcomers, this is a patient tutor that explains using the real model. Bear in mind that explanations of general CATIA functions come from the language model’s knowledge and may be wrong – if in doubt, consult the CATIA help or ask colleagues.

7.12 Batch processing: mass list and supplier export

Situation: Before a milestone, you need a mass list of all parts in a module, or a supplier is to receive all parts as STEP.

You
For all CATParts in D:\CATIA_TestModels\FrontModule, create a mass list for aluminium (2700 kg/m³), sorted by mass, with a total. Then export all of them as STEP to C:\Users\…\CATIA_MCP_Work\Export_Supplier.
Tools
catia_batch_summary(folder, density=2700) → catia_batch_export(folder, target_dir, format="step")
Assistant
18 parts evaluated, 1 error (Trim_old.CATPart could not be opened). Total 7.42 kg; heaviest part CrossMember 2.31 kg … 17 STEP files exported, 1 skipped (already existed).
Your check
Spot-check masses in CATIA; the material assumption is the same for all parts – actual materials per part are not yet evaluated.

Safety: each file is closed without saving, documents that are already open are left untouched, existing export files are never overwritten. In Safe Mode, the source folder must be permitted (CATIA_MCP_READ_DIRS) and the export target must be in the working folder.

8. Limits and known issues

Fundamental limits

What the AI cannot do

  • Statements on strength, stiffness, crash, fatigue (no FEA)
  • Manufacturability, suitability for casting/injection moulding, cost
  • Tolerance analyses, fits, standards compliance
  • Release or PLM processes
  • Recognise what is “right” without you stating criteria

What the AI can do

  • Break instructions down into CATIA steps and execute them
  • Read, compare and tabulate values from CATIA
  • Basic geometric calculations with the working shown
  • Check results against rules you specify
  • Write documentation and explanations

Known issues of the current tools

From the code analysis (25 Sep 2026), partly documented by the original project itself. The numbers refer to docs/PHASE1_FINDINGS.md.

#IssueAffected toolsImpact for youStatus
K8Wrong CATIA constants for constraint typessketch_constraint, coincidence/angle_constraintA different constraint was created than requestedcorrected (25 Sep 2026), confirmation in CATIA pending; assemblies additionally K11
K9Values that CATIA returns via output parameters probably do not arriveget_inertia (centre of gravity, inertia), get_bounding_box, list_components (positions), move_componentZero values that look like real measurementscorrected (25 Sep 2026): no more invented zero values, including for assembly positions
K10Parameters are ignored; edges/faces cannot be selected specificallyfillet, chamfer, draft, thickness, shell, mirror, hole (type)Feature behaves differently or not at allredesign needed in phase 3
K11Assembly constraints without a real geometry referencecoincidence/offset/angle_constraintConstraint wrong or errorredesign needed in phase 3
K7Ambiguous names were resolved silentlymeasure_distanceMeasurement on the wrong element possibleresolved: error on ambiguity (25 Sep 2026)
K1Image size is not appliedscreenshotImage at window sizemessage honest (25 Sep 2026); size still window size
R1Volume/area come from CATIA in m³/m² but were read as mm³/mm²get_inertia, batch_summary, effect checkMasses too small by 10⁹; every Pad rejected as “without effect”corrected (review 25 Sep 2026), confirmation in CATIA pending
R2–R7Calls that do not exist in CATIA or are wrong (bounding box, arc, hole diameter, thread, chamfer, part in assembly)bounding_box, sketch_arc, hole, chamfer, add_new_partTool fails or silently does something elsecorrected, or honestly “not supported” (25 Sep 2026)
K16Measurements called GetWorkbench on the wrong objectget_inertia, get_bounding_box, measure_distanceIn CATIA every measurement would have failedcorrected (25 Sep 2026), confirmation in CATIA pending
K14Failed features remain in the treePart Design toolsDefective feature disrupts further stepsclean-up via catia_undo_last (25 Sep 2026)
K15“symmetric”: total length or length per side?padBlock twice as long possibleopen; Copilot re-measures
V1Errors are reported as normal textall (without v2)Assistant may overlook errorsresolved with CATIA_MCP_RESULT_FORMAT=v2
S1Saving overwrites originalssave/close_documentData loss possibleresolved with Safe Mode

Operational limits

9. Outlook: what the extensions make possible

The CATIA V5 Automation interface is far more extensive than today’s 86 tools. In principle, what a VBA macro can do, an MCP tool can do as well. On top of this comes the optional native extension (CAA) for the few cases that Automation does not cover. The following overview shows realistic extension stages – ordered by benefit for vehicle development. Each function is built only when a concrete use case and a test model are available, and depends on your CATIA licences.

AreaWhat becomes possibleExample from vehicle developmentPrerequisite / effort
Measurements you can trustCentre of gravity and mass in the correct units (implemented), inertia via Part.Analyze, bounding box via extremum elements in an auxiliary set; automatic effect check after every feature (“Pocket without effect” as an error)Weight and centre-of-gravity balance of an add-on part without re-measuringReading and effect check implemented (v2); test with CATIA required
Reference-based modellingSketches on any planes and faces, axis systems, points on surfaces, offset planes in Part DesignBracket directly on the body-in-white mounting face; mounting points in vehicle coordinatesAvailable in Automation; medium effort
Knowledgeware: parameters, formulas, rulesCreate parameters and formulas, set relations, rules and checks (Knowledge Advisor), design tables from ExcelBracket family from an Excel table; rule “hole edge distance ≥ 1.5 × d” as a check in the modelAvailable in Automation; Knowledge licences for rules/checks
Exact edge and face selectionList edges/faces with a description (position, type, length), targeted filleting, chamfering, shelling, draftsFillet all outer edges of a casting R3; draft 1.5° on side faces in the demoulding directionPartly in Automation, robust solution possibly with CAA; high effort
Materials and weight balanceAssign material from the catalogue, density from the material, mass and centre of gravity per part and assemblyWeight list of a module (front end, seat structure) with centre-of-gravity position in the vehicle systemAvailable in Automation; your company’s material catalogue
Product structure and BOMRead/write part number, revision, nomenclature, user-defined properties; generate a bill of materials; reconcile against a PLM exportConsistency check assembly ↔ BOM before a milestone; add missing attributesReading implemented (properties, BOM, 25 Sep 2026); writing and PLM reconciliation open
Assembling correctlyConstraints with real geometry references (axis-to-axis, face-to-face), read/set positions exactlyPlace add-on parts at defined fixing points; take over a position table from the concept layoutAvailable in Automation; medium effort
DMU: clash, distance, sectionsClash and distance analyses between parts, sections, clearance reports with target/actualClearance wheel arch ↔ wheel/snow chain; minimum distance fuel line ↔ exhaust system; package conflicts in the engine compartmentAvailable in Automation; DMU Space Analysis licence
Drawing generationCreate a drawing from a part, standard views, fill the title block from properties, PDFPrototype drawings for simple parts; title-block maintenance across many sheetsAvailable in Automation; dimensioning can only be automated to a limited extent
Batch processingMany files in sequence: profiles, exports, guideline checks, mass lists, renamingAll 120 parts of a module as STEP for the supplier; name check of all parts before a data freezeProfile/mass and export implemented (25 Sep 2026); batch guideline check open
Standard parts and cataloguesInsert screws, nuts, clips from catalogues to match the hole patternM6 bolted joint at all Ø 6.6 holes of a bracketAutomation limited; your company’s catalogue structure
Sheet metalWalls, bends, flat pattern (Generative Sheetmetal Design)Sheet-metal bracket with bend radii and flat pattern for prototype buildAutomation limited; to be checked
Vehicle-specific specialist toolsCombined tools with plan → preview → working copy → check → applyGenerate a hole-pattern variant and check it against edge distance/clash; clearance check against defined references with the rule version in the reportPhase 5; requires the stages above
CAA extension (native)Only for proven gaps: exact topology, detailed update diagnostics, performance with large modelsReliable edge detection for fillet rules on complex castingsPhase 4; CAA SDK/RADE licence, Dassault development environment

Ideas with particularly high value for design engineers

Concept assistant for add-on parts

From a list of fixing points (vehicle coordinates), the weight of the add-on part and the available package space, the assistant proposes two to three bracket concepts, models them as working copies, measures mass and clearance and compares them in a table. The dimensioning remains with you and the simulation team.

Clearance and distance report

For an assembly and a list of pairs with minimum distances (e.g. from a requirements specification), the assistant measures all distances, flags violations and generates a report with measured values, object paths, units and rule version.

Data-release pre-check

Before every milestone, check all parts of a module: naming convention, mandatory attributes, material set, update without errors, no broken constraints, mass plausible compared with the previous state. Result as a list for rework.

Variant management via tables

Generate and maintain part families (brackets, flanges, spacers) from an Excel table: set parameters, save variants as separate files, write mass and main dimensions back into the table.

10. Roadmap

PhaseContentStatus
0Adoption of the original project, licence and provenance notices, private repositorydone
1Inventory of the 78 tools, offline tests, Safe Mode, CIdone (offline)
GateFirst test with a CATIA licence (runbook), confirmation of the findingswaiting for licence
2Structured results, correct measurements, effect check, correction of the constraint constants – slice “open → sketch → Pad → measure → save”largely implemented offline, live acceptance pending
3New functions as needed: references, edges/faces, assembly constraints, parameters/formulas – based on 2–3 real workflowsplanned
4CAA gap analysis and, if appropriate, a native prototypeplanned
5Vehicle-specific specialist tools and rulesplanned

The contribution that helps most: name two to three concrete, recurring workflows from your day-to-day work – with an anonymised example model and what has to come out at the end. The next tools will be derived from these.

11. Glossary

Automation (COM)Programming interface of CATIA V5 for macros (VBA, CATScript) and external programs such as this server.
CAAComponent Application Architecture – Dassault Systèmes’ native C++ development platform for CATIA extensions; requires its own SDK and licence.
FeatureDesign element in the specification tree (Pad, Pocket, fillet …).
Geometrical SetFolder for wireframe and surface geometry (HybridBody) in the CATPart.
GSDGenerative Shape Design – workbench for wireframe and surface design.
AI assistant / LLMLanguage model (large language model) that understands and plans instructions and calls tools; does not compute any CAD geometry itself.
MCPModel Context Protocol – open standard for connecting tools to AI assistants.
ReferenceCATIA-internal pointer to an element (plane, face, edge) that features need as input.
Safe ModeThis project’s protection switch: writing only to working copies, no overwriting, no sensitive data in the log.
Topology / BRepThe actual faces, edges and vertices of a body; they change with every update and have no persistent names.
UpdateRecalculation of the model after a change.
v2 resultStructured response from a tool with success/error code and recommended action.

12. Frequently asked questions

Does the assistant replace CATIA skills?

No. It speeds up routine work and helps with understanding. To check results and write good instructions, you still need solid CATIA and design skills.

Can the assistant damage my original data?

Without Safe Mode: yes, by saving. With Safe Mode and a working folder: saving and exporting are only possible to working copies. Even so, never work with released states.

Why should I re-measure when the assistant reports “successful”?

Because “successful” today only means that CATIA accepted the command. Only a measurement shows whether the feature produces the desired geometry. This check will be automated in phase 2.

What data does the AI service see?

Everything contained in the tool responses: names, paths, parameters, dimensions, volumes. No CATPart files and no images. Clarify use with real project data with your IT and data protection teams beforehand.

Does this work with my CATIA version?

The server uses the standard Automation of CATIA V5. Which releases work will be determined in the first test with a licence and recorded in a compatibility list.

Do I need administrator rights?

No. Python, the server and the Copilot configuration are set up in your own user profile. It can only fail because of company settings: the Copilot policy “MCP servers in Copilot” (for Business/Enterprise), programs blocked in the user profile (AppLocker) or a missing COM registration of CATIA. Details in docs/ANLEITUNG_COPILOT.md.

Does this also work with Microsoft 365 Copilot or Copilot in Windows?

No. These variants cannot start local MCP servers on your machine. You need GitHub Copilot in agent mode in VS Code or Visual Studio.

Can I request my own tools?

Yes – that is exactly how the extensions come about. Describe the workflow, the expected result and a test model (see Roadmap).