Token导航 LogoToken导航TokenDH.com
Bambu Lab MCP Server logo
设计创作未说明官方级别未说明来源级核验

Bambu Lab MCP Server

MCP Server

Bambu Lab MCP Server是一个用于Bambu Lab 3D打印机的全面控制服务器,支持通过MQTT、FTP、摄像头、AMS和X.509认证进行实时控制和监控。

工具数

24

提示词数

0

GitHub Stars

16

资源数

0
TypeScriptClaude设计Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

schwarztim

提供方

schwarztim

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Bambu实验室MCP服务器

Bambu Lab 3D打印机的模型上下文协议服务器

![License: MIT](https://opensource.org/licenses/MIT) ![TypeScript](https://www.typescriptlang.org/) ![MCP](https://modelcontextprotocol.io/) ](https://nodejs.org/)

_通过Claude AI完全控制Bambu Lab打印机——MQTT、FTP、摄像头、AMS和X.509身份验证_

特性 · 快速开始 · 工具 · 背景

______________________________________________________________________

概述

Bambu Lab 3D打印机(P1P、P1S、X1C、A1、A1 Mini)的完整MCP服务器。通过本地MQTT进行连接,以实现实时控制和监控,通过FTPS文件上传和X.509证书签名来绕过固件身份验证限制。

25工具 涵盖打印控制、状态监控、摄像头、AMS灯丝管理、温度、LED控制等。

背景

2025年1月,Bambu Lab推出了需要本地局域网打印机控制身份验证的固件更新, 破坏所有第三方工具 --OctoPrint,家庭助理集成,自定义脚本,一切。

社区研究人员从Bambu Connect桌面应用程序中提取了X.509证书和私钥,恢复了第三方访问。此MCP服务器基于该工作构建,通过Claude提供全面的打印机控制。

主要参考文献:

特性

  • 本地MQTT控制 --打印、暂停、恢复、停止、速度配置文件、G代码执行
  • 实时状态 --使用缓存+新状态工具从MQTT报告中连续缓存
  • 相机控制 --开始/停止录制和延时
  • AMS管理 --更换灯丝托盘,卸载灯丝
  • FTP文件上传 --FTPS上传到打印机SD卡(端口990)
  • X.509签名 --通过证书签名绕过固件身份验证限制
  • 温度控制 --设置带安全限制的喷嘴/床温度
  • 对象跳过 --跳过失败的对象而不停止打印
  • 速度曲线 --静音、标准、运动、Ludicrous(或原始百分比)
  • LED控制 --腔室和工作灯
  • 安全确认 --阻止G代码、温度限制、路径穿越防止

快速开始

先决条件

  • Node.js 18+
  • 本地网络上的Bambu Lab打印机
  • 开发人员模式已启用 在打印机上(推荐--设置>仅局域网>开发人员模式)

安装

git clone https://github.com/schwarztim/bambu-mcp.git
cd bambu-mcp
npm install
npm run build

选项A:开发者模式(推荐)

在打印机上启用开发人员模式,然后使用LAN凭据进行配置:

# Grab these from your printer screen:
#   IP Address:    WLAN → IP
#   Access Code:   WLAN → Access Code (8-digit)
#   Serial Number: Settings → Device → Serial Number

添加 ~/.claude/user-mcps.json:

{
  "mcpServers": {
    "bambu-lab": {
      "command": "node",
      "args": ["/path/to/bambu-mcp/dist/index.js"],
      "env": {
        "BAMBU_LAB_MQTT_HOST": "192.168.1.100",
        "BAMBU_LAB_MQTT_PASSWORD": "YOUR_ACCESS_CODE",
        "BAMBU_LAB_DEVICE_ID": "YOUR_SERIAL_NUMBER"
      }
    }
  }
}

开发者模式提供最可靠的体验。所有MQTT命令都会自动使用X.509证书进行签名。

选项B:浏览器登录(无开发者模式)

如果你不想启用开发人员模式(例如,为了保持Bambu Handy的工作状态),你可以通过浏览器登录进行身份验证:

npm run setup

这将打开Firefox(代替Chrome使用,以避免谷歌SSO机器人检测),允许您登录Bambu Lab帐户,并自动发现您的打印机。凭据保存到 ~/.bambu-mcp/credentials.json 并自动加载——不需要env变量。

注: 代币有效期约为3个月。跑 npm run setup 再次刷新。

然后用Claude Code注册(不需要env变量):

{
  "mcpServers": {
    "bambu-lab": {
      "command": "node",
      "args": ["/path/to/bambu-mcp/dist/index.js"]
    }
  }
}
没有开发人员模式的限制: 印刷 .3mf 文件通过 project_file 命令需要开发人员模式。 .gcode 文件和所有其他命令(停止、暂停、恢复、状态、速度、G代码、相机、AMS)都可以在没有它的情况下工作。

工具

云API(4个工具)

工具说明
get_user_profile获取Bambu Lab云帐户配置文件
list_printers列出注册到云帐户的所有打印机
get_printer_status通过云API获取打印机状态
sign_message使用X.509证书对消息进行签名,以绕过固件身份验证

打印控制(7个工具)

工具说明
printer_stop立即停止当前打印
printer_pause暂停当前打印
printer_resume恢复暂停的打印
printer_set_speed通过配置文件(静音/标准/运动/滑稽)或百分比设置速度
printer_send_gcode发送G代码命令(危险命令被阻止)
printer_print_file从打印机SD卡开始打印文件
skip_objects在多对象打印过程中跳过特定对象

状态和信息(3个工具)

工具说明
printer_get_status请求完整状态推送(时间、进度、AMS、粉丝等)
printer_get_cached_status返回上次缓存的状态(无pushall——用于频繁轮询)
printer_get_version获取固件和模块版本信息

相机(2个工具)

工具说明
camera_record启用/禁用摄像头录制
camera_timelapse启用/禁用延时录像

AMS和Filament(2个工具)

工具说明
ams_change_filament更换为其他AMS托盘(0-3)
ams_unload_filament从挤出机中卸载当前长丝

硬件(3个工具)

工具说明
set_temperature设置喷嘴或床温(有安全限制)
set_nozzle设置喷嘴直径以选择轮廓
led_control控制室/工作LED灯

连接和上传(3个工具)

工具说明
mqtt_connect通过TLS上的本地MQTT连接到打印机
mqtt_disconnect断开与MQTT的连接
ftp_upload_file通过FTPS将.gcode/.3mf/.stl上传到打印机

建筑

Claude Code / AI
    |
    v
Bambu Lab MCP Server
  |-- Cloud API (bambulab.com)
  |-- MQTT Client (port 8883, TLS)
  |-- FTP Client (port 990, FTPS)
    |
    v
Bambu Lab Printer (P1P/P1S/X1C/A1)

运作原理

  1. 消息队列遥测传输 使用LAN访问代码通过端口8883上的TLS连接到打印机
  2. 状态报告包括 持续缓存 当他们谈到MQTT报告主题时
  3. 在MQTT请求主题上发送命令,并使用序列ID进行响应匹配
  4. 文件传输协议 通过FTPS(端口990)将文件上传到打印机SD卡
  5. X.509签名 将提取的Bambu Connect证书用于经过身份验证的命令

配置

环境变量

变量必填描述
BAMBU_LAB_MQTT_HOST对于MQTT打印机IP地址
BAMBU_LAB_MQTT_PASSWORD用于MQTTLAN访问代码
BAMBU_LAB_DEVICE_ID对于MQTT打印机序列号
BAMBU_LAB_MQTT_PORTMQTT端口(默认值:8883)
BAMBU_LAB_MQTT_USERNAMEMQTT用户名(默认值:bblp)
BAMBU_LAB_COOKIES对于云用于云API的会话Cookie
BAMBU_LAB_BASE_URL云API基础URL
BAMBU_LAB_USER_IDBambu Lab数字用户ID(用于签名的MQTT命令)
BAMBU_LAB_APP_CERT_ID覆盖内置的X.509证书ID
BAMBU_APP_PRIVATE_KEY覆盖内置的X.509私钥
BAMBU_APP_CERTIFICATE覆盖内置X.509证书

查找打印机信息

  • IP地址:打印机屏幕→ WLAN → IP
  • 访问码:打印机屏幕→ WLAN → 访问代码(8位)
  • 序列号:设置→ 设备→ 序列号

安全

X.509证书

此服务器包括从Bambu Connect桌面应用程序中公开提取的X.509证书。这不是秘密,这是 2025年1月公开披露 并嵌入到Bambu Connect的每个副本中。

所有MQTT命令现在 自动签名 RSA-SHA256使用此证书。这是2025年1月以后的固件所要求的——未签名的命令会被错误拒绝 84033543基本命令(停止、暂停、恢复、速度、G代码)不需要开发人员模式。

可以通过以下方式覆盖证书 BAMBU_APP_PRIVATE_KEYBAMBU_APP_CERTIFICATE 如果Bambu Lab轮换凭据,则使用环境变量。集 BAMBU_LAB_USER_ID (您的数字Bambu实验室用户ID)以实现完全兼容性-通过云API找到它 /v1/design-user-service/my/preference 终点。

安全特性

  • 阻止G代码:M112(紧急停止)、M502(出厂重置)、M500/M501(EEPROM)、M997(固件更新)、M999(重启)
  • 温度限制:喷嘴最高温度300C,床最高温度120C
  • 文件验证:只允许上传.gcode、.3mf、.stl
  • 路径遍历预防:没有 .. 或FTP上传中的绝对路径

最佳实践

  1. 将打印机保持在单独的VLAN上
  2. 定期轮换局域网访问代码
  3. 永不承诺 .env 文件(已在 .gitignore)

致谢

许可证

麻省理工学院——见 许可证 了解详情。

免责声明

与Bambu实验室无关或未经其认可。使用风险由您自行承担。

目录标签

目录标签

TypeScriptClaude设计3D打印控制本地部署MQTTFTPAMS管理X.509认证

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

24

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明sessionlocal-only

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP