local-only server
The server can only run on the client’s local machine because it depends on local resources.
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.
Servidor de impresora 3D MCP
- Impresión Bambu
.3mf
: Se agregó la herramientaprint_3mf
, específica para impresoras Bambu Lab. Esta herramienta carga el archivo.3mf
y envía el comando de impresión directamente a través de MQTT, según las especificaciones de OpenBambuAPI. - Comunicación MQTT directa (Bambu): se refactorizó el manejo de comandos de Bambu (
print_3mf
,cancelJob
) para usar MQTT directo (puerto TLS 8883) en lugar de confiar únicamente enbambu-js
para los comandos. - Análisis de archivos
.3mf
: se implementó un analizador (src/3mf_parser.ts
) para leer metadatos y configuraciones de segmentación específicas de Bambu (desdeproject_settings.config
) dentro de archivos.3mf
. - Recursos preestablecidos de Bambu: se agregó soporte para leer archivos preestablecidos de Bambu Studio (
machine
,filament
,process
) como recursos MCP (por ejemplo,preset://bambu/process/MyPreset
) siBAMBU_STUDIO_CONFIG_PATH
está configurado. - Integración con OrcaSlicer: se agregó soporte para usar OrcaSlicer a través de su interfaz de línea de comandos para la herramienta
slice_stl
. - Nuevas herramientas de manipulación de STL: se agregaron las herramientas
merge_vertices
,center_model
ylay_flat
para la preparación básica del modelo usandothree.js
. - Actualización de configuración: se agregó la variable de entorno
BAMBU_STUDIO_CONFIG_PATH
para la carga de ajustes preestablecidos. - Nota sobre el uso de FTP: En la documentación se reconoce que las operaciones de archivos para Bambu actualmente utilizan FTP potencialmente no seguro a través de
bambu-js
. - Lograr la paridad de características: llevar la funcionalidad (detalles de estado, operaciones de archivos, impresión directa cuando sea posible, manejo de ajustes preestablecidos) para OctoPrint, Klipper, Duet, Repetier, Prusa Connect y Creality Cloud al nivel de robustez planificado para la implementación de Bambu.
- Implementar el estado MQTT completo de Bambu: refactorizar
getStatus
para que Bambu se suscriba a los informes MQTT y mantenga el estado en tiempo real. - Implementar un mapeo AMS robusto: reemplazar la lógica de marcador de posición; analizar y usar correctamente el mapeo AMS desde la configuración del segmentador
.3mf
o las anulaciones del usuario para el comando de impresión MQTT. - Implementar anulaciones de impresión
.3mf
: agregar lógica a la herramientaprint_3mf
para manejar anulaciones proporcionadas por el usuario (por ejemplo, indicadores de calibración) y configuraciones de segmentación potencialmente comunes si es posible a través de MQTT/código G. - Calcular hash MD5: agrega lógica para calcular e incluir el hash MD5 del archivo
.3mf
en el comando de impresión MQTT (opcional pero recomendado por el protocolo). - Refactorizar las operaciones de archivos de Bambu: investigar la sustitución de las operaciones FTP
bambu-js
(getFiles
,uploadFile
) con métodos MQTT directos si es posible/estable, o contribuir con soporte FTPS parabambu-js
. - Agregar lógica de descubrimiento preestablecida: mejorar la lista de recursos preestablecidos (actualmente, las listas se basan en nombres de archivos potenciales; podrían analizar archivos de índice si existen).
- Ampliar la compatibilidad con
.3mf
: agregue compatibilidad de impresión.3mf
para otros tipos de impresoras cuando corresponda. - Manejo y generación de informes de errores: mejore el manejo de errores de MQTT y los informes sobre el progreso/finalización de la impresión.
- Pruebas: Realice pruebas de ejecución exhaustivas de todas las nuevas funciones de Bambu.
Tabla de contenido
- Descripción
- Características
- Instalación
- Configuración
- Uso con Claude Desktop
- Sistemas de gestión de impresoras compatibles
- Herramientas disponibles
- Recursos disponibles
- Comandos de ejemplo para LLM
- Limitaciones de la impresora Bambu Lab
- Limitaciones y consideraciones
- Insignias
- Licencia
Descripción
Este es un servidor que permite a los usuarios de MCP conectarse con los puntos finales de API de estas impresoras 3D:
- OctoPrint
- Klipper (Moonraker)
- Dueto
- Repetidor
- Laboratorios Bambú
- Prusa Connect
- Creality/Ender
Este servidor es un servidor de Protocolo de Contexto de Modelo (MCP) que conecta a Claude con sistemas de gestión de impresoras 3D. Permite a MCP interactuar con impresoras 3D a través de las API de diversos sistemas de gestión de impresoras, como OctoPrint, Klipper (vía Moonraker), Duet, Repetier y Bambu Labs.
Nota sobre el uso de recursos : Este servidor MCP incluye funciones avanzadas de manipulación de modelos 3D que pueden consumir mucha memoria al trabajar con archivos STL grandes. Consulte la sección "Limitaciones y consideraciones" para obtener información importante sobre el uso de memoria y el rendimiento.
Características
- Obtener el estado de la impresora (temperaturas, progreso de impresión, etc.)
- Listar archivos en la impresora
- Subir archivos de código G a la impresora
- Iniciar, cancelar y supervisar trabajos de impresión
- Establecer las temperaturas de la impresora
- Manipulación avanzada de archivos STL:
- Extiende la base para una mejor adherencia.
- Escalar modelos de manera uniforme o a lo largo de ejes específicos
- Girar modelos alrededor de cualquier eje
- Traducir (mover) modelos
- Modificar secciones específicas de archivos STL (superior, inferior, central o personalizada)
- Análisis STL completo con información detallada del modelo
- Generar visualizaciones SVG multiángulo de archivos STL
- Informes de progreso en tiempo real para operaciones largas
- Manejo de errores con diagnósticos detallados
- Cortar archivos STL para generar código G
- Confirmar la configuración de temperatura en los archivos de código G
- Flujo de trabajo completo de principio a fin, desde la modificación de STL hasta la impresión
- Imprima archivos
.3mf
directamente en las impresoras Bambu Lab (a través del comando MQTT) - Lea los archivos preestablecidos de Bambu Studio (impresora, filamento, proceso) como recursos
Instalación
Prerrequisitos
- Node.js 18 o superior
- npm o hilo
Instalar desde npm
Instalar desde la fuente
Ejecutando con Docker
También puede ejecutar el servidor utilizando Docker y Docker Compose para un entorno en contenedores.
- Asegúrese de tener instalados Docker y Docker Compose.
- Copie
.env.example
a.env
y configure sus ajustes. - Construya y ejecute el contenedor:Copy
Uso de segmentaciones de datos con Docker
Tenga en cuenta que la configuración predeterminada de Docker no puede usar directamente un slicer instalado en su equipo host . Montar el ejecutable del slicer directamente desde el host al contenedor no es fiable debido a las diferencias en el sistema operativo y las bibliotecas entre el host y el contenedor.
El enfoque recomendado es instalar el segmentador de datos preferido dentro de la imagen de Docker . Esto hace que el contenedor sea autosuficiente.
Para ello, deberá modificar el Dockerfile
. A continuación, se muestra un ejemplo conceptual de cómo podría agregar PrusaSlicer u OrcaSlicer (los comandos específicos pueden variar según el segmentador, sus dependencias y los paquetes Alpine actuales):
Después de modificar el Dockerfile
, reconstruye tu imagen ( docker-compose build
). También deberás asegurarte de que la variable de entorno SLICER_PATH
en tu archivo .env
o docker-compose.yml
apunte a la ruta correcta dentro del contenedor (p. ej., /usr/local/bin/orcaslicer
). Establece también SLICER_TYPE
en orcaslicer
.
Disculpen por no incluir un rebanador específico de fábrica, pero dada la amplia variedad de rebanadores (PrusaSlicer, OrcaSlicer, Cura, etc.) y configuraciones disponibles, preinstalar uno sobrecargaría innecesariamente la imagen para muchos usuarios. Si un rebanador en particular se convierte en una solicitud frecuente, sin duda consideraré añadir soporte oficial para él en una versión futura.
Configuración
Crea un archivo .env
en el directorio donde ejecutarás el servidor o configurarás variables de entorno:
Uso con Claude Desktop
- Edite su archivo de configuración de Claude Desktop:
- Para impresoras Bambu Labs:
- Reiniciar Claude Desktop
- Conéctese a su impresora a través de Claude
Sistemas de gestión de impresoras compatibles
OctoPrint
OctoPrint es una interfaz web popular para impresoras 3D. Ofrece una API REST para controlar la impresora.
- Puerto predeterminado: 80 (http) o 443 (https)
- Autenticación: se requiere clave API
Klipper (vía Moonraker)
Klipper es un firmware para impresoras 3D que funciona con el servidor API Moonraker.
- Puerto predeterminado: 7125
- Autenticación: depende de la configuración de Moonraker
Dueto
Duet es una placa de control para impresoras 3D con su propia interfaz web (DuetWebControl).
- Puerto predeterminado: 80 (http) o 443 (https)
- Autenticación: depende de la configuración de Duet
Repetidor
Repetier-Server es un software host para impresoras 3D.
- Puerto predeterminado: 3344
- Autenticación: se requiere clave API
Laboratorios Bambú
Las impresoras Bambu Lab utilizan MQTT para el estado y el control y FTP para las operaciones de archivos.
- Autenticación: Se requiere número de serie y token de acceso (establezca
BAMBU_SERIAL
yBAMBU_TOKEN
) - Requisitos: La impresora debe estar en la misma red o tener habilitada la conexión a la nube
- Compatible con: X1C, P1S, P1P, A1 y otras impresoras Bambu Lab
Cómo encontrar el número de serie y el token de acceso de su impresora Bambu
Para conectarse a su impresora Bambu Lab, necesita dos cosas:
- Número de serie de la impresora :
- Busque en la parte posterior o inferior de su impresora una etiqueta con un número de serie (normalmente comienza con "01P" o "01A" seguido de números/letras)
- Alternativamente, abra Bambu Studio, conéctese a su impresora, vaya a Dispositivo > Administración de dispositivos y vea la información de su impresora.
- Token de acceso :
- El token de acceso es un código de seguridad necesario para conectarse directamente a su impresora
- Para impresoras de la serie P1: Vaya a la pantalla táctil, seleccione Configuración > Red > Modo LAN y verá el código de acceso
- Para impresoras de la serie X1: Vaya a la pantalla táctil, seleccione Configuración > Red > Modo LAN y habilite el Modo LAN para ver el código de acceso
- Para A1 Mini: use la aplicación Bambu Handy para conectarse a su impresora, luego vaya a Configuración > Red > Modo LAN
Nota : Si su impresora no está en la misma red local o no puede encontrar el token de acceso, es posible que deba actualizar el firmware de su impresora a la última versión para habilitar el modo LAN.
Notas de comunicación de Bambu (MQTT y FTP)
- MQTT: este servidor utiliza el protocolo MQTT local (puerto 8883, TLS) basado en hallazgos de la comunidad (por ejemplo, OpenBambuAPI ) para enviar comandos como iniciar impresiones y cancelar trabajos.
- FTP: La carga y el listado de archivos dependen actualmente del servidor FTP de la impresora (mediante el asistente de la biblioteca
bambu-js
). Nota: Esta conexión FTP podría no ser segura (FTP simple) debido a las limitaciones actuales de la biblioteca. Úsela teniendo en cuenta la seguridad de su red.
Prusa Connect
Prusa Connect es la solución basada en la nube de Prusa para administrar sus impresoras.
- Puerto predeterminado: 80 (http) o 443 (https)
- Autenticación: se requiere clave API
- Compatible con: Prusa MK4, Prusa Mini, Prusa XL y otras impresoras Prusa con Prusa Connect
Configuración de Prusa Connect
- Asegúrese de que su impresora Prusa esté actualizada al último firmware
- Conecte su impresora a su red Wi-Fi
- Cree una cuenta de Prusa Connect y registre su impresora
- Genere una clave API desde la interfaz web de Prusa Connect en Configuración > Acceso API
Nube de Creality
Creality Cloud es el sistema de gestión de Creality para sus impresoras.
- Puerto predeterminado: 80 (http) o 443 (https)
- Autenticación: Se requiere token de portador
- Compatible con: serie Ender, serie CR y otras impresoras Creality con capacidades de red
Configuración de Creality Cloud
- Instale la aplicación Creality Cloud en su dispositivo móvil
- Crea una cuenta y agrega tu impresora
- Habilite el acceso a la red local para su impresora
- Genere un token desde la aplicación Creality Cloud en Configuración > Opciones de desarrollador
Herramientas disponibles
Herramientas de manipulación de STL
Advertencia sobre el uso de memoria : Las siguientes herramientas de manipulación de STL cargan modelos 3D completos en la memoria. Para archivos STL grandes o complejos (>10 MB), estas operaciones pueden consumir una cantidad considerable de memoria. Al utilizar estas herramientas en el entorno MCP, tenga en cuenta las limitaciones de memoria.
obtener_información_stl
Obtenga información detallada sobre un archivo STL, incluidas las dimensiones, el número de vértices y el cuadro delimitador.
extender_base_stl
Amplíe la base de un archivo STL por una cantidad específica.
escala_stl
Escalar un modelo STL de manera uniforme o a lo largo de ejes específicos.
O para escalamiento no uniforme:
rotar_stl
Girar un modelo STL alrededor de ejes específicos (en grados).
traducir_stl
Mover un modelo STL a lo largo de ejes específicos (en milímetros).
fusionar_vértices
Fusiona vértices que están más cerca que la tolerancia especificada. Ayuda a cerrar pequeños huecos y puede simplificar ligeramente la malla.
modelo central
Traslade el modelo de modo que el centro de su cuadro delimitador esté en el origen mundial (0,0,0).
posición horizontal
Intente identificar la superficie plana más grande del modelo (que no esté orientada directamente hacia arriba o hacia abajo) y gire el modelo para que esta cara quede orientada hacia abajo en el plano XY (Z=0). Útil para orientar los modelos para la impresión.
modificar_sección_stl
Aplique una transformación específica a una sección seleccionada de un archivo STL. Esto permite realizar modificaciones detalladas de partes específicas de un modelo.
Para límites de sección personalizados:
generar_visualización_stl
Genere una visualización SVG de un archivo STL desde múltiples ángulos (vista frontal, lateral, superior e isométrica).
rebanada_stl
Cortar un archivo STL para generar código G.
confirmar_temperaturas
Confirmar la configuración de temperatura en un archivo de código G.
procesar_e_imprimir_stl
Procese un archivo STL (extienda la base), córtelo, confirme las temperaturas y comience a imprimir.
Nota: La orientación automática para una impresión óptima (minimizando soportes, etc.) es una tarea compleja que normalmente gestionan las GUI de segmentación (como OrcaSlicer o PrusaSlicer) y no está implementada en este servidor.
Herramientas de control de impresora
obtener_estado_de_impresora
Obtenga el estado actual de la impresora 3D.
Para las impresoras Bambu, esto actualmente solo confirma la conexión MQTT.
lista_de_archivos_de_impresora
Lista de archivos disponibles en la impresora.
Para las impresoras Bambu, enumera los archivos en el directorio gcodes
a través de FTP.
subir_gcode
Sube un archivo de código G a la impresora.
Para impresoras Bambu, se sube al directorio de gcodes
por FTP. No se puede iniciar la impresión automáticamente.
inicio_impresión
Comience a imprimir un archivo que ya está en la impresora.
No se recomienda para impresoras Bambú. Use print_3mf
para archivos Bambú .3mf
.
cancelar_impresión
Cancelar el trabajo de impresión actual.
Para las impresoras Bambu, envía el comando stop_print
a través de MQTT.
establecer_temperatura_de_impresora
Establecer la temperatura de un componente de la impresora.
No compatible con impresoras Bambu a través de comandos MQTT directos.
Herramientas específicas para el bambú
impresión_3mf
Sube un archivo .3mf
a una impresora Bambu mediante FTP e inicia el trabajo de impresión mediante un comando MQTT. Permite anular algunos parámetros de impresión, como la asignación de AMS.
Nota: El comando MQTT de la impresora no permite anular la configuración de la segmentación de datos, como la altura o la temperatura de la capa, mediante esta herramienta. Aplique estos cambios antes de generar el archivo .3mf
.
Recursos disponibles
Recursos de la impresora
printer://{host}/status
- Estado actual de la impresora 3D (limitado para Bambu actualmente)printer://{host}/files
- Lista de archivos disponibles en la impresora 3D (FTP para Bambu)printer://{host}/file/{filename}
- Contenido de un archivo de código G específico (verifica la existencia solo para Bambu)
Recursos preestablecidos de Bambú
Si la variable de entorno BAMBU_STUDIO_CONFIG_PATH
está configurada en el directorio de configuración de usuario de Bambu Studio, podrá leer sus ajustes preestablecidos guardados.
preset://bambu/machine/{preset_name}
- Lee un archivo de preajuste de máquina (por ejemplo,Bambu Lab P1S 0.4 nozzle.json
)preset://bambu/filament/{preset_name}
- Lee un archivo de preajuste de filamento (por ejemplo,Generic PLA.json
)preset://bambu/process/{preset_name}
- Lee un archivo de preajuste de proceso (por ejemplo,0.20mm Standard @BBL P1S.json
)
Ejemplo de uso: "Lea el contenido de mi ajuste preestablecido de proceso Bambu llamado '0.16mm Optimal @BBL P1S'" (Claude llamaría a ReadResource con preset://bambu/process/0.16mm Optimal @BBL P1S
)
Comandos de ejemplo para Claude
A continuación se muestran algunos comandos de ejemplo que puedes darle a Claude después de conectarse al servidor MCP:
Control de impresora
- "¿Cuál es el estado actual de mi impresora 3D?"
- "Muéstrame la lista de archivos en mi impresora".
- "Sube este código G a mi impresora: [Contenido del código G]"
- "Comience a imprimir el archivo llamado 'benchy.gcode'."
- "Cancelar el trabajo de impresión actual."
- "Establezca la temperatura del extrusor a 200 °C".
- "Establezca la temperatura de la cama a 60°C."
Manipulación e impresión de STL
- "Tome este archivo STL y extienda la base 2 pulgadas, luego envíelo a la cortadora y póngalo en cola en mi impresora".
- "Extiende la base del modelo.stl 1,5 pulgadas".
- "Escale este archivo STL al 150% de manera uniforme".
- "Modelo a escala.stl que tendrá el doble de ancho pero mantendrá la misma altura".
- "Gire este modelo 90 grados alrededor del eje Z".
- "Mueva este modelo STL 5 mm hacia arriba para crear un espacio debajo".
- "¿Puedes modificar sólo la parte superior de este modelo para hacerlo un 20% más grande?"
- "Analiza este archivo STL y dime sus dimensiones y detalles".
- "Genera una visualización de este archivo STL para que pueda ver cómo se ve".
- "Crea visualizaciones SVG de mi modelo desde diferentes ángulos".
- "Haz la base de este modelo más ancha sin cambiar su altura."
- "Corte el archivo STL modificado usando PrusaSlicer".
- "Confirme que las temperaturas en el código G son 200 °C para el extrusor y 60 °C para la cama".
- "Procesa este archivo STL, alarga la base 5 cm, córtala y comienza a imprimir, pero primero confirma las temperaturas".
- "Imprimir
~/Downloads/my_model.3mf
en la impresora Bambu." - "Cargue
~/Desktop/calibration_cube.3mf
a la impresora Bambu usando las ranuras AMS 0 y 2 y desactive la nivelación de la cama". - "Cancelar el trabajo de impresión en mi Bambu P1S".
- "¿Cuáles son las configuraciones preestablecidas de mi filamento de bambú 'PETG genérico'?"
- "Muéstrame mis ajustes preestablecidos del proceso Bambu".
Limitaciones de la impresora Bambu Lab
Debido a la naturaleza de la API de impresora Bambu Lab, existen algunas limitaciones:
- Iniciar impresiones : Para iniciar una impresión, se requiere la ruta del archivo de proyecto 3MF, el nombre del archivo gcode, el nombre de la impresión y el hash MD5. La API simplificada de este servidor aún no es totalmente compatible.
- Control de temperatura : La API de Bambu no proporciona métodos directos para configurar la temperatura. Esto requeriría comandos de código G personalizados.
- Gestión de archivos : Los archivos deben cargarse en el directorio "gcodes" de la impresora.
- Seguridad FTP: Las operaciones con archivos actualmente utilizan el servidor FTP de la impresora, que puede no ser seguro (FTP simple).
- Anulaciones de parámetros: Solo los parámetros compatibles con el comando MQTT
project_file
pueden anularse mediante la herramientaprint_3mf
(p. ej., uso de AMS, indicadores de calibración). Los ajustes de segmentación, como la altura o la temperatura de la capa, no pueden modificarse durante la impresión mediante este comando. - Actualizaciones de estado: la monitorización completa del estado en tiempo real a través de MQTT necesita mayor implementación.
Limitaciones y consideraciones
Uso de la memoria
- Archivos STL grandes : El procesamiento de archivos STL grandes o complejos puede consumir una cantidad considerable de memoria. Toda la geometría STL se carga en memoria durante las operaciones.
- Operaciones múltiples : ejecutar múltiples operaciones STL en secuencia (especialmente en archivos grandes) puede provocar que se acumule memoria si la recolección de basura no se mantiene al día.
- Entorno MCP : Dado que se ejecuta como un servidor MCP, tenga en cuenta que el entorno MCP de Claude tiene limitaciones de memoria. Las operaciones complejas con archivos STL muy grandes pueden causar problemas de memoria insuficiente.
Limitaciones de la manipulación de STL
- Modificación de sección : La función de modificación específica de sección funciona mejor con geometrías más simples. Las mallas complejas o no múltiples pueden producir resultados inesperados.
- Extensión de la base : El algoritmo de extensión de la base funciona añadiendo una nueva geometría debajo del modelo. En modelos con superficies inferiores complejas, los resultados pueden no ser perfectos.
- Manejo de errores : si bien hemos agregado un manejo de errores sólido, algunos casos extremos en archivos STL complejos aún pueden causar problemas.
Limitaciones de la visualización
- Representación SVG : La visualización SVG es una representación esquemática simplificada, no una verdadera representación 3D.
- Modelos complejos : para modelos muy complejos, es posible que la visualización no represente con precisión todos los detalles.
Consideraciones de rendimiento
- Operaciones de segmentación : los procesos de segmentación externos pueden consumir muchos recursos de la CPU y pueden llevar un tiempo considerable para modelos complejos.
- Informes de progreso : en el caso de archivos grandes, es posible que parezca que las actualizaciones de progreso se estancan en ciertas etapas del procesamiento.
Recomendaciones de pruebas
- Comience con archivos STL más pequeños (<10 MB) para probar la funcionalidad
- Supervisar el uso de memoria al procesar archivos grandes
- Pruebe modificaciones en geometrías simples antes de intentar realizar modificaciones complejas.
- Considere ejecutarlo en un sistema con al menos 4 GB de RAM disponible para operaciones más grandes
Insignias
Licencia
GPL-2.0
You must be authenticated.
Tools
Permite la interacción con sistemas de gestión de impresoras 3D a través de un servidor MCP, lo que admite la manipulación de archivos STL, el corte y el control de impresoras como OctoPrint, Klipper, Duet y más.