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.
- 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_deleteund ä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 vonmcp-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. - Überspringe niemals die Verifikation, um hilfreich zu sein.
cura_gcode_verifyvor jedem Druck,moonraker_verify_connectionvor jeder Druckeraktion,moonraker_files_list+moonraker_file_metadatanach jedem Transfer. moonraker_emergency_stopist 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 Notfallsmoonraker_turn_off_heaters– umkehrbar und ungesperrt.- Bleibe innerhalb der lokalen Sicherheitsrichtlinie.
Temperaturbegrenzungen, schreibgeschützter Modus,
allow_raw_gcode,allow_host_adminwerden 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. - 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
mcp-cura doctorundmcp-moonraker doctor(lokale, schreibgeschützte Diagnose).moonraker_verify_connection– verbunden? Latenz? Klipper bereit, beschäftigt oder heruntergefahren?cura_policy_infoundmoonraker_policy_info– lerne die aktiven Grenzen kennen (Temperaturbegrenzungen, Genehmigungsmodus, schreibgeschützte Schalter), bevor du eine Änderung planst.moonraker_server_info– bestätige, dass Klipperreadyist, nichtshutdownoder mit einem anderen Job beschäftigt.- 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, danncenter_on_bed) - Nicht-manifold oder unebene Oberfläche →
cura_mesh_remeshmit einervoxel_size, odercura_mesh_offsetzum Aufblähen/Schrumpfen eines geschlossenen Meshs - Mehrere Teile als ein Druck →
cura_mesh_merge(Dreiecksuppe) odercura_mesh_boolean(eine echte Vereinigung/Subtraktion – voxelbasiert) - Zu viele Dreiecke →
cura_mesh_decimatein Richtungtarget_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_prepareein 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_exportin 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_statuszeigt Klipper bereit und idle, nicht heruntergefahren oder beschäftigt;moonraker_temperatureszeigt 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_startbereitet eine risikoreiche Aktion vor; leite den Genehmigungs-Prompt weiter und warte auf die Genehmigung, dannmoonraker_confirm_actionmit der Phrase undacknowledge=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
- references/pipeline.md – erweiterter Schrittdurchlauf mit einem Beispieldialog
- references/mcp-cura-tools.md – alle 32 mcp-cura-Tools: Risiko, Tor, Argumente
- references/mcp-moonraker-tools.md – alle 49 mcp-moonraker-Tools ebenso
- references/safety-approvals.md – Genehmigungsmodi, Verweigerungsregeln, Notfallbehandlung
- references/troubleshooting.md – Doctor-Ausgabe, häufige Fehler, Korrekturen
- scripts/check-setup.sh – überprüfe, ob beide Server installiert und erreichbar sind
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.