FreeCAD MCP Server
Provides 39 modeling tools for creating, editing, and querying 3D models using FreeCAD's Python API, including primitives, boolean operations, transformations, measurements, and exports.
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 MCP ServerCreate a 50x30x20 box and save as STEP"
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 Server
Let AI design 3D models in FreeCAD through natural language.
FreeCAD MCP Server bridges FreeCAD and AI assistants via the Model Context Protocol (MCP). It exposes 39 CAD tools that let AI agents create, modify, query, and export 3D models — all through natural language conversation.
Why?
Traditional CAD requires learning complex software UIs. With FreeCAD MCP, you can:
Design by conversation — describe what you want, AI builds it
Iterate rapidly — tweak dimensions, add features, and compare variants in seconds
Automate repetitive tasks — parameterized modeling without clicking through menus
Integrate into workflows — connect CAD with code review, documentation, and CI/CD
Related MCP server: FreeCAD Robust MCP Server
Demo
Tell your AI assistant:
"Create a 100x60x20mm enclosure base with 2mm wall thickness and a central screen cutout"
The AI will call FreeCAD tools automatically:
new_document → create_box(100, 60, 20) → create_box(96, 56, 18)
→ translate → boolean_cut → export_step("enclosure_base.step")Quick Start
1. Install
git clone https://github.com/your-username/freecad-mcp.git
cd freecad-mcp2. Install MCP dependencies with FreeCAD's Python
# macOS
/Applications/FreeCAD.app/Contents/Resources/bin/python -m pip install -r requirements.txt
# Windows
E:\Freecad\bin\python.exe -m pip install -r requirements.txt
# Linux (adjust path to your FreeCAD installation)
freecadpython -m pip install -r requirements.txtImportant: You must use FreeCAD's bundled Python, not the system Python. FreeCAD's
FreeCAD.so/FreeCAD.pydis a C++ extension that only loads in FreeCAD's Python environment.
3. Configure your MCP client
opencode
Add to ~/.config/opencode/opencode.json:
{
"mcp": {
"freecad-modeling": {
"type": "local",
"command": ["bash", "/path/to/freecad-mcp/run_mcp.sh"],
"enabled": true
}
}
}Claude Desktop / Cline / Cursor
Add to your MCP configuration:
{
"mcpServers": {
"freecad-modeling": {
"command": "bash",
"args": ["/path/to/freecad-mcp/run_mcp.sh"],
"cwd": "/path/to/freecad-mcp"
}
}
}Windows users: Replace bash with the path to run_server.bat.
4. Restart your client
The FreeCAD tools will now be available in your AI conversations.
Available Tools (39)
Document Management
Tool | Description |
| Create a new FreeCAD document |
| Open an existing .FCStd file |
| Save the current document |
| Close a document |
| List all open documents |
| List objects in a document |
| Get active document info |
Primitive Shapes
Tool | Description |
| Create a rectangular box (L×W×H) |
| Create a cylinder |
| Create a sphere |
| Create a cone or frustum |
| Create a torus (donut shape) |
| Create a regular polygon prism |
| Create a hollow cylinder (pipe) |
Boolean Operations
Tool | Description |
| Subtract one shape from another |
| Merge two shapes into one |
| Keep only overlapping volume |
| Group shapes without merging |
Transforms
Tool | Description |
| Move an object by dx/dy/dz |
| Rotate around an arbitrary axis |
| Mirror across XY/XZ/YZ plane |
| Scale uniformly from a center point |
| Set exact position and orientation |
Sketch & Features
Tool | Description |
| Extrude a 2D profile into a solid |
| Revolve a 2D profile into a solid |
| Round edges with a radius |
| Bevel edges at 45° |
Measurement & Inspection
Tool | Description |
| Get type, label, placement, and geometry |
| Measure volume in mm³ |
| Measure surface area in mm² |
| Get axis-aligned bounding box |
| Get center of mass coordinates |
| Verify geometry is valid |
Export
Tool | Description |
| Export to STEP (best for interoperability) |
| Export to STL (for 3D printing) |
| Export to OBJ (for rendering/mesh) |
| Export to BREP (Open CASCADE native) |
| Export to IGES (legacy CAD exchange) |
| Save as FreeCAD native .FCStd |
Example Workflows
Enclosure with mounting holes
"Design a 120×80×25mm electronics enclosure. Base should have 2mm walls, internal ribs for PCB mounting, and four M3 screw posts in the corners. Top should be a flat lid with matching screw holes. Export both as STEP."
Parametric bracket
"Create an L-shaped bracket, 50mm on each leg, 5mm thick, with a 10mm fillet on the inner corner and two M4 through-holes on each leg. Measure the volume and export as STL."
Mechanical part with revolve
"Create a shaft collar by revolving a profile: 15mm outer diameter, 8mm bore, 12mm wide, with a 1mm chamfer on both edges. Export as STEP."
Project Structure
freecad-mcp/
├── main.py # Entry point
├── freecad_mcp/
│ ├── server.py # MCP server + tool registration
│ ├── runner.py # Safe execution wrapper
│ └── tools/
│ ├── document.py # Document management
│ ├── primitives.py # Shape creation
│ ├── boolean.py # Boolean operations
│ ├── transform.py # Transforms
│ ├── sketch.py # Sketch features
│ ├── measure.py # Measurement
│ └── export.py # File export
├── run_mcp.sh # macOS/Linux launcher
├── run_server.bat # Windows launcher
├── requirements.txt # Python dependencies
└── README.mdRequirements
Component | Version |
FreeCAD | 1.1 or later |
Python | FreeCAD's bundled Python (3.11+) |
MCP SDK |
|
Configuration
Custom FreeCAD path
Edit run_mcp.sh (macOS/Linux) or run_server.bat (Windows) to point to your FreeCAD Python installation.
Units
All dimensions are in millimeters (mm). The coordinate system is right-handed with Z-axis pointing up.
Contributing
Contributions are welcome! Here's how to get started:
Fork the repository
Create a feature branch (
git checkout -b feature/my-feature)Make your changes
Run the smoke test:
/Applications/FreeCAD.app/Contents/Resources/bin/python scripts/test_basic.pySubmit a pull request
Ideas for contributions
Add new tools (e.g., pattern arrays, surface operations, assembly)
Improve error handling and validation
Add support for FreeCAD 1.0 (earlier Python versions)
Create example projects / tutorials
Add unit tests
License
Acknowledgments
FreeCAD — The open-source parametric 3D CAD modeler
Model Context Protocol — The protocol for AI-tool integration
MCP Python SDK — Official Python implementation
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to control FreeCAD 3D modeling software, allowing creation and manipulation of 3D objects, execution of Python code, and interaction with FreeCAD's parts library through natural language.Last updated10MIT
- Alicense-qualityDmaintenanceAn MCP server that enables AI assistants to interact with FreeCAD for 3D modeling, macro development, and debugging through 150+ tools supporting multiple connection modes.Last updated167MIT
- FlicenseBqualityDmaintenanceEnables AI assistants to perform 3D modeling and CAD operations in FreeCAD, including geometry creation, boolean operations, and document management.Last updated76
- Alicense-qualityCmaintenanceEnables AI agents to programmatically build, analyze, and export 3D CAD geometry using FreeCAD through REST or MCP tools.Last updated1MIT
Related MCP Connectors
Free public MCP for AI agents — 193 tools, 44 workflows. No API key.
Agent-first CAD: editable .kcad.ts source, deterministic review, OpenCASCADE kernel.
Real-time Amazon, WIPO & PACER data for AI agents — 19 tools via the MCP protocol.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Srdpersonal/freecad-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server