Skip to main content
Glama
shopify-chatgpt-ads-mcp

shopify-chatgpt-ads-mcp

by Avada-AI

Update prices and stock (Delta API)

update_feed_products

Updates price, availability, or title for products already in an OpenAI feed. Re-uploading does not modify existing items, so verify all variant IDs first; one unknown ID rejects the request.

Instructions

Change price, availability or title of products ALREADY in an OpenAI feed. MEASURED: this is the only way to change items OpenAI already holds (a re-uploaded file did not update them), changes show in about 60 s, and if ANY variant id is unknown OpenAI rejects the whole request with 422 and applies nothing. product_id is the feed group_id (the item_id when variants are not grouped); variant_id is the item_id. Price is in major units with its currency and sent as minor units. accepted: true does not confirm the ids matched; check with query_feed_products.

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": {
      "feed_id": "<feed_id>",
      "products": "<products>"
    },
    "name": "update_feed_products"
  }
}

Input Schema

NameRequiredDescriptionDefault
feed_idYesFeed id
productsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already mark this as a non-read-only, non-destructive, open-world mutation, and the description adds substantial behavior beyond them: ~60s propagation latency, all-or-nothing semantics where one unknown variant_id yields a 422 and nothing is applied, and the trap that 'accepted: true' does not confirm ids matched. That last point is exactly the kind of failure mode an agent cannot get from annotations or schema.

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?

Four dense sentences, front-loaded with purpose then constraints, with no filler. The 'MEASURED:' label is slightly awkward but efficiently flags empirically verified facts, and no sentence is redundant.

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 mutation tool with no output schema, it covers everything an agent needs to call it correctly: what it targets, latency expectations, atomic failure behavior, id semantics, unit handling, and the fact that a success response is not proof of a match. Remaining details (array size limits, enum values) are fully carried by 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?

With only 50% schema coverage, the description compensates well by decoding the id fields — product_id is the feed group_id (the item_id when variants are ungrouped) and variant_id is the item_id — and by clarifying price units (major units submitted, sent as minor units). Title and availability semantics are left to the schema, which is acceptable since both are self-describing.

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 opens with a specific verb and resource ('Change price, availability or title of products') and immediately scopes the target ('ALREADY in an OpenAI feed'), which distinguishes it from creation/upload flows and from the read-side sibling query_feed_products.

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 the decisive when-to-use condition explicitly: this is 'the only way to change items OpenAI already holds' and a re-uploaded file did not update them, ruling out the file-upload alternative. It also names the follow-up tool ('check with query_feed_products'), so both the entry and verification path are routed.

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