Skip to main content
Glama

FeedShine: Shopify Google Shopping Feed

Get the next product to optimize

optimize_next
Read-onlyIdempotent

The one-product-at-a-time optimization loop, for small catalogs and for the exceptions left after a field-wide fix. Returns the next product needing work in a section with everything required to propose a fix: why it's flagged, its current mapped feed output, its top search queries (null when Search Console isn't synced), and the section's rules. Propose a change, get the merchant's approval, apply with set_product_override (confirm: true), verify with preview_product, then call this again with the returned cursor. done: true means the section is finished. On a large catalog, prefer list_section_products plus one update_feed_settings change over hundreds of overrides.

Input Schema

NameRequiredDescriptionDefault
cursorNocursor from the previous optimize_next result
feedIdNoDefaults to the store's primary feed
sectionYesWhich optimization section to walk

Output Schema

NameRequiredDescriptionDefault
doneNoTrue when the section has nothing left to walk
noteNoPlain-language result or next step, safe to read out to the merchant.
guideNoThe section's rules, so a fix can be proposed in one call
cursorNoPass back to advance, or unchanged to skip
feedIdNoThe feed the walk is computed against
contextNoWhy it is flagged: the reason, plus the query or issue behind it
productNoThe next product: id, handle and title
excludedNoWhen the feed drops the product, the reasons counted by variant
remainingNoProducts still flagged in this section
sourceFieldsNoThe Shopify fields a rule could read: tags and the first variants' SKU, barcode, price and weight
alreadyInFeedNoTrue when the feed's mapped output already carries the attribute behind the flag, so there is nothing to change
searchQueriesNoIts top search queries, null when none are synced
suggestedActionNoHow this product can be fixed: the action, the tool that carries it, and what to tell the merchant
outsideFeedGroupNoTrue when this product is outside the feed's product group, so this feed never sends it and an override here would do nothing
currentAttributesNoThat product's current mapped feed output for the section's attributes, null when the feed drops it

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false), and the description adds behavior annotations cannot express: the cursor-chaining loop, the done:true termination signal, and the fact that top search queries are null when Search Console isn't synced. That null-handling caveat and the loop mechanics are exactly the kind of context that prevents an agent from stalling or misreading an empty field.

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?

It is dense and somewhat long, but every sentence carries load: loop scope first, payload contents next, workflow, termination, then the large-catalog alternative. Front-loading the tool's identity before the workflow detail keeps it easy to scan despite the length.

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?

An output schema exists, so return values need not be explained, yet the description still characterizes the payload well enough to be actionable. Combined with the workflow, termination signal, and large-catalog escape hatch, nothing an agent needs to drive this loop correctly is missing.

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 the schema already documents cursor provenance, the feedId default, and the full section enum. The description reinforces cursor chaining ('call this again with the returned cursor') and the section walk but adds no syntax or format detail beyond the schema, so the baseline of 3 is appropriate.

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 states a specific verb and resource ('Returns the next product needing work in a section') and explicitly frames the tool as the one-product-at-a-time loop, which immediately distinguishes it from the batch-oriented siblings. It names the exact payload the call returns, so an agent knows precisely what this tool yields versus what list_section_products yields.

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 gives explicit when-to-use conditions ('for small catalogs and for the exceptions left after a field-wide fix') and an explicit when-not with the named alternative ('On a large catalog, prefer list_section_products plus one update_feed_settings change over hundreds of overrides'). It also lays out the full surrounding workflow with the sibling tools to call between iterations.

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