FreeCAD MCP Connector
Connects Claude Desktop to a running FreeCAD instance, enabling document management, part creation and editing, direct Python execution, parts library insertion, FEM analysis, and 3D view screenshots.
README
FreeCAD MCP Connector for Claude Desktop
Ein installierbarer Connector (.mcpb), der Claude mit einer laufenden FreeCAD-Instanz verbindet. Kein Bearbeiten von claude_desktop_config.json — Datei ins Erweiterungs-Fenster ziehen, fertig.
Claude kann damit Dokumente anlegen, Bauteile erzeugen und ändern, Python-Code direkt in FreeCAD ausführen, Teile aus der Parts Library einfügen, FEM-Analysen starten und sich die 3D-Ansicht als Screenshot ansehen.

Wie es funktioniert
Claude Desktop ──stdio──► Connector (MCP-Server) ──XML-RPC :9875──► FreeCAD + Addon
Der Connector allein reicht nicht: FreeCAD braucht das Addon FreeCADMCP, das den RPC-Server im laufenden FreeCAD bereitstellt. Beide Teile werden unten eingerichtet.
Voraussetzungen
- FreeCAD 1.0 oder 1.1
- Claude Desktop in einer Version, die
.mcpb-Erweiterungen unterstützt - Python ≥ 3.12 (holt sich
uvbei Bedarf selbst)
Installation
1. FreeCAD-Addon installieren
macOS und Linux:
./install-freecad-addon.sh
Das Skript erkennt das FreeCAD-Benutzerverzeichnis, kopiert das Addon dorthin und schaltet auf Wunsch den automatischen Start des RPC-Servers ein.
Von Hand geht es auch — Addon aus neka-nat/freecad-mcp (addon/FreeCADMCP) kopieren nach:
| System | Zielverzeichnis |
|---|---|
| macOS (FreeCAD 1.1) | ~/Library/Application Support/FreeCAD/v1-1/Mod/ |
| Windows | %APPDATA%\FreeCAD\Mod\ |
| Linux (1.1) | ~/.local/share/FreeCAD/v1-1/Mod/ |
| Linux (älter) | ~/.FreeCAD/Mod/ |
Danach FreeCAD neu starten. Ein bereits laufendes FreeCAD lädt das Addon nicht nach.
2. RPC-Server in FreeCAD starten
Workbench MCP Addon wählen, dann in der Toolbar Start RPC Server. Über Toggle Auto Start startet der Server künftig automatisch beim Programmstart.
Prüfen, ob er lauscht:
lsof -nP -iTCP:9875 -sTCP:LISTEN # macOS/Linux
3. Connector in Claude Desktop installieren
freecad-mcp-connector.mcpb aus den Releases laden und in Claude Desktop unter Einstellungen → Erweiterungen ins Fenster ziehen.
Einstellungen
Beide Optionen sind nach der Installation im Erweiterungs-Dialog einstellbar.
| Einstellung | Standard | Bedeutung |
|---|---|---|
| FreeCAD-Host | localhost |
Adresse des Rechners mit FreeCAD. Für FreeCAD auf einem anderen Rechner dort zusätzlich Remote Connections aktivieren und die eigene IP freigeben. |
| Nur Text-Feedback | aus | Unterdrückt Screenshots der 3D-Ansicht. Spart deutlich Tokens, nimmt Claude aber die visuelle Kontrolle über das Ergebnis. |
Arbeitsregeln und Vorlagen
Der Connector überträgt beim Handshake MCP-Instructions und registriert zusätzliche Prompts auf der Serverinstanz.
Instructions gelten ohne Auswahl für jede Aufgabe der Sitzung:
- Referenz auswerten, bevor Geometrie entsteht — Außenmaße allein determinieren keine Form
- Koordinatensystem definieren und Bauteilliste mit Positionen ausgeben, vor dem ersten Objekt
- Dokument direkt nach
create_documentspeichern, danach nach jedem Bauteil - Ein Bauteil pro Tool-Aufruf statt einem Sammelskript
- Keine nicht belegten Bauteile ergänzen (Streben, Sockel, Verrundungen)
Prompts erscheinen in Claude Desktop als Vorlagen:
| Vorlage | Zweck |
|---|---|
cad_bauauftrag |
Macht aus einer groben Idee einen präzisen Bauauftrag. Felder: Objekt, Referenz-URL, Maße, Besonderheiten. |
modell_pruefen |
Vergleicht das gebaute Modell mit der Vorlage und listet Abweichungen mit Ist- und Soll-Maß, ohne etwas zu ändern. |
Werkzeuge
| Werkzeug | Zweck |
|---|---|
create_document, list_documents, reload_document |
Dokumente verwalten |
create_object, edit_object, delete_object |
Objekte erzeugen und ändern (Part, PartDesign, Draft, Sketch, FEM) |
get_objects, get_object |
Objekte samt Eigenschaften auslesen |
execute_code, execute_code_async |
Python direkt in FreeCAD ausführen |
get_view |
Screenshot der 3D-Ansicht |
get_parts_list, insert_part_from_library |
Parts Library durchsuchen und einfügen |
run_fem_analysis |
FEM-Analyse rechnen lassen |
Selbst bauen
npm install -g @anthropic-ai/mcpb
mcpb validate manifest.json
mcpb pack . freecad-mcp-connector.mcpb
Fehlersuche
Connection refused bei jedem Tool-Aufruf
Auf Port 9875 lauscht kein Socket. Diagnose in dieser Reihenfolge:
pgrep -fl "Applications/FreeCAD.app" # Prozess vorhanden
lsof -nP -iTCP:9875 -sTCP:LISTEN # Port im LISTEN-Zustand
python3 -c "import xmlrpc.client;print(xmlrpc.client.ServerProxy('http://localhost:9875').ping())"
Connection refused ist eine TCP-Absage (ECONNREFUSED), kein Timeout. Ein blockierter oder im Hintergrund liegender Prozess erzeugt sie nicht — der Listener existiert dann schlicht nicht.
Die Fensterposition ist ohne Einfluss: Der XML-RPC-Server läuft in einem eigenen Thread und übergibt Aufgaben per Qt-Signal an den GUI-Thread. Einzige Ausnahme ist die Maustasten-Sperre in gui_dispatch.py — bei gedrückter Maustaste pausiert die Abarbeitung, damit MCP-Aufrufe eine laufende 3D-Navigation nicht unterbrechen.
Unter macOS beendet sich FreeCAD beim Schließen des Hauptfensters vollständig. Ein zuvor funktionierender Connector, der plötzlich ECONNREFUSED liefert, hat meist keinen Prozess mehr als Gegenstelle.
Workbench fehlt in der Auswahlliste
InitGui.py wird ausschließlich beim Programmstart ausgewertet. Ein laufendes FreeCAD lädt ein neu kopiertes Addon nicht nach.
Registrierung prüfen — die Workbench heißt intern FreeCADMCPAddonWorkbench und erscheint im Menü unter ihrem MenuText „MCP Addon":
import FreeCADGui
[w for w in FreeCADGui.listWorkbenches() if "MCP" in w]
Antwortet der RPC-Server, ist die Workbench zwangsläufig registriert — Autostart und Gui.addWorkbench() stehen in derselben InitGui.py.
Unter macOS zusätzlich den Pfad des laufenden Prozesses prüfen. Eine aus AppTranslocation gestartete Kopie liefert ein abweichendes FreeCAD.getUserAppDataDir() und findet Mod/FreeCADMCP nicht.
Ausführungskontext von execute_code
Das Tool führt Python im FreeCAD-Prozess aus: keine Sandbox, keine Rechtetrennung, voller Zugriff mit der UID des angemeldeten Benutzers. Dateisystem, Netzwerk und Subprozesse sind erreichbar.
Der RPC-Server bindet standardmäßig auf 127.0.0.1. Remote-Zugriff erfordert remote_enabled im Addon plus eine IP-Whitelist in freecad_mcp_settings.json.
Lizenz und Herkunft
MIT — siehe LICENSE, Details in NOTICE.
Die 14 Werkzeuge stammen aus dem Paket freecad-mcp von neka-nat (MIT), ebenso das FreeCAD-Addon. Dieses Projekt ergänzt die Schichten darum herum und lässt den Server selbst unverändert:
freecad-mcp allein |
mit diesem Connector | |
|---|---|---|
| Installation | claude_desktop_config.json von Hand um einen mcpServers-Eintrag ergänzen, Pfad zu uvx selbst richtig setzen |
.mcpb ins Erweiterungs-Fenster ziehen |
| Host / Text-Feedback | als CLI-Argumente im JSON hinterlegt, Änderung = Datei editieren und neu starten | Felder im Erweiterungs-Dialog |
| Versionsstand | löst bei jedem Start die neueste passende Version auf | über mitgeliefertes uv.lock festgenagelt, auf jedem Rechner identisch |
| Arbeitsregeln | keine | MCP-Instructions, gelten in jeder Sitzung ohne Zutun |
| Vorlagen | eine (asset_creation_strategy) |
zusätzlich cad_bauauftrag und modell_pruefen |
| FreeCAD-Addon | Repo klonen, Zielverzeichnis der eigenen FreeCAD-Version selbst ermitteln, kopieren | install-freecad-addon.sh ermittelt es und richtet auf Wunsch den Autostart ein |
Der praktische Unterschied liegt in den Instructions. Ohne sie beantwortet das Modell „Tisch, 180 × 80 × 90" mit vier Quadern und einer Platte, weil drei Außenmaße keine Form determinieren. Mit ihnen wertet es zuerst die Referenz aus, legt ein Koordinatensystem fest, zeigt eine Bauteilliste zur Kontrolle und baut erst danach — Bauteil für Bauteil, mit Speichern nach jedem Schritt.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。