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.
Сервер 3D-принтера MCP
- Печать Bambu
.3mf
: Добавлен инструментprint_3mf
специально для принтеров Bambu Lab. Он загружает файл.3mf
и отправляет команду печати напрямую через MQTT на основе спецификаций OpenBambuAPI. - Прямое взаимодействие MQTT (Bambu): переработана обработка команд Bambu (
print_3mf
,cancelJob
) для использования прямого MQTT (порт TLS 8883) вместо использования исключительноbambu-js
для команд. - Анализ файлов
.3mf
: реализован парсер (src/3mf_parser.ts
) для чтения метаданных и настроек слайсера, специфичных для Bambu (изproject_settings.config
) в файлах.3mf
. - Ресурсы предустановок Bambu: добавлена поддержка чтения файлов предустановок Bambu Studio (
machine
,filament
,process
) как ресурсов MCP (например,preset://bambu/process/MyPreset
), если установленBAMBU_STUDIO_CONFIG_PATH
. - Интеграция OrcaSlicer: добавлена поддержка использования OrcaSlicer через интерфейс командной строки для инструмента
slice_stl
. - Новые инструменты манипулирования STL: добавлены инструменты
merge_vertices
,center_model
иlay_flat
для базовой подготовки модели с использованиемthree.js
. - Обновление конфигурации: добавлена переменная среды
BAMBU_STUDIO_CONFIG_PATH
для предварительной загрузки. - Примечание по использованию FTP: в документации указано, что в настоящее время файловые операции для Bambu используют потенциально незащищенный FTP через
bambu-js
. - Достижение паритета функций: повышение функциональности (подробности статуса, операции с файлами, прямая печать, где это возможно, обработка предустановок) для OctoPrint, Klipper, Duet, Repetier, Prusa Connect и Creality Cloud до уровня надежности, запланированного для внедрения Bambu.
- Реализация полного статуса Bambu MQTT: рефакторинг
getStatus
для Bambu для подписки на отчеты MQTT и сохранения состояния в реальном времени. - Реализуйте надежное сопоставление AMS: замените логику заполнителя; правильно анализируйте и используйте сопоставление AMS из конфигурации слайсера
.3mf
или пользовательских переопределений для команды печати MQTT. - Реализуйте переопределения печати
.3mf
: добавьте логику в инструментprint_3mf
для обработки переопределений, предоставленных пользователем (например, флагов калибровки), и потенциально общих настроек слайсера, если это осуществимо через MQTT/G-код. - Вычислить хэш MD5: добавить логику для вычисления и включить хэш MD5 файла
.3mf
в команду печати MQTT (необязательно, но рекомендуется протоколом). - Реорганизация операций Bambu File: рассмотрите возможность замены операций FTP
bambu-js
(getFiles
,uploadFile
) прямыми методами MQTT, если это возможно/стабильно, или добавьте поддержку FTPS вbambu-js
. - Добавлена предустановленная логика обнаружения: улучшен список предустановленных ресурсов (в настоящее время списки основаны на потенциальных именах файлов, может анализировать файлы индекса, если они существуют).
- Расширение поддержки
.3mf
: добавление поддержки печати.3mf
для других типов принтеров, где это применимо. - Обработка ошибок и отчетность: улучшенная обработка ошибок MQTT и отчетность о ходе/завершении печати.
- Тестирование: Проведите тщательное тестирование всех новых функций Bambu во время выполнения.
Оглавление
- Описание
- Функции
- Установка
- Конфигурация
- Использование с Claude Desktop
- Поддерживаемые системы управления принтерами
- Доступные инструменты
- Доступные ресурсы
- Примеры команд для LLM
- Ограничения принтера Bambu Lab
- Ограничения и соображения
- Значки
- Лицензия
Описание
Это сервер, который позволяет пользователям MCP подключаться к конечным точкам API следующих 3D-принтеров:
- OctoPrint
- Клиппер (Лунный гонщик)
- Дуэт
- Репетитор
- Лаборатории Бамбу
- Пруса Коннект
- Креативность/Эндер
Этот сервер представляет собой сервер Model Context Protocol (MCP) для соединения Claude с системами управления 3D-принтерами. Он позволяет MCP взаимодействовать с 3D-принтерами через API различных систем управления принтерами, таких как OctoPrint, Klipper (через Moonraker), Duet, Repetier и принтеры Bambu Labs.
Примечание об использовании ресурсов : этот сервер MCP включает расширенные функции манипуляции 3D-моделями, которые могут быть ресурсоемкими при работе с большими файлами STL. Пожалуйста, ознакомьтесь с разделом «Ограничения и соображения» для получения важной информации об использовании памяти и производительности.
Функции
- Получить состояние принтера (температуру, ход печати и т. д.)
- Список файлов на принтере
- Загрузите файлы G-кода на принтер
- Запуск, отмена и мониторинг заданий печати
- Установите температуру принтера
- Расширенные возможности работы с файлами STL:
- Расширьте основание для лучшего сцепления
- Масштабировать модели равномерно или вдоль определенных осей
- Вращение моделей вокруг любой оси
- Перевести (переместить) модели
- Изменить определенные разделы файлов STL (верхний, нижний, центральный или пользовательский)
- Комплексный анализ STL с подробной информацией о модели
- Создание многоракурсных SVG-визуализаций файлов STL
- Отчеты о ходе выполнения длительных операций в режиме реального времени
- Обработка ошибок с подробной диагностикой
- Разбиение STL-файлов на части для генерации G-кода
- Подтвердите настройки температуры в файлах G-кода
- Полный сквозной рабочий процесс от модификации STL до печати
- Печатайте файлы
.3mf
напрямую на принтерах Bambu Lab (через команду MQTT) - Прочтите файлы предустановок Bambu Studio (принтер, нить, процесс) как ресурсы
Установка
Предпосылки
- Node.js 18 или выше
- нпм или пряжа
Установить из npm
Установить из источника
Работа с Docker
Вы также можете запустить сервер с помощью Docker и Docker Compose для контейнеризированной среды.
- Убедитесь, что у вас установлены Docker и Docker Compose.
- Скопируйте
.env.example
в.env
и настройте параметры. - Соберите и запустите контейнер:Copy
Использование слайсеров с Docker
Обратите внимание, что настройка Docker по умолчанию не может напрямую использовать слайсер, установленный на вашей хост-машине . Монтирование исполняемого файла слайсера непосредственно с хоста в контейнер ненадежно из-за различий в операционной системе и библиотеках между вашим хостом и контейнером.
Рекомендуемый подход — установить ваш предпочтительный слайсер внутри образа Docker . Это делает контейнер самодостаточным.
Для этого вам нужно будет изменить Dockerfile
. Вот концептуальный пример того, как вы можете добавить PrusaSlicer или OrcaSlicer (конкретные команды могут различаться в зависимости от слайсера, его зависимостей и текущих пакетов Alpine):
После изменения Dockerfile
перестройте свой образ ( docker-compose build
). Вам также нужно будет убедиться, что переменная среды SLICER_PATH
в вашем файле .env
или docker-compose.yml
указывает на правильный путь внутри контейнера (например, /usr/local/bin/orcaslicer
). Также установите SLICER_TYPE
на orcaslicer
.
Извините, что не включил конкретный слайсер из коробки, но, учитывая широкий выбор слайсеров (PrusaSlicer, OrcaSlicer, Cura и т. д.) и доступных конфигураций, предварительная установка одного из них излишне раздула бы образ для многих пользователей. Если конкретный слайсер станет очень распространенным запросом, я, безусловно, могу рассмотреть возможность добавления официальной поддержки для него в будущей версии.
Конфигурация
Создайте файл .env
в каталоге, где вы будете запускать сервер, или задайте переменные среды:
Использование с Claude Desktop
- Отредактируйте файл конфигурации Claude Desktop:
- Для принтеров Bambu Labs:
- Перезагрузить рабочий стол Клода
- Подключитесь к принтеру через Claude
Поддерживаемые системы управления принтерами
OctoPrint
OctoPrint — популярный веб-интерфейс для 3D-принтеров. Он предоставляет REST API для управления принтером.
- Порт по умолчанию: 80 (http) или 443 (https)
- Аутентификация: требуется ключ API
Клиппер (через Moonraker)
Klipper — это прошивка для 3D-принтеров, работающая с API-сервером Moonraker.
- Порт по умолчанию: 7125
- Аутентификация: зависит от конфигурации вашего Moonraker
Дуэт
Duet — плата управления для 3D-принтеров с собственным веб-интерфейсом (DuetWebControl).
- Порт по умолчанию: 80 (http) или 443 (https)
- Аутентификация: зависит от конфигурации Duet.
Репетитор
Repetier-Server — это программное обеспечение для 3D-принтеров.
- Порт по умолчанию: 3344
- Аутентификация: требуется ключ API
Лаборатории Бамбу
Принтеры Bambu Lab используют MQTT для статуса и управления, а также FTP для файловых операций.
- Аутентификация: требуется серийный номер и токен доступа (задайте
BAMBU_SERIAL
иBAMBU_TOKEN
) - Требования: принтер должен быть в той же сети или иметь включенное облачное подключение.
- Совместимо с: X1C, P1S, P1P, A1 и другими принтерами Bambu Lab
Как найти серийный номер и токен доступа вашего принтера Bambu
Для подключения к принтеру Bambu Lab вам понадобятся две вещи:
- Серийный номер принтера :
- Найдите на задней или нижней панели принтера наклейку с серийным номером (обычно он начинается с «01P» или «01A», за которыми следуют цифры/буквы).
- Либо откройте Bambu Studio, подключитесь к принтеру, перейдите в раздел «Устройство» > «Управление устройствами» и просмотрите информацию о принтере.
- Токен доступа :
- Токен доступа — это код безопасности, необходимый для прямого подключения к вашему принтеру.
- Для принтеров серии P1: перейдите на сенсорный экран, выберите «Настройки» > «Сеть» > «Режим локальной сети», и вы увидите код доступа.
- Для принтеров серии X1: перейдите на сенсорный экран, выберите «Настройки» > «Сеть» > «Режим локальной сети» и включите «Режим локальной сети», чтобы увидеть код доступа.
- Для A1 Mini: используйте приложение Bambu Handy для подключения к принтеру, затем перейдите в «Настройки» > «Сеть» > «Режим локальной сети».
Примечание : Если ваш принтер не находится в той же локальной сети или вы не можете найти токен доступа, вам может потребоваться обновить прошивку принтера до последней версии, чтобы включить режим локальной сети.
Заметки о коммуникации Bambu (MQTT и FTP)
- MQTT: этот сервер использует локальный протокол MQTT (порт 8883, TLS) на основе результатов работы сообщества (например, OpenBambuAPI ) для отправки команд, таких как запуск печати и отмена заданий.
- FTP: Список файлов и загрузка в настоящее время зависят от FTP-сервера, запущенного на принтере (через помощника библиотеки
bambu-js
). Примечание: Это FTP-соединение может быть незащищенным (обычный FTP) из-за текущих ограничений библиотеки. Используйте с учетом безопасности вашей сети.
Пруса Коннект
Prusa Connect — это собственное облачное решение Prusa для управления принтерами.
- Порт по умолчанию: 80 (http) или 443 (https)
- Аутентификация: требуется ключ API
- Совместимо с: Prusa MK4, Prusa Mini, Prusa XL и другими принтерами Prusa с Prusa Connect
Настройка Prusa Connect
- Убедитесь, что на вашем принтере Prusa установлена последняя версия прошивки.
- Подключите принтер к сети Wi-Fi.
- Создайте учетную запись Prusa Connect и зарегистрируйте свой принтер
- Сгенерируйте ключ API из веб-интерфейса Prusa Connect в разделе «Настройки» > «Доступ API».
Облако Creality
Creality Cloud — это система управления принтерами компании Creality.
- Порт по умолчанию: 80 (http) или 443 (https)
- Аутентификация: требуется токен на предъявителя
- Совместимо с: сериями Ender, CR и другими принтерами Creality с сетевыми возможностями.
Настройка Creality Cloud
- Установите приложение Creality Cloud на свое мобильное устройство
- Создайте учетную запись и добавьте свой принтер
- Включите доступ к локальной сети для вашего принтера.
- Создайте токен из приложения Creality Cloud в разделе «Настройки» > «Параметры разработчика».
Доступные инструменты
Инструменты для работы с STL
Предупреждение об использовании памяти : следующие инструменты манипуляции STL загружают целые 3D-модели в память. Для больших или сложных файлов STL (>10 МБ) эти операции могут потреблять значительный объем памяти. При использовании этих инструментов в среде MCP помните об ограничениях памяти.
получить_stl_информацию
Получите подробную информацию о файле STL, включая размеры, количество вершин и ограничивающую рамку.
расширить_stl_base
Расширить базу STL-файла на указанную величину.
масштаб_стл
Масштабируйте модель STL равномерно или вдоль определенных осей.
Или для неравномерного масштабирования:
вращать_стл
Поворот модели STL вокруг определенных осей (в градусах).
translate_stl
Перемещать модель STL вдоль определенных осей (в миллиметрах).
merge_vertices
Объединить вершины, которые находятся ближе указанного допуска. Помогает закрыть небольшие зазоры и может немного упростить сетку.
центр_модель
Переместите модель так, чтобы центр ее ограничивающей рамки находился в начале координат (0,0,0).
lay_flat
Попытайтесь определить самую большую плоскую поверхность модели (которая еще не обращена прямо вверх или вниз) и поверните модель так, чтобы эта грань была ориентирована вниз на плоскости XY (Z=0). Полезно для ориентации моделей для печати.
изменить_stl_section
Применить определенное преобразование к выбранному разделу файла STL. Это позволяет выполнять детальные модификации определенных частей модели.
Для пользовательских границ раздела:
генерировать_stl_визуализацию
Создайте SVG-визуализацию STL-файла с разных ракурсов (вид спереди, сбоку, сверху и изометрический).
ломтик_стл
Разрежьте STL-файл для генерации G-кода.
подтвердить_температуры
Подтвердите настройки температуры в файле G-кода.
процесс_и_печать_stl
Обработайте файл STL (расширьте базу), нарежьте его, подтвердите температуры и начните печать.
Примечание: Автоматическая ориентация для оптимальной печати (минимизация поддержек и т. д.) — сложная задача, обычно решаемая графическими интерфейсами слайсеров (например, OrcaSlicer или PrusaSlicer), и не реализованная на этом сервере.
Инструменты управления принтером
получить_статус_принтера
Получите текущий статус 3D-принтера.
Для принтеров Bambu в настоящее время подтверждается только соединение MQTT.
список_файлов_принтера
Список файлов, доступных на принтере.
Для принтеров Bambu выводит список файлов в каталоге gcodes
через FTP.
upload_gcode
Загрузите файл G-кода на принтер.
Для принтеров Bambu, загрузка в каталог gcodes
через FTP. Невозможно начать печать автоматически.
начать_печатать
Начните печать файла, который уже находится на принтере.
Не рекомендуется для принтеров Bambu. Используйте print_3mf
для файлов Bambu .3mf
.
отменить_печать
Отменить текущее задание на печать.
Для принтеров Bambu отправляет команду stop_print
через MQTT.
установить_температуру_принтера
Установите температуру компонента принтера.
Не поддерживается для принтеров Bambu через прямые команды MQTT.
Инструменты, специфичные для бамбука
print_3mf
Загружает файл .3mf
на принтер Bambu через FTP и инициирует задание печати через команду MQTT. Позволяет переопределять некоторые параметры печати, такие как сопоставление AMS.
Примечание: Переопределение настроек слайсера, таких как высота слоя или температура, с помощью этого инструмента не поддерживается командой MQTT принтера. Примените эти изменения перед созданием файла .3mf
.
Доступные ресурсы
Ресурсы принтера
printer://{host}/status
- Текущее состояние 3D-принтера (в настоящее время ограничено для Bambu)printer://{host}/files
- Список файлов, доступных на 3D-принтере (FTP для Bambu)printer://{host}/file/{filename}
— Содержимое определенного файла G-кода (проверяет существование только для Bambu)
Ресурсы предустановок Bambu
Если переменная среды BAMBU_STUDIO_CONFIG_PATH
установлена в каталоге пользовательских настроек Bambu Studio, вы можете прочитать сохраненные вами пресеты.
preset://bambu/machine/{preset_name}
— считывает файл предустановок машины (например,Bambu Lab P1S 0.4 nozzle.json
)preset://bambu/filament/{preset_name}
— считывает файл предустановок нити (например,Generic PLA.json
)preset://bambu/process/{preset_name}
— считывает файл предустановок процесса (например,0.20mm Standard @BBL P1S.json
)
Пример использования: «Прочитать содержимое моей предварительной настройки процесса Bambu с именем «0.16mm Optimal @BBL P1S»» (Клод вызвал бы ReadResource с preset://bambu/process/0.16mm Optimal @BBL P1S
)
Примеры команд для Клода
Вот несколько примеров команд, которые вы можете дать Клоду после подключения к серверу MCP:
Управление принтером
- «Каково текущее состояние моего 3D-принтера?»
- «Покажи мне список файлов на моем принтере».
- «Загрузите этот G-код на мой принтер: [содержимое G-кода]»
- «Начать печать файла с именем 'benchy.gcode'».
- «Отменить текущее задание на печать».
- «Установите температуру экструдера на 200°C».
- «Установите температуру кровати на 60°C».
Обработка и печать STL
- «Возьмите этот STL-файл и удлините основание на 2 дюйма, затем отправьте его на слайсер и поставьте в очередь на моем принтере».
- «Увеличьте основание model.stl на 1,5 дюйма».
- «Масштабировать этот STL-файл на 150% равномерно».
- «Увеличьте ширину model.stl в два раза, но сохраните ту же высоту».
- «Поверните эту модель на 90 градусов вокруг оси Z».
- «Переместите эту модель STL на 5 мм вверх, чтобы создать зазор снизу».
- «Можете ли вы изменить только верхнюю часть этой модели, чтобы сделать ее на 20% больше?»
- «Проанализируйте этот STL-файл и сообщите мне его размеры и детали».
- «Создайте визуализацию этого STL-файла, чтобы я мог увидеть, как он выглядит».
- «Создать SVG-визуализации моей модели с разных ракурсов».
- «Сделайте основание этой модели шире, не меняя ее высоту».
- «Нарежьте измененный файл STL с помощью PrusaSlicer».
- «Убедитесь, что температура в G-коде составляет 200°C для экструдера и 60°C для стола».
- «Обработайте этот STL-файл, удлините основание на 2 дюйма, разрежьте его и начните печать, но сначала проверьте температуру».
- «Распечатать
~/Downloads/my_model.3mf
на принтере Bambu». - «Загрузите
~/Desktop/calibration_cube.3mf
в принтер Bambu, используя слоты AMS 0 и 2, и отключите выравнивание платформы». - «Отмените задание печати на моем Bambu P1S».
- «Каковы настройки в моей настройке филамента Bambu «Универсальный PETG»?»
- «Покажите мне мои настройки процесса Bambu».
Ограничения принтера Bambu Lab
Из-за особенностей API принтера Bambu Lab существуют некоторые ограничения:
- Запуск печати : для запуска печати требуется путь к файлу проекта 3MF, имя файла gcode, имя печати и хэш MD5. Упрощенный API на этом сервере пока не поддерживает это полностью.
- Контроль температуры : API Bambu не предоставляет прямых методов для установки температур. Для этого потребуются специальные команды G-кода.
- Управление файлами : Файлы необходимо загрузить в каталог «gcodes» на принтере.
- Безопасность FTP: в настоящее время файловые операции используют FTP-сервер принтера, который может быть незащищенным (обычный FTP).
- Переопределение параметров: только параметры, поддерживаемые командой MQTT
project_file
могут быть переопределены с помощью инструментаprint_3mf
(например, использование AMS, флаги калибровки). Настройки слайсера, такие как высота слоя или температура, не могут быть изменены во время печати с помощью этой команды. - Обновления статуса: полный мониторинг статуса в реальном времени через MQTT требует дальнейшей реализации.
Ограничения и соображения
Использование памяти
- Большие файлы STL : Обработка больших или сложных файлов STL может потреблять значительный объем памяти. Вся геометрия STL загружается в память во время операций.
- Множественные операции : Последовательное выполнение нескольких операций STL (особенно для больших файлов) может привести к накоплению памяти, если сборка мусора не справляется.
- Среда MCP : Поскольку это работает как сервер MCP, учтите, что среда MCP Клода имеет ограничения памяти. Сложные операции с очень большими файлами STL могут вызвать проблемы с нехваткой памяти.
Ограничения манипуляций STL
- Модификация секции : Функция модификации, специфичная для секции, лучше всего работает на более простых геометриях. Сложные или не-многообразные сетки могут давать неожиданные результаты.
- Расширение базы : алгоритм расширения базы работает путем добавления новой геометрии под модель. Для моделей со сложными нижними частями результаты могут быть неидеальными.
- Обработка ошибок : хотя мы добавили надежную обработку ошибок, некоторые пограничные случаи в сложных файлах STL все еще могут вызывать проблемы.
Ограничения визуализации
- Представление SVG : Визуализация SVG представляет собой упрощенное схематическое представление, а не настоящую 3D-визуализацию.
- Сложные модели : для очень сложных моделей визуализация может неточно отображать все детали.
Соображения производительности
- Операции слайсинга : Внешние процессы слайсинга могут быть ресурсоемкими для ЦП и могут занять значительное время для сложных моделей.
- Отчеты о ходе выполнения : для больших файлов обновления хода выполнения могут задерживаться на определенных этапах обработки.
Рекомендации по тестированию
- Начните с небольших файлов STL (< 10 МБ) для проверки функциональности.
- Мониторинг использования памяти при обработке больших файлов
- Протестируйте модификации на простых геометрических формах, прежде чем пробовать сложные.
- Для более масштабных операций рассмотрите возможность работы в системе с объемом оперативной памяти не менее 4 ГБ.
Значки
Лицензия
GPL-2.0
You must be authenticated.
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Tools
Обеспечивает взаимодействие с системами управления 3D-принтерами через сервер MCP, поддерживая обработку файлов STL, нарезку и управление такими принтерами, как OctoPrint, Klipper, Duet и другими.
Related MCP Servers
- AsecurityFlicenseAqualityAn MCP server implementation that enables interaction with the Unstructured API, providing tools to list, create, update, and manage sources, destinations, and workflows.Last updated -3926
- -securityAlicense-qualityAn 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 -3PythonMIT License
- -securityAlicense-qualityAn 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 -8TypeScriptMIT License
- -securityFlicense-qualityAn 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 -2Python