Bambu-Specific Tools
These tools work with PRINTER_TYPE=bambu (or type: "bambu"). Set up LAN Only Mode, the serial number, the access code, and the model as described in Bambu Lab setup.
print_3mf
Upload a sliced .3mf project to a Bambu printer over FTPS and start it with an MQTT project_file command that carries the plate's G-code path, its MD5, the AMS mapping, and the calibration flags. bambu_model is required (or BAMBU_MODEL); without it the server asks through MCP elicitation when the client supports it, or returns an error. The wrong model can crash the bed into the nozzle.
Before anything is uploaded, the server inspects a private copy of the selected plate (model, nozzle, bed type, materials, and every heater target). It checks them against per-model hardware limits, material ceilings, and a fresh MQTT report of the printer's model, serial, nozzle, state, errors, and loaded filament. A human then confirms, and the report is checked again before dispatch.
{
"three_mf_path": "/path/to/bracket.gcode.3mf",
"bambu_model": "p1s",
"bed_type": "textured_plate",
"use_ams": true,
"ams_mapping": { "Generic PLA": 0 },
"bed_leveling": true,
"flow_calibration": true,
"vibration_calibration": true,
"layer_inspect": true,
"timelapse": false
}- If the project has no plate G-code, the server tries to auto-slice it with FULU OrcaSlicer-bambulab or Bambu Studio. If slicing fails, or the selected plate still has no G-code, it stops with an error and never uploads the original project.
ams_mappingis an object whose values are AMS slot numbers. When it is omitted, the mapping embedded in the 3MF is used; with no mapping at all, the print runs without AMS.use_ams: falseturns AMS off.- After sending the command, the server watches fresh reports for up to 15 seconds (
BAMBU_DISPATCH_CHECK_MS) and returnsdispatch: "started"or"unconfirmed". If the firmware refuses the command (HMS 0500-0500-0001-0007 on firmware 01.08.05 and later without Developer Mode), the call fails and says so; the checked file stays on the printer's storage. nozzle_type(stainless_steel,hardened_steel,tungsten_carbide,brass) sets the installed nozzle when the project must be auto-sliced. The job's nozzle type must match the printer's report.bed_typeis one oftextured_plate,cool_plate,engineering_plate, orhot_plate(defaultBED_TYPE, elsetextured_plate). It must match the plate's bed metadata, so a file sliced for another plate, or without bed metadata, is refused untilbed_typematches.nozzle_diameteraccepts 0.2, 0.4, 0.6, or 0.8 (defaultNOZZLE_DIAMETERor 0.4).- Calibration flags default to on (timelapse to off) when omitted.
layer_height,nozzle_temperature,bed_temperature, andsupport_enabledare accepted but not applied: those settings are baked into the sliced file. Change them in the slicer.- A success response means the command was sent, not that the print started cleanly. Check the printer's status afterward.
check_fulu_orca_setup
Inspect a FULU OrcaSlicer-bambulab install: the executable, the platform runtime payload, the install and verify commands, and optionally a BambuNetwork bridge handshake. Paths default to the server environment; see checking the setup.
{
"platform": "darwin",
"run_bridge_probe": true
}bridge_command, and slicer_path, plugin_dir, or runtime_dir with run_bridge_probe: true, require MCP_ALLOW_EXECUTABLE_ARG=1.
fulu_bambu_network_rpc
Call one FULU BambuNetwork bridge method for diagnostics. Read-only methods such as bridge.handshake, bridge.runtime_info, and net.get_user_print_info are allowed by default. Agent and session setup methods require allow_mutating_method: true. Raw print methods (such as net.start_print), printer messages (net.send_message), file transfers, and unknown methods are refused, because they would bypass the print safety gate; print with print_3mf. bambu_model is informational only. See bridge RPC.
{
"method": "bridge.handshake"
}The bridge command comes from FULU_BAMBU_BRIDGE_COMMAND; a per-call bridge_command requires MCP_ALLOW_EXECUTABLE_ARG=1.