FreeCAD MCP Connector

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.

Category
访问服务器

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.

Aufbau eines Tischgestells, Bauteil für Bauteil

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 uv bei 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_document speichern, 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

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选