Skip to main content
Glama

check_print_readiness

Check a 3D mesh for print readiness by validating manifold geometry, build-plate fit, and printability, with optional automatic repair of holes, degenerate triangles, and floating regions.

Instructions

Single-call print readiness check with optional auto-repair.

        Checks the mesh is sound (parseable, manifold, no floating
        regions, no degenerate triangles, fits the build plate) and reads
        ``analyze_printability``'s verdict, which knows a short ceiling
        bridges.  ``can_print`` is true only when the mesh is sound and
        Kiln's verdict lets the part print, the same verdict the print
        pipeline refuses on.  ``verdict`` is ``ready_to_print``,
        ``printable_with_supports``, ``check_before_printing`` (the
        verdict asks for a check; it still prints, with a warning),
        ``wont_print`` (sound, but it won't print as it is) or
        ``needs_fixes`` (a mesh fault, named in ``issues``).
        ``validate_and_prepare`` runs the full pre-print pipeline.

        With ``auto_fix=True``, automatically repairs degenerate triangles,
        closes holes, and removes floating regions.

        :param file_path: Path to mesh file.
        :param auto_fix: Attempt automatic repairs (default False).
        :param output_path: Where to write the fixed file.
        :param bed_x_mm: Build plate X dimension (default 256).
        :param bed_y_mm: Build plate Y dimension (default 256).
        :param bed_z_mm: Build plate Z dimension (default 256).
        :param printer_id: Optional supported printer model id, or the
            name of a printer set up in Kiln.  When provided, printer
            intelligence supplies the build volume.
        :param material: Material the supports verdict and the
            ``printability_score`` are judged for (default ``"pla"``) —
            ``analyze_printability``'s own, so the two agree.
        :returns: Dict with can_print verdict, issues, and actions taken.
        

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": "check_print_readiness"
  }
}

Input Schema

NameRequiredDescriptionDefault
auto_fixNoAttempt automatic repairs (default False). Default: false.
bed_x_mmNoBuild plate X dimension (default 256). Default: 256.0.
bed_y_mmNoBuild plate Y dimension (default 256). Default: 256.0.
bed_z_mmNoBuild plate Z dimension (default 256). Default: 256.0.
materialNoMaterial the supports verdict and the ``printability_score`` are judged for (default ``"pla"``) — ``analyze_printability``'s own, so the two agree. Default: "pla".
file_pathYesPath to mesh file.
printer_idNoOptional supported printer model id, or the name of a printer set up in Kiln. When provided, printer intelligence supplies the build volume. Default: "".
output_pathNoWhere to write the fixed file. Default: "".

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changedv1.5.1
    • changedInput schema / properties / auto_fix / description
      Previous value: -"Default: false."New value: +"Attempt automatic repairs (default False). Default: false."
    • 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."
    • changedInput schema / properties / bed_z_mm / description
      Previous value: -"Default: 256.0."New value: +"Build plate Z dimension (default 256). Default: 256.0."
    • addedInput schema / properties / file_path / description
      Added value: +"Path to mesh file."
    • changedInput schema / properties / material / description
      Previous value: -"Default: \"pla\"."New value: +"Material the supports verdict and the ``printability_score`` are judged for (default ``\"pla\"``) — ``analyze_printability``'s own, so the two agree. Default: \"pla\"."
    • changedInput schema / properties / output_path / description
      Previous value: -"Default: \"\"."New value: +"Where to write the fixed file. Default: \"\"."
    • changedInput schema / properties / printer_id / description
      Previous value: -"Default: \"\"."New value: +"Optional supported printer model id, or the name of a printer set up in Kiln.  When provided, printer intelligence supplies the build volume. Default: \"\"."
  2. Changed13 schema fields changedv1.5.0
    • removedInput schema / properties / auto_fix / default
      Removed value: -false
    • addedInput schema / properties / auto_fix / description
      Added value: +"Default: false."
    • 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 / bed_z_mm / default
      Removed value: -256
    • addedInput schema / properties / bed_z_mm / description
      Added value: +"Default: 256.0."
    • addedInput schema / properties / material
      Added value: +{
      +  "description": "Default: \"pla\".",
      +  "title": "Material",
      +  "type": "string"
      +}
    • 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

A4/5.0
Behavior4/5

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

Annotations only say readOnlyHint=false and destructiveHint=false, so the description must carry the weight, and it does explain that auto_fix 'repairs degenerate triangles, closes holes, and removes floating regions' plus how can_print is derived. The notable gap is that it never says whether the source file at file_path is left untouched when output_path is empty, which matters for an operation framed as non-destructive.

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 lead sentence is well front-loaded, but the middle is a dense run-on enumerating five verdict values in a single paragraph, and the :param: block at the end is pure duplication of a schema that is already fully documented. Useful content is present but the structure is heavier than needed.

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 does the necessary work of defining every verdict enum value and explaining that can_print is true only when the mesh is sound and Kiln's verdict permits printing. It is close to complete for an 8-parameter tool; only the file-write/in-place behaviour when auto_fix is set remains unstated.

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 every parameter, including printer_id ('printer intelligence supplies the build volume') and material. The description's :param: block reproduces those same strings verbatim rather than adding new meaning, so the baseline of 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?

The first sentence names a specific verb and resource ('print readiness check') and the body enumerates exactly what is validated: parseable, manifold, no floating regions, no degenerate triangles, fits the build plate. It also explicitly distinguishes itself from siblings by noting that it 'reads ``analyze_printability``'s verdict' and that '``validate_and_prepare`` runs the full pre-print pipeline.'

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 context for when this tool is appropriate (single-call soundness plus verdict, with the full pipeline delegated to validate_and_prepare) and states that auto_fix must be True to attempt repairs. It stops short of explicit 'use X instead when Y' routing, and never mentions other near-neighbours such as preflight_check or may_i_print, but the alternative relationships it does name are unambiguous.

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