Skip to main content
Glama
DMontgomery40

MCP 3D Printer Server

print_3mf

Print a 3MF file on a Bambu Lab printer by verifying plate settings against printer's live status and requesting confirmation before upload.

Instructions

Print a 3MF file on a Bambu Lab printer. The exact selected plate is inspected (model, nozzle, bed type, materials, every heater target) and checked against a fresh MQTT report of the printer's identity, nozzle, state, errors and loaded filament, then a human confirmation is requested before upload and start.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
hostNoHostname or IP address of the Bambu printer (default: value from env)
use_amsNoWhether to use AMS for the print. Defaults from parsed 3MF mapping when present.
bed_typeNoBed/plate type installed on the printer (default: textured_plate).
timelapseNoOverride timelapse flag for the Bambu print command.
ams_mappingNoOverride AMS filament mapping (e.g., {"Generic PLA": 0, "Generic PETG": 1}).
bambu_modelYesREQUIRED: Bambu Lab printer model. Ensures correct G-code generation — wrong model can crash the bed into the nozzle.
bambu_tokenNoAccess token for the Bambu Lab printer (default: value from env)
nozzle_typeNoInstalled nozzle material, used when the 3MF must be auto-sliced (default: BAMBU_NOZZLE_TYPE, else the preset's stock nozzle).
slicer_pathNoPath to the slicer executable if auto-slicing is needed. Per-call overrides require MCP_ALLOW_EXECUTABLE_ARG=1.
slicer_typeNoSlicer to use if the 3MF needs auto-slicing. Use orcaslicer-bambulab for FULU OrcaSlicer-bambulab.
bambu_serialNoSerial number for the Bambu Lab printer (default: value from env)
bed_levelingNoOverride bed leveling flag for the Bambu print command.
layer_heightNoOverride layer height (mm).
layer_inspectNoOverride layer inspection flag for the Bambu print command.
three_mf_pathYesPath to the 3MF file to print.
slicer_profileNoOptional slicer settings/profile path for auto-slicing.
bed_temperatureNoOverride bed temperature (°C).
nozzle_diameterNoNozzle diameter in mm (default: 0.4).
support_enabledNoOverride support generation.
filament_profileNoOptional filament profile path for auto-slicing with OrcaSlicer/Bambu Studio.
flow_calibrationNoOverride flow calibration flag for the Bambu print command.
nozzle_temperatureNoOverride nozzle temperature (°C).
vibration_calibrationNoOverride vibration calibration flag for the Bambu print command.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.2.9

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the plate inspection, a live MQTT cross-check of printer identity/state/filament, and a mandatory human confirmation step before upload and start. It omits auth requirements, error/failure handling, and whether anything is mutated irreversibly, which keeps it from a 5.

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?

Two dense sentences with the purpose front-loaded, and no repeated or filler content. The second sentence is long but every clause (inspection targets, MQTT check, human confirmation) earns its place by conveying behavior.

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

Completeness4/5

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

For a 23-parameter mutation-style tool with no annotations and no output schema, the description supplies the crucial workflow context a caller cannot infer: validation against live printer state and a human confirmation gate. The many tuning/override parameters are fully covered by 100% schema descriptions, so the remaining gap is minor.

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%, so all 23 parameters are already documented in the schema and the baseline is 3. The description adds no per-parameter meaning (e.g., override semantics or env defaults) beyond what the schema states.

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 and resource ('Print a 3MF file on a Bambu Lab printer'), which is clearly distinct from generic siblings like upload_gcode and start_print. It does not explicitly name or contrast with the closest sibling, process_and_print_stl, so it stops short of a 5.

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

Usage Guidelines3/5

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

The description sketches the internal workflow (inspect plate, check MQTT report, confirm, upload, start), which implies when the tool is appropriate. However, it never states when to choose this over process_and_print_stl or start_print, nor any exclusions or prerequisites, leaving selection to inference.

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