Skip to main content
Glama

Final POS – Custom POS Builder

Add product images

hub_add_product_images

Add photos to an existing product — from public URLs, or as base64 bytes when the merchant attached the file itself and there is no URL. URL images are downloaded and stored on the platform, so the product never depends on someone else's site staying up. Existing photos are KEPT — this adds to them. JPEG/PNG/WebP/GIF/HEIC, up to 20MB each. Takes the product ID from get_products, never a name.

Input Schema

NameRequiredDescriptionDefault
imageUrlsNoPublic URLs of the photos to add
productIdYesProduct id from get_products — not a name
imageFilesNoPhotos the merchant attached — use when there is no public URL

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations' safety profile, it discloses non-obvious behavior: URL images are downloaded and stored server-side (so the product doesn't depend on an external site), existing photos are KEPT (additive, not destructive), and it lists format and size limits (JPEG/PNG/WebP/GIF/HEIC, 20MB each). This is genuinely valuable context not derivable from structured fields.

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?

Dense and front-loaded, with each sentence carrying a distinct fact (source options, storage behavior, additive semantics, limits, ID source). The final sentence repeats the schema's productId note, a minor redundancy.

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 no output schema, it covers sources, storage side effects, additive semantics, and resource constraints. It doesn't address return value/error behavior, duplicate handling, or auth/permission requirements, leaving a small gap.

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 already 100%, but the description adds meaning the schema lacks: accepted formats and the 20MB-per-image bound, plus the URL-vs-base64 selection logic. The productId guidance duplicates the schema description verbatim, which caps it below 5.

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 (add) and resource (photos/images to an existing product), and clarifies it augments rather than replaces existing photos. An agent can distinguish it from hub_upload_media or hub_update_product without opening a schema.

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?

Explicitly explains the URL-vs-base64 decision rule ('base64 bytes when the merchant attached the file itself and there is no URL') and routes the agent to get_products for the ID. It stops short of naming concrete alternative tools (e.g. hub_upload_media) for the no-URL case, so it's clear context without explicit alternatives.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.