Initial commit: OpenSCAD MCP server for Claude Code
MCP server that lets Claude generate and render OpenSCAD models to STL files. Includes setup documentation and installation guide. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
# OpenSCAD MCP Server
|
||||
|
||||
LLM-gestützte 3D-Modell-Erstellung für den 3D-Drucker via Claude Code.
|
||||
|
||||
## Setup
|
||||
|
||||
### 1. OpenSCAD installieren
|
||||
https://openscad.org/downloads.html → Windows-Installer
|
||||
|
||||
### 2. Python-Abhängigkeiten
|
||||
```bash
|
||||
pip install mcp
|
||||
```
|
||||
|
||||
### 3. MCP-Server in Claude Code registrieren
|
||||
|
||||
In Claude Code: **Settings → MCP Servers → Add** (oder direkt in `~/.claude/claude_desktop_config.json`):
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"openscad": {
|
||||
"command": "python",
|
||||
"args": ["C:/Users/thors/Documents/Claude/openscad-mcp/server.py"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Umgebungsvariablen (optional)
|
||||
| Variable | Standard | Beschreibung |
|
||||
|----------|----------|--------------|
|
||||
| `OPENSCAD_PATH` | `C:\Program Files\OpenSCAD\openscad.exe` | Pfad zur OpenSCAD-Executable |
|
||||
| `OPENSCAD_OUTPUT_DIR` | `~/3d-models` | Ausgabeverzeichnis für STL-Dateien |
|
||||
|
||||
## Verfügbare Tools
|
||||
|
||||
| Tool | Beschreibung |
|
||||
|------|--------------|
|
||||
| `render_stl(code, filename)` | OpenSCAD-Code → STL-Datei |
|
||||
| `preview_png(code, filename)` | OpenSCAD-Code → PNG-Vorschau |
|
||||
| `list_models()` | Alle STL-Dateien auflisten |
|
||||
|
||||
## Beispiel-Prompt für Claude
|
||||
|
||||
```
|
||||
Erstelle einen Wandhalter für einen 32mm Rohrdurchmesser,
|
||||
Wandstärke 3mm, mit 2 Schraubenlöchern (M4), Gesamtbreite 60mm.
|
||||
Rendere es als "rohrhalter.stl".
|
||||
```
|
||||
|
||||
## OpenSCAD Tipps für LLMs
|
||||
|
||||
Claude generiert typisch solchen Code:
|
||||
```openscad
|
||||
difference() {
|
||||
union() {
|
||||
cylinder(h=20, d=40);
|
||||
translate([0,0,10]) cube([60,10,20], center=true);
|
||||
}
|
||||
cylinder(h=22, d=32, center=true); // Loch für Rohr
|
||||
// Schraubenlöcher
|
||||
translate([20,0,0]) cylinder(h=22, d=4.5, center=true);
|
||||
translate([-20,0,0]) cylinder(h=22, d=4.5, center=true);
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user