Skip to main content
Glama

Prepare a print

prepare_print
Idempotent

Converts raw STL or geometry-only 3MF files into print-ready Bambu projects by choosing orientation, material, supports, and slicing, then returns the resulting .3mf plus time and weight.

Instructions

Turn an STL (or geometry-only 3MF) into a print-ready Bambu project in one call: analysis, best orientation, material presets, build plate, supports and brim when needed, copies arranged, then slice. Returns time, weight, the decisions made, warnings and the result.3mf (under output/). Use it for raw models; for a complete Bambu project use optimize or slice_model instead.

Input Schema

NameRequiredDescriptionDefault
goalNoPrint goal for the settings.balanced
copiesNoNumber of copies of each model, arranged on the plate.
modelsYesAbsolute paths of the STL or 3MF files.
bed_typeNoBuild plate, e.g. "Textured PEI Plate", "Cool Plate", "High Temp Plate". Omit for the usual plate when the filament suits it.
filamentNoExact filament preset chosen by the user; overrides the material's default.
materialNoMaterial name, e.g. "PLA", "PETG".PLA
supportsNo"auto": supports only when overhangs need them.auto
orientationNo"auto": best orientation from analyze_model; "as_is": keep the file's.auto
extra_settingsNoExtra print settings, as Bambu strings: {"brim_type": "no_brim"}.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed10 schema fields changedv1.0.1
    • addedInput schema / properties / bed_type / description
      Added value: +"Build plate, e.g. \"Textured PEI Plate\", \"Cool Plate\", \"High Temp Plate\". Omit for the usual plate when the filament suits it."
    • addedInput schema / properties / copies / description
      Added value: +"Number of copies of each model, arranged on the plate."
    • addedInput schema / properties / copies / minimum
      Added value: +1
    • addedInput schema / properties / extra_settings / description
      Added value: +"Extra print settings, as Bambu strings: {\"brim_type\": \"no_brim\"}."
    • addedInput schema / properties / filament / description
      Added value: +"Exact filament preset chosen by the user; overrides the material's default."
    • addedInput schema / properties / goal / description
      Added value: +"Print goal for the settings."
    • addedInput schema / properties / material / description
      Added value: +"Material name, e.g. \"PLA\", \"PETG\"."
    • addedInput schema / properties / models / description
      Added value: +"Absolute paths of the STL or 3MF files."
    • addedInput schema / properties / orientation / description
      Added value: +"\"auto\": best orientation from analyze_model; \"as_is\": keep the file's."
    • addedInput schema / properties / supports / description
      Added value: +"\"auto\": supports only when overhangs need them."
  2. First observedv1.0.0

TDQS

A4.4/5.0
Behavior4/5

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

Goes well beyond the annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=true) by listing the automatic decisions taken, the artifacts produced (result.3mf under output/), and the returned time, weight, decisions and warnings. It stops short of noting runtime cost of slicing or whether a re-run overwrites prior outputs, which is what keeps it off 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?

Front-loaded with the core transformation, then the pipeline list, then the output and the sibling routing — a sensible order with little waste. Minor blemishes: the run-on enumeration and a missing space in "result.3mf" slightly hurt readability.

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

Completeness5/5

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

With no output schema, the description carries the return-value burden itself and does so (time, weight, decisions, warnings, the result.3mf path). Combined with the alternative routing and default-behavior notes, an agent has everything needed to call it and interpret the result.

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 the schema already documents all nine parameters, including enum meanings for goal, supports and orientation. The description adds a pipeline narrative that maps loosely onto copies/supports/orientation/bed_type, but it adds no new per-parameter meaning — notably it never explains the filament-overrides-material precedence that the schema hints at.

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

Purpose5/5

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

States a concrete verb and resource (turn an STL/geometry-only 3MF into a print-ready Bambu project) and enumerates exactly what the pipeline does: analysis, orientation, material presets, plate, supports/brim, copies, slice. It also explicitly disambiguates from siblings by naming optimize and slice_model for complete Bambu projects, so an agent can route without opening a schema.

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

Usage Guidelines5/5

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

Gives both the when (raw models) and the when-not with named alternatives ("for a complete Bambu project use optimize or slice_model instead"). That is an explicit routing rule rather than an implied one.

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