Skip to main content
Glama

list_decorations

Read-only

Browse and filter saved decorations in the local Kiln library by content type, category, or tag to find reusable assets for your current project.

Instructions

List all saved decorations in the library.

        Browse the decoration library to find reusable decorations.
        Filter by content type, category, or tag.

        :param content_type: Filter by type — ``photo``, ``svg``, ``qr``,
            ``text``, ``procedural_texture``, ``ai_texture``
            (empty = show all).
        :param category: Filter by category — ``surface`` (photo/svg/qr/text)
            or ``texture`` (procedural/AI textures).  Empty = show all.
        :param tag: Filter by tag (empty = show all).
        :returns: Dict with decoration count and list.

        This is the decoration LIBRARY: keyed by name, and it ADAPTS —
        each recorded success stores proven settings for THAT material,
        so applying picks the depth and mode your prints proved for
        whatever you are printing in now.  It keeps no version history.

        Kiln's other kind of saved decoration is a decoration PRESET
        (kiln-pro; what the web's /decorations pages show): keyed by an
        id because it has versions, branches and signed releases, and
        applied at the exact settings its version recorded rather than
        adapting to the material.  Listed by ``list_decoration_presets``,
        applied by ``apply_decoration_preset``.  The library adapts, the
        preset remembers — if what you want isn't here, look there.

        The response declares its own SCOPE.  The library is
        local-only at every tier — the web's /decorations pages are
        the decoration PRESET store above, not a cloud copy of this
        one — so a complete local read here is the whole library,
        and ``scope`` says exactly that.
        

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "list_decorations"
  }
}

Input Schema

NameRequiredDescriptionDefault
tagNoFilter by tag (empty = show all). Default: "".
categoryNoFilter by category — ``surface`` (photo/svg/qr/text) or ``texture`` (procedural/AI textures). Empty = show all. Default: "".
content_typeNoFilter by type — ``photo``, ``svg``, ``qr``, ``text``, ``procedural_texture``, ``ai_texture`` (empty = show all). Default: "".

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv1.5.1
    • changedInput schema / properties / category / description
      Previous value: -"Default: \"\"."New value: +"Filter by category — ``surface`` (photo/svg/qr/text) or ``texture`` (procedural/AI textures).  Empty = show all. Default: \"\"."
    • changedInput schema / properties / content_type / description
      Previous value: -"Default: \"\"."New value: +"Filter by type — ``photo``, ``svg``, ``qr``, ``text``, ``procedural_texture``, ``ai_texture`` (empty = show all). Default: \"\"."
    • changedInput schema / properties / tag / description
      Previous value: -"Default: \"\"."New value: +"Filter by tag (empty = show all). Default: \"\"."
  2. Changed6 schema fields changedv1.5.0
    • removedInput schema / properties / category / default
      Removed value: -""
    • addedInput schema / properties / category / description
      Added value: +"Default: \"\"."
    • removedInput schema / properties / content_type / default
      Removed value: -""
    • addedInput schema / properties / content_type / description
      Added value: +"Default: \"\"."
    • removedInput schema / properties / tag / default
      Removed value: -""
    • addedInput schema / properties / tag / description
      Added value: +"Default: \"\"."
  3. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false, destructiveHint=false, so the safety profile is covered. The description adds substantial context beyond that: the library is local-only at every tier, keeps no version history, adapts per material, and the response self-declares its scope. This is rich behavioral disclosure, though the scope paragraph is somewhat repetitive.

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?

Purpose and filters are front-loaded, but the library-vs-preset contrast and the scope paragraph are verbose and restate the same 'local-only, not a cloud copy' idea twice. The content is useful but could be tightened considerably.

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

Completeness5/5

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

No output schema exists, yet the description states the return shape ('Dict with decoration count and list') and explains scope semantics, so an agent knows what to expect. For a read-only filtered-list tool, nothing essential is missing.

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 three filters with the same enum values and empty=show-all semantics. The description's :param lines essentially restate the schema rather than adding new meaning, so baseline 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?

States a specific verb and resource ('List all saved decorations in the library') and immediately distinguishes it from the sibling list_decoration_presets by contrasting keyed-by-name/adapting vs keyed-by-id/versioned. An agent can tell exactly what this tool returns without opening the schema.

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

Usage Guidelines5/5

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

Explicitly routes the agent: 'if what you want isn't here, look there' pointing to list_decoration_presets and apply_decoration_preset, and clarifies the web /decorations pages are the preset store, not a cloud copy. When-to-use and when-not-to-use are both covered.

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