FreeCAD MCP
by knespii
README.md
# FreeCAD MCP
MCP server, přes který Claude ovládá běžící FreeCAD (testováno na FreeCAD 1.1.4 flatpak).
```
Claude ──stdio──> server/freecad_mcp.py ──XML-RPC 127.0.0.1:9875──> FreeCAD + addon MCPBridge
```
## Nástroje
| Nástroj | Co dělá |
|---|---|
| `ping` | ověří spojení, verzi FreeCADu |
| `list_documents`, `create_document`, `open_document`, `save_document`, `close_document` | práce s dokumenty |
| `list_objects`, `get_object` | objekty s rozměry, objemem, platností; všechny vlastnosti |
| `create_object`, `edit_object`, `delete_object` | `Part::Box`, `Part::Cylinder`, `Part::Cut`… s vlastnostmi, umístěním a barvou |
| `execute_code` | libovolný Python uvnitř FreeCADu (Sketcher, PartDesign, zaoblení…) |
| `recompute` | přepočet a seznam chybných objektů |
| `export_objects` | STEP / IGES / BREP / STL / OBJ / 3MF podle přípony |
| `get_view` | screenshot 3D pohledu (jen s GUI) |
## Instalace
1. **Stažení a Python prostředí**:
```bash
git clone https://github.com/knespii/freecad-mcp.git && cd freecad-mcp
python3 -m venv .venv && .venv/bin/pip install -r requirements.txt
```
2. **Addon do FreeCADu** – nalinkovat `addon/MCPBridge` do složky modulů FreeCADu:
```bash
ln -sfn "$PWD/addon/MCPBridge" ~/.var/app/org.freecad.FreeCAD/data/FreeCAD/v1-1/Mod/MCPBridge
```
Bez flatpaku je složka modulů `~/.local/share/FreeCAD/v1-1/Mod/` (Linux),
případně ji zjistíš v Python konzoli FreeCADu: `FreeCAD.getUserAppDataDir()`.
Po startu FreeCADu se v Report view objeví `MCP bridge listening on 127.0.0.1:9875`.
Bez instalace addonu jde bridge spustit ručně z Python konzole FreeCADu:
```python
import sys; sys.path.insert(0, "/cesta/k/freecad-mcp/addon/MCPBridge")
import mcp_bridge; mcp_bridge.start()
```
3. **Registrace v Claude Code**:
```bash
claude mcp add --scope user freecad -- "$PWD/.venv/bin/python" "$PWD/server/freecad_mcp.py"
```
## Bezpečnost
Bridge poslouchá jen na `127.0.0.1`, ale `execute_code` spustí jakýkoli Python
s právy FreeCADu – každý lokální proces se k němu může připojit. Automatický
start vypneš proměnnou `FREECAD_MCP_AUTOSTART=0`, port změníš `FREECAD_MCP_PORT`
(nastav stejně pro FreeCAD i MCP server).
## Poznámky
- Jednotky: mm a stupně.
- FreeCAD běží jako flatpak, takže jeho `/tmp` je oddělený – exportuj do domovské složky.
- **Rozbité vykreslování ve flatpaku** (3D pohled jako šum, zdeformované
screenshoty z `get_view`) – na noteboocích s NVIDIA + Wayland pomůže vykreslovat přes Mesa:
```bash
flatpak override --user --env=__GLX_VENDOR_LIBRARY_NAME=mesa org.freecad.FreeCAD
```
- Headless test bez GUI:
`flatpak run --command=FreeCADCmd org.freecad.FreeCAD -c "import sys; sys.path.insert(0,'addon/MCPBridge'); import mcp_bridge; mcp_bridge.serve_forever()"`
## Licence
MIT
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues