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 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_user_profile | Get Bambu Lab cloud account profile |
| list_printers | List all printers registered to the cloud account |
| get_printer_status | Get printer status via cloud API (requires cloud cookies) |
| sign_message | Sign a message with X.509 certificate for authenticated printer communication. Uses the extracted Bambu Connect certificate to bypass firmware auth restrictions. |
| mqtt_connect | Connect to a Bambu Lab printer via local MQTT over TLS. Required before any printer control commands. |
| mqtt_disconnect | Disconnect from the MQTT printer connection |
| printer_stop | Stop the current print job immediately |
| printer_pause | Pause the current print job |
| printer_resume | Resume a paused print job |
| printer_set_speed | Set print speed. Use a named profile (silent/standard/sport/ludicrous) or a percentage (1-166). |
| printer_send_gcode | Send a single G-code command to the printer (e.g., "G28" for home). Dangerous commands are blocked for safety. |
| printer_print_file | Start printing a file already on the printer SD card (uploaded via ftp_upload_file) |
| printer_get_status | 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_status | 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_version | Get firmware and module version information for the connected printer |
| skip_objects | Skip specific objects during a multi-object print. Useful for excluding failed parts without stopping the entire print. |
| ams_change_filament | Change to a different AMS filament tray (0-3) |
| ams_unload_filament | Unload the current filament from the extruder |
| camera_record | Enable or disable camera recording on the printer |
| camera_timelapse | Enable or disable timelapse recording for the current print |
| led_control | Control the printer chamber or logo LED lights |
| set_nozzle | Set the nozzle diameter (for printing profile selection) |
| set_temperature | Set nozzle or bed temperature via G-code. Validates against safe limits. |
| ftp_upload_file | 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 | |