Bambu Printer MCP
MCPB · BAMBU-PRINTER-MCP.MCPB · SCANNED OCT 4
Control Bambu Lab printers, slice models, manage AMS filament, and connect Blender over your LAN.
Available components
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 Security16
- No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
- Known CVEs were checked across the 191 of 191 dependencies we could resolve, so this covers what we could see, not the whole tree.Partial
- Declares code that runs automatically (postinstall) and that we could not recognise. It may be perfectly ordinary, but we have not established what it does. View diagnostics → Partial
- 81 of 191 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
- 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 (GPL-2.0).Pass
- Actively maintained (last published 4 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability75
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 9991 tokens (~208/item across 48 items; 45 tools + 3 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 Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "delete_printer_file" implies "delete" 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 46 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Unverified: 1 category
A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
How do I install the Bambu Printer MCP server?
Bambu Printer MCP ships as an MCPB bundle, a single file you download and open in an MCP host that supports MCPB bundles, such as Claude Desktop. The host reads the launch command from the bundle's own manifest, so there is no command to copy. Before opening it, check the file's SHA-256 matches the one the MCP registry declares for it, 5e3f7fd62b42f47a9c3137448e235da7b5f9c4595e61f1c7290901f2b3a9a583; the commands to do that are on this page. If it does not match, do not open it.
mcpb · bambu-printer-mcp.mcpb
Download bundleCheck the download matches the SHA-256 the MCP registry declares before you open it. If it does not match, do not open the file.
SHA-256
5e3f7fd62b42f47a9c3137448e235da7b5f9c4595e61f1c7290901f2b3a9a583
macOS / Linux
echo "5e3f7fd62b42f47a9c3137448e235da7b5f9c4595e61f1c7290901f2b3a9a583 bambu-printer-mcp.mcpb" | shasum -a 256 -c
Windows (PowerShell)
(Get-FileHash -Algorithm SHA256 .\bambu-printer-mcp.mcpb).Hash -eq "5e3f7fd62b42f47a9c3137448e235da7b5f9c4595e61f1c7290901f2b3a9a583"
Run it in the folder you saved the bundle to, then open the file with an MCPB-capable host such as Claude Desktop.
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.
- 29 Sept 26 44
First indexed and scored.
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 Oct 2026 · Analysed mcpb/https://github.com/DMontgomery40/bambu-printer-mcp/releases/download/v1.1.20/bambu-printer-mcp.mcpb
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | mcpb |
| Reason | No attestation published |
Background: How many MCP packages publish verified provenance →
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| postinstall | unreviewed | node scripts/install-patches.mjs |
Background: Why install scripts are a supply-chain risk →
Dependencies 191 packages
| Packages resolved | 191 |
|---|---|
| Stale | 80 |
| No linked repository | 1 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
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 →
bambu_connect_import_file ~120
Open an existing G-code or sliced 3MF file in the signed-in Bambu Connect app through its official URL scheme. This is a cloud-mode handoff and does not start printing by itself.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | yes | Readable local path to a .gcode, .3mf, or .gcode.3mf file |
| name | string | – | Optional project name shown by Bambu Connect |
| version | string | – | Optional integration version sent to Bambu Connect (default: 1.0.0) |
No output schema declared.
No examples provided.
bambu_network_bridge_status ~209
Inspect or probe the FULU OrcaSlicer-bambulab BambuNetwork bridge runtime used for cloud and restored BambuNetwork printing.
| Name | Type | Req | Description |
|---|---|---|---|
| bambu_network_config_dir | string | – | Config/log directory used by the BambuNetwork agent; defaults to BAMBU_NETWORK_CONFIG_DIR or a user config directory. |
| bridge_command | string | – | Override command for the FULU bridge host or macOS/WSL wrapper; defaults to BAMBU_NETWORK_BRIDGE_COMMAND. Per-call overrides require MCP_ALLOW_EXECUTABLE_ARG=1. |
| connect | boolean | – | When true, start the bridge command and run a handshake plus agent initialization probe. |
| country_code | string | – | BambuNetwork country code, such as US, used by the agent during startup. |
| timeout_ms | number | – | Bridge request timeout in milliseconds for the connect probe. |
| user_info | string | – | Optional BambuNetwork user_info JSON string to pass to net.change_user after the agent starts. |
No output schema declared.
No examples provided.
bambu_network_call ~257
Call a raw FULU OrcaSlicer-bambulab BambuNetwork bridge method, optionally with an initialized network agent injected into the payload.
| Name | Type | Req | Description |
|---|---|---|---|
| bambu_network_config_dir | string | – | Config/log directory used by the BambuNetwork agent; defaults to BAMBU_NETWORK_CONFIG_DIR or a user config directory. |
| bridge_command | string | – | Override command for the FULU bridge host or macOS/WSL wrapper; defaults to BAMBU_NETWORK_BRIDGE_COMMAND. Per-call overrides require MCP_ALLOW_EXECUTABLE_ARG=1. |
| country_code | string | – | BambuNetwork country code, such as US, used by the agent during startup. |
| method | string | yes | FULU bridge method name, for example bridge.handshake, net.is_user_login, or net.get_user_selected_machine. |
| payload | object | – | JSON payload passed to the bridge method. |
| timeout_ms | number | – | Bridge request timeout in milliseconds. |
| user_info | string | – | Optional BambuNetwork user_info JSON string to pass to net.change_user after the agent starts. |
| with_agent | boolean | – | When true, initialize a BambuNetwork agent and add its agent id to the payload before calling the method. |
No output schema declared.
No examples provided.
blender_mcp_call ~151
Call a discovered tool on the configured Blender MCP server, preserving its full MCP content and errors. Discover tool schemas with blender_mcp_status first; execute_blender_code accepts Python code and user_prompt. Calls can modify the active Blender scene and are never automatically retried.
| Name | Type | Req | Description |
|---|---|---|---|
| arguments | object | – | Arguments matching the remote tool's discovered input schema. Preserve the user's own words in user_prompt when the remote tool requests it. |
| timeout_ms | integer | – | Total connection, discovery, and tool deadline in milliseconds; defaults to BLENDER_MCP_TIMEOUT_MS or 120000. |
| tool_name | string | yes | Exact name advertised by Blender MCP, such as get_scene_info or execute_blender_code. |
No output schema declared.
No examples provided.
blender_mcp_edit_model ~259
Import, edit, and export a local STL through standard Blender MCP with verified output and existing scene objects preserved. Requires a shared local filesystem and Blender Object Mode. Also supports a separately configured legacy executable bridge.
| Name | Type | Req | Description |
|---|---|---|---|
| bridge_command | string | – | Legacy custom bridge executable override, not a standard MCP command. Per-call overrides require MCP_ALLOW_EXECUTABLE_ARG=1. |
| execute | boolean | – | Apply edits and export (true) or validate and return the prepared request without connecting (false, default). |
| operations | array | yes | Ordered operations: decimate:<ratio greater than 0 and at most 1>, remesh:<positive voxel size in STL units>, boolean_union:<STL path>. Legacy custom bridges define their own operations. |
| output_path | string | – | Required for standard MCP previews and execution: new local STL output path whose parent exists. Existing files are never overwritten. Optional for legacy-only bridge configuration. |
| stl_path | string | yes | Path to the local STL file |
| timeout_ms | integer | – | Total Blender request deadline in milliseconds; defaults to BLENDER_MCP_TIMEOUT_MS or 120000. |
| user_prompt | string | – | The user's own words describing the edit, passed unchanged to Blender MCP. |
No output schema declared.
No examples provided.
blender_mcp_status ~97
Inspect Blender MCP configuration or connect and discover the remote server's tools and schemas. Connecting does not edit the scene; use get_scene_info through blender_mcp_call to check the Blender addon.
| Name | Type | Req | Description |
|---|---|---|---|
| connect | boolean | – | Initialize the configured stdio MCP server and discover its tools (default false). |
| timeout_ms | integer | – | Total connection and discovery deadline in milliseconds; defaults to BLENDER_MCP_TIMEOUT_MS or 120000. |
No output schema declared.
No examples provided.
camera_snapshot ~335
Capture a single JPEG frame from the printer's chamber camera. A1/P1 use TCP-on-6000; X1/P2S/H2/X2D use RTSP via ffmpeg. Returns JPEG as base64; pass save_path to also write the bytes to disk.
| Name | Type | Req | Description |
|---|---|---|---|
| bambu_model | string | – | Printer model. Used to route to the correct protocol or fail fast on unsupported models. Defaults to BAMBU_MODEL. |
| bambu_serial | string | – | Serial number (default: value from env) |
| bambu_token | string | – | Access token (default: value from env) |
| experimental | boolean | – | Deprecated and ignored. Earlier this flag let callers probe H2 series via the A1/P1 TCP-on-6000 path; live testing on an H2S confirmed H2 uses RTSP instead, so the flag has no effect now. |
| ffmpeg_path | string | – | Override path to the ffmpeg binary used by the RTSP path. Defaults to FFMPEG_PATH or ffmpeg via $PATH. Per-call overrides require MCP_ALLOW_EXECUTABLE_ARG=1. Required only for the RTSP transport (X1,… |
| host | string | – | Hostname or IP of the printer (default: value from env) |
| save_path | string | – | Optional absolute path to write the JPEG to disk. If omitted, only the base64 payload is returned. |
| timeout_ms | number | – | Max ms to wait for a full frame (default 8000). Camera may take a few seconds on cold start. |
No output schema declared.
No examples provided.
cancel_print ~74
Cancel the current print job on the Bambu Lab printer
| Name | Type | Req | Description |
|---|---|---|---|
| bambu_serial | string | – | Serial number (default: value from env) |
| bambu_token | string | – | Access token (default: value from env) |
| host | string | – | Hostname or IP of the printer (default: value from env) |
No output schema declared.
No examples provided.
center_model ~40
Translate the model so its geometric center is at the origin (0,0,0)
| Name | Type | Req | Description |
|---|---|---|---|
| stl_path | string | yes | Path to the STL file |
No output schema declared.
No examples provided.
clear_hms_errors ~84
Clear HMS or print error state on the Bambu Lab printer using the clean_print_error MQTT command.
| Name | Type | Req | Description |
|---|---|---|---|
| bambu_serial | string | – | Serial number (default: value from env) |
| bambu_token | string | – | Access token (default: value from env) |
| host | string | – | Hostname or IP of the printer (default: value from env) |
No output schema declared.
No examples provided.
delete_printer_file ~169
Delete a file from the Bambu Lab printer's SD card via FTPS. Destructive: requires confirm:true. Restricted to cache/, timelapse/, and logs/ directories. Path traversal segments (..) are rejected.
| Name | Type | Req | Description |
|---|---|---|---|
| bambu_serial | string | – | Serial number (default: value from env) |
| bambu_token | string | – | Access token (default: value from env) |
| confirm | boolean | – | Must be true to actually delete. When false or omitted the call returns without sending an FTP request. |
| filename | string | yes | File to delete. Bare names default to cache/<name>; pass a relative path like timelapse/foo.mp4 to target other allowed directories. |
| host | string | – | Hostname or IP of the printer (default: value from env) |
No output schema declared.
No examples provided.
extend_stl_base ~54
Extend the base of an STL file by a specified amount
| Name | Type | Req | Description |
|---|---|---|---|
| extension_height | number | yes | Height in mm to extend the base by |
| stl_path | string | yes | Path to the STL file to modify |
No output schema declared.
No examples provided.
get_printer_filaments ~175
Get the live AMS/external filament inventory from the printer over MQTT, including loaded/empty slot summary, resolved slicer profile paths, match confidence, and recommended load_filaments when the printer model is known.
| Name | Type | Req | Description |
|---|---|---|---|
| bambu_model | string | – | Optional model hint used to resolve Bambu/Orca filament profile JSONs for each tray. |
| bambu_serial | string | – | Serial number for the Bambu Lab printer (default: value from env) |
| bambu_token | string | – | Access token for the Bambu Lab printer (default: value from env) |
| host | string | – | Hostname or IP address of the printer (default: value from env) |
| nozzle_diameter | string | – | Optional nozzle diameter used when resolving model-specific filament profile JSONs (default: 0.4). |
No output schema declared.
No examples provided.
get_printer_status ~88
Get the current status of the Bambu Lab printer
| Name | Type | Req | Description |
|---|---|---|---|
| bambu_serial | string | – | Serial number for the Bambu Lab printer (default: value from env) |
| bambu_token | string | – | Access token for the Bambu Lab printer (default: value from env) |
| host | string | – | Hostname or IP address of the printer (default: value from env) |
No output schema declared.
No examples provided.
get_slice_settings ~96
Inspect slicer settings from a saved 3MF template or a JSON/config slicer profile without slicing anything.
| Name | Type | Req | Description |
|---|---|---|---|
| source_path | string | – | Path to a 3MF template, extracted project_settings.config, or slicer profile JSON. |
| template_dir | string | – | Optional template directory override when resolving template_name. |
| template_name | string | – | Optional named template from the local registry. If provided, resolves source_path automatically. |
No output schema declared.
No examples provided.
get_stl_info ~42
Get detailed information about an STL file (bounding box, face count, dimensions)
| Name | Type | Req | Description |
|---|---|---|---|
| stl_path | string | yes | Path to the STL file to analyze |
No output schema declared.
No examples provided.
lay_flat ~40
Rotate the model so its largest flat face lies on the XY plane (Z=0)
| Name | Type | Req | Description |
|---|---|---|---|
| stl_path | string | yes | Path to the STL file |
No output schema declared.
No examples provided.
list_3mf_plate_objects ~78
List object IDs from a sliced 3MF plate. Use these IDs with skip_objects during a running print.
| Name | Type | Req | Description |
|---|---|---|---|
| plate_index | number | – | 0-based plate index to inspect (default: 0) |
| three_mf_path | string | yes | Path to a sliced 3MF/.gcode.3mf file |
No output schema declared.
No examples provided.
list_printer_files ~74
List files stored on the Bambu Lab printer
| Name | Type | Req | Description |
|---|---|---|---|
| bambu_serial | string | – | Serial number (default: value from env) |
| bambu_token | string | – | Access token (default: value from env) |
| host | string | – | Hostname or IP of the printer (default: value from env) |
No output schema declared.
No examples provided.
list_templates ~46
List saved slicing templates from the local template registry directory.
| Name | Type | Req | Description |
|---|---|---|---|
| template_dir | string | – | Optional template directory override. Defaults to BAMBU_TEMPLATE_DIR or the server's configured local template registry. |
No output schema declared.
No examples provided.
merge_vertices ~54
Merge vertices in an STL file closer than the specified tolerance
| Name | Type | Req | Description |
|---|---|---|---|
| stl_path | string | yes | Path to the STL file |
| tolerance | number | – | Max distance to merge (mm, default: 0.01) |
No output schema declared.
No examples provided.
pause_print ~81
Pause the current print job on the Bambu Lab printer (resumable via resume_print)
| Name | Type | Req | Description |
|---|---|---|---|
| bambu_serial | string | – | Serial number (default: value from env) |
| bambu_token | string | – | Access token (default: value from env) |
| host | string | – | Hostname or IP of the printer (default: value from env) |
No output schema declared.
No examples provided.
print_3mf ~1,113
Print a 3MF file on a Bambu Lab printer. Auto-slices if the 3MF has no gcode. IMPORTANT: bambu_model must be specified to ensure safe printer operation.
| Name | Type | Req | Description |
|---|---|---|---|
| ams_mapping | array | – | Project-level AMS mapping array. Position = project filament index, value = absolute AMS tray (0-3=AMS 0, 4-7=AMS 1, 8-11=AMS 2, 128+=AMS-HT, 254=external, -1=unused). Prefer ams_slots unless you kno… |
| ams_slots | array | – | Preferred AMS input: one absolute tray index per USED filament in plate order, e.g. [1] for a single-filament print pulling from AMS 0 slot 1. Expanded to project-level ams_mapping automatically from… |
| auto_match_ams | boolean | – | When true, match the sliced 3MF's tray_info_idx requirements against live AMS inventory and use the resulting ams_slots. Ignored when ams_mapping or ams_slots is provided. |
| bambu_model | string | yes | REQUIRED: Bambu Lab printer model. Ask the user if not known. Using the wrong model can damage the printer. |
| bambu_network_config_dir | string | – | Config/log directory used by the FULU BambuNetwork agent. |
| bambu_network_method | string | – | FULU print method when connection_mode is bambu_network; defaults to start_print for cloud and start_local_print for lan. |
| bambu_serial | string | – | Serial number (default: value from env) |
| bambu_token | string | – | Access token (default: value from env) |
| bed_leveling | boolean | – | Enable auto bed leveling (default: true) |
| bed_type | string | – | Bed plate type currently installed (default: textured_plate) |
| bridge_command | string | – | Override command for the FULU bridge host or macOS/WSL wrapper; defaults to BAMBU_NETWORK_BRIDGE_COMMAND. Per-call overrides require MCP_ALLOW_EXECUTABLE_ARG=1. |
| connection_mode | string | – | Print path: bambu_connect hands a printable file to the signed-in Bambu Connect app for cloud-mode review; X2D otherwise defaults to bambu_native (Bambu Studio's installed local networking plug-in an… |
| connection_type | string | – | BambuNetwork connection type when connection_mode is bambu_network; cloud uses restored internet printing, lan uses local bridge printing. |
| country_code | string | – | BambuNetwork country code, such as US, used by the FULU bridge agent. |
| dev_id | string | – | Bambu device id for FULU BambuNetwork printing; defaults to BAMBU_DEV_ID or BAMBU_SERIAL. |
| dev_ip | string | – | Printer IP address for FULU BambuNetwork LAN/local print methods; defaults to host when provided. |
| flow_calibration | boolean | – | Enable flow calibration (default: true) |
| host | string | – | Hostname or IP of the printer (default: value from env) |
| nozzle_diameter | string | – | Nozzle diameter in mm for auto-slicing (default: 0.4) |
| nozzle_diameters | array | – | Complete per-nozzle diameters for a pre-sliced job, e.g. [0.4, 0.6]. Omit to verify its declared diameters against live telemetry; cannot combine with nozzle_diameter. |
| nozzle_type | string | – | Installed nozzle material, used when the 3MF must be auto-sliced (default: BAMBU_NOZZLE_TYPE, else the preset's stock nozzle). |
| plate_index | number | – | Zero-based plate index to print from the sliced 3MF (default: 0) |
| slicer_path | string | – | Path to the slicer executable for auto-slicing (default: value from env or a platform default). Per-call overrides require MCP_ALLOW_EXECUTABLE_ARG=1. |
| slicer_profile | string | – | Path to the slicer profile/config file for auto-slicing (optional). |
| slicer_type | string | – | Slicer to use only if auto-slicing an unsliced 3MF. Bambu-compatible slicer aliases such as fulu-orca and orca-studio are accepted. |
| template_3mf_path | string | – | Optional template 3MF whose embedded Bambu slicer settings should be reused when auto-slicing this print job. |
| template_dir | string | – | Optional template directory override when resolving template_name. |
| template_name | string | – | Optional named template from the local registry. Resolves to template_3mf_path automatically. |
| three_mf_path | string | yes | Path to the 3MF file to print |
| timelapse | boolean | – | Enable timelapse recording (default: false) |
| use_ams | boolean | – | Whether to use the AMS (default: auto-detect from 3MF) |
| user_info | string | – | Optional BambuNetwork user_info JSON string passed to net.change_user for the FULU bridge. |
| vibration_calibration | boolean | – | Enable vibration calibration (default: true) |
No output schema declared.
No examples provided.
print_3mf_bambu_network ~1,329
Print a 3MF through FULU OrcaSlicer-bambulab's restored BambuNetwork path instead of the MCP LAN MQTT/FTPS path.
| Name | Type | Req | Description |
|---|---|---|---|
| ams_mapping | array | – | AMS slot mapping array used by both local MCP printing and FULU PrintParams. |
| ams_mapping2 | string | – | Raw JSON string for FULU PrintParams ams_mapping2, matching OrcaSlicer-bambulab's v1 AMS mapping field. |
| ams_mapping_bridge | string | – | Raw JSON string override for FULU PrintParams ams_mapping when the automatic array is not enough. |
| ams_mapping_info | string | – | Raw JSON string for FULU PrintParams ams_mapping_info, matching OrcaSlicer-bambulab's detailed AMS mapping field. |
| ams_slots | array | – | Per-used-filament AMS slot list, matching the local LAN print path. |
| bambu_model | string | yes | REQUIRED: Bambu Lab printer model. Ask the user if not known. Using the wrong model can damage the printer. |
| bambu_network_config_dir | string | – | Config/log directory used by the BambuNetwork agent; defaults to BAMBU_NETWORK_CONFIG_DIR or a user config directory. |
| bambu_network_method | string | – | FULU print method to invoke; defaults to start_print for cloud and start_local_print for lan. |
| bambu_serial | string | – | Fallback Bambu device id when dev_id is not supplied. |
| bambu_token | string | – | Printer access code/password for LAN/local bridge methods. |
| bed_leveling | boolean | – | Enable auto bed leveling in FULU PrintParams (default: true). |
| bed_type | string | – | Bed plate type currently installed (default: textured_plate). |
| bridge_command | string | – | Override command for the FULU bridge host or macOS/WSL wrapper; defaults to BAMBU_NETWORK_BRIDGE_COMMAND. Per-call overrides require MCP_ALLOW_EXECUTABLE_ARG=1. |
| client_job_id | number | – | Optional client job id sent to the bridge; defaults to the current timestamp. |
| config_filename | string | – | Optional config 3MF path for cloud print; defaults to the same 3MF path. |
| connection_type | string | – | BambuNetwork connection type to put in FULU PrintParams; cloud uses restored internet printing, lan uses local bridge printing. |
| country_code | string | – | BambuNetwork country code, such as US, used by the agent during startup. |
| dev_id | string | – | Bambu device id used by BambuNetwork; defaults to BAMBU_DEV_ID or BAMBU_SERIAL. |
| dev_ip | string | – | Printer IP address for LAN/local bridge methods; defaults to host when provided. |
| external_change_assist | boolean | – | Enable FULU PrintParams task_ext_change_assist for external filament change assistance. |
| extra_options | string | – | Raw JSON string or text for FULU PrintParams extra_options. |
| flow_calibration | boolean | – | Enable flow calibration in FULU PrintParams (default: true). |
| host | string | – | Printer host or IP address, used as dev_ip for LAN/local bridge methods. |
| layer_inspect | boolean | – | Enable first-layer inspection where supported (default: false for BambuNetwork bridge). |
| nozzle_diameter | string | – | Nozzle diameter in mm for auto-slicing (default: 0.4). |
| nozzle_diameters | array | – | Complete per-nozzle diameters for pre-sliced jobs, e.g. [0.4, 0.6]. Omit to verify file metadata against every reported nozzle; cannot combine with nozzle_diameter. |
| nozzle_mapping | string | – | Raw JSON string for FULU PrintParams nozzle_mapping. |
| nozzle_type | string | – | Installed nozzle material, used when the 3MF must be auto-sliced (default: BAMBU_NOZZLE_TYPE, else the preset's stock nozzle). |
| nozzles_info | string | – | Raw JSON string for FULU PrintParams nozzles_info. |
| password | string | – | Printer password/access code override for LAN/local bridge methods. |
| plate_index | number | – | Zero-based plate index to print from the sliced 3MF; converted to FULU's one-based PrintParams plate_index. |
| preset_name | string | – | Optional preset name sent in FULU PrintParams; defaults to project plus one-based plate index. |
| project_name | string | – | Optional project name sent in FULU PrintParams; defaults to the 3MF filename without extension. |
| slicer_path | string | – | Path to the slicer executable for auto-slicing; defaults to value from env or a platform default. Per-call overrides require MCP_ALLOW_EXECUTABLE_ARG=1. |
| slicer_profile | string | – | Path to an optional slicer profile/config file for auto-slicing. |
| slicer_type | string | – | Slicer to use only if auto-slicing an unsliced 3MF; use orcaslicer-bambulab for FULU's fork. |
| task_name | string | – | Optional project label when project_name is omitted. The submitted task name uses a unique inspected-job identity for safe resume. |
| three_mf_path | string | yes | Path to the 3MF file to print; unsliced 3MFs are auto-sliced before sending. |
| timelapse | boolean | – | Enable timelapse recording in FULU PrintParams (default: false). |
| timeout_ms | number | – | Bridge request timeout in milliseconds. |
| try_emmc_print | boolean | – | Enable FULU PrintParams try_emmc_print for printers that support internal storage printing. |
| use_ams | boolean | – | Whether to use the AMS; defaults to auto-detect from the 3MF mapping. |
| use_ssl_for_ftp | boolean | – | Whether FULU local print should use SSL for FTP (default: true). |
| use_ssl_for_mqtt | boolean | – | Whether FULU local print should use SSL for MQTT (default: true). |
| user_info | string | – | Optional BambuNetwork user_info JSON string to pass to net.change_user after the agent starts. |
| username | string | – | Printer username for LAN/local bridge methods; defaults to bblp. |
| vibration_calibration | boolean | – | Enable vibration calibration in FULU PrintParams (default: true). |
No output schema declared.
No examples provided.
print_collar_charm ~359
Print a prepared two-part dog collar charm project using the fixed tray policy: inner/smaller object -> black on AMS 1 slot 1, outer/larger object -> white on AMS 2 slot 1.
| Name | Type | Req | Description |
|---|---|---|---|
| bambu_model | string | yes | REQUIRED: Bambu Lab printer model. H2D, H2S, and H2C are the primary intended paths. X2D direct printing is not supported. |
| bambu_serial | string | – | Serial number (default: value from env) |
| bambu_token | string | – | Access token (default: value from env) |
| bed_leveling | boolean | – | Enable auto bed leveling (default: true) |
| bed_type | string | – | Bed plate type currently installed (default: textured_plate) |
| flow_calibration | boolean | – | Enable flow calibration (default: true) |
| host | string | – | Hostname or IP of the printer (default: value from env) |
| nozzle_diameter | string | – | Nozzle diameter in mm for auto-slicing (default: 0.4) |
| slicer_profile | string | – | Path to the slicer profile/config file for auto-slicing (optional). |
| source_path | string | – | Path to a prepared collar charm .3mf project or sliced 3MF. Required unless template_name is provided. |
| template_dir | string | – | Optional template directory override when resolving template_name. |
| template_name | string | – | Named collar charm template from the local registry. Required unless source_path is provided; resolves source_path automatically. |
| timelapse | boolean | – | Enable timelapse recording (default: false) |
| vibration_calibration | boolean | – | Enable vibration calibration (default: true) |
No output schema declared.
No examples provided.
reread_ams_rfid ~159
Trigger a Bambu AMS RFID re-read for one AMS slot. X2D on macOS uses the native official plug-in route. This can move AMS filament; use only when the printer is idle and unloaded.
| Name | Type | Req | Description |
|---|---|---|---|
| ams_id | number | yes | AMS unit index from 0 to 3, or 128 for an X2D AMS-HT. |
| bambu_serial | string | – | Serial number (default: value from env) |
| bambu_token | string | – | Access token (default: value from env) |
| host | string | – | Hostname or IP of the printer (default: value from env) |
| slot_id | number | yes | Slot index within that AMS, from 0 to 3 |
No output schema declared.
No examples provided.
resolve_3mf_ams_slots ~187
Inspect a sliced 3MF and match its tray_info_idx filament requirements against the live AMS inventory. Does not upload or start a print.
| Name | Type | Req | Description |
|---|---|---|---|
| bambu_model | string | – | Optional model hint used to resolve Bambu/Orca filament profile JSONs for each tray. |
| bambu_serial | string | – | Serial number (default: value from env) |
| bambu_token | string | – | Access token (default: value from env) |
| host | string | – | Hostname or IP of the printer (default: value from env) |
| nozzle_diameter | string | – | Nozzle diameter in mm (default: 0.4) |
| plate_index | number | – | 0-based plate index to inspect (default: 0) |
| three_mf_path | string | yes | Path to a sliced 3MF/.gcode.3mf file |
No output schema declared.
No examples provided.
resume_print ~74
Resume a paused print job on the Bambu Lab printer
| Name | Type | Req | Description |
|---|---|---|---|
| bambu_serial | string | – | Serial number (default: value from env) |
| bambu_token | string | – | Access token (default: value from env) |
| host | string | – | Hostname or IP of the printer (default: value from env) |
No output schema declared.
No examples provided.
rotate_stl ~95
Rotate an STL file by specified angles (degrees)
| Name | Type | Req | Description |
|---|---|---|---|
| angle_x | number | – | Rotation angle for X axis in degrees (default: 0) |
| angle_y | number | – | Rotation angle for Y axis in degrees (default: 0) |
| angle_z | number | – | Rotation angle for Z axis in degrees (default: 0) |
| stl_path | string | yes | Path to the STL file to rotate |
No output schema declared.
No examples provided.
save_template ~107
Copy a 3MF, JSON, or config file into the local template registry and register it under a template name.
| Name | Type | Req | Description |
|---|---|---|---|
| source_path | string | yes | Path to a local .3mf, .json, or .config file to save into the template registry. |
| template_dir | string | – | Optional template directory override. Defaults to BAMBU_TEMPLATE_DIR or the server's configured local template registry. |
| template_name | string | – | Optional template name. Defaults to the source filename without extension. |
No output schema declared.
No examples provided.
scale_stl ~93
Scale an STL file by specified factors
| Name | Type | Req | Description |
|---|---|---|---|
| scale_x | number | – | Scale factor for X axis (default: 1.0) |
| scale_y | number | – | Scale factor for Y axis (default: 1.0) |
| scale_z | number | – | Scale factor for Z axis (default: 1.0) |
| stl_path | string | yes | Path to the STL file to scale |
No output schema declared.
No examples provided.
set_airduct_mode ~89
Set H2/P2 airduct mode to cooling or heating.
| Name | Type | Req | Description |
|---|---|---|---|
| bambu_serial | string | – | Serial number (default: value from env) |
| bambu_token | string | – | Access token (default: value from env) |
| host | string | – | Hostname or IP of the printer (default: value from env) |
| mode | string | yes | Airduct mode to apply |
No output schema declared.
No examples provided.
set_ams_drying ~141
Start or stop the AMS filament drying cycle. X2D on macOS uses the native official plug-in route and supports AMS-HT id 128.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Whether to start or stop the drying cycle |
| ams_id | number | yes | AMS unit index from 0 to 3, or 128 for an X2D AMS-HT. |
| bambu_serial | string | – | Serial number (default: value from env) |
| bambu_token | string | – | Access token (default: value from env) |
| host | string | – | Hostname or IP of the printer (default: value from env) |
No output schema declared.
No examples provided.
set_fan_speed ~167
Set a Bambu printer fan speed percentage. X2D on macOS uses the installed Bambu networking plug-in without UI automation; other models use MQTT.
| Name | Type | Req | Description |
|---|---|---|---|
| bambu_serial | string | – | Serial number (default: value from env) |
| bambu_token | string | – | Access token (default: value from env) |
| confirm_during_print | boolean | – | Required for X2D fan changes while a print is running. |
| fan | string | yes | Fan to control: part, auxiliary, right_auxiliary, chamber, 1, 2, 3, or 10 |
| host | string | – | Hostname or IP of the printer (default: value from env) |
| speed | number | yes | Fan speed percentage from 0 to 100 |
No output schema declared.
No examples provided.
set_light ~105
Set a Bambu printer light node mode using the printer's MQTT LED command
| Name | Type | Req | Description |
|---|---|---|---|
| bambu_serial | string | – | Serial number (default: value from env) |
| bambu_token | string | – | Access token (default: value from env) |
| host | string | – | Hostname or IP of the printer (default: value from env) |
| light | string | yes | Light node to control, for example chamber_light |
| mode | string | yes | Light mode to apply |
No output schema declared.
No examples provided.
set_print_speed ~111
Set the active print speed mode: silent, standard, sport, or ludicrous.
| Name | Type | Req | Description |
|---|---|---|---|
| bambu_serial | string | – | Serial number (default: value from env) |
| bambu_token | string | – | Access token (default: value from env) |
| host | string | – | Hostname or IP of the printer (default: value from env) |
| mode | string | yes | Speed mode to apply: silent/1, standard/2, sport/3, or ludicrous/4 |
No output schema declared.
No examples provided.
set_temperature ~207
Set a checked bed or nozzle temperature. Positive heating requires matching fresh printer telemetry; nozzle heating also requires declared material. Zero turns the heater off.
| Name | Type | Req | Description |
|---|---|---|---|
| bambu_model | string | – | Printer model, required for positive heating unless configured in the environment |
| bambu_serial | string | – | Serial number (default: value from env) |
| bambu_token | string | – | Access token (default: value from env) |
| component | string | yes | Component to heat: bed, nozzle, or extruder |
| host | string | – | Hostname or IP of the printer (default: value from env) |
| material | string | – | Loaded material, for example PLA or PETG. Required for positive nozzle heating, including non-RFID spools. |
| nozzle_diameter | number | – | Installed nozzle diameter to compare with printer-reported configuration (default 0.4) |
| temperature | number | yes | Finite target temperature in °C, checked against model/component and declared material limits |
No output schema declared.
No examples provided.
skip_objects ~110
Skip specific object IDs during a running multi-object print using the printer's MQTT skip_objects command
| Name | Type | Req | Description |
|---|---|---|---|
| bambu_serial | string | – | Serial number (default: value from env) |
| bambu_token | string | – | Access token (default: value from env) |
| host | string | – | Hostname or IP of the printer (default: value from env) |
| object_ids | array | yes | Object IDs to skip. Use list_3mf_plate_objects on the sliced 3MF to find IDs. |
No output schema declared.
No examples provided.
slice_stl ~1,249
Slice an STL or 3MF file using a slicer to generate printable G-code or sliced 3MF. IMPORTANT: bambu_model must be specified to ensure the slicer generates safe G-code for the correct printer.
| Name | Type | Req | Description |
|---|---|---|---|
| allow_mix_temp | boolean | – | Allow filaments with different temperature requirements on the same plate. Required for multi-material prints mixing e.g. PLA and PETG. |
| arrange | boolean | – | Auto-arrange all objects on the build plate with optimal spacing. Recommended when importing STLs or adding multiple objects. Set false to preserve existing plate layout. |
| bambu_model | string | yes | REQUIRED: Bambu Lab printer model. Ask the user if not known. Using the wrong model can damage the printer. |
| bed_type | string | – | Bed plate type for slicing (default: textured_plate). SuperTack is accepted only for pre-sliced print jobs until the BambuStudio CLI identifier is verified. |
| clone_objects | string | – | Duplicate specific objects on the plate. Comma-separated clone counts per object index, e.g. '1,3,1,10' clones object 0 once, object 1 three times, etc. |
| enable_timelapse | boolean | – | Insert timelapse parking moves into gcode. The toolhead parks at a fixed position each layer for camera capture. Adds ~10% print time. |
| ensure_on_bed | boolean | – | Detect models floating above the bed and lower them onto the build surface. Safety net for imported models with incorrect Z origins. |
| filament_colours | string | – | Optional slot colours, one #RRGGBB per filament slot in order, separated by ';' (e.g. '#161616;#FFFFFF'). Defaults to the input 3MF's project colours, else the BambuStudio default. |
| filament_profile | string | – | Compatibility alias for load_filaments. Semicolon-separated Orca/Bambu filament profile JSON paths. |
| load_filament_ids | string | – | Map filaments to objects/parts. Comma-separated IDs matching load_filaments order, e.g. '1,2,3,1' assigns filament 1 to objects 0 and 3. |
| load_filaments | string | – | Override filament profiles. Semicolon-separated paths to filament JSON configs, e.g. 'pla_basic.json;petg_cf.json'. |
| min_save | boolean | – | Write a smaller output 3MF by omitting non-essential metadata. Reduces file size for faster FTP upload to the printer. |
| nozzle_diameter | string | – | Nozzle diameter in mm (default: 0.4) |
| nozzle_type | string | – | Bambu-compatible slicing: the hotend nozzle material installed on the printer (default: BAMBU_NOZZLE_TYPE, else the model preset's stock nozzle, usually stainless_steel). Printing compares it with th… |
| orient | boolean | – | Auto-orient the model for optimal printability (minimize supports, maximize bed adhesion). Recommended for raw STL imports that lack a pre-set orientation. |
| repetitions | number | – | Print N identical copies of the model. Each copy gets its own plate placement. Example: 3 prints three copies. |
| rotate | number | – | Rotate the model around the Z-axis (vertical) by this many degrees before slicing. Positive = counterclockwise when viewed from above. |
| rotate_x | number | – | Rotate the model around the X-axis by this many degrees before slicing. Useful for reorienting prints for better layer adhesion. |
| rotate_y | number | – | Rotate the model around the Y-axis by this many degrees before slicing. Useful for reorienting prints for better layer adhesion. |
| scale | number | – | Uniform scale factor applied to all axes. 1.0 = original size, 2.0 = double, 0.5 = half. Applied before slicing. |
| skip_modified_gcodes | boolean | – | Strip custom start/end gcodes embedded in the 3MF. Recommended for downloaded 3MFs since custom gcodes from other users' profiles may be unsafe for your printer. |
| skip_objects | string | – | Skip specific objects during slicing by index. Comma-separated, e.g. '3,5,10'. Useful for multi-object 3MFs where you only want to print some parts. |
| slice_plate | number | – | Which plate index to slice. 0 = all plates (default). Use 1, 2, etc. to slice only a specific plate in multi-plate 3MF projects. |
| slicer_path | string | – | Path to the slicer executable (default: value from env). Per-call overrides require MCP_ALLOW_EXECUTABLE_ARG=1. |
| slicer_profile | string | – | Path to an optional process profile/config file. The exact bambu_model/nozzle machine preset is still required. |
| slicer_type | string | – | Type of slicer to use. Bambu-compatible choices (bambustudio, orcaslicer, orcaslicer-bambulab) export sliced 3MF; aliases such as fulu-orca and orca-studio are accepted. |
| stl_path | string | yes | Path to the STL or 3MF file to slice |
| template_3mf_path | string | – | Optional template 3MF whose embedded Bambu slicer settings should be reused when slicing a new STL or 3MF. |
| template_dir | string | – | Optional template directory override when resolving template_name. |
| template_name | string | – | Optional named template from the local registry. Resolves to template_3mf_path automatically. |
| uptodate | boolean | – | Refresh 3MF preset configs to match the latest BambuStudio version. Use when slicing downloaded or older 3MF files to prevent stale-config failures. |
| use_printer_filaments | boolean | – | When true, and no explicit slicer profile or load_filaments override is provided, use the printer's current or first loaded AMS filament as the slicer filament profile. Template 3MF process settings… |
No output schema declared.
No examples provided.
slice_with_template ~706
Slice an STL or 3MF using a named template from the local registry. This is a higher-level wrapper around slice_stl for template-based workflows.
| Name | Type | Req | Description |
|---|---|---|---|
| arrange | boolean | – | Auto-arrange objects on the build plate. |
| bambu_model | string | yes | REQUIRED: Bambu Lab printer model. Ask the user if not known. Using the wrong model can damage the printer. |
| bambu_serial | string | – | Serial number (default: value from env) |
| bambu_token | string | – | Access token (default: value from env) |
| bed_type | string | – | Bed plate type for slicing (default: textured_plate). SuperTack is accepted only for pre-sliced print jobs until the BambuStudio CLI identifier is verified. |
| ensure_on_bed | boolean | – | Lift floating models onto the bed. |
| filament_colours | string | – | Optional slot colours, one #RRGGBB per filament slot in order, separated by ';' (e.g. '#161616;#FFFFFF'). Defaults to the input 3MF's project colours, else the BambuStudio default. |
| host | string | – | Hostname or IP of the printer (default: value from env) |
| load_filament_ids | string | – | Optional filament-to-object mapping string. |
| load_filaments | string | – | Override filament profiles. Semicolon-separated paths to filament JSON configs. |
| min_save | boolean | – | Produce smaller output 3MF. |
| nozzle_diameter | string | – | Nozzle diameter in mm (default: 0.4) |
| nozzle_type | string | – | Bambu-compatible slicing: the hotend nozzle material installed on the printer (default: BAMBU_NOZZLE_TYPE, else the model preset's stock nozzle, usually stainless_steel). Printing compares it with th… |
| orient | boolean | – | Auto-orient model for optimal printability. |
| repetitions | number | – | Number of copies to print. |
| rotate | number | – | Z-axis rotation in degrees. |
| rotate_x | number | – | X-axis rotation in degrees. |
| rotate_y | number | – | Y-axis rotation in degrees. |
| scale | number | – | Uniform scale factor. |
| skip_modified_gcodes | boolean | – | Ignore stale custom gcodes in the 3MF. |
| slice_plate | number | – | Which plate index to slice. 0 = all plates. |
| slicer_path | string | – | Path to the slicer executable (default: value from env). Per-call overrides require MCP_ALLOW_EXECUTABLE_ARG=1. |
| slicer_profile | string | – | Explicit slicer profile/config file. Overrides the named template only when provided in the tool call. |
| slicer_type | string | – | Type of slicer to use. Bambu-compatible choices (bambustudio, orcaslicer, orcaslicer-bambulab) export sliced 3MF; aliases such as fulu-orca and orca-studio are accepted. |
| stl_path | string | yes | Path to the STL or 3MF file to slice |
| template_dir | string | – | Optional template directory override when resolving template_name. |
| template_name | string | yes | Named template from the local registry. |
| use_printer_filaments | boolean | – | When true, and no explicit slicer profile or load_filaments override is provided, use the printer's current or first loaded AMS filament as the slicer filament profile. |
No output schema declared.
No examples provided.
start_print ~134
Start printing a G-code file already on the Bambu Lab printer. Alias of start_print_job for upstream MCP compatibility.
| Name | Type | Req | Description |
|---|---|---|---|
| bambu_model | string | yes | REQUIRED: Bambu Lab printer model. Ask the user if not known. Starting G-code for the wrong model can damage the printer. |
| bambu_serial | string | – | Serial number (default: value from env) |
| bambu_token | string | – | Access token (default: value from env) |
| filename | string | yes | Name of the file to print |
| host | string | – | Hostname or IP of the printer (default: value from env) |
No output schema declared.
No examples provided.
start_print_job ~125
Start printing a G-code file already on the Bambu Lab printer
| Name | Type | Req | Description |
|---|---|---|---|
| bambu_model | string | yes | REQUIRED: Bambu Lab printer model. Ask the user if not known. Starting G-code for the wrong model can damage the printer. |
| bambu_serial | string | – | Serial number (default: value from env) |
| bambu_token | string | – | Access token (default: value from env) |
| filename | string | yes | Name of the file to print |
| host | string | – | Hostname or IP of the printer (default: value from env) |
No output schema declared.
No examples provided.
upload_file ~264
Upload a local file to the Bambu Lab printer
| Name | Type | Req | Description |
|---|---|---|---|
| bambu_model | string | – | Required for every printable .gcode or .3mf upload, including upload-only operations. |
| bambu_serial | string | – | Serial number (default: value from env) |
| bambu_token | string | – | Access token (default: value from env) |
| bed_type | string | – | Bed plate type for the native X2D uploader (default: textured_plate). |
| connection_mode | string | – | Upload transport; bambu_native uses the installed Bambu networking plug-in for X2D and never starts printing. |
| file_path | string | yes | Local path to the file to upload |
| filename | string | yes | Name for the file on the printer |
| host | string | – | Hostname or IP of the printer (default: value from env) |
| plate_index | integer | – | Zero-based plate index passed to the native X2D uploader (default: 0). |
| preset_name | string | – | Optional printer preset name passed to the native X2D uploader. |
| boolean | – | Start printing after upload (default: false) | |
| project_name | string | – | Optional project name passed to the native X2D uploader; defaults to filename. |
No output schema declared.
No examples provided.
upload_gcode ~196
Inspect a G-code file and upload a uniquely named copy without overwriting existing printer files.
| Name | Type | Req | Description |
|---|---|---|---|
| bambu_model | string | – | Required printer model for inspecting the uploaded G-code, even when not starting it. |
| bambu_serial | string | – | Serial number (default: value from env) |
| bambu_token | string | – | Access token (default: value from env) |
| filename | string | yes | Name for the file on the printer |
| gcode | string | – | G-code content to upload, or a readable local .gcode path. Required unless gcode_path is provided. For large files, prefer gcode_path. |
| gcode_path | string | – | Local path to a .gcode file to upload. Required unless gcode is provided. This avoids sending large G-code bodies through the MCP request. |
| host | string | – | Hostname or IP of the printer (default: value from env) |
No output schema declared.
No examples provided.
x2d_native_control ~196
Read calibration results or update X2D AMS metadata/calibration selection through the installed plug-in. Raw motion, heating, task control, and safety-setting changes are rejected.
| Name | Type | Req | Description |
|---|---|---|---|
| bambu_serial | string | – | Serial number (default: value from env) |
| bambu_token | string | – | Access token (default: value from env) |
| flag | number | – | Bambu networking plug-in command flag (0 or 1; default 0). |
| host | string | – | Hostname or IP of the printer (default: value from env) |
| message_json | string | yes | JSON print envelope for ams_filament_setting, extrusion_cali_sel, extrusion_cali_get, extrusion_cali_get_result, or flowrate_get_result. A sequence_id is required; extra fields are rejected. |
| qos | number | – | MQTT QoS used by Bambu Studio (0 or 1; default 0). |
No output schema declared.
No examples provided.
What is the Bambu Printer MCP server?
Bambu Printer MCP is listed in the public MCP registry as io.github.DMontgomery40/bambu-printer-mcp. Control Bambu Lab printers, slice models, manage AMS filament, and connect Blender over your LAN. This page covers its MCPB bundle (https://github.com/DMontgomery40/bambu-printer-mcp/releases/download/v1.1.20/bambu-printer-mcp.mcpb).
Is the Bambu Printer MCP server safe to use?
Bambu Printer MCP scores 44 out of 100 on VerifyMCP. 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 Printer MCP server expose?
Bambu Printer MCP exposes 45 tools: get_printer_status, get_printer_filaments, resolve_3mf_ams_slots, list_3mf_plate_objects, extend_stl_base, and 40 more. Their descriptions and schemas cost roughly 9,939 tokens of context every time the server is loaded.
What licence is the Bambu Printer MCP server under?
Bambu Printer MCP declares the GPL-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.