CommunityCodierung & Entwicklunggithub.com

3d-auto-fabrik

Orchestriert die MCP-Server mcp-cura und mcp-moonraker, sodass ein Agent ein 3D-Modell von einer Mesh-Datei bis zu einem überwachten Klipper/Moonraker-Druck führen kann: Mesh-Inspektion und -Reparatur, CuraEngine-Profilauflösung und Slicing, G-Code-Sicherheitsprüfung, Transfer zum Drucker, Druckstart, Live-Überwachung, Pause/Fortsetzen/Abbruch und Job-Warteschlangen-Management – stets hinter den Risiko- und Genehmigungsportalen der Server.

Was ist 3d-auto-fabrik?

Dieses Skill orchestriert die beiden MCP-Server **mcp-cura** (Mesh → Slice → G-Code) und **mcp-moonraker** (Druckerstatus → Druck) und fungiert als verbindende „Klebstelle“, die einen vollständigen, genehmigungsgesteuerten 3D-Druck-Workflow ermöglicht. Ein Agent kann damit ein 3D-Modell importieren, inspizieren, reparieren, ein Cura-Druckprofil auflösen, slicen, den G-Code auf Sicherheit prüfen und auf den Drucker übertragen – alles ohne die Druckerhardware direkt zu berühren. Die Stärke liegt in der strikten Trennung der Zuständigkeiten: mcp-cura interagiert nie mit dem Drucker, mcp-moonraker slict nie. Das Skill setzt unverhandelbare Sicherheitsregeln durch, wie z. B. die explizite Benutzerfreigabe für risikoreiche Aktionen (Druckstart, Abbruch) und die obligatorische G-Code-Überprüfung vor jedem Druck. Es unterstützt die Plattformen mcp-cura und mcp-moonraker. Der Workflow ist in acht klar definierte Phasen unterteilt: Planung, Import, Inspektion & Reparatur, Profilauflösung & -prüfung, Slicing, G-Code-Prüfung, Transfer zum Drucker und schließlich der überwachte Druck. Nach jeder Phase wird ein kurzer Bericht erstellt und bei Bedarf auf eine Benutzerfreigabe gewartet. Das Skill ist für alle Situationen gedacht, in denen ein Benutzer Slicing, 3D-Druck, STL/3MF-Slicing, CuraEngine, Klipper oder Moonraker erwähnt – selbst wenn die MCP-Server nicht namentlich genannt werden.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/martinsgmx/agent-skill-3d-auto-fabrik/tree/HEAD/skills/3d-auto-fabrik

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht 3d-auto-fabrik?

Orchestrator für mcp-cura (Mesh → Slice → G-Code) und mcp-moonraker (Druckerstatus → Druck). Die beiden Server kennen sich absichtlich nicht: mcp-cura kontaktiert nie den Drucker und mcp-moonraker slict nie. Dieses Skill ist der Klebstoff. Dateien werden zwischen ihnen nur durch eine explizite, genehmigungsgesteuerte Übergabe bewegt.

Unverhandelbare Regeln – vor dem Berühren der Hardware lesen

Diese Regeln existieren, weil ein 3D-Drucker ein Heizgerät, ein Motor und eine scharfe Düse ist. Die Reibung ist gewollt.

  1. Bestätige niemals eine vorbereitete risikoreiche Aktion im Namen des Benutzers. moonraker_print_start, moonraker_print_cancel, moonraker_run_macro, cura_artifact_export, moonraker_file_delete und ähnliche geben zuerst einen Genehmigungs-Prompt zurück. Deine Aufgabe ist es, diesen Prompt klar und ehrlich zu präsentieren und zu warten. Erst nachdem der Benutzer explizit zugestimmt hat (im Chat oder durch Ausführen von mcp-moonraker approve <id> / mcp-cura approve <id> außerhalb der Bande), darfst du das passende *_confirm_action-Tool aufrufen. Erfinde niemals Genehmigungs-IDs oder Bestätigungsphrasen, verwende sie nicht wieder und paraphrasiere sie nicht.
  2. Überspringe niemals die Verifikation, um hilfreich zu sein. cura_gcode_verify vor jedem Druck, moonraker_verify_connection vor jeder Druckeraktion, moonraker_files_list + moonraker_file_metadata nach jedem Transfer.
  3. moonraker_emergency_stop ist der einzige ungesperrte Hebel. Verwende ihn nur, wenn gerade jetzt etwas physisch schiefgeht (Rauch, Schleifen, Düse zieht über das Teil, Achsen kollidieren). Verwende für „Heizung ausschalten“ außerhalb eines Notfalls moonraker_turn_off_heaters – umkehrbar und ungesperrt.
  4. Bleibe innerhalb der lokalen Sicherheitsrichtlinie. Temperaturbegrenzungen, schreibgeschützter Modus, allow_raw_gcode, allow_host_admin werden vom Benutzer absichtlich gesetzt. Wenn ein Tool sich weigert, gib die Weigerung und ihren Grund weiter. Formuliere den Aufruf nicht um, aktiviere das Flag nicht und suche kein anderes Tool, das dasselbe tut.
  5. Bei Zweifeln anhalten und fragen. Ein pausierter Drucker verbraucht wenig Strom; ein falscher Druck verschwendet Stunden und Filament; ein umgangenes Tor kann ein Haus niederbrennen. Der Benutzer ist immer erreichbar – frage.

Preflight – jede Sitzung, die Hardware berührt

  1. mcp-cura doctor und mcp-moonraker doctor (lokale, schreibgeschützte Diagnose).
  2. moonraker_verify_connection – verbunden? Latenz? Klipper bereit, beschäftigt oder heruntergefahren?
  3. cura_policy_info und moonraker_policy_info – lerne die aktiven Grenzen kennen (Temperaturbegrenzungen, Genehmigungsmodus, schreibgeschützte Schalter), bevor du eine Änderung planst.
  4. moonraker_server_info – bestätige, dass Klipper ready ist, nicht shutdown oder mit einem anderen Job beschäftigt.
  5. Lege den Plan mit dem Benutzer fest: welcher Drucker, welches Material, welche Düse, welche Qualität, welche Datei, wie viele Kopien, wo auf dem Bett. Rate nicht.

Wenn ein Server fehlt oder sich nicht verbinden lässt, sage dies und verweise auf references/troubleshooting.md. Bearbeite keine Konfigs, installiere keine Pakete und führe nichts mit --force aus, ur um eine Prüfung zu bestehen.

Die Pipeline

Arbeite Schritt für Schritt. Berichte kurz nach jedem Schritt und warte auf den Benutzer, wenn ein Tor es erfordert.

Stufe 0 – Planung. Fasse den Job in einem Absatz zusammen (Datei, Drucker, Material, Düse, Profil, Kopien, Platzierung). Hole das Go-ahead ein.

Stufe 1 – Import. cura_artifact_import mit einem absoluten Pfad unter den konfigurierten Import-Wurzelverzeichnissen (~/Downloads, ~/Documents, ~/Desktop, ~/models standardmäßig) – oder mit dem data-Parameter (Base64) für eine Datei außerhalb der Wurzelverzeichnisse. Die Wurzelverzeichnisse beschränken Dateisystempfade; der data-Pfad ist der eigene unterstützte Kanal des Servers für vom Client gelieferte Bytes, kein Workaround, und benötigt keine Richtlinienänderung. Wenn ein Pfadimport verweigert wird, importiere dieselben Bytes erneut über data (Inhaltsadressierung gibt dieselbe Artefakt-ID zurück), anstatt den Job auf „Ich kann nicht helfen“ zu reduzieren. Notiere die zurückgegebene artifact_id – jeder spätere Schritt referenziert sie.

Stufe 2 – Inspektion & Reparatur. cura_mesh_inspect (Abmessungen in mm, Dreiecksanzahl, wasserdicht, Volumen, entartete Dreiecke). Dann nach Bedarf:

  • Ausrichtung / Platzierung / Skalierung → cura_mesh_transform (Skalieren → Drehen → Verschieben, dann center_on_bed)
  • Nicht-manifold oder unebene Oberfläche → cura_mesh_remesh mit einer voxel_size, oder cura_mesh_offset zum Aufblähen/Schrumpfen eines geschlossenen Meshs
  • Mehrere Teile als ein Druck → cura_mesh_merge (Dreiecksuppe) oder cura_mesh_boolean (eine echte Vereinigung/Subtraktion – voxelbasiert)
  • Zu viele Dreiecke → cura_mesh_decimate in Richtung target_triangles

Überprüfe nach jeder Reparatur erneut und zitiere die Zahlen. Mittelriskante Mesh-Operationen sind richtliniengesteuert, benötigen aber keine Genehmigung; zeige dem Benutzer trotzdem, was sich geändert hat.

Stufe 3 – Profil auflösen & prüfen. cura_profile_list, um Definitionen und Qualitätsprofile zu finden, dann cura_profile_resolve (Definition + Qualität + Material + Variante + Absicht). Lies die Warnungen: Cura-Ausdrücke, die nicht ausgewertet werden können, harte Temperaturverstöße. Dann cura_profile_verify – Fehler müssen Null sein, bevor du slixt. Wenn nicht, korrigiere das Profil (oder wähle ein anderes) und erkläre warum. Slicing niemals gegen eine fehlschlagende Prüfung.

Stufe 4 – Slicen. cura_slice(model_artifact_ids=[…], definition, quality, material, variant, intent, overrides?, name, wait=true, wait_timeout_secs). Respektiere max_concurrent_jobs (Standard 2). Frage mit cura_slice_status nach; cura_slice_wait für kurze Jobs; cura_slice_cancel nur für in der Warteschlange/laufende Jobs. Wenn das Slicen fehlschlägt, enthält cura_slice_status das Engine-Log-Ende – zitiere den tatsächlichen Fehler.

Stufe 5 – G-Code-Prüfung. Für das vom Slicen zurückgegebene G-Code-Artefakt:

  • cura_gcode_inspect – geschätzte Zeit, Filament, Schichtanzahl, Z-Bereich, maximale Temperaturen, verdächtige Befehle.
  • cura_gcode_verify – gefährliche Befehle, Temperaturen vs. lokale Richtlinie, fehlendes Heizungs-Shutdown / Stepper-Deaktivierung / Metadaten.
  • Wenn etwas fehlt, erstellt cura_gcode_prepare ein neues Artefakt mit einer sicheren Abschaltsequenz (oder vollständigen Endsequenz). Wenn du es verwendest, trage die neue Artefakt-ID weiter – das Original bleibt unberührt.

Dann zeige dem Benutzer die Zusammenfassung – Zeit, Filament, höchste Temperatur, Prüfergebnis – und hole die explizite Bestätigung vor Stufe 6 ein. Dies ist die letzte günstige Gelegenheit zum Abbruch.

Stufe 6 – Transfer zum Drucker. Das G-Code-Artefakt muss im gcodes- Stammverzeichnis des Druckers existieren. Die MCP-Server legen kein Upload-Tool offen; die unterstützten Pfade sind:

  • cura_artifact_export in ein Export-Stammverzeichnis, das der Drucker lesen kann (ein eingehängtes Share/USB, das der Drucker überwacht), oder
  • der Benutzer kopiert die Datei selbst dorthin (Web-UI, SCP, das Share), oder
  • wenn – und nur wenn – der Benutzer explizit danach fragt, der Moonraker-HTTP-Upload-Endpunkt als klar protokollierte Einzelaktion.

Bevor du den Drucker berührst, bestätige, dass die Datei angekommen ist: moonraker_files_list (Stammverzeichnis gcodes) und moonraker_file_metadata – geschätzte Zeit und Filament sollten mit der Cura-Ausgabe übereinstimmen.

Stufe 7 – Druck. Vor moonraker_print_start:

  • moonraker_printer_status zeigt Klipper bereit und idle, nicht heruntergefahren oder beschäftigt; moonraker_temperatures zeigt vernünftige Umgebungswerte.
  • Bett ist frei, richtige Platte, richtiges Material geladen, Tür geschlossen – frage den Benutzer; du kannst es nicht sehen.
  • Der Benutzer bestätigt den genauen Dateinamen. moonraker_print_start bereitet eine risikoreiche Aktion vor; leite den Genehmigungs-Prompt weiter und warte auf die Genehmigung, dann moonraker_confirm_action mit der Phrase und acknowledge=true.

Während des Drucks: frage moonraker_printer_status und moonraker_temperatures ab; verwende moonraker_camera_snapshot für eine visuelle Überprüfung, wenn etwas seltsam erscheint; moonraker_gcode_history wenn Befehle fehlschlagen. Verwende moonraker_print_pause zum Anhalten des Drucks zur Inspektion → Inspektion → moonraker_print_resume. Verwende moonraker_print_cancel zum Abbrechen (hohes Risiko, doppelte Bestätigung) – nur wenn der Benutzer darum bittet. Anschließend zeichnet moonraker_print_history das Ergebnis auf.

Nach dem Druck. Heizungen sollten aus sein (die Endsequenz erledigt das – überprüfe mit moonraker_temperatures). Erinnere den Benutzer daran, das Bett zu reinigen. Wenn der Benutzer die Artefakte aufgeräumt haben möchte, liste sie auf (cura_artifact_list) und lösche nur mit expliziter Bestätigung – cura_artifact_delete ist hohes Risiko.

Genehmigungen auf einen Blick

Genehmigungsmodi (in_band, out_of_band, both) werden pro Server in [approval] konfiguriert. In jedem Modus = eine vorbereitete Aktion = eine approval_id = eine einmalige Bestätigungsphrase mit kurzer TTL (Standard 120 s). Die gespeicherten Tool- und Argumente aus dem prepare-Aufruf sind diejenigen, die ausgeführt werden; Argumente, die an *_confirm_action übergeben werden, sind dekorativ. *_pending_approvals listet erneut auf, was wartet; moonraker_cancel_approval / mcp-cura deny <id> machen eine Aktion ungültig, bevor sie ausgeführt wird. Vollständiges Protokoll: references/safety-approvals.md.

Kurzreferenz – wo du mehr lesen kannst

Installation und plattformspezifische MCP/Skill-Registrierung leben in der Repository-Dokumentation (docs/platforms.md), nicht in diesem Skill – lade sie, wenn der Benutzer nach der Einrichtung fragt.

Wann dieses Skill nicht verwendet werden soll

CAD/STL-Geometrie von Hand entwerfen oder reparieren (verwende ein Modellierungstool), printer.cfg oder Klipper-Includes bearbeiten (Host-Admin und Config-Schreiben sind standardmäßig deaktiviert – und sollten es auch bleiben), oder irgendetwas, das Host-Neustarts, Firmware-Neustarts oder rohen G-Code beinhaltet, den der Benutzer nicht explizit aktiviert hat. Sage dies und halte an.

Verwandte Skills