Skip to main content
Glama

download_generated_model

Download a completed 3D model from a generation job, save it locally, verify its size and origin, and open it on Kiln's interactive 3D stage for review.

Instructions

Download a completed generated model, check it, and open it on the stage.

        The result says where the model came from (``came_from``: the
        provider and the prompt) and, when the provider was asked for a
        shape and not a size, that its numbers are not millimetres
        (``size_check``).  A note beside the file keeps where it came
        from, so the stage and design history can say so later.

        Args:
            brief_id: The saved goal's id from ``design_session``, so this make
                is recorded against the goal and checked against it. Empty when
                there is no goal.
            job_id: Job ID of a completed generation job.
            provider: Provider that owns the job: ``"meshy"``, ``"gemini"``,
                ``"tripo3d"``, ``"stability"`` or ``"openscad"``.  Default
                ``"meshy"``.
            output_path: Directory to save the file.  Defaults to Kiln's
                own ``kiln_generated`` output folder.

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.

MAKE DOORS: design_session, Kiln's front door for making an object, is not installed here (signed in to Kiln it runs on Kiln's servers). On this install compile_scad IS the make → preview → iterate loop: make it, show the preview, iterate.

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": {
      "job_id": "<job_id>"
    },
    "name": "download_generated_model"
  }
}

Input Schema

NameRequiredDescriptionDefault
job_idYesJob ID of a completed generation job.
brief_idNoThe saved goal's id from ``design_session``, so this make is recorded against the goal and checked against it. Empty when there is no goal. Default: "".
providerNoProvider that owns the job: ``"meshy"``, ``"gemini"``, ``"tripo3d"``, ``"stability"`` or ``"openscad"``. Default ``"meshy"``. Default: "meshy".
output_pathNoDirectory to save the file. Defaults to Kiln's own ``kiln_generated`` output folder.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv1.5.1
    • changedInput schema / properties / brief_id / description
      Previous value: -"Default: \"\"."New value: +"The saved goal's id from ``design_session``, so this make is recorded against the goal and checked against it. Empty when there is no goal. Default: \"\"."
    • addedInput schema / properties / job_id / description
      Added value: +"Job ID of a completed generation job."
    • addedInput schema / properties / output_path / description
      Added value: +"Directory to save the file.  Defaults to Kiln's own ``kiln_generated`` output folder."
    • changedInput schema / properties / provider / description
      Previous value: -"Default: \"meshy\"."New value: +"Provider that owns the job: ``\"meshy\"``, ``\"gemini\"``, ``\"tripo3d\"``, ``\"stability\"`` or ``\"openscad\"``.  Default ``\"meshy\"``. Default: \"meshy\"."
  2. Changed4 schema fields changedv1.5.0
    • addedInput schema / properties / brief_id
      Added value: +{
      +  "description": "Default: \"\".",
      +  "title": "Brief Id",
      +  "type": "string"
      +}
    • removedInput schema / properties / output_path / default
      Removed value: -null
    • removedInput schema / properties / provider / default
      Removed value: -"meshy"
    • addedInput schema / properties / provider / description
      Added value: +"Default: \"meshy\"."
  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?

Annotations declare readOnlyHint=false, destructiveHint=false, openWorldHint=false, and the description adds real value beyond that: it writes a file into output_path (default kiln_generated), drops a sidecar note recording provenance, opens an interactive 3D stage panel in capable hosts, and silently decimates oversized meshes for that stage. It does not say whether an existing file at output_path is overwritten or what happens if the job is not actually complete, which keeps it short of 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 opening sentence is well front-loaded, but the docstring then duplicates the entire parameter list already present in the schema, and the two trailing paragraphs (INLINE 3D STAGE, MAKE DOORS) are partly promotional and partly about a different tool. Roughly a third of the text does not help an agent decide or call correctly.

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 return-value work: it names came_from (provider and prompt) and size_check (non-millimetre units when a shape rather than a size was requested), and it explains the sidecar note so the agent understands the stage/history linkage. Gaps remain around failure modes (incomplete job, invalid job_id/provider mismatch) and overwrite behavior on output_path.

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 job_id, brief_id, provider enum values, and output_path defaults. The Args block in the description restates those same strings almost verbatim, adding only the mild implication that brief_id ties the result to a design_session goal — no new semantics such as path format, empty-string behavior for provider, or whether output_path must exist.

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 first sentence gives a specific verb and resource — download a completed generated model — plus the follow-on actions (checking it, opening it on the stage). It does not, however, contrast itself with nearby siblings such as preview_generated_model, download_model, or download_and_upload, so the agent must infer which of those four to call.

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?

The only routing guidance is implicit: the model must come from a 'completed generation job' and provider must match the job's owner. Nothing states when to prefer this over preview_generated_model (preview only) or download_model (non-Kiln-generated files). The trailing 'MAKE DOORS' paragraph discusses design_session and compile_scad, which is install context rather than guidance for invoking this tool.

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