Skip to main content
Glama

multi_color_copies

Print multiple copies of a single model, each in a different color, by using AMS filament slots. Automatically detects loaded trays or specify slots manually.

Instructions

Print multiple copies of the same model, each in a different AMS color.

Takes a single model file and produces a multi-color print where each
copy uses a different AMS filament slot.  Perfect for "print 4 lids
in 4 different colors" workflows.

**Auto-detect mode** (default): omit *copies*, *ams_slots*, and
*colors* — the tool queries the AMS, finds all loaded trays matching
*material*, and prints one copy per loaded tray.

**Manual mode**: specify *ams_slots* (and optionally *colors*) to
choose exactly which AMS trays to use and how many copies.

Requires PrusaSlicer or OrcaSlicer installed locally.  The printer
must be idle and have an AMS with loaded filament.

The emitted 3MF (``multi_color_3mf`` in the result) also opens in
Bambu Studio, which keeps the per-copy colors but re-derives print
settings itself — the result's ``slicer_note`` explains this; relay
it to the user when handing over the file.

:param model_path: Path to the model file (STL or OBJ).
:param copies: Number of copies.  Auto-detected from AMS if omitted.
:param ams_slots: Explicit AMS slot indices (0-based) per copy.
    E.g. ``[0, 1, 2, 3]`` for all 4 AMS Lite trays.
:param colors: Hex color strings per copy for slicer preview.
    E.g. ``["#FF0000", "#00FF00", "#0000FF", "#FFFF00"]``.
    Auto-read from AMS if omitted.
:param material: Material type filter for AMS auto-detect
    (default ``"PLA"``).  Only trays matching this type are used.
:param spacing_mm: Gap between copies on the plate (default 10 mm).
    Copies are arranged side by side, centered on the plate.
:param printer_id: Printer model ID for slicer profile selection and
    plate-size lookup when arranging the copies.
:param slicer_path: Explicit path to slicer binary.
:returns: Dict with print result, object details, and AMS mapping.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
colorsNo
copiesNo
materialNoPLA
ams_slotsNo
model_pathYes
printer_idNo
spacing_mmNo
slicer_pathNo
Install Server

TDQS

A4.8/5.0
Behavior5/5

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

No annotations are provided, so the description carries the full burden — and it delivers. It discloses environment requirements (slicer binary, idle printer, loaded AMS), side effects (none to hardware; produces a 3MF), the Bambu Studio behavior of re-deriving print settings, and the requirement to relay the 'slicer_note' to the user. This goes beyond typical transparency and is highly actionable for the agent.

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

Conciseness5/5

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

The description is long but meticulously structured: intro, realistic use case, bolded mode headers, prerequisites, cross-slicer caveat, then a cleanly formatted :param: block. Every sentence earns its place; even the Bambu Studio note and slicer_note handoff serve the agent's decision-making. Excellent use of formatting for scanability.

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 complex tool (8 parameters, 2 modes, no output schema, and 300+ sibling tools to disambiguate from), the description is remarkably complete: it covers mode selection logic, environment requirements, result shape (3MF, slicer_note, AMS mapping), and even user-handoff instructions. The only minor gap is no explicit return-value details, but the :returns: line plus the mention of 'slicer_note' provides reasonable coverage.

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

Parameters5/5

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

With 0% schema description coverage, the docstring shoulders full responsibility and succeeds: all 8 parameters are documented with type info, semantics, defaults, and concrete examples (e.g., ams_slots [0,1,2,3] and color hex strings). It fully compensates for the schema's lack of description, providing more than the input schema alone ever could.

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?

The description opens with a specific verb-resource pairing ('Print multiple copies of the same model, each in a different AMS color') and immediately grounds it with a concrete 'print 4 lids in 4 different colors' use case. It clearly distinguishes this tool from the large sibling set (e.g., multi_copy_print, multi_material_print) by scoping to AMS-slot-per-copy workflow and references specific prerequisite slicers.

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

Usage Guidelines4/5

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

The description gives clear, contextual usage guidance via two modes ('Auto-detect mode' vs 'Manual mode') and when to pick each, plus environment prerequisites (PrusaSlicer/OrcaSlicer installed, idle printer with AMS loaded). However, it never explicitly names alternative sibling tools for disambiguation or states when NOT to use this tool — so it falls short of a 5.

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

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/codeofaxel/kiln'

If you have feedback or need assistance with the MCP directory API, please join our Discord server