Skip to main content
Glama

compose_assembly_parts

Merge individual part meshes by their assembly positions into one STL file to create a combined model for export. Opens Kiln's interactive 3D stage on success.

Instructions

Compose all assembly parts into a single output STL file.

        Merges the individual part meshes according to their
        positions and writes the combined model to ``output_path``.

        Args:
            assembly_json: JSON string of the current assembly state.
            output_path: File path where the composed STL will be written.

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": {
      "assembly_json": "<assembly_json>",
      "output_path": "<output_path>"
    },
    "name": "compose_assembly_parts"
  }
}

Input Schema

NameRequiredDescriptionDefault
output_pathYesFile path where the composed STL will be written.
assembly_jsonYesJSON string of the current assembly state.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.5.1
    • addedInput schema / properties / assembly_json / description
      Added value: +"JSON string of the current assembly state."
    • addedInput schema / properties / output_path / description
      Added value: +"File path where the composed STL will be written."
  2. Changed2 schema fields changedv1.5.0
    • addedInput schema / properties / assembly_json / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "additionalProperties": true,
      +    "type": "object"
      +  }
      +]
    • removedInput schema / properties / assembly_json / type
      Removed value: -"string"
  3. First observedv0.1.0

TDQS

A3.7/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 earns credit for disclosing that on success an interactive 3D stage panel opens, that oversized meshes are auto-decimated for that stage, and that the PNG preview is only a fallback. It does not mention whether an existing file at output_path is overwritten or what happens on failure.

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?

Purpose is front-loaded in the first two sentences and the viewer paragraph is substantive new information. The Docstring Args block duplicates the input schema word-for-word and could be dropped, which is the only real waste.

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 two-parameter write tool with no output schema, the description covers what is produced (a combined STL), where it goes, and the UI side effect. Missing only edge-case behavior such as overwrite handling and error modes, which keeps it short of full completeness.

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 both parameters are already documented in structured form. The Args block restates the schema verbatim ("JSON string of the current assembly state," "File path where the composed STL will be written") without adding format, expected-shape, or overwrite semantics, so the baseline of 3 applies.

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 opening states a specific verb and resource: "Compose all assembly parts into a single output STL file," and the follow-up sentence clarifies the mechanism (merging part meshes at their positions and writing to output_path). It does not name which sibling (e.g. merge_stl, compose_models, validate_assembly) to prefer, so it is clear but not sibling-differentiated.

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 only implied: the phrase "all assembly parts" and "current assembly state" suggest this is the final step after parts exist, but there is no explicit when-to-use, no prerequisite (e.g. validate_assembly first), and no statement of when not to use it versus a generic mesh merge.

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