Skip to main content
Glama

Compare setting variants

compare_slices
Idempotent

Slices several setting variants in parallel and compares print time, weight, and percent differences against the original, writing results to output/ without modifying the source model.

Instructions

Slice several setting variants in parallel in one call and compare them: time, weight (total and per plate), % difference from the original and checks for each. Results are written under output/; the original is never modified. Use it to test your own settings; use optimize for the 5 ready-made goals and slice_model for a single slice.

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.
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.
variantsYesVariants to slice: {"variant name": {"setting": "value"}}, e.g. {"thin walls": {"wall_loops": "2"}, "strong": {"wall_loops": "4"}}.
filamentsNoFilament preset names, one per slot (e.g. "Bambu PLA Matte @BBL P1S 0.4 nozzle"). Alone on a 3MF project, replaces its filament.
include_originalNoAlso slice the unchanged model as the reference.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 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 / 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 / include_original / description
      Added value: +"Also slice the unchanged model as the reference."
    • 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 / 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 / variants / description
      Added value: +"Variants to slice: {\"variant name\": {\"setting\": \"value\"}}, e.g. {\"thin walls\": {\"wall_loops\": \"2\"}, \"strong\": {\"wall_loops\": \"4\"}}."
  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?

Adds genuinely non-obvious behavior beyond the annotations: results are written under output/ and the original is never modified, which tells the agent this is a non-destructive write with a known artifact location. It also discloses the parallel batching. It does not say what happens if one variant fails or roughly how long a batch takes.

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?

Three sentences, each carrying a distinct load: what it does, what it produces and its side effects, and when to prefer a sibling. The core action is front-loaded and nothing is padded.

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?

With no output schema, the description usefully enumerates the returned comparison metrics (time, weight total and per plate, % difference from the original, checks) and the output location. The remaining gap is failure semantics for a multi-variant batch, which matters for an 8-parameter mutation tool.

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 coverage is 100% and each parameter (plate, models, machine, process, variants, filaments, include_original) is already documented in the schema with examples. The description adds no parsing or formatting detail for the nested variants object beyond what the schema example provides, so baseline 3 applies.

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 specific verb and resource ('Slice several setting variants in parallel in one call and compare them') with the exact comparison dimensions enumerated. It is immediately distinguishable from slice_model (single slice) and optimize (ready-made goals) without reading the schemas.

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 names both alternatives and the conditions that select them: 'use optimize for the 5 ready-made goals and slice_model for a single slice', contrasted with 'use it to test your own settings'. Nothing is left to inference.

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