Skip to main content
Glama

center_model_on_bed

Destructive

Center a mesh on the build plate and set its lowest point to z=0 so it is positioned correctly for printing.

Instructions

Center a mesh on the build plate and place at z=0.

        Translates the model so it sits centered on the bed with its
        lowest point touching the build plate.

        :param file_path: Path to the STL file.
        :param bed_x_mm: Build plate X dimension (default 256).
        :param bed_y_mm: Build plate Y dimension (default 256).
        :param printer_id: Optional printer: a supported model id, or the
            name of a printer set up in Kiln.  When provided, its recorded
            bed size replaces the explicit dimensions.
        :param output_path: Output path (defaults to overwriting input).
        :returns: Dict with translation applied.

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": {
      "file_path": "<file_path>"
    },
    "name": "center_model_on_bed"
  }
}

Input Schema

NameRequiredDescriptionDefault
bed_x_mmNoBuild plate X dimension (default 256). Default: 256.0.
bed_y_mmNoBuild plate Y dimension (default 256). Default: 256.0.
file_pathYesPath to the STL file.
printer_idNoOptional printer: a supported model id, or the name of a printer set up in Kiln. When provided, its recorded bed size replaces the explicit dimensions. Default: "".
output_pathNoOutput path (defaults to overwriting input). Default: "".

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv1.5.1
    • changedInput schema / properties / bed_x_mm / description
      Previous value: -"Default: 256.0."New value: +"Build plate X dimension (default 256). Default: 256.0."
    • changedInput schema / properties / bed_y_mm / description
      Previous value: -"Default: 256.0."New value: +"Build plate Y dimension (default 256). Default: 256.0."
    • addedInput schema / properties / file_path / description
      Added value: +"Path to the STL file."
    • changedInput schema / properties / output_path / description
      Previous value: -"Default: \"\"."New value: +"Output path (defaults to overwriting input). Default: \"\"."
    • changedInput schema / properties / printer_id / description
      Previous value: -"Default: \"\"."New value: +"Optional printer: a supported model id, or the name of a printer set up in Kiln.  When provided, its recorded bed size replaces the explicit dimensions. Default: \"\"."
  2. Changed8 schema fields changedv1.5.0
    • removedInput schema / properties / bed_x_mm / default
      Removed value: -256
    • addedInput schema / properties / bed_x_mm / description
      Added value: +"Default: 256.0."
    • removedInput schema / properties / bed_y_mm / default
      Removed value: -256
    • addedInput schema / properties / bed_y_mm / description
      Added value: +"Default: 256.0."
    • removedInput schema / properties / output_path / default
      Removed value: -""
    • addedInput schema / properties / output_path / description
      Added value: +"Default: \"\"."
    • removedInput schema / properties / printer_id / default
      Removed value: -""
    • addedInput schema / properties / printer_id / description
      Added value: +"Default: \"\"."
  3. First observedv0.1.0

TDQS

A3.6/5.0
Behavior4/5

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

Beyond the annotations, the description discloses important behavior: output_path defaults to overwriting the input, printer_id can replace explicit bed dimensions, the result is a dict with the applied translation, and the 3D stage may open with automatic decimation for oversized meshes. That is strong context for a destructive mutation, though it does not discuss failure modes or whether backups are created.

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

Conciseness3/5

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

The first sentence is front-loaded and clear, and the inline-stage note adds useful behavioral context. However, the param list largely duplicates the already fully documented schema, which weakens conciseness.

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?

For a five-parameter mutation without an output schema, the description covers the transformation, overwrite behavior, printer-based bed override, return value, and the 3D stage behavior. It is close to complete, with only minor gaps around error handling or supported edge cases.

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 description coverage is 100%, so the schema already documents all five parameters. The description repeats most of that information without adding much new syntax, format, or interaction detail beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: centering a mesh on the build plate at z=0, with the lowest point touching the plate. That is clear enough for an agent to understand the transformation, but it does not explicitly contrast with nearby tools like rotate_model, auto_orient_model, or auto_arrange_parts_on_plate.

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

Usage Guidelines3/5

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

Usage is implied by the tool name and first sentence: use it when a single mesh should be centered and dropped to the bed. However, the description gives no explicit when-to-use guidance versus related orientation or arrangement tools, and no preconditions or exclusions.

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