Skip to main content
Glama

apply_decoration_preset

Apply a saved decoration preset to a mesh using its recorded settings, then open an interactive 3D stage to orbit and zoom the decorated result.

Instructions

Apply a saved decoration preset to a mesh — the preset's own recorded settings, no signing required. Opens Kiln's interactive inline 3D stage on the result (orbit/zoom panel in MCP Apps hosts; hosted sessions add a browser stage link).

Needs Kiln Pro.

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": {
      "host_mesh_path": "<host_mesh_path>"
    },
    "name": "apply_decoration_preset"
  }
}

Input Schema

NameRequiredDescriptionDefault
faceNoWhich face of the host to carve on: ``"auto"``, a named side such as ``"top"``, ``"bottom"`` or ``"front"``, or on a sketch-built part the sketch's own wall name (e.g. ``"side:l2"``). A name that reaches no face is refused. Omit it to let the engine pick the face.
scaleNoFraction of the face the mark covers. Omit it for the engine's default coverage.
preset_idNoStable preset id — applies its latest version.
offset_x_mmNoFace-local horizontal shift of the mark from the face's centre, in millimetres. Defaults to ``0`` (centred); a shift that would push the mark off the face is clamped, with a warning. Default: 0.0.
offset_y_mmNoFace-local vertical shift of the mark from the face's centre, in millimetres. Defaults to ``0`` (centred); clamped the same way. Default: 0.0.
host_mesh_pathYesSTL/OBJ to decorate.
preset_release_idNoSigned-release id — pins the version the signature covers, and verifies it.
preset_version_idNoExact version id — pins that version.
base_mesh_version_idNoOptional design-version id of the host mesh, recorded in provenance so a later print outcome feeds both the per-version and per-preset A/B paths.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changedv1.5.1
    • addedInput schema / properties / base_mesh_version_id / description
      Added value: +"Optional design-version id of the host mesh, recorded in provenance so a later print outcome feeds both the per-version and per-preset A/B paths."
    • addedInput schema / properties / face / description
      Added value: +"Which face of the host to carve on: ``\"auto\"``, a named side such as ``\"top\"``, ``\"bottom\"`` or ``\"front\"``, or on a sketch-built part the sketch's own wall name (e.g. ``\"side:l2\"``).  A name that reaches no face is refused.  Omit it to let the engine pick the face."
    • addedInput schema / properties / host_mesh_path / description
      Added value: +"STL/OBJ to decorate."
    • changedInput schema / properties / offset_x_mm / description
      Previous value: -"Default: 0.0."New value: +"Face-local horizontal shift of the mark from the face's centre, in millimetres.  Defaults to ``0`` (centred); a shift that would push the mark off the face is clamped, with a warning. Default: 0.0."
    • changedInput schema / properties / offset_y_mm / description
      Previous value: -"Default: 0.0."New value: +"Face-local vertical shift of the mark from the face's centre, in millimetres.  Defaults to ``0`` (centred); clamped the same way. Default: 0.0."
    • addedInput schema / properties / preset_id / description
      Added value: +"Stable preset id — applies its latest version."
    • addedInput schema / properties / preset_release_id / description
      Added value: +"Signed-release id — pins the version the signature covers, and verifies it."
    • addedInput schema / properties / preset_version_id / description
      Added value: +"Exact version id — pins that version."
    • addedInput schema / properties / scale / description
      Added value: +"Fraction of the face the mark covers.  Omit it for the engine's default coverage."
  2. Addedv1.5.0

TDQS

A3.5/5.0
Behavior4/5

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

Annotations only declare the basic safety profile (readOnlyHint false, destructiveHint false, openWorldHint false); the description adds substantial context beyond them — the Pro-tier requirement, that no signature is needed, that an interactive 3D stage opens, and that oversized meshes are auto-decimated for that stage. It never says whether the applied decoration is persisted or how to undo it, which keeps it from a 5.

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 headline sentence is well front-loaded, but the inline 3D stage is explained twice — once in the opening paragraph and again in the ALL-CAPS 'INLINE 3D STAGE' block — with the decimation and browser-link points restated. Roughly a third of the text is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description must cover return values; it mentions a PNG preview and the stage but never states what is actually returned (decorated mesh path, decoration id, or preset provenance). For a 9-parameter, Pro-gated mutation with no output contract, this leaves a real gap.

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 explains face, scale, offsets, and the three preset id variants. The description adds only marginal meaning — that the preset's recorded settings are what get applied — and does not clarify when an agent should choose preset_id vs preset_version_id vs preset_release_id.

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 names a specific verb and resource ('Apply a saved decoration preset to a mesh') and adds a key differentiator — it uses the preset's own recorded settings with no signing required — which separates it from apply_decoration and sign_decoration_preset_release. It stops short of explicitly naming those siblings, so the agent must infer the boundary.

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?

Prerequisites are stated ('Needs Kiln Pro') and the no-signing condition is implied, but there is no explicit when-to-use vs when-not guidance against apply_decoration, preview_decorated_mesh, or batch_decorate. Usage is implied rather than routed.

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