Skip to main content
Glama

FeedShine: Shopify Google Shopping Feed

Server Details

Grow sales on Google and beyond. Fix your Shopify product feeds and optimize every field in chat.

Ownership verified
Status
Healthy
Uptime
85.4% over 22 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.2/5.0

Scored across 15 tools

Disambiguation4/5

Most tools target clearly distinct resources and the descriptions even cross-reference each other (e.g. list_section_products vs optimize_next, list_products vs list_product_issues vs list_section_products). The main risk is the near-identical pair set_product_override vs set_product_overrides, distinguished only by pluralization and payload shape, which an agent could easily misselect.

Naming Consistency4/5

All names are snake_case verb_noun (get_, list_, set_, update_, run_, preview_, optimize_) and follow a predictable pattern. The only deviations are the singular/plural set_product_override(s) pair and the slightly awkward set_products_included, which mix the override-batch and include-batch naming styles.

Tool Count5/5

Fifteen tools is at the top of the well-scoped range but each one earns its place: reads (feed list/get, schema, guides, search queries), product inspection, bulk and single actions, verification, and a workflow driver. Nothing appears redundant or padded for the stated Shopify feed-management purpose.

Completeness4/5

The surface covers the core lifecycle well: inspect feeds/settings, read rules, edit mappings, override products individually or in bulk, verify output, and regenerate. Gaps are minor (no explicit create/delete feed or store-wide shared-rule editing, which the descriptions defer to the app UI), leaving workable rather than blocking holes.

Available Tools

15 tools
get_feedGet feed configurationA
Read-onlyIdempotent
Inspect

Get one feed's full configuration: its saved settings, the rule behind every attribute, the file URL and the latest run. Settings are grouped in tabs (metadata, target, basic, media, identifiers, detail, label, shipping, others, custom, supplemental, inventory, reviews).

NameRequiredDescriptionDefault
feedIdYesFeed id from list_feeds

Output Schema

NameRequiredDescription
idYesFeed id
gzipNoWhether the file is served gzipped
nameYesMerchant-facing feed name
typeNoPRIMARY, SUPPLEMENTAL, INVENTORY or REVIEWS
groupNoThe product group this feed belongs to
formatNoXML, TSV, CSV or API
enabledNoFalse when the feed is paused and will not run
fileUrlNoPublic feed URL, null for API feeds
marketIdNoShopify market this feed is bound to, if any
settingsNoStored settings as the merchant saved them
latestRunNoMost recent generation run for this feed
marketplaceNoChannel this feed targets, for example google or meta
attributeRulesNoCurrent mapping rules for all mappable attributes, matching what the feed editor shows
masterDefaultedNoAttributes sent from the store's master field of the same name, because this feed has no rule of its own for them
settingsOptionsNoAllowed values for every enumerated settings field, keyed tab.field, for building an update_feed_settings call
explicitlyMappedNoAttributes with a stored mapping rather than the smart default

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered without the description. The description adds the response shape (tab grouping, per-attribute rules, latest run), which is useful context but largely duplicates what the output schema already provides.

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?

Two sentences, front-loaded with the core purpose before the content enumeration. The long tab list is dense but genuinely descriptive of the response, so it earns its space without padding.

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?

With an output schema present, return values need not be re-explained, and annotations cover the safety profile, so the description is nearly sufficient. The only shortfall is the absence of any routing guidance toward list_feeds or update_feed_settings.

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?

There is a single parameter with 100% schema description coverage ('Feed id from list_feeds'), so the schema carries parameter semantics entirely. The description adds no format, sourcing, or edge-case detail about feedId, making the baseline 3 correct.

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 ('Get one feed's full configuration') and enumerates the payload contents (saved settings, per-attribute rules, file URL, latest run). The singular 'one feed's' implicitly distinguishes it from the sibling list_feeds and from the mutation sibling update_feed_settings.

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

Usage Guidelines3/5

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

Usage is only implied: the schema note 'Feed id from list_feeds' hints that list_feeds is the discovery step, but the description never states when to call this versus list_feeds or update_feed_settings, nor any prerequisites. No exclusions are given.

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

get_mapping_schemaGet the attribute mapping vocabularyA
Read-onlyIdempotent
Inspect

The rule vocabulary for feed attribute mappings: which attributes accept a mapping, the product fields a rule can read (including the store's master fields as master.), the condition operators, the value sources (field, static, combine, lookup, extract, liquid), the limits, and a worked example. A mapping is how ONE update_feed_settings call fixes a field for the entire catalog, including filling values that are missing (condition is_empty plus a fallback value source). Read this before proposing any mappings.attributes change. No arguments.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
shapeNoWhere a rule set is stored and how rule order resolves
fieldsNoProduct fields a rule can read
limitsNoMaximum rules per attribute and conditions per rule
exampleNoA worked mapping to copy the shape from
repeatedNoAttributes that take one entry per line
operatorsNoCondition operators a rule can use
attributesNoEvery attribute that accepts a mapping rule
unmappableNoAttributes that are computed and cannot be mapped
masterFieldsNoThe store's master fields by name, flagged when one is an attribute's store-wide default
optionFieldsNoHow to reference a product's own option names
valueSourcesNoThe value-source kinds and their arguments
masterFieldsNoteNoHow a rule references a master field
structuredSyntaxNoColon syntax for grouped attributes
valuelessOperatorsNoOperators that take no comparison value

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds useful context beyond that: 'No arguments,' the exact shape of the returned vocabulary, and the worked-example coverage. It stops short of noting caching or size characteristics, so it lands just under full marks.

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?

Front-loaded with the purpose and a single dense paragraph with no filler sentences. The mid-sentence enumeration partially duplicates the output schema, but each item helps an agent decide whether this reference is worth fetching.

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 no-argument reference tool with an output schema present, the description conveys everything needed: what to expect back, when to read it, and how it connects to the mapping-writing flow. Nothing an agent needs before calling is missing.

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?

Zero parameters, which is the baseline-4 case. The description's 'No arguments' is a redundant confirmation of what the empty schema already shows, adding no new semantics.

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 resource — the rule vocabulary for feed attribute mappings — and enumerates its exact contents (attributes, product fields, operators, value sources, limits, example). An agent can distinguish this reference tool from the sibling mutation tools like update_feed_settings without opening any schema.

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?

Explicitly instructs 'Read this before proposing any mappings.attributes change,' naming the prerequisite condition. It also explains the relationship to update_feed_settings (one call fixes a field for the whole catalog), so the agent knows when this lookup precedes that write.

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

get_optimization_guideGet the optimization playbookA
Read-onlyIdempotent
Inspect

The app's feed optimization playbook. Without section, lists every section with its summary and current affected count so you can pick where to start. With a section id (issues, titles, descriptions, images, identifiers, categories, price-availability, details, bundles, shipping, campaigns), the full guide: rules, checklist, examples, and which attributes to change. Read the relevant guide BEFORE proposing changes to any feed attribute it covers.

NameRequiredDescriptionDefault
sectionNoOmit for the section overview, or pass one section id for its full playbook

Output Schema

NameRequiredDescription
noteNoPlain-language result or next step, safe to read out to the merchant.
guideNoThe full playbook for the requested section
sectionsNoEvery section with its summary and affected count
issueGroupsNoItem-level issue codes, on the issues section
fieldWideFixNoWhen to prefer one mapping over per-product overrides
accountIssuesNoAccount-level issues, on the issues section
affectedCountNoProducts the requested section currently flags
totalProductsNoProducts in the feed the counts were taken against
countsIssueRowsNoOnly on the issues section: affectedCount counts issue rows, not products. list_section_products and optimize_next count sample products
mappableAttributesNoAttributes in this section that a mapping rule can fix catalog-wide
searchDataAvailableNoFalse when Search Console data has not been synced, so title advice is generic

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds genuinely useful behavior: the overview mode returns per-section summaries and current affected counts, and the detailed mode returns rules, checklist, examples, and target attributes. It stops short of describing any pagination or limits, but for a static reference tool that is minor.

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

Conciseness5/5

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

Three sentences, front-loaded with the two-mode behavior, then the payload contents, then the actionable instruction. No filler.

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?

Given a zero-required single-enum parameter, an existing output schema, and full annotation coverage, the description supplies everything an agent needs: mode selection, payload expectations, and the pre-change reading requirement.

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% and the enum is fully documented, so the baseline is 3. The description goes beyond the schema by explaining the semantic consequence of omitting the parameter versus passing one, which tells the agent how the mode switches. The enumerated section ids largely duplicate the enum, adding little extra.

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 ('the app's feed optimization playbook') and clearly delineates the two operating modes. It is readily distinguishable from siblings like get_feed or optimize_next.

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?

Explicitly tells the agent what omitting the section does ('so you can pick where to start') and gives a hard directive: 'Read the relevant guide BEFORE proposing changes to any feed attribute it covers.' This is a clear when-to-use rule with a sequencing constraint.

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

get_search_queriesGet Google Search Console queriesA
Read-onlyIdempotent
Inspect

Lifetime Google Search Console query data for product pages, from the copy the app imports when the merchant syncs search data. With productId, the queries that product ranks for (clicks, impressions, position) so its title can be aligned to real demand. Without productId, the store's top title/query mismatch opportunities, highest impressions first. Fails with instructions when Search Console isn't connected or synced.

NameRequiredDescriptionDefault
limitNoMaximum rows to return, 1 to 100
feedIdNoCount this feed's title overrides. Defaults to the store's primary feed
productIdNoProduct id from list_products or optimize_next

Output Schema

NameRequiredDescription
noteNoPlain-language result or next step, safe to read out to the merchant.
queriesNoThat product's queries with clicks, impressions and position
productIdNoEchoed back when the call was scoped to one product
topOpportunitiesNoProducts whose highest-impression query has words missing from the title

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare a safe, idempotent, non-destructive read. The description adds genuine context beyond them: the data comes from an imported copy created at merchant sync time, and the tool 'fails with instructions' when Search Console isn't connected. It doesn't cover freshness/staleness or pagination, but the failure path is valuable disclosure.

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

Conciseness5/5

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

Three tight sentences, front-loaded with the data source, then the two branches, then the failure case. Every sentence earns its place with no redundancy.

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 an output schema present, return values needn't be explained, and the description covers both modes, the data origin, and the failure condition. Nothing operationally relevant to invoking this 3-parameter tool is missing.

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 the baseline is 3, but the description meaningfully interprets productId's presence vs absence (product-level ranking queries vs store-wide mismatch opportunities) and clarifies the ordering (highest impressions first). It does not explain the feedId title-override behavior, keeping 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 and resource ('Lifetime Google Search Console query data for product pages') and clearly delineates its two operating modes. An agent can distinguish it from siblings like optimize_next or list_products without opening the 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?

Gives explicit conditions for each mode: supply productId to get the queries a product ranks for, or omit it for store-wide title/query mismatch opportunities. It also states what happens on failure (Search Console not connected/synced). It stops short of naming sibling alternatives or exclusions, 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.

list_feedsList product groups and feedsA
Read-onlyIdempotent
Inspect

List every product group and its feeds (type, format, enabled state, market binding) with each feed's latest generation run. Start here to find feed ids. Each feed carries its market name and locale, so feeds serving different languages are told apart before any text is written to them.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
groupsYesOne entry per product group: groupId, groupName, collectionGids and its feeds, each with its marketName, marketLocale and latestRun

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the bar is lower. The description still adds real value by disclosing the market name/locale distinction so feeds for different languages can be told apart before writing text to them.

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

Conciseness5/5

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

Three sentences, zero filler, and front-loaded with the resource scope before the routing guidance and the locale caveat. Every sentence carries information an agent needs.

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 and annotations cover safety, so return values and permissions need no explanation here. The description supplies the scope, the entry-point role, and the locale nuance, which is everything an agent needs to call a zero-parameter list tool correctly.

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?

The tool takes zero parameters, so per the rubric the baseline is 4. No parameter meaning is needed and the description correctly spends no words on inputs.

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+resource ('List every product group and its feeds') and enumerates the returned fields (type, format, enabled state, market binding, latest generation run). This clearly distinguishes it from get_feed (single feed) and the other list_* siblings.

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?

'Start here to find feed ids' gives explicit entry-point guidance and implies the relationship to get_feed/run_feed which consume those ids. There is no explicit when-not or named alternative, so it falls short of a 5.

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

list_product_issuesList Merchant Center issuesA
Read-onlyIdempotent
Inspect

Google Merchant Center issues for this store, as of the app's last nightly sync: one row per issue code with severity, affected product counts, sample products and the destinations it applies to. Account-level issues are included. Covers the whole account (file feeds and the native channel too). Call this FIRST when the merchant asks why products are disapproved or wants to fix issues. Then inspect specific products with preview_product and fix via set_product_override or update_feed_settings.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
noteNoPlain-language result or next step, safe to read out to the merchant.
itemIssuesNoOne row per issue code with severity, product count and up to 10 sample products
refreshedAtNoWhen the app last synced issues from Merchant Center, null if never
accountIssuesNoIssues affecting the whole Merchant Center account

TDQS

A4.8/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnly, idempotent, non-destructive), and the description adds traits the annotations cannot express: data freshness ('as of the app's last nightly sync') and aggregation granularity ('one row per issue code', account-level issues included). The staleness caveat materially changes how an agent should qualify its answer.

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?

Three tight sentences, front-loaded with the scoping constraint and the first-call instruction. The middle sentence enumerates return fields (severity, counts, sample products, destinations) that the output schema already carries, which is mildly redundant, but it supports the routing decision.

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 no explanation, and the description still supplies the sync-freshness caveat, the account-level coverage, and a complete follow-up workflow. Nothing an agent needs to call and act on this tool is missing.

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?

The tool takes zero parameters, so there is nothing to disambiguate and the baseline is 4. The description correctly implies whole-account scope rather than suggesting unimplemented filters.

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 ('Google Merchant Center issues for this store') plus exact output granularity ('one row per issue code with severity, affected product counts, sample products and destinations'). It also scopes coverage explicitly (account-level issues, file feeds and native channel), which distinguishes it from list_products, list_feeds, and get_feed.

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?

Gives an explicit entry condition ('Call this FIRST when the merchant asks why products are disapproved or wants to fix issues') and names the downstream alternatives with sequencing: preview_product to inspect, set_product_override or update_feed_settings to fix. An agent knows both when to pick this tool and what to do next.

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

list_productsList feed productsA
Read-onlyIdempotent
Inspect

List products a feed covers, paginated, with per-product include/exclude state, attribute overrides (merged, plus storeOverrides and feedOverrides apart), stock, tags, the first variants' SKU, barcode, price and weight, and (API feeds) Google item status. filter: all | excluded | customized.

NameRequiredDescriptionDefault
pageNo1-based page number, default 1
feedIdYesPrimary or supplemental feed id, from list_feeds
filterNoall (default), excluded (left out of the feed), or customized (has overrides)
searchNoMatches title, handle, vendor, SKU, or barcode
pageSizeNoRows per page, 1 to 50, default 25

Output Schema

NameRequiredDescription
pageNoThe page number returned
rowsNoThe page of products, each with its overrides, stock, tags and first variants
totalNoTotal products matching the filter across all pages
boundedNoTrue when the feed's group limits it to chosen collections
pageSizeNoRows per page used for this result
isApiFeedNoTrue when rows carry Google item status from Merchant API pushes
groupErrorNoTrue when none of the group's collections have synced yet, so the list is empty
totalPagesNoTotal number of pages available

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered; the description adds value beyond that by disclosing pagination and the exact return shape (include/exclude state, merged vs. separate storeOverrides/feedOverrides, stock, tags, variant SKU/barcode/price/weight, API-feed Google status). It does not cover default page size behavior or limits, but with annotations present this is solid context.

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?

Front-loads the core action ('List products a feed covers, paginated') and every clause thereafter enumerates a distinct returned field or the filter options, so little is wasted. The single run-on sentence plus trailing fragment is dense but not padded.

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?

With an output schema present the return format needn't be explained, yet the description still describes it, and annotations plus full parameter documentation leave no operational gaps. The only shortfall is the absence of sibling-routing guidance for a large sibling set.

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 coverage is 100%, so all five parameters are already documented in the schema. The description only restates the filter enum values (all | excluded | customized) and adds no format or semantic detail beyond that, so the baseline 3 applies.

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 (List) and resource (products a feed covers) and enumerates exactly which fields are returned, so an agent can distinguish it from siblings like list_section_products or list_product_issues. The scope is unambiguous without opening the schema.

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

Usage Guidelines3/5

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

Usage is implied via 'products a feed covers' and the filter enum, but there is no explicit when-to-use guidance or routing against alternatives such as list_section_products or get_feed. The filter hint duplicates what the schema already states rather than adding selection logic.

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

list_section_productsList the products a section flagsA
Read-onlyIdempotent
Inspect

A page of the products one optimization section flags (up to 50), each with the machine reason it was flagged. No per-product enrichment, so it is cheap to scan a whole field at once. Use this BEFORE optimize_next on any catalog big enough that fixing products one by one is not realistic: read a page, find the cause the products share, and fix the field once with update_feed_settings. On the issues section the rows are the sample products Google named, worst issue first. list_product_issues gives each code's full count and documentation. Paginate with nextCursor.

NameRequiredDescriptionDefault
limitNoProducts per page, 1 to 50
cursorNonextCursor from the previous call
feedIdNoDefaults to the store's primary feed
sectionYesWhich optimization section to list

Output Schema

NameRequiredDescription
noteNoPlain-language result or next step, safe to read out to the merchant.
feedIdNoThe feed the list was computed against
sectionNoThe section listed
productsNoThe page of flagged products, each with its reason
attributesNoThe feed attributes this section covers
nextCursorNoPass back to get the next page, null at the end
affectedCountNoProducts this section flags in total
totalProductsNoProducts in the feed
mappedAttributesNoSection attributes this feed already maps, so some listed products may already be filled
suggestedActionsNoKeyed by reason: how products flagged for it can be fixed (override, mapping, exclude, edit_in_shopify) and with which tool

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive). The description adds real behavioral context beyond them: no per-product enrichment and therefore cheap whole-field scanning, page cap of 50, worst-issue-first ordering on the issues section, and cursor-based pagination. It stops short of describing the reason field's format or failure modes, so not a 5.

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

Conciseness5/5

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

Front-loaded with what the tool returns, then when to use it, then section-specific behavior and pagination. Four sentences, each carrying distinct information; no restatement of the title or schema.

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 shapes need not be re-explained. Given the 4-param, enum-driven tool, the description covers purpose, selection criteria, workflow, sibling alternatives, ordering, and pagination — everything an agent needs to call it correctly.

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 baseline is 3. The description still adds meaning: 'up to 50' reinforces the limit cap, 'Paginate with nextCursor' ties cursor to the response field, and it explains that section='issues' yields Google's named sample rows ordered worst-first — section-dependent behavior the enum alone does not convey.

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+resource (list a page of products flagged by one optimization section) and scopes it precisely: up to 50, with the machine reason, no enrichment. It explicitly distinguishes itself from siblings list_product_issues (counts/docs per code) and optimize_next (one-by-one fixing), so an agent can route without opening schemas.

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?

Gives an explicit when-to-use ('BEFORE optimize_next on any catalog big enough that fixing products one by one is not realistic'), a three-step workflow (read a page, find the shared cause, fix once with update_feed_settings), and names the sibling that covers the alternative need (list_product_issues). Nothing is left to inference.

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

optimize_nextGet the next product to optimizeA
Read-onlyIdempotent
Inspect

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.

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

Output Schema

NameRequiredDescription
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

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.

preview_productPreview a product's feed outputA
Read-onlyIdempotent
Inspect

Run the real feed mapping pipeline for ONE product and return the exact items Google would receive, including overrides and market prices. Use after edits to verify the output.

NameRequiredDescriptionDefault
pageNoVariant page, 10 items per page, default 1
feedIdYesPrimary or supplemental feed id, from list_feeds
productIdYesProduct id from list_products

Output Schema

NameRequiredDescription
noteNoPlain-language result or next step, safe to read out to the merchant.
pageNoVariant page returned
itemsNoThe exact feed rows this product produces
errorsNoMapping errors hit while building the rows
inGroupNoFalse when the product sits outside this feed's product group, so the feed never carries it
productNoThe product being previewed
excludedNoVariants the feed leaves out, counted by reason (missing_image, out_of_stock, ...)
itemMetaNoVariant and product behind each row, in the same order
pageSizeNoRows per page
totalItemsNoRows the product produces across all pages

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real behavior beyond that: this executes the actual production mapping pipeline (not a mock) and the output includes overrides and market prices, which is meaningful context an agent could not infer from the annotations.

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

Conciseness5/5

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

Two tight sentences with zero filler; the high-value scope and return-content information is front-loaded before the usage hint.

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?

An output schema exists, so return values needn't be enumerated, and the description still characterizes the payload (exact Google items, overrides, market prices). The only minor gap is variant pagination behavior, which the schema already covers via the page parameter.

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% – feedId, productId, and page are all documented in the schema, including pagination size and defaults. The description adds no additional parameter meaning, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb+resource: it runs the real feed mapping pipeline for one product and returns the exact items Google would receive. The emphasis on 'ONE product' implicitly separates it from the feed-wide run_feed sibling, but it never names an alternative, leaving the differentiation to inference.

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 a clear situational trigger: 'Use after edits to verify the output.' That tells the agent when to reach for it, but there is no explicit when-not guidance and no named alternative (e.g., use run_feed for a full-feed validation).

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

run_feedRegenerate a feed nowA
Idempotent
Inspect

Queue a full regeneration of one feed now. Cheap and idempotent (no confirm needed) but unnecessary after update_feed_settings or override changes, which queue a run automatically.

NameRequiredDescriptionDefault
feedIdYesFeed id from list_feeds. The feed must be enabled.

Output Schema

NameRequiredDescription
noteNoPlain-language result or next step, safe to read out to the merchant.
queuedNoTrue when a regeneration run was queued

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true and destructiveHint=false, so 'idempotent' partly restates structured data. The description nonetheless adds genuinely new behavioral context: it is cheap enough that no user confirmation is required, and it duplicates work that other tools trigger implicitly. It does not mention the 'feed must be enabled' precondition, though the schema covers that.

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

Conciseness5/5

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

Two tight sentences with no filler; the action is front-loaded and the caveat about automatic runs follows immediately so the agent reads it before invoking. No restructuring would improve it.

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 single-parameter, idempotent trigger tool with an output schema and full annotation coverage, the description supplies everything missing from structured data: cost, lack of confirmation, and its redundancy relative to sibling mutations. Nothing an agent needs to invoke it correctly is absent.

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?

Only one parameter (feedId) with 100% schema description coverage, including its source (list_feeds) and a precondition (must be enabled). The description adds nothing beyond the schema, which is the expected baseline when the schema does the work.

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 ('Queue a full regeneration of one feed') plus timing ('now'), which cleanly separates it from read-oriented siblings like get_feed and list_feeds. It also distinguishes itself from update_feed_settings and the override tools by framing itself as the manual trigger for the same run.

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?

Explicitly tells the agent when NOT to call it ('unnecessary after update_feed_settings or override changes, which queue a run automatically') and names the sibling tools responsible for that overlap. This is exactly the routing information an agent needs to avoid redundant runs.

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

set_product_overrideOverride one product's attributesA
DestructiveIdempotent
Inspect

Set one product's attribute overrides and/or include state, for every feed (omit feedId) or for one feed. Overrides replace mapped attribute values on every item of the product, and a feed's own override wins over the store-wide one per attribute. An empty string sends nothing for that attribute, and omitting one the product already has returns it to its mapped value. The map you send REPLACES the product's whole override map, so send every attribute you want kept. The preview lists the ones it would drop under removes, and current shows what is stored today. This tool previews by default: called without confirm, it returns the proposed change and applies NOTHING. Show the merchant the proposal, then call again with confirm: true to apply.

NameRequiredDescriptionDefault
feedIdNoFeed id from list_feeds. Omit to write the override every feed inherits.
confirmNoOmit or false to preview. True applies the change.
includedNoInclude this product. Omit to keep its current state.
overridesNoFull replacement override map for this product (max 50 attributes). Include every attribute that should stay, since anything left out goes back to its mapped value.
productIdYesProduct id from list_products

Output Schema

NameRequiredDescription
feedNoThe feed's id and name, on a feed-scoped call
noteNoPlain-language result or next step, safe to read out to the merchant.
scopeNoWhich override layer the call addressed: one feed's row, or the row every feed inherits
errorsNoReasons the save was refused
appliedNoTrue when the change was saved
currentNoThe row this call replaces, as stored before the call
previewNoTrue when this call only proposed the change
productNoThe product's id and title
removesNoAttributes overridden today that this call drops, because the map replaces the stored one
settingNoThe saved override row, on the confirm call
proposedNoOverrides this call would store, or stored
effectiveNoWhat the feed emits today after merging the store-wide and feed rows, when they differ
overriddenByNoOn a store-wide call, the feeds holding their own row for this product. Their values win over this write.
validationErrorsNoProblems that must be fixed before confirming

TDQS

A4.6/5.0
Behavior5/5

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

Adds substantial context beyond the annotations: the sent map REPLACES the entire override map (send every attribute you want kept), empty string sends nothing, omitting an existing attribute reverts it to mapped value, and a feed-level override wins over the store-wide one per attribute. It also discloses the preview-by-default safety behavior, which is not expressible via the destructiveHint/idempotentHint annotations alone.

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?

Scoping is front-loaded and every sentence carries operational weight, with the confirm workflow placed last as the closing action. It is dense but slightly long; the destructive replacement warning is repeated in spirit across two clauses.

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 an output schema present, the description need not detail return values, yet it still tells the agent what the preview contains ('removes' and 'current'). Combined with the replacement, precedence, and confirm semantics, an agent has everything needed to call this correctly.

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 description coverage is 100%, so the baseline is 3, but the description adds genuinely new semantics: empty-string behavior, the per-attribute feed-vs-store precedence rule, and the fact that omitted attributes revert rather than persist. These are not spelled out in the schema.

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 ('Set one product's attribute overrides and/or include state') and immediately scopes it by feed ('for every feed (omit feedId) or for one feed'). The singular 'one product' framing cleanly distinguishes it from the plural sibling set_product_overrides and set_products_included.

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 operational workflow: previews by default, show the merchant the proposal, then re-call with confirm:true. It does not, however, name sibling alternatives (e.g. bulk set_product_overrides) or state when to prefer this tool over them, so routing relies on inference from 'one product'.

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

set_product_overridesOverride attributes on many productsA
DestructiveIdempotent
Inspect

Set DIFFERENT attribute overrides on many products in one call (up to 200). This is the tool for a real title pass: get_search_queries gives each product its own top query and the words missing from its title, so every product needs a different string and no feed mapping can express that. Omit feedId to write once for every feed, which is the default for a title pass. Name a feed only when that feed needs its own values (another language, say). Each entry's overrides REPLACE that product's override map on the chosen layer, exactly like set_product_override, so send every attribute that should stay. The preview lists the ones each entry would drop under removes. An omitted included keeps that product's current include state. Unknown product ids are skipped and reported, not fatal. This tool previews by default: called without confirm, it returns the proposed change and applies NOTHING. Show the merchant the proposal, then call again with confirm: true to apply. One regeneration is queued for the whole batch.

NameRequiredDescriptionDefault
feedIdNoFeed id from list_feeds. Omit to write the overrides every feed inherits.
confirmNoOmit or false to preview the whole batch. True applies it.
productsYesOne entry per product, up to 200 per call

Output Schema

NameRequiredDescription
noteNoPlain-language result or next step, safe to read out to the merchant.
countNoEntries in the previewed batch
scopeNoWhich override layer the call addressed: one feed's row, or the row every feed inherits
errorsNoReasons the save was refused
feedIdNoThe feed the batch was written against, on a feed-scoped call
appliedNoTrue when the change was saved
changesNoPer-product before and after, for the merchant to approve
previewNoTrue when this call only proposed the change
appliedCountNoProducts actually written on the confirm call
removesCountNoProducts whose entry drops overrides they hold today (each change lists them under removes)
outrankedCountNoProducts in a store-wide batch whose own feed row wins over this write
validationErrorsNoProblems that must be fixed before confirming
unknownProductIdsNoIds in the preview that match no product
skippedUnknownProductIdsNoIds skipped during the write because they match no product

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true and readOnlyHint=false, but the description goes much further: replacement semantics for the override map, the requirement to resend every attribute that should stay, the removes list in the preview, unknown ids skipped and reported without failing, and a preview-by-default workflow that applies nothing without confirm. It also discloses the batch regeneration side effect. Nothing here contradicts the annotations.

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 but front-loaded: the batch scope, the title-pass use case, and feedId guidance come before the mechanics. Every sentence carries information, though the paragraph is longer than strictly necessary and could be split for scanability.

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 internals need not be described here. The description still covers the mutation contract, preview/confirm flow, batch limits, and non-fatal error handling, which is everything an agent needs to call this destructive, batch-scoped write safely.

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 the baseline is 3, but the description adds real meaning: feedId omission writes the feed every feed inherits, confirm gates preview vs apply, and an omitted included preserves current state. This clarifies intent beyond the schema text, though the per-attribute specifics remain in the schema.

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, resource, batch scope (up to 200), and the key qualifier 'DIFFERENT' overrides, which separates it from the singular sibling set_product_override. An agent can identify it without opening the schema.

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?

Explicitly says this is 'the tool for a real title pass', explains why a feed mapping cannot substitute (each product needs a different string), and gives a clear rule for feedId: omit by default, name a feed only when that feed needs its own values. This is when-to-use, when-not, and alternative routing in one place.

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

set_products_includedInclude or exclude products in bulkA
DestructiveIdempotent
Inspect

Bulk include or exclude products (max 1000 ids per call), from every feed (omit feedId) or from one feed. A store-wide exclusion holds in every feed until it is lifted store-wide. This tool previews by default: called without confirm, it returns the proposed change and applies NOTHING. Show the merchant the proposal, then call again with confirm: true to apply.

NameRequiredDescriptionDefault
feedIdNoFeed id from list_feeds. Omit to include or exclude across every feed.
confirmNoOmit or false to preview the count. True applies the change.
includedYesTrue includes the products, false excludes them
productIdsYesProduct ids from list_products, up to 1000 per call

Output Schema

NameRequiredDescription
feedNoThe feed's id and name, on a feed-scoped call
noteNoPlain-language result or next step, safe to read out to the merchant.
scopeNoWhich override layer the call addressed: one feed's row, or the row every feed inherits
errorsNoReasons the save was refused
appliedNoTrue when the change was saved
previewNoTrue when this call only proposed the change
includedNoThe include state being set
matchedCountNoHow many of the supplied ids exist on this store
productCountNoIds supplied, or products written on confirm
validationErrorsNoProblems that must be fixed before confirming
stillExcludedProductIdsNoProducts the other layer still excludes. Inclusion is ANDed across layers, so this call cannot re-include them.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations declare destructive/idempotent/openWorld, but the description adds the traits that actually matter to an agent: preview-by-default (applies NOTHING without confirm), the 1000-id ceiling, and that a store-wide exclusion persists in every feed until lifted store-wide. That is richer behavioral context than the annotations supply and does not contradict them.

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

Conciseness5/5

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

Three sentences, zero padding, front-loaded with the core action and limits before the preview-vs-apply workflow. Every clause carries operational meaning.

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 an output schema present, the description need not explain return values, and it covers the remaining gaps an agent needs: batching limit, feed scoping, preview safety, and store-wide exclusion persistence. Nothing required to call this destructive tool safely is missing.

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 the baseline is 3; the description earns above that by explaining the consequence of omitting feedId (applies to every feed) and the persistence semantics of an exclusion set without a feedId. The confirm preview/apply mechanic is largely restated from the schema, so it is not a full 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 pair (include/exclude) on a specific resource (products), plus scope (bulk, max 1000 ids, one feed or all feeds). An agent can place this against set_product_override/set_product_overrides without opening any 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?

Gives explicit operational guidance: omit feedId for store-wide, provide it for a single feed, and call once without confirm to preview then again with confirm to apply. It does not name the sibling override tools or state when to prefer one over this, so it stops short of full alternative routing.

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

update_feed_settingsUpdate feed settingsA
DestructiveIdempotent
Inspect

Update a feed's attribute settings. Pass a PARTIAL settings object mirroring the tab shape from get_feed. Only the keys you send change. mappings.attributes merges per attribute, so you can fix one field per call without resending the others. Pass null for an attribute to drop its mapping and return it to the smart default. A mapping written here applies to this feed only and wins over the store's shared rule for that attribute. The merchant edits shared rules in the app. Call get_mapping_schema before writing a mapping. This tool previews by default: called without confirm, it returns the proposed change and applies NOTHING. Show the merchant the proposal, then call again with confirm: true to apply. Changes reach Google on the next generation run (queued automatically on save).

NameRequiredDescriptionDefault
feedIdYesFeed id from list_feeds
confirmNoOmit or false to preview. True applies the change.
revisionNoThe revision returned by the preview call. Pass it back on confirm so the write is refused if the merchant changed the feed in between.
settingsYesPartial settings, e.g. { basic: { titleTemplate: "..." } }

Output Schema

NameRequiredDescription
noteNoPlain-language result or next step, safe to read out to the merchant.
errorsNoReasons the save was refused
appliedNoTrue when the change was saved
changedNoFalse when the proposal matches the current settings
changesNoOne entry per setting this call would change or changed
previewNoTrue when this call only proposed the change
revisionNoPass this back on the confirm call so a concurrent merchant edit is not overwritten
validationErrorsNoProblems that must be fixed before confirming

TDQS

A4.8/5.0
Behavior5/5

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

Adds substantial behavior beyond the annotations: preview-by-default with nothing applied, merge-per-attribute semantics so one field can be fixed per call, precedence over the store's shared rule, conflict protection via the revision token, and the fact that changes only reach Google on the next generation run. The destructiveHint=true annotation is reconciled by the preview gate, not contradicted.

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?

Front-loaded with purpose and ordered sensibly from payload shape to merge semantics to the preview/confirm gate. It is on the long side, and the preview behavior is restated in both the description and the confirm parameter's schema text, which is mild redundancy for a safety-critical point.

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 nested-object mutation tool with an output schema present, the description covers everything an agent needs: payload shape, merge/drop semantics, scoping and precedence, the two-phase confirm flow, the revision guard, and downstream propagation timing. No return-format explanation is needed.

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%, so the schema itself documents confirm and revision. The description still adds meaning the schema does not carry: that a null attribute value drops the mapping and reverts it to the smart default, and that mappings are feed-scoped and outrank shared rules. That is real added value above the 3 baseline.

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?

Opens with a specific verb and resource ('Update a feed's attribute settings') and immediately characterizes the payload shape ('PARTIAL settings object mirroring the tab shape from get_feed'). It is clearly distinguishable from siblings like get_feed, list_feeds, and the set_product_override family.

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?

Gives an explicit ordered workflow (preview first, show merchant, then call again with confirm: true) plus two named prerequisites: call get_mapping_schema before writing a mapping, and fetch the tab shape from get_feed. It also states the exact condition for dropping a mapping (pass null).

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 15 tool updates
    • First observedget_feed
    • First observedget_mapping_schema
    • First observedget_optimization_guide
    • First observedget_search_queries
    • First observedlist_feeds
    • First observedlist_product_issues
    • First observedlist_products
    • First observedlist_section_products
    • First observedoptimize_next
    • First observedpreview_product
    • First observedrun_feed
    • First observedset_product_override
    • First observedset_product_overrides
    • First observedset_products_included
    • First observedupdate_feed_settings

Publisher details

Operator
Digital Darts · Publisher source
Operator website
https://feedshine.app
Vendor relationship
First-party
Trust center
Not available
Restrictions
Requires a Shopify store with the FeedShine app installed on a paid plan. Each connection is approved in the app with a single-use connect code that expires after 10 minutes. No regional limits.

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources