Skip to main content
Glama
schwarztim

Bambu Lab MCP Server

by schwarztim

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
BAMBU_LAB_COOKIESNoSession cookies for cloud API (Required for cloud-based tools)
BAMBU_LAB_BASE_URLNoCloud API base URL
BAMBU_LAB_DEVICE_IDYesPrinter serial number (Required for local MQTT control)
BAMBU_LAB_MQTT_HOSTYesPrinter IP address (Required for local MQTT control)
BAMBU_LAB_MQTT_PORTNoMQTT port8883
BAMBU_APP_CERTIFICATENoOverride the built-in X.509 certificate
BAMBU_APP_PRIVATE_KEYNoOverride the built-in X.509 private key
BAMBU_LAB_MQTT_PASSWORDYesLAN access code (Required for local MQTT control)
BAMBU_LAB_MQTT_USERNAMENoMQTT usernamebblp

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/schwarztim/bambu-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server