Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Bambu Studio (unofficial)

PYPI · UNOFFICIAL-BAMBU-MCP

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

+4 this week 53 Trust /100

Last scanned (14 hours ago)

Scores higher than 56% of PyPI servers

Category IoT and Hardware

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security50
  • Malware scan not yet available for this package.Unverified
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
  • 1 of 33 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 6 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability61
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 10208 tokens (~117/item across 87 items; 87 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management23
  • Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage67
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 0% of tool parameters carry a description.Fail
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 13 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "remove_plate" implies "remove" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 88 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 4 Nov 26 −11
    • Malware scan: pass → unverified ▼ security
    • Stability: unverified → 0.23 ▲ functional
  • 30 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 28 Oct 26 49

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Nov 2026 · Analysed pypi/unofficial-bambu-mcp@0.3.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi
Reason No attestation published

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build

Background: Why install scripts are a supply-chain risk →

Dependencies 33 packages
Packages resolved 33
No linked repository 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 87 exposed · ~10,007 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
add_brim_ears ~295

Brim ears: small round brims only where a part needs them, instead of a brim all around (Bambu Studio's Painted brim). Meant for print-in-place and articulated models: a full brim fills the joint gaps on the first layer and welds them. Without points, ears go to the tips of the thin parts of the first layer (fingers, toes, any tip thinner than `narrow` mm), each as large as possible up to `radius` without reaching another piece, a gap or hole, or a second thin part (those tips are listed as skipped, with the reason). small > 0 also gives ears to first-layer pieces smaller than that (mm²), at their ends. points: [[x, y], ...] or [[x, y, radius]] in plate mm, placed as given, with a warning when one would weld something. radius 0 = Bambu Studio's default (16 first-layer line widths across). keep: add to the ears the object already has. Look at them with preview_plate(view='top', zoom=True), then slice_project and preview_layer(layer=1).

NameTypeReqDescription
clearancenumber––
keepboolean––
narrownumber––
objectstringyes–
points–––
radiusnumber––
smallnumber––

No output schema declared.

No examples provided.

add_layer_action ~142

Do something when the print reaches height z (mm), before that layer is printed: action = pause (e.g. to insert magnets or nuts; message is shown in Bambu Studio), filament_change (switch to filament slot `filament` from that height on, with the AMS), gcode (any G-code line(s), e.g. 'M104 S210'). z is snapped to the nearest real layer at or above it.

NameTypeReqDescription
actionstringyes–
filamentinteger––
gcodestring––
messagestring––
plateintegeryes–
znumberyes–

No output schema declared.

No examples provided.

add_modifier ~215

Add a part to an object, covering its whole footprint between z_from and z_to (mm from the object's bottom; z_to 0 = top), or only region [x0, y0, x1, y1] (mm from the object's center). kind: modifier (different settings inside, e.g. {"sparse_infill_density": "100%"} for the top 5 mm), negative (removes material), support_blocker, support_enforcer. shape: box, or cylinder (round, as wide as the smaller side of the region: e.g. a hole for a magnet or a screw is kind='negative', shape='cylinder', region=[-4, -4, 4, 4] for 8 mm).

NameTypeReqDescription
kindstring––
objectstringyes–
region–––
settings–––
shapestring––
z_fromnumber––
z_tonumber––

No output schema declared.

No examples provided.

add_plate ~23

Add an empty plate at the end.

NameTypeReqDescription
namestring––

No output schema declared.

No examples provided.

add_relief ~254

Text or an SVG logo on a face of an object, raised or engraved, like Bambu Studio's Text and SVG tools. It wraps around curved faces: on a cup it keeps its size along the surface and stands out square to it. face: top, bottom, front, back, left, right (the side it is read from); at: [x, y, z] plate point to center it on (default: the middle of that face); size: capital letter height for text, longest side for an SVG (mm); depth: how far it stands out or goes in; rotate: degrees within the face. Raised, it is a new part (filament=N prints it in another color); engraved, a negative part (set_part_type turns it back). Look at preview_plate afterwards.

NameTypeReqDescription
at–––
depthnumber––
engraveboolean––
facestring––
filamentinteger––
fontstring––
objectstringyes–
rotatenumber––
sizenumber––
svgstring––
textstring––

No output schema declared.

No examples provided.

add_shape ~305

Create a simple solid: box (width, depth, height), cylinder (diameter, height), cone (diameter, diameter_top, height), sphere (diameter), text (text, text_height = capital letters in mm, height = depth of the letters; base > 0 puts the text on a plate that thick, as a separate part 'Base' with filament base_filament (0 = same as the text), e.g. white letters on a black tag; font = path to a .ttf/.otf), svg (svg = path of an .svg file, a logo raised `height` mm; size = its longest side in mm, 0 = the file's own size; base works as for text). To put text or a logo on an existing object, use add_relief.

NameTypeReqDescription
basenumber––
base_filamentinteger––
depthnumber––
diameternumber––
diameter_topnumber––
filamentinteger––
fontstring––
heightnumber––
namestring––
plateinteger––
shapestringyes–
sizenumber––
svgstring––
textstring––
text_heightnumber––
widthnumber––
x–––
y–––

No output schema declared.

No examples provided.

align_objects ~99

Line up objects of one plate, like Bambu Studio's Align / Distribute, by their outer boxes. align: left, right, center_x (along X); front, back, center_y (along Y). distribute: 'x' or 'y' spaces them evenly between the two outermost ones. Both can be given.

NameTypeReqDescription
alignstring––
distributestring––
objectsarrayyes–

No output schema declared.

No examples provided.

ams_load ~174

Load the filament of an AMS slot into the nozzle, like Load in Bambu Studio's Device tab: the nozzle heats, the filament loaded now (if any) goes back to its slot, the new one comes in and is purged. slot: as in printer_status (AMS 1 = slots 1-4, AMS 2 = 5-8). Only when the printer is not printing. First call without confirm: nothing is sent, the answer says what would happen and the confirm code; tell the user, and only after they agree call again with confirm=<code>. Bambu firmware accepts it only in LAN-only mode with Developer Mode; otherwise use the printer screen, Bambu Handy or Bambu Studio.

NameTypeReqDescription
confirmstring––
slotintegeryes–

No output schema declared.

No examples provided.

ams_unload ~115

Unload the filament in the nozzle back to its AMS slot, like Unload in Bambu Studio's Device tab (the nozzle heats). Only when the printer is not printing. First call without confirm: nothing is sent, the answer gives the confirm code; call again with confirm=<code> only after the user agrees. Bambu firmware accepts it only in LAN-only mode with Developer Mode; otherwise use the printer screen, Bambu Handy or Bambu Studio.

NameTypeReqDescription
confirmstring––

No output schema declared.

No examples provided.

arrange ~318

Arrange objects by their real outline seen from above, brim and brim ears included, so shapes can nest (like Bambu Studio's Arrange, which only uses convex hulls). gap: mm between those outlines (and from the plate's edge half of it). Which objects: plate N, the named `objects` (ids or names), or all (plate=0). plates: 0 = each object stays on its plate; N = spread them over plates 1..N, evenly; -1 = as few plates as possible. rotate: allow turning them by multiples of rotation_step degrees (e.g. 60 for snowflakes); multi_material false = one material (set of filaments) per plate; avoid_calibration_area: keep off the printer's flow calibration corner (P1S/X1: front left); align_to_y: long side along Y first. Plates with more than one material keep the back right corner free for the prime tower. If something does not fit, nothing is moved: the answer says what is left over and how many plates it needs. Objects not being arranged stay where they are. Look at preview_plate(view='top') afterwards.

NameTypeReqDescription
align_to_yboolean––
avoid_calibration_areaboolean––
gapnumber––
multi_materialboolean––
objects–––
plateinteger––
platesinteger––
rotateboolean––
rotation_stepnumber––

No output schema declared.

No examples provided.

bambu_status ~29

Where Bambu Studio is installed, its version, whether it is running, and the current project.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

boolean_objects ~157

Mesh boolean between two objects where they are on the plate, like Bambu Studio's Mesh boolean. difference: cut tool_object's shape out of object (a hole, a slot, a lettering); intersection: keep only what they share; union: weld tool_object onto object (onto its part `part`, default the biggest). The result keeps object's name, settings and filaments; painted colors stay, new faces take the part's filament. The tool object is removed unless keep_tool=True. Both must be closed solids (check_object).

NameTypeReqDescription
keep_toolboolean––
objectstringyes–
operationstring––
partstring––
tool_objectstringyes–

No output schema declared.

No examples provided.

check_object ~33

Is the mesh a closed, printable solid? Size, volume, number of separate pieces.

NameTypeReqDescription
objectstringyes–

No output schema declared.

No examples provided.

check_print_risks ~130

Before a long print: parts likely to come off or topple, and settings that do not fit. Per plate (0 = all): tall and narrow parts (height against the smaller side of the footprint), parts standing on a narrow or tiny footing without a brim (e.g. pins lying on their side), filaments whose temperature for this build plate is 0 (not meant for it), and plates where tall parts share a long print with many others (a part that fails late can knock the others: print them apart).

NameTypeReqDescription
plateinteger––

No output schema declared.

No examples provided.

convert_units ~110

An object modeled in other units, like Bambu Studio's Convert from inch / meter: unit 'inch', 'cm' or 'meter' scales it up from that unit to millimeters (a 1-unit cube becomes 25.4, 10 or 1000 mm); restore=True scales it back down. import_model says when a model looks like it is in inches or meters.

NameTypeReqDescription
objectstringyes–
restoreboolean––
unitstring––

No output schema declared.

No examples provided.

copy_object_settings ~103

Copy one object's own settings (set_object_setting: infill, walls, brim...) to other objects, like Bambu Studio's Copy / Paste process settings. keys: only these; replace=True first removes the targets' own settings; height_ranges=True copies the height bands too.

NameTypeReqDescription
from_objectstringyes–
height_rangesboolean––
keys–––
replaceboolean––
to_objectsarrayyes–

No output schema declared.

No examples provided.

cut_object ~504

Cut an object with a plane, optionally with connectors that line the pieces up for gluing (like the connectors of Bambu Studio's Cut tool). keep: both | bottom | top. The plane is horizontal at height z (mm from the object's bottom), or goes through `point` [x, y, z] (plate mm, z above the bed) with `normal` [nx, ny, nz]: [1, 0, 0] cuts vertically across x, [0.5, 0, 1] is tilted. place: auto = the lower piece stays as it is and the upper one lies on its cut face; cut_down = both lie on their cut faces; keep = both as they were. connector: none | plug (a peg on the piece whose cut face is up, a hole with `clearance` mm per side in the other) | dowel (holes in both pieces and a separate pin, added to the plate) | dovetail (a tongue across the whole cut, along its length, and a slot in the other piece: they slide together from the side). shape: cylinder | square | hexagon; style: prism | frustum (tapered, centers itself); size: diameter or side in mm, or the dovetail's narrow width (0 = from the cut); depth: peg, pin or dovetail height (0 = automatic); count: 0 = one per piece of the cut (two along a long one), N = spread over the cut; positions: [[x, y], ...] or [[x, y, z]] in plate mm, taken on the plane (for a dovetail: a point on its middle line). Holes keep 2 mm of material from the edge and get shallower where a piece is thin; connectors that do not fit are listed as skipped. Modifiers, negative parts and painted colors are kept on the pieces.

NameTypeReqDescription
clearancenumber––
connectorstring––
countinteger––
depthnumber––
keepstring––
normal–––
objectstringyes–
placestring––
point–––
positions–––
shapestring––
sizenumber––
stylestring––
znumber––

No output schema declared.

No examples provided.

delete_object ~22

Remove an object from the project.

NameTypeReqDescription
objectstringyes–

No output schema declared.

No examples provided.

delete_preset ~85

Delete one of your user presets (a backup copy is kept, see the answer). A preset in your Bambu cloud cannot be deleted from here, because Bambu Studio would download it again at its next start: only its own Delete removes the cloud copy, and the answer says where it is.

NameTypeReqDescription
kindstringyes–
namestringyes–

No output schema declared.

No examples provided.

delete_printer_files ~154

Free space on the printer's SD card: delete timelapse videos (with their thumbnails), files of past prints (kind='prints') or thumbnails whose video is gone (kind='thumbnails'). Pick them by names (from printer_files) or all those older than older_than_days. Two steps: without confirm nothing is deleted, the answer lists what would go, the space freed and a code; show the list to the user and only if they agree call again with confirm=<code>. Deleted files cannot be recovered. Nothing is deleted while a print is running.

NameTypeReqDescription
confirmstring––
kindstringyes–
names–––
older_than_daysinteger––

No output schema declared.

No examples provided.

download_printer_file ~88

Copy a file from the printer's SD card into the projects folder: a timelapse video (name from printer_files, or 'latest') or the file of a past print (kind='prints'). For a timelapse its last frame is shown too: the finished print. Read-only on the printer.

NameTypeReqDescription
kindstring––
namestring––

No output schema declared.

No examples provided.

duplicate_object ~49

Copy an object `copies` times onto free spots (same plate unless `plate` is given).

NameTypeReqDescription
copiesinteger––
objectstringyes–
plateinteger––

No output schema declared.

No examples provided.

edit_preset ~171

Change settings of one of your user presets directly, without a project (a backup copy is kept). kind: filament | process | printer. values: {"key": "value"}, e.g. {"pressure_advance": "0.025", "enable_pressure_advance": "1"} or {"nozzle_temperature": "215"}; a list gives one value per extruder variant (Standard / High Flow nozzle); null removes the key, so the value comes from the parent preset again. Bambu system presets are read-only: save a user preset from them first. Bambu Studio sees the change after it restarts, and uploads it to your Bambu cloud if the preset is there.

NameTypeReqDescription
kindstringyes–
namestringyes–
valuesobjectyes–

No output schema declared.

No examples provided.

export_stl ~109

Save objects as STL files (e.g. to print them on other printers of a farm, or to share them): the named objects, all of a plate, or all of the project. One file per object, or one_file=True for all of them where they are on the plate. Negative parts (holes) are cut out; colors and settings are not part of an STL.

NameTypeReqDescription
objects–––
one_fileboolean––
plateinteger––

No output schema declared.

No examples provided.

filament_colors ~44

Official colors (name, hex) of a Bambu filament line, e.g. 'Bambu PLA Basic @BBL X1C'.

NameTypeReqDescription
presetstringyes–

No output schema declared.

No examples provided.

fill_plate ~148

Fill the free area of an object's plate with copies of it, like Bambu Studio's Fill bed with copies. copies: 0 = as many as fit, N = at most N. Shapes nest by their real outline (brim and brim ears counted), and rotate=True also tries turning them by rotation_step degrees. The original is placed again together with the copies (more fit), unless keep_original=True; the other objects on the plate stay where they are.

NameTypeReqDescription
copiesinteger––
gapnumber––
keep_originalboolean––
objectstringyes–
rotateboolean––
rotation_stepnumber––

No output schema declared.

No examples provided.

get_project ~56

Current project: printer, process, filament slots, plates, objects (id, name, center, size, filaments), setting overrides and warnings. If the project was saved in Bambu Studio in the meantime it is re-read first.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_purge_volumes ~55

Purge (flush) volumes between filament slots, in mm³, and the multiplier: the filament wasted at each change on the prime tower (or into infill/objects, see set_purge_volumes).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_setting ~37

Current value of a print/filament/printer setting, where it comes from, and the preset value.

NameTypeReqDescription
keystringyes–

No output schema declared.

No examples provided.

import_model ~105

Put an STL, OBJ or 3MF on a plate. Without x/y it goes to the free spot closest to the center. From a 3MF every object is imported (with its parts and filament assignments).

NameTypeReqDescription
filamentinteger––
namestring––
pathstringyes–
plateinteger––
rotate_znumber––
scalenumber––
x–––
y–––

No output schema declared.

No examples provided.

lay_flat ~55

Rotate an object so one of its flat faces lies on the bed: face 1 = the biggest flat face, 2 = the second biggest, and so on.

NameTypeReqDescription
faceinteger––
objectstringyes–

No output schema declared.

No examples provided.

list_printers ~31

Printer short names that can be used anywhere a printer is asked (a full machine preset name works too).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_user_presets ~85

Your own Bambu Studio presets (kind: filament | process | printer; empty = all): the preset each one inherits and what it changes, whether it is in your Bambu cloud (then only Bambu Studio can delete or rename it), and which presets inherit it. To find system presets too, use search_presets.

NameTypeReqDescription
kindstring––

No output schema declared.

No examples provided.

make_first_layer_test ~81

Add a plate with the first `height` mm of the objects of a plate (or of the listed objects): a short print to check bed adhesion and the first layers before a long print. Slice it with slice_project(plate=<new plate>).

NameTypeReqDescription
heightnumber––
objects–––
plateinteger––

No output schema declared.

No examples provided.

make_flow_test ~116

Add a plate of flow-rate squares for a filament slot, each printed with a different flow modifier (percent) engraved on top. Pass 1: -20..+20 step 5. Pass 2: around the best one, e.g. low=-4 high=4 step=1. Pick the square with the smoothest top surface (no gaps, no ridges).

NameTypeReqDescription
filamentinteger––
highnumber––
lownumber––
stepnumber––

No output schema declared.

No examples provided.

make_max_flow_test ~126

Max volumetric speed test for a filament slot, as a separate project file (the open project is not changed): single-wall cylinders, each printed at the wall speed that gives the volumetric speed Q (mm³/s) on its tag. Default range: around the filament's current limit. The highest Q without gaps or weak walls is the max; use a bit less (about 90%) as filament_max_volumetric_speed.

NameTypeReqDescription
filamentinteger––
highnumber––
lownumber––
stepnumber––

No output schema declared.

No examples provided.

make_pa_tower ~107

Add a plate with a pressure advance (flow dynamics) tower: a thin square tube printed fast, the K value grows by `step` every millimeter. Find the height with the sharpest corners and no gaps: K = start + floor(height) * step. When sending it, turn off the printer's automatic flow dynamics calibration.

NameTypeReqDescription
endnumber––
filamentinteger––
startnumber––
stepnumber––

No output schema declared.

No examples provided.

make_retraction_test ~91

Stringing test for a filament slot: one small separate project per retraction length (Bambu printers cannot change retraction during a print). Print them one after the other and keep the shortest length without strings between the two pillars; then set_setting('filament_retraction_length', value, slot) or save_filament_preset.

NameTypeReqDescription
filamentinteger––
lengths–––

No output schema declared.

No examples provided.

make_temperature_tower ~113

Add a plate with a temperature tower for a filament slot: one 8 mm block per temperature (hottest at the bottom), each with a bridge and its temperature engraved on the front. Defaults: the filament's temperature +15 down to -25 °C, within its allowed range. Pick the block with the best bridge, surface and least stringing.

NameTypeReqDescription
endnumber––
filamentinteger––
startnumber––
stepnumber––

No output schema declared.

No examples provided.

make_vfa_test ~128

Add a plate with a VFA test (vertical fine artifacts: fine vertical ripples on walls that some speeds cause): one block per outer wall speed from start to end mm/s, the speed engraved on top. Look at the long faces with light from the side and pick the fastest speed without ripples for outer_wall_speed. Bambu Studio's VFA tower changes the speed inside one object; here each block has its own speed.

NameTypeReqDescription
endnumber––
filamentinteger––
startnumber––
stepnumber––

No output schema declared.

No examples provided.

measure_between ~119

Distance between two objects or two parts (part_a / part_b; the same object twice with two parts measures the clearance between them), in plate mm: the smallest gap with about where it is, the distance between their centers, the gap along each axis between their outer boxes (negative = they overlap along it) and, if they overlap, the volume they share.

NameTypeReqDescription
object_astringyes–
object_bstringyes–
part_astring––
part_bstring––

No output schema declared.

No examples provided.

measure_object ~166

Measure an object (or its part `part`), in plate mm: size and where it is, each part's size, volume and surface, the area standing on the bed, the smallest gaps between its separate pieces or parts (the clearance of print-in-place joints, with where), and walls thinner than the nozzle's line width (or min_wall mm), with where and at which heights. z >= 0: also the cross-section at that height above the bed, every island with its length, width and thickest point and its holes (how long and thick a bar is, how wide a hole is).

NameTypeReqDescription
min_wallnumber––
objectstringyes–
partstring––
znumber––

No output schema declared.

No examples provided.

merge_objects ~95

Join objects of the same plate into one object with several parts, where they are now, like Bambu Studio's Assemble: they move and print as one (e.g. a model and its base in another color). Each part keeps its filament and painting; the merged object takes the first object's settings (the others' are listed if they differ).

NameTypeReqDescription
namestring––
objectsarrayyes–

No output schema declared.

No examples provided.

mirror_object ~37

Mirror an object across its own center (axis x, y or z).

NameTypeReqDescription
axisstring––
objectstringyes–

No output schema declared.

No examples provided.

move_object ~102

Move an object (by name or id): absolute x/y, relative dx/dy, rotate around Z by rotate_z degrees, or move it to another plate (it keeps x/y if given, otherwise it goes to a free spot).

NameTypeReqDescription
dxnumber––
dynumber––
objectstringyes–
plateinteger––
rotate_znumber––
x–––
y–––

No output schema declared.

No examples provided.

new_project ~126

Start an empty project. filaments: AMS slots in order, e.g. [{"preset": "Bambu PLA Basic", "color": "#000000"}, {"preset": "eSUN PLA+", "color": "#FFFFFF"}]. A filament name without '@...' is matched to the printer automatically. The build plate type is the one picked in Bambu Studio for this printer (change it with set_setting('curr_bed_type', ...)).

NameTypeReqDescription
filaments–––
namestringyes–
printerstring––
processstring––

No output schema declared.

No examples provided.

open_in_bambu_studio ~91

Open a .3mf in the Bambu Studio window: by default the last saved project (else the last sliced one). Bambu Studio re-slices a project when asked (Slice plate), it does not reuse the slicing done here; to open a plate sliced and ready to print, use send_to_printer(via='bambu_studio').

NameTypeReqDescription
pathstring––

No output schema declared.

No examples provided.

open_project ~57

Open a .3mf saved by Bambu Studio (or downloaded from MakerWorld). The file is never modified: save_project writes a new file. Returns the project summary and what could not be carried over.

NameTypeReqDescription
pathstringyes–

No output schema declared.

No examples provided.

orient_object ~125

Turn an object the way up it prints best, like Bambu Studio's Auto orientation: least area that needs support (faces leaning more than overhang_angle degrees from vertical, not on the bed), enough area on the bed, low height. Returns the 3 best options with those numbers and the current ones; choice=2 or 3 applies another option, apply=False only compares. Look at preview_plate afterwards.

NameTypeReqDescription
applyboolean––
choiceinteger––
objectstringyes–
overhang_anglenumber––

No output schema declared.

No examples provided.

paint_object ~248

Paint a region of an object, like Bambu Studio's painting tools. paint: 'color' (with filament=N), 'support' (supports there), 'block_support' (none there), 'seam' (put the seam there), 'block_seam', 'fuzzy_skin'. Region: the height band z_from..z_to (mm from the object's bottom; z_to=0 = to the top) and the faces looking 'top', 'bottom', 'sides', 'front', 'back', 'left', 'right', 'overhangs' (leaning more than `angle` degrees from vertical, for supports) or 'all'. clear=True removes that painting there. Triangles crossing a band's edge are split, so the edge is sharp. part: only that part. Look at preview_plate (colors) afterwards.

NameTypeReqDescription
anglenumber––
clearboolean––
facingstring––
filamentinteger––
objectstringyes–
paintstringyes–
partstring––
z_fromnumber––
z_tonumber––

No output schema declared.

No examples provided.

Install

How do I install the Bambu Studio (unofficial) MCP server?

Bambu Studio (unofficial) runs locally as a PyPI package, launched with uvx unofficial-bambu-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · unofficial-bambu-mcp

# add to Claude Code
claude mcp add danielefinocchiaro-unofficial-bambu-mcp -- uvx unofficial-bambu-mcp
Common questions

What is the Bambu Studio (unofficial) MCP server?

Bambu Studio (unofficial) is an MCP server listed in the public MCP registry as io.github.danielefinocchiaro/unofficial-bambu-mcp. Build, edit, slice, check and calibrate Bambu Studio projects; read a Bambu Lab printer's status. This page covers its PyPI package (unofficial-bambu-mcp).

Is the Bambu Studio (unofficial) MCP server safe to use?

Bambu Studio (unofficial) scores 53 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 4 November 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Bambu Studio (unofficial) MCP server expose?

Bambu Studio (unofficial) exposes 87 tools: bambu_status, list_printers, search_presets, filament_colors, new_project, and 82 more. Their descriptions and schemas cost roughly 10,007 tokens of context every time the server is loaded.

Is the Bambu Studio (unofficial) MCP server still maintained?

Bambu Studio (unofficial) is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Bambu Studio (unofficial) MCP server under?

Bambu Studio (unofficial) declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.