Skip to main content
Glama

reslice_with_overrides

Reslice a 3D model with custom slicer overrides to fix failed prints from adhesion, wobble or quality issues. Adjust brim, speed, infill and support settings, then generate new G-code.

Instructions

Reslice a 3D model with custom slicer parameter overrides.

        Accepts a base printer profile and a JSON dict of overrides to customize
        the slice. Common override keys (PrusaSlicer INI format):

          Adhesion: brim_width (mm), skirts (count), skirt_distance (mm)
          Temperature: temperature, first_layer_temperature, bed_temperature
          Speed: perimeter_speed, infill_speed, external_perimeter_speed, first_layer_speed, travel_speed (mm/s)
          Structure: fill_density (e.g. "25%"), fill_pattern (gyroid/grid/honeycomb), layer_height
          Support: support_material (0/1), support_material_buildplate_only (0/1)
          Retraction: retract_length, retract_speed

        Example overrides JSON: {"brim_width": "8", "perimeter_speed": "30", "fill_density": "25%"}

        Use this tool when a print failed due to adhesion, wobble, or quality issues
        and you need to reslice with adjusted settings. Pair with rotate_model to
        also change part orientation before reslicing.  A brim too wide for the
        room beside the part is refused (``BRIM_PAST_BED``) with the width that
        fits; a skirt past the edge of the bed is dropped and said in ``bed_fit``.

        Requires PrusaSlicer or OrcaSlicer installed locally.
        Use kiln find-slicer or the find_slicer MCP tool to verify.

        Args:
            input_path: Path to the input file (STL, 3MF, STEP, OBJ, AMF).
            printer_id: Printer model ID for bundled profile selection
                (e.g. ``"prusa_mini"``, ``"bambu_a1"``).
            overrides: Slicer keys to override, as a JSON object or its
                string form (e.g. ``{"brim_width": "8", "fill_density": "25%"}``).
            output_dir: Directory for the output G-code.  Defaults to the
                system temp directory.
            slicer_path: Explicit path to the slicer binary.  Auto-detected
                if omitted.
            printer_name: Registered printer this reslice is FOR.  Omit
                for the default printer.  Naming a second machine
                resolves its profile, its bed and its temperature
                ceilings instead of the default printer's.
            material: Filament material for this slice (``"PLA"``,
                ``"PETG"``, …).  It sets the temperatures, melt rate and
                cooling (``build_material_overrides`` shows them) and its
                density weighs the print; any of them you also pass in
                ``overrides`` stays yours.  Omitted, the loaded spool
                answers, then PLA — the response's ``filament`` block
                says which.
            placement: Where the part goes when the plate still holds the
                last print: ``[x, y]`` in mm (the part's footprint
                origin), a named region (``"front-left"``, ``"centre"``,
                ``"back-right"``, …), or ``"keep"``.  Omitted, an
                occupied plate refuses and lists the spots that would
                work; a clear plate reslices as before.  The response's
                ``placement`` block is the clearance verdict, checked
                again on the sliced file.  The clearance verdict is
                always given; placing and starting a second print on an
                occupied plate is included where the plan carries it.
            auto_center: Centre the model on the plate before slicing
                (default ``True``).  ``False`` keeps the model where its
                file places it.

INLINE 3D STAGE: on success this tool opens Kiln's interactive 3D stage — an inline viewer panel the user can orbit, zoom, and turn over — in hosts that render MCP Apps panels (Kiln's hosted connection attaches a browser stage link for hosts that don't). Oversized meshes are decimated automatically for the stage; the PNG preview is the floor, not the whole experience.

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": {
      "input_path": "<input_path>"
    },
    "name": "reslice_with_overrides"
  }
}

Input Schema

NameRequiredDescriptionDefault
materialNoFilament material for this slice (``"PLA"``, ``"PETG"``, …). It sets the temperatures, melt rate and cooling (``build_material_overrides`` shows them) and its density weighs the print; any of them you also pass in ``overrides`` stays yours. Omitted, the loaded spool answers, then PLA — the response's ``filament`` block says which.
overridesNoSlicer keys to override, as a JSON object or its string form (e.g. ``{"brim_width": "8", "fill_density": "25%"}``).
placementNoWhere the part goes when the plate still holds the last print: ``[x, y]`` in mm (the part's footprint origin), a named region (``"front-left"``, ``"centre"``, ``"back-right"``, …), or ``"keep"``. Omitted, an occupied plate refuses and lists the spots that would work; a clear plate reslices as before. The response's ``placement`` block is the clearance verdict, checked again on the sliced file. The clearance verdict is always given; placing and starting a second print on an occupied plate is included where the plan carries it.
input_pathYesPath to the input file (STL, 3MF, STEP, OBJ, AMF).
output_dirNoDirectory for the output G-code. Defaults to the system temp directory.
printer_idNoPrinter model ID for bundled profile selection (e.g. ``"prusa_mini"``, ``"bambu_a1"``).
auto_centerNoCentre the model on the plate before slicing (default ``True``). ``False`` keeps the model where its file places it. Default: true.
slicer_pathNoExplicit path to the slicer binary. Auto-detected if omitted.
printer_nameNoRegistered printer this reslice is FOR. Omit for the default printer. Naming a second machine resolves its profile, its bed and its temperature ceilings instead of the default printer's.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changedv1.5.1
    • changedInput schema / properties / auto_center / description
      Previous value: -"Default: true."New value: +"Centre the model on the plate before slicing (default ``True``).  ``False`` keeps the model where its file places it. Default: true."
    • addedInput schema / properties / input_path / description
      Added value: +"Path to the input file (STL, 3MF, STEP, OBJ, AMF)."
    • addedInput schema / properties / material / description
      Added value: +"Filament material for this slice (``\"PLA\"``, ``\"PETG\"``, …).  It sets the temperatures, melt rate and cooling (``build_material_overrides`` shows them) and its density weighs the print; any of them you also pass in ``overrides`` stays yours.  Omitted, the loaded spool answers, then PLA — the response's ``filament`` block says which."
    • addedInput schema / properties / output_dir / description
      Added value: +"Directory for the output G-code.  Defaults to the system temp directory."
    • addedInput schema / properties / overrides / description
      Added value: +"Slicer keys to override, as a JSON object or its string form (e.g. ``{\"brim_width\": \"8\", \"fill_density\": \"25%\"}``)."
    • addedInput schema / properties / placement / description
      Added value: +"Where the part goes when the plate still holds the last print: ``[x, y]`` in mm (the part's footprint origin), a named region (``\"front-left\"``, ``\"centre\"``, ``\"back-right\"``, …), or ``\"keep\"``.  Omitted, an occupied plate refuses and lists the spots that would work; a clear plate reslices as before.  The response's ``placement`` block is the clearance verdict, checked again on the sliced file.  The clearance verdict is always given; placing and starting a second print on an occupied plate is included where the plan carries it."
    • addedInput schema / properties / printer_id / description
      Added value: +"Printer model ID for bundled profile selection (e.g. ``\"prusa_mini\"``, ``\"bambu_a1\"``)."
    • addedInput schema / properties / printer_name / description
      Added value: +"Registered printer this reslice is FOR.  Omit for the default printer.  Naming a second machine resolves its profile, its bed and its temperature ceilings instead of the default printer's."
    • addedInput schema / properties / slicer_path / description
      Added value: +"Explicit path to the slicer binary.  Auto-detected if omitted."
  2. Changed10 schema fields changedv1.5.0
    • removedInput schema / properties / auto_center / default
      Removed value: -true
    • addedInput schema / properties / auto_center / description
      Added value: +"Default: true."
    • addedInput schema / properties / material
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "title": "Material"
      +}
    • removedInput schema / properties / output_dir / default
      Removed value: -null
    • changedInput schema / properties / overrides / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "additionalProperties": true,
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedInput schema / properties / overrides / default
      Removed value: -null
    • addedInput schema / properties / placement
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "items": {
      +        "type": "number"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "title": "Placement"
      +}
    • removedInput schema / properties / printer_id / default
      Removed value: -null
    • addedInput schema / properties / printer_name
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "title": "Printer Name"
      +}
    • removedInput schema / properties / slicer_path / default
      Removed value: -null
  3. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

Goes far beyond the annotations: names failure codes (BRIM_PAST_BED), discloses that an oversized skirt is dropped and reported in bed_fit, that an occupied plate refuses unless placement is given, the material fallback chain (spool, then PLA), and that an external slicer binary is required with find_slicer as a check.

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 purpose and example, then usage, then caveats, then per-argument notes — every block is scannable. It runs long and the Args section largely restates the schema descriptions, which is redundant but not confusing.

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 9-parameter mutating tool with an external dependency, the description covers prerequisites, error modes, placement/clearance semantics, material resolution order, and the interactive stage side effect. With an output schema present, return values need not be explained, so nothing material is missing.

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?

Schema coverage is already 100%, yet the description adds real meaning: a categorized catalog of valid override keys with units and value formats, plus a worked JSON example. It also clarifies precedence (material-derived values vs. explicitly passed overrides) and auto_center's default.

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 ('Reslice a 3D model') plus the distinguishing feature ('custom slicer parameter overrides'), which separates it from slice_model and run_reslice_and_print without needing either schema.

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?

Gives an explicit trigger ('when a print failed due to adhesion, wobble, or quality issues') and a pairing recommendation ('Pair with rotate_model'). It does not explicitly contrast with the closest siblings slice_model / run_reslice_and_print, so when-NOT-to-use is left implicit.

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