Skip to main content
Glama
Hermoso

Hermoso

Official

List product photos

list_product_photos
Idempotent

List already-saved product photos from the brand library or app-store screens, returning each URL and product so you can reuse existing images before setting a product image—no re-upload needed.

Instructions

List the product photos ALREADY saved in your workspace — the brand's product library plus any app-store screens (also surfaces photos locked in your OTHER creations, since a set product lands in the shared library). FREE — returns each photo's url + the product it shows (the shop's own title when one is on file). These are already saved: never ask the user to upload them again. Call it before set_product_image to see the existing photos you can reuse. Reads YOUR saved brand (pass brandId to target a specific profile — that switches this key's active profile like use_brand).

Input Schema

NameRequiredDescriptionDefault
brandIdNoa profile id/name from list_brands whose product library to list; omit to use the active profile

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.1.374
    • changedInput schema / properties / brandId / description
      Previous value: -"a brand id/name from list_brands whose product library to list; omit to use the active brand"New value: +"a profile id/name from list_brands whose product library to list; omit to use the active profile"
  2. Changed1 schema field changedv0.1.161
    • changedOutput schema / (root)
      Previous value: -{
      -  "$schema": "http://json-schema.org/draft-07/schema#",
      -  "additionalProperties": false,
      -  "properties": {
      -    "photos": {
      -      "description": "the saved photos ({url, label, …})",
      -      "items": {},
      -      "type": "array"
      -    },
      -    "summary": {
      -      "description": "a readable rundown of the saved product photos",
      -      "type": "string"
      -    }
      -  },
      -  "type": "object"
      -}New value: +null
  3. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond annotations by disclosing cost ("FREE"), the return shape (each photo's url plus the product title when on file), and critically the hidden write side effect of brandId ("that switches this key's active profile like use_brand") — which reconciles the readOnlyHint=false annotation with a tool named 'list'. It also explains that photos from other creations appear because sets land in a shared library.

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 clause, but the prose is dense and shouty with caps, em-dashes, and parenthetical nesting that slightly obscures the sequence of ideas. Every sentence carries information, so it is efficient but not clean.

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?

With no output schema, the description supplies the return contents itself, plus cost, source scope, the profile-switch caveat, and the intended order relative to set_product_image. An agent has everything needed to call it correctly without opening the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so brandId is already documented; the description still adds meaningful semantics by warning that passing it switches the active profile like use_brand, and that omitting it uses the active profile. This is a genuine side-effect disclosure beyond the schema's field description.

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 the product photos ALREADY saved in your workspace") and defines the exact scope: brand library plus app-store screens plus photos from other creations. It is clearly separable from siblings like set_product_image and fetch_app_screens.

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

Usage Guidelines4/5

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

Gives explicit sequencing advice ("Call it before set_product_image to see the existing photos you can reuse") and a behavioral rule ("never ask the user to upload them again"). It stops short of naming when NOT to use it or pointing at fetch_app_screens as the alternative for new screens, so not a full 5.

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