Bambu Lab MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BAMBU_LAB_COOKIES | No | Session cookies for cloud API (Required for cloud-based tools) | |
| BAMBU_LAB_BASE_URL | No | Cloud API base URL | |
| BAMBU_LAB_DEVICE_ID | Yes | Printer serial number (Required for local MQTT control) | |
| BAMBU_LAB_MQTT_HOST | Yes | Printer IP address (Required for local MQTT control) | |
| BAMBU_LAB_MQTT_PORT | No | MQTT port | 8883 |
| BAMBU_APP_CERTIFICATE | No | Override the built-in X.509 certificate | |
| BAMBU_APP_PRIVATE_KEY | No | Override the built-in X.509 private key | |
| BAMBU_LAB_MQTT_PASSWORD | Yes | LAN access code (Required for local MQTT control) | |
| BAMBU_LAB_MQTT_USERNAME | No | MQTT username | bblp |
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_user_profileB | Get Bambu Lab cloud account profile |
| list_printersA | List all printers registered to the cloud account |
| get_printer_statusB | Get printer status via cloud API (requires cloud cookies) |
| sign_messageA | Sign a message with X.509 certificate for authenticated printer communication. Uses the extracted Bambu Connect certificate to bypass firmware auth restrictions. |
| mqtt_connectA | Connect to a Bambu Lab printer via local MQTT over TLS. Required before any printer control commands. |
| mqtt_disconnectB | Disconnect from the MQTT printer connection |
| printer_stopB | Stop the current print job immediately |
| printer_pauseB | Pause the current print job |
| printer_resumeA | Resume a paused print job |
| printer_set_speedB | Set print speed. Use a named profile (silent/standard/sport/ludicrous) or a percentage (1-166). |
| printer_send_gcodeA | Send a single G-code command to the printer (e.g., "G28" for home). Dangerous commands are blocked for safety. |
| printer_print_fileA | Start printing a file already on the printer SD card (uploaded via ftp_upload_file) |
| printer_get_statusA | Request a full status push from the printer and return it. Includes temperatures, print progress, AMS state, fan speeds, and more. Note: pushall should not be called more than once every 5 minutes on P1P. |
| printer_get_cached_statusA | Return the last cached printer status without requesting a new push. Faster and lighter than printer_get_status — use this for frequent polling. |
| printer_get_versionB | Get firmware and module version information for the connected printer |
| skip_objectsA | Skip specific objects during a multi-object print. Useful for excluding failed parts without stopping the entire print. |
| ams_change_filamentC | Change to a different AMS filament tray (0-3) |
| ams_unload_filamentB | Unload the current filament from the extruder |
| camera_recordC | Enable or disable camera recording on the printer |
| camera_timelapseC | Enable or disable timelapse recording for the current print |
| led_controlC | Control the printer chamber or logo LED lights |
| set_nozzleB | Set the nozzle diameter (for printing profile selection) |
| set_temperatureB | Set nozzle or bed temperature via G-code. Validates against safe limits. |
| ftp_upload_fileA | Upload a .gcode, .3mf, or .stl file to the printer SD card via FTPS (port 990). Use printer_print_file to start the print after upload. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 24 tools
Each tool has a clearly distinct purpose with no significant overlap. For example, printer_pause, printer_resume, and printer_stop handle different print states, while ftp_upload_file and printer_print_file represent separate upload and execution steps. The descriptions reinforce unique functions, preventing agent misselection.
Tool names follow a consistent snake_case pattern with clear verb_noun structures (e.g., ams_change_filament, printer_get_status, camera_record). There are no deviations in style or convention, making the set predictable and easy to parse for agents.
With 24 tools, the count is slightly high but reasonable for the comprehensive scope of 3D printer management, covering AMS, camera, FTP, MQTT, printing, and configuration. Each tool serves a specific function, though some could potentially be consolidated (e.g., multiple status tools).
The toolset provides complete coverage for Bambu Lab printer operations, including setup (mqtt_connect), file management (ftp_upload_file), print control (printer_print_file, pause/resume/stop), monitoring (status tools), and advanced features (skip_objects, led_control). No obvious gaps exist for core workflows in this domain.