Que fait 3d-auto-fabrik ?
Orchestrateur pour mcp-cura (maillage → tranchage → G-code) et mcp-moonraker (état de l'imprimante → impression). Les deux serveurs ne se connaissent pas délibérément : mcp-cura ne contacte jamais l'imprimante, et mcp-moonraker ne tranche jamais. Ce skill est le lien. Les fichiers transitent entre eux uniquement via un transfert explicite, soumis à approbation.
Règles non-négociables — à lire avant de toucher au matériel
Ces règles existent car une imprimante 3D est un radiateur, un moteur et une buse tranchante. La friction est intentionnelle.
- Ne jamais confirmer une action préparée à haut risque pour le compte de l'utilisateur.
moonraker_print_start,moonraker_print_cancel,moonraker_run_macro,cura_artifact_export,moonraker_file_deleteet autres renvoient d'abord une invite d'approbation. Votre travail consiste à présenter cette invite, clairement et honnêtement, et à attendre. Ce n'est qu'après que l'utilisateur a explicitement approuvé (dans le chat, ou en exécutantmcp-moonraker approve <id>/mcp-cura approve <id>en dehors du canal) que vous pouvez appeler l'outil*_confirm_actioncorrespondant. N'inventez, ne réutilisez et ne paraphrasez jamais d'ID d'approbation ou de phrases de confirmation. - Ne jamais sauter la vérification par souci d'efficacité.
cura_gcode_verifyavant toute impression,moonraker_verify_connectionavant toute action sur l'imprimante,moonraker_files_list+moonraker_file_metadataaprès tout transfert. moonraker_emergency_stopest le seul levier sans passerelle. Utilisez-le uniquement en cas de problème physique immédiat (fumée, grincement, buse traînant sur la pièce, collision d'axes). Pour « arrêter le chauffage » en dehors d'une urgence, utilisezmoonraker_turn_off_heaters— réversible et sans passerelle.- Respectez la politique de sécurité locale. Les limites de température, le mode
lecture seule,
allow_raw_gcode,allow_host_adminsont définis par l'utilisateur à dessein. Si un outil refuse, transmettez le refus et sa raison. Ne reformulez pas l'appel, n'activez pas le drapeau et ne cherchez pas un autre outil qui fait la même chose. - En cas de doute, arrêtez-vous et demandez. Une imprimante en pause gaspille un peu d'électricité ; une impression erronée gaspille des heures et du filament ; une passerelle contournée peut brûler une maison. L'utilisateur est toujours joignable — demandez.
Pré-vol — chaque session qui touche au matériel
mcp-cura doctoretmcp-moonraker doctor(diagnostics locaux, lecture seule).moonraker_verify_connection— connecté ? latence ? Klipper prêt, occupé ou arrêté ?cura_policy_infoetmoonraker_policy_info— apprenez les limites actives (limites de température, mode d'approbation, commutateurs lecture seule) avant de planifier une mutation.moonraker_server_info— confirmez que Klipper estready, pas enshutdownou occupé par un autre travail.- Établissez le plan avec l'utilisateur : quelle imprimante, quel matériau, quelle buse, quelle qualité, quel fichier, combien d'exemplaires, où sur le plateau. Ne devinez pas.
Si un serveur est manquant ou ne se connecte pas, dites-le et dirigez l'utilisateur vers
références/dépannage.md. Ne modifiez pas les configurations,
n'installez pas de paquets et n'utilisez pas --force quoi que ce soit juste pour
valider une vérification.
Le pipeline
Travaillez étape par étape. Faites un bref rapport après chaque étape et faites une pause pour l'utilisateur à chaque fois qu'une passerelle l'exige.
Étape 0 — Planification. Résumez le travail en un paragraphe (fichier, imprimante, matériau, buse, profil, exemplaires, placement). Obtenez le feu vert.
Étape 1 — Importation. cura_artifact_import avec un chemin absolu sous les
racines d'import configurées (~/Downloads, ~/Documents, ~/Desktop,
~/models par défaut) — ou avec le paramètre data en base64 pour un fichier
hors des racines. Les racines confinent les chemins de fichiers ; le chemin data
est le canal propre au serveur pour les octets fournis par le client, pas un contournement,
et ne nécessite aucun changement de politique. Si une importation par chemin est refusée,
réimportez les mêmes octets via data (l'adressage par contenu renvoie le même
artifact_id) au lieu de réduire le travail à « je ne peux pas vous aider ». Enregistrez
l'artifact_id renvoyé — chaque étape ultérieure y fait référence.
Étape 2 — Inspection et réparation. cura_mesh_inspect (limites en mm, nombre de
triangles, étanchéité, volume, triangles dégénérés). Ensuite, selon les besoins :
- orientation / placement / mise à l'échelle →
cura_mesh_transform(échelle → rotation → translation, puiscenter_on_bed) - surface non-manifold ou irrégulière →
cura_mesh_remeshavec unevoxel_size, oucura_mesh_offsetpour gonfler/rétracter un maillage fermé - plusieurs pièces en une seule impression →
cura_mesh_merge(soupe de triangles) oucura_mesh_boolean(une véritable union/soustraction — basée sur voxel) - trop de triangles →
cura_mesh_decimateverstarget_triangles
Inspectez à nouveau après chaque réparation et citez les chiffres. Les opérations de maillage à risque moyen sont soumises à la politique mais ne nécessitent pas d'approbation ; montrez néanmoins à l'utilisateur ce qui a changé.
Étape 3 — Résolution et vérification du profil. cura_profile_list pour trouver
les définitions et les profils de qualité, puis cura_profile_resolve
(définition + qualité + matériau + variante + intention). Lisez les avertissements :
les expressions Cura qu'il ne peut pas évaluer, les violations dures de température.
Ensuite cura_profile_verify — les erreurs doivent être nulles avant de trancher.
Si ce n'est pas le cas, corrigez le profil (ou choisissez-en un autre) et expliquez
pourquoi. Ne trancher jamais contre une vérification échouée.
Étape 4 — Tranchage. cura_slice(model_artifact_ids=[…], definition, quality, material, variant, intent, overrides?, name, wait=true, wait_timeout_secs).
Respectez max_concurrent_jobs (par défaut 2). Interrogez avec cura_slice_status ;
cura_slice_wait pour les travaux courts ; cura_slice_cancel uniquement pour les
travaux en file d'attente/en cours. Si le tranchage échoue, cura_slice_status
contient la fin du journal du moteur — citez l'erreur réelle.
Étape 5 — Révision du G-code. Sur l'artefact G-code renvoyé par le tranchage :
cura_gcode_inspect— temps estimé, filament, nombre de couches, plage Z, températures max, commandes suspectes.cura_gcode_verify— commandes dangereuses, températures vs. politique locale, arrêt de chauffage manquant / désactivation des moteurs / métadonnées.- Si quelque chose manque,
cura_gcode_preparecrée un nouvel artefact avec une séquence d'arrêt sûre (ou une séquence de fin complète). Lorsque vous l'utilisez, utilisez l'ID du nouvel artefact — l'original reste intact.
Ensuite montrez le résumé à l'utilisateur — temps, filament, température la plus élevée, résultat de la vérification — et obtenez une confirmation explicite avant l'étape 6. C'est la dernière occasion peu coûteuse d'abandonner.
Étape 6 — Transfert vers l'imprimante. L'artefact G-code doit exister dans la
racine gcodes de l'imprimante. Les serveurs MCP n'exposent pas d'outil de
téléchargement ; les chemins pris en charge sont :
cura_artifact_exportvers une racine d'exportation que l'imprimante peut lire (un partage monté/une clé USB que l'imprimante surveille), ou- l'utilisateur copie lui-même le fichier (interface Web, SCP, le partage), ou
- si — et seulement si — l'utilisateur le demande explicitement, le point de terminaison de téléchargement HTTP Moonraker comme un cas unique clairement journalisé.
Avant de toucher à l'imprimante, confirmez que le fichier est arrivé :
moonraker_files_list (racine gcodes) et moonraker_file_metadata —
le temps estimé et le filament doivent correspondre à la sortie Cura.
Étape 7 — Impression. Avant moonraker_print_start :
moonraker_printer_statusmontre Klipper prêt et inactif, pas arrêté ni occupé ;moonraker_temperaturesmontre des lectures ambiantes raisonnables.- Le plateau est propre, la bonne plaque, le bon matériau chargé, la porte fermée — demandez à l'utilisateur ; vous ne pouvez pas le voir.
- L'utilisateur confirme le nom exact du fichier.
moonraker_print_startprépare une action à haut risque ; relayez l'invite d'approbation et attendez l'approbation, puismoonraker_confirm_actionavec la phrase etacknowledge=true.
Pendant l'impression : interrogez moonraker_printer_status et
moonraker_temperatures ; utilisez moonraker_camera_snapshot pour un contrôle
visuel quand quelque chose semble anormal ; moonraker_gcode_history quand des
commandes échouent. Pour mettre l'impression en pause pour inspection, utilisez
moonraker_print_pause → inspection → moonraker_print_resume. Pour abandonner,
moonraker_print_cancel (haut risque, double confirmation) — uniquement lorsque
l'utilisateur le demande. Ensuite, moonraker_print_history enregistre le résultat.
Post-impression. Les radiateurs doivent être éteints (la séquence de fin le fait —
vérifiez avec moonraker_temperatures). Rappelez à l'utilisateur de nettoyer le
plateau. Si l'utilisateur souhaite nettoyer les artefacts, listez-les
(cura_artifact_list) et ne supprimez qu'avec confirmation explicite —
cura_artifact_delete est à haut risque.
Approbations en un mot
Les modes d'approbation (in_band, out_of_band, both) sont configurés par serveur
dans [approval]. Dans chaque mode, une action préparée = une approval_id =
une phrase de confirmation à usage unique avec une courte TTL (120 s par défaut).
L'outil et les arguments stockés de l'appel de préparation sont ce qui s'exécute ;
les arguments donnés à *_confirm_action sont décoratifs. *_pending_approvals
répertorie ce qui attend ; moonraker_cancel_approval / mcp-cura deny <id>
annule une action avant qu'elle ne s'exécute. Protocole complet :
références/approbations-sécurité.md.
Référence rapide — où en savoir plus
- références/pipeline.md — guide détaillé étape par étape avec un exemple de dialogue
- références/outils-mcp-cura.md — tous les 32 outils mcp-cura : risque, passerelle, arguments
- références/outils-mcp-moonraker.md — tous les 49 outils mcp-moonraker de même
- références/approbations-sécurité.md — modes d'approbation, règles de refus, gestion des urgences
- références/dépannage.md — sortie doctor, échecs courants, corrections
- scripts/vérifier-configuration.sh — vérifiez que les deux serveurs sont installés et accessibles
L'installation et l'enregistrement de la compétence MCP par plateforme se trouvent
dans la documentation du dépôt (docs/plateformes.md), pas dans cette compétence —
chargez-les lorsque l'utilisateur demande la configuration.
Quand ne pas utiliser cette compétence
Concevoir ou réparer manuellement la géométrie CAD/STL (utilisez un outil de
modélisation), éditer printer.cfg ou les inclusions Klipper (l'administration
hôte et l'écriture de configuration sont désactivées par défaut — et doivent le
rester), ou tout ce qui implique des redémarrages de l'hôte, des redémarrages du
micrologiciel ou du G-code brut que l'utilisateur n'a pas explicitement activé.
Dites-le et arrêtez-vous.