FreeCAD MCP
Provides a comprehensive API to automate FreeCAD for CAD modeling, file conversion, BIM, fluid simulation, structural analysis, 3D printing slicing, marketplace search, and LLM-assisted design.
Integrates with Ollama to provide a local LLM for natural language assistance in CAD design and agentic workflows.
Integrates with Printables to enable searching and importing 3D printable models into the FreeCAD workspace.
Integrates with Thingiverse to enable searching and importing 3D printable models into the FreeCAD workspace.
Click on "Install 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., "@FreeCAD MCPConvert this STEP file and slice it for my 3D printer"
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.
FreeCAD MCP
Two ways to use this
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 | 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 with pages for converting files, browsing models, configuring fluid simulations, chatting with an LLM about CAD, viewing logs, and changing settings. | Point-and-click workflow. Upload a file, click Convert, download the STL. Fill in a form, click Run, see simulation results. |
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.
Related MCP server: FreeCAD MCP
Scripting & automation
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.
What can I do with this?
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 |
Fluid simulation | Model pipes, channels, and nozzles. Run airflow or water-flow simulations through OpenFOAM (the same tool Formula 1 teams use). Or run GPU-accelerated simulations with FluidX3D — uses your graphics card instead of the CPU. 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 |
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) |
Ports | 10944 = MCP server (AI agents), 10945 = web dashboard (humans), 10946 = FreeCAD bridge (internal) |
Start |
|
Documentation Index
Guide | Content |
Prerequisites, FreeCAD setup, PrusaSlicer, | |
TCP bridge, subprocess fallback, port layout, file pipeline | |
All 46 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 | |
qcad DXF → freecad OpenFOAM/FluidX3D → resonite/godot/robotics handoff | |
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 | |
Solver reference, turbulence model guide, GPU acceleration options (FluidX3D on RTX 4090 and Apple Silicon), Mac vs PC comparison | |
Ollama chat, agentic CAD reasoning, sampling workflows | |
History, community, Python scripting, 300+ workbenches, vs SolidWorks/Fusion | |
Searching and importing models from Printables, Thingiverse, GrabCAD | |
Dashboard frontend: pages, viewer, proxy, development |
Quick Start
just bootstrap # uv sync + npm install
start.ps1 # kills zombies, starts backend + frontend, opens browserMCP Client Config
{
"mcpServers": {
"freecad": {
"url": "http://localhost:10944/sse",
"transport": "sse"
}
}
}Quality
Python: Ruff linter + formatter (zero-config, sub-millisecond)
Frontend: Biome linter + formatter
Task runner:
just—just lint,just fix,just dev,just tauri-buildNative desktop: Tauri 2.0 + PyInstaller sidecar —
just tauri-build(ports 10944/10945)AI protocol: FastMCP 3.2 with SSE transport
See also — other construction & design tools in the fleet
Repo | What it does |
2D technical drafting — floor plans, schematics, blueprints | |
3D modeling, animation, rendering, sculpting | |
Game engine, real-time 3D, physics, VR/AR | |
Vector graphics — logos, illustrations, SVGs | |
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.
CFD fleet moat
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)License
MIT — see LICENSE.
This server cannot be installed
Maintenance
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sandraschi/freecad-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server