Skip to main content
Glama

run_quick_print

Destructive

Validate, slice, safety-check, upload, and print a 3D model in one operation, with automatic slicer profile selection and required preflight checks.

Instructions

Full print pipeline: validate + slice + safety-check + upload + print (recommended one-shot tool).

Preferred over ``slice_and_print`` — adds mesh-level pre-print
validation, G-code safety validation, and auto-detected bundled
slicer profiles.  For custom slicer parameter overrides, use
``run_reslice_and_print`` instead.  The full quick-print pipeline:
1. Validate mesh (printability, manifold, walls, bridges, bed-fit)
2. Resolve slicer profile (bundled, by printer_id)
3. Slice the (possibly auto-repaired) mesh to G-code
4. Safety-validate the G-code against printer limits
5. Upload G-code to the printer
6. Run preflight checks (always — cannot be skipped)
7. Start printing

Args:
    model_path: Path to input model (STL, 3MF, STEP, OBJ).
    printer_name: Registered printer name in fleet.
    printer_id: Printer model ID for auto-profile selection
        (e.g. ``"ender3"``, ``"bambu_x1c"``, ``"klipper_generic"``).
    profile_path: Explicit slicer profile. Overrides printer_id auto-selection.
    material: Filament material (e.g. ``"PLA"``).  It sets the slice's
        temperatures, melt rate and cooling, its density weighs the
        print (omitted: the spool the printer reports loaded, then PLA —
        the slice step says which), and AMS auto-routing prefers a
        loaded tray whose type matches.
    use_ams: AMS feeding mode (Bambu): ``"auto"`` (default — detect and
        route to a loaded tray), ``"true"``, or ``"false"``.
    ams_mapping: Explicit AMS slot mapping as a JSON array string,
        e.g. ``"[0]"`` or ``"[0, 2]"``.  Overrides auto-selection.
    skip_validation: Bypass the mesh-level pre-print validation step.
        Defaults to False — designs are pre-tested for printability
        before they reach the printer.  Use True for already-validated
        inputs or pre-sliced 3MFs the validator can't introspect.
    preview_token: Token from ``issue_preview_token`` after the user
        has seen ``model_path``.  Required: this tool ends at the
        printer, so it is gated exactly as ``start_print`` is.
    placement: Where the part goes when the plate still holds the last
        print: ``[x, y]`` in mm, a named region (``"front-left"``,
        ``"centre"``, …), or ``"keep"``.  Omitted, an occupied plate
        refuses at the slice step and lists the spots that would work.

On Bambu AMS printers the response carries ``ams_selection``
(``{slot, type, color}``) naming the tray actually used — routing is
never silent.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "model_path": "<model_path>"
    },
    "name": "run_quick_print"
  }
}

Input Schema

NameRequiredDescriptionDefault
use_amsNoAMS feeding mode (Bambu): ``"auto"`` (default — detect and route to a loaded tray), ``"true"``, or ``"false"``.
materialNoFilament material (e.g. ``"PLA"``). It sets the slice's temperatures, melt rate and cooling, its density weighs the print (omitted: the spool the printer reports loaded, then PLA — the slice step says which), and AMS auto-routing prefers a loaded tray whose type matches.
placementNoWhere the part goes when the plate still holds the last print: ``[x, y]`` in mm, a named region (``"front-left"``, ``"centre"``, …), or ``"keep"``. Omitted, an occupied plate refuses at the slice step and lists the spots that would work.
model_pathYesPath to input model (STL, 3MF, STEP, OBJ).
printer_idNoPrinter model ID for auto-profile selection (e.g. ``"ender3"``, ``"bambu_x1c"``, ``"klipper_generic"``).
ams_mappingNoExplicit AMS slot mapping as a JSON array string, e.g. ``"[0]"`` or ``"[0, 2]"``. Overrides auto-selection.
printer_nameNoRegistered printer name in fleet.
profile_pathNoExplicit slicer profile. Overrides printer_id auto-selection.
preview_tokenNoToken from ``issue_preview_token`` after the user has seen ``model_path``. Required: this tool ends at the printer, so it is gated exactly as ``start_print`` is.
skip_validationNoBypass the mesh-level pre-print validation step. Defaults to False — designs are pre-tested for printability before they reach the printer. Use True for already-validated inputs or pre-sliced 3MFs the validator can't introspect. Default: false.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed10 schema fields changedv1.5.1
    • addedInput schema / properties / ams_mapping / description
      Added value: +"Explicit AMS slot mapping as a JSON array string, e.g. ``\"[0]\"`` or ``\"[0, 2]\"``.  Overrides auto-selection."
    • addedInput schema / properties / material / description
      Added value: +"Filament material (e.g. ``\"PLA\"``).  It sets the slice's temperatures, melt rate and cooling, its density weighs the print (omitted: the spool the printer reports loaded, then PLA — the slice step says which), and AMS auto-routing prefers a loaded tray whose type matches."
    • addedInput schema / properties / model_path / description
      Added value: +"Path to input model (STL, 3MF, STEP, OBJ)."
    • addedInput schema / properties / placement / description
      Added value: +"Where the part goes when the plate still holds the last print: ``[x, y]`` in mm, a named region (``\"front-left\"``, ``\"centre\"``, …), or ``\"keep\"``.  Omitted, an occupied plate refuses at the slice step and lists the spots that would work."
    • addedInput schema / properties / preview_token / description
      Added value: +"Token from ``issue_preview_token`` after the user has seen ``model_path``.  Required: this tool ends at the printer, so it is gated exactly as ``start_print`` is."
    • addedInput schema / properties / printer_id / description
      Added value: +"Printer model ID for auto-profile selection (e.g. ``\"ender3\"``, ``\"bambu_x1c\"``, ``\"klipper_generic\"``)."
    • addedInput schema / properties / printer_name / description
      Added value: +"Registered printer name in fleet."
    • addedInput schema / properties / profile_path / description
      Added value: +"Explicit slicer profile. Overrides printer_id auto-selection."
    • changedInput schema / properties / skip_validation / description
      Previous value: -"Default: false."New value: +"Bypass the mesh-level pre-print validation step. Defaults to False — designs are pre-tested for printability before they reach the printer.  Use True for already-validated inputs or pre-sliced 3MFs the validator can't introspect. Default: false."
    • addedInput schema / properties / use_ams / description
      Added value: +"AMS feeding mode (Bambu): ``\"auto\"`` (default — detect and route to a loaded tray), ``\"true\"``, or ``\"false\"``."
  2. Changed11 schema fields changedv1.5.0
    • changedInput schema / properties / ams_mapping / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "items": {
      +      "type": "integer"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedInput schema / properties / ams_mapping / default
      Removed value: -null
    • removedInput schema / properties / material / default
      Removed value: -null
    • addedInput schema / properties / placement
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "items": {
      +        "type": "number"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "title": "Placement"
      +}
    • addedInput schema / properties / preview_token
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "title": "Preview Token"
      +}
    • removedInput schema / properties / printer_id / default
      Removed value: -null
    • removedInput schema / properties / printer_name / default
      Removed value: -null
    • removedInput schema / properties / profile_path / default
      Removed value: -null
    • removedInput schema / properties / skip_validation / default
      Removed value: -false
    • addedInput schema / properties / skip_validation / description
      Added value: +"Default: false."
    • removedInput schema / properties / use_ams / default
      Removed value: -null
  3. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true and readOnlyHint=false; the description adds what those annotations cannot: preflight checks 'always — cannot be skipped', preview_token gating mirroring start_print, occupied-plate refusal at the slice step, and the returned ``ams_selection`` field so AMS routing is 'never silent'. This is substantive beyond structured data.

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 one-line purpose, then a numbered 7-step pipeline and an Args block — every section is scannable. The Args entries duplicate the schema descriptions almost verbatim, which is somewhat redundant, but the structure is clean and the summary sentence is well placed.

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, high-consequence tool with no output schema, the description covers the pipeline stages, the mandatory gating, the failure mode on plate occupancy, and the notable return field. Nothing needed to invoke it correctly is missing.

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 the baseline is 3, but the description adds real semantics: material's fallback chain (loaded spool, then PLA), profile_path overriding printer_id auto-selection, and what happens when placement is omitted. It largely mirrors the schema parameter text, so not a full 5.

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?

Opens with a specific verb chain and resource: 'Full print pipeline: validate + slice + safety-check + upload + print (recommended one-shot tool).' It immediately distinguishes itself from slice_and_print and run_reslice_and_print by name, so an agent can select it without opening any 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?

Explicit routing rules: preferred over ``slice_and_print``, and 'For custom slicer parameter overrides, use ``run_reslice_and_print`` instead.' It also gives conditional guidance for skip_validation (True for pre-validated inputs or pre-sliced 3MFs) and placement (omitted → refuses at slice step and lists valid spots).

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

Deploy Server

Other Tools