Skip to main content
Glama

Slice a model

slice_model
Idempotent

Slices STL and 3MF files with the Bambu Studio engine to return print time, filament weight, warnings, and the output .3mf path for print planning.

Instructions

Slice once with the real Bambu Studio engine and return print time, filament weight, time per line type, warnings and the path of the sliced result.3mf (written under output/; originals are never modified). An identical slice comes back from the cache. A Bambu 3MF keeps its own settings (moved to the default printer if made for another); an STL gets machine/process/filaments or the user's defaults. Use compare_slices to try several settings at once, optimize for ready-made goals, prepare_print to go from a raw STL to a project.

Input Schema

NameRequiredDescriptionDefault
plateNoPlate number to slice; 0 = every plate in a single result.3mf.
modelsYesAbsolute paths of the STL or 3MF files to slice together.
orientNoLet Bambu Studio auto-orient the objects.
arrangeNoLet Bambu Studio auto-arrange the objects.
machineNoMachine preset name, e.g. "Bambu Lab P1S 0.4 nozzle". Omit to keep a 3MF project's own settings or use the defaults.
processNoProcess preset name, e.g. "0.20mm Standard @BBL X1C". Needs `machine`.
bed_typeNoBuild plate, e.g. "Textured PEI Plate", "Cool Plate", "High Temp Plate". Omit for the usual plate when the filament suits it.
filamentsNoFilament preset names, one per slot (e.g. "Bambu PLA Matte @BBL P1S 0.4 nozzle"). Alone on a 3MF project, replaces its filament.
process_overridesNoPrint settings to change for this slice: {"layer_height": "0.16"}.
filament_overridesNoFilament settings to change: {"nozzle_temperature": "225"}.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changedv1.0.1
    • addedInput schema / properties / arrange / description
      Added value: +"Let Bambu Studio auto-arrange the objects."
    • 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 / filament_overrides / description
      Added value: +"Filament settings to change: {\"nozzle_temperature\": \"225\"}."
    • addedInput schema / properties / filaments / description
      Added value: +"Filament preset names, one per slot (e.g. \"Bambu PLA Matte @BBL P1S 0.4 nozzle\"). Alone on a 3MF project, replaces its filament."
    • addedInput schema / properties / machine / description
      Added value: +"Machine preset name, e.g. \"Bambu Lab P1S 0.4 nozzle\". Omit to keep a 3MF project's own settings or use the defaults."
    • addedInput schema / properties / models / description
      Added value: +"Absolute paths of the STL or 3MF files to slice together."
    • addedInput schema / properties / orient / description
      Added value: +"Let Bambu Studio auto-orient the objects."
    • addedInput schema / properties / plate / description
      Added value: +"Plate number to slice; 0 = every plate in a single result.3mf."
    • addedInput schema / properties / plate / minimum
      Added value: +0
    • addedInput schema / properties / process / description
      Added value: +"Process preset name, e.g. \"0.20mm Standard @BBL X1C\". Needs `machine`."
    • addedInput schema / properties / process_overrides / description
      Added value: +"Print settings to change for this slice: {\"layer_height\": \"0.16\"}."
  2. First observedv1.0.0

TDQS

A4.6/5.0
Behavior4/5

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

Adds substantial context beyond the annotations: the result.3mf is written under output/, originals are never modified, and an identical slice is served from cache. Those details explain why readOnlyHint=false coexists with destructiveHint=false and idempotentHint=true. It stops short of noting runtime cost or how cache identity is determined.

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 action and its outputs before side effects and sibling routing; three sentences, no filler. Minor cost: dense packing and awkward rendering ('result.3mf' with a missing space) briefly slow parsing.

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?

For a 10-parameter tool with no output schema, it covers everything an agent needs: return values ($-described inline), file side effects, caching, and how preset omission is resolved. Nothing material is left to inference.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description earns credit by explaining preset resolution: a Bambu 3MF keeps its own settings and is moved to the default printer if made for another, while an STL takes machine/process/filaments or the user's defaults. That is meaning the schema only gestures 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 ('slice once with the real Bambu Studio engine') and enumerates what comes back: print time, filament weight, per-line-type time, warnings, and the result .3mf path. That output list makes it immediately distinguishable from siblings like compare_slices or prepare_print.

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?

Explicitly routes the agent to alternatives with the condition that selects each: compare_slices for trying several settings at once, optimize for ready-made goals, prepare_print for raw STL to project. It also explains input-dependent behavior (3MF keeps own settings vs STL needs machine/process/filaments), so the caller knows which path applies.

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