Updated: 2026-04-27
This checklist maps the intended MCP surface to the current patched state of this bambu-printer-mcp clone, with emphasis on modern Bambu local-network workflows and H2-series compatibility.
Status meanings:
implemented: usable nowpartial: some of the behavior exists, but not as a clean dedicated tool yetmissing: not implemented in this clonedeferred: intentionally postponed or tracked separately
| Spec Function | Status | Current Reality | Next Step |
|---|---|---|---|
get_printer_status |
implemented | Exists and returns temperatures, state, progress, current file, and raw AMS/status data. | Add more fields only if the printer payload reports them consistently. |
list_printers |
missing | Current model assumes machine-local config or one MCP entry per printer. | Add a fleet/config abstraction first, then a list_printers tool. |
start_print |
partial | upload_file, start_print_job, and print_3mf cover the underlying behavior, but there is no single unified start_print tool. |
Add a wrapper tool that dispatches to .3mf and .gcode(.3mf) correctly. |
pause_print |
implemented | Sends the Bambu MQTT UpdateStateCommand pause path. |
Live validation still needed during a safe print. |
resume_print |
implemented | Sends the Bambu MQTT UpdateStateCommand resume path. |
Live validation still needed during a safe paused print. |
stop_print |
partial | cancel_print already exists and stops the current job. |
Alias or rename to stop_print if spec naming matters. |
get_camera_snapshot |
missing | No camera/thumbnail fetch path yet. | Implement FTPS thumbnail reads and return a temp image path. |
set_light |
implemented | Sends the Bambu MQTT LED command. Live H2D smoke returned success. | Validate node names across printer models. |
set_fan_speed |
implemented | Sends the Bambu MQTT fan command for part, auxiliary, or chamber fan. Live H2D chamber fan smoke returned success. | Validate fan IDs across printer models. |
printer://{host}/hms |
implemented | Read-only diagnostics resource over the existing status path. Live H2D/H2S status reads returned HMS/error summaries. | Add richer decoding if a stable HMS code table is added. |
| Spec Function | Status | Current Reality | Next Step |
|---|---|---|---|
list_files |
partial | list_printer_files exists. |
Alias if the shorter name is useful. |
delete_file |
missing | No delete tool yet. | Add FTPS delete support. |
upload_file |
implemented | Exists now. | None. |
| Spec Function | Status | Current Reality | Next Step |
|---|---|---|---|
get_ams_status |
implemented | get_printer_filaments returns normalized slot data, tray type, color, remaining percentage, and slicer profile hints. |
None. |
get_ams_mapping |
implemented | resolve_3mf_ams_slots inspects a sliced 3MF and matches required tray_info_idx values against live AMS inventory. |
Live print validation still needed for auto_match_ams. |
set_ams_mapping |
missing | No explicit setter exists. Current flow sets mapping only inside the print payload. | Decide whether this should be persistent state or just a print-job override. |
switch_ams_slot |
missing | No tool exists. | Confirm the correct live-switch MQTT command and safety rules. |
Notes:
- Treat live MQTT tray state as the source of truth.
- For H2-class printers, project-length AMS mapping plus
ams_mapping2is the important compatibility behavior. auto_match_amsis intentionally opt-in and refuses to print when requiredtray_info_idxvalues are missing from live AMS inventory.
| Spec Function | Status | Current Reality | Next Step |
|---|---|---|---|
slice_stl |
implemented | Exists now. Also supports template_3mf_path and use_printer_filaments, including combining template-derived process settings with live filament selection. |
Keep adding regression checks for template-driven and multi-object jobs. |
slice_3mf |
partial | slice_stl already accepts 3MF input, but there is no dedicated slice_3mf tool name. |
Alias or split only if agents benefit from explicit naming. |
get_slice_settings |
implemented | Inspects a 3MF template or JSON/config profile and returns a compact settings summary plus extracted config path. | Add richer output only if agents need it. |
set_slice_settings |
missing | No dedicated mutation tool exists. | Decide whether this means editing a profile JSON, a template 3MF, or runtime overrides. |
list_3mf_plate_objects |
implemented | Lists Bambu object IDs from Metadata/plate_<n>.json so callers can target skip_objects safely. |
Live print validation still needed. |
skip_objects |
implemented | Sends a print.skip_objects MQTT payload using explicit object IDs. |
Validate during a safe multi-object print. |
Supported printers:
H2D: yesH2S: yesX1C: yes
Current real state:
- Printer model validation and preset mapping include
h2d,h2s, andx1c. template_3mf_pathis accepted byslice_stlandprint_3mf.- Template-aware slicing and live printer filament selection can now be combined cleanly.
- A lightweight named template registry exists and can back
list_templates,save_template,get_slice_settings,slice_with_template,slice_stl, andprint_3mf. print_collar_charmadds one specialized example of a higher-level project wrapper built on top of the generic slicing/printing path.- BambuStudio CLI flattening is available behind
BAMBU_CLI_FLATTEN=trueand covered by H2S/H2D/X1C/P1S smoke tests.
| Spec Functionality | Status | Current Reality | Next Step |
|---|---|---|---|
| Configurable fleet | partial | Operationally handled outside the repo through machine-local config or separate MCP entries. | Add a fleet config abstraction only if one server truly needs to enumerate multiple printers itself. |
| Route jobs to correct printer | missing | Current model expects the caller or deployment to choose the correct target printer. | Define routing rules before adding a dispatcher layer. |
| H2D/H2S/X1C support | implemented | All three are supported in the patched local-network workflow. | None. |
| Unified config file | missing | Current setup is environment-driven rather than repo-owned. | Only add this if it improves deployment more than it increases secret-handling risk. |
Recommendation:
- Keep per-printer config machine-local.
- Only add unified fleet routing after the slice/template path is stable.
| Spec Function | Status | Current Reality | Next Step |
|---|---|---|---|
list_templates |
implemented | Lists named templates from the local registry. | Add richer metadata only if agents need it. |
apply_template |
implemented | slice_with_template wraps named-template slicing, while template_name also resolves in lower-level tools. |
Add metadata if agents need richer selection than name/path/type. |
save_template |
implemented | Saves .3mf, .json, and .config files into the registry under a template name. |
Add metadata sidecars only if needed. |
Recommended direction:
- Treat a template as a saved 3MF project plus lightweight metadata.
- Use the 3MF as the source of truth for process/profile defaults.
- Keep AMS role defaults separate from live AMS inventory and per-print overrides.
| Spec Item | Status | Current Reality | Next Step |
|---|---|---|---|
| Access code auth | implemented | Working for current MQTT/FTPS flows. | None. |
| Certificate-based auth | deferred | Separate workstream. The current repo patch does not depend on the Bambu Connect certificate flow. | Revisit only if future firmware requires it for the local path you actually use. |
- Live-validate
print_3mf auto_match_amswith a file whose required filament is actually loaded. - Live-validate
pause_print,resume_print, andskip_objectsduring safe test prints. - Add camera snapshot and file delete as low-risk utility tools.
- Add more regression coverage around real multi-color template jobs.
If the goal is “what should agents use most,” the high-value tool set is:
get_printer_statusget_printer_filamentslist_printer_filesupload_fileslice_stlslice_with_templateprint_3mfresolve_3mf_ams_slotslist_3mf_plate_objectscancel_printpause_printresume_printset_temperatureset_lightset_fan_speed
That covers the real near-term workflow:
- Produce or load geometry.
- Read live filament inventory.
- Slice with template/profile plus live filament-aware defaults.
- Upload and print.