dcc-mcp-freecad
Production FreeCAD adapter for typed, durable parametric modeling and CAD exchange through DCC-MCP.
Capabilities
- Detect FreeCADCmd and report the actual FreeCAD/Python runtime.
- Create, inspect, recompute, validate, copy, and dependency-safely edit FCStd documents.
- Add and update boxes, cylinders, spheres, cones, and tori with typed dimensions and placements.
- Create parametric union, cut, and intersection features.
- Import or export STEP, IGES, BREP, STL, and OBJ geometry.
- Return object links, placements, shape/mesh topology counts, volume, area, bounding boxes, file size, and SHA-256 provenance.
No arbitrary Python, macros, module paths, or FreeCAD command-line flags are accepted. The adapter invokes only its packaged method-dispatch driver.
Requirements
- Python 3.7+
dcc-mcp-core0.19.91+- FreeCAD 1.0 or newer with
FreeCADCmd/freecadcmd
Install
python -m pip install dcc-mcp-freecad
dcc-mcp-freecad
For development:
python -m pip install -e ".[dev]"
python -m pytest
Configuration
| Variable | Purpose | Default |
|---|---|---|
DCC_MCP_FREECAD_EXECUTABLE |
Exact FreeCADCmd executable or install directory | PATH and standard locations |
DCC_MCP_FREECAD_ALLOWED_ROOTS |
os.pathsep-separated document/import/export roots |
server working directory |
DCC_MCP_FREECAD_MAX_DOCUMENT_BYTES |
Maximum FCStd input size | 2 GiB |
DCC_MCP_FREECAD_MAX_TIMEOUT_SECS |
Maximum per-call deadline | 1800 seconds |
DCC_MCP_FREECAD_PORT |
Fixed adapter port when direct addressing is required | OS-assigned |
The service is a standalone DCC-MCP instance with no GUI PID. Every operation launches a clean FreeCADCmd process in safe mode with a temporary user config.
Agent workflow
dcc-mcp-cli list
dcc-mcp-cli search --query "FreeCAD create boolean export STEP"
dcc-mcp-cli load-skill freecad-session --dcc-type freecad --instance-id <instance-short>
dcc-mcp-cli load-skill freecad-modeling --dcc-type freecad --instance-id <instance-short>
Typical sequence: create_document → add_primitive → transform_object →
boolean_operation → validate_document → export_geometry.
Safety contract
- Requested documents and geometry stay under configured allowed roots.
- Existing outputs require explicit
overwrite=true. - FCStd mutations happen on sibling staging copies and replace the original only after a successful, non-empty save.
- Failed mutations leave the original document byte-for-byte unchanged.
- Object names, dimensional fields, placements, formats, tessellation, result size, process output, and deadlines are bounded.
- Cancellation and timeouts terminate the owned FreeCADCmd process.
- Cascade removal is explicit and reports every removed dependent.
FreeCAD Python API reference: https://www.freecad.org/api/
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dcc_mcp_freecad-0.1.0.tar.gz.
File metadata
- Download URL: dcc_mcp_freecad-0.1.0.tar.gz
- Upload date:
- Size: 913.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
56abf4dea76b478f8df42bccbc2fc113117f265e4769ea769316aae0d02d65fc
|
|
| MD5 |
6944445f32a6513d2ad72d4dcbc4d7b0
|
|
| BLAKE2b-256 |
38152ee383c684a573979252bdef7090f4387079d0cc3d9276394d1169de8837
|
Provenance
The following attestation bundles were made for dcc_mcp_freecad-0.1.0.tar.gz:
Publisher:
release.yml on dcc-mcp/dcc-mcp-freecad
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dcc_mcp_freecad-0.1.0.tar.gz -
Subject digest:
56abf4dea76b478f8df42bccbc2fc113117f265e4769ea769316aae0d02d65fc - Sigstore transparency entry: 2411929785
- Sigstore integration time:
-
Permalink:
dcc-mcp/dcc-mcp-freecad@8575aa4dd08ceb72cf75160473e59c58cb6b71b2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/dcc-mcp
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8575aa4dd08ceb72cf75160473e59c58cb6b71b2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file dcc_mcp_freecad-0.1.0-py3-none-any.whl.
File metadata
- Download URL: dcc_mcp_freecad-0.1.0-py3-none-any.whl
- Upload date:
- Size: 24.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a97f596b0086122cb6fd09b5f9b778d83432d0bd28df16ea87da327a360baafb
|
|
| MD5 |
1b2019fdd28ac328d8a4ad073e6086ea
|
|
| BLAKE2b-256 |
dba448eefa08a232bc2add16ae10a2400adaee6df9478d6ccf8111df234330f1
|
Provenance
The following attestation bundles were made for dcc_mcp_freecad-0.1.0-py3-none-any.whl:
Publisher:
release.yml on dcc-mcp/dcc-mcp-freecad
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dcc_mcp_freecad-0.1.0-py3-none-any.whl -
Subject digest:
a97f596b0086122cb6fd09b5f9b778d83432d0bd28df16ea87da327a360baafb - Sigstore transparency entry: 2411929993
- Sigstore integration time:
-
Permalink:
dcc-mcp/dcc-mcp-freecad@8575aa4dd08ceb72cf75160473e59c58cb6b71b2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/dcc-mcp
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8575aa4dd08ceb72cf75160473e59c58cb6b71b2 -
Trigger Event:
push
-
Statement type: