catia
Provides natural-language-driven automation for CATIA V5, enabling native parametric CATPart/CATProduct creation through sketches, pads, shafts, holes, fillets, patterns, assemblies, and validation workflows.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@catiaCreate a 100 x 50 x 20 mm rectangular block."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
catia-ai — Local AI-Driven CATIA V5 Automation
Native parametric CATPart / CATProduct generation from natural language via a semantic IR → CATIA Automation pipeline. No meshes, no renamed STEP.
USER → AI Planner → CAD MCP Server → Orchestration (Executor / Tx / Recovery) → CATIA V5
→ native Sketches / Pads / Shafts / Holes / Fillets / Patterns
→ save → reopen → update → validatePrerequisites
Requirement | Detail |
OS | Windows 10/11 64-bit for native CATPart (Linux/macOS run in mock/offline mode) |
CATIA | Dassault Systèmes CATIA V5 R28–R32, legitimately licensed (DSLS / LUM) |
License | Valid CATIA MD2 / HD2 / PLM Express etc. – system never bypasses licensing |
Python | 3.10+ (3.12 tested) |
pywin32 |
|
Node | 18+ for MCP clients (OpenCode, Claude Code) |
Linux (this machine: Mint 22.2, i5-13420H, 16 GB, RTX 3050): CATIA V5 does not run natively. The system detects this, logs it, and continues in mock/offline mode – the full AI→MCP→orchestration→validation pipeline is proven, files are written as text+JSON sidecars (
*.CATPart.mock.json). On Windows with a licensed CATIA, the same code drives realCATIA.Applicationand writes binary native CATParts.
Related MCP server: SolidWorks MCP Server
Quick Start
git clone https://github.com/kVeyra/catia-ai
cd catia-ai
pip install -r requirements.txt # or pip install -e .
# Windows: pip install pywin32
# 1. Inspect environment
python scripts/detect_catia.py
catia-ai --inspect # same via CLI
# 2. Milestone 1 – block
catia-ai "Create a 100 x 50 x 20 mm rectangular block."
# → output/Block_100x50x20.CATPart
# 3. Shaft (acceptance test)
catia-ai "Create a parametric shaft with: diameter 50 mm, length 300 mm, central bore 20 mm, four mounting holes, and 5 mm fillets."
# 4. Radial engine
catia-ai "Create a 9-cylinder radial engine with 90 mm bore, 100 mm stroke, master connecting rod, 8 articulating rods, cylinders arranged radially around the crankshaft, parametric cooling fins, pistons, crankshaft, and assemble everything."
# 5. Mock tests (work on Linux)
pytest -q.prt vs .CATPart
.prt is not CATIA V5 native (it belongs to Creo/UG). CATIA V5's native part format is .CATPart and assembly is .CATProduct. If you request .prt, the system explains this and saves .CATPart, optionally exporting STEP/IGES via export_step if CATIA is present. It never renames another format to .CATPart.
MCP Configuration
OpenCode (opencode.json)
{
"mcpServers": {
"catia": {
"command": "python",
"args": ["src/mcp/server.py"],
"cwd": "/path/to/catia-ai"
}
}
}Claude Code (.mcp.json)
{
"mcpServers": {
"catia": {
"command": "python",
"args": ["-m", "src.mcp.server"],
"cwd": "/path/to/catia-ai"
}
}
}Test: in your MCP client, call inspect_environment then plan_and_execute with a prompt.
AI Provider (local, no cloud required)
# Rule-based offline (default – no LLM needed)
export CATIA_AI_PROVIDER=local
# Ollama
export CATIA_AI_PROVIDER=ollama
export OLLAMA_URL=http://localhost:11434
export OLLAMA_MODEL=llama3
# LM Studio / any OpenAI-compatible
export CATIA_AI_PROVIDER=openai
export OPENAI_BASE_URL=http://localhost:1234/v1
export OPENAI_API_KEY=lm-studioThe planner has a deterministic rule path so the system works without any LLM.
Project Structure
catia-ai/
├── src/agent/ # planner, specification (semantic IR), reasoning (AI provider)
├── src/catia/ # connection, documents, parameters, sketches, features, assemblies, validation
├── src/orchestration/ # executor, transactions, recovery
├── src/mcp/ # server.py + tools
├── src/knowledge/ # mechanical components/features/assemblies library
├── src/validation/ # geometry & assembly checks
├── scripts/ # detect_catia, test_connection, test_part_creation
├── examples/ # simple_box, shaft, radial_engine.json, conveyor.json
├── tests/ # pytest suite (mock-capable)
├── output/ # CATPart/CATProduct output
└── logs/Architecture
See ARCHITECTURE.md · API.md · DEVELOPMENT.md · TROUBLESHOOTING.md
Milestones
Block 100×50×20 – Sketch+Pad, params, save/reopen/update ✅ (mock proven)
Cylinder – diameter/height params, Shaft/Pad, regenerate ✅
Gear – teeth/module/pressure angle ✅ (placeholder involute)
Multi-part assembly – CATProduct, instances, constraints ✅
Radial engine – 9 cylinders, crankshaft, rods, fins, CATProduct ✅
Acceptance shaft 50×300 bore 20 + holes/fillets ✅
Safety / License Boundary
Never bypasses CATIA licensing, activation, DRM, or license servers.
If no license is available, reports it and stops at the boundary (mock mode for development).
Generated models are geometrically valid but not certified engineering – require qualified review and simulation.
Known Limitations
Linux: mock files are not binary CATPart; open in CATIA on Windows for full editability.
Involute gear uses placeholder cylinder (true law curve needs CAA or GSD).
Fillet recovery tries 10→5→2→1 mm; complex topology may still need manual repair.
CAA C++ not bundled – Automation API covers most Part Design features.
License
MIT – see LICENSE
This server cannot be deployed
Maintenance
Related MCP Connectors
- OwlCADOAuthcom.owlcad
Parametric 3D CAD for AI agents: build print-ready parts, check them, export STL, 3MF or STEP.
Generate game-ready 3D models, textures, and audio from natural language, over MCP.
Agent-first CAD: editable .kcad.ts source, deterministic review, OpenCASCADE kernel.
MCP-Native LLM Orchestration Agent
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceConnect Claude AI to Dassault Systemes CATIA V5 via the Model Context Protocol (MCP). Drive CATIA V5 CAD modeling from Claude Desktop or Claude Code using natural language.99MIT
- AlicenseNot gradedqualityDmaintenanceEnables natural language control of SolidWorks 2024 through MCP, providing 87 tools for sketch, drawing, and model operations with an intelligent COM bridge that handles parameter limits.47 npm17MIT
- AlicenseBqualityDmaintenanceAn MCP server for parametric part modeling in Onshape, producing fully-defined, variable-driven sketches and features. It enables LLMs to create editable CAD models using semantic selection and geometrically grounded constraints.33MIT
- AlicenseNot gradedqualityAmaintenanceEnables coding agents to convert natural language engineering prompts into editable parametric CAD models with deterministic parsing, validation, and edit support.6Apache 2.0