Skip to main content
Glama

Publish a model with variations on Amazon

publish_amazon_variation_family
Destructive

The model's active articles become ONE listing with variations on one Amazon store — Amazon's "variation family"; call it a model with variations when talking to the user: a parent whose SKU is the model's code (no price, no quantity) and a child listing per article, varying by colour and/or size — the theme is chosen from what the Amazon product type declares. An article not yet on the store becomes a new child (action create); an article already sold there as a listing of its own — a model put on a store article by article, or copied from another store without its parent — is JOINED to the parent (action attach): only parentage_level, child_parent_sku_relationship and variation_theme are sent to it, by PATCH under the SKU Amazon knows it by (amazonSku when that differs), and its offer, photos and texts stay as they are. A listing Amazon already shows under this parent counts as in the family (skipped, listed). Every listing is first validated by Amazon (VALIDATION_PREVIEW); only when ALL of them would be accepted is the family created — a REAL publication: the parent first, then each child with its price and quantity. Run check_amazon_variation_family first. Refused until the owner switches on AI publishing, and while listing creation is not armed on the Amazon connection; joining listings already on the store changes live listings, so it is also refused (reason amazonContentPushDisarmed) while sending content to Amazon (contentPush) is not open for that store. Returns the same report with statuses created (a new child), attached (a listing joined to the parent), excluded (a listing left out, see check_amazon_variation_family), failed, notAttempted or notChecked; each child's offer names the price, currency, quantity and fulfilment it is submitted with (quantityOmitted says why no quantity goes out), and progress says what is left (createdNow, attachedNow, alreadyOnAmazon, remaining, notReached, excluded) and the one next step: done, callAgain, fixAndRetry, fixGaps or publish. A model of about 80 articles is meant to finish in one call; a bigger one, or a slow Amazon, takes more: notChecked and notAttempted both mean the run ran out of time, so call again — a dry run an article passed is kept for an hour while its data stays the same, created and joined articles are skipped (nothing is submitted twice), the parent and the theme stay, and the rest continue. created means Amazon ACCEPTED the child for processing, not that it is live: Amazon finishes asynchronously, so check the outcome with inspect_amazon_listings and never tell the user the family is live from this result alone. The result echoes the workspace.

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": {
      "modelId": "<modelId>"
    },
    "name": "publish_amazon_variation_family"
  }
}

Input Schema

NameRequiredDescriptionDefault
modelIdYesA product model id (the model a product's modelId points at; get_product shows it).
marketplaceIdNoOne Amazon store by its id. Omit for the main store; for a write with several stores open it is required. Each store holds its own family, in its own language.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / marketplaceId
      Added value: +{
      +  "description": "One Amazon store by its id. Omit for the main store; for a write with several stores open it is required. Each store holds its own family, in its own language.",
      +  "maxLength": 32,
      +  "minLength": 1,
      +  "type": "string"
      +}
  2. Added

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare the destructive, open-world, non-idempotent profile, yet the description adds substantial behavior: Amazon validates every listing in VALIDATION_PREVIEW before anything is created, publishing is all-or-nothing, the parent is written first, attach uses a PATCH limited to three fields and leaves offer/photos/texts untouched, and success means Amazon accepted the child, not that it is live (async; verify with inspect_amazon_listings). It also discloses time-boxing and resumption semantics. A small deduction because the retry-safety claim ("nothing is submitted twice") sits uneasily beside idempotentHint=false without reconciling the two.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The content is valuable but delivered as one enormous em-dash-chained paragraph with no breaks, so statuses, refusal reasons, resumption rules and the next-step vocabulary all run together. It is not front-loaded for scanning: the refusal conditions and the async caveat, both critical, are buried mid-paragraph. Substantial pruning and bullet structure would make it far more usable.

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?

For a complex, destructive, open-world write with no output schema, the definition covers what an agent needs: the create/attach/skip decision per article, validation gating, refusal reasons, the full status vocabulary (created, attached, excluded, failed, notAttempted, notChecked), the progress counters, the single next step, and the explicit instruction not to claim the family is live.

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 both parameters are already documented, but the description adds meaning: the parent SKU derives from the model's code (telling the agent what modelId becomes), and the store choice determines language and holds its own separate family. That is genuine value beyond the schema's field descriptions, though no extra detail is given on the id format itself.

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?

The description names a specific verb and resource and defines the outcome concretely: one Amazon listing built as a variation family, with a parent whose SKU is the model's code and one child per article, varied by colour and/or size. It also distinguishes the two sub-operations (create a new child vs. attach an existing standalone listing) and names the sibling check tool, so an agent can separate this from plain listing publishing.

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?

It states an explicit prerequisite ("Run check_amazon_variation_family first") and enumerates the exact conditions under which the call is refused: AI publishing not switched on, listing creation not armed on the Amazon connection, and contentPush not open for the store (reason amazonContentPushDisarmed). It also says what to do when the run times out (call again), which is when-to-use guidance for the retry path.

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.

Resources