MCP 3D Printer Server

Integrations

  • Allows Claude to connect with Bambu Lab 3D printers to get printer status, manage files, upload G-code files, and monitor printing through their MQTT and FTP interfaces. Compatible with X1C, P1S, P1P, A1, and other Bambu Lab printers.

  • Allows Claude to connect with Creality/Ender 3D printers through the Creality Cloud management system to control and monitor Ender series, CR series, and other Creality printers with network capabilities.

  • Allows Claude to interact with OctoPrint-managed 3D printers to get printer status, list and upload files, start/cancel print jobs, and set temperatures through OctoPrint's REST API.

MCP 3D-Druckerserver

  • Bambu .3mf -Druck: Das Tool print_3mf wurde speziell für Bambu Lab-Drucker hinzugefügt. Es lädt die .3mf Datei hoch und sendet den Druckbefehl basierend auf den OpenBambuAPI-Spezifikationen direkt über MQTT.
  • Direkte MQTT-Kommunikation (Bambu): Die Bambu-Befehlsverarbeitung ( print_3mf , cancelJob ) wurde überarbeitet, um direktes MQTT (TLS-Port 8883) zu verwenden, anstatt sich bei Befehlen ausschließlich auf bambu-js zu verlassen.
  • .3mf -Dateianalyse: Implementierung eines Parsers ( src/3mf_parser.ts ) zum Lesen von Metadaten und Bambu-spezifischen Slicer-Einstellungen (aus project_settings.config ) in .3mf Dateien.
  • Bambu-Vorgaberessourcen: Unterstützung für das Lesen von Bambu Studio-Vorgabedateien ( machine , filament , process ) als MCP-Ressourcen (z. B. preset://bambu/process/MyPreset ) hinzugefügt, wenn BAMBU_STUDIO_CONFIG_PATH festgelegt ist.
  • OrcaSlicer-Integration: Unterstützung für die Verwendung von OrcaSlicer über seine Befehlszeilenschnittstelle für das Tool slice_stl hinzugefügt.
  • Neue STL-Manipulationstools: Die Tools „ merge_vertices , „ center_model “ und lay_flat für die grundlegende Modellvorbereitung mit three.js wurden hinzugefügt.
  • Konfigurationsupdate: Umgebungsvariable BAMBU_STUDIO_CONFIG_PATH zum Laden von Voreinstellungen hinzugefügt.
  • Hinweis zur FTP-Nutzung: In der Dokumentation wird bestätigt, dass Dateivorgänge für Bambu derzeit möglicherweise ungesichertes FTP über bambu-js verwenden.
  • Erreichen Sie Funktionsparität: Bringen Sie die Funktionalität (Statusdetails, Dateivorgänge, Direktdruck, wo möglich, Vorgabeverwaltung) für OctoPrint, Klipper, Duet, Repetier, Prusa Connect und Creality Cloud auf das für die Bambu-Implementierung geplante Robustheitsniveau.
  • Implementieren Sie den vollständigen Bambu MQTT-Status: Refaktorieren Sie getStatus für Bambu, um MQTT-Berichte zu abonnieren und den Echtzeitstatus aufrechtzuerhalten.
  • Implementieren Sie eine robuste AMS-Zuordnung: Ersetzen Sie die Platzhalterlogik; analysieren und verwenden Sie die AMS-Zuordnung aus .3mf Slicer-Konfiguration oder Benutzerüberschreibungen für den MQTT-Druckbefehl korrekt.
  • Implementieren Sie .3mf Drucküberschreibungen: Fügen Sie dem Tool print_3mf eine Logik hinzu, um vom Benutzer bereitgestellte Überschreibungen (z. B. Kalibrierungsflags) und möglicherweise allgemeine Slicer-Einstellungen zu verarbeiten, sofern dies über MQTT/G-Code möglich ist.
  • MD5-Hash berechnen: Fügen Sie eine Logik hinzu, um den MD5-Hash der .3mf Datei zu berechnen und in den MQTT-Druckbefehl einzuschließen (optional, aber vom Protokoll empfohlen).
  • Bambu File Ops umgestalten: Untersuchen Sie, ob die FTP-Operationen bambu-js ( getFiles , uploadFile ) sofern möglich/stabil durch direkte MQTT-Methoden ersetzt werden können, oder tragen Sie FTPS-Unterstützung zu bambu-js bei.
  • Logik zur Voreinstellungserkennung hinzufügen: Verbessern Sie die Auflistung voreingestellter Ressourcen (derzeit werden Listen basierend auf potenziellen Dateinamen erstellt, Indexdateien könnten analysiert werden, falls sie vorhanden sind).
  • .3mf Unterstützung erweitern: Fügen Sie gegebenenfalls .3mf Druckunterstützung für andere Druckertypen hinzu.
  • Fehlerbehandlung und -berichterstattung: Verbessern Sie die MQTT-Fehlerbehandlung und -berichterstattung zum Druckfortschritt/-abschluss.
  • Testen: Führen Sie gründliche Laufzeittests aller neuen Bambu-Funktionen durch.

Inhaltsverzeichnis

Beschreibung

Dies ist ein Server, der es MCP-Benutzern ermöglicht, eine Verbindung mit den API-Endpunkten dieser 3D-Drucker herzustellen:

  • OctoPrint
  • Klipper (Moonraker)
  • Duett
  • Repetier
  • Bambu Labs
  • Prusa Connect
  • Creality/Ender

Dieser Server ist ein Model Context Protocol (MCP)-Server zur Verbindung von Claude mit 3D-Druckerverwaltungssystemen. Er ermöglicht MCP die Interaktion mit 3D-Druckern über die APIs verschiedener Druckerverwaltungssysteme wie OctoPrint, Klipper (über Moonraker), Duet, Repetier und Bambu Labs-Druckern.

Hinweis zur Ressourcennutzung : Dieser MCP-Server enthält erweiterte Funktionen zur 3D-Modellbearbeitung, die bei der Arbeit mit großen STL-Dateien speicherintensiv sein können. Wichtige Informationen zu Speichernutzung und Leistung finden Sie im Abschnitt „Einschränkungen und Hinweise“.

Merkmale

  • Druckerstatus abrufen (Temperaturen, Druckfortschritt usw.)
  • Auflisten der Dateien auf dem Drucker
  • G-Code-Dateien auf den Drucker hochladen
  • Druckaufträge starten, abbrechen und überwachen
  • Druckertemperaturen einstellen
  • Erweiterte STL-Dateibearbeitung:
    • Verlängern Sie die Basis für eine bessere Haftung
    • Modelle gleichmäßig oder entlang bestimmter Achsen skalieren
    • Drehen Sie Modelle um jede Achse
    • Modelle übersetzen (verschieben)
    • Ändern Sie bestimmte Abschnitte von STL-Dateien (oben, unten, Mitte oder benutzerdefiniert).
  • Umfassende STL-Analyse mit detaillierten Modellinformationen
  • Generieren Sie SVG-Visualisierungen aus mehreren Winkeln von STL-Dateien
  • Echtzeit-Fortschrittsberichte für lange Operationen
  • Fehlerbehandlung mit detaillierter Diagnose
  • Schneiden Sie STL-Dateien, um G-Code zu generieren
  • Temperatureinstellungen in G-Code-Dateien bestätigen
  • Vollständiger End-to-End-Workflow von der STL-Änderung bis zum Druck
  • Drucken Sie .3mf -Dateien direkt auf Bambu Lab-Druckern (über MQTT-Befehl)
  • Lesen Sie Bambu Studio-Vorgabedateien (Drucker, Filament, Prozess) als Ressourcen

Installation

Voraussetzungen

  • Node.js 18 oder höher
  • npm oder yarn

Von npm installieren

npm install -g mcp-3d-printer-server

Von der Quelle installieren

git clone https://github.com/dmontgomery40/mcp-3d-printer-server.git cd mcp-3d-printer-server npm install npm link # Makes the command available globally

Ausführen mit Docker

Sie können den Server auch mit Docker und Docker Compose für eine Containerumgebung ausführen.

  1. Stellen Sie sicher, dass Sie Docker und Docker Compose installiert haben.
  2. Kopieren Sie .env.example nach .env und konfigurieren Sie Ihre Einstellungen.
  3. Erstellen und Ausführen des Containers:
    docker-compose up --build -d
Verwenden von Slicern mit Docker

Bitte beachten Sie, dass das Standard-Docker-Setup einen auf Ihrem Host-Rechner installierten Slicer nicht direkt verwenden kann . Das direkte Einbinden der Slicer-Programmdatei vom Host in den Container ist aufgrund von Betriebssystem- und Bibliotheksunterschieden zwischen Ihrem Host und dem Container unzuverlässig.

Der empfohlene Ansatz besteht darin , Ihren bevorzugten Slicer im Docker-Image zu installieren . Dadurch wird der Container autark.

Dazu müssen Sie die Dockerfile anpassen. Hier ist ein konzeptionelles Beispiel, wie Sie PrusaSlicer oder OrcaSlicer hinzufügen können (die spezifischen Befehle können je nach Slicer, seinen Abhängigkeiten und den aktuellen Alpine-Paketen variieren):

# ... other Dockerfile commands ... # Example: Install PrusaSlicer or OrcaSlicer (adjust command as needed) # Check Alpine package repositories first (e.g., apk add prusaslicer or apk add orcaslicer) # If not available, download and install manually (e.g., AppImage): # RUN apk add --no-cache fuse # FUSE might be needed for AppImages # RUN wget https://example.com/path/to/OrcaSlicer_Linux_Vxxxx.AppImage -O /usr/local/bin/orcaslicer && \ # chmod +x /usr/local/bin/orcaslicer # Set the SLICER_PATH env var accordingly in docker-compose.yml or when running # Example for installed executable: ENV SLICER_PATH=/usr/local/bin/orcaslicer # ... rest of Dockerfile ...

Nachdem Sie die Dockerfile geändert haben, erstellen Sie Ihr Image neu ( docker-compose build ). Stellen Sie außerdem sicher, dass die Umgebungsvariable SLICER_PATH in Ihrer .env Datei oder docker-compose.yml auf den richtigen Pfad innerhalb des Containers verweist (z. /usr/local/bin/orcaslicer ). Setzen Sie SLICER_TYPE ebenfalls auf orcaslicer .

Es tut uns leid, dass kein bestimmter Slicer standardmäßig enthalten ist. Angesichts der großen Auswahl an Slicern (PrusaSlicer, OrcaSlicer, Cura usw.) und verfügbaren Konfigurationen würde die Vorinstallation eines Slicers das Image für viele Benutzer unnötig aufblähen. Sollte ein bestimmter Slicer häufig nachgefragt werden, kann ich mich in einer zukünftigen Version um die offizielle Unterstützung dafür kümmern.

Konfiguration

Erstellen Sie eine .env Datei in dem Verzeichnis, in dem Sie den Server ausführen oder Umgebungsvariablen festlegen:

# Required for authentication with your printer management system API_KEY=your_api_key_here # Default printer connection settings PRINTER_HOST=localhost PRINTER_PORT=80 # Port for non-Bambu HTTP APIs PRINTER_TYPE=octoprint # Options: octoprint, klipper, duet, repetier, bambu, prusa, creality # Optional: Directory for temporary files TEMP_DIR=/path/to/temp/dir # Bambu Labs specific configuration BAMBU_SERIAL=your_printer_serial # REQUIRED for Bambu BAMBU_TOKEN=your_access_token # REQUIRED for Bambu # Slicer configuration (for slice_stl tool) SLICER_TYPE=prusaslicer # Options: prusaslicer, cura, slic3r, orcaslicer SLICER_PATH=/path/to/slicer/executable SLICER_PROFILE=/path/to/slicer/profile # Optional: Path to Bambu Studio user config dir (for loading presets) # Example macOS: /Users/your_user/Library/Application Support/BambuStudio/user/YOUR_USER_ID # Example Windows: C:\Users\your_user\AppData\Roaming\BambuStudio\user\YOUR_USER_ID # Example Linux: /home/your_user/.config/BambuStudio/user/YOUR_USER_ID BAMBU_STUDIO_CONFIG_PATH=

Verwendung mit Claude Desktop

  1. Bearbeiten Sie Ihre Claude Desktop-Konfigurationsdatei:
{ "mcpServers": { "3dprint": { "command": "mcp-3d-printer-server", "env": { "API_KEY": "your_api_key_here", "PRINTER_HOST": "your_printer_ip", "PRINTER_TYPE": "octoprint" } } } }
  1. Für Bambu Labs-Drucker:
{ "mcpServers": { "3dprint": { "command": "mcp-3d-printer-server", "env": { "PRINTER_HOST": "your_printer_ip", "PRINTER_TYPE": "bambu", "BAMBU_SERIAL": "your_printer_serial", "BAMBU_TOKEN": "your_access_token" } } } }
  1. Starten Sie Claude Desktop neu
  2. Verbinden Sie sich über Claude mit Ihrem Drucker

Unterstützte Druckerverwaltungssysteme

OctoPrint

OctoPrint ist eine beliebte Weboberfläche für 3D-Drucker. Sie bietet eine REST-API zur Steuerung des Druckers.

  • Standardport: 80 (http) oder 443 (https)
  • Authentifizierung: API-Schlüssel erforderlich

Klipper (über Moonraker)

Klipper ist eine Firmware für 3D-Drucker, die mit dem Moonraker-API-Server funktioniert.

  • Standardport: 7125
  • Authentifizierung: Hängt von Ihrer Moonraker-Konfiguration ab

Duett

Duet ist eine Steuerplatine für 3D-Drucker mit eigener Weboberfläche (DuetWebControl).

  • Standardport: 80 (http) oder 443 (https)
  • Authentifizierung: Hängt von Ihrer Duet-Konfiguration ab

Repetier

Repetier-Server ist eine Host-Software für 3D-Drucker.

  • Standardport: 3344
  • Authentifizierung: API-Schlüssel erforderlich

Bambu Labs

Bambu Lab-Drucker verwenden MQTT für Status und Steuerung und FTP für Dateivorgänge.

  • Authentifizierung: Seriennummer und Zugriffstoken erforderlich ( BAMBU_SERIAL und BAMBU_TOKEN festlegen)
  • Voraussetzungen: Der Drucker muss sich im selben Netzwerk befinden oder eine aktivierte Cloud-Verbindung haben
  • Kompatibel mit: X1C, P1S, P1P, A1 und anderen Bambu Lab-Druckern
So finden Sie die Seriennummer und den Zugriffstoken Ihres Bambu-Druckers

Um eine Verbindung zu Ihrem Bambu Lab-Drucker herzustellen, benötigen Sie zwei Dinge:

  1. Seriennummer des Druckers :
    • Suchen Sie auf der Rückseite oder Unterseite Ihres Druckers nach einem Aufkleber mit einer Seriennummer (beginnt normalerweise mit „01P“ oder „01A“, gefolgt von Zahlen/Buchstaben).
    • Alternativ können Sie Bambu Studio öffnen, eine Verbindung zu Ihrem Drucker herstellen, zu Gerät > Geräteverwaltung gehen und die Informationen Ihres Druckers anzeigen.
  2. Zugriffstoken :
    • Das Zugriffstoken ist ein Sicherheitscode, der für die direkte Verbindung mit Ihrem Drucker erforderlich ist
    • Für Drucker der P1-Serie: Gehen Sie zum Touchscreen, wählen Sie Einstellungen > Netzwerk > LAN-Modus, und Sie sehen den Zugangscode
    • Für Drucker der X1-Serie: Gehen Sie zum Touchscreen, wählen Sie Einstellungen > Netzwerk > LAN-Modus und aktivieren Sie den LAN-Modus, um den Zugangscode anzuzeigen
    • Für A1 Mini: Verwenden Sie die Bambu Handy-App, um eine Verbindung zu Ihrem Drucker herzustellen, und gehen Sie dann zu Einstellungen > Netzwerk > LAN-Modus

Hinweis : Wenn sich Ihr Drucker nicht im selben lokalen Netzwerk befindet oder Sie das Zugriffstoken nicht finden können, müssen Sie möglicherweise die Firmware Ihres Druckers auf die neueste Version aktualisieren, um den LAN-Modus zu aktivieren.

Bambu-Kommunikationshinweise (MQTT und FTP)
  • MQTT: Dieser Server verwendet das lokale MQTT-Protokoll (Port 8883, TLS) basierend auf Community-Erkenntnissen (z. B. OpenBambuAPI ), um Befehle wie das Starten von Drucken und Abbrechen von Aufträgen zu senden.
  • FTP: Das Auflisten und Hochladen von Dateien erfolgt derzeit über den FTP-Server des Druckers (über die Hilfsbibliothek bambu-js ). Hinweis: Diese FTP-Verbindung ist aufgrund aktueller Bibliothekseinschränkungen möglicherweise ungesichert (einfaches FTP) . Achten Sie bei der Verwendung auf Ihre Netzwerksicherheit.

Prusa Connect

Prusa Connect ist Prusas eigene Cloud-basierte Lösung zur Verwaltung ihrer Drucker.

  • Standardport: 80 (http) oder 443 (https)
  • Authentifizierung: API-Schlüssel erforderlich
  • Kompatibel mit: Prusa MK4, Prusa Mini, Prusa XL und anderen Prusa-Druckern mit Prusa Connect
Einrichten von Prusa Connect
  1. Stellen Sie sicher, dass Ihr Prusa-Drucker auf die neueste Firmware aktualisiert ist
  2. Verbinden Sie Ihren Drucker mit Ihrem WLAN-Netzwerk
  3. Erstellen Sie ein Prusa Connect-Konto und registrieren Sie Ihren Drucker
  4. Generieren Sie einen API-Schlüssel über die Prusa Connect-Weboberfläche unter Einstellungen > API-Zugriff

Creality Cloud

Creality Cloud ist das Verwaltungssystem von Creality für seine Drucker.

  • Standardport: 80 (http) oder 443 (https)
  • Authentifizierung: Bearer-Token erforderlich
  • Kompatibel mit: Ender-Serie, CR-Serie und anderen Creality-Druckern mit Netzwerkfunktionen
Creality Cloud einrichten
  1. Installieren Sie die Creality Cloud-App auf Ihrem Mobilgerät
  2. Erstellen Sie ein Konto und fügen Sie Ihren Drucker hinzu
  3. Aktivieren Sie den lokalen Netzwerkzugriff für Ihren Drucker
  4. Generieren Sie ein Token aus der Creality Cloud-App unter Einstellungen > Entwickleroptionen

Verfügbare Tools

STL-Manipulationswerkzeuge

Hinweis zur Speichernutzung : Die folgenden STL-Manipulationswerkzeuge laden ganze 3D-Modelle in den Speicher. Bei großen oder komplexen STL-Dateien (> 10 MB) können diese Vorgänge erheblichen Speicherbedarf haben. Beachten Sie bei der Verwendung dieser Werkzeuge in der MCP-Umgebung die Speicherbeschränkungen.

get_stl_info

Erhalten Sie detaillierte Informationen zu einer STL-Datei, einschließlich Abmessungen, Scheitelpunktanzahl und Begrenzungsrahmen.

{ "stl_path": "/path/to/file.stl" }
extend_stl_base

Erweitern Sie die Basis einer STL-Datei um einen angegebenen Betrag.

{ "stl_path": "/path/to/file.stl", "extension_inches": 2 }
scale_stl

Skalieren Sie ein STL-Modell gleichmäßig oder entlang bestimmter Achsen.

{ "stl_path": "/path/to/file.stl", "scale_factor": 1.5 }

Oder für nicht einheitliche Skalierung:

{ "stl_path": "/path/to/file.stl", "scale_x": 1.2, "scale_y": 1.0, "scale_z": 1.5 }
rotate_stl

Drehen Sie ein STL-Modell um bestimmte Achsen (in Grad).

{ "stl_path": "/path/to/file.stl", "rotate_x": 45, "rotate_y": 0, "rotate_z": 90 }
translate_stl

Verschieben Sie ein STL-Modell entlang bestimmter Achsen (in Millimetern).

{ "stl_path": "/path/to/file.stl", "translate_x": 10, "translate_y": 5, "translate_z": 0 }
Eckpunkte zusammenführen

Scheitelpunkte zusammenführen, die näher als eine angegebene Toleranz liegen. Hilft beim Schließen kleiner Lücken und kann das Netz etwas vereinfachen.

{ "stl_path": "/path/to/model.stl", "tolerance": 0.01 // Optional, default = 0.01mm }
Center-Modell

Verschieben Sie das Modell so, dass sich der Mittelpunkt seines Begrenzungsrahmens am Weltursprung (0,0,0) befindet.

{ "stl_path": "/path/to/model.stl" }
flach legen

Versuchen Sie, die größte flache Oberfläche des Modells zu identifizieren (die nicht bereits direkt nach oben oder unten zeigt) und drehen Sie das Modell so, dass diese Fläche in der XY-Ebene (Z = 0) nach unten zeigt. Nützlich für die Ausrichtung von Modellen für den Druck.

{ "stl_path": "/path/to/model.stl" }
STL-Abschnitt ändern

Wenden Sie eine spezifische Transformation auf einen ausgewählten Abschnitt einer STL-Datei an. Dies ermöglicht detaillierte Änderungen bestimmter Teile eines Modells.

{ "stl_path": "/path/to/file.stl", "section": "top", "transformation_type": "scale", "value_x": 1.5, "value_y": 1.5, "value_z": 1.5 }

Für benutzerdefinierte Abschnittsgrenzen:

{ "stl_path": "/path/to/file.stl", "section": "custom", "transformation_type": "rotate", "value_x": 0, "value_y": 0, "value_z": 45, "custom_min_x": -10, "custom_min_y": 0, "custom_min_z": -10, "custom_max_x": 10, "custom_max_y": 20, "custom_max_z": 10 }
generate_stl_visualization

Erstellen Sie eine SVG-Visualisierung einer STL-Datei aus mehreren Winkeln (Vorder-, Seiten-, Draufsicht und isometrische Ansicht).

{ "stl_path": "/path/to/file.stl", "width": 400, "height": 400 }
slice_stl

Schneiden Sie eine STL-Datei in Scheiben, um G-Code zu generieren.

{ "stl_path": "/path/to/file.stl", "slicer_type": "prusaslicer", "slicer_path": "/path/to/prusaslicer", "slicer_profile": "/path/to/profile.ini" }
Temperaturen bestätigen

Bestätigen Sie die Temperatureinstellungen in einer G-Code-Datei.

{ "gcode_path": "/path/to/file.gcode", "extruder_temp": 200, "bed_temp": 60 }
process_and_print_stl

Verarbeiten Sie eine STL-Datei (erweitern Sie die Basis), schneiden Sie sie in Scheiben, bestätigen Sie die Temperaturen und starten Sie den Druckvorgang.

{ "stl_path": "/path/to/file.stl", "extension_inches": 2, "extruder_temp": 200, "bed_temp": 60, "host": "192.168.1.100", "type": "octoprint", "api_key": "YOUR_API_KEY" }

Hinweis: Die automatische Ausrichtung für optimalen Druck (Minimierung der Stützen usw.) ist eine komplexe Aufgabe, die normalerweise von Slicer-GUIs (wie OrcaSlicer oder PrusaSlicer) übernommen wird und auf diesem Server nicht implementiert ist.

Druckersteuerungstools

Druckerstatus abrufen

Erhalten Sie den aktuellen Status des 3D-Druckers.

{ "host": "192.168.1.100", "type": "octoprint", "api_key": "YOUR_API_KEY" }

Bei Bambu-Druckern bestätigt dies derzeit nur die MQTT-Verbindung.

Druckerdateien auflisten

Auf dem Drucker verfügbare Dateien auflisten.

{ "host": "192.168.1.100", "type": "octoprint", "api_key": "YOUR_API_KEY" }

Listet für Bambu-Drucker Dateien im gcodes -Verzeichnis per FTP auf.

Gcode hochladen

Laden Sie eine G-Code-Datei auf den Drucker hoch.

{ "host": "192.168.1.100", "type": "octoprint", "api_key": "YOUR_API_KEY", "filename": "my_print.gcode", "gcode": "G28\nG1 X100 Y100 Z10 F3000\n...", "print": true }

Bei Bambu-Druckern erfolgt das Hochladen in das gcodes -Verzeichnis per FTP. Der Druckvorgang kann nicht automatisch gestartet werden.

start_print

Starten Sie den Druck einer Datei, die sich bereits auf dem Drucker befindet.

{ "host": "192.168.1.100", "type": "octoprint", "api_key": "YOUR_API_KEY", "filename": "my_print.gcode" }

Nicht für Bambu-Drucker empfohlen. Verwenden Sie print_3mf für Bambu- .3mf -Dateien.

Abbrechen_Drucken

Den aktuellen Druckauftrag abbrechen.

{ "host": "192.168.1.100", "type": "octoprint", "api_key": "YOUR_API_KEY" }

Sendet für Bambu-Drucker den Befehl stop_print über MQTT.

Druckertemperatur einstellen

Stellen Sie die Temperatur einer Druckerkomponente ein.

{ "host": "192.168.1.100", "type": "octoprint", "api_key": "YOUR_API_KEY", "component": "extruder", "temperature": 200 }

Wird für Bambu-Drucker über direkte MQTT-Befehle nicht unterstützt .

Bambu-spezifische Werkzeuge

Lädt eine .3mf Datei per FTP auf einen Bambu-Drucker hoch und startet den Druckauftrag über einen MQTT-Befehl. Ermöglicht das Überschreiben einiger Druckparameter wie AMS-Mapping.

{ "three_mf_path": "/path/to/your_model.3mf", "host": "your_bambu_ip", // Optional if default is set "bambu_serial": "YOUR_SERIAL", // Optional if default is set "bambu_token": "YOUR_TOKEN", // Optional if default is set // Optional Overrides: "use_ams": true, // Default: true "ams_mapping": [0, 1, 2, 3], // Array of AMS slot indices to use "bed_leveling": true, // Default: true "flow_calibration": false, // Default: false "vibration_calibration": false, // Default: false "timelapse": false // Default: false }

Hinweis: Das Überschreiben von Slicer-Einstellungen wie Schichthöhe oder Temperatur über dieses Tool wird vom MQTT-Befehl des Druckers nicht unterstützt. Nehmen Sie diese Änderungen vor dem Generieren der .3mf Datei vor.

Verfügbare Ressourcen

Druckerressourcen

  • printer://{host}/status – Aktueller Status des 3D-Druckers (derzeit für Bambu eingeschränkt)
  • printer://{host}/files – Liste der auf dem 3D-Drucker verfügbaren Dateien (FTP für Bambu)
  • printer://{host}/file/{filename} – Inhalt einer bestimmten G-Code-Datei (überprüft die Existenz nur für Bambu)

Bambu Preset Ressourcen

Wenn die Umgebungsvariable BAMBU_STUDIO_CONFIG_PATH auf Ihr Bambu Studio-Benutzereinstellungsverzeichnis eingestellt ist, können Sie Ihre gespeicherten Voreinstellungen lesen.

  • preset://bambu/machine/{preset_name} – Liest eine Maschinenvorgabedatei (z. B. Bambu Lab P1S 0.4 nozzle.json )
  • preset://bambu/filament/{preset_name} – Liest eine Filament-Vorgabedatei (z. Generic PLA.json )
  • preset://bambu/process/{preset_name} – Liest eine Prozessvorgabedatei (z. 0.20mm Standard @BBL P1S.json )

Anwendungsbeispiel: „Lies den Inhalt meiner Bambu-Prozessvorgabe mit dem Namen ‚0.16mm Optimal @BBL P1S‘“ (Claude würde ReadResource mit preset://bambu/process/0.16mm Optimal @BBL P1S aufrufen)

Beispielbefehle für Claude

Hier sind einige Beispielbefehle, die Sie Claude geben können, nachdem Sie eine Verbindung zum MCP-Server hergestellt haben:

Druckersteuerung

  • „Wie ist der aktuelle Status meines 3D-Druckers?“
  • „Zeigen Sie mir die Liste der Dateien auf meinem Drucker.“
  • „Laden Sie diesen G-Code auf meinen Drucker hoch: [G-Code-Inhalt]“
  • „Starten Sie den Druck der Datei mit dem Namen ‚benchy.gcode‘.“
  • "Brechen Sie den aktuellen Druckauftrag ab."
  • „Stellen Sie die Extrudertemperatur auf 200 °C ein.“
  • „Stellen Sie die Betttemperatur auf 60 °C ein.“

STL-Manipulation und -Druck

  • „Nehmen Sie diese STL-Datei und erweitern Sie die Basis um 2 Zoll, senden Sie sie dann an den Slicer und stellen Sie sie in die Warteschlange meines Druckers.“
  • „Erweitern Sie die Basis von model.stl um 1,5 Zoll.“
  • „Skalieren Sie diese STL-Datei gleichmäßig um 150 %.“
  • „Skalieren Sie model.stl so, dass es doppelt so breit ist, aber die gleiche Höhe behält.“
  • „Drehen Sie dieses Modell um 90 Grad um die Z-Achse.“
  • „Verschieben Sie dieses STL-Modell um 5 mm nach oben, um darunter eine Lücke zu erzeugen.“
  • „Können Sie nur den oberen Teil dieses Modells so verändern, dass es 20 % größer wird?“
  • „Analysieren Sie diese STL-Datei und teilen Sie mir ihre Abmessungen und Details mit.“
  • „Erstellen Sie eine Visualisierung dieser STL-Datei, damit ich sehen kann, wie sie aussieht.“
  • „SVG-Visualisierungen meines Modells aus verschiedenen Blickwinkeln erstellen.“
  • „Machen Sie die Basis dieses Modells breiter, ohne die Höhe zu verändern.“
  • „Schneiden Sie die geänderte STL-Datei mit PrusaSlicer.“
  • „Bestätigen Sie, dass die Temperaturen im G-Code 200 °C für den Extruder und 60 °C für das Bett betragen.“
  • „Verarbeiten Sie diese STL-Datei, verlängern Sie die Basis um 2 Zoll, schneiden Sie sie in Scheiben und beginnen Sie mit dem Drucken. Bestätigen Sie jedoch zuerst die Temperaturen.“
  • „Drucken Sie ~/Downloads/my_model.3mf auf dem Bambu-Drucker.“
  • „Laden Sie ~/Desktop/calibration_cube.3mf über die AMS-Steckplätze 0 und 2 auf den Bambu-Drucker hoch und schalten Sie die Bettnivellierung aus.“
  • „Brechen Sie den Druckauftrag auf meinem Bambu P1S ab.“
  • „Was sind die Einstellungen in meiner Bambu-Filamentvoreinstellung ‚Generic PETG‘?“
  • „Zeigen Sie mir meine Bambu-Prozessvorgaben.“

Einschränkungen des Bambu Lab-Druckers

Aufgrund der Art der Bambu Lab-Drucker-API gibt es einige Einschränkungen:

  1. Druckvorgänge starten : Zum Starten eines Druckvorgangs sind der 3MF-Projektdateipfad, der G-Code-Dateiname, der Druckname und der MD5-Hash erforderlich. Die vereinfachte API auf diesem Server unterstützt dies noch nicht vollständig.
  2. Temperaturregelung : Die Bambu-API bietet keine direkten Methoden zum Einstellen von Temperaturen. Dies würde benutzerdefinierte G-Code-Befehle erfordern.
  3. Dateiverwaltung : Dateien müssen in das Verzeichnis „gcodes“ auf dem Drucker hochgeladen werden.
  4. FTP-Sicherheit: Dateivorgänge verwenden derzeit den FTP-Server des Druckers, der möglicherweise ungesichert ist (einfaches FTP).
  5. Parameterüberschreibungen: Nur vom MQTT-Befehl project_file unterstützte Parameter können über das Tool print_3mf überschrieben werden (z. B. AMS-Nutzung, Kalibrierungsflags). Slicer-Einstellungen wie Schichthöhe oder Temperatur können zum Druckzeitpunkt über diesen Befehl nicht geändert werden.
  6. Statusaktualisierungen: Die vollständige Echtzeit-Statusüberwachung über MQTT muss weiter implementiert werden.

Einschränkungen und Überlegungen

Speichernutzung

  • Große STL-Dateien : Die Verarbeitung großer oder komplexer STL-Dateien kann viel Speicherplatz beanspruchen. Die gesamte STL-Geometrie wird während der Verarbeitung in den Speicher geladen.
  • Mehrere Vorgänge : Das Ausführen mehrerer STL-Vorgänge nacheinander (insbesondere bei großen Dateien) kann zu einer Anhäufung von Speicher führen, wenn die Speicherbereinigung nicht Schritt hält.
  • MCP-Umgebung : Da dies als MCP-Server ausgeführt wird, beachten Sie, dass Claudes MCP-Umgebung Speicherbeschränkungen aufweist. Komplexe Operationen an sehr großen STL-Dateien können zu Speicherproblemen führen.

Einschränkungen bei der STL-Manipulation

  • Abschnittsänderung : Die abschnittsspezifische Änderungsfunktion eignet sich am besten für einfachere Geometrien. Komplexe oder nicht-mannigfaltige Netze können zu unerwarteten Ergebnissen führen.
  • Basiserweiterung : Der Basiserweiterungsalgorithmus fügt eine neue Geometrie unterhalb des Modells hinzu. Bei Modellen mit komplexen Unterseiten sind die Ergebnisse möglicherweise nicht perfekt.
  • Fehlerbehandlung : Obwohl wir eine robuste Fehlerbehandlung hinzugefügt haben, können einige Randfälle in komplexen STL-Dateien weiterhin Probleme verursachen.

Visualisierungsbeschränkungen

  • SVG-Darstellung : Die SVG-Visualisierung ist eine vereinfachte schematische Darstellung, kein echtes 3D-Rendering.
  • Komplexe Modelle : Bei sehr komplexen Modellen kann es sein, dass die Visualisierung nicht alle Details genau darstellt.

Überlegungen zur Leistung

  • Slicing-Vorgänge : Externe Slicer-Prozesse können CPU-intensiv sein und bei komplexen Modellen viel Zeit in Anspruch nehmen.
  • Fortschrittsberichte : Bei großen Dateien kann es vorkommen, dass die Fortschrittsaktualisierungen in bestimmten Verarbeitungsphasen ins Stocken geraten.

Testempfehlungen

  • Beginnen Sie mit kleineren STL-Dateien (< 10 MB), um die Funktionalität zu testen
  • Überwachen Sie die Speichernutzung bei der Verarbeitung großer Dateien
  • Testen Sie Änderungen an einfachen Geometrien, bevor Sie komplexe Änderungen vornehmen.
  • Erwägen Sie die Ausführung auf einem System mit mindestens 4 GB freiem RAM für größere Operationen

Abzeichen

AbzeichenBeschreibung
Die aktuelle Version des Pakets auf npm
Dieses Projekt ist unter GPL-2.0 lizenziert
Dieses Projekt ist in TypeScript 4.9+ geschrieben
Dieses Projekt wird aktiv gepflegt
Wir freuen uns über Beiträge über Pull Requests
Erfordert Node.js 18.0.0 oder höher
Anzahl der Downloads pro Monat von npm
Anzahl der GitHub-Sterne, die dieses Projekt erhalten hat

Lizenz

GPL-2.0

Related MCP Servers

  • A
    security
    F
    license
    A
    quality
    An MCP server implementation that enables interaction with the Unstructured API, providing tools to list, create, update, and manage sources, destinations, and workflows.
    Last updated -
    39
    26
    • Apple
  • -
    security
    A
    license
    -
    quality
    An MCP server that provides multiple file conversion tools for AI agents, supporting various document and image format conversions including DOCX to PDF, PDF to DOCX, image conversions, Excel to CSV, HTML to PDF, and Markdown to PDF.
    Last updated -
    3
    Python
    MIT License
    • Linux
    • Apple
  • -
    security
    A
    license
    -
    quality
    An MCP server that enables programmatic interaction with Microsoft Word documents on Windows via COM Interop, allowing operations like document creation, text manipulation, formatting, and table management.
    Last updated -
    8
    TypeScript
    MIT License
  • -
    security
    F
    license
    -
    quality
    An MCP server that enables Large Language Models or other MCP clients to interact with Ansys/AGI STK (Systems Tool Kit), allowing users to control STK Desktop simulations programmatically or via natural language.
    Last updated -
    2
    Python

View all related MCP servers

ID: 7f6v2enbgk