Skip to main content
Glama

upload_file

Send a local file to a Bambu Lab 3D printer, optionally starting a print. Choose printer host and filename for remote file transfer.

Instructions

Upload a local file to the Bambu Lab printer

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
hostNoHostname or IP of the printer (default: value from env)
printNoStart printing after upload (default: false)
bed_typeNoBed plate type for the native X2D uploader (default: textured_plate).
filenameYesName for the file on the printer
file_pathYesLocal path to the file to upload
bambu_modelNoRequired for every printable .gcode or .3mf upload, including upload-only operations.
bambu_tokenNoAccess token (default: value from env)
plate_indexNoZero-based plate index passed to the native X2D uploader (default: 0).
preset_nameNoOptional printer preset name passed to the native X2D uploader.
bambu_serialNoSerial number (default: value from env)
project_nameNoOptional project name passed to the native X2D uploader; defaults to filename.
connection_modeNoUpload transport; bambu_native uses the installed Bambu networking plug-in for X2D and never starts printing.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changedv1.1.14
    • changedInput schema / properties / bambu_model / description
      Previous value: -"Required when print is true. Bambu Lab printer model used as a safety confirmation before starting the uploaded file."New value: +"Required for every printable .gcode or .3mf upload, including upload-only operations."
    • changedInput schema / properties / bambu_model / enum
      Previous value: -[
      -  "p1s",
      -  "p1p",
      -  "p2s",
      -  "x1c",
      -  "x1e",
      -  "a1",
      -  "a1mini",
      -  "h2d",
      -  "h2s"
      -]New value: +[
      +  "p1s",
      +  "p1p",
      +  "p2s",
      +  "x1c",
      +  "x1e",
      +  "a1",
      +  "a1mini",
      +  "h2d",
      +  "h2s",
      +  "h2c",
      +  "x2d"
      +]
    • addedInput schema / properties / bed_type
      Added value: +{
      +  "description": "Bed plate type for the native X2D uploader (default: textured_plate).",
      +  "enum": [
      +    "textured_plate",
      +    "cool_plate",
      +    "engineering_plate",
      +    "hot_plate",
      +    "supertack_plate"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / connection_mode
      Added value: +{
      +  "description": "Upload transport; bambu_native uses the installed Bambu networking plug-in for X2D and never starts printing.",
      +  "enum": [
      +    "lan_mqtt_ftps",
      +    "bambu_native"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / plate_index
      Added value: +{
      +  "description": "Zero-based plate index passed to the native X2D uploader (default: 0).",
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / preset_name
      Added value: +{
      +  "description": "Optional printer preset name passed to the native X2D uploader.",
      +  "type": "string"
      +}
    • addedInput schema / properties / project_name
      Added value: +{
      +  "description": "Optional project name passed to the native X2D uploader; defaults to filename.",
      +  "type": "string"
      +}
  2. First observedv1.1.1

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and discloses almost nothing: it does not mention that a printer token/serial/host are needed for auth, that bambu_model is mandatory for printable uploads, or that connection_mode=bambu_native never starts a print. Only the implied 'write to device' nature of the operation is conveyed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single efficient sentence with the verb and resource front-loaded and zero filler. It is concise but arguably under-specified rather than optimally tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter, dual-transport network operation with auth requirements and no annotations or output schema, the one-line description is far too thin to be complete. It omits transport selection semantics, printing side effects, and prerequisites that an agent needs before invoking it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (all 12 parameters, defaults, and enums documented inline), so the schema already does the heavy lifting. The description adds no parameter meaning beyond 'a local file', which is the baseline expectation here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (upload) and resource (a local file to the Bambu Lab printer), which is unambiguous on its own. However, it never distinguishes itself from close siblings like upload_gcode, print_3mf, or print_3mf_bambu_network, leaving the agent to guess which upload path is correct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no exclusions, and no mention of the alternative siblings (upload_gcode, print_3mf, print_3mf_bambu_network) that also move files to the printer. The agent gets no help choosing between competing upload/print tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.