mcpField
B
Bambu Studio (unofficial)

Bambu Studio (unofficial)

本地服务
github.com/danielefinocchiaro其他1今天更新

关于 Bambu Studio (unofficial)

Bambu Studio (unofficial) 是面向 Bambu Lab 打印机用户的 MCP 服务,借助已安装的 Bambu Studio 创建、编辑、切片和检查项目,并读取局域网打印机状态。它也支持校准、风险检查和将打印任务交给 Bambu Studio。

主要功能

  1. 01创建和编辑 3MF 项目
  2. 02切片并检查打印风险
  3. 03生成校准测试与耗材预设
  4. 04读取打印机状态和摄像头画面
  5. 05将打印任务交给 Bambu Studio

适用场景

  1. 01为多色模型添加文字或标志
  2. 02检查打印前的部件脱落风险
  3. 03校准耗材并保存预设
  4. 04从失败打印中创建部件重印项目

MCP 相关

这是通过 stdio 提供工具的 MCP 服务,可供能运行本地服务的 MCP 客户端调用。工具涵盖项目处理、切片、校准、打印机状态读取和打印交接。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"danielefinocchiaro-unofficial-bambu": {
"command": "uvx",
"args": [
"unofficial-bambu-mcp"
],
"env": {
"UBMCP_DIR": "<UBMCP_DIR>",
"BAMBU_STUDIO_EXE": "<BAMBU_STUDIO_EXE>",
"BAMBU_PRINTER_IP": "<BAMBU_PRINTER_IP>"
}
}
}
}
启动命令uvx unofficial-bambu-mcp
需要配置的环境变量
UBMCP_DIRWhere projects, sliced files and print files are saved (default ~/Documents/unofficial-bambu-mcp)
BAMBU_STUDIO_EXEPath of the Bambu Studio executable, if it is not found automatically
BAMBU_PRINTER_IPPrinter IP address, to skip the search on the local network

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiunofficial-bambu-mcp0.3.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

非官方 Bambu MCP

ci pypi python license

非官方社区项目。 与 Bambu Lab 无关,未获其认可或支持。 “Bambu Lab”、“Bambu Studio”、“Bambu Connect”和“Bambu Handy”是其各自所有者的商标。

一个 MCP 服务,让 AI 助手(Claude Code、Claude Desktop 或任何 MCP 客户端)使用你已安装的官方 Bambu Studio 构建、编辑、切片、检查和校准 Bambu Studio 项目,并在本地网络上读取打印机的状态。

你只需提出要求,它就会处理切片工作:

  • “新建 P1S 项目:一个 20 mm 的立方体,以及一个黑色 2 mm 标签,上面用白色写着‘DANI’。”
  • “打开 ~/Downloads/Gnome 3 Color.3mf,再添加一个有两个侏儒的新打印板,然后将其转换为 A1 mini 格式。”
  • “我的 AMS 2 号槽里有 eSUN PLA Basic:为它创建一个预设和用于校准的测试打印模型。”
  • “开始打印这个 20 小时的打印板之前:哪些部件可能会脱落?”
  • “一个销钉在第 4 层脱落了,我跳过了它:帮我创建一个项目,只重新打印这个销钉,并加上裙边。”
  • “打印进展如何?正在使用哪个线轴?”

一个会话:从零创建项目、修复打印风险、切片、温度塔和打印文件

一段真实会话,加速播放:每次工具调用、结果和图像都通过 MCP 来自服务端;演示中只有请求是专门编写的(scripts/make_demo.py)。

功能

区域可执行的操作
项目创建项目,或打开任何由 Bambu Studio(2.x 和较早的 1.6/1.7 文件)保存或从 MakerWorld / Printables 下载的 .3mf:涂装颜色、修改器、对象设置、实例和打印板都会保留。保存时绝不会覆盖原文件。
打印机Bambu Studio 2.8 支持的全部 14 款 Bambu Lab 打印机,均经过端到端测试(项目、排列、切片、打印文件):A1 mini、A1、A2L、P1P、P1S、P2S、X1、X1 Carbon、X1E、H2S,以及双喷嘴 H2D、H2D Pro、H2C 和 X2D(耗材会自动分配给喷嘴,与 Bambu Studio 的行为相同)。切换打印机后,对象会针对新打印平台重新排列。新项目使用你在 Bambu Studio 中为该打印机选定的构建板。
耗材包含预设和颜色的 AMS 槽位,也包括你自己的用户预设。use_ams_filaments 会读取 AMS 当前装载的耗材。
打印板和对象导入 STL、OBJ、3MF;创建方盒、圆柱体、圆锥体、球体和文本(底座可使用另一种颜色)。移动、旋转、缩放、镜像、平放、自动定向(尽量减少支撑并确保能放在打印平台上)、复制、用副本填满打印板、将对象拆分成多个对象或部件、将多个对象合并成一个对象、执行网格布尔运算(孔、并集、交集)并保留涂装颜色,为每个对象或部件指定耗材,设置对象级参数,检查封闭实体。工作过程中对象 ID 保持不变。
排列按从上方看到的真实轮廓执行 arrange,包括裙边和裙边耳,便于形状相互嵌套(Bambu Studio 自带的排列功能使用凸包)。可设置间距、旋转步长、每块打印板使用一种材料、校准角、沿 Y 轴对齐,以及为擦料塔预留空角;可排列一块打印板、选定对象或全部对象;可均匀分配到指定数量的打印板,或尽量减少打印板数量。如果对象放不下,则不会移动任何对象,并会说明剩余对象。
切割在任意平面上使用 cut_object,并添加类似 Bambu Studio 切割工具的连接件:插接件(带间隙的销和孔)、定位销(两件上都有孔,另有独立销钉)或燕尾榫;形状可为圆形、方形或六边形,可为直型或锥形,可自动放置或按指定位置放置,并会在部件较薄处缩短深度。切割后的部件会排好以便打印:销始终朝上。
修改器盒状或圆形部件:可设置具有独立参数的修改器(例如“顶部 5 mm 的填充率为 100 %”)、负向部件(用于磁铁和螺丝的孔)、支撑阻挡器和支撑强制器。
设置读取或更改任何 Bambu Studio 设置;适用时可按耗材槽位设置。当某个值不适用时会发出警告(例如,纹理板温度不适用于光滑板)。
预设将项目更改保存为 Bambu Studio 用户预设:耗材(save_filament_preset)、工艺和打印机预设;也可直接更改已有预设(edit_preset),并列出、重命名和删除预设,每次都会创建备份副本。系统会按 Bambu Studio 的方式检查并写入数值(适用时按喷嘴变体分别写入),并为更改添加时间戳,以供 Bambu Studio 云同步。存放在 Bambu 云中的预设只能从 Bambu Studio 删除,答复会说明操作方法。
文本和徽标add_relief:在对象的任意表面添加文本或 SVG 徽标,可凸起(也可使用另一种颜色)或雕刻,也支持贴合曲面(在精细网格上测量下方表面,并将形状包覆其上,同时保持其沿表面的尺寸)。add_shape('svg'):将徽标作为对象放置,底座可使用另一种颜色。可读取 SVG 路径、形状、变换、填充规则和描边。
测量measure_object:尺寸和位置、每个部件的体积和表面积、打印平台上的占用面积、打印件各部件之间的间隙、薄于喷嘴线宽的壁厚(位置和高度),以及任意高度处的横截面:杆件的长度和厚度、孔的宽度。measure_between:两个对象或部件之间的间距、中心位置和重叠情况。会在副本上测量密集网格,精度为 0.005 mm(240 万个三角形的模型约需 9 s)。
高度范围和打印板set_height_range:为对象一定高度范围设置参数,类似 Bambu Studio 的高度范围修改器:底部填充率为 100 %、在细节处使用更精细的层(可变层高)、某个高度范围使用另一种耗材(按高度着色)。打开文件中的可变层高和高度范围都会保留。set_plate_settings:按打印板设置构建板、打印顺序(按对象)、首层耗材顺序、螺旋花瓶模式和擦料塔位置。
涂装paint_object:按高度范围和/或朝向指定方向的表面(顶部、侧面、悬垂面等)涂装颜色、支撑(或无支撑)、接缝和毛绒表面,并保留锐利边缘。通过切片后的 G-code 验证:颜色范围会在边界处切换耗材,涂装的支撑会出现在涂装位置。
清料量get_purge_volumes / set_purge_volumes:设置每对槽位之间的清料量和倍率,与 Bambu Studio 对话框中的设置相同;打开文件中的数值会保留。
切片使用 Bambu Studio 命令行:按打印板显示耗材所需时间、克数和成本、耗材更换次数、暂停、层数和警告。会跳过空打印板。
预览查看打印板图片(等轴测或俯视、缩放、涂装颜色、对象标签)以及任意已切片层的图片,便于助手检查自己的操作。
打印风险check_print_risks:检测高而窄的部件、没有裙边且底部支撑面积很小或很窄的部件、不适用于构建板的耗材、在较长打印板上并排的高部件,以及在原位打印模型上会焊死活动关节的完整裙边。
裙边耳add_brim_ears:仅在原位打印和可动模型的细窄末端(手指、脚趾)添加小型圆形裙边耳,可自动放置在远离关节间隙和其他部件的位置,也可按指定位置放置。使用 Bambu Studio 的涂装裙边,并通过切片后的首层进行检查。
重新打印reprint_objects:创建仅包含打印失败部件的新项目,并保留相同设置,同时添加裙边。
校准任意耗材均可进行温度塔、流量测试(第 1 和第 2 轮)、压力提前量塔、最大体积流量测试、回抽测试、VFA 测试(壁面速度)和首层测试。可将结果保存为 Bambu Studio 耗材预设:新耗材会获得自己的 ID,类似 Bambu Studio 的创建耗材,因此可为 AMS 槽位选择该耗材;之后更新预设时会保留此 ID。
层操作在指定高度暂停(放置磁铁、螺母)、更换耗材,或执行任意 G-code。
打印send_to_printer 会为某块打印板生成打印文件,并在 Bambu Studio(或 Bambu Connect)中打开,准备就绪后即可打印:你只需检查 AMS 映射并点击“打印”。
开发者模式(局域网打印农场)适用于启用了开发者模式的局域网模式打印机,Bambu 固件允许其他程序发送命令:send_to_printer(via='lan') 会上传打印板并开始打印,skip_objects 会跳过正在进行的打印任务中的部件,ams_load / ams_unload 会装入/卸出耗材。每项操作都会先请求确认:首次调用不会发送任何内容,只会提供一个确认码。在普通云模式下,打印机会拒绝这些操作,答复也会说明原因。
打印机状态printer_status(只读,仅限本地网络):状态、进度、温度、带湿度信息的 AMS 托盘、已跳过的对象和警告(正在进料的线轴未知、长时间打印时启用了运动模式、读数看起来已过时)。
摄像头和 SD 卡printer_camera:查看当前打印板的照片,便于助手了解打印进度。printer_files / download_printer_file:查看延时摄影视频(含最后一帧)和过往打印文件。delete_printer_files:释放 SD 卡空间,仅在你确认准确的文件列表后才会执行。云模式下也可使用。
全部 87 个工具及其参数:docs/TOOLS.md。

测试环境

真实硬件:macOS、Bambu Studio 2.8.2、一台配有两个 AMS 单元的 P1S,处于普通云端模式:

  • 通过真实 MCP 客户端测试了每个工具,使用从头创建的项目以及从 MakerWorld / Printables 下载的项目 (已涂色的 6 色模型、多部件装配、3 个平台的项目,以及来自 Bambu Studio 1.6 和 1.7 的文件);
  • 已打印:两个第三方耗材(eSUN PLA Basic 黑色和白色)的温度塔和流量测试;其预设通过该服务创建并调校;还测试了将打印任务交给 Bambu Studio,以及打印期间的实时状态。

压力提前量塔、最大体积速度测试和回抽测试已通过切片检查(并检查了 G-code),但尚未打印。

Windows 和 Linux:每次 main 有更改时,CI 都会安装 Bambu Studio 2.8.2(Windows 上使用便携版 zip,Debian 13 上使用 AppImage),运行完整测试套件(包括切片和打印文件),并进行冒烟测试。单元测试使用 Python 3.10 和 3.13,在 Windows、macOS 和 Linux 上运行。在 Linux 上,AppImage 使用系统中的 FFmpeg 7 和 WebKitGTK 4.1(Debian 13、Ubuntu 24.10 或更高版本);如果 Bambu Studio 位于其他位置,请设置 BAMBU_STUDIO_EXE。

打印机:Bambu Studio 2.8 支持的全部 14 款 Bambu Lab 打印机都已通过 MCP 从新建项目测试到生成打印文件(A1 mini、A1、A2L、P1P、P1S、P2S、X1、X1 Carbon、X1E、H2S、H2C、H2D、H2D Pro、X2D);只有 P1S 实际打印过。Developer Mode 工具已在云端模式下对打印机进行检查(按预期拒绝操作),但从未在 Developer Mode 下启动打印。

打印与打印机

Bambu 固件(2025 年及之后版本)只有在打印机处于开启 Developer Mode 的仅局域网模式时,才接受其他程序发来的命令;这会关闭云端服务和 Bambu Handy。普通云端模式下,打印机会拒绝这些命令,因此该服务:

  • 读取打印机状态(云端模式下允许),使用 Bambu Studio 已保存的 LAN 访问码;
  • 将打印任务交给 Bambu Studio 或 Bambu Connect,由你按下 Print;
  • 云端模式下不会启动打印、设置 AMS 槽位或跳过对象:这些操作由你在 Bambu Studio、Bambu Handy 或打印机上完成。对于处于开启 Developer Mode 的仅局域网模式下的打印机(打印农场),该服务可以执行这些操作,但始终需要你使用它提供的代码确认(见上方的 Developer Mode 行)。

更多信息见 docs/printing.md。

快速开始

要求:uv 和 Bambu Studio。该软件包来自 PyPI:uvx 会在首次运行时下载软件包(如果你没有 Python 3.10+,也会一并下载),因此无需手动克隆或安装。

这是一个标准的 MCP 服务(stdio),任何能够运行本地服务的 MCP 客户端都可以使用。该服务使用 Claude Code 开发和测试;下方其他客户端也在各自的配置文件中使用相同的命令。

Claude Code

claude mcp add bambu -- uvx unofficial-bambu-mcp

Claude Desktop(claude_desktop_config.json)、Cursor(~/.cursor/mcp.json)、Windsurf (~/.codeium/windsurf/mcp_config.json)、Gemini CLI(~/.gemini/settings.json):

{
  "mcpServers": {
    "bambu": {
      "command": "uvx",
      "args": ["unofficial-bambu-mcp"]
    }
  }
}

OpenAI Codex CLI(~/.codex/config.toml):

[mcp_servers.bambu]
command = "uvx"
args = ["unofficial-bambu-mcp"]

VS Code(GitHub Copilot Agent 模式,.vscode/mcp.json):

{ "servers": { "bambu": { "type": "stdio", "command": "uvx", "args": ["unofficial-bambu-mcp"] } } }
  • 如果桌面应用找不到 uvx(spawn uvx ENOENT),请将其完整路径设为命令:运行 which uvx 即可查看。
  • uvx 会保留下载的版本:改用 unofficial-bambu-mcp@latest 即可获取新版本。
  • 从克隆的仓库运行(用于开发):uv run --directory /path/to/unofficial-bambu-mcp unofficial-bambu-mcp。
  • ChatGPT 应用只连接远程 MCP 服务,而该服务必须运行在装有 Bambu Studio 的计算机上。

然后提问:“我安装的 Bambu Studio 是什么版本?你可以使用哪些打印机?”

配置(可选)
变量默认值含义
UBMCP_DIR~/Documents/unofficial-bambu-mcp项目、切片文件和打印文件的保存位置
BAMBU_STUDIO_EXE自动检测Bambu Studio 可执行文件的路径
BAMBU_STUDIO_DATA自动检测Bambu Studio 数据文件夹(包含 system/ 和 user/)
BAMBU_STUDIO_RESOURCES自动检测Bambu Studio 资源文件夹(包含 profiles/),适用于特殊的 Linux 安装
UBMCP_PRESET_BACKUPS~/.config/unofficial-bambu-mcp/preset-backups用户预设被更改、重命名或删除之前的备份保存位置
BAMBU_PRINTER_SERIAL、BAMBU_PRINTER_ACCESS_CODE、BAMBU_PRINTER_IP来自 Bambu Studioprinter_status 使用的打印机;若不希望从 Bambu Studio 读取,可设置这些变量

工作原理

Bambu Studio 没有插件或脚本 API。此服务会处理项目文件(.3mf,即 Bambu Studio 保存的格式),并调用 Bambu Studio 命令行进行切片。预设从你的安装中读取,并按照应用程序的方式展开。详情请参阅 docs/how-it-works.md。

  • 与应用程序保持同步。 open_in_bambu_studio 会在应用程序中显示项目;如果你在其中更改项目并保存,服务会在下一次执行命令时重新读取(并在双方都有更改时告知你)。
  • 安全处理你的文件。 绝不会覆盖任何内容:保存时会添加 -2、-3……;打开的文件会作为副本读取。更改、重命名或删除预设前,会先创建备份。
  • 轻量。 依赖 numpy、shapely、manifold3d、fonttools 和 Pillow。本仓库不附带任何 Bambu 配置文件:预设来自你的安装(对于预设未包含的设置,服务只保留默认值)。
  • 你的打印机由你掌控。 需要时才会从 Bambu Studio 读取局域网访问码,且绝不会复制到其他位置。请参阅 SECURITY.md。

指南

限制

  • 双喷嘴打印机(H2D、H2C、X2D):耗材会像 Bambu Studio 的默认设置那样自动分配到喷嘴;目前还无法手动为每种耗材选择喷嘴。
  • 打印机摄像头适用于 P1 和 A1 打印机(X1 和 H2 通过 RTSP 传输,暂不支持)。
  • 首层测试不会保留涂装颜色。
  • Bambu Studio 打开项目时会重新切片;如需在应用程序中查看已切片且可直接打印的构建板,请使用 send_to_printer。

路线图

  • 网格简化与修复;双喷嘴打印机上每种耗材所用的喷嘴;X1/H2 摄像头
  • 在切片器内部建立实时桥接,并向 OrcaSlicer 和 Bambu Studio 提交提案

贡献与支持

提交错误报告、想法和拉取请求:GitHub Issues。请附上你的操作系统、Bambu Studio 版本、打印机型号,以及(如果可以)导致问题的 .3mf 文件。请参阅 CONTRIBUTING.md。

作者:Daniele Finocchiaro — danielefinocchiaro.com。如果它为你节省了打印耗材和时间:请我喝杯咖啡。

许可证

本代码采用 MIT 许可证。Bambu Studio 配置文件从你的安装中读取,不会重新分发。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。