Skip to main content
Glama

multi_material_print

Print multiple objects in different materials or colors on one build plate by specifying each object's file and material. Ensures per-object filament assignments and automatic AMS slot mapping for a unified print job.

Instructions

Print multiple objects in different materials/colors on one build plate.

Takes a JSON array of objects, each with a model file and material
assignment. Builds a multi-material 3MF file with per-object filament
assignments, slices it, auto-maps materials to AMS slots, and prints.

This is how you print "object A in red PLA, object B in black PETG"
in a single print job.

Example: Print a bracket in PETG and a cover in PLA::

    multi_material_print(
        objects_json='[
            {"file_path": "/path/to/bracket.stl", "material_id": "petg"},
            {"file_path": "/path/to/cover.stl", "material_id": "pla"}
        ]',
        printer_name="my_bambu",
        printer_id="bambu_a1",
    )

Each object in the JSON array supports:
    - ``file_path`` (required): Path to STL/OBJ mesh file.
    - ``material_id`` (required): Material identifier (e.g. ``"petg"``).
    - ``name`` (optional): Display name for the object.
    - ``color`` (optional): Hex color override (e.g. ``"#FF0000"``).

The tool automatically:
    1. Looks up each material's properties (temps, colors)
    2. Builds a multi-object 3MF with per-object material assignments
    3. Generates merged slicer overrides (uses the highest-temp material)
    4. Checks AMS slots for matching materials
    5. Slices and prints with correct AMS mapping

Requires PrusaSlicer or OrcaSlicer installed locally.

Args:
    objects_json: JSON array of objects with ``file_path`` and
        ``material_id`` keys (see example above).
    printer_name: Registered printer name in fleet.
    printer_id: Printer model ID for profile selection.
    auto_ams: Auto-detect AMS slot mapping (default ``True``).
    extra_overrides: Additional slicer overrides JSON.
    slicer_path: Explicit path to slicer binary.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
auto_amsNo
printer_idNo
slicer_pathNo
objects_jsonYes
printer_nameNo
extra_overridesNo
Behavior4/5

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

No annotations provided; description details the automatic multi-step process (build 3MF, auto-map AMS, slice, print). Discloses requirements (PrusaSlicer/OrcaSlicer) but does not cover failure modes or side effects.

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?

Well-structured with example, bullet points, and sections. Some redundancy in the auto-steps list, but overall efficient and front-loaded with purpose.

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?

Given six parameters (one required), no output schema, and many siblings, the description covers purpose, parameters, workflow, and prerequisites. Lacks detail on return value or post-print status, but acceptable.

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 0%, but description compensates well for the required 'objects_json' parameter with example, supported keys, and format. Other parameters receive brief explanations (e.g., 'extra_overrides' is vague but described as 'JSON').

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?

Description clearly states 'Print multiple objects in different materials/colors on one build plate.' Includes specific verb (print), resource (multiple objects with materials), and differentiates from siblings like multi_copy_print via explicit multi-material focus.

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?

Provides a concrete example showing proper usage and lists parameter keys and auto-steps. Implicitly distinguishes from single-material print tools, but lacks explicit when-not-to-use or alternatives among siblings.

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

Install Server

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