FreeCAD 3D CAD automation via FastMCP — headless document/export plus FluidX3D/OpenFOAM CFD extensions. For Cursor / Claude Desktop. Webapp.
Translation pending
Developer toolsPython · TypeScriptGitHub @sandraschiSelf-installOwner unconfirmed
Paste into Claude or ChatGPT for installation instructions suited to your environment.
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Installable projects can be verified without a deployment domain. Use GitHub sign-in for a personal repository, or the repository verification file above for an organization repository.
Ask about other verification options
Loading the full README. The saved excerpt is shown below.
This project exposes FreeCAD as a server that two different kinds of users talk to:
Both talk to the same FreeCAD backend. An AI agent can prepare a simulation case, and you can inspect the results in the web dashboard — or vice versa.
Everything the AI agents and the web dashboard call goes through the same REST API at http://localhost:10944/api/v1/. You can script against it directly from Python, curl, or any HTTP client:
powershell
just bootstrap # uv sync + npm install
start.ps1 # kills zombies, starts backend + frontend, opens browser
json
{
"mcpServers": {
"freecad": {Read the full README ↗Questions, improv ideas, "what if it also did X"? → Discussions — Q&A for support, Ideas for anything you'd improve but wouldn't file a whole Issue for. Bugs still go to Issues.
Download freecad-mcp-0.6.2-setup.exe - the full desktop app (webapp + embedded backend) in one installer.
This project exposes FreeCAD as a server that two different kinds of users talk to:
| Who | How | What for | |
|---|---|---|---|
| MCP server (port 10944) | AI agents — Claude Desktop, Cursor, Continue, any MCP client | Your AI assistant calls tools like step_to_stl() or cfd_run_solver() directly. You type "convert this STEP file and slice it for my printer" and it does the whole chain. | Hands-free CAD work. Agentic loops: the AI iterates design → simulate → analyze → refine without you touching the GUI. |
| Web dashboard (port 10945) | Humans — you, in a browser | A dark-mode React app: Guided Demo (cube → car → depot CRUD), Parts Studio, Depot, Convert, Models, Marketplace, BIM/CFD/FluidX3D workspaces, Chat, Logs and Settings. | Point-and-click workflow. Open /demo to see the whole chain work, or upload a STEP file and click Convert. |
Both talk to the same FreeCAD backend. An AI agent can prepare a simulation case, and you can inspect the results in the web dashboard — or vice versa.
Everything the AI agents and the web dashboard call goes through the same REST API at http://localhost:10944/api/v1/. You can script against it directly from Python, curl, or any HTTP client:
import requests
# Ask the AI assistant to convert a file — same API the webapp uses
r = requests.post("http://localhost:10944/api/v1/control/tool", json={
"tool": "step_to_stl",
"arguments": {"file_name": "bracket.step", "output_name": "bracket.stl"}
})
print(r.json()) # {"success": True, "output": "bracket.stl", ...}
# Or run a parametric study across 10 different geometries
for length in [0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 7.5, 10.0]:
requests.post("http://localhost:10944/api/v1/control/tool", json={
"tool": "cfd_create_domain",
"arguments": {"domain_type": "channel", "length_m": length, "case_name": f"study_{length}m"}
})
This is how you build headless pipelines: generate 100 geometry variants in a loop, run simulations on each, collect results, train a surrogate model. No GUI needed — FreeCAD runs in the background as a geometry engine.
FreeCAD is a free professional CAD modeler (like SolidWorks but open-source). Through the API, you can:
| Category | What you can do |
|---|---|
| Mechanical parts | Convert STEP files to 3D-printable STL meshes. Create boxes, cylinders, spheres, cones by describing them. Inspect part volumes and bounding boxes. All managed through the persistent CAD file depot with full CRUD. |
| Architecture & construction | Create walls, floor slabs, columns (rectangular or steel H-sections), windows, doors, and sloped roofs — all in millimeters. Export to .ifc files that architects and structural engineers can open. Import .ifc files from other design tools. This is called BIM (Building Information Modeling) — 3D building design where every element knows what it is (a wall, a door, a load-bearing column), not just a shape. FreeCAD's Arch workbench handles this. QCAD is a 2D drafting tool — different domain. |
| Fluid simulation | Two CFD solvers, each with a different job: OpenFOAM (CPU, Docker) — complex geometry, full turbulence models (kEpsilon, kOmegaSST, LES), multiphase, heat transfer, 30-year industry standard. Use when you need fidelity or have complex geometry. FluidX3D (GPU, OpenCL) — Cartesian grids only, fast iteration, millisecond-per-timestep throughput on any GPU (NVIDIA, AMD, Intel, Apple). Use when you have a GPU and the geometry is simple enough to fit a uniform grid. Also: describe a flow problem in plain English and let an LLM write the solver config. |
| Structural analysis (FEM) | Run finite element analysis with CalculiX: stress, strain, displacement, safety factor. 10 material presets (steel, aluminum, titanium, carbon fiber...), automatic meshing via Gmsh, and an end-to-end run_fem_analysis convenience tool. Same tool Formula 1 teams use for chassis and wing analysis. |
| 3D printing | Slice STL files into G-code for your printer. Configurable profiles for different printers, filaments, and layer heights. |
| Model marketplace | Search Printables, Thingiverse, and GrabCAD for ready-made parts. Import them directly into your workspace. |
| Machine learning | Export point clouds from fluid domains to train neural networks that replace slow physics simulations. Generate datasets by running parameter sweeps automatically. |
| Example use cases | "What's inside this STEP file?" — "Convert this assembly to 3D-printable STL" — "Design a room with two windows and a door" — "Simulate water flow through this pipe at 2 m/s" — "Find me a gear on Printables and slice it for my MK4" — "Train a neural network to predict airflow instead of running the full simulation every time" — "Browse my persistent CAD depot, create a test bracket, rename and tag it" |
| What it connects to | FreeCAD 1.1.1+ (the CAD engine), OpenFOAM 10 via Docker (fluid simulation), FluidX3D via OpenCL (GPU-accelerated simulation), PrusaSlicer 2.8+ (3D printing), Ollama (local LLM), Printables / Thingiverse / GrabCAD (model search). ParaView (optional, for professional CFD viz): winget install Kitware.ParaView |
| Ports | 10944 = MCP server (AI agents), 10945 = web dashboard (humans), 11968 = FreeCAD bridge (internal), 11249 = installed app's own backend (side-by-side with dev) |
| Start | just bootstrap then start.ps1 |
| Guide | Content |
|---|---|
| Installation | Prerequisites, FreeCAD setup, PrusaSlicer, just bootstrap |
| Onboarding | First run: install FreeCAD, verify the bridge, make a first model |
| Development | Layout, gates, adding a tool, packaging |
| Tools | Tool map by domain |
| Troubleshooting | Symptom-first fixes |
| Architecture | TCP bridge, subprocess fallback, port layout, file pipeline |
| MCP Tools | All 60 tools with examples: geometry conversion, architecture (walls/floors/roofs/IFC), structural FEM (CalculiX stress/strain), fluid simulation (OpenFOAM + FluidX3D), 3D printing, marketplace search, LLM assistance, and CAD file depot with persistent storage + full CRUD |
| Fleet CFD pipeline | qcad DXF → freecad OpenFOAM/FluidX3D → resonite/godot/robotics handoff |
just bootstrap # install Python + webapp dependencies
start.ps1 # kills zombies, starts backend + frontend, opens browser
# First stop: http://localhost:10945/demo
# Build a cube, build a toy car, then rename/delete both in the depot.
powershell -ExecutionPolicy Bypass -c "irm https://github.com/sandraschi/freecad-mcp/releases/latest/download/install.ps1 | iex"
The installer drops freecad-mcp.mcpb and registers it with Claude Desktop.
Each release also carries the bundle itself:
freecad-mcp.mcpb.
{
"mcpServers": {
"freecad": {
"command": "uv",
"args": ["run", "--directory", "D:/Dev/repos/freecad-mcp", "python", "-m", "freecad_mcp.server", "--mode", "stdio"],
"env": { "PYTHONPATH": "D:/Dev/repos/freecad-mcp/src" }
}
}
}
{
"mcpServers": {
"freecad": {
"url": "http://localhost:10944/sse",
"transport": "sse"
}
}
}
just — just lint, just fix, just dev, just tauri-build
just tauri-build (ports 10944/10945, Gate F/G/H/J fixed, NSIS 28.8 MB)| Repo | What it does |
|---|---|
| QCad MCP | 2D technical drafting — floor plans, schematics, blueprints |
| Blender MCP | 3D modeling, animation, rendering, sculpting |
| Unity3D MCP | Game engine, real-time 3D, physics, VR/AR |
| Inkscape MCP | Vector graphics — logos, illustrations, SVGs |
| GIMP MCP | Raster image editing — photos, textures, pixel art |
Each follows the same pattern: MCP server for AI agents + web dashboard for humans, sharing a common API.
Only fleet repo with OpenFOAM + GPU FluidX3D + NL2FOAM + PINN sampling + VTK/OBJ export for downstream Resonite/Godot/robotics handoff. Competitive analysis: mcp-central-docs/projects/CAD_FLEET_COMPETITIVE.md. Pipeline: docs/fleet-pipeline.md.
just fleet-e2e-offline # CI-safe config chain smoke
just fleet-e2e-integration # GPU FluidX3D setup->compile->run (local)
just fleet-e2e-chain # qcad extrude -> freecad setup (HTTP)
MIT — see LICENSE.
| Fluid simulation guide | Full walkthrough: creating domains, configuring physics, setting boundary conditions, running solvers, reading results, parametric sweeps, natural language config, and exporting data for neural network training |
| Flow visualization & render guide | What FluidX3D produces (VTK, OBJ, WebM, PNG, CSV). How to turn it into video, game engine assets, or VR visuals. Glossary of terms (VTK, OBJ, streamlines, LBM, MLUPS, heatmaps). Integration with Unity3D, Godot, Blender, Resonite. |
| OpenFOAM & GPU solvers | Solver reference, turbulence model guide, GPU acceleration options (FluidX3D on RTX 4090 and Apple Silicon), Mac vs PC comparison |
| AI Tooling | Ollama chat, agentic CAD reasoning, sampling workflows |
| About FreeCAD | History, community, Python scripting, 300+ workbenches, vs SolidWorks/Fusion |
| Marketplace | Searching and importing models from Printables, Thingiverse, GrabCAD |
| Webapp README | Dashboard frontend: pages, viewer, proxy, development |