3D打印机控制协议服务器

Bambu MCP是一个用于控制Bambu Lab 3D打印机的模型上下文协议服务器,支持从任何MCP兼容的AI助手管理单台或多台打印机。

  • by griches
  • TypeScript
  • 本地部署
  • 57 星标
  • 更新于
在 GitHub 查看 griches/bambu-mcp

使用说明

班布MCP

A. 模型上下文协议 用于控制Bambu Lab 3D打印机的(MCP)服务器。通过任何兼容MCP的AI助手管理一台打印机或整个打印机组。

特性

  • 多打印机机群管理 --针对特定打印机、所有打印机,或仅配置一台时自动选择
  • 完全打印控制 --开始、暂停、恢复、停止打印和在打印过程中跳过对象。自动检测多版3MF文件中的正确印版
  • 文件管理 --通过FTP列出、上传、下载和删除文件
  • 硬件控制 --灯光、温度、速度曲线、喷嘴配置
  • AMS支持 --更换灯丝托盘,卸载灯丝
  • 相机 --启用/禁用录制和延时
  • 原始G代码 --发送带有安全限制的自定义命令
  • 持久配置 --打印机凭据已保存到 ~/.bambu-mcp/printers.json

支持的打印机

测试方法:

  • 班布实验室P1S
  • 班布实验室H2D
  • 班布实验室A1迷你

应适用于任何支持局域网MQTT的Bambu Lab打印机(X1C、X1、P1P、A1等)。

打印机设置

在使用此MCP服务器之前,必须将每台打印机配置为本地访问:

  1. 启用仅局域网模式 --在打印机的触摸屏上,转到 设置>网络 并切换到 仅局域网模式。这是本地MQTT命令(包括启动打印)工作所必需的。云模式会阻止本地打印命令。

  2. 启用开发者模式 --在打印机的触摸屏上,转到 设置>网络>仅局域网模式 并启用 开发者模式。这允许第三方工具通过本地网络发送命令。

  3. 记下访问代码 --启用仅局域网/开发人员模式后 访问代码 将显示在打印机屏幕上。你需要这个来连接。

注: 启用仅局域网模式意味着您将失去云功能(通过Bambu Handy应用程序进行远程监控、云打印)。所有控制必须在本地完成。

系统要求

  • Node.js 18+
  • Bambu Lab打印机位于同一本地网络上
  • 打印机输入 仅局域网模式 随着 开发者模式 启用
  • 打印机 访问码 和 序列号 (在打印机设置>WLAN/设备中找到)

安装

npx快速入门

npx @griches/bambu-mcp

克劳德代码

claude mcp add bambu -- npx @griches/bambu-mcp

克劳德桌面版

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "bambu": {
      "command": "npx",
      "args": ["@griches/bambu-mcp"]
    }
  }
}

从源代码构建

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

然后使用绝对路径进行配置:

{
  "mcpServers": {
    "bambu": {
      "command": "node",
      "args": ["/absolute/path/to/bambu-mcp/dist/index.js"]
    }
  }
}

添加打印机

服务器运行后,使用添加打印机 add_printer 工具。您需要从每台打印机获得以下内容:

  • IP地址 --在打印机的触摸屏上的“设置”>“WLAN”下,或Bambu Studio的“设备”选项卡中找到
  • 访问代码 --在触摸屏上的“设置”>“WLAN”下,或Bambu Studio的“设备”选项卡中找到
  • 序列号 --在触摸屏上的“设置”>“设备”下,或Bambu Studio的“设备”选项卡中找到

示例(通过AI助手):

“将我的P1S添加到192.168.0.136,访问代码为30430928,序列号为01P00A3B0900744”

打印机配置保存到 ~/.bambu-mcp/printers.json 并在服务器重启时自动重新连接。

工具

管理

工具 说明
add_printer 将打印机添加到打印机组(IP、访问代码、序列号)
remove_printer 卸下打印机并断开连接
reconnect_printer 网络更改后重新连接打印机(或全部)
list_printers 列出所有已配置的打印机及其连接状态

状态

工具 说明
get_status 获取打印机状态——打印进度、温度、速度、AMS、灯光
get_version 获取固件和模块版本信息

打印控制

工具 说明
start_print 开始从打印机的SD卡打印文件。自动检测3MF文件的车牌号
pause_print 暂停当前打印
resume_print 恢复暂停的打印
stop_print 取消当前打印
skip_objects 跳过多对象打印中的特定对象

硬件

工具 说明
set_speed 设置打印速度--静音、标准、运动、滑稽或自定义%
set_light 控制室和工作灯
set_temperature 设置喷嘴或床温(有安全限制)
set_nozzle 设置喷嘴直径以选择轮廓

文件管理

工具 说明
list_files 列出打印机SD卡上的文件
upload_file 将.3mf或.gcode文件上传到打印机
download_file 从打印机下载文件
delete_file 从打印机中删除文件

相机

工具 说明
set_recording 启用或禁用摄像头录制
set_timelapse 启用或禁用延时录像

AMS/长丝

工具 说明
change_filament 更换为不同的AMS灯丝托盘
unload_filament 从挤出机中卸下长丝

G代码

工具 说明
send_gcode 发送原始G代码命令(出于安全考虑,危险命令被阻止)

安全

工具 说明
sign_message 使用Bambu Lab X.509证书对消息进行签名

打印机定位

每个打印机定位工具都接受一个可选 printer 参数:

  • 特定打印机 --使用打印机ID(例如。 "p1s-alpha")
  • 所有打印机 --使用 "all" 在每个连接的打印机上并行运行该命令
  • 自动选择 --省略该参数,如果只配置了一台打印机,它将自动选择

连接详情

此服务器使用以下方式与打印机通信:

  • 消息队列遥测传输 (端口8883,TLS)-用于命令和状态更新
  • 文件传输协议 (端口990,隐式FTPS)——用于文件操作

打印机必须处于 仅局域网模式 随着 开发者模式 启用。看 打印机设置 上面。

X.509证书身份验证

2025年1月后的固件需要基于证书的身份验证才能进行本地访问。默认情况下,此服务器包含从Bambu Connect桌面应用程序中公开提取的X.509证书。

要使用自己的证书进行覆盖,请设置以下环境变量:

export BAMBU_APP_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----"
export BAMBU_APP_CERTIFICATE="-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----"

许可证

麻省理工学院