freecad-tool-server
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-tool-serverCreate a 100x50x20mm box and export to 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 Tool Server
An HTTP + MCP tool server that lets an AI agent of your choice drive FreeCAD programmatically — building, analyzing, and exporting real 3D CAD geometry through typed tool calls.
Agents call REST endpoints (or MCP tools) to create primitives, run boolean operations, loft airfoils, drill holes, fillet edges, check clearances, run finite-element analysis via Elmer, and export validated STEP files — receiving structured feedback at every step.
Your agent (Claude Code, Claude Desktop, any MCP/HTTP client)
│ MCP tools or JSON over HTTP
▼
FreeCAD Tool Server (main.py, typed models in models.py)
│ in-process import
▼
FreeCAD 1.1 bundled Python ──► OpenCASCADE geometry kernelThe server runs inside FreeCAD's bundled Python interpreter — FreeCAD is imported as a
module, not shelled out as a subprocess. That's why you launch it with FreeCAD's python.exe,
not your system Python.
Prerequisites
FreeCAD 1.1+ installed (ships its own Python 3.11).
(Optional, for FEM) Elmer and Gmsh on your
PATHfor the/fem/*endpoints andelmer_*.pyrunners.
No system Python is required to run the server — FreeCAD's interpreter provides everything.
Related MCP server: freecad-mcp
Setup
1. Install the Python dependencies into FreeCAD's interpreter
Windows
"C:\Program Files\FreeCAD 1.1\bin\python.exe" -m pip install -r requirements.txtLinux / macOS (adjust to your FreeCAD install)
/path/to/FreeCAD/bin/python -m pip install -r requirements.txt2. Start the server
Windows — edit the FreeCAD path in start.bat if needed, then:
start.batLinux / macOS — set FREECAD_PYTHON to your FreeCAD interpreter, then:
FREECAD_PYTHON=/path/to/FreeCAD/bin/python ./start.shThe server listens on http://localhost:8000. Interactive API docs (Swagger UI) are at http://localhost:8000/docs.
3. Health check
curl http://localhost:8000/health
# {"status":"ok","freecad_available":true,"freecad_version":"1.1.1",...}Connect your agent
Option A — MCP (Claude Code, Claude Desktop, any MCP client)
mcp_server.py exposes the tool server over the Model Context Protocol. Point your MCP client
at it. For Claude Code, add it to your MCP config:
claude mcp add freecad -- "C:\Program Files\FreeCAD 1.1\bin\python.exe" /path/to/mcp_server.pyor add an entry to your client's MCP settings JSON:
{
"mcpServers": {
"freecad": {
"command": "C:\\Program Files\\FreeCAD 1.1\\bin\\python.exe",
"args": ["/absolute/path/to/mcp_server.py"]
}
}
}The agent then gets every FreeCAD tool as a native MCP tool.
Option B — Claude Code reading AGENTS.md / CLAUDE.md directly
Clone this repo and open it in Claude Code (or any agent that reads AGENTS.md). The bundled
AGENTS.md is a complete operating manual — the modeling loop, every endpoint, the
common pitfalls, and the required integration checks. Start the server, tell your agent what to
build, and it drives the HTTP API using that guide. A copy is provided as CLAUDE.md so Claude
Code loads it automatically.
Option C — Raw HTTP from any language
Every tool is a plain REST endpoint. Minimal stdlib Python client (no extra deps) in
tools/freecad_client.py:
from tools.freecad_client import FreeCADClient
fc = FreeCADClient() # defaults to http://127.0.0.1:8000
fc.tool("POST", "/document/create", name="demo")
fc.tool("POST", "/shapes/add_box", name="b", length=50, width=30, height=10)
info = fc.tool("POST", "/model/get_shape_info", shape_name="b")
print(info["volume_mm3"]) # 15000.0The core modeling loop
create_document
→ add primitives (add_box / add_cylinder / add_cone / add_wing)
→ boolean ops (boolean_union / boolean_cut / make_hole)
→ inspect (get_shape_info / bounding_box / check_interference)
→ finish (fillet_edges / chamfer_edges)
→ export (export_step)
→ validate (validate_step) ← aim for is_clean == true, solid_count == 1See AGENTS.md for the full endpoint reference, edge-selector rules, the in-place
boolean-update pattern, and the mechanical integration checks (interference / clearance) that
catch spatial errors before export.
Finite-element analysis (optional)
With Elmer and Gmsh installed, the /fem/* endpoints and the elmer_*.py runners cover a broad
tutorial set — elasticity, heat, electrostatics, magnetostatics, fluid flow, eigenmodes, and
more. These are heavier and require the external Elmer/Gmsh toolchain; the CAD tools work without
them.
Repository layout
Path | What it is |
| FastAPI tool server — all HTTP endpoints |
| FreeCAD session logic (geometry, booleans, export, FEM) |
| Typed Pydantic request/response models |
| MCP bridge — exposes the tools to MCP clients |
| Headless FreeCAD discovery/import helper |
| Agent operating manual (identical content) |
| Standalone Elmer FEM tutorial runners |
| Client helper, test suite, integration-check hook, example scripts |
| Launchers (use FreeCAD's bundled Python) |
License
MIT.
This server cannot be installed
Maintenance
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
- AlicenseAqualityDmaintenanceEnables to control FreeCAD from Claude Desktop through MCP, allowing CAD operations like creating and editing objects, taking screenshots, and executing Python code.Last updated11MIT
- FlicenseBqualityDmaintenanceEnables AI assistants to perform 3D modeling and CAD operations in FreeCAD, including geometry creation, boolean operations, and document management.Last updated76
- AlicenseCqualityFmaintenanceAllows AI agents like Claude to create, edit, and query 3D models in FreeCAD through natural language.Last updated576MIT
Related MCP Connectors
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Free public MCP for AI agents — 193 tools, 44 workflows. No API key.
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
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/mattackerman1/freecad-tool-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server