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 | textured_plate |
| TEMP_DIR | No | Directory for intermediate files. Created automatically if absent. | ./temp |
| BAMBU_MODEL | Yes | Your printer model: p1s, p1p, x1c, x1e, a1, a1mini, h2d. Required for safe operation to determine correct G-code generation. | |
| BAMBU_TOKEN | Yes | LAN access token from printer touchscreen (Access Code) | |
| SLICER_PATH | No | Full path to the slicer executable (defaults to macOS path for BambuStudio if not set) | |
| SLICER_TYPE | No | Slicer to use for slicing operations (bambustudio, prusaslicer, orcaslicer, cura, or slic3r) | bambustudio |
| BAMBU_SERIAL | Yes | Printer serial number (e.g., 01P00A123456789) | |
| PRINTER_HOST | Yes | IP address of your Bambu printer on the local network | localhost |
| MCP_HTTP_HOST | No | HTTP bind address (only used when MCP_TRANSPORT=streamable-http) | 127.0.0.1 |
| MCP_HTTP_PATH | No | HTTP endpoint path (only used when MCP_TRANSPORT=streamable-http) | /mcp |
| MCP_HTTP_PORT | No | HTTP port (only used when MCP_TRANSPORT=streamable-http) | 3000 |
| MCP_TRANSPORT | No | Transport mode: stdio or streamable-http | stdio |
| SLICER_PROFILE | No | Optional: path to a slicer profile/config file | |
| NOZZLE_DIAMETER | No | Nozzle diameter in mm (used to select the correct machine preset) | 0.4 |
| MCP_HTTP_STATEFUL | No | Enable stateful HTTP sessions (only used when MCP_TRANSPORT=streamable-http) | true |
| MCP_HTTP_JSON_RESPONSE | No | Return structured JSON alongside text responses (only used when MCP_TRANSPORT=streamable-http) | true |
| MCP_HTTP_ALLOWED_ORIGINS | No | Comma-separated list of allowed CORS origins (only used when MCP_TRANSPORT=streamable-http) | |
| BLENDER_MCP_BRIDGE_COMMAND | No | Shell command to invoke your Blender MCP bridge executable |
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_statusB | 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_baseB | Extend the base of an STL file by a specified amount |
| scale_stlC | Scale an STL file by specified factors |
| rotate_stlB | Rotate an STL file by specified angles (degrees) |
| get_stl_infoA | Get detailed information about an STL file (bounding box, face count, dimensions) |
| list_templatesB | List saved slicing templates from the local template registry directory. |
| save_templateB | 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_templateB | 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 |
| bambu_network_bridge_statusC | Inspect or probe the FULU OrcaSlicer-bambulab BambuNetwork bridge runtime used for cloud and restored BambuNetwork printing. |
| bambu_network_callB | Call a raw FULU OrcaSlicer-bambulab BambuNetwork bridge method, optionally with an initialized network agent injected into the payload. |
| print_3mf_bambu_networkA | Print a 3MF through FULU OrcaSlicer-bambulab's restored BambuNetwork path instead of the MCP LAN MQTT/FTPS path. |
| camera_snapshotA | Capture a single JPEG frame from the printer's chamber camera. A1/P1 use TCP-on-6000; X1/P2S/H2 use RTSP via ffmpeg. 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_gcodeB | Upload a G-code file to the Bambu Lab printer |
| upload_fileC | Upload a local file to the Bambu Lab printer |
| start_printA | Start printing a G-code file already on the Bambu Lab printer. Alias of start_print_job for upstream MCP compatibility. |
| 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_printA | Resume a paused print job on the Bambu Lab printer |
| clear_hms_errorsA | Clear HMS or print error state on the Bambu Lab printer using the clean_print_error MQTT command. |
| set_print_speedA | Set the active print speed mode: silent, standard, sport, or ludicrous. |
| set_airduct_modeB | 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_temperatureC | Set the temperature of a printer component (bed, nozzle) |
| set_fan_speedB | Set a Bambu printer fan speed percentage using the printer's MQTT fan command |
| set_lightB | 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_3mfB | 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_modelC | 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/DMontgomery40/bambu-printer-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server