Features
- Get detailed printer status: temperatures (nozzle, bed, chamber), print progress, current layer, time remaining, and live AMS slot data
- Query live AMS inventory with resolved Bambu/Orca filament profile paths via
get_printer_filaments. Includes per-tray display names, match confidence (high/medium/low/none), resolution tier (exact-model-nozzle/model/generic/unresolved), and a summary with recommended auto-slice filament. Retries automatically when AMS data hasn't arrived yet (common on first MQTT push from idle printers). - List, upload, and delete files on the printer's SD card via FTPS
- Capture a JPEG snapshot from the chamber camera. Supports A1, A1 mini, P1S, P1P (TCP-on-6000), and X1, X1C, X1E, P2S, H2, H2S, H2D, H2C, H2D Pro, X2D (RTSP via ffmpeg). Requires ffmpeg in PATH for the RTSP path.
- Upload and print pre-sliced
.3mfprojects with checked plate selection and calibration flags. Legacy.gcode.3mfroutes require a single external-spool-only plate; see the slicing guide. - Slice through BambuStudio CLI with automatic BBL inheritance/include resolution, per-slot filament colours, and fallback prime-tower placement for multi-nozzle printers. Missing dependencies stop the slice; custom settings and saved project tower positions are preserved. Multi-colour slicing is verified by the contributor on BambuStudio 02.08.02.60 for Windows; older CLI versions have separate limitations. See slicing guide.
- Recognize X2D status and slice with its own installed BambuStudio preset (
BAMBU_MODEL=x2d). On macOS,print_3mfselects the native eMMC route after resolving the model, including an elicited model. Install the optional helper as described below; Linux/Windows native print requests fail before slicing or contacting the printer. Legacy FTPS and remote G-code starts remain unsupported for X2D. - Parse AMS mapping from the 3MF's embedded slicer metadata (
Metadata/plate_<n>.json+ gcode filament header) and send it correctly formatted per the OpenBambuAPI spec, with correct H2S/H2D/H2Cams_mapping2parallel array format - Auto-match AMS slots by RFID (
auto_match_amsflag onprint_3mf). Resolves requiredtray_info_idxfrom the sliced 3MF against live AMS inventory. Handles same-SKU different-color filaments by matching on(tray_info_idx, tray_color)and tracking already-claimed slots. Dry-run withresolve_3mf_ams_slotsbefore printing. - Cancel, pause, and resume in-progress print jobs via MQTT
- Skip specific objects during a running multi-object print via
skip_objects(uselist_3mf_plate_objectsto find object IDs first) - Set print speed mode (
silent/standard/sport/ludicrous), clear HMS/print errors, trigger AMS RFID re-read, and control H2/P2 airduct mode (cooling/heating) via MQTT - Start/stop AMS filament drying (
set_ams_drying) on heated AMS units (AMS Pro / AMS-HT). Sendsprint.ams_controlMQTT command. - Set nozzle and bed temperature via G-code dispatch over MQTT
- Confirm print starts and positive manual heating through a human preflight prompt. Finished-bed clearance and hardware-error clearing require explicit human acknowledgment; see hardware safety and headless configuration.
- Set fan speed (part, auxiliary, chamber) and chamber light mode (on/off/flashing) via MQTT
- Read HMS (Health Management System) diagnostics as an MCP resource at
printer://{host}/hms— read-only error summary from the printer, with automatic settle retry - Start G-code files already stored on the printer
- Collar charm print wrapper (
print_collar_charm) — specialized two-color workflow with fixed tray policy for inner (black, AMS 1 slot 1) and outer (white, AMS 2 slot 1) charm parts - STL manipulation: scale, rotate, extend base, merge vertices, center at origin, lay flat, and inspect model info
- Slice STL or 3MF files using an external CLI. BambuStudio, FULU, and Orca require the exact machine preset and resolve BBL dependencies before slicing; see FULU/Orca CLI setup and validation limits.
- Inspect slicer settings from a saved 3MF template or extracted profile via
get_slice_settings - Enumerate saved slicing templates from the local registry via
list_templates - Save templates into the local registry via
save_template - Slice directly from a named template via
slice_with_template - For simple single-material slices, auto-select the printer's current or first loaded AMS filament when no explicit slicer profile or
load_filamentsoverride is provided - Template-driven slicing can reuse a saved 3MF's process settings while still pulling the live printer filament choice over MQTT
- Optional Blender MCP bridge for advanced mesh operations
- Dual transport: stdio (default, for Claude Desktop / Claude Code) and Streamable HTTP