Skip to main content
Glama

Publish to the model library

edit_library

Publish a piece's model, photos, measurements, and metadata as an immutable next asset-library version, with change notes and fidelity details.

Instructions

Publish to the asset library: action=publish keeps a piece's model file — with its companion files, reference pictures, measured sizes, unit, box, height above the floor, brand and source link — as the next version of name, with notes on what changed and fidelity (what was estimated). A version never changes after; library lists them.

Input Schema

NameRequiredDescriptionDefault
idYespublish: the piece whose model, photos, measurements and unit are kept, e.g. `f12`
iconNopublish: a small .png/.jpg for its catalog row; kept from the last version when left out
nameYespublish: the entry, lowercase letters, digits, - and _ (e.g. `oak-armchair`)
notesNopublish: what changed in this version
actionYes`publish`: the piece's model as the next version of `name`
categoryNopublish: the section the editor's catalog lists it under (`Bedroom`); kept from the last version when left out
fidelityNopublish: how far it can be trusted (what was estimated, what was measured)

Output Schema

NameRequiredDescriptionDefault
vNo
okYes
idsNo
revNo
textYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv3.3.0
    • addedInput schema / properties / category
      Added value: +{
      +  "description": "publish: the section the editor's catalog lists it under (`Bedroom`); kept from the last version when left out",
      +  "type": "string"
      +}
    • addedInput schema / properties / icon
      Added value: +{
      +  "description": "publish: a small .png/.jpg for its catalog row; kept from the last version when left out",
      +  "type": "string"
      +}
  2. Addedv3.0.0

TDQS

A3.7/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false; the description adds the crucial immutability trait ('A version never changes after'), which tells the agent that corrections require a new publish rather than an edit. It also enumerates the state captured into the version (model file, companion files, reference pictures, measurements, unit, box, height, brand, source link), which meaningfully exceeds annotation coverage. It stops short of stating permission requirements or what happens on name collisions.

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?

Front-loaded with the action and target ('Publish to the asset library: action=publish'), with the immutability note as a clean closing sentence. The middle enumeration of carried entities is long and packs several clauses into one sentence, but each item conveys real state that will be versioned, so the length is largely earned.

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 mutation tool with an output schema and full schema coverage, the description supplies the key behavioral facts an agent needs: what gets snapshotted, that versions are immutable, and where to list them. It leaves a gap around first-publish behavior (whether a new `name` creates a new entry) and error conditions, but nothing essential is missing for correct invocation.

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 each parameter already documents its own semantics, including carry-over behavior for `icon` and `category`. The description's contribution is mostly restating that same carried state at the resource level and clarifying that `id` is the source piece while `name` is the target entry, which is modest added value over the schema. Baseline 3 is appropriate.

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 ('Publish to the asset library: action=publish') and explains that the piece's model plus companion data becomes the next version of `name`. It also implicitly separates itself from the sibling `library` tool by noting 'library lists them'. The mismatch between the tool name `edit_library` and the actual publish-only behavior is resolved by the description, though it takes a full read to confirm publishing is the only supported action.

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 implied rather than stated: an agent can infer this is the way to create a new library version, and 'library lists them' points to the sibling for reading. There is no explicit when-not guidance, e.g., what to do when the entry does not yet exist under `name`, or whether re-publishing an unchanged piece is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.