Bambu Studio (unofficial)

io.github.danielefinocchiaro由 GitHub 帳號 danielefinocchiaro 發布v0.3.0更新於 Oct 29, 2026

Build, edit, slice, check and calibrate Bambu Studio projects; read a Bambu Lab printer's status.

概覽

AI 產生的概覽

非官方 MCP 伺服器,呼叫本機已安裝的 Bambu Studio 建立、編輯、切片與校正 3D 列印專案,並在區域網路內讀取 Bambu Lab 印表機狀態。

可以做什麼
  • 建立、開啟、編輯並儲存 Bambu Studio 專案:匯入 STL、OBJ、3MF,加入幾何形狀與文字,移動、縮放、鏡射、拆分、合併與布林運算
  • 排布盤面、帶連接件切割物件、加入修改器、高度範圍、上色、brim ears 及單一物件設定
  • 透過 Bambu Studio 命令列切片,讀取每盤的耗時、克數、成本、換料與警告
  • 產生盤面與切片層預覽圖,量測物件與間隙,檢查列印風險
  • 執行校正測試,並把結果存成 Bambu Studio 的線材、製程與印表機預設集
  • 讀取印表機狀態、攝影機畫面與 SD 卡檔案,並把列印檔交給 Bambu Studio 或 Bambu Connect
適用情境
適合已在使用 Bambu Studio、想讓助理代為準備、修改、排布、切片與檢查 3D 列印專案、校正線材,或回報正在進行的列印,而不必自己在切片軟體裡逐項操作。
執行需求
以 stdio 方式透過 uvx 在本機執行,需要 uv 與已安裝的 Bambu Studio(測試版本 2.8);缺少 Python 3.10+ 時由 uvx 取得。選用變數:BAMBU_PRINTER_IP、BAMBU_STUDIO_EXE、UBMCP_DIR,以及 BAMBU_PRINTER_SERIAL、BAMBU_PRINTER_ACCESS_CODE。讀取印表機狀態需印表機位於同一區域網路。僅限桌面端,ChatGPT 應用程式無法連線。
安裝前請注意
需要時會從 Bambu Studio 讀取印表機的區域網路存取碼,也可使用 BAMBU_PRINTER_ACCESS_CODE。在 Developer Mode 下,確認代碼後可上傳並開始列印、跳過物件、裝載或卸載線材;確認清單後可刪除 SD 卡上的檔案。它會寫入與重新命名你的 Bambu Studio 預設集(會先備份)並儲存新的專案檔。非官方專案,與 Bambu Lab 無關聯。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Bambu Studio (unofficial),將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

unofficial-bambu-mcp

[ci] [pypi] [python] [license]

Unofficial community project. Not affiliated with, endorsed by or supported by Bambu Lab. "Bambu Lab", "Bambu Studio", "Bambu Connect" and "Bambu Handy" are trademarks of their respective owners.

An MCP server that lets an AI assistant (Claude Code, Claude Desktop or any MCP client) build, edit, slice, check and calibrate Bambu Studio projects, using the official Bambu Studio you already have installed, and read your printer's status on the local network.

You talk, it does the slicer work:

  • "New P1S project: a 20 mm cube and the text 'DANI' in white on a black 2 mm tag."
  • "Open ~/Downloads/Gnome 3 Color.3mf, add a plate with two more gnomes, then convert it for the A1 mini."
  • "I have eSUN PLA Basic in AMS slot 2: make a preset for it and the test prints to calibrate it."
  • "Before I start this 20-hour plate: which parts are likely to come off?"
  • "A pin came off at layer 4 and I skipped it: make me a project to reprint just that pin, with a brim."
  • "How is the print going? Which spool is it feeding from?"

[A session: a project from scratch, a print risk fixed, slicing, a temperature tower, the print file]

A real session, sped up: every tool call, result and image comes from the server through MCP; only the requests are written for the demo (scripts/make_demo.py).

What it can do

AreaWhat you can do
ProjectsCreate a project, or open any .3mf saved by Bambu Studio (2.x and older 1.6/1.7 files) or downloaded from MakerWorld / Printables: painted colors, modifiers, per-object settings, instances and plates are kept. Save without ever overwriting.
PrintersAll 14 Bambu Lab printers of Bambu Studio 2.8, tested end to end (project, arrange, slice, print file): A1 mini, A1, A2L, P1P, P1S, P2S, X1, X1 Carbon, X1E, H2S and the two-nozzle H2D, H2D Pro, H2C and X2D (filaments go to a nozzle automatically, as Bambu Studio does). Switch printer and objects are re-arranged for the new bed. New projects use the build plate you picked in Bambu Studio for that printer.
FilamentsAMS slots with preset and color, your own user presets included. use_ams_filaments takes what is loaded in the AMS right now.
Plates & objectsImport STL, OBJ, 3MF; boxes, cylinders, cones, spheres and text (with a base in another color). Move, rotate, scale, mirror, lay flat, auto orient (least support, enough on the bed), duplicate, fill the plate with copies, split into objects or parts, merge objects into one, mesh boolean (holes, unions, intersections) with painted colors kept, filament per object or part, per-object settings, closed-solid check. Object ids stay the same while you work.
Arrangingarrange by the real outline seen from above, brim and brim ears included, so shapes nest (Bambu Studio's own arrange uses convex hulls). Gap, rotation steps, one material per plate, calibration corner, align to Y, prime tower corner kept free; one plate, chosen objects or all; "put them in N plates" evenly or as few as possible, and if they do not fit nothing moves and it says what is left over.
Cuttingcut_object on any plane, with connectors like Bambu Studio's Cut tool: a plug (peg and hole with clearance), dowels (holes in both pieces and separate pins) or a dovetail; round, square or hexagonal, straight or tapered, placed automatically or where you say, made shallower where a piece is thin. The pieces are laid out to print: the peg always points up.
ModifiersBox or round parts: modifiers with their own settings ("the top 5 mm at 100 % infill"), negative parts (holes for magnets and screws), support blockers and enforcers.
SettingsRead or change any Bambu Studio setting, per filament slot when it applies, with a warning when a value cannot apply (e.g. a textured-plate temperature on a smooth plate).
PresetsSave the project's changes as Bambu Studio user presets: filament (save_filament_preset), process and printer; or change one of your presets directly (edit_preset), list, rename and delete them, with a backup copy each time. Values are checked and written the way Bambu Studio does (one per nozzle variant where it applies), and changes are stamped for Bambu Studio's cloud sync. Presets that are in your Bambu cloud can only be deleted from Bambu Studio: the answer says how.
Text & logosadd_relief: text or an SVG logo on any face of an object, raised (in another color if you like) or engraved, following curved surfaces too (the surface under it is measured on a fine grid and the shape is wrapped on it, keeping its size along the surface). add_shape('svg'): a logo as an object, on a base in another color. SVG paths, shapes, transforms, fill rules and strokes are read.
Measuringmeasure_object: size and place, each part's volume and surface, the area on the bed, the clearance between the pieces of a print-in-place model, walls thinner than the nozzle line (where and at which height), and the cross-section at any height: how long and thick a bar is, how wide a hole is. measure_between: the gap between two objects or parts, centers, overlap. Dense meshes are measured on a copy within 0.005 mm (2.4 M triangles in about 9 s).
Height ranges & platesset_height_range: settings for a band of an object's height, like Bambu Studio's Height range modifier: 100 % infill at the bottom, finer layers where the details are (variable layer height), another filament for a band (color by height). Variable layer heights and ranges in opened files are kept. set_plate_settings: build plate, print sequence (by object), first-layer filament order, spiral vase and prime tower place per plate.
Paintingpaint_object: colors, supports (or no supports), seams and fuzzy skin on a height band and/or the faces looking one way (top, sides, overhangs...), with sharp edges. Checked on the sliced G-code: a color band changes filament at its edges, painted supports appear where painted.
Purge volumesget_purge_volumes / set_purge_volumes: the purge between each pair of slots and the multiplier, as in Bambu Studio's dialog; the values in opened files are kept.
SlicingBambu Studio command line: time, grams and cost per filament, filament changes, pauses, layers and warnings per plate. Empty plates are skipped.
PreviewsImages of a plate (iso or top, zoom, painted colors, object labels) and of any sliced layer, so the assistant checks its own work.
Print riskscheck_print_risks: tall and narrow parts, parts standing on a tiny or narrow footing without a brim, filaments not meant for the build plate, tall parts sharing a long plate, a full brim on a print-in-place model whose joints it would weld.
Brim earsadd_brim_ears: small round brims only on the thin tips (fingers, toes) of print-in-place and articulated models, placed automatically away from joint gaps and other pieces, or where you say. Bambu Studio's Painted brim, checked on the sliced first layer.
Reprintsreprint_objects: a new project with only the parts that failed, same settings, with a brim.
CalibrationTemperature tower, flow rate test (pass 1 and 2), pressure advance tower, max volumetric speed test, retraction test, VFA test (wall speeds), first-layer test, for any filament. Save the result as a Bambu Studio filament preset: a new filament gets its own id, like Bambu Studio's Create Filament, so you can pick it for an AMS slot; updating it later keeps that id.
Layer actionsPause at a height (magnets, nuts), filament change at a height, or any G-code at a height.
Printingsend_to_printer makes the print file of a plate and opens it in Bambu Studio (or Bambu Connect) ready to print: you check the AMS mapping and press Print.
Developer Mode (LAN farms)For printers in LAN-only mode with Developer Mode, where Bambu firmware accepts commands from other programs: send_to_printer(via='lan') uploads the plate and starts the print, skip_objects skips parts of the running print, ams_load / ams_unload move filament. Each asks first: the first call sends nothing and gives a code to confirm with. In normal cloud mode the printer refuses them and the answer says so.
Printer statusprinter_status (read only, local network): state, progress, temperatures, AMS trays with humidity, skipped objects, and warnings (unknown spool being fed, sport speed on a long print, a reading that looks old).
Camera & SD cardprinter_camera: a picture of the plate right now, so the assistant sees how the print is going. printer_files / download_printer_file: timelapses (with their last frame) and past print files. delete_printer_files: free space on the SD card, only after you confirm the exact list. Works in cloud mode.

All 87 tools with their parameters: docs/TOOLS.md.

Tested on

Real hardware: macOS, Bambu Studio 2.8.2, a P1S with two AMS units, in normal cloud mode:

  • every tool through a real MCP client, on projects made from scratch and on MakerWorld / Printables downloads (painted 6-color models, multi-part assemblies, 3-plate projects, files from Bambu Studio 1.6 and 1.7);
  • printed: temperature towers and flow tests for two third-party filaments (eSUN PLA Basic black and white), whose presets were made and tuned through the server; the print hand-off to Bambu Studio; live status during prints.

The pressure advance tower, the max volumetric speed test and the retraction test are checked by slicing (the G-code is inspected) but have not been printed yet.

Windows and Linux: on every change to main, CI installs Bambu Studio 2.8.2 (the portable zip on Windows, the AppImage on Debian 13) and runs the whole test suite, slicing and print files included, plus a smoke run. Unit tests run on Windows, macOS and Linux with Python 3.10 and 3.13. On Linux the AppImage takes FFmpeg 7 and WebKitGTK 4.1 from the system (Debian 13, Ubuntu 24.10 or newer); set BAMBU_STUDIO_EXE if Bambu Studio is somewhere else.

Printers: all 14 Bambu Lab printers of Bambu Studio 2.8 go through the MCP from a new project to a print file (A1 mini, A1, A2L, P1P, P1S, P2S, X1, X1 Carbon, X1E, H2S, H2C, H2D, H2D Pro, X2D); only the P1S has printed. The Developer Mode tools were checked against a printer in cloud mode (refused, with the right answer) but never started a print on one in Developer Mode.

Printing and your printer

Bambu firmware (2025 and later) accepts commands from other programs only when the printer is in LAN-only mode with Developer Mode on, which turns off the cloud and Bambu Handy. In normal cloud mode it refuses them, so this server:

  • reads the printer status (allowed in cloud mode), with the LAN access code Bambu Studio already saved;
  • hands the print over to Bambu Studio or Bambu Connect, where you press Print;
  • does not start prints, set AMS slots or skip objects in cloud mode: you do that in Bambu Studio, Bambu Handy or on the printer. For printers in LAN-only mode with Developer Mode (print farms) it can, always after you confirm with the code it gives (see the Developer Mode row above).

More in docs/printing.md.

Quick start

Requirements: uv and Bambu Studio. The package comes from PyPI: uvx downloads it the first time (and Python 3.10+ if you do not have it), so there is nothing to clone or install by hand.

It is a standard MCP server (stdio), so any MCP client that runs local servers can use it. It was developed and tested with Claude Code; the other clients below take the same command in their own config file.

Claude Code

bash
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):

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

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

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

VS Code (GitHub Copilot agent mode, .vscode/mcp.json):

json
{ "servers": { "bambu": { "type": "stdio", "command": "uvx", "args": ["unofficial-bambu-mcp"] } } }
  • If a desktop app cannot find uvx (spawn uvx ENOENT), put its full path as the command: which uvx prints it.
  • uvx keeps the version it downloaded: write unofficial-bambu-mcp@latest instead to get new releases.
  • From a clone (for development): uv run --directory /path/to/unofficial-bambu-mcp unofficial-bambu-mcp.
  • The ChatGPT app only connects to remote MCP servers, and this one has to run on the computer with Bambu Studio.

Then ask: "What version of Bambu Studio do I have, and which printers can you use?"

Configuration (optional)

VariableDefaultMeaning
UBMCP_DIR~/Documents/unofficial-bambu-mcpWhere projects, sliced files and print files are saved
BAMBU_STUDIO_EXEauto-detectedPath of the Bambu Studio executable
BAMBU_STUDIO_DATAauto-detectedBambu Studio data folder (with system/ and user/)
BAMBU_STUDIO_RESOURCESauto-detectedBambu Studio resources folder (with profiles/), for unusual Linux installs
UBMCP_PRESET_BACKUPS~/.config/unofficial-bambu-mcp/preset-backupsWhere a copy of a user preset goes before it is changed, renamed or deleted
BAMBU_PRINTER_SERIAL, BAMBU_PRINTER_ACCESS_CODE, BAMBU_PRINTER_IPfrom Bambu StudioPrinter for printer_status, if you do not want it read from Bambu Studio

How it works

Bambu Studio has no plugin or scripting API. This server works on the project file (.3mf, the format Bambu Studio saves) and calls the Bambu Studio command line to slice. Presets are read from your installation and flattened the way the app does. Details in docs/how-it-works.md.

  • In sync with the app. open_in_bambu_studio shows a project in the app; if you change it there and save, the server re-reads it on the next command (and tells you if both sides changed).
  • Safe with your files. Nothing is ever overwritten: saving adds -2, -3... and opened files are read as a copy. Changing, renaming or deleting one of your presets keeps a backup copy first.
  • Light. numpy, shapely, manifold3d, fonttools and Pillow. No Bambu profile is shipped with this repository: presets come from your installation (the server only carries default values for settings that presets leave out).
  • Your printer, your call. The LAN access code is read from Bambu Studio when needed and never copied anywhere. See SECURITY.md.

Guides

Limitations

  • Two-nozzle printers (H2D, H2C, X2D): filaments go to a nozzle automatically, as in Bambu Studio's default; choosing the nozzle of each filament by hand is not there yet.
  • The printer camera works with P1 and A1 printers (X1 and H2 stream over RTSP, not supported yet).
  • First-layer tests do not keep painted colors.
  • Bambu Studio re-slices a project when it opens it; to see a plate sliced and ready to print in the app, use send_to_printer.

Roadmap

  • Mesh simplification and repair; the nozzle of each filament on two-nozzle printers; X1/H2 camera
  • A live bridge inside the slicer, to be proposed to OrcaSlicer and Bambu Studio

Contributing and support

Bug reports, ideas and pull requests: GitHub Issues. Include your OS, Bambu Studio version, printer and, if you can, the .3mf that fails. See CONTRIBUTING.md.

Author: Daniele Finocchiaro — danielefinocchiaro.com. If it saves you prints and time: buy me a coffee.

License

MIT for this code. Bambu Studio profiles are read from your installation and are not redistributed.

來源:README.md,提交 25fe8a7

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.3.0最新Oct 29, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分