bambu-printer-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BED_TYPE | No | Bed plate type: textured_plate, cool_plate, engineering_plate, hot_plate, supertack_plate. | textured_plate |
| TEMP_DIR | No | Directory for intermediate files. | ./temp |
| BAMBU_MODEL | Yes | Printer model: p1s, p1p, x1c, x1e, a1, a1mini, h2d, h2s. Alias: BAMBU_PRINTER_MODEL. | |
| BAMBU_TOKEN | Yes | LAN access token from printer touchscreen. Alias: BAMBU_PRINTER_ACCESS_TOKEN. | |
| SLICER_PATH | No | Full path to the slicer executable. Alias: BAMBU_STUDIO_PATH. | |
| SLICER_TYPE | No | Slicer type: bambustudio, prusaslicer, orcaslicer, cura, slic3r. | bambustudio |
| BAMBU_SERIAL | Yes | Printer serial number. Alias: BAMBU_PRINTER_SERIAL. | |
| PRINTER_HOST | Yes | IP address of the Bambu printer on the local network. Alias: BAMBU_PRINTER_HOST. | |
| MCP_HTTP_HOST | No | HTTP bind address (HTTP transport only). | 127.0.0.1 |
| MCP_HTTP_PATH | No | HTTP endpoint path (HTTP transport only). | /mcp |
| MCP_HTTP_PORT | No | HTTP port (HTTP transport only). | 3000 |
| MCP_TRANSPORT | No | Transport mode: stdio or streamable-http. | stdio |
| SLICER_PROFILE | No | Path to a slicer profile or config file. | |
| NOZZLE_DIAMETER | No | Nozzle diameter in mm. | 0.4 |
| BAMBU_CLI_FLATTEN | No | When true, flattens BBL profile inheritance before invoking BambuStudio CLI. | false |
| BAMBU_STUDIO_PATH | No | Alias for SLICER_PATH. | |
| MCP_HTTP_STATEFUL | No | Enable stateful HTTP sessions. | true |
| BAMBU_PRINTER_HOST | No | Alias for PRINTER_HOST. | |
| BAMBU_PRINTER_MODEL | No | Alias for BAMBU_MODEL. | |
| BAMBU_PROFILES_ROOT | No | Override path to the BambuStudio Resources/profiles directory. | |
| BAMBU_PRINTER_SERIAL | No | Alias for BAMBU_SERIAL. | |
| MCP_HTTP_JSON_RESPONSE | No | Return structured JSON alongside text responses. | true |
| MCP_HTTP_ALLOWED_ORIGINS | No | Comma-separated list of allowed CORS origins. | |
| BAMBU_PRINTER_ACCESS_TOKEN | No | Alias for BAMBU_TOKEN. | |
| BLENDER_MCP_BRIDGE_COMMAND | No | Command to invoke Blender MCP bridge. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_printer_statusC | Get the current status of the Bambu Lab printer |
| get_printer_filamentsB | 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. |
| resolve_3mf_ams_slotsA | Inspect a sliced 3MF and match its tray_info_idx filament requirements against the live AMS inventory. Does not upload or start a print. |
| list_3mf_plate_objectsA | List object IDs from a sliced 3MF plate. Use these IDs with skip_objects during a running print. |
| extend_stl_baseA | Extend the base of an STL file by a specified amount |
| scale_stlB | Scale an STL file by specified factors |
| rotate_stlC | Rotate an STL file by specified angles (degrees) |
| get_stl_infoA | Get detailed information about an STL file (bounding box, face count, dimensions) |
| list_templatesA | List saved slicing templates from the local template registry directory. |
| save_templateA | Copy a 3MF, JSON, or config file into the local template registry and register it under a template name. |
| get_slice_settingsA | Inspect slicer settings from a saved 3MF template or a JSON/config slicer profile without slicing anything. |
| slice_with_templateA | 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. |
| slice_stlB | 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. |
| list_printer_filesC | List files stored on the Bambu Lab printer |
| camera_snapshotA | Capture a single JPEG frame from the printer's chamber camera. TCP-on-6000 protocol (per OpenBambuAPI/video.md) — verified upstream for A1, A1 mini, P1S, P1P. X1/P2S use RTSP and are not yet supported. H2 series is undocumented and rejected with a clear error. Returns JPEG as base64; pass save_path to also write the bytes to disk. |
| delete_printer_fileA | 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. |
| upload_gcodeC | Upload a G-code file to the Bambu Lab printer |
| upload_fileC | Upload a local file to the Bambu Lab printer |
| start_print_jobB | Start printing a G-code file already on the Bambu Lab printer |
| cancel_printB | Cancel the current print job on the Bambu Lab printer |
| pause_printA | Pause the current print job on the Bambu Lab printer (resumable via resume_print) |
| resume_printB | Resume a paused print job on the Bambu Lab printer |
| clear_hms_errorsB | Clear HMS or print error state on the Bambu Lab printer using the clean_print_error MQTT command. |
| set_print_speedB | Set the active print speed mode: silent, standard, sport, or ludicrous. |
| set_airduct_modeA | Set H2/P2 airduct mode to cooling or heating. |
| reread_ams_rfidA | Trigger a Bambu AMS RFID re-read for one AMS slot. This can move AMS filament; use only when the printer is idle and unloaded. |
| set_temperatureB | Set the temperature of a printer component (bed, nozzle) |
| set_fan_speedA | Set a Bambu printer fan speed percentage using the printer's MQTT fan command |
| set_lightA | Set a Bambu printer light node mode using the printer's MQTT LED command |
| skip_objectsA | Skip specific object IDs during a running multi-object print using the printer's MQTT skip_objects command |
| set_ams_dryingA | Start or stop the AMS filament drying cycle. Available on AMS units with heating capability (AMS Pro / AMS-HT). Sends an ams_control MQTT command to the printer. |
| print_3mfA | 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. |
| print_collar_charmA | 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. |
| merge_verticesB | Merge vertices in an STL file closer than the specified tolerance |
| center_modelB | Translate the model so its geometric center is at the origin (0,0,0) |
| lay_flatB | Rotate the model so its largest flat face lies on the XY plane (Z=0) |
| blender_mcp_edit_modelB | Send STL-edit instructions to a Blender MCP bridge command for advanced model edits |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Bambu Printer Status | Current status of the Bambu Lab printer |
| Bambu Printer Files | List of files on the Bambu Lab printer |
| Bambu Printer HMS Diagnostics | HMS and error-related fields from the latest printer status |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rowbotik/bambu-printer-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server