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. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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