Files
cadquery/README.md
T
nova bae8071e69 Update config, docs and add box model
- server.py: Output-Verzeichnis default auf models/ relativ zu server.py
- README.md: Claude Code statt Desktop, models/-Ordner, korrekte settings.json
- models/box.py: Offene Box 30x30x20mm, alle Maße als Variablen

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-13 15:29:23 +01:00

330 lines
7.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# CadQuery MCP Server
Ein MCP-Server (Model Context Protocol), der Claude ermöglicht, parametrische
3D-Modelle direkt über CadQuery-Python-Code zu erstellen und als STL-Dateien zu exportieren.
Zusätzlich ist CQ-editor als GUI-Vorschau-Tool integriert.
---
## Inhaltsverzeichnis
1. [Voraussetzungen](#1-voraussetzungen)
2. [Installation](#2-installation)
3. [Claude Code einbinden](#3-claude-code-einbinden)
4. [CQ-editor starten](#4-cq-editor-starten)
5. [Verwendung in Claude](#5-verwendung-in-claude)
6. [Projektstruktur](#6-projektstruktur)
7. [Fehlerbehebung](#7-fehlerbehebung)
---
## 1. Voraussetzungen
| Anforderung | Version | Hinweis |
|---|---|---|
| Windows 10/11 | 64-Bit | Getestet auf Windows 11 |
| Python | ≥ 3.10 | [python.org](https://www.python.org/downloads/) – „Add to PATH" aktivieren |
| Claude Code | aktuell | CLI-Tool von Anthropic |
| Git | optional | Für Versionsverwaltung |
> **Hinweis:** Python 3.13 wird vollständig unterstützt (CadQuery 2.7.0 liefert fertige Wheels).
---
## 2. Installation
### 2.1 Projektverzeichnis anlegen
```powershell
mkdir C:\Users\<Benutzername>\Documents\Claude\cadquery
cd C:\Users\<Benutzername>\Documents\Claude\cadquery
```
### 2.2 Python Virtual Environment erstellen
```powershell
python -m venv .venv
```
Das erzeugt einen isolierten Python-Interpreter unter `.venv\`.
### 2.3 CadQuery, MCP-Server und CQ-editor installieren
```powershell
.venv\Scripts\pip install cadquery mcp[cli] cq-editor
```
Installierte Pakete (Auswahl):
| Paket | Version | Zweck |
|---|---|---|
| `cadquery` | 2.7.0 | Parametrisches CAD in Python (OpenCASCADE) |
| `cadquery-ocp` | 7.8.1 | OpenCASCADE Python-Bindings |
| `mcp` | 1.26.0 | Model Context Protocol SDK (FastMCP) |
| `cq-editor` | 0.6.2 | GUI-Editor mit Live-Vorschau (PyQt5) |
> **Downloadgröße:** ca. 150 MB (cadquery-ocp ~52 MB, PyQt5-Qt5 ~50 MB, casadi ~51 MB)
> Bei Verbindungsunterbrechung einfach erneut ausführen – pip setzt den Download fort.
### 2.4 Installation prüfen
```powershell
.venv\Scripts\python -c "import cadquery as cq; print('cadquery', cq.__version__)"
# Ausgabe: cadquery 2.7.0
.venv\Scripts\python -c "import cq_editor; print('cq-editor OK')"
# Ausgabe: cq-editor OK
```
### 2.5 Output-Verzeichnis anlegen
```powershell
mkdir models
```
STL-Dateien und Vorschauen werden in `cadquery\models\` gespeichert.
---
## 3. Claude Code einbinden
**Claude Code** (CLI) nutzt `settings.json` — **nicht** `claude_desktop_config.json`.
### 3.1 Konfigurationsdatei
```
C:\Users\<Benutzername>\.claude\settings.json
```
### 3.2 CadQuery-Server eintragen
Den folgenden Block in `"mcpServers"` einfügen:
```json
{
"mcpServers": {
"cadquery": {
"type": "stdio",
"command": "C:/Users/<Benutzername>/Documents/Claude/cadquery/.venv/Scripts/python.exe",
"args": ["C:/Users/<Benutzername>/Documents/Claude/cadquery/server.py"],
"env": {
"CADQUERY_OUTPUT_DIR": "C:/Users/<Benutzername>/Documents/Claude/cadquery/models"
}
}
}
}
```
> **Wichtig:** `<Benutzername>` durch den tatsächlichen Windows-Benutzernamen ersetzen.
> Pfade in `settings.json` werden mit Forward-Slashes (`/`) geschrieben.
### 3.3 Claude Code neu starten
Nach Änderungen an `settings.json` muss Claude Code **vollständig** neu gestartet werden
(nicht nur eine neue Konversation öffnen — die App selbst beenden und neu starten).
Die MCP-Tools erscheinen dann automatisch in der Werkzeugliste.
---
## 4. CQ-editor starten
CQ-editor ist ein Qt-basierter GUI-Editor mit Live-3D-Vorschau.
### Starten über die Kommandozeile
```powershell
# Direkt über die installierte Executable:
.venv\Scripts\cq-editor.exe
# Alternativ über Python:
.venv\Scripts\python -m cq_editor
```
### Workflow mit CQ-editor
1. CQ-editor starten
2. Datei aus `models\` öffnen (z.B. `box.py`)
3. **F5** drücken → Live-Vorschau rechts aktualisiert sich
4. Datei → Export → STL zum Speichern
---
## 5. Verwendung in Claude
### 5.1 Verfügbare MCP-Tools
Nach dem Neustart von Claude Code stehen drei Tools zur Verfügung:
#### `mcp__cadquery__render_stl`
Führt CadQuery-Python-Code aus und exportiert eine STL-Datei nach `models\`.
```
Parameter:
code : str – CadQuery-Python-Code
filename : str – Ausgabedateiname (Standard: "model.stl")
```
#### `mcp__cadquery__preview_png`
Exportiert eine SVG-Vorschau des Modells nach `models\`.
```
Parameter:
code : str – CadQuery-Python-Code
filename : str – Ausgabedateiname (Standard: "preview.png")
```
#### `mcp__cadquery__list_models`
Listet alle STL-Dateien in `models\` auf.
### 5.2 Code-Konventionen
Der MCP-Server erkennt das CadQuery-Ergebnis auf zwei Wegen:
**Option A — `show_object()` aufrufen (empfohlen, CQ-editor-kompatibel):**
```python
import cadquery as cq
result = cq.Workplane("XY").box(20, 20, 10)
show_object(result)
```
**Option B — Variable `result` verwenden:**
```python
import cadquery as cq
result = cq.Workplane("XY").box(20, 20, 10)
# "result" wird automatisch erkannt
```
### 5.3 Beispiele
**Offene Box mit parametrischen Maßen (siehe `models/box.py`):**
```python
import cadquery as cq
# Maße
breite = 30 # mm (X)
tiefe = 30 # mm (Y)
hoehe = 20 # mm (Z)
wandstaerke = 2 # mm
result = (
cq.Workplane("XY")
.box(breite, tiefe, hoehe)
.faces(">Z")
.shell(-wandstaerke)
)
show_object(result)
```
**Zylinder mit Bohrung:**
```python
import cadquery as cq
result = (
cq.Workplane("XY")
.cylinder(height=30, radius=15)
.faces(">Z")
.hole(10)
)
show_object(result)
```
**Quader mit abgerundeten Kanten:**
```python
import cadquery as cq
breite = 40
tiefe = 20
hoehe = 10
radius = 3
result = (
cq.Workplane("XY")
.box(breite, tiefe, hoehe)
.edges("|Z")
.fillet(radius)
)
show_object(result)
```
### 5.4 Output-Verzeichnis
STL-Dateien und SVG-Vorschauen werden gespeichert in:
```
cadquery\models\
```
Der Pfad wird über `CADQUERY_OUTPUT_DIR` in `settings.json` gesetzt.
Fallback (wenn nicht gesetzt): `cadquery\models\` relativ zu `server.py`.
---
## 6. Projektstruktur
```
cadquery/
├── .venv/ # Python Virtual Environment (nicht ins Git)
├── models/ # Generierte STL- und SVG-Dateien + Python-Modelle
│ └── box.py # Beispiel: offene Box mit parametrischen Maßen
├── server.py # MCP-Server (FastMCP)
└── README.md # Diese Datei
```
### server.py – Übersicht
```
_run_cadquery(code) Führt CadQuery-Code aus, fängt show_object() ab
render_stl(code, fn) Tool: exportiert STL über cadquery.exporters
preview_png(code, fn) Tool: exportiert SVG-Vorschau
list_models() Tool: listet STL-Dateien in OUTPUT_DIR
```
---
## 7. Fehlerbehebung
### „Kein CadQuery-Objekt gefunden"
Der Server konnte kein Ergebnis aus dem Code extrahieren.
**Lösung:** Am Ende des Codes explizit `show_object(result)` aufrufen oder das Ergebnis
in eine Variable namens `result` speichern.
### STL-Datei wird nicht erstellt
- Output-Verzeichnis prüfen: `cadquery\models\` muss existieren
- Schreibrechte auf das Verzeichnis prüfen
### Claude Code zeigt keine MCP-Tools
1. `settings.json` auf korrekte Pfade und JSON-Syntax prüfen
2. Claude Code **vollständig** beenden (nicht nur Konversation schließen)
3. Claude Code neu starten
4. MCP-Server-Log prüfen: `%APPDATA%\Claude\logs\mcp-server-cadquery.log`
### Download bricht ab (cadquery-ocp / PyQt5-Qt5)
Beide Pakete sind ca. 50 MB groß. Bei Abbruch einfach wiederholen:
```powershell
.venv\Scripts\pip install cadquery mcp[cli] cq-editor --retries 5
```
### CQ-editor startet nicht
```powershell
# Fehlerausgabe anzeigen:
.venv\Scripts\python -m cq_editor
```
Häufige Ursache: Fehlende Qt-Laufzeitbibliotheken → Visual C++ Redistributable
installieren: [aka.ms/vs/17/release/vc_redist.x64.exe](https://aka.ms/vs/17/release/vc_redist.x64.exe)
---
## Lizenz
MIT License — freie Nutzung, Modifikation und Weitergabe erlaubt.