Agent Central
Server Details
Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.
- Status
- Healthy
- Uptime
- 13.1% over 59 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- agentcentral-to/agent-central-mcp
- GitHub Stars
- 6
- Server Listing
- agentcentral
TDQS
Scored across 97 tools
The set contains many read tools with overlapping data domains—multiple sales (get_sales_summary, get_sales_velocity, get_sales_and_traffic, get_todays_sales), inventory (get_fba_inventory, get_inventory_health, get_inventory_risk_triage, get_days_of_cover), ads entity (get_sp_entities_live, get_sponsored_ads_entities_live), and listing (get_listing_registry, get_product_details, get_listing_quality) tools. Descriptions explicitly delineate scope and include 'Do not use' guidance, which helps, but near-duplicates still create meaningful misselection risk.
Almost all tools use snake_case with a get_ prefix, yielding a predictable verb_noun pattern across the vast majority of the surface. Only a few outliers (diagnose_performance, refresh_listing_offer_observations, submit_conversation_feedback) deviate from the predominant get_ convention.
With 97 tools, the count is far beyond the typical well-scoped range of 3-15 and represents an extreme mismatch for a single MCP server. Even accounting for broad Amazon seller/advertising coverage, the volume imposes a heavy selection burden and suggests poor scoping.
The read surface is very broad, covering ads (SP, SB, SD, DSP), inventory (FBA, AWD, FC-level, movements, health), sales, orders, financials, listings, brand analytics, and more. However, most write/CRUD lifecycle operations—campaign creation/updates, inbound plan creation, listing edits—are referenced in descriptions but not exposed as tools, leaving notable gaps for a platform called 'Agent Central'.
Available Tools
97 toolsdiagnose_performancePerformance diagnosisARead-onlyInspect
Use when sponsored ads performance changed and you need retained-report root-cause comparison between two periods. Defaults to Sponsored Products and can also diagnose Sponsored Brands or Sponsored Display. Compares product-appropriate campaign, ad, search-term, targeting, or advertised-product dimensions. Do not use for live entity state or write readback.
| Name | Required | Description | Default |
|---|---|---|---|
| ad_product | No | Sponsored ad product to diagnose: SP, SB, or SD. Defaults to SP for backwards compatibility. | SP |
| profile_id | No | Filter by profile ID | |
| compare_end | Yes | Comparison period end date (YYYY-MM-DD) | |
| current_end | Yes | Current period end date (YYYY-MM-DD) | |
| focus_metric | No | Metric to focus root cause analysis on | acos |
| campaign_name | No | Filter by campaign name (LIKE match) | |
| compare_start | Yes | Comparison period start date (YYYY-MM-DD) | |
| current_start | Yes | Current period start date (YYYY-MM-DD) | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds genuinely useful context beyond that: results derive from retained reports rather than live state, dimensions compared vary by ad product, and the excluded live-entity use case is called out. It does not detail data-freshness lag or result shape, but the output schema covers returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: the trigger and purpose first, the ad-product scope second, the exclusions last. No filler, and the most decision-relevant information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a ten-parameter diagnostic tool with an output schema, the description covers purpose, scope, and exclusions adequately, and the schema carries parameter detail. It could be slightly more complete about what the comparison returns or how the two periods are expected to relate, but nothing essential to correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all ten parameters including the ad_product and focus_metric enums. The description only loosely reinforces this via "defaults to Sponsored Products" and "product-appropriate dimensions," adding little syntax or format detail beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource — root-cause comparison between two periods for sponsored ads performance changes — and scopes it to retained reports. It clearly separates this diagnostic tool from the many read-out siblings like get_campaign_performance, get_sb_campaign_performance, and get_sd_campaign_performance by framing it as comparison/diagnosis rather than reporting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit trigger ("Use when sponsored ads performance changed") and an explicit exclusion ("Do not use for live entity state or write readback"), which is strong when/when-not guidance. It stops short of naming the specific sibling tool to use for live entity state, so it falls just under the 5 bar of naming alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_data_tourAccount data tourARead-onlyInspect
Returns a first-run account data tour: trust preflight, account pulse, best-seller spotlight, top movers, and neutral cross-domain signals with source-table evidence. For ads-enabled keys it ends with an optional first write: search terms that spent without converting, with a guarded preview-first negative-keyword create the user can confirm. This is a data/evidence tool, not a recommendation engine.
| Name | Required | Description | Default |
|---|---|---|---|
| detail_level | No | Text detail for cross-domain signals. summary keeps a compact preview; expanded shows more signal bullets while still bounded. | summary |
| evidence_limit | No | Maximum evidence rows per section. Defaults to 5. | |
| spotlight_count | No | Number of spotlight products to include. Defaults to 3. | |
| date_window_days | No | Number of days in the current and comparison windows. Defaults to 30. | |
| first_write_min_spend | No | Minimum dollar spend a search term must clear in the window before the tour offers to block it as a first write. A per-term dollars-spent floor keeps the optional write to meaningful waste only. Defaults to 10. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does disclose a lot beyond the annotations: section-by-section contents, evidence sourcing, the ads-enabled conditional branch, and a 'guarded preview-first' flow requiring user confirmation. But it explicitly says the tour 'ends with an optional first write ... negative-keyword create,' while the annotations declare readOnlyHint=true and destructiveHint=false; an agent cannot tell whether this call mutates anything, which is exactly the ambiguity annotations are supposed to resolve.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the return payload, then the conditional write, then the positioning disclaimer. The first sentence is dense with a five-item list but every clause carries distinct information; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-section read tool with an output schema and read-only annotations, the description covers contents, evidence basis, and the ads-enabled branch well. The one gap is the write/confirm flow, which is described in the result but left unclarified as to whether this invocation performs it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and every parameter (detail_level, evidence_limit, spotlight_count, date_window_days, first_write_min_spend) is documented in the schema with defaults and rationale. The description adds only indirect color ('source-table evidence' hinting at evidence_limit, the spend-without-converting framing behind first_write_min_spend), so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource and enumerates exactly what the tour contains (trust preflight, account pulse, best-seller spotlight, top movers, cross-domain signals with source-table evidence). It also draws an explicit boundary against a whole class of siblings: 'This is a data/evidence tool, not a recommendation engine,' which separates it from get_bid_recommendations, get_budget_recommendations, and get_brand_health.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'first-run account data tour' establishes the context in which the tool is appropriate, and the ads-key clause states a conditional behavior. However, no alternative or sibling is named as the thing to use instead when this is the wrong choice, so the routing guidance stops short of the top bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_infoAccount infoARead-onlyInspect
Returns the authenticated API key's dashboard display name and safe prefix, account access status, marketplace scope, historical exposure cap, connection status, source-level data coverage dates, effective tool availability, and next-step guidance. api_key.permissions contains special capabilities, not the key's general read/write scope; use tools and tool_scope_by_domain for effective access. Call this when the user asks which key or marketplace you are using, whether account access is active, whether you have write access, what date range is available, or to verify setup before answering data questions. Use view=data_map when a question spans domains or the factual route is unclear.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | summary | |
| limit | No | ||
| domain | No | ||
| offset | No | ||
| tool_names | No | ||
| entity_type | No | ||
| metric_family | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it read-only, non-destructive, and closed-world, so safety is covered. The description adds real behavioral context beyond that: the caveat that api_key.permissions lists special capabilities rather than general read/write scope, plus what the payload contains. It stops short of describing pagination or output shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loaded on the return payload before moving to usage and routing. Every sentence carries information, though the long field enumeration makes it heavier than it needs to be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameter descriptions, the description carries the disclosure burden and does cover return contents, read-only semantics, and when to reach for it. The missing coverage of six input parameters is the one real hole.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for 7 parameters. The description explains only the view enum (summary vs data_map) and leaves limit, offset, domain, tool_names, entity_type, and metric_family entirely undocumented in both schema and prose. It adds real meaning for one dispatch parameter but does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (get_account_info) and then enumerates the concrete return payload: display name, safe prefix, access status, marketplace scope, exposure cap, connection status, coverage dates, and tool availability. An agent can distinguish this account-level introspection tool from the dozens of sibling get_* data tools 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit triggers (user asks which key/marketplace, whether access is active, whether write access exists, what date range is available, or verifying setup before answering data questions) and routes the cross-domain case to view=data_map. It also draws a boundary against tools/tool_scope_by_domain for effective access.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_action_historyAction historyARead-onlyInspect
Return the tenant-wide audit log of changes agentcentral made (bids, budgets, keywords, negatives, targets, states, listings, and other writes), newest first. This is the reliable record of what the agent changed and when, including for reconstructing what changed around a performance shift; Amazon's own change history (get_ads_change_history) does not include API/agentcentral changes. Requires the active API key to include agent_actions:read; if allowed, returns actions submitted by all keys in this tenant, not just the caller key.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | No | Optional ASIN filter for historical audit rows that populated asin. | |
| limit | No | Maximum rows to return, newest first (1-500, default 100). | |
| domain | No | Optional write domain filter. Currently audited write actions are in ads, catalog, and fulfillment. | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| target | No | Optional substring match against the audit target field, such as campaign:123, keyword:456, or listing:SKU:price. | |
| end_date | No | Optional YYYY-MM-DD upper bound for action timestamp. Defaults to today. | |
| tool_used | No | Optional exact MCP write tool name filter. | |
| profile_id | No | Optional Amazon Ads/Seller profile ID filter. | |
| start_date | No | Optional YYYY-MM-DD lower bound for action timestamp. Defaults to 30 days ago. | |
| action_type | No | Optional exact audit action type filter. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/destructive annotations, it discloses the required permission scope (agent_actions:read), the surprising tenant-wide visibility (returns actions from all keys in the tenant, not just the caller), the newest-first ordering, and the audited write classes. This is exactly the kind of cross-cutting behavior an agent cannot infer from annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, then the differentiating value, then the auth/scope caveat. It is denser than strictly necessary — the annotation of audited write types could be trimmed — but every clause carries distinct information and no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema is present so return values need no explanation; the description still covers the safety profile, required permission, cross-key scope, ordering, and pagination hint. For a 10-parameter, zero-required audit tool, nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each of the 10 parameters is already documented (ranges, defaults, filter semantics, pagination via next_offset). The description adds no syntax or format detail beyond that, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Return the tenant-wide audit log of changes agentcentral made') plus the exact write categories audited (bids, budgets, keywords, negatives, targets, states, listings). It also explicitly distinguishes itself from the sibling get_ads_change_history, so an agent can tell the two apart without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the concrete use case ('reconstructing what changed around a performance shift') and routes away from the alternative by explaining that Amazon's own change history (get_ads_change_history) omits API/agentcentral changes. The condition selecting this tool over the sibling is explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ad_eligibilityAd eligibilityARead-onlyInspect
Check product eligibility for selected ad types. Defaults to Sponsored Products, Brands, and Display, and can optionally include DSP. Returns overall status and any eligibility warnings or ineligibility reasons for each ASIN/SKU.
| Name | Required | Description | Default |
|---|---|---|---|
| asins | Yes | ASINs to check eligibility for | |
| ad_types | No | Optional ad types to check. Defaults to SP, SB, and SD. | |
| profile_id | No | Numeric Amazon Ads profile ID. Optional when this API key has exactly one enabled Ads profile; agentcentral will default it. Call get_account_info for amazon_ads.enabled_profile_ids. Do not use the marketplace ID, tenant ID, or API key prefix. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, destructiveHint=false, and openWorldHint=true. The description adds value by disclosing the default ad-type set and the shape of the result (overall status plus warnings/ineligibility reasons per ASIN/SKU), which goes beyond the safety profile covered by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core purpose and then the default behavior and return shape. It is efficient with essentially no wasted words, though it could be marginally tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a 100%-covered schema, an output schema, and annotations carrying the safety profile, the description supplies enough context to invoke the tool correctly. Only the absence of explicit sibling routing keeps it short of fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (including the carefully documented profile_id) are already explained in the schema. The description restates the ad-type default but adds no new format or constraint detail, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ("Check") and resource ("product eligibility for selected ad types"), making the tool's function immediately clear. It is distinguishable from the nearby sibling get_fba_eligibility by scoping to advertising eligibility, though it never explicitly names or contrasts a sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains the default behavior (SP, SB, SD, optionally DSP), which implies when the tool applies, but gives no explicit when-to-use vs when-not guidance or alternative tools (e.g., for FBA eligibility or listing restrictions). Usage is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_adgroup_performanceAd group performanceARead-onlyInspect
Use to drill Sponsored Products performance from campaign to ad group: spend, sales, ACOS, ROAS, CTR, CPC, CVR. Grain: campaign + ad group; recent ~3 days may be incomplete. Do not use for bidded keyword/target or customer search-term analysis; use get_keyword_performance or get_search_terms.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by | spend |
| end_date | No | Optional. YYYY-MM-DD. Defaults to today if omitted. | |
| profile_id | No | Filter by profile ID | |
| sort_order | No | Sort order | desc |
| start_date | No | Optional. YYYY-MM-DD. Defaults to 30 days ago if omitted. | |
| ad_group_name | No | Filter by ad group name (LIKE match) | |
| campaign_name | No | Filter by campaign name (LIKE match, use % for wildcards) | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false, so safety is covered. The description adds the aggregation grain (campaign + ad group) and a data-freshness caveat ('recent ~3 days may be incomplete') that the annotations do not convey. It stops short of describing result behavior, but that is partly covered by the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the use case, then exclusions. No filler, no restatement of the tool name, and the freshness caveat is placed adjacent to the grain it qualifies.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no explanation, and the description still covers scope, grain, freshness, and routing. For an 11-param read-only reporting tool, nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across all 11 parameters, so pagination, date patterns, sort enums, and filter semantics are already documented. The description adds no parameter-level detail beyond echoing the metric list that maps to sort_by. Baseline 3 is appropriate when the schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('drill') plus resource ('Sponsored Products performance ... from campaign to ad group') with the exact metric set (spend, sales, ACOS, ROAS, CTR, CPC, CVR) and grain. An agent can distinguish it from get_campaign_performance (coarser) and the keyword/search-term tools 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit exclusions with named alternatives: 'Do not use for bidded keyword/target or customer search-term analysis; use get_keyword_performance or get_search_terms.' Combined with the stated grain, the agent knows both when to reach for this tool and when to route elsewhere.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ads_change_historyAds change historyARead-onlyInspect
Returns Amazon's console change-history events for Sponsored Products and Sponsored Brands (the Seller Central History tab, last 90 days). IMPORTANT: changes made through the API, including every change agentcentral makes, do NOT appear here, so this is typically empty for agent-managed accounts. To see changes agentcentral made use get_action_history; to detect any Sponsored Products campaign-setting change regardless of source use get_campaign_snapshots with view=changes. Amazon does not include who made the change and does not return Sponsored Display changes.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| keyword | No | Filter by keyword text from event metadata. | |
| sort_by | No | Column to sort by. | event_timestamp |
| end_date | No | Optional. YYYY-MM-DD upper bound on event_date. Defaults to today. | |
| entity_id | No | Filter by changed entity ID. | |
| profile_id | No | Filter by Amazon Ads profile ID. | |
| sort_order | No | Sort order. | desc |
| start_date | No | Optional. YYYY-MM-DD lower bound on event_date. Defaults to 30 days ago. | |
| ad_group_id | No | Filter by ad group ID from event metadata. | |
| campaign_id | No | Filter by campaign ID from event metadata. | |
| change_type | No | Filter by Amazon change type, for example STATUS, BUDGET_AMOUNT, BID_AMOUNT, or NAME. | |
| entity_type | No | Filter by Amazon Ads change-history entity type. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only and non-destructive, but the description adds material behavior beyond them: the 90-day window, the exclusion of API-originated changes, the fact that the actor is not returned, and the omission of Sponsored Display. These disclosures directly affect whether an agent should trust an empty result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The highest-value caveat (typical emptiness for agent-managed accounts) is front-loaded, with alternatives and known gaps following in descending importance. Every sentence carries information an agent needs; nothing is redundant with the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with an output schema and full annotation coverage, the description supplies everything the agent needs: source scope, freshness window, expected emptiness, missing fields, and sibling routing. Nothing material is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across all 15 parameters, including defaults and enum values, so the schema does the heavy lifting. The description adds no parameter-level detail such as date-bound defaults or pagination behavior, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (returns Amazon console change-history events) and scopes it to Sponsored Products and Sponsored Brands via the Seller Central History tab. It explicitly names the sibling tools get_action_history and get_campaign_snapshots and the conditions that select each, so an agent can route 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use (console history, last 90 days), when-NOT (API or agentcentral changes never appear here, so it is typically empty for agent-managed accounts), and names two concrete alternatives with the exact conditions that select them (get_action_history for agentcentral changes, get_campaign_snapshots view=changes for any source).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_aplus_statusA+ Content statusARead-onlyInspect
Inspect A+ Content and Brand Story coverage. view='documents' lists document metadata; view='relations' returns authoritative ASIN assignments for one exact content reference key and identifies its Amazon content type and locale; view='coverage' compares that document with the latest active ASINs for a catalog brand and returns factual assigned or missing rows. Requires Brand Registry.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | documents lists A+ document metadata; relations returns authoritative ASIN assignments for one content_reference_key; coverage compares one document's assignments with the active ASINs for a catalog brand. | documents |
| brand | No | coverage only. Catalog brand whose latest active ASINs are compared with the selected document. | |
| limit | No | Max rows to return. | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| brand_match | No | coverage only. Defaults to exact normalized catalog-brand equality; contains uses case-insensitive substring matching. | |
| coverage_state | No | coverage only. Defaults to missing; assigned returns covered active brand ASINs and all returns both states. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. | |
| content_reference_key | No | Required for relations and coverage. Copy the exact opaque key from documents view; do not infer it from the document name. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds the Brand Registry authorization requirement plus the distinction that 'relations' returns authoritative assignments vs. 'coverage' returning factual assigned/missing rows. It says 'factual' and 'authoritative,' hinting at trust semantics, but does not discuss rate limits or freshness limits (which the schema partly covers).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded and every clause carries information, with no filler. However the body is one dense semicolon-chained sentence, which is harder to scan than short discrete sentences would be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter read-only tool with an output schema and full schema coverage, the description covers the three modes and the Brand Registry prerequisite, which is what an agent needs to call it correctly. Return-format and pagination detail are handled by the output schema, so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all nine parameters are already documented in the schema. The description restates the view semantics and emphasizes the content_reference_key must be exact, but adds little beyond what the schema fields already say. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Inspect A+ Content and Brand Story coverage') and then breaks the tool into its three named modes with what each returns. An agent can distinguish this from siblings like get_listing_quality or get_suppressed_listings 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description effectively routes mode selection with 'view=... lists/returns/compares' clauses, and adds the hard precondition 'Requires Brand Registry.' It does not name an explicit alternative tool or a when-not condition, but the view-level context is clear enough for correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_attribution_performanceAttribution performanceARead-onlyInspect
Use for Amazon Attribution tagged off-Amazon traffic, with publisher, campaign/ad group/creative, product, purchases, sales, brand halo, and new-to-brand metrics. Product fields product_asin, product_name, brand_name, and marketplace are populated for report_type=PRODUCTS; PERFORMANCE rows can leave them null. Do not use for on-Amazon ads, search terms, or total seller sales; use campaign/search/sales tools.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by | attributed_sales_14d |
| end_date | No | Optional. YYYY-MM-DD. Defaults to yesterday. | |
| min_sales | No | Only include rows with at least this 14-day attributed sales value | |
| publisher | No | Filter by off-Amazon publisher (LIKE match, use % for wildcards) | |
| profile_id | No | Filter by ad account profile ID | |
| sort_order | No | Sort order | desc |
| start_date | No | Optional. YYYY-MM-DD. Defaults to 30 days ago. | |
| ad_group_id | No | Filter by Attribution ad group ID | |
| campaign_id | No | Filter by Attribution campaign ID | |
| creative_id | No | Filter by Attribution creative ID | |
| report_type | No | Attribution report type | PERFORMANCE |
| product_asin | No | Filter product-report rows by purchased ASIN | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. | |
| product_conversion_type | No | Filter product-report rows by conversion type |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuinely non-annotated behavior: product fields are populated only for report_type=PRODUCTS while PERFORMANCE rows can leave them null, which tells the agent what to expect in the response shape. It stops short of addressing pagination or auth, but adds real value beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, all front-loaded: purpose first, then the report_type nuance, then the exclusion/routing. No filler or restated title text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and 100% schema coverage, the description need not explain returns or parameter formats, and for a read-only list tool it covers scope, exclusions, and a key report_type behavior. Only minor gaps (pagination behavior, the compact vs raw row distinction) remain, and those are already in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 and the schema already documents all 17 parameters including range, defaults, and enum values. The description's mention of product_asin/product_name/brand_name/marketplace refers mainly to report_type-dependent output fields rather than adding syntax or constraint meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb/resource domain (Amazon Attribution tagged off-Amazon traffic) and enumerates the metrics it returns (purchases, sales, brand halo, new-to-brand), which is far more than the title 'Attribution performance' conveys. It also distinguishes itself from on-Amazon ad and seller-sales tools, so the 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use ('Amazon Attribution tagged off-Amazon traffic') and explicit when-not ('Do not use for on-Amazon ads, search terms, or total seller sales'), with a routing hint toward campaign/search/sales tools. This is the clearest form of sibling disambiguation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_audience_segmentsAudience segmentsARead-onlyInspect
Discover available Amazon Ads audience IDs for a profile from targetableEntities/list, with optional text and category-path search. The live endpoint's taxonomy is returned in category; type is often AUDIENCE, and Amazon may omit name, provider, status, and description.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Optional free-text search for audience segment names, descriptions, types, or categories. | |
| next_token | No | Amazon pagination token from a previous response. | |
| profile_id | No | Numeric Amazon Ads profile ID. Optional when this API key has exactly one enabled Ads profile; agentcentral will default it. Call get_account_info for amazon_ads.enabled_profile_ids. Do not use the marketplace ID, tenant ID, or API key prefix. | |
| max_results | No | Maximum number of audience segments to return. Defaults to 25. | |
| segment_types | No | Deprecated legacy filter. segment_types is deprecated for get_audience_segments on targetableEntities/list. Use category_path_contains to filter Amazon's current category taxonomy. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. | |
| category_path_contains | No | Optional case-insensitive substring filter against Amazon's category path, for example 'Custom-built > Product'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true and destructiveHint=false, so safety is covered. The description adds real value beyond that: the backing endpoint (targetableEntities/list), that taxonomy arrives in the 'category' field, that 'type' is often AUDIENCE, and that Amazon may omit name/provider/status/description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences, front-loaded with what the tool returns and its source, then the caveat about partial data. No filler, though the second sentence is packed to the point of being slightly hard to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations covering safety, the description need not explain returns; it appropriately focuses on the data-quality caveat (omitted fields). Nothing critical for a correct call is missing, though sibling differentiation would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including the deprecation note on segment_types and the profile_id guidance, so the schema carries parameter meaning. The description only restates 'optional text and category-path search' without adding syntax or format detail, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: 'Discover available Amazon Ads audience IDs for a profile from targetableEntities/list'. It is clearly distinct in kind, but it never distinguishes itself from any named sibling (no other audience-segment tool exists, but it also doesn't route away from e.g. get_dsp_entities_live).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'With optional text and category-path search' implies how the tool is used, but there is no explicit when-to-use guidance, no when-not, and no alternative named. An agent gets the gist but must infer the triggering conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_awd_inventoryAWD inventoryARead-onlyInspect
Use for raw AWD (Amazon Warehousing & Distribution) inventory snapshot: on-hand and inbound quantities per SKU. AWD inventory snapshots do not expose FNSKU in this dataset. Do not use for FBA fulfillable stock or ASIN-level identity; use get_fba_inventory or get_listing_registry with view='listings'. Included in get_days_of_cover.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Filter by SKU | |
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by | total_onhand_quantity |
| sort_order | No | Sort order | desc |
| snapshot_date | No | Snapshot date (YYYY-MM-DD). Defaults to latest. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, non-destructive, closed-world). The description adds genuine domain context beyond that: AWD snapshots do not expose FNSKU, and it is rolled into get_days_of_cover. It doesn't detail pagination or freshness behaviour, but the schema/annotations cover the rest.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the purpose and exclusion criteria, with no redundant wording. Every sentence contributes either scope, a limitation, or routing to the correct sibling.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only snapshot tool with full schema coverage, complete annotations, and an output schema, the description covers purpose, exclusions, alternatives, and a key data limitation. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema fully documents all 8 parameters including defaults, ranges, and pagination guidance. The description adds no parameter-level syntax or format detail beyond what the schema already provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb, resource, and scope: raw AWD inventory snapshot with on-hand and inbound quantities per SKU. It explicitly distinguishes itself from siblings by naming get_fba_inventory and get_listing_registry with view='listings'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states when to use it (raw AWD snapshot), when not to (FBA fulfillable stock or ASIN-level identity), and points to the exact alternatives to use instead. It also notes inclusion in get_days_of_cover, which further clarifies routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_awd_shipment_itemsAWD shipment itemsARead-onlyInspect
Get per-SKU line items from AWD shipments — SKU, quantity per shipment. Use to prorate AWD/AGL freight charges to specific ASINs. Defaults to latest snapshot.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Filter by specific SKU | |
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_order | No | Sort order by snapshot_date | desc |
| shipment_id | No | Filter by specific shipment ID | |
| snapshot_date | No | Snapshot date (YYYY-MM-DD). Defaults to latest. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint=false, and destructiveHint=false, covering the safety profile. The description adds a useful default behavior ('Defaults to latest snapshot'), which is not in the annotations. However, it does not disclose pagination behavior, rate limits, or authentication needs beyond what annotations and schema imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short, front-loaded sentences. It leads with what the tool does and then adds a use case and a default behavior. Every sentence earns its place with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich input schema (100% coverage, 8 optional parameters), annotations covering the safety profile, and the presence of an output schema, the description is nearly complete. It covers purpose, a specific use case, and the default snapshot behavior. It does not mention pagination or filtering options, but those are adequately documented in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are fully documented in the input schema. The description mentions 'SKU' and 'quantity per shipment,' but these refer to output fields rather than adding meaning to the parameters. Baseline score of 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('per-SKU line items from AWD shipments') and clarifies the output fields (SKU, quantity per shipment). It implicitly distinguishes from the sibling get_awd_shipments by focusing on line items rather than shipment-level data. However, no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case: 'Use to prorate AWD/AGL freight charges to specific ASINs.' This gives context for when to invoke the tool. It does not mention when not to use it or name alternative tools, but the intended scenario is explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_awd_shipmentsAWD shipmentsARead-onlyInspect
Get AWD shipment-level data — shipment IDs, statuses, and timestamps. For per-SKU quantities within a shipment, use get_awd_shipment_items.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by | created_at |
| end_date | No | Optional. YYYY-MM-DD. Filter shipments created before this date. | |
| sort_order | No | Sort order | desc |
| start_date | No | Optional. YYYY-MM-DD. Filter shipments created after this date. | |
| shipment_status | No | Filter by shipment status | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds no behavioral context beyond what the annotations and schema supply — no note on default result window, freshness, or how include_diagnostics/include_raw_rows change the response. Adequate but thin for a list tool with a default limit and date filters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste: scope first, routing hint second. Nothing is repeated from the title or annotations, and the alternative is placed after the primary purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 read-only safety profile is covered by annotations. The description covers scope and sibling routing but is silent on why 9 optional parameters matter (e.g., date filtering / pagination intended for large result sets), a minor gap for a tool with a default 20-row limit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all nine parameters (limit, offset, sort_by, sort_order, date range, status, raw rows, diagnostics) are documented in the schema itself. The description adds no formatting, default, or interaction semantics 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get AWD shipment-level data') and enumerates what is returned — shipment IDs, statuses, timestamps. It explicitly distinguishes itself from the closest sibling, get_awd_shipment_items, so an agent can route correctly without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the alternative tool and the condition that selects it ('For per-SKU quantities within a shipment, use get_awd_shipment_items'), which is exactly the routing decision an agent faces between the two AWD shipment tools. It gives no exclusions against the broader AWD/inbound family (get_awd_inventory, get_inbound_shipments), so it stops short of full when/when-not coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bid_recommendationsBid recommendationsARead-onlyInspect
Get Amazon's suggested Sponsored Products keyword bids. Requires either ASINs for a new ad group context or both campaign_id and ad_group_id for an existing ad group. Returns Amazon's recommended bid with low and high range for each keyword. This is Sponsored Products only; for Sponsored Brands Amazon provides a campaign-level suggested CPC (minimum and recommended), not per-keyword bids, via get_sponsored_ads_targeting_options with ad_product=SB, option_type=bid_recommendations, and landing_pages.
| Name | Required | Description | Default |
|---|---|---|---|
| asins | No | ASINs for a new ad group context. Provide this or both campaign_id and ad_group_id. | |
| keywords | Yes | Keywords to get bid recommendations for | |
| profile_id | No | Numeric Amazon Ads profile ID. Optional when this API key has exactly one enabled Ads profile; agentcentral will default it. Call get_account_info for amazon_ads.enabled_profile_ids. Do not use the marketplace ID, tenant ID, or API key prefix. | |
| ad_group_id | No | Existing ad group ID to use for bid recommendations. Requires campaign_id. | |
| campaign_id | No | Existing campaign ID to use for bid recommendations. Requires ad_group_id. | |
| bidding_strategy | No | Bidding strategy for new ad group recommendations. Ignored when campaign_id and ad_group_id are provided. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuine behavioral context beyond that: it returns a recommended bid with a low/high range per keyword, and it discloses that SB only yields campaign-level CPC rather than per-keyword bids. It stops short of noting pagination/limits, but the value-add is real.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then input requirements, then the return shape, then the SB alternative. Every sentence earns its place and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needn't enumerate return fields, and it still summarizes them. Parameter context, the mutual-requirement constraint, and the sibling routing are all covered, so an agent has everything needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 asins, campaign_id/ad_group_id and the rest. The description restates the ASIN-vs-campaign/adgroup either/or constraint but adds no syntax, format, or default semantics beyond what the schema provides. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) plus resource (Amazon's suggested Sponsored Products keyword bids) and scope (Sponsored Products keyword bids). It explicitly distinguishes itself from the Sponsored Brands path via get_sponsored_ads_targeting_options, so an agent can route correctly 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the two valid input contexts (ASINs for a new ad group, or campaign_id + ad_group_id for an existing one) and names the alternative tool plus its parameters for the Sponsored Brands case. The when-to-use and when-to-use-something-else conditions are both present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_brand_healthBrand healthBRead-onlyInspect
Get Amazon Ads Brand Metrics health by brand and category: awareness, consideration, sales, engaged-shopper rate, conversion rate, and new-to-brand rate versus category peers.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by | metrics_computation_date |
| end_date | No | Optional. YYYY-MM-DD. Defaults to today. | |
| brand_name | No | Filter by brand name (LIKE match, use % for wildcards) | |
| profile_id | No | Filter by ad account profile ID | |
| sort_order | No | Sort order | desc |
| start_date | No | Optional. YYYY-MM-DD. Defaults to 90 days ago. | |
| category_path | No | Filter by category path (LIKE match, use % for wildcards) | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| category_tree_name | No | Filter by category tree name | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds the metric set and the 'versus category peers' comparison angle, but says nothing about date-window semantics, freshness, or result volume beyond what the annotations/schema imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that packs the resource, the two scoping dimensions, and the metric list without waste. It is efficient, though the metric enumeration is dense and could have been trimmed in favor of routing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 described, and annotations carry the safety profile, so the description is adequate. The remaining gap is routing context against sibling performance tools, which the description never addresses.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 12 parameters are already documented with ranges, defaults, and LIKE-match semantics. The description only alludes to brand and category scoping and does not add syntax or default behavior beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (Amazon Ads Brand Metrics health), scoped by brand and category, and enumerates the metrics returned. It does not differentiate itself from siblings like get_share_of_voice, get_brand_search_terms, or get_campaign_performance, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no indication of when this differs from adjacent Brand/campaign performance tools, and no noted prerequisites or caveats. The agent gets no routing help for choosing among the ~100 siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_brand_search_termsBrand search termsARead-onlyInspect
Return recent Amazon Brand Analytics Search Terms facts from bounded serving tables only. top_terms returns term-grain ranks, term_products requires one exact search term, and asin_terms requires one exact clicked ASIN. Every view requires a date partition no wider than 42 days; lookup views use the clustered lookup_type and lookup_key prefix. No raw-table fallback or wildcard term scan exists.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | No | asin_terms only. Exact clicked ASIN. | |
| view | No | Bounded serving view. | top_terms |
| limit | No | Max rows (1-200, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Sort column. Allowed values depend on view. | |
| end_date | No | Optional report-week end upper bound (YYYY-MM-DD). Defaults to the latest complete week. Maximum span: 42 days. | |
| sort_order | No | Sort direction. Defaults to ascending rank or descending share depending on view. | |
| start_date | No | Optional report-week start lower bound (YYYY-MM-DD). Defaults to the latest complete week. Maximum span: 42 days. | |
| search_term | No | term_products only. Exact search term; wildcard and substring scans are not supported. | |
| department_name | No | Optional exact department filter. | |
| min_click_share | No | Lookup views only. Minimum Amazon-reported click share. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. | |
| max_search_frequency_rank | No | Maximum Amazon search-frequency rank. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds meaningful behavioral context: bounded serving tables only, no raw-table fallback, no wildcard/substring scan, and a hard 42-day window. The mention of 'lookup_type and lookup_key prefix' references fields not present in the schema or the view enum, which is mildly confusing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: purpose first, then view routing, then constraints. Every sentence carries load, though the 'lookup_type and lookup_key prefix' phrase adds noise without a corresponding parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no explanation, and 14 parameters are fully covered in the schema. The description completes the picture with view requirements and the 42-day bound; the only gap is the unexplained 'lookup views' terminology that does not match the enum values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented individually; baseline is 3. The description adds cross-parameter conditionality (which view demands which of search_term/asin) and the date-span rule, but does not extend beyond what the schema largely establishes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Return) and resource (Amazon Brand Analytics Search Terms facts) and enumerates the three serving views with their grain, which an agent can map to the view parameter. It does not explicitly distinguish itself from the sibling get_search_terms, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete selection rules: top_terms for term-grain ranks, term_products requires one exact search term, asin_terms requires one exact clicked ASIN, plus the 42-day partition constraint and no-wildcard limitation. It lacks explicit when-to-use vs sibling search tools, but the within-tool routing guidance is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_budget_pacingBudget pacingARead-onlyInspect
Use for SP, SB, or SD budget usage and pacing snapshots: Amazon's near-real-time usage percentage plus derived estimated used and remaining budget by campaign. The omitted ad_product default remains SP. Do not treat estimated used budget as finalized advertising cost; use retained campaign performance for finalized spend.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by | budget_usage_percent |
| end_date | No | Optional. YYYY-MM-DD. Defaults to today in the connection reporting timezone. | |
| ad_product | No | Sponsored ad product to return. SP preserves the existing default; ALL includes SP, SB, and SD. | SP |
| profile_id | No | Filter by ad account profile ID | |
| sort_order | No | Sort order | desc |
| start_date | No | Optional. YYYY-MM-DD. Defaults to 7 days ago in the connection reporting timezone. | |
| campaign_id | No | Filter by sponsored ads campaign ID | |
| latest_only | No | When true, return the latest retained daily snapshot per ad product and campaign in the selected date range | |
| campaign_name | No | Filter by campaign name (case-insensitive LIKE match, use % for wildcards) | |
| at_risk_percent | No | Threshold used to label campaigns as at_risk | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| min_usage_percent | No | Only return campaigns at or above this budget usage percentage | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuinely non-structured context: the data is near-real-time, the used/remaining budget values are estimates rather than finalized cost, and omitting ad_product still defaults to SP. These behavioral caveats exceed what the annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the 'Use for' trigger, followed by the default-reset clarification and the estimation caveat. No filler or redundant restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool with an output schema and full schema coverage, the description supplies the interpretive context an agent needs (near-real-time estimates, SP default, finalized-spend routing). Nothing critical is missing, though it could note the date-range/pagination behavior at a higher level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all 15 parameters including defaults and ranges. The description only reinforces the ad_product default (SP), adding marginal meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('budget usage and pacing snapshots') and names the exact scope it covers (SP, SB, SD) plus the derived fields produced (usage percentage, estimated used and remaining budget by campaign). An agent can distinguish it from finalized-spend siblings like get_campaign_performance 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It opens with an explicit use case ('Use for SP, SB, or SD budget usage and pacing snapshots') and adds a negative directive routing finalized spend to 'retained campaign performance.' Clear context and an exclusion are present, though the sibling tool is named descriptively rather than by exact tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_budget_recommendationsBudget recommendationsBRead-onlyInspect
Returns Amazon Ads budget recommendation API fields for campaigns, including suggested budgets and estimated missed impressions, clicks, and sales.
| Name | Required | Description | Default |
|---|---|---|---|
| profile_id | No | Numeric Amazon Ads profile ID. Optional when this API key has exactly one enabled Ads profile; agentcentral will default it. Call get_account_info for amazon_ads.enabled_profile_ids. Do not use the marketplace ID, tenant ID, or API key prefix. | |
| campaign_ids | Yes | Campaign IDs to get budget recommendations for | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds what the payload contains (recommended budgets, estimated missed metrics), which is useful but does not disclose batching limits, freshness, or auth/profile requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that names the resource and enumerates the returned metrics with no filler. It could be tightened slightly but nothing is wasted or buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no explanation, and the schema covers all four parameters. What is missing is the routing context an agent needs to pick this over the closely named budget/pacing/bid-recommendation siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so profile_id scoping, the 1-100 campaign_ids bound, and both toggle flags are already documented in the schema. The description adds no parameter-level meaning beyond that, which is the baseline-3 case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Returns) and resource (Amazon Ads budget recommendation API fields) plus the concrete outputs (suggested budgets, estimated missed impressions/clicks/sales). That is enough to distinguish it from get_bid_recommendations and get_budget_pacing, though it never names those siblings to sharpen the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to reach for this tool versus get_budget_pacing, get_bid_recommendations, or get_campaign_performance. The agent gets no context, prerequisites, or exclusions, only a statement of what comes back.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_buybox_statusBuy Box status (live)ARead-onlyInspect
Check current Buy Box status for ASINs (live SP-API), or provide a date window to return stored Buy Box win-rate history from daily pricing snapshots. The Buy Box is Amazon's New Buy Box; your_price is your New offer, reported only when you hold it (your_price_basis says why it is null). Used offers, including Grade & Resell, appear only in used_buy_box_*. Live mode is one of the buyability signals: pair with get_listing_restrictions, get_fba_eligibility, and get_suppressed_listings for a full 'can buyers buy this right now' check.
| Name | Required | Description | Default |
|---|---|---|---|
| asins | Yes | ASINs to check Buy Box status for | |
| limit | No | Max historical rows to return when using history mode (1-1000, default 100). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| end_date | No | Optional. YYYY-MM-DD. Defaults to today when using history mode. | |
| start_date | No | Optional. YYYY-MM-DD. When provided, returns historical Buy Box snapshot data. | |
| include_raw_rows | No | When false, return a compact row preview. Defaults to true; large result sets are capped automatically. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=true), and the description adds meaningful context beyond them: live mode is one of several buyability signals rather than a complete answer, your_price is only populated when you hold the Buy Box, your_price_basis explains nulls, and used/Grade & Resell offers are reported elsewhere. It does not disclose rate limits, auth/token requirements, or freshness lag for the stored snapshots, leaving a modest gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with the live/history distinction, and each sentence carries distinct information (mode selection, Buy Box definition, field semantics, sibling pairing). The final sentence is long and dense with three sibling references, but nothing is redundant padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return-value explanation is not required, and the description still covers the genuinely ambiguous parts: mode selection, the meaning of null your_price, and how this tool composes with adjacent eligibility/restriction tools. Pagination and result-size handling are left entirely to the schema, which is acceptable given coverage, though a note on live-mode latency or ASIN batching would have made it airtight.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter descriptions already document every field, including that start_date triggers history mode and how limit/offset paginate. The description corroborates the mode-switch semantics but adds no format, default, or syntax detail beyond what the schema states, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Check current Buy Box status for ASINs') and then explicitly delineates the two operating modes (live SP-API vs. stored date-window history). It also scopes terminology ('The Buy Box is Amazon's New Buy Box') and clarifies that used offers live in separate used_buy_box_* fields, so an agent can distinguish this from sibling offer/pricing tools without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It specifies the condition that selects history mode ('provide a date window') and explicitly recommends pairing with get_listing_restrictions, get_fba_eligibility, and get_suppressed_listings for a full buyability check, which is strong routing guidance. It stops short of naming a sibling to avoid (e.g. get_listing_offers or get_competitive_pricing) or stating when this tool is the wrong choice, so it is clear but not fully exclusionary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_campaign_performanceCampaign performanceARead-onlyInspect
Use for Sponsored Products campaign-level ad performance over a date range: spend, sales, ACOS, ROAS, CTR, CPC, CVR. Grain: one row per campaign; recent ~3 days may be incomplete. Do not use for ad group, keyword, search-term, ASIN, or total organic+paid sales questions.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by | spend |
| end_date | No | Optional. YYYY-MM-DD. Defaults to today if omitted. | |
| profile_id | No | Filter by profile ID | |
| sort_order | No | Sort order | desc |
| start_date | No | Optional. YYYY-MM-DD. Defaults to 30 days ago if omitted. | |
| campaign_name | No | Filter by campaign name (LIKE match, use % for wildcards) | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description still adds real behavioral context beyond them: the row grain ('one row per campaign') and the freshness caveat that the recent ~3 days may be incomplete, which is exactly the kind of data-quality caveat an agent needs before reporting numbers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, zero filler, and front-loaded: purpose and metric set first, then grain and freshness caveat, then the exclusion list. Every clause earns its place and there is no restatement of the name or title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return shape needn't be explained, and pagination is covered in the schema. The description supplies the two things structured data doesn't: grain and a freshness/data-window caveat. Complete enough to call correctly, though it doesn't note whether historical backfill limits apply.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all ten parameters (dates, sort_by, limit/offset, filters) are already documented in the schema. The description adds metric vocabulary and the date-range framing but no parameter-specific syntax or defaults. Baseline 3 is correct when the schema carries parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+scope: Sponsored Products campaign-level performance over a date range, with the metric set enumerated. The 'campaign-level' grain plus the Sponsored Products qualifier cleanly separates it from siblings like get_adgroup_performance, get_sb_campaign_performance, and get_sd_campaign_performance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when/when-not routing: 'Do not use for ad group, keyword, search-term, ASIN, or total organic+paid sales questions' names the near-miss siblings by dimension. Combined with the opening 'Use for...' clause, an agent can select or reject this tool without opening any schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_campaign_snapshotsCampaign snapshotsARead-onlyInspect
Use for Sponsored Products campaign settings snapshots from the campaign_snapshots sync. view='history' returns daily state, budget, bidding, portfolio, and placement bid adjustment rows. view='changes' returns deterministic setting changes between daily snapshots, which catches changes regardless of whether they were made in the console or through the API, making it the reliable 'what changed to my SP campaigns' surface (it needs at least two days of snapshots to show a delta). This is not a live write readback and does not return performance metrics; use get_campaign_performance for metrics.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | Snapshot view: history returns daily settings snapshots; changes returns setting deltas between snapshots. | history |
| limit | No | Max rows (1-1000, default 20). | |
| state | No | History view only. Filter by campaign state | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | History view only. Column to sort by. Changes view sorts by snapshot_date. | |
| end_date | No | Optional. YYYY-MM-DD. Defaults to today. | |
| profile_id | No | Filter by ad account profile ID | |
| sort_order | No | Sort order | desc |
| start_date | No | Optional. YYYY-MM-DD. Defaults to 30 days ago. | |
| campaign_id | No | Filter by campaign ID | |
| change_types | No | Changes view only. Optional change types to include | |
| campaign_name | No | Filter by campaign name (LIKE match, use % for wildcards) | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/openWorld=false/destructive=false, so safety is covered; the description adds substantive behavior beyond that: it is not a live write readback, changes are detected regardless of console vs API origin, and the changes view requires two snapshots to produce a delta. It stops short of auth requirements or freshness/latency specifics, so it is strong but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with 'Use for...' and every sentence carries information (purpose, view semantics, caveat, exclusions). It is dense — three long sentences with parentheticals — but no clause is padding, just slightly heavier than strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 14 parameters, an output schema present, and annotations covering the safety profile, the description supplies everything else an agent needs: purpose, view routing, data freshness caveat, and explicit exclusions (no metrics, no live write readback). Return values are correctly left to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 meaning beyond the schema for the key 'view' parameter by explaining what each mode returns at a data level (state, budget, bidding, portfolio, placement bid adjustment) and how the changes mode behaves. The two-day delta caveat is operational semantics not present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Sponsored Products campaign settings snapshots from the campaign_snapshots sync') and immediately distinguishes itself from the sibling performance tools by declaring what it does not return. An agent can separate it from get_campaign_performance and get_sp_entities_live 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes between the two views (history = daily state rows; changes = deltas) and names the alternative to use for metrics ('use get_campaign_performance for metrics'). It also states the precondition for the changes view ('needs at least two days of snapshots to show a delta'), which is a genuine when-to-use constraint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_catalog_cleanupCatalog cleanupBRead-onlyInspect
Returns ranked listing quality signals from snapshots: Amazon errors, warnings, missing core content, offer/fulfillment gaps, and thin listing content.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Filter by SKU. | |
| asin | No | Filter by ASIN. | |
| limit | No | Max cleanup rows to return. | |
| cleanup_focus | No | Cleanup category to focus on. Defaults to all non-healthy listings. | all |
| snapshot_date | No | Optional snapshot date (YYYY-MM-DD). Defaults to latest listing quality snapshot. | |
| include_healthy | No | Set true to include healthy listings after cleanup items. Defaults to false. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false), lowering the bar. The description adds useful context that the data comes 'from snapshots' and is 'ranked', but says nothing about snapshot freshness, whether output is paginated, or the cost of pulling raw rows (include_raw_rows defaults true).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler, leading with the action and the sources of signal. It could be slightly tighter and omits any usage sentence, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and all 8 params optional/defaulted, the description needn't explain returns, and annotations cover safety. However, it omits the relationship to get_listing_quality and get_suppressed_listings and offers no guidance on snapshot_date behavior, which matters for a snapshot-driven tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all 8 parameters and their defaults, hitting the baseline of 3. The enumerated signal categories loosely mirror the cleanup_focus enum, adding marginal mapping value, but the description supplies no syntax or behavioral detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Returns') and resource ('ranked listing quality signals from snapshots') and enumerates five concrete signal categories (Amazon errors, warnings, missing core content, offer/fulfillment gaps, thin content). It is clearly distinguishable in content from generic listing tools, though it never names the closest siblings (get_listing_quality, get_suppressed_listings) to draw the boundary explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no exclusions, and no routing to alternatives despite a crowded listing/quality sibling set. An agent must infer that this is the cleanup-triage tool from its name and signals alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_competitive_pricingCompetitive pricing (live)ARead-onlyInspect
Get competitive price points for ASINs. Defaults to live SP-API data, or provide a date window to return stored pricing history from daily snapshots.
| Name | Required | Description | Default |
|---|---|---|---|
| asins | Yes | ASINs to check competitive pricing for | |
| limit | No | Max historical rows to return when using history mode (1-1000, default 100). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| end_date | No | Optional. YYYY-MM-DD. Defaults to today when using history mode. | |
| start_date | No | Optional. YYYY-MM-DD. When provided, returns historical pricing snapshots. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/openWorldHint/destructive=false, so the safety profile is covered. The description adds genuine value beyond them by disclosing the data source and freshness (live SP-API vs daily stored snapshots), which the annotations cannot express. Minor gap: no mention of rate limits or freshness lag.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and followed immediately by the mode switch. No filler or restated title text; every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 adequately covers the live-vs-history decision for this 7-param tool. It could say more about scoping limit/offset to history mode, but nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every one of the 7 parameters is already documented in the schema. The description only adds that date parameters toggle history mode; it doesn't clarify that limit/offset apply in history mode or explain include_diagnostics/include_raw_rows beyond the schema. Baseline 3 is correct when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get competitive price points for ASINs') and explains the dual live/history behavior, so the agent knows exactly what it retrieves. It does not, however, differentiate itself from any of the many adjacent pricing siblings (get_listing_offers, get_current_rank, get_offer_listings), so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear mode-selection context: omit dates for live SP-API data, provide a date window for stored snapshot history. That routes the agent correctly between the two behaviors. It stops at 4 because it offers no guidance against overlapping siblings and no explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_current_rankCurrent rank (live)ARead-onlyInspect
Check the current search rank position for a keyword in real time. Returns the top results from Amazon's catalog search. If a target ASIN is provided, highlights its position.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Search keyword to check ranking for | |
| max_pages | No | Number of result pages to check (20 results per page) | |
| target_asin | No | Your ASIN to find in results. If provided, highlights its position. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety and external-call profile is covered. The description adds that the lookup is live against Amazon's catalog (freshness/latency implication) and that a target ASIN gets its position highlighted, but says nothing about rate limits, throttling, or what happens when no results are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, the live/real-time qualifier and the core action are front-loaded, and nothing is padded. The middle sentence about returning top results from Amazon's catalog partly duplicates what the output schema conveys, a minor redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and rich annotations, the description need not explain return values or safety. It covers the live-query nature and the ASIN-highlighting behavior, which is sufficient for correct invocation, though it omits any note on result limits or noisy-data conditions the diagnostics flags imply.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters including max_pages, include_raw_rows and include_diagnostics are already documented in the schema. The description only restates target_asin's highlight behavior, adding no format, default, or interaction detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — check the current search rank position for a keyword — and the 'real time' framing implicitly contrasts with the historical sibling get_keyword_ranks. It never names that sibling, so the differentiation is left to inference rather than made explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'in real time', suggesting this is the tool for a live rank snapshot rather than batch/historical reporting. There is no explicit when-to-use statement, no exclusion, and no pointer to get_keyword_ranks or get_sales_ranks when a live query is not what the agent wants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_days_of_coverDays of coverARead-onlyInspect
Use for per-ASIN/per-FBA-SKU replenishment coverage: days of stock remaining computed from FBA fulfillable + FBA inbound divided by recent FBA sales velocity. Uses completed Sales & Traffic Business Reports when every due date in the lookback is loaded (the newest dates inside Amazon's finalization lag are reported as not yet due and excluded from the velocity average); when initial Business Report backfill is incomplete and the lookback is 7/30/60/90 days, uses Amazon FBA Inventory Health shipped-unit velocity as a source-attributed fallback and surfaces the sales-history data gap. AWD on-hand is reported as its own field but excluded from the cover numerator (AWD is upstream of FBA, not directly fulfillable). Sorted by lowest cover first. Do not use for raw stock counts, aged inventory fees, or broad triage; use get_fba_inventory/get_inventory_health/get_inventory_risk_triage.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Filter by SKU | |
| asin | No | Filter by ASIN | |
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_order | No | Sort order (default: asc — most urgent first) | asc |
| include_raw_rows | No | False returns compact rows. Default true. | |
| max_days_of_cover | No | Only show ASINs with at most this many days of cover | |
| min_days_of_cover | No | Only show ASINs with at least this many days of cover | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. | |
| sales_lookback_days | No | Number of days to look back for sales velocity (default 30) |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds substantial behavioral context beyond that: the Sales & Traffic vs. FBA Inventory Health velocity fallback, source attribution, finalization-lag exclusion of not-yet-due dates, and the rule that AWD on-hand is excluded from the numerator. It does not, however, describe pagination or result-shape behavior, so 4 rather than 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first clause and the routing instruction is cleanly placed at the end. The middle source-selection sentence is a dense run-on that packs three clauses (fallback, lag exclusion, lookback sizes), which hurts readability slightly but each clause carries real information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 what the schema cannot: data-source provenance, fallback behavior, AWD treatment, sort order, and sibling routing. For a 10-param read-only analytics tool this is a complete briefing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all 10 parameters (sku, asin, limit, offset, sort_order, filters, lookback). The description reinforces a few semantics (lookback values 7/30/60/90, sort ordering) but adds no syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb and resource ('replenishment coverage: days of stock remaining') and even gives the computation (FBA fulfillable + FBA inbound divided by recent FBA sales velocity). It names the sibling tools it is not (get_fba_inventory/get_inventory_health/get_inventory_risk_triage), so an agent can distinguish it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Contains explicit exclusions ('Do not use for raw stock counts, aged inventory fees, or broad triage') paired with the named alternatives to use instead. It also sets the positive condition (per-ASIN/per-FBA-SKU replenishment coverage). This is textbook when/when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dsp_advertisers_liveDSP advertisers (live)ARead-onlyInspect
Return Amazon-source DSP advertiser records accessible to an Ads profile. Use this to discover DSP advertiser IDs for the Amazon-Ads-AccountId header used by get_dsp_entities_live.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum advertiser rows to return from list responses. | |
| profile_id | No | Numeric Amazon Ads profile ID. Optional when this API key has exactly one enabled Ads profile; agentcentral will default it. Call get_account_info for amazon_ads.enabled_profile_ids. Do not use the marketplace ID, tenant ID, or API key prefix. | |
| advertiser_id | No | Optional DSP advertiser ID. When supplied, returns that advertiser record if Amazon grants access. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered structurally. The description adds genuine context about Amazon-side access scoping ('Amazon grants access', 'accessible to an Ads profile'), but says nothing about pagination, rate limits, or freshness behavior for a live external API, so it adds only moderate value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero padding, and the payload-routing guidance (use the returned IDs for the Amazon-Ads-AccountId header) is front-loaded rather than buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-shape explanation is correctly omitted, and all parameters are self-documented. The remaining gap is operational: no note on default result sizing or whether the list is paginated, which matters for a live open-world discovery call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (including limit, profile_id, advertiser_id, and the two include_* flags) are already fully documented in the schema. The description adds no syntax, format, or interaction detail beyond that, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Return Amazon-source DSP advertiser records') and scopes it to records 'accessible to an Ads profile.' It also explicitly frames the tool as a discovery step for IDs consumed by get_dsp_entities_live, so an agent can separate it from that sibling without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit usage context ('Use this to discover DSP advertiser IDs for the Amazon-Ads-AccountId header used by get_dsp_entities_live'), naming the downstream alternative and the ordering dependency. It stops short of stating when NOT to use it (e.g., when IDs are already known), which keeps it from a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dsp_entities_liveDSP entities (live)ARead-onlyInspect
List Amazon-source DSP campaigns, ad groups, or targets through documented DSP v1 campaign-management read endpoints. Requires an explicit Amazon-Ads-AccountId DSP advertiser ID and returns factual source fields only; no DSP writes are exposed.
| Name | Required | Description | Default |
|---|---|---|---|
| states | No | DSP targets only: optional Amazon DSP state filter values such as ENABLED. Campaign/ad-group state filters are not sent because Amazon does not document them for those list endpoints. | |
| next_token | No | Amazon pagination token from a previous DSP list response. | |
| profile_id | No | Numeric Amazon Ads profile ID. Optional when this API key has exactly one enabled Ads profile; agentcentral will default it. Call get_account_info for amazon_ads.enabled_profile_ids. Do not use the marketplace ID, tenant ID, or API key prefix. | |
| target_ids | No | DSP targets only: filter targets by target ID. Target reads require target_ids or ad_group_ids because Amazon documents those as the bounded target-list filters. | |
| entity_type | Yes | DSP entity family to list: campaign, ad_group, or target. | |
| max_results | No | Maximum rows to request from Amazon (1-100). | |
| ad_group_ids | No | Filter DSP ad groups by ad group ID, or targets by ad group ID. | |
| campaign_ids | No | Filter DSP campaigns by campaign ID, or ad groups by campaign ID. DSP target list docs do not expose a campaign-id filter. | |
| target_types | No | DSP targets only: optional target type filters such as AUDIENCE or LOCATION. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_regional | No | DSP campaigns/ad groups only: request cross-region records when Amazon supports includeRegional. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. | |
| amazon_ads_account_id | Yes | Required Amazon-Ads-AccountId header value for DSP v1 campaign-management APIs. Amazon documents this as the Amazon DSP advertiser ID; discover it with get_dsp_advertisers_live. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true. The description reinforces this ('returns factual source fields only; no DSP writes are exposed') and adds the required-auth context (explicit advertiser ID), which is useful beyond the annotation defaults, though no return format or rate-limit details are offered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that front-load the verb and resource, with the prerequisite and scope following. Efficient overall, though the second sentence packs several distinct facts (auth header, read-only scope) into one clause chain.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value detail is unnecessary, and annotations carry the safety profile. The description supplies the key missing context—required advertiser ID and read-only scope—making it complete enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all 13 parameters in detail (including DSP-specific constraints like target_ids/ad_group_ids requirements). The description adds no parameter syntax or meaning beyond naming the account ID, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('Amazon-source DSP campaigns, ad groups, or targets') scoped to 'DSP v1 campaign-management read endpoints,' which cleanly separates it from siblings like get_dsp_performance (metrics) and get_dsp_advertisers_live (advertiser discovery).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly states the prerequisite (an explicit Amazon-Ads-AccountId DSP advertiser ID) and scopes usage to read endpoints with 'no DSP writes are exposed.' It does not, however, explicitly contrast when to use this versus entity-listing alternatives such as get_dsp_performance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dsp_performanceDSP performanceARead-onlyInspect
Use for Amazon DSP Reporting v3 performance at order, line item, and creative grain: spend, sales, ROAS, viewability, and video completion. Do not use for Sponsored Products/Brands/Display, search terms, or seller account sales; use the matching ads or sales tool.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by | spend |
| end_date | No | Optional. YYYY-MM-DD. Defaults to yesterday. | |
| min_spend | No | Only include rows with at least this spend | |
| order_name | No | Filter by DSP order name (LIKE match, use % for wildcards) | |
| sort_order | No | Sort order | desc |
| start_date | No | Optional. YYYY-MM-DD. Defaults to 30 days ago. | |
| creative_name | No | Filter by creative name (LIKE match, use % for wildcards) | |
| line_item_name | No | Filter by DSP line item name (LIKE match, use % for wildcards) | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| dsp_advertiser_id | No | Filter by DSP advertiser ID | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds the reporting grain and metric scope but says nothing about freshness/latency of the data, row limits, or pagination behavior beyond what the schema documents. With annotations carrying the safety burden, this meets the lower bar but adds only modest extra context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the positive scope comes first, the exclusions and routing second. Every clause earns its place, with no restating of the name or title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter read-only reporting tool with a full output schema, the description supplies the scope, grain, and routing needed to select and call it correctly. Minor gap: no note on default date window behavior at the description level, though the schema and output schema cover the rest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% – every one of the 13 parameters, including the date defaults, LIKE-match filters, and diagnostics flag, is documented in the schema. The description adds no parameter-level detail (e.g., how order_name interacts with the grain), so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (reporting on) and resource (Amazon DSP Reporting v3 performance) plus the grain (order, line item, creative) and the metrics returned (spend, sales, ROAS, viewability, video completion). This distinguishes it cleanly from sibling ad-reporting tools like get_sb_campaign_performance or get_sponsored_ads_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly covers both when to use (DSP performance by order/line item/creative) and when not to use it, calling out Sponsored Products/Brands/Display, search terms, and seller account sales as out of scope, then routing to 'the matching ads or sales tool'. Nothing is left to inference about tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fba_eligibilityFBA eligibility (live)ARead-onlyInspect
Check if an ASIN is eligible for FBA (Fulfillment by Amazon, live SP-API). Returns eligibility status and any Amazon ineligibility reason codes. One of the buyability signals: pair with get_buybox_status, get_listing_restrictions, and get_suppressed_listings for a full 'can buyers buy this right now' check.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | Yes | ASIN to check FBA eligibility for | |
| program | No | FBA program to check eligibility for | INBOUND |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false. The description adds useful context: it is live SP-API data, returns eligibility status and Amazon ineligibility reason codes, and belongs to a specific signal family. Auth and rate-limit behavior are not disclosed, but the annotation coverage lowers the bar.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose and then the usage context. Every sentence earns its place with no redundant or vague phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a full schema, output schema, and informative annotations, the description completes the picture by stating live behavior, return content, and sibling pairing. Nothing an agent needs to invoke this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all four parameters are documented in the schema, so the description adds no parameter semantics beyond it. It mentions the ASIN concept but nothing about the program enum or include_raw_rows/include_diagnostics toggles. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (check eligibility), resource (ASIN for FBA), and scope (live SP-API), and explicitly distinguishes itself as one of the buyability signals alongside named siblings. An agent can pick this tool 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent to pair this with get_buybox_status, get_listing_restrictions, and get_suppressed_listings for a full buyability check, effectively naming alternatives and the condition that selects each. This is precise routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fba_inbound_documentsFBA inbound documentsARead-onlyInspect
Short-lived authenticated download links for FBA inbound shipping documents: marketplace item labels, carton labels, pallet labels, bill of lading (BOL), and delivery challan (India). Links stream the document from Amazon and expire after 15 minutes; document bytes are never returned inline. Carton/pallet labels and BOLs require the shipment's FBA... confirmation ID, which exists after placement confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| page_type | No | carton_labels/pallet_labels: label page type | PackageLabel_Plain_Paper |
| shipment_id | No | Required for carton_labels, pallet_labels, bill_of_lading, delivery_challan (v2024 shipment ID; the FBA confirmation ID is read live) | |
| document_type | Yes | Which document to fetch | |
| inbound_plan_id | No | Required for carton_labels, pallet_labels, bill_of_lading, delivery_challan | |
| item_label_type | No | item_labels: print format | STANDARD_FORMAT |
| msku_quantities | No | item_labels: MSKUs and label counts (max 50 per link) | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| carton_label_type | No | carton_labels: label content type | UNIQUE |
| number_of_pallets | No | pallet_labels: how many pallet labels to print (4 per pallet is Amazon's guidance) | |
| number_of_packages | No | carton_labels: how many carton labels to print | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. | |
| item_label_page_type | No | item_labels: page layout for STANDARD_FORMAT |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, non-destructive, openWorld), and the description adds substantial behavioral context beyond them: links stream from Amazon, expire after 15 minutes, and document bytes are never returned inline. This expiry/streaming detail is exactly the kind of operational trait an agent needs and is not present in the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly written sentences, front-loaded with what the tool returns before the expiry and prerequisite caveats. No filler sentences. A minor density cost from packing expiry, streaming, and confirmation-ID caveats into one long second sentence keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 described, and the safety profile is already carried by annotations. Given that, the description covers the remaining gaps an agent needs — link lifetime, delivery mechanism, and which document types require the confirmation ID — making it complete for a link-generation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every one of the 12 parameters is already documented in the schema, including the conditional 'Required for carton_labels, pallet_labels...' notes. The description largely restates these document-type groupings and adds no format or syntax detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource (download links for FBA inbound shipping documents) and enumerates the exact document types covered: item labels, carton labels, pallet labels, BOL, delivery challan. It is unambiguous what the tool returns. However, it never names or differentiates itself from adjacent siblings such as get_report_document or get_inbound_shipments, so it earns a 4 rather than a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete prerequisite context: carton/pallet labels and BOLs require the shipment's FBA confirmation ID, which only exists after placement confirmation, effectively telling the agent when the call will and won't work. It does not, however, point to any alternative tool or state exclusions relative to siblings, so it stops short of the explicit when/when-not routing a 5 requires.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fba_inbound_operation_statusFBA inbound operation statusARead-onlyInspect
Status of an asynchronous FBA inbound operation (returned as operation_id by inbound write tools): SUCCESS, FAILED, or IN_PROGRESS, with Amazon's blocking (ERROR) and non-blocking (WARNING) problems. Use this to resume a write that returned processing instead of re-submitting it.
| Name | Required | Description | Default |
|---|---|---|---|
| operation_id | Yes | Amazon operation ID from an inbound write tool response | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds real behavioral value beyond that: the tri-state outcome model and the distinction between Amazon's blocking (ERROR) and non-blocking (WARNING) problems, which an agent needs to interpret results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero filler: the core purpose and outcome states are front-loaded, followed by the usage condition. Both sentences earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explained, and annotations cover safety. The description supplies purpose, state semantics, error classification, and usage, so it is nearly complete; only the two optional parameters lack description-level coverage, which the schema handles adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. The description adds provenance for operation_id ('returned as operation_id by inbound write tools'), but says nothing about include_raw_rows or include_diagnostics, leaving those entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Status of an asynchronous FBA inbound operation') and enumerates the exact return states (SUCCESS, FAILED, IN_PROGRESS). This clearly distinguishes it from sibling inbound tools like get_fba_inbound_plan, get_fba_inbound_options, and get_fba_inbound_documents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use it 'to resume a write that returned processing instead of re-submitting it,' which gives strong when-to-use context and an implicit alternative action (re-submitting). It doesn't name an alternative tool or a when-not condition, keeping it just 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.
get_fba_inbound_optionsFBA inbound options (live)ARead-onlyInspect
Read Amazon-generated FBA inbound options without selecting one: packing options with fees, placement options with per-split fees/discounts, transportation options with carrier, mode, quote, expiration and void deadline (all pages), delivery window options with validity, and self-ship appointment slots where Amazon supports them. Options are generated first with prepare_fba_inbound_options.
| Name | Required | Description | Default |
|---|---|---|---|
| option_type | Yes | Which Amazon option family to read | |
| shipment_id | No | Required for delivery_window and appointment; scopes transportation to one shipment | |
| inbound_plan_id | Yes | Amazon inbound plan ID from create_fba_inbound_plan or get_fba_inbound_plan. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| packing_group_id | No | For packing: also list the items in this packing group | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. | |
| placement_option_id | No | For transportation: list options generated for this placement option |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/non-destructive/openWorld, so the bar is lower; the description still adds real context by confirming nothing is committed ('without selecting one'), noting that all pages are returned, and disclosing that transportation quotes carry expiration and void deadlines while self-ship appointments are only available 'where Amazon supports them'. Permission/auth requirements and empty-result behavior are not covered in the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the essential read-only framing and back-loaded with the option-family inventory. The long enumeration is dense but each clause earns its place by distinguishing output families; the trailing prerequisite sentence is slightly detached from the opening.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return shapes need not be explained, and the description still usefully previews the option families. It covers the generation prerequisite, the no-selection guarantee, and pagination, leaving only auth/permission prerequisites and error/diagnostic behavior unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 goes further by mapping each option_type family to the payload it yields (packing fees, placement per-split fees/discounts, transportation carrier/mode/quote, delivery window validity, appointment slots), which tells an agent what to expect from the enum choice. It does not add anything about shipment_id scoping or the packing_group_id/placement_option_id refinements beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Starts with a specific verb and resource ('Read Amazon-generated FBA inbound options') and immediately scopes them ('without selecting one'), then enumerates the four-to-five option families the tool returns. It also names the generator sibling (prepare_fba_inbound_options), so an agent can separate reading from generating without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context: this is the read-only inspection step, and options must exist first via prepare_fba_inbound_options, which is an explicit prerequisite. It does not state when to prefer this over sibling readers such as get_fba_inbound_plan or get_fba_inbound_operation_status, so routing among the reading tools 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.
get_fba_inbound_planFBA inbound plan (live)ARead-onlyInspect
Live FBA inbound plan state from the Amazon Fulfillment Inbound API (v2024-03-20). Lists plans, or returns one plan's summary, items, boxes, pallets, or shipments. Shipment detail returns both Amazon identifiers: the v2024 shipment_id used by workflow calls and the FBA... shipment_confirmation_id used on labels and shipping documents. For a repeat shipment, a recent plan is the source of reusable defaults: the single-plan summary carries the full ship-from address in create_fba_inbound_plan input shape, and view=boxes carries per-case dimensions, weights, and units (Seller Central's saved templates are not API-readable). For materialized receiving progress use get_inbound_shipments and get_shipment_receiving_status.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | summary lists plans (or one plan when inbound_plan_id is set); items/boxes/pallets/shipments require inbound_plan_id | summary |
| page_size | No | Plan-list page size (1-30) | |
| plan_status | No | Filter plan listing by status | |
| shipment_id | No | With view=shipments returns full shipment detail; with items/boxes/pallets scopes to that shipment | |
| inbound_plan_id | No | Amazon inbound plan ID from create_fba_inbound_plan or get_fba_inbound_plan. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| pagination_token | No | Token from a previous plan-list response | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds real behavioral value beyond that: it discloses that shipment detail returns two distinct identifiers, that view=boxes carries case dimensions/weights/units, and that Seller Central saved templates are not API-readable, which shapes how an agent should source defaults.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first two sentences, and the remaining sentences each earn their place by covering views, identifiers, reuse, and alternatives. It is dense but not padded; slightly more length than strictly necessary for a summary line.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, annotations supplying the safety profile, and 100% parameter coverage, the description fills the remaining gaps: it covers all five view modes, the two-identifier return for shipments, and the repeat-shipment reuse pattern. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 exceeds it by explaining semantics the enum descriptions don't: what view=summary yields in create_fba_inbound_plan input shape, what view=boxes carries, and how shipment_id scopes results, adding practical meaning to the enum values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource (live FBA inbound plan state), pins the backing API and version, and enumerates exactly what each view returns (plans, summary, items, boxes, pallets, shipments). It distinguishes itself from the materialized-progress siblings, so an agent can pick 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It routes the agent explicitly: use get_inbound_shipments and get_shipment_receiving_status for materialized receiving progress, and use this tool's summary/boxes views for reusable defaults on repeat shipments. Context is clear but there is no explicit 'when not to use' for the listing mode beyond the sibling redirect.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fba_inventoryFBA inventoryARead-onlyInspect
Use for raw FBA inventory snapshot quantities per ASIN/SKU: fulfillable, reserved (including customer-order, FC-transfer, and FC-processing breakdowns), inbound, future supply, researching, and unfulfillable. Future supply fields are Amazon source-provided In-Stock Head Start quantities and remain null when Amazon does not return them. Defaults to latest snapshot. Do not use alone for reorder or stockout priority; use get_days_of_cover or get_inventory_risk_triage.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Filter by SKU | |
| asin | No | Filter by ASIN | |
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by | fulfillable_quantity |
| sort_order | No | Sort order | desc |
| snapshot_date | No | Snapshot date (YYYY-MM-DD). Defaults to latest. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds real behavioral context beyond that: it defaults to the latest snapshot and discloses that future supply fields are Amazon source-provided In-Stock Head Start values that remain null when unavailable. It stops short of describing pagination or multi-snapshot behavior, but the null-field caveat is a meaningful disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the 'Use for...' purpose, followed by data-quality nuance and the routing exclusion. Every sentence carries information, though the metric enumeration in the first sentence is dense. No filler or repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 correctly focuses on scoping, defaults, null semantics, and sibling routing. For a 9-parameter, no-required-parameter tool it is nearly complete; only snapshot-history behavior is left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented (sku, asin, limit, offset, sort_by, sort_order, snapshot_date, include_raw_rows, include_diagnostics). The description reinforces ASIN/SKU scoping and the latest-snapshot default but adds no syntax or constraint detail beyond the schema, which is precisely the baseline-3 case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('raw FBA inventory snapshot quantities per ASIN/SKU') and enumerates the exact metric families returned (fulfillable, reserved breakdowns, inbound, future supply, researching, unfulfillable). It also names the siblings it is not (get_days_of_cover, get_inventory_risk_triage), so an agent can distinguish it from the many other inventory tools 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states an exclusion with the reason: 'Do not use alone for reorder or stockout priority; use get_days_of_cover or get_inventory_risk_triage.' This gives both the when-not and the named alternative, which is the strongest form of routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fba_storage_feesFBA storage feesARead-onlyInspect
Returns FBA storage fee report rows at ASIN/FNSKU/SKU grain where Amazon provides it: monthly storage fee estimates by ASIN/FNSKU with billed side/weight measurements, and long-term storage charge rows by SKU/FNSKU/ASIN. This is FBA only; AWD fee reports are not exposed by the public AWD API.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Filter by seller SKU. monthly_storage resolves SKU through the latest FBA inventory snapshot by ASIN/FNSKU. | |
| asin | No | Filter by ASIN. | |
| view | No | monthly_storage returns GET_FBA_STORAGE_FEE_CHARGES_DATA rows; long_term_storage returns GET_FBA_FULFILLMENT_LONGTERM_STORAGE_FEE_CHARGES_DATA rows. | monthly_storage |
| fnsku | No | Filter by FNSKU. | |
| limit | No | Max rows to return (default 100, max 1000). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by. Allowed columns depend on view. | |
| end_date | No | long_term_storage only. End charge_snapshot_date (YYYY-MM-DD). Defaults to start_date when supplied alone. | |
| sort_order | No | Sort direction. | desc |
| start_date | No | long_term_storage only. Start charge_snapshot_date (YYYY-MM-DD). Defaults to latest charge snapshot when omitted. | |
| snapshot_date | No | monthly_storage only. Ingestion snapshot date (YYYY-MM-DD). Defaults to latest. | |
| month_of_charge | No | monthly_storage only. Filter by Amazon's month_of_charge value from the report. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds real context beyond that: the two report families, the ASIN/FNSKU/SKU grain, and an explicit scope limit on AWD fees. It stops short of describing pagination flow or date-window behavior, though the schema and output schema cover those.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, and the scope boundary is front-loaded after the core purpose. The grain and variant enumeration are dense but each clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 14 well-documented parameters, full annotations, and an output schema, the description covers what is missing: what the tool returns, at what grain, and what it deliberately excludes. A brief note on how the two views differ in date semantics would close the remaining gap, but nothing an agent needs to call it is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. The description reinforces the monthly vs long-term split and the reporting grain, but the view-specific defaults and date constraints are already fully documented in the schema, so it adds little beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb (returns) and resource (FBA storage fee report rows), states the grain it returns (ASIN/FNSKU/SKU), and enumerates both report variants. It also draws an explicit boundary ('This is FBA only; AWD fee reports are not exposed'), which distinguishes it from AWD siblings like get_awd_inventory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes clear which view yields which report family and implicitly steers the caller by naming what is not covered (AWD fees). However, it never names an alternative tool for adjacent needs (e.g. product fee estimates, financial events, profitability review), so routing vs siblings is left to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_financial_eventsFinancial eventsARead-onlyInspect
Return Finances v0 financial-event rows and deterministic ASIN economics. view='fee_breakdown' returns raw order components when order_id is supplied; otherwise grain='asin' returns the existing ASIN pivot, grain='order_item' returns bulk order/SKU/ASIN fee pivots, and grain='raw_component' returns component rows across the date range. view='profitability' returns ASIN-level shipment_principal, source-signed refund_principal, source-signed refund_net, revenue, fees, tax, net, units, refund-event coverage, and data-gap fields. revenue remains shipment_principal + refund_principal for backward compatibility. Its money fields are selected by financial-event posted_date, not order date; order_item_revenue is an independently filtered purchase-date reference, so posted-date economics must not be subtracted from order-date sales as though both cutoffs represented the same orders. Fees on off-Amazon fulfillment (MCF) orders, which carry no Principal, are excluded from total_fees and net_profit and returned in off_amazon_fulfillment_fees (net_including_off_amazon_fulfillment reconciles); prior_period_order_share reports how much posted shipment principal came from orders placed before start_date. Profitability includes Shipment/Refund events only and excludes all ad spend, FBA storage fees, inbound freight, COGS, and account-level Adjustment/ServiceFee events; responses expose date_basis, scope, excluded_costs, and reconciliation_note. Account-level Adjustment/ServiceFee rows remain available with view='fee_breakdown' and grain='raw_component', where they are surfaced for any marketplace key. Rows are attributed to the marketplace Amazon reports for each event, and a marketplace's rows can include components in another currency (for example cross-border fees), so money is scoped to the marketplace currency by default; set include_all_currencies=true to include all component currencies (amounts are then mixed across currencies and should not be summed). Rows carry data_gap='no_refund_events_in_period' when refund adjustments are absent. For pre-settlement Transaction View rows use get_payment_transactions; for finalized settlements use get_settlement_economics.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | No | Filter by ASIN | |
| view | No | Financial events view: fee_breakdown returns fee components by ASIN/order grain; profitability returns ASIN economics over financial events. | fee_breakdown |
| grain | No | fee_breakdown view only. Date-range output grain when order_id is omitted: asin returns the existing ASIN pivot; order_item returns one row per posted_date/order_id/ASIN/SKU/event_type with common fee components pivoted; raw_component returns one row per fee component. | asin |
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by. Allowed columns depend on view and order_id mode. | |
| end_date | No | Optional. YYYY-MM-DD end date for posted_date. | |
| order_id | No | fee_breakdown view only. Specific order ID returns raw component rows for that order. | |
| sort_order | No | Sort direction | desc |
| start_date | No | Optional. YYYY-MM-DD start date for posted_date. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. | |
| include_all_currencies | No | By default, money is scoped to the marketplace currency so amounts are not summed across USD/CAD/MXN etc. Set true to include all component currencies (amounts are then mixed and should not be summed). |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this as a safe read, and the description piles on genuinely useful behavior: what profitability excludes (ad spend, FBA storage, inbound freight, COGS, Adjustment/ServiceFee events), how MCF fees are segregated from total_fees/net_profit, the posted_date vs order-date distinction, data_gap flags, and the currency-mixing hazard of include_all_currencies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening sentence is appropriately front-loaded, but the body is a single dense block with reconciliation caveats, exclusion lists, and cross-references interleaved rather than grouped. Nearly every clause carries information, yet the flat structure makes it hard to scan for the one or two facts an agent needs for a given call.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter, multi-mode read tool with an output schema and full annotation coverage, the description supplies the scoping, exclusion, reconciliation, and currency semantics an agent needs to interpret results correctly. The remaining mechanics (sort columns, pagination offsets) are already handled by the schema and need no restatement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter is already documented, so the baseline is 3; the description goes beyond it by explaining the view/grain interaction (grain only matters when order_id is omitted), the meaning of include_all_currencies summing risk, and which money fields each view emits. It does not add format or syntax detail for the date/pagination params, keeping it just short of a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource (Finances v0 financial-event rows plus ASIN economics) and enumerates the two views and three grains, so an agent can tell exactly what the tool returns. It also explicitly disambiguates from siblings by naming get_payment_transactions and get_settlement_economics with the conditions that select them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states when each mode applies ('view=fee_breakdown' with order_id vs date-range grains; 'profitability' for ASIN economics) and gives explicit when-not routing: pre-settlement rows go to get_payment_transactions and finalized settlements to get_settlement_economics. Alternatives and their selecting conditions are spelled out rather than implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_inbound_shipmentsInbound shipmentsARead-onlyInspect
Get FBA inbound shipment data — shipment IDs, statuses, destination fulfillment centers, and current-state refresh dates. snapshot_date is when a shipment's data was last refreshed. Amazon's legacy shipment-list response does not provide a creation timestamp; created_at is a best-effort inference from a date embedded in shipment_name, and created_at_source identifies that inference. Ambiguous unverified date formats and future inferred dates return null instead of a silently incorrect date. Amazon does not provide a per-shipment received or closed timestamp here; for when units were received at the fulfillment center use get_inventory_movements with event_type=Receipts (reference_id is the inbound shipment ID), or get_shipment_receiving_status for shipped-vs-received quantities per SKU. Inbound shipments are account/region-level data (no native marketplace): rows surface tenant-wide for any marketplace-scoped key and are anchored to the tenant's primary marketplace.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by. created_at is inferred from shipment_name when available; snapshot_date is the reliable refresh date. | snapshot_date |
| end_date | No | Optional. YYYY-MM-DD. Only include shipments last refreshed on or before this date. | |
| sort_order | No | Sort order | desc |
| start_date | No | Optional. YYYY-MM-DD. Only include shipments last refreshed on or after this date. | |
| shipment_status | No | Filter by status (e.g., WORKING, SHIPPED, RECEIVING, CLOSED, CANCELLED) | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint/destructiveHint/openWorldHint already declaring a safe read, the description still adds substantial context: snapshot_date is the last-refresh date, created_at is a best-effort inference from shipment_name with created_at_source flagging it, ambiguous or future dates return null rather than a wrong value, and no per-shipment received/closed timestamp exists. The account/region-level scoping caveat (no native marketplace) is also disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the tool's purpose before the caveats, and every sentence carries actionable information with no filler. It is dense and somewhat long, but that length is justified by the data-model quirks it must convey.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter read tool with an output schema and annotations, the description covers the remaining burdens: what fields are returned, how inferred dates behave, sibling routing for related timestamps, and marketplace scoping. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 genuinely enriches semantics — it clarifies that snapshot_date is the reliable refresh date while created_at is inferred, and that created_at_source identifies the inference, which the schema alone does not convey. It does not add meaning for limit/offset/sort_order beyond the already-complete schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (FBA inbound shipment data) and enumerates the returned fields — shipment IDs, statuses, destination fulfillment centers, refresh dates. It also distinguishes itself from related siblings by naming get_inventory_movements and get_shipment_receiving_status, so an agent can place it precisely in the toolset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent elsewhere when the needed data is not here: use get_inventory_movements with event_type=Receipts for receipt timing, or get_shipment_receiving_status for shipped-vs-received quantities per SKU. Both the condition and the alternative are stated, which is the strongest form of usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_inventory_by_fulfillment_centerInventory by fulfillment centerARead-onlyInspect
Per-fulfillment-center on-hand inventory. Returns the absolute ending warehouse balance per ASIN, SKU, fulfillment center (FC code like ONT8), and disposition, plus the day's signed flow components (receipts, customer shipments, customer returns, warehouse transfers, in-transit). Use this — not get_fba_inventory — when the user asks about FC-level, per-warehouse, geographic, or geo distribution of inventory. Source: Amazon Inventory Ledger Summary View (GET_LEDGER_SUMMARY_VIEW_DATA, aggregateByLocation:FC). Defaults to the most recent snapshot date. Ledger summary data is account/region-level (no native marketplace): rows surface tenant-wide for any key and are anchored to the tenant's primary marketplace.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Filter by SKU | |
| asin | No | Filter by ASIN | |
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by | ending_warehouse_balance |
| sort_order | No | Sort order | desc |
| disposition | No | Filter by disposition (e.g. SELLABLE, CUSTOMER_DAMAGED, DEFECTIVE). | |
| snapshot_date | No | Snapshot date (YYYY-MM-DD). Defaults to the latest available date in the ledger summary. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| fulfillment_center | No | Filter by a specific fulfillment center code (e.g. ONT8). | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds substantial context beyond them: the upstream source (Inventory Ledger Summary View, aggregateByLocation:FC), the default snapshot behavior, and the crucial caveat that ledger data is account/region-level with rows surfacing tenant-wide and anchored to the primary marketplace. That marketplace scoping caveat is genuinely useful behavioral disclosure for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and result shape, then routing and provenance. Dense but each sentence carries distinct information (scope, fields, alternative, source, marketplace caveat). Slightly packed, but no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Though an output schema exists (so return values needn't be explained), the description still covers the operationally important gaps: default snapshot date, the FC-vs-FBA routing decision, and the tenant-wide/primary-marketplace scoping caveat. Nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all 11 parameters, establishing a baseline of 3. The description adds marginal value by echoing FC code format and snapshot defaulting, but does not add syntax or semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Per-fulfillment-center on-hand inventory') and enumerates exactly what is returned: ending warehouse balance per ASIN, SKU, FC code, and disposition plus the day's signed flow components. It also names the sibling it is not (get_fba_inventory), so an agent can route without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit selection rule: 'Use this — not get_fba_inventory — when the user asks about FC-level, per-warehouse, geographic, or geo distribution of inventory.' Both the when and the alternative are stated, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_inventory_healthInventory healthARead-onlyInspect
Returns FBA inventory health snapshot fields: age buckets, capped weeks of cover, storage fee risk, sell-through, and Amazon recommended order quantity by SKU/ASIN. Reimbursement placeholder SKUs are filtered by default; set include_synthetic_skus=true to include rows flagged with is_synthetic. For raw FBA stock counts use get_fba_inventory; for cross-signal risk rankings use get_inventory_risk_triage.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Filter by SKU | |
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by | available |
| sort_order | No | Sort order | desc |
| excess_only | No | Only show items with estimated LTSF charges > 0 | |
| min_age_days | No | Only show items with inventory older than N days (uses inv_age columns) | |
| snapshot_date | No | Snapshot date (YYYY-MM-DD). Defaults to latest. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. | |
| include_synthetic_skus | No | Include reimbursement placeholder SKUs such as FBA...missing1. Defaults to false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds genuinely non-obvious behavior: synthetic/placeholder SKUs are filtered out by default, and rows carry an is_synthetic flag. It does not discuss row volumes, snapshot staleness, or rate limits, but what it adds beyond the annotations is real.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly packed sentences: output scope first, then the one non-obvious default with its override, then sibling routing. No filler, no restatement of the title, and the most decision-relevant content is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is unnecessary, and annotations cover the safety profile. Combined with the default-filtering disclosure and explicit sibling routing, an agent has everything needed to select and invoke this tool correctly without further context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 goes beyond the schema on the least self-explanatory parameter by defining what 'synthetic' SKUs actually are (reimbursement placeholders) and naming the is_synthetic flag, which the schema only gestures at with an example.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific verb and resource (FBA inventory health snapshot) and enumerates the exact fields returned: age buckets, capped weeks of cover, storage fee risk, sell-through, and Amazon recommended order quantity. It explicitly distinguishes itself from two named siblings, so an agent can differentiate 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It routes explicitly: get_fba_inventory for raw stock counts, get_inventory_risk_triage for cross-signal risk rankings. It also tells the agent when to flip include_synthetic_skus (only when reimbursement placeholder rows are wanted), which is an actionable when-to-use rule rather than an implied one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_inventory_movementsInventory movementsARead-onlyInspect
Get inventory ledger movements — shipments, receipts, adjustments, customer orders, and returns by date/ASIN/SKU. reference_id is the source document for each movement: for Receipts events it is the inbound FBA shipment ID, so receipts can be joined to get_inbound_shipments (shipment_id) to estimate created-to-received time when created_at_source confirms a shipment-name inference. date_and_time is the event timestamp (UTC). Ledger movements are account/region-level data (no native marketplace): rows surface tenant-wide for any marketplace-scoped key and are anchored to the tenant's primary marketplace.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Filter by SKU | |
| asin | No | Filter by ASIN | |
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by | date |
| end_date | No | Optional. YYYY-MM-DD end date. | |
| event_type | No | Filter by event type (e.g. Shipments, Receipts, CustomerOrders) | |
| sort_order | No | Sort order | desc |
| start_date | No | Optional. YYYY-MM-DD start date. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false). The description adds genuinely non-obvious behavior: ledger rows are account/region-level with no native marketplace, surface tenant-wide for any marketplace-scoped key, and anchor to the tenant's primary marketplace, plus a UTC timestamp note. This is valuable context the annotations cannot convey, though it doesn't discuss result volume or freshness limits beyond the schema's diagnostics flag.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the tool's purpose followed by the join semantics and the marketplace caveat. It is dense and jargon-heavy but every sentence carries distinct information; no filler or restatement of the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not required, and the description covers the unusual scoping semantics an agent would otherwise get wrong. All 11 parameters are optional filters documented in the schema. The only minor omission is any note on default row limits or how to page, though the schema's limit/offset descriptions handle this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. The description goes further by explaining the meaning of reference_id and date_and_time — fields surfaced by the ledger that clarify how event_type filters behave and what the returned rows represent — which adds semantics beyond the schema's terse property descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get inventory ledger movements') and enumerates the covered event types (shipments, receipts, adjustments, customer orders, returns) plus filterable dimensions. This distinguishes it clearly from siblings like get_fba_inventory, get_inventory_by_fulfillment_center, or get_returns without needing to open their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a concrete usage pattern — joining Receipts events to get_inbound_shipments via shipment_id to compute created-to-received time — which is real guidance. However, it never states when to choose this ledger over adjacent tools such as get_fba_inventory or get_returns, so the when-to-use decision is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_inventory_risk_triageInventory risk triageARead-onlyInspect
Returns ranked inventory risk signals across FBA/AWD stock, sales velocity, inventory health, and suppressed-listing data, including days-of-cover and risk scores derived from the same coverage definition as get_days_of_cover. Grain: ASIN/SKU risk rows. Do not use for raw snapshots or movement audit; use inventory snapshot or ledger tools.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Filter by SKU. | |
| asin | No | Filter by ASIN. | |
| limit | No | Max risk rows to return (1-100, default 20). Values above 100 are clamped to 100. | |
| risk_focus | No | Risk category to focus on. Defaults to all non-healthy risks. | all |
| include_healthy | No | Set true to include healthy rows after risks. Defaults to false. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. | |
| sales_lookback_days | No | Sales velocity lookback window in days. | |
| stockout_threshold_days | No | Flag stockout risk at or below this many days of cover. | |
| overstock_threshold_days | No | Flag overstock risk at or above this many days of cover. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context beyond that: the risk scores share a coverage definition with get_days_of_cover (important for consistency), and it discloses the output grain. Return format is deferred to the existing output schema, which is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences with no filler, front-loading what is returned before the exclusions. Slightly overpacked in the first sentence (four data domains plus a cross-reference plus grain), but every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-param read-only tool with an output schema and full annotation coverage, the description supplies the essentials: scope, grain, distinguishing cross-reference, and misuse exclusions. It does not explain how the risk_focus categories interact with the day thresholds, but that gap is minor given the schema detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% across all 10 parameters, including defaults, ranges, and clamping behavior, so the schema does the heavy lifting. The description mentions days-of-cover and risk scores conceptually but adds no syntax, units, or interaction details beyond what the schema already documents. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns ranked inventory risk signals') and enumerates the domains covered: FBA/AWD stock, sales velocity, inventory health, and suppressed listings. It also declares the grain (ASIN/SKU risk rows), which lets an agent distinguish it from siblings like get_fba_inventory, get_inventory_health, and get_days_of_cover.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly excludes two misuse cases ('raw snapshots or movement audit') and points to alternatives. The guidance is clear but the alternatives are described by category ('inventory snapshot or ledger tools') rather than by exact sibling names, so an agent must still map those to get_fba_inventory or get_inventory_movements itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keyword_performanceKeyword performanceARead-onlyInspect
Returns bidded Sponsored Products keyword/target performance. Grain: keyword/target + campaign/ad group with spend, sales, ACOS, ROAS, and impression share; recent ~3 days may be incomplete. Does not include actual customer search queries or market-wide query volume; use get_search_terms or get_search_query_performance.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| keyword | No | Filter by keyword (LIKE match) | |
| sort_by | No | Column to sort by | spend |
| end_date | No | Optional. YYYY-MM-DD. Defaults to today if omitted. | |
| profile_id | No | Filter by profile ID | |
| sort_order | No | Sort order | desc |
| start_date | No | Optional. YYYY-MM-DD. Defaults to 30 days ago if omitted. | |
| keyword_type | No | Filter by keyword type | |
| campaign_name | No | Filter by campaign name (LIKE match, use % for wildcards) | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds meaningful context beyond that: the aggregation grain, the impression-share metric, and a freshness caveat ('recent ~3 days may be incomplete') that an agent would otherwise not know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly packed sentences, front-loaded with the core purpose, then grain/freshness, then the exclusion and alternative. No filler; every clause adds routing or behavioral value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations cover the safety profile. The description covers grain, scope boundaries, freshness, and alternatives, leaving only minor gaps (e.g., pagination behavior is in the schema, not here).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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; every parameter (sort_by, limit, offset, date fields, filters) is documented in the schema. The description adds the notion of grain and metric set but no syntax or format detail for the parameters themselves.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Returns) and resource (bidded Sponsored Products keyword/target performance), plus the exact grain (keyword/target + campaign/ad group). It explicitly distinguishes itself from query-level siblings by naming get_search_terms and get_search_query_performance, so an agent can route 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit negative boundary ('Does not include actual customer search queries or market-wide query volume') and routes to two named alternatives. This is strong when-not guidance, though it doesn't contrast against the other performance-granularity siblings (campaign/ad group) by name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keyword_ranksKeyword ranksARead-onlyInspect
Return keyword rank snapshot data from the keyword rank table. view='positions' returns rank positions across a date range (defaults to the trailing 7 days), view='changes' compares two rank snapshots (defaults to the two most recent), and view='with_volume' joins a rank snapshot (defaults to the latest) to the SQP week containing that date for search volume and share metrics.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | No | Filter by ASIN (exact match) | |
| view | No | Rank view: positions returns keyword rank rows per snapshot_date; changes compares two snapshots; with_volume joins rank rows to SQP weekly volume/share. | positions |
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| keyword | No | Filter by keyword (LIKE match, use % for wildcards) | |
| sort_by | No | Column to sort by. Allowed columns depend on view. | |
| end_date | No | positions view. Optional YYYY-MM-DD. Defaults to start_date if omitted. | |
| max_rank | No | positions/with_volume views. Maximum rank position to include (e.g. 20 = page 1 only) | |
| min_rank | No | positions view. Minimum rank position (e.g. 1 = only page 1) | |
| min_change | No | changes view. Minimum absolute rank change to include (filters noise) | |
| min_volume | No | with_volume view. Minimum search query volume | |
| sort_order | No | Sort order. Defaults depend on view. | |
| start_date | No | positions view. Start date (YYYY-MM-DD). Defaults to a trailing 7-day window when omitted. | |
| compare_date | No | changes view. The earlier snapshot date to compare against (YYYY-MM-DD). When both current_date and compare_date are omitted, the two most recent snapshots are compared. | |
| current_date | No | changes view. The more recent snapshot date (YYYY-MM-DD). When both current_date and compare_date are omitted, the two most recent snapshots are compared. | |
| snapshot_date | No | with_volume view. Rank snapshot date (YYYY-MM-DD). Defaults to the latest available snapshot when omitted. SQP volume is auto-matched to the week containing this date. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds genuinely new behavioral context beyond that: view-specific date defaults and the fact that with_volume joins to the SQP week containing the snapshot date. It omits response/pagination behavior, but an output schema exists to cover that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single front-loaded sentence that names the resource first, then enumerates the three views with their defaults. Each clause earns its place, and there is no filler, though the dense per-view enumeration is somewhat packed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 18 parameters, an output schema, and full annotations, the description needs to add mode-selection context rather than restate structured fields, and it does so across all three views. It is complete enough for an agent to select this tool and a view, with only sibling routing left unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all 18 parameters, including the view enum and per-view date fields. The description restates the view semantics rather than adding syntax or format detail beyond the schema. Baseline 3 is appropriate when the schema carries the parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Return') and resource ('keyword rank snapshot data from the keyword rank table'), then distinguishes the three modes (positions/changes/with_volume). It is clear what the tool does, but it does not differentiate itself from closely related siblings such as get_current_rank, get_keyword_performance, or get_sales_ranks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives strong in-tool routing guidance: it states what each view returns and each view's default behavior (trailing 7 days, two most recent snapshots, latest snapshot). This tells the agent when to pick each view. It does not, however, state when to reach for this tool versus sibling rank tools, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_listing_content_changesListing content changesARead-onlyInspect
Return factual listing-content changes from agentcentral-retained snapshots. Diffs title, brand, description, product type, status/classification, browse classifications, item/package dimensions, main image, bullets, and image set from append-only Catalog Items history, plus backend generic_keyword from weekly Listings Items snapshots. Returns one row per changed field with source snapshot dates. Amazon exposes no native listing edit-history API; first-snapshot accounts report insufficient retained history instead of claiming no change. Video and A+ module content are not diffed.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Filter to a seller SKU. Applies to the weekly backend-keyword source. | |
| asin | No | Filter to a single ASIN. Exact match. | |
| limit | No | Max changed-field rows to return (1-500). Defaults to 100. | |
| fields | No | Optional changed-field allowlist. | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| end_date | No | Optional retained snapshot range end, YYYY-MM-DD. Pass with start_date. | |
| start_date | No | Optional retained snapshot range start, YYYY-MM-DD. Pass with end_date. | |
| lookback_days | No | When explicit dates are omitted, compare snapshots in this trailing window. Defaults to 30 days. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the safety profile (readOnly, non-destructive, closed-world); the description adds substantial behavioral context: data provenance (append-only Catalog Items history, weekly Listings Items snapshots), the row-per-changed-field shape, and a critical edge case where first-snapshot accounts return 'insufficient retained history' instead of a misleading 'no change'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences with the core purpose front-loaded and no filler, though the middle sentence is heavily jargoned and packs both source systems and the full field list into one breath. Every sentence earns its place, but readability suffers slightly from density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter read tool with an output schema and full schema description coverage, the description supplies everything an agent needs: scope, sources, coverage limits, and the insufficient-history fallback behavior. Return values are correctly left to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter is already documented in the schema (including the sku/asin distinction and the date-vs-lookback logic). The description only restates the field list and the generic_keyword source, adding no syntax or interaction detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Return factual listing-content changes') and then enumerates exactly which fields are diffed and from which two sources. An agent can distinguish it from get_listing_registry, get_listing_quality, or get_action_history purely from this text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies the usage context clearly and justifies itself against the absent native option ('Amazon exposes no native listing edit-history API'), and it defines a boundary ('Video and A+ module content are not diffed'). It does not, however, name a sibling alternative to prefer for adjacent questions, so it stops short of explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_listing_offersListing offersRead-onlyInspect
Return the seller's own listing price economics per SKU/child ASIN from a Listings Items materialization, with completed per-SKU post-write refresh overlays when available. Compatibility scalars describe the ALL-audience price; structured purchasable_offer preserves all consumer and B2B schedules and quantity tiers, and listing_issues preserves Amazon issue code, severity, and enforcements. This does not make broad live SP-API calls; it is distinct from competitive/Buy Box pricing.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Filter by seller SKU (exact match). | |
| asin | No | Filter by ASIN (exact match). | |
| limit | No | Max rows (1-1000). Defaults to 100. | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by. Defaults to asin. | |
| sort_order | No | Sort order. Defaults to asc. | |
| on_sale_only | No | Return only SKUs with an active or scheduled sale price. Defaults to false. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. | |
| include_synthetic_skus | No | Include reimbursement placeholder SKUs. Defaults to false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
get_listing_qualityListing qualityARead-onlyInspect
Return weekly Listings Items API quality snapshots. view='summary' returns listing completeness, issue counts, and quality status; view='issues' returns Amazon listing issue codes, affected attributes, and raw issue details. Reimbursement placeholder SKUs are filtered by default. Snapshots refresh weekly. For a live 'is this ASIN buyable right now' check, fan out across get_buybox_status, get_listing_restrictions, and get_fba_eligibility (all live SP-API), and cross-reference get_suppressed_listings.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Filter by SKU | |
| asin | No | Filter by ASIN | |
| view | No | Listing quality view: summary returns listing completeness/issue counts; issues returns Amazon issue codes, attributes, and raw issue details. | summary |
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by. Allowed columns depend on view. | |
| severity | No | issues view only. Filter listings by issue severity present in the snapshot. | |
| has_issues | No | summary view only. When true, only listings with Amazon issues. When false, only listings with zero issues. | |
| issue_code | No | issues view only. Filter listings containing a specific Amazon issue code. | |
| sort_order | No | Sort order | desc |
| snapshot_date | No | Optional snapshot date (YYYY-MM-DD). Defaults to latest listing quality snapshot. | |
| attribute_name | No | issues view only. Filter listings containing an issue for this attribute name. | |
| quality_status | No | summary view only. Filter by computed listing quality status. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. | |
| include_synthetic_skus | No | Include reimbursement placeholder SKUs such as FBA...missing1. Defaults to false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as a safe read-only tool, and the description adds genuine behavioral context: weekly snapshot cadence, default filtering of reimbursement placeholder SKUs, and the summary-vs-issues content difference. It stops short of describing pagination or result shape, but the cadence and filtering notes are real value beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose and view semantics before the alternative-tool guidance. The sentences are dense but each carries information; the closing alternative-fan-out sentence is longer but earns its place by preventing misuse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explained, and the description covers the view modes, default filtering, and freshness cadence well for a complex 16-parameter tool. Minor gaps remain around pagination behavior, which the schema's offset description partly covers.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all 16 parameters including view, severity, and the view-scoped filters. The description restates the two view meanings but adds no syntax or format detail beyond the schema, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Return weekly Listings Items API quality snapshots') and immediately distinguishes its two view modes, giving an agent a clear sense of what it produces versus sibling listing tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the alternative path: for a live buyability check, fan out across get_buybox_status, get_listing_restrictions, and get_fba_eligibility, and cross-reference get_suppressed_listings. This correctly routes the agent away from this weekly-snapshot tool when live data is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_listing_registryListing registryARead-onlyInspect
Return latest active listing and catalog data. view='listings' returns ASIN/SKU rows with available title, brand, product type, bullet points, description, backend generic keywords, Amazon listing creation date, price, quantity, and fulfillment fields; view='search' discovers or sorts the same listing rows by product/brand/title/SKU/ASIN text or creation date; view='brand_asins' resolves the active ASIN set for a catalog brand. Content prefers Catalog Items data and falls back to Listings Items quality or seller active-listings data. Reimbursement placeholder SKUs are filtered by default.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Filter by seller SKU. Exact match for listings, substring match for search. | |
| asin | No | Filter by ASIN. Exact match for listings/brand_asins, substring match for search. | |
| view | No | Registry view: listings returns latest active listing rows; search discovers listings by text filters; brand_asins resolves active ASINs for a catalog brand. | listings |
| brand | No | search or brand_asins view. Brand text filter; required for brand_asins. | |
| limit | No | Max rows (1-1000). Defaults to 20 for listings/search and 1000 for brand_asins. | |
| query | No | search view only. Case-insensitive substring search across ASIN, SKU, listing name, catalog title, and catalog brand. | |
| title | No | search view only. Case-insensitive substring filter on active listing item_name or catalog title. | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by. Allowed columns depend on view. | |
| sort_order | No | Sort order. Defaults to asc. | |
| brand_match | No | brand_asins view only. Brand matching mode. contains is case-insensitive substring matching; exact requires normalized equality. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. | |
| include_title_matches | No | brand_asins view only. Also include active listings whose item_name or catalog title contains the brand text when catalog brand does not match. | |
| include_synthetic_skus | No | Include reimbursement placeholder SKUs such as FBA...missing1. Defaults to false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered; the description adds substantive behavioral context beyond them: data provenance preference for Catalog Items with fallback to Listings Items quality or seller active-listings data, and the default filtering of reimbursement placeholder SKUs. This discloses non-obvious behavior an agent would otherwise miss.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The paragraph is front-loaded with the view semantics followed by data-source and filtering notes. It is efficient overall, though the view definitions partially duplicate the schema's enum descriptions, which is minor redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations covering the safety profile, the description needn't explain return values, and it covers views, provenance, and default filtering adequately for a 15-parameter tool. The only gap is the absence of guidance on how it relates to the many sibling listing/catalog tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 and the schema already documents every parameter, including the view enum and the include_synthetic_skus default. The description restates the view meanings and the reimbursement-filter behavior rather than adding format or interaction detail the schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a precise verb+resource and enumerates exactly what each of the three views returns (ASIN/SKU rows, searchable/sortable rows, resolved brand ASIN set), so an agent knows the scope without opening the schema. It does not, however, differentiate from siblings like get_listing_quality, get_offer_listings, or get_suppressed_listings, which also touch listing data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states when each view applies ('search' discovers or sorts by text or creation date; 'brand_asins' resolves active ASINs for a catalog brand), which is real routing guidance. It stops short of naming when to choose this tool over the neighboring listing/product tools or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_listing_restrictionsListing restrictions (live)ARead-onlyInspect
Check listing restrictions for an ASIN (live SP-API). Returns any restrictions on selling the product in a specific condition, including approval requirements and reasons. One of the buyability signals: pair with get_buybox_status, get_fba_eligibility, and get_suppressed_listings for a full 'can buyers buy this right now' check.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | Yes | ASIN to check restrictions for | |
| reason_locale | No | Optional locale for localized reason text, for example en_US | |
| condition_type | No | Product condition to check restrictions for | new_new |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds meaningful context beyond that: this is a live SP-API call returning restrictions, approval requirements, and reasons, telling the agent what to expect from a read. It does not add caveats like rate limits or freshness beyond 'live'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the core action front-loaded and the sibling-pairing guidance placed last where it aids routing. No filler, though the third sentence is somewhat long and could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needn't explain return values, and annotations cover the read-only safety profile. It supplies enough to call the tool correctly (what it checks, per condition, and how it relates to sibling signals). It could be a 5 with an explicit note on when this tool is the right choice versus the named siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the enum, defaults, and per-parameter descriptions fully documented, so the schema already carries parameter meaning. The description only restates the ASIN and 'specific condition' at a high level and adds no syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Check), a precise resource (listing restrictions), and the scope (for an ASIN via live SP-API). It distinguishes itself from siblings by naming get_buybox_status, get_fba_eligibility, and get_suppressed_listings as complementary signals, so an agent can place it correctly among the many get_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly frames the tool as one of the 'buyability signals' and explicitly directs the agent to pair it with three named siblings for a full check, which gives strong usage context. It stops short of stating when NOT to use it or the exact precondition that selects it over those siblings, so it is clear but not fully exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_basketMarket basketARead-onlyInspect
Return weekly Amazon Brand Analytics Market Basket pair facts at primary-ASIN × paired-ASIN grain: Amazon purchased-with rank, combination percentage, report dates, and marketplace. Defaults to the latest complete Sunday-Saturday week. The tool does not label pairs as opportunities or recommend cross-sells.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by. | pair_rank |
| end_date | No | Optional report-week end upper bound (YYYY-MM-DD). Defaults to the latest complete Sunday-Saturday week. | |
| max_rank | No | Maximum Amazon-reported purchased-with rank. | |
| sort_order | No | Sort direction. | asc |
| start_date | No | Optional report-week start lower bound (YYYY-MM-DD). Defaults to the latest complete Sunday-Saturday week. | |
| paired_asin | No | Filter by the ASIN purchased with the primary ASIN. | |
| primary_asin | No | Filter by the primary purchased ASIN. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. | |
| min_combination_pct | No | Minimum Amazon-reported combination percentage. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safe-read profile (readOnlyHint true, destructiveHint false, openWorldHint false), so the description only needs to add behavior. It does: the implicit default time window and the explicit refusal to produce opportunity labels or cross-sell recommendations, which prevents an agent from misreading the output as advice. Pagination and freshness behavior live in the schema, so the remaining gap 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no filler: the first front-loads the grain and the facts returned, the second states the default window, the third states the scope boundary. Each sentence carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter read tool with a fully described schema and an output schema in place, the description covers what structured fields cannot: the analytical grain, the default reporting window, and the deliberate absence of recommendations. Nothing an agent needs to select or invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across all 12 parameters, so the baseline is 3. The description contributes the ASIN-pair grain and the default week semantics, which help interpret primary_asin/paired_asin and the date bounds, but it adds no syntax or constraint detail beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ('Return weekly Amazon Brand Analytics Market Basket pair facts') and pins the grain precisely at primary-ASIN × paired-ASIN, then enumerates the returned facts (purchased-with rank, combination percentage, report dates, marketplace). That grain/field specificity clearly separates it from neighbors like get_purchased_products, get_repeat_purchase_behavior, and get_product_performance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear operating context — default is the latest complete Sunday-Saturday week — and an explicit scope exclusion: it does not label opportunities or recommend cross-sells. It does not name an alternative sibling or state when to reach for a different tool, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mcf_ordersMCF ordersARead-onlyInspect
List Multi-Channel Fulfillment (MCF) orders. Shows order status, destination, shipping speed, and dates. Pass an order_id to get shipment and tracking details for one order. Defaults to last 30 days.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | No | Optional seller fulfillment order ID to inspect shipment and tracking details for one order | |
| start_date | No | Optional. YYYY-MM-DD start date for order lookup. Defaults to 30 days ago. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=true) and an output schema covers returns, so the description's job is to add operational context — which it does by disclosing the default 30-day window and the two distinct retrieval behaviors. It omits pagination or result-volume limits, keeping it short of 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core purpose, then the detail mode, then the default window. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations carrying safety and an output schema carrying the return shape, the description only needs to explain modes and scope, which it does. Minor remaining gap: no guidance on result limits or how to page through large order histories.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented; baseline 3 applies. The description reinforces order_id's dual role and the default window but adds no syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("List Multi-Channel Fulfillment (MCF) orders") and enumerates the fields surfaced (status, destination, shipping speed, dates). The MCF qualifier distinguishes it by resource from generic siblings like get_orders, though it never explicitly names an alternative for non-MCF orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete context for the two modes: pass order_id for single-order shipment/tracking detail, otherwise it defaults to the last 30 days. However it names no alternatives and gives no when-not guidance (e.g., when to use get_orders or get_order_details instead).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_offer_listingsOffer listings (live)ARead-onlyInspect
See who is selling a product right now (live SP-API). Returns current Amazon offer listings for an ASIN, including seller IDs, pricing, fulfillment method, seller feedback, and Buy Box status. Use offer_count == 0 as a buyability signal alongside get_buybox_status, get_listing_restrictions, and get_fba_eligibility.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | Yes | ASIN to check offers for | |
| customer_type | No | Whether to return consumer or business offers | Consumer |
| item_condition | No | Item condition to filter offers by | New |
| include_raw_rows | No | When false, return a compact row preview. Defaults to true; large result sets are capped automatically. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful context beyond that: live SP-API freshness ('right now') and the semantic meaning of an empty offer_count. It does not discuss rate limits or truncation behavior, which the schema only hints at.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core purpose before the return fields and the usage signal. Efficient with no filler; it could tighten slightly but every sentence carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 spelled out, yet the description still frames them usefully. Annotations carry the safety profile and the schema covers all parameters, leaving little an agent needs that is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (asin, customer_type, item_condition, include_raw_rows, include_diagnostics) are already documented in structured form. The description adds no syntax or default guidance beyond what the schema provides, which is the correct baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('See who is selling a product right now') and enumerates the returned fields (seller IDs, pricing, fulfillment method, feedback, Buy Box). Scope is sharpened by 'live SP-API'. It does not, however, differentiate itself from the similarly named sibling get_listing_offers, leaving ambiguity an agent must resolve.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit consumption signal ('offer_count == 0 as a buyability signal') and names three complementary tools (get_buybox_status, get_listing_restrictions, get_fba_eligibility). What it omits is when to pick this over get_listing_offers, the closest sibling, so routing is only partially solved.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_order_detailsOrder detailsARead-onlyInspect
Use after you know an Amazon order_id to inspect one order's header and line items. Grain: single order with item-level ASIN/SKU/title/quantity/price and pallet_delivery_requirement. pallet_delivery_requirement is Amazon's buyer-selected per-item delivery constraint: mandatory means Amazon returned MANDATORY; not_required means FULFILLMENT shipping data was requested and did not require a pallet; unknown means legacy, report-backed, or unavailable/malformed data and is never ordinary-parcel confirmation. Amazon's Orders API omits monetary fields while payment is unauthorized; Pending FBA rows can be enriched from Amazon's order-tracking report and disclose item_price_source='amazon_order_tracking_report'. Unavailable prices are null, never a synthetic zero. When every line is priced, item_subtotal_amount exposes their exact sum; order_total_amount remains null until Amazon supplies the full order total, and Pending values remain non-final. purchase_date is the seller reporting date; purchase_at and purchase_date_utc are included for UTC audit. Do not use for order discovery or sales totals; use get_orders or get_sales_summary first.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | The Amazon order ID to look up | |
| purchase_date | No | Optional. YYYY-MM-DD seller reporting purchase date. If omitted, searches the last 180 days. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint/openWorldHint/destructiveHint, so the description carries real behavioral information beyond them: null vs synthetic-zero pricing, item_price_source='amazon_order_tracking_report' enrichment, pending values being non-final, and what each pallet_delivery_requirement value does and does not mean. This is unusually rich disclosure for a read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the grain and prerequisites, and most sentences carry distinct semantic load (null handling, pallet semantics, pending caveats). It is dense and long, with the pallet_delivery_requirement explanation bordering on more than the selection task needs, but nothing is truly wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers prerequisite, scope, grain, data-quality caveats, and sibling routing; an output schema and read-only annotations are present, so return-shape and safety details need not be repeated. Nothing required to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all four parameters; the description's purchase_date note ('seller reporting date') largely restates it. The added detail is mostly about output fields rather than parameter semantics, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('inspect one order's header and line items') plus an explicit grain ('single order with item-level ASIN/SKU/title/quantity/price'), which cleanly separates it from get_orders and get_order_items. An agent can route to 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a prerequisite ('Use after you know an Amazon order_id') and explicit exclusions with named alternatives ('Do not use for order discovery or sales totals; use get_orders or get_sales_summary first'). That 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.
get_order_itemsOrder itemsARead-onlyInspect
Use to inspect line items across many orders in one call, filtered by seller reporting date, order status, ASIN, or fulfillment channel. Grain: one row per order line item (order_id, order_item_id, ASIN, seller SKU, title, quantities, prices, pallet_delivery_requirement). pallet_delivery_requirement is Amazon's buyer-selected per-item delivery constraint: mandatory means Amazon returned MANDATORY; not_required means requested FULFILLMENT shipping data did not require a pallet; unknown means legacy, report-backed, or unavailable/malformed data and is never ordinary-parcel confirmation. Amazon's Orders API omits monetary fields while payment is unauthorized; Pending FBA rows can be enriched from Amazon's order-tracking report. Check item_price_availability and item_price_source; unavailable monetary values are null, never a synthetic zero. Omitting start_date/end_date returns only the trailing 90 days ending today — for any prior period (a past month or last year, e.g. year-over-year) you MUST pass explicit start_date and end_date. The asin filter matches line items containing that ASIN (gross, including cancelled/zero-quantity orders), not units sold. purchase_date is the seller reporting date; purchase_at and purchase_date_utc are included for UTC audit. For per-ASIN aggregates (units/revenue over time) use get_sales_velocity; for order headers only use get_orders; for account daily totals use get_sales_summary.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | No | Filter line items containing this ASIN | |
| limit | No | Maximum number of line items to return (max 500, default 50) | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by | purchase_date |
| end_date | No | Optional. YYYY-MM-DD end date for seller reporting purchase_date. | |
| sort_order | No | Sort direction | desc |
| start_date | No | Optional. YYYY-MM-DD start date for seller reporting purchase_date. | |
| order_status | No | Filter by order status (e.g. Pending, Shipped, Canceled) | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| fulfillment_channel | No | Filter by fulfillment channel: AFN (FBA) or MFN (merchant) | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite annotations already establishing a safe read-only profile, the description adds substantial operational context: null monetary values when payment is unauthorized, item_price_availability/item_price_source checks, Pending FBA enrichment, the legacy/report-backed meaning of pallet_delivery_requirement 'unknown', and the asin filter being gross rather than units sold.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense and front-loaded: the routing sentence and grain definition come first, followed by field semantics and alternatives. Every sentence carries information, though the middle block of caveats is long enough that a reader must work to extract the calling rules.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter, optional-everything read tool with an output schema and safety annotations, the description covers scope, grain, default date behavior, filter semantics, data-quality caveats, and sibling routing. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 nevertheless adds real meaning the schema lacks — the 90-day default window for start_date/end_date, the gross-matching semantics of the asin filter, and the purchase_date (seller reporting) vs purchase_at/purchase_date_utc (UTC audit) distinction.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource and scope ('inspect line items across many orders in one call'), then defines the exact grain (one row per order line item) and lists the fields returned. It explicitly names the three siblings it is not (get_sales_velocity, get_orders, get_sales_summary) and the conditions that select them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use routing: per-ASIN aggregates -> get_sales_velocity, order headers -> get_orders, account daily totals -> get_sales_summary. It also states a hard 'when-not' rule: omitting dates silently limits results to the trailing 90 days, so any prior period REQUIRES explicit start_date/end_date.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ordersOrdersARead-onlyInspect
Use to inspect or filter channel-complete individual order headers from the Orders API by seller reporting date, status, ASIN, or fulfillment channel. Grain: one row per order. Unlike sales aggregate tools, this raw surface includes explicit Non-Amazon/MCF channels and returns sales_channel on each row. Omitting start_date/end_date returns only the trailing 90 days ending today — for any prior period (a past month or last year, e.g. year-over-year) you MUST pass explicit start_date and end_date. The asin filter matches order headers containing that ASIN (gross, including cancelled/zero-quantity orders), not units sold. purchase_date is the seller reporting date; purchase_at and purchase_date_utc are included for UTC audit. Pending orders can have order_total_amount=null because Amazon has not finalized the order total yet. Do not use as the primary tool for Amazon marketplace sales totals; use get_sales_summary for daily totals or product-level sales tools for ASIN/SKU breakdowns.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | No | Filter orders containing this ASIN | |
| limit | No | Maximum number of orders to return (max 200, default 20) | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by | purchase_date |
| end_date | No | Optional. YYYY-MM-DD end date for seller reporting purchase_date. | |
| sort_order | No | Sort direction | desc |
| start_date | No | Optional. YYYY-MM-DD start date for seller reporting purchase_date. | |
| order_status | No | Filter by order status (e.g. Pending, Shipped, Canceled) | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| fulfillment_channel | No | Filter by fulfillment channel: AFN (FBA) or MFN (merchant) | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish a safe read profile (readOnlyHint=true, destructiveHint=false), yet the description adds substantial behavior beyond them: the default 90-day trailing window, the gross 'header match including cancelled/zero-quantity orders' semantics of the asin filter, and null order_total_amount for unfinalized pending orders. This is exactly the extra context annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Long but front-loaded and dense with non-redundant facts — scope, grain, date defaults, filter semantics, null-value caveat, and sibling routing. Each sentence carries information an agent needs; nothing restates the title or schema verbatim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter, zero-required read tool with an output schema, the description covers what matters: grain, filter semantics, date-window defaults, null-value caveats, and tool selection. Return-value details are correctly left to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so 3 is the baseline, but the description adds genuine meaning the schema lacks: the asin filter matches order headers that contain the ASIN (gross, not units sold), purchase_date is the seller reporting date, and the omitted-date default. It stops short of covering a few params like include_diagnostics and include_raw_rows.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('inspect or filter channel-complete individual order headers from the Orders API') plus explicit grain ('one row per order'). It actively distinguishes itself from nearby siblings, naming get_sales_summary and product-level sales tools as the wrong choice for marketplace sales totals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-not guidance ('Do not use as the primary tool for Amazon marketplace sales totals; use get_sales_summary...') and an actionable routing rule for the date window: omitting dates returns only trailing 90 days, and any historical/YoY period requires explicit start_date/end_date.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_payment_transactionsPayment transactionsARead-onlyInspect
Get live Amazon Payments / Transaction View-style transactions from SP-API Finances v2024-06-19. Use financial_event_group_id with transaction_status=RELEASED for exact finalized disbursement-group reconciliation, following pagination until has_more is false. Use the date-window mode for recent payment/refund/deferred rows before settlement reports finalize, or order_id for one order. Returns source-provided transaction facts, statuses, identifiers, item/context fields, breakdown labels, and coverage notes; it does not prescribe seller actions.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum matching transactions in date/order modes (1-500). Financial-event-group mode returns one complete upstream page and uses page_token for continuation. | |
| detail | No | true = transaction rows; false = grouped summary by date, transaction type, status, and currency. | |
| sort_by | No | Column to sort by after fetching: posted_date, total_amount, transaction_type, or transaction_status. | posted_date |
| end_date | No | Optional. YYYY-MM-DD end date for postedDate. Defaults to today when neither related identifier is supplied; postedBefore is capped with a three-minute safety margin for Amazon's requirement. | |
| order_id | No | Optional Amazon order ID. Mutually exclusive with financial_event_group_id. Uses Amazon's ORDER_ID filter instead of postedAfter/postedBefore. | |
| page_token | No | Opaque Amazon continuation token from pagination.next_token. Continue until pagination.has_more is false before treating a financial-event-group result as complete. | |
| sort_order | No | Sort direction after fetching. | desc |
| start_date | No | Optional. YYYY-MM-DD start date for postedDate. Defaults to 30 days ago when neither related identifier is supplied. | |
| marketplace_id | No | Optional marketplace ID assertion. If supplied, it must match the tenant's selected marketplace_id after trimming; the tool always queries the tenant marketplace. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| transaction_type | No | Optional exact transactionType filter applied locally (for example Refund, Shipment, ServiceFee, FBAInventoryReimbursement). | |
| transaction_status | No | Optional Amazon transaction status filter: DEFERRED, RELEASED, or DEFERRED_RELEASED. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. | |
| financial_event_group_id | No | Optional Amazon financial event group ID for exact payment/disbursement grouping. Mutually exclusive with order_id. Uses Amazon's FINANCIAL_EVENT_GROUP_ID filter instead of postedAfter/postedBefore; use transaction_status=RELEASED for finalized reconciliation. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true, so safety is covered. The description still adds real behavioral context: it discloses what is returned (source-provided facts, statuses, breakdown labels, coverage notes) and explicitly notes it 'does not prescribe seller actions' and requires pagination to completion. It stops short of describing auth or rate-limit behavior, keeping it at 4.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and source are front-loaded, then mode selection, then return semantics. It is dense and somewhat long, but nearly every clause carries distinct information (source, modes, pagination, return shape, action stance) rather than restating the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needn't enumerate return values, and it still summarizes them. Combined with the mode-selection guidance and pagination-completion rule, an agent has everything needed to call a 14-parameter, zero-required tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline would be 3. The description goes beyond the schema by explaining how the key filter parameters select mutually exclusive modes (financial_event_group_id vs order_id vs date-window) and how transaction_status=RELEASED interacts with the group mode, adding meaning not captured in the raw field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get live Amazon Payments / Transaction View-style transactions') and pins the upstream source (SP-API Finances v2024-06-19). This distinguishes it from neighbors like get_financial_events, get_settlement_economics, and get_reimbursements without needing to open any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent across three modes: financial_event_group_id + transaction_status=RELEASED for finalized reconciliation, date-window for pre-settlement recent rows, and order_id for a single order. It also states the condition that makes a financial-event-group result 'complete' (paginate until has_more is false), which is actionable usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_placement_breakdownPlacement breakdownARead-onlyInspect
Returns Sponsored Products performance by ad placement (Top of Search, Detail Page, Other, Off Amazon) within campaigns; recent ~3 days may be incomplete. Use to compare placement-level spend, sales, ACOS, ROAS, CTR, and CVR. Does not include campaign totals, keyword performance, or organic traffic; use get_campaign_performance/get_keyword_performance/get_sales_and_traffic.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by | spend |
| end_date | No | Optional. YYYY-MM-DD. Defaults to today if omitted. | |
| profile_id | No | Filter by profile ID | |
| sort_order | No | Sort order | desc |
| start_date | No | Optional. YYYY-MM-DD. Defaults to 30 days ago if omitted. | |
| campaign_name | No | Filter by campaign name (LIKE match, use % for wildcards) | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false. The description adds genuine beyond-annotation context: a data freshness caveat that the most recent ~3 days may be incomplete, plus explicit scope boundaries. It does not mention auth/profile requirements or how the freshness diagnostics surface, which keeps it short of 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with what is returned, then the freshness caveat, then the routing exclusions. No filler and every clause carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return shape needn't be described, and all 10 parameters are fully documented in the schema. The description supplies the two things structured fields cannot: the ~3-day data lag and the scope boundaries relative to sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so limits, offsets, sort columns, date ranges, filters and the two toggles are all already documented in the schema. The description names metric dimensions but adds no syntax, defaults, or constraint detail beyond what the schema provides; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Returns) plus the exact resource (Sponsored Products performance by ad placement) and enumerates the placement values (Top of Search, Detail Page, Other, Off Amazon). It also names the sibling tools it is not (get_campaign_performance/get_keyword_performance/get_sales_and_traffic), so an agent can distinguish it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit use case is given ('Use to compare placement-level spend, sales, ACOS, ROAS, CTR, and CVR') alongside explicit exclusions (no campaign totals, keyword performance, or organic traffic) and three named alternatives that cover those gaps. This is a textbook when/when-not/alternative routing statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_portfolio_performancePortfolio performanceARead-onlyInspect
Returns Sponsored Products performance rolled up by portfolio ID, joined from campaign metrics and latest portfolio assignment snapshot. Grain: one row per portfolio. For individual campaign/ad group/keyword metrics, use the matching drilldown tool.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by | spend |
| end_date | No | Optional. YYYY-MM-DD. Defaults to today if omitted. | |
| profile_id | No | Filter by profile ID | |
| sort_order | No | Sort order | desc |
| start_date | No | Optional. YYYY-MM-DD. Defaults to 30 days ago if omitted. | |
| portfolio_id | No | Filter by portfolio ID. Use 'unassigned' for campaigns without a portfolio. | |
| campaign_name | No | Filter by campaign name (LIKE match, use % for wildcards) | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_unassigned | No | Include campaigns that are not assigned to a portfolio. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe read (readOnlyHint=true, destructiveHint=false), so the safety burden is met. The description adds genuinely useful behavioral context beyond structured fields: the join semantics (campaign metrics + latest portfolio assignment snapshot) and the rollup grain. It does not cover pagination/rate-limit behavior, but the schema handles pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with zero waste: purpose, grain, then routing. The scoping/grain information is front-loaded before the alternative-tool pointer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explained, and the 100%-covered schema handles parameters. The description covers purpose, grain, join provenance, and the drilldown alternative, which is complete for a read-only rollup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 12 parameters (including the 'unassigned' portfolio_id convention) are already documented in the schema. The description adds no parameter-level detail, so the baseline 3 for full schema coverage is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Returns Sponsored Products performance rolled up by portfolio ID') and defines the output grain ('one row per portfolio'). It also distinguishes itself from campaign/ad group/keyword drilldown siblings, so an agent can tell it apart without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent away for finer-grained metrics ('For individual campaign/ad group/keyword metrics, use the matching drilldown tool'). It gives a clear condition but names the alternative only generically rather than citing get_campaign_performance / get_keyword_performance, leaving some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_product_detailsProduct detailsARead-onlyInspect
Use for materialized product metadata for one ASIN: title, brand, product type, bullet points, description, backend generic keywords, images, item and package dimensions, status, and BSR. This is captured snapshot data, not a live Catalog Items response. Content prefers the latest captured Catalog Items row, then the latest marketplace-scoped Listings Items quality snapshot; seller listing-offer data can supply title and backend generic-keyword facts when those sources are absent. Source labels and per-source snapshot dates are returned so freshness is explicit. BSR comes in two grains: sales_rank/sales_rank_category is the most specific (sub)category rank Amazon reports, and main_category_rank/main_category is the top-level department rank (the headline '#N in ' shown on the product page). Some attributes can be null when Amazon omits them from all captured sources. Do not use for seller SKU mapping, sales, inventory, or ad performance; use get_listing_registry with view='listings' or the relevant performance tool.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | Yes | ASIN to look up | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/destructive/openWorld, but the description adds substantial context beyond them: the source-preference resolution order (Catalog Items row, then marketplace Listings Items quality snapshot, then seller listing-offer data), the fact that per-source labels and snapshot dates are returned, the two BSR grains explained with their Amazon semantics, and the nullability caveat. This is exactly the behavioral disclosure a snapshot tool needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The paragraph is long but front-loaded with purpose before the exclusion list, and nearly every sentence adds decision-relevant information (resolution order, BSR grains, nullability). It could be scanned more easily with structure, but there is little pure filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 describe return values, and it fully covers provenance, freshness signaling, BSR interpretation, and null handling. An agent has everything needed to call it correctly and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 asin, include_raw_rows, and include_diagnostics. The description contributes nothing about the parameters themselves, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('materialized product metadata for one ASIN') and enumerates the exact fields returned (title, brand, bullet points, dimensions, BSR, etc.), so an agent can distinguish it from siblings like get_listing_registry or get_sales_ranks without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use it, what it is not ('captured snapshot data, not a live Catalog Items response'), and names the alternatives with conditions: 'Do not use for seller SKU mapping, sales, inventory, or ad performance; use get_listing_registry with view= listings or the relevant performance tool.' 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.
get_product_fee_estimatesProduct fee estimatesRead-onlyInspect
Return Amazon fee estimates. view=current, history, and changes read report-backed GET_FBA_ESTIMATED_FBA_FEES_TXT_DATA snapshots; view=live requests Amazon's Product Fees API for one SKU and caller-supplied candidate price. Live results preserve Amazon-provided fee details and estimation time, and are estimates rather than actual-fee guarantees.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Filter by exact seller SKU. Required for view=live. | |
| asin | No | Filter by exact ASIN. | |
| view | No | current returns the latest report-backed snapshot; history returns bounded snapshot rows; changes compares two compatible snapshots; live requests Amazon's Product Fees API for one SKU and a caller-supplied price. | current |
| fnsku | No | Filter by exact FNSKU. | |
| limit | No | Max rows (1-1000, default 100). | |
| price | No | live only. Candidate listing price, zero or greater. | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by. Allowed columns depend on view. | |
| end_date | No | history only. Snapshot end date (YYYY-MM-DD). Defaults to today. | |
| sort_order | No | Sort direction. | desc |
| start_date | No | history only. Snapshot start date (YYYY-MM-DD). Defaults to 30 days ago. | |
| compare_date | No | changes only. Older snapshot date (YYYY-MM-DD). Pass with current_date, or omit both to compare the two latest snapshots. | |
| current_date | No | changes only. Newer snapshot date (YYYY-MM-DD). Pass with compare_date, or omit both to compare the two latest snapshots. | |
| snapshot_date | No | current only. Exact report snapshot date (YYYY-MM-DD). Defaults to latest within the bounded serving window. | |
| shipping_price | No | live only. Optional candidate shipping price. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. | |
| is_amazon_fulfilled | No | live only. Required fulfillment flag for Amazon's estimate. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
get_product_performanceProduct performanceARead-onlyInspect
Use for Sponsored Products advertised ASIN/SKU performance by campaign/ad group: SP spend, clicks, sales, ACOS, ROAS, same-SKU sales; recent ~3 days may be incomplete. This is not total ad spend for an ASIN or brand: it excludes Sponsored Brands, DSP, and any campaign spend not tied to the ASIN as the advertised product. Do not use for total organic+paid product sales or products bought after an ad click; use get_sales_and_traffic/get_tacos or get_purchased_products.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | No | Filter by advertised ASIN (exact match) | |
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by | spend |
| end_date | No | Optional. YYYY-MM-DD. Defaults to today if omitted. | |
| profile_id | No | Filter by profile ID | |
| sort_order | No | Sort order | desc |
| start_date | No | Optional. YYYY-MM-DD. Defaults to 30 days ago if omitted. | |
| campaign_name | No | Filter by campaign name (LIKE match, use % for wildcards) | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the bar is lower. The description still adds real value by disclosing a data-freshness caveat ('recent ~3 days may be incomplete') and by scoping what spend is and is not included, which is behavioral context not present in 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences that are front-loaded with the primary use case, followed by scope exclusions and then routing to alternatives. Every clause carries information, though the sentence packing is heavy and could be split for scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explained, and the description covers scope, freshness, and alternatives thoroughly. Minor gaps remain: no mention of the default 30-day window or pagination behavior, though both are fully specified in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all 11 parameters (asin, dates, sort_by, pagination, etc.). The description's mention of 'by campaign/ad group' and the metric list loosely maps to sort_by values but adds no syntax, default, or format detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: Sponsored Products advertised ASIN/SKU performance broken down by campaign/ad group, listing the exact metrics (spend, clicks, sales, ACOS, ROAS, same-SKU sales). It explicitly carves itself out from siblings like get_adgroup_performance and get_campaign_performance by naming the ASIN/SKU attribution scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use ('use for Sponsored Products advertised ASIN/SKU performance'), an explicit exclusion ('not total ad spend for an ASIN or brand'), and names concrete alternatives with their conditions: get_sales_and_traffic/get_tacos for total organic+paid sales, get_purchased_products for post-click purchases. 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.
get_product_reviewsProduct reviewsARead-onlyInspect
Summarize Amazon Customer Feedback review topics for a child ASIN. Returns the top positive and negative topics, mentions, occurrence percentages, star-rating impact, snippets, and subtopics. Data is refreshed weekly by Amazon.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | Yes | Child ASIN to look up review topics for. | |
| sort_by | No | Sort topics by mention volume or star-rating impact. | MENTIONS |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so safety is covered. The description adds genuinely non-obvious behavioral context the annotations cannot convey: the data is refreshed only weekly by Amazon, so results can be stale, and it describes the shape of the topic summary (positive/negative topics, mentions, occurrence percentages, star-rating impact, snippets, subtopics).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the core purpose front-loaded and no filler. The middle sentence enumerating return fields mildly duplicates the output schema rather than adding new information, which keeps it short of a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema, annotations covering safety, and full parameter coverage, the description only needs to add freshness and scope context - both of which it provides. The one material omission is any signal distinguishing it from get_review_trends in this large sibling set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage and inline descriptions for asin, sort_by, include_raw_rows and include_diagnostics, the schema carries all parameter meaning. The description adds nothing parameter-level (it never explains sort_by, the compact-row flag, or the diagnostics flag), so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Summarize) and resource (Amazon Customer Feedback review topics) scoped to a child ASIN, and enumerates the returned topic dimensions. That is far more concrete than a tautological title, but it never distinguishes itself from the closely named sibling get_review_trends, so an agent must infer the split.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for a child ASIN' implies the intended scope (child rather than parent listings), and the weekly refresh note hints at freshness limits, but there is no explicit when-to-use statement, no when-not-to-use, and no routing to or away from the near-identical sibling get_review_trends.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_profitability_reviewProfitability reviewARead-onlyInspect
Returns ranked ASIN profitability issue signals from Shipment/Refund financial-event net, FBA reimbursements, returns, Business Reports sales and units, and SP/SD product ad spend. Financial-event revenue, fees, tax, and marketplace net are selected by posted_date, not order date; Business Reports use their order-date basis, while ads, returns, and reimbursements use their own source dates. The same requested window can therefore contain different transaction cohorts near its cutoffs and must not be treated as one order-date cohort without accounting for posting lag. Account-level Adjustment/ServiceFee financial events are excluded because they cannot be deterministically attributed to an ASIN. Fees on off-Amazon fulfillment (MCF) orders, which carry no Principal, are excluded from fees, net, and contribution and returned in off_amazon_fulfillment_fees; prior_period_order_share reports how much posted principal came from orders placed before the period. Set include_sponsored_brands=true to return exact SB campaign spend once in summary.account_level_costs as an unallocated account-level cost. It is not allocated to, deducted from, or repeated across ASIN rows. Responses expose date_basis, scope, excluded_costs, and reconciliation_note. DSP ad spend, FBA storage fees, inbound freight, COGS, and account-level Adjustment/ServiceFee events remain excluded. Money is scoped to the marketplace currency by default; set include_all_currencies=true to include mixed currencies. A data gap reports when Refund financial events are absent in the period.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Filter by SKU. | |
| asin | No | Filter by ASIN. | |
| limit | No | Max review rows to return. | |
| end_date | No | Optional. YYYY-MM-DD end date applied independently to each source date. Defaults to today in the marketplace reporting time zone. | |
| start_date | No | Optional. YYYY-MM-DD start date applied independently to each source date. Defaults to 30 days ago. | |
| high_fee_pct | No | Amazon fees above this percent of gross revenue are flagged as fee_pressure. | |
| review_focus | No | Profitability issue to focus on. Defaults to all non-healthy issues. | all |
| high_tacos_pct | No | SP/SD ad spend above this percent of sales is flagged as ad_drag. | |
| include_healthy | No | Set true to include healthy ASINs after profitability issues. Defaults to false. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| target_margin_pct | No | Contribution margin below this percent is flagged as low_margin. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. | |
| high_return_rate_pct | No | Returned units above this percent of units ordered are flagged as high_return_rate. | |
| include_all_currencies | No | By default, money (financial events, reimbursements, ad spend) is scoped to the marketplace currency so amounts are not summed across USD/CAD/MXN etc. Set true to include all currencies (amounts are then mixed and should not be summed). | |
| include_sponsored_brands | No | Return exact Sponsored Brands campaign spend once as an unallocated account-level cost. It is not allocated to ASIN rows or included in their contribution, TACOS, ACOS, or ranking metrics. Defaults to false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe read-only profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false), yet the description adds substantial non-obvious behavior: per-source date bases and posting lag, exclusion of Adjustment/ServiceFee events, MCF fee handling, the SB unallocated-cost treatment, currency scoping, and data-gap reporting. This is exactly the value-add beyond structured fields that a strong definition provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The content is dense and mostly front-loaded, but it is delivered as one long unstructured paragraph mixing purpose, date-basis caveats, exclusions, and parameter behavior. No bullets or grouping, making it harder to scan; several clauses could be tightened without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 15-parameter tool, the description is remarkably complete: it covers data provenance, date semantics, inclusion/exclusion boundaries, currency handling, and expected diagnostics. With an output schema present, it correctly does not need to explain return field shapes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 genuine meaning beyond the schema for include_sponsored_brands (returned once as unallocated account-level cost, not repeated on ASIN rows) and include_all_currencies (mixed amounts must not be summed). Flags like review_focus and include_diagnostics are left to 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: returns ranked ASIN profitability issue signals, and enumerates the exact source domains (financial events, reimbursements, returns, Business Reports, SP/SD ad spend). This is clearly distinguishable from siblings like get_tacos or get_product_performance, which surface raw metrics rather than a ranked issue review.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description thoroughly explains what the tool computes and how parameters affect output, but never states when to choose this tool over alternatives such as get_tacos, get_product_performance, or get_financial_events. Usage context is implied by the issue-focus framing rather than made explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_promotion_performancePromotion performanceARead-onlyInspect
Returns Amazon promotion performance from synced coupon and deal data: view=coupon returns per-coupon clips, redemptions, budget used/remaining, discount, sales, dates, and covered ASINs from GET_COUPON_PERFORMANCE_REPORT; view=deal returns Best Deal and Lightning Deal glance views, units sold, revenue, Amazon-reported status, dates, and included products from GET_PROMOTION_PERFORMANCE_REPORT. Start/end dates, and the start_date/end_date filter, use the Selling Partner Promotions API schedule when a matching promotion exists, otherwise the Amazon report request window. Stats are cumulative values refreshed daily: the coupon view covers a rolling two-year start window (just inside Amazon's cap), the deal view a rolling 90-day window. Factual performance data only; no recommendations are made. Brand Tailored Promotions have no API and never appear here.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Filter by exact Amazon coupon ID (view=coupon) or promotion ID (view=deal). | |
| asin | No | Filter to coupons covering this ASIN (view=coupon) or deals whose included products contain this ASIN (view=deal). | |
| type | No | view=deal only. Filter by promotion type: BEST_DEAL or LIGHTNING_DEAL. | |
| view | No | Which promotion surface to read: coupon returns coupon campaign performance (clips, redemptions, budget); deal returns Best Deal and Lightning Deal performance (glance views, units, revenue, Amazon-reported status). | deal |
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| status | No | view=deal only. Filter by Amazon-reported promotion status (e.g. SCHEDULED, RUNNING, ENDED, CANCELED). Exact match, case-insensitive. | |
| sort_by | No | Column to sort by. view=coupon: start_datetime, end_datetime, name, discount_amount, clips, redemptions, budget_spent, total_discount, sales. view=deal: start_datetime, end_datetime, status, type, glance_views, units_sold, revenue. Defaults to start_datetime. | |
| end_date | No | Optional. YYYY-MM-DD upper bound on the coupon/promotion start datetime. Defaults to today. | |
| sort_order | No | Sort order. | desc |
| start_date | No | Optional. YYYY-MM-DD lower bound on the coupon/promotion start datetime. Defaults to 180 days back. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the safety profile (readOnly, non-destructive, closed-world). The description goes well beyond them: cumulative stats refreshed daily, a rolling two-year coupon window vs a rolling 90-day deal window, and the precise semantics of start/end dates (SP Promotions API schedule when a promotion exists, otherwise the report request window). It also states the output is factual only with no recommendations, which sets accurate expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the two view modes before the date and freshness caveats, and every sentence carries information. It is long for a description, and the view= details partially restate the schema's view description near-verbatim, which is mild redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 13 parameters, an output schema present, and annotations covering safety, this description supplies everything else an agent needs: view selection, filter scope per view, date-bound semantics, refresh cadence, coverage windows, and the Brand Tailored Promotions blind spot. Return values are correctly left to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already documented and the baseline is 3. The description adds real meaning for the hardest parameters: what start_date/end_date actually bound (promotion start datetime) and which clock they follow, plus the default windows for each view. It does not add much for id/asin/status beyond what the schema says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Returns Amazon promotion performance') and then splits the resource into two clearly delineated surfaces (view=coupon vs view=deal), naming the exact upstream reports (GET_COUPON_PERFORMANCE_REPORT, GET_PROMOTION_PERFORMANCE_REPORT). An agent can distinguish this from ad campaign tools 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit context for choosing a view and states a hard exclusion ('Brand Tailored Promotions have no API and never appear here'), which is useful when-to-avoid guidance. However, it never names a sibling alternative (e.g., get_campaign_performance or get_search_query_performance) for non-promotion performance questions, so routing against other tools 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.
get_purchased_productsPurchased productsARead-onlyInspect
Returns non-zero purchase attribution after ad clicks by default: advertised ASIN to purchased ASIN, campaign/ad group, sales, orders, and units; recent ~3 days may be incomplete. Set non_zero_only=false to include zero-attribution rows. Use for halo/cross-sell attribution patterns. Does not include spend, clicks, impressions, ACOS, or total product sales; use get_product_performance or get_sales_and_traffic/get_tacos.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by | sales |
| end_date | No | Optional. YYYY-MM-DD. Defaults to today if omitted. | |
| profile_id | No | Filter by profile ID | |
| sort_order | No | Sort order | desc |
| start_date | No | Optional. YYYY-MM-DD. Defaults to 30 days ago if omitted. | |
| campaign_name | No | Filter by campaign name (LIKE match, use % for wildcards) | |
| non_zero_only | No | When true, omit rows where sales, orders, and units are all zero. Defaults to true. | |
| purchased_asin | No | Filter by purchased ASIN (exact match) | |
| advertised_asin | No | Filter by advertised ASIN (exact match) | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered; the description adds real behavioral context beyond that: default non-zero filtering, the freshness caveat that the most recent ~3 days may be incomplete, and the explicit list of excluded metrics. It stops short of describing pagination or row shape, though the schema and output schema cover those.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each front-loaded with the highest-value fact: what is returned and the default filter, the freshness caveat and toggle, then the exclusions and alternatives. No filler or restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter read tool with full schema coverage and an output schema, the description supplies everything an agent still needs: the attribution grain, default filter semantics, data-freshness limits, and which siblings cover the metrics this tool omits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters such as limit, offset, sort_by and non_zero_only are already fully documented in the schema. The description restates the non_zero_only default behavior but adds no syntax or semantics beyond what structured fields provide; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (returns purchase attribution rows) plus the exact grain: advertised ASIN to purchased ASIN, campaign/ad group, sales, orders, units. It also names the sibling tools that cover the metrics it lacks (get_product_performance, get_sales_and_traffic, get_tacos), so an agent can distinguish it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use (halo/cross-sell attribution patterns), the default filtering behavior, and the condition that flips it (set non_zero_only=false to include zero-attribution rows). It also states when NOT to use it by naming three alternative tools for spend/clicks/ACOS/total sales.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reimbursementsReimbursementsARead-onlyInspect
Get FBA reimbursement records. Filter by date range, ASIN, or reason. Sorted by amount_total by default to surface highest-value reimbursements first. Reimbursements are account/region-level FBA data (no native marketplace): rows surface tenant-wide for any marketplace-scoped key and are stored anchored to the tenant's primary marketplace.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | No | Filter by ASIN | |
| limit | No | Maximum number of rows to return (1-1000, default 20) | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| reason | No | Filter by reimbursement reason (e.g. LOST_INBOUND, DAMAGED_WAREHOUSE) | |
| sort_by | No | Column to sort results by | amount_total |
| end_date | No | Optional. YYYY-MM-DD end date for approval_date. | |
| sort_order | No | Sort direction | desc |
| start_date | No | Optional. YYYY-MM-DD start date for approval_date. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish a safe read (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the bar is lower, and the description adds genuine value beyond them: default descending sort by amount_total to surface high-value rows first, and the account/region-level scoping quirk that makes rows tenant-wide for any marketplace-scoped key. That scoping caveat is exactly the kind of behavioral context an agent would otherwise get wrong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose then filters then the scoping caveat. The final sentence is dense and slightly convoluted, but every clause carries operative information rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the safety profile, so the description's job is mostly scoping and expectation-setting, which it does. Pagination behavior is left to the schema, and no when-not-to-use guidance is given, but for a read-only filtered list this is close to complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 every parameter, including defaults, enums, and ranges. The description reinforces the filter set and explains why amount_total is the default sort, but adds no syntax or format detail beyond the schema, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get FBA reimbursement records') and enumerates the filterable dimensions (date range, ASIN, reason), which clearly separates it from neighbors like get_returns and get_financial_events. It does not, however, explicitly name an alternative tool, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by naming the available filters and the default sort, giving an agent enough to construct a query. It never states when to prefer this tool over related financial tools (get_financial_events, get_returns) or any prerequisites, so usage guidance remains implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_repeat_purchase_behaviorRepeat purchase behaviorARead-onlyInspect
Returns Brand Analytics repeat-purchase behavior by ASIN for synced week, month, or quarter report periods. Includes orders, unique customers, repeat-purchase revenue, and repeat-customer percentages. This is aggregate Brand Analytics data, not daily customer-level order identity.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | No | Filter by ASIN. | |
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| period | No | Brand Analytics report period to read: week, month, quarter, or all. | week |
| sort_by | No | Column to sort by. | end_date |
| end_date | No | Optional. YYYY-MM-DD upper bound on report end_date. With both dates omitted, defaults to the latest complete week/month/quarter; all ends today. | |
| sort_order | No | Sort order. | desc |
| start_date | No | Optional. YYYY-MM-DD lower bound on report start_date. With both dates omitted, defaults to the complete ingested window for the selected period. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds useful semantic context about the data being aggregate Brand Analytics versus customer-level identity, but omits things like data freshness/ingestion lag, auth requirements, or how periods are synced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with no filler; the core purpose and period scope are front-loaded, and the granularity caveat is appropriately placed last. Efficient, though slightly more repetition of schema-level detail than strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and rich annotations, the description need not explain return shapes, and it adequately conveys the data's nature and scope. It leaves minor gaps around usage routing and freshness behavior, but 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (asin, period, limit, offset, sort_by, date bounds, includes) is already documented in the schema. The description restates period values and metric meaning but adds no format, defaulting, or pagination detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("Returns Brand Analytics repeat-purchase behavior") and scope (by ASIN, week/month/quarter periods), and enumerates the returned metrics. The closing sentence distinguishes the data's granularity (aggregate vs. daily customer-level order identity), though it never names a specific sibling tool, so differentiation is implicit rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys context (Brand Analytics aggregate data for repeat-purchase analysis), so intended usage is inferable, but it never states when to choose this over alternatives like get_product_performance, get_brand_health, or order-level tools, nor any prerequisites or exclusions. Implied usage only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_report_documentReport documentARead-onlyInspect
Download and parse an SP-API report document into rows/columns. GZIP-compressed and uncompressed documents are supported; ZIP and restricted report types are not supported. Given a reportDocumentId (from create_report or get_report), returns the report payload as structured rows. Returns the report's facts as-is and never recommends actions.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Payload parse format. 'auto' (default) tries JSON first and falls back to TSV; 'json' parses a JSON array/object of rows; 'tsv' parses a tab-separated table with a header row. | auto |
| max_rows | No | Maximum number of rows to parse and return (1-5000, default 500). Reports larger than this are truncated; pass a higher value for the full table up to the cap. | |
| array_key | No | For JSON reports whose rows are wrapped under a key (e.g. dataByAsin, salesAndTrafficByAsin), the key to unwrap. Ignored for TSV. | |
| report_type | No | Optional SP-API report type (e.g. GET_SALES_AND_TRAFFIC_REPORT). Used for diagnostics and to hint at the payload format. Restricted report types that require a restricted data token are not supported. | |
| report_document_id | Yes | The reportDocumentId returned by create_report or get_report (SP-API Reports API). |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, destructiveHint=false, openWorldHint=true), and the description adds useful constraints beyond them: GZIP supported, ZIP/restricted unsupported, and the 'facts as-is, never recommends actions' framing. Truncation behavior is delegated to the schema's max_rows, so it is not restated here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight sentences, front-loaded with the action and result shape, then constraints, then the parameter source and behavioral caveat. No filler, though the final 'never recommends actions' clause is slightly tangential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, relieving the description of return-value duty, and annotations carry the safety profile. The description still covers the notable unsupported-format cases and input provenance, leaving little an agent would need missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter baselines sit at 3. The description adds document-format constraints (GZIP/ZIP) but says nothing about format, max_rows, or array_key semantics beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Download and parse') plus resource ('SP-API report document') and the output shape ('into rows/columns'). The reportDocumentId provenance (create_report or get_report) further anchors it against the many other 'get_*' siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the prerequisite clearly ('Given a reportDocumentId (from create_report or get_report)') and gives explicit exclusions ('ZIP and restricted report types are not supported'), which is real when-not guidance. It stops short of naming a sibling alternative for the unsupported cases, so it is not quite a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_returnsReturnsARead-onlyInspect
Get FBA return records. Filter by date range, ASIN, SKU, return reason, or disposition status. Returns are account/region-level FBA data: rows surface tenant-wide for any marketplace-scoped key and are stored anchored to the tenant's primary marketplace (marketplace_id). The derived order_marketplace_id attributes each return to the marketplace of its matching order in order history, and is null when no matching order is found.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Filter by SKU (merchant SKU) | |
| asin | No | Filter by ASIN | |
| limit | No | Maximum number of rows to return (1-1000, default 20) | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| reason | No | Filter by return reason (e.g. DEFECTIVE, CUSTOMER_RETURN) | |
| sort_by | No | Column to sort results by | return_date |
| end_date | No | Optional. YYYY-MM-DD end date for return_date. | |
| sort_order | No | Sort direction | desc |
| start_date | No | Optional. YYYY-MM-DD start date for return_date. | |
| disposition | No | Filter by item disposition (e.g. SELLABLE, DAMAGED) | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, non-destructive, closed-world behavior, so the bar is lower, and the description still adds real context: rows surface tenant-wide for any marketplace-scoped key and are anchored to the primary marketplace, plus order_marketplace_id is derived and null when no order matches. That is meaningful data-model behavior beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core capability in the first sentence, then two sentences of genuinely load-bearing marketplace semantics. No filler or repetition of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return-value detail is unnecessary, and the description covers scope, filters, and the tricky multi-marketplace attribution behavior. Pagination is left to the schema, which documents it well, so coverage is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 12 parameters are already documented in the schema; the description only restates the filter dimensions (date, ASIN, SKU, reason, disposition) without adding syntax or edge-case semantics. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get FBA return records') and immediately enumerates the dimensions it can be filtered on. This clearly separates it from neighbors like get_reimbursements or get_order_items without needing to name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The filter list implies when the tool is useful, but there is no explicit when-to-use/when-not guidance and no named alternative tool. An agent must infer that this is the returns-analytics path rather than, say, order history.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_review_trendsReview trendsARead-onlyInspect
Show Amazon Customer Feedback review-topic trends for a child ASIN. view=live (default) calls Amazon for the current six-month trend response. view=history reads bounded stored snapshots, expands their monthly trend points, and labels every row with snapshot age plus paused-source history status. Customer Feedback snapshot ingestion is intentionally paused, so history never claims to be current.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | Yes | Child ASIN to look up review topic trends for. | |
| view | No | live calls Amazon; history reads stored snapshot JSON. | live |
| limit | No | history only. Snapshot page size (1-20, default 5). Each snapshot can expand to multiple topic-month rows. | |
| offset | No | history only. Snapshot offset. Pagination metadata is at snapshot grain. | |
| end_date | No | history only. Stored snapshot end date (YYYY-MM-DD). Maximum 366 days. | |
| start_date | No | history only. Stored snapshot start date (YYYY-MM-DD). Maximum 366 days. | |
| snapshot_date | No | history only. Exact stored snapshot date (YYYY-MM-DD). | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, and non-destructive, so the safety profile is covered. The description adds meaningful context beyond that: history expands monthly trend points, labels rows with snapshot age, and discloses that ingestion is intentionally paused so history never claims to be current. That paused-source caveat is exactly the kind of behavioral nuance structured fields cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose and then the two view modes in four tight sentences with little waste. The final sentence about paused ingestion is slightly repetitive given the earlier mention of 'paused-source history status' but is defensible as it clarifies expectations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value detail is not required. The description covers mode selection, the freshness/paused caveat, and history row labeling, which is sufficient for correct invocation of a read-only tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. The description reinforces the live/history split for the view param, but does not add syntax, defaults, or constraints beyond what the schema already documents for limit, offset, dates, or the include_* flags.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Show Amazon Customer Feedback review-topic trends') and scopes it to a child ASIN. This distinguishes it cleanly from siblings like get_product_reviews or get_brand_health without needing to open a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly explains the two operating modes: view=live for the current six-month Amazon response and view=history for stored snapshots, including the default. This is strong when-to-use guidance for the main behavioral fork, though it offers no cross-sibling routing (e.g. vs get_product_reviews).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sales_and_trafficSales and trafficARead-onlyInspect
Use for historical total product performance from Business Reports (~72h delay): organic + PPC sales, sessions, page views, conversion, Buy Box, and the browser vs Amazon mobile-app traffic split (sessions, page views, and their percentages) by ASIN and source-provided seller SKU. Seller SKU identity is case-sensitive; rows whose SKUs differ only by letter case are distinct source rows and should only be combined when intentionally rolling up to ASIN or account totals. Filter one variation family (all child ASINs of a parent) with parent_asin. Do not use for current-day/yesterday account totals or ad-attributed campaign metrics; use get_sales_summary/get_todays_sales or ads performance tools. Exact requested-date coverage is reported in sales_and_traffic_source_coverage; when gaps exist, do not infer continuous coverage from the table's outer data-window bounds. For account-level totals of historical weeks, get_sales_summary falls back to this same Business Report data when its newer sources (Sales API, Orders API) do not cover the range, so the two tools agree on whether a week has sales history.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Filter by seller SKU (case-sensitive exact match; source SKUs that differ only by letter case remain distinct rows) | |
| asin | No | Filter by ASIN (exact match) | |
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by | total_sales |
| end_date | No | Optional. YYYY-MM-DD. Defaults to today if omitted. | |
| sort_order | No | Sort order | desc |
| start_date | No | Optional. YYYY-MM-DD. Defaults to 30 days ago if omitted. | |
| parent_asin | No | Filter to every child ASIN in one variation family (exact match on the Business Report parent ASIN). Returns one row per child; combine with sort_by/limit to rank children within the family. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe read-only profile, but the description adds substantial behavioral context beyond them: a ~72h data delay, case-sensitive SKU identity rules, the source-coverage reporting caveat (do not infer continuous coverage from outer bounds), and the get_sales_summary fallback behavior. These are non-obvious traits an agent would otherwise get wrong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and data source are front-loaded, and each sentence carries distinct information (metrics, delay, SKU rules, parent_asin, exclusions, coverage caveat, fallback). It is a dense single block that is slightly longer than necessary but avoids filler and repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 11 parameters with full schema coverage and an existing output schema, the description needn't explain return values, and it correctly focuses on the caveats that matter (coverage field, delay, fallback). An agent has everything needed to call it correctly and interpret gaps in the returned data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all 11 params (including case-sensitivity and parent_asin semantics). The description's parameter mentions (parent_asin for variation families, SKU case-sensitivity) largely restate what the schema and output already provide, adding only marginal elaboration. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (historical total product performance from Business Reports) and enumerates the metrics returned (sales, sessions, page views, conversion, Buy Box, traffic split). It explicitly distinguishes itself from siblings like get_sales_summary, get_todays_sales, and ads performance tools, so an agent can route correctly 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use (historical product performance, variation-family filtering via parent_asin) and when-not-to-use ('Do not use for current-day/yesterday account totals or ad-attributed campaign metrics') with named alternatives (get_sales_summary/get_todays_sales, ads tools). It also explains the fallback relationship so the agent understands overlap with get_sales_summary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sales_ranksSales ranksARead-onlyInspect
Use for latest Best Sellers Rank (BSR) across catalog ASINs, with rank, category, title, and brand. Each row carries two grains of BSR: sales_rank/sales_rank_category is the most specific (sub)category rank, and main_category_rank/main_category is the top-level department rank (the headline '#N in '). Grain: one row per ranked ASIN. Do not use for keyword rank tracking or actual sales velocity; use ranking tools or get_sales_velocity.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | No | Filter by ASIN | |
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by | sales_rank |
| max_rank | No | Only show ASINs with BSR (subcategory sales_rank) <= this value | |
| sort_order | No | Sort order (asc = best rank first) | asc |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this is a read-only, non-destructive, closed-world read, so the description legitimately focuses on semantics. It adds real behavioral context the annotations cannot: the grain is one row per ranked ASIN and each row carries two distinct rank grains (subcategory vs top-level department). It stops short of describing pagination or freshness behavior beyond what the schema notes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then grain details, then the exclusion rule. Three sentences, no filler, and each sentence carries distinct information (what, structure, what-not).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and 100% schema description coverage, the description needn't document return format or parameters exhaustively. It supplies the higher-order context an agent needs — result grain, the two rank grains, and scope limits — so nothing essential is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 meaning the schema lacks: it explains that sales_rank/sales_rank_category is the most specific subcategory rank while main_category_rank/main_category is the headline department rank, which disambiguates the sort_by enum values and the max_rank filter. It does not address limit/offset/include_raw_rows/include_diagnostics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (latest Best Sellers Rank across catalog ASINs) and enumerates the returned fields (rank, category, title, brand). It also draws a clear boundary against keyword-rank and velocity tools, so an agent can distinguish it from siblings like get_keyword_ranks and get_sales_velocity without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly gives a when-not-to-use rule (keyword rank tracking, actual sales velocity) and names one concrete alternative, get_sales_velocity. The other redirect, 'ranking tools', is left vague even though siblings get_keyword_ranks and get_current_rank exist, which weakens the routing guidance slightly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sales_summarySales summaryARead-onlyInspect
Use for account-level daily Amazon marketplace sales totals, including yesterday or date ranges. Grain: one row per day with revenue, units, and orders. Final rows use Sales API daily metrics or deep-history Business Report daily rollups. Sales API snapshots take precedence; Business Report replaces same-date historical order-item fallback rows, while recent Orders rows retain precedence. Non-final recent/fallback rows use order-item rollups that exclude sales_channel values beginning Non-Amazon (MCF/off-Amazon fulfillment shipments). total_sales remains available priced line-item revenue only; Pending FBA prices are enriched from Amazon's order-tracking report when available, unpriced_unit_count remains separate, and estimated_total_sales adds unpriced_unit_count * average_unit_price when a priced day ASP exists. Canceled orders do not contribute priced or unpriced sales units. Historical rows can fall back to order-item rollups when the Sales API snapshot table has no row. Business Report rows use the same source as get_sales_and_traffic: total_sales is ordered_product_sales summed across ASINs, order_item_count comes from the Business Report total_order_items, and order_count (distinct orders) is not available from that source and stays null. Read sales_channel_scope and unit_count_basis on each row; observed_order_count reconciles to get_orders only when the same date and Amazon-marketplace sales-channel scope is used. Check total_sales_basis, estimated_total_sales_basis, sales_completeness_state, is_final, revision_state, timezone_basis, and date_basis before comparing recent days to finalized baselines. Do not use for ASIN/SKU breakdowns, individual orders, or off-Amazon fulfillment volume; use get_todays_sales, get_sales_velocity/get_sales_and_traffic, get_orders, or fulfillment tools.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by. total_sales preserves source/headline semantics; estimated_total_sales adds deterministic ASP-filled unpriced-unit estimates for non-final Orders API rows when possible. | metric_date |
| end_date | No | Optional. YYYY-MM-DD. Defaults to today. | |
| sort_order | No | Sort order | asc |
| start_date | No | Optional. YYYY-MM-DD. Defaults to 7 days ago. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe-read profile (readOnlyHint=true, destructiveHint=false), and the description goes well beyond them: source precedence (Sales API vs Business Report vs order-item fallback), exclusion of Non-Amazon sales_channel values, how total_sales/estimated_total_sales/unpriced_unit_count are computed, that canceled orders contribute nothing, and that order_count stays null for Business Report rows. These are non-obvious data-lineage facts an agent could not infer 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is correctly front-loaded in the first sentence, but the remainder is one dense run-on paragraph of conditional lineage rules with no grouping or headings. Each clause carries real information, yet the wall-of-text structure makes it hard to scan for the actionable caveats (sales_channel_scope, unit_count_basis, is_final).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value detail is not required, and the description still supplies the completeness/comparability guidance (sales_completeness_state, is_final, revision_state, timezone_basis, reconciliation to get_orders) needed to use those fields correctly. Given the tool's complexity, nothing critical to correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter is already documented (including a detailed sort_by description matching the one in the prose). The description reiterates sort/estimate semantics but adds no filter syntax, format, or default behavior the schema lacks, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line states a specific verb+resource+scope ('account-level daily Amazon marketplace sales totals') and pins the output grain ('one row per day with revenue, units, and orders'), which immediately separates it from ASIN/SKU or order-level siblings. An agent can identify what this returns 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives both when-to-use ('daily ... totals, including yesterday or date ranges') and explicit exclusions with named alternatives: 'Do not use for ASIN/SKU breakdowns, individual orders, or off-Amazon fulfillment volume; use get_todays_sales, get_sales_velocity/get_sales_and_traffic, get_orders, or fulfillment tools.' Routing is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sales_velocitySales velocityARead-onlyInspect
Use for historical Amazon-marketplace product sales velocity and inventory planning. Returns order-item-sourced net_units_sold by ASIN/period from Orders API data plus Business Reports sales/traffic fields when available. Explicit Non-Amazon/MCF sales channels are excluded so order-derived units reconcile with get_sales_summary and Business Reports. Grain defaults to daily when asin is provided and per-ASIN range summary otherwise; set time_grain=day/week/month/summary for explicit periods. Do not use get_orders header counts as units sold; get_orders intentionally returns channel-complete raw order headers, including cancellations and MCF. Do not use for current-day or account-level totals; use get_todays_sales or get_sales_summary.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Filter by SKU | |
| asin | No | Filter by ASIN | |
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by. net_units_sold is sourced from order items; units_ordered is Business Reports when available. | net_units_sold |
| end_date | No | Optional. YYYY-MM-DD end date. | |
| sort_order | No | Sort order | desc |
| start_date | No | Optional. YYYY-MM-DD start date. | |
| time_grain | No | Optional period grain. Defaults to day when asin is provided, otherwise summary over the requested range. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/openWorld annotations, it discloses the data provenance (order-item-sourced), the channel exclusion rule (Non-Amazon/MCF excluded so numbers reconcile with get_sales_summary), and the grain default behavior. These are meaningful behavioral traits an agent could not infer from annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded: purpose first, then data semantics, then grain behavior, then explicit exclusions and alternatives. Every sentence earns its place and none restate the name or title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-param, output-schema-backed analytical tool, the description supplies the reconciling context (source, channel exclusions, grain defaults) and routing alternatives an agent needs. Nothing critical is missing given the output schema already covers return structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. The description reinforces the time_grain default and the net_units_sold vs units_ordered distinction, but these are already documented in the schema's sort_by and time_grain descriptions, so it adds little beyond what structured fields provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('historical Amazon-marketplace product sales velocity and inventory planning') and defines the exact return grain ('net_units_sold by ASIN/period from Orders API data plus Business Reports'). It clearly distinguishes itself from get_orders, get_todays_sales, and get_sales_summary within the crowded sibling set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use (historical velocity, inventory planning), when-not (not current-day or account-level totals), and names the exact alternatives (get_todays_sales, get_sales_summary). It also warns against the tempting misuse of get_orders header counts as units sold and explains why.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sb_campaign_performanceSB campaign performanceARead-onlyInspect
Use for Sponsored Brands campaign performance, including new-to-brand, branded searches, video views, and detail page views. Grain: one SB campaign row; recent ~3 days may be incomplete. Do not use for Sponsored Products campaign metrics, ASIN-level TACOS, or product sales; use get_campaign_performance/get_tacos/get_sales_and_traffic.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by | spend |
| end_date | No | Optional. YYYY-MM-DD. Defaults to today if omitted. | |
| profile_id | No | Filter by profile ID | |
| sort_order | No | Sort order | desc |
| start_date | No | Optional. YYYY-MM-DD. Defaults to 30 days ago if omitted. | |
| campaign_name | No | Filter by campaign name (LIKE match, use % for wildcards) | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds real context beyond that: the row grain ('one SB campaign row') and a freshness caveat ('recent ~3 days may be incomplete'). It does not discuss pagination behavior, but the schema covers next_offset and an output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: scope and metrics first, grain and freshness caveat second, routing/exclusions third. Every sentence earns its place with no filler or repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, filtered list tool with full schema coverage, an output schema, and clear annotations, the description supplies the remaining pieces an agent needs: the metric scope, the row grain, the freshness limitation, and the sibling routing. Nothing required to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all ten parameters including date defaults, sort enums, and pagination are already documented in the schema. The description adds no parameter-level detail beyond what is structured, which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb+resource ('Sponsored Brands campaign performance') and enumerates the distinguishing metrics it returns (new-to-brand, branded searches, video views, detail page views). It explicitly contrasts itself with Sponsored Products metrics, ASIN-level TACOS, and product sales, so an agent can separate it from siblings 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit positive trigger and an explicit negative trigger, and names the exact alternatives to use instead (get_campaign_performance/get_tacos/get_sales_and_traffic). This is a textbook routing instruction with no inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sd_campaign_performanceSD campaign performanceARead-onlyInspect
Use for Sponsored Display campaign performance, including viewability, new-to-brand metrics, detail page views, spend, sales, and ACOS. Grain: one SD campaign row; recent ~3 days may be incomplete. Do not use for Sponsored Products/Sponsored Brands or total product sales; use the matching campaign or sales tool.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by | spend |
| end_date | No | Optional. YYYY-MM-DD. Defaults to today if omitted. | |
| profile_id | No | Filter by profile ID | |
| sort_order | No | Sort order | desc |
| start_date | No | Optional. YYYY-MM-DD. Defaults to 30 days ago if omitted. | |
| campaign_name | No | Filter by campaign name (LIKE match, use % for wildcards) | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: the grain (one row per SD campaign) and the freshness caveat that recent ~3 days may be incomplete. It stops short of documenting pagination/return limits, which the output schema likely handles.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with zero waste: purpose and metrics first, then grain and freshness, then exclusions and routing. Everything is front-loaded and each clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a 100% covered schema, an existing output schema, and annotations that carry the read-only profile, the description only needed to add scope, grain, freshness, and sibling routing — all of which it delivers. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across all 10 parameters, so the schema fully documents limit, offset, sort, date defaults, filters, and diagnostic flags. The description adds no parameter-level syntax or format detail, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (Sponsored Display campaign performance) and enumerates the metric families returned (viewability, NTB, DPV, spend, sales, ACOS). It also names the sibling categories it is not (SP/SB, sales), so an agent can select 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit exclusion ("Do not use for Sponsored Products/Sponsored Brands or total product sales") and routes the agent to the matching campaign or sales tool. Both the when and the when-not are stated, leaving little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_search_catalog_performanceSearch catalog performanceARead-onlyInspect
Return weekly Amazon Brand Analytics Search Catalog Performance facts at ASIN grain: impression, click, cart-add, and purchase funnel counts; source-reported rates, median prices, search-attributed sales, currencies, and same-day/one-day/two-day shipping counts. Defaults to the latest complete Sunday-Saturday week. This tool reports Amazon facts and deterministic filtering only; it does not recommend actions.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | No | Filter by exact ASIN. | |
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by. | impression_count |
| end_date | No | Optional report-week end upper bound (YYYY-MM-DD). Defaults to the latest complete Sunday-Saturday week. | |
| min_clicks | No | Minimum Amazon-reported click count. | |
| sort_order | No | Sort direction. | desc |
| start_date | No | Optional report-week start lower bound (YYYY-MM-DD). Defaults to the latest complete Sunday-Saturday week. | |
| min_impressions | No | Minimum Amazon-reported impression count. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the full safety profile (readOnly, non-destructive, closed-world), so the bar is lower. The description adds the ASIN-grain scope and the facts-only/deterministic-filtering stance and the default window, but the window default is duplicated in the schema and no pagination or return-shape behavior is added (and an output schema exists).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the resource and grain before the field enumeration, then closes with scope and the default window. The dense metric list is informative but slightly heavy; overall it is tight with little wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a full schema, output schema, and safety annotations, the description supplies what is missing: the ASIN grain, the default reporting window, and the 'facts only, no recommendations' scope. It is essentially complete for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all 11 parameters including defaults, ranges, enum values, and the pagination instruction. The description contributes only the shared ASIN-grain/window framing and no per-parameter detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (Return) plus resource (Amazon Brand Analytics Search Catalog Performance facts at ASIN grain) with an enumerated field list, so the resource is unambiguous. It partially differentiates from siblings via 'does not recommend actions', but it never names the adjacent tools (get_search_query_performance, get_brand_search_terms) an agent must choose between.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The clause 'reports Amazon facts and deterministic filtering only; it does not recommend actions' establishes a when-not boundary, and the default Sun-Sat window is stated. However, there is no explicit guidance on when to pick this over the other search/catalog performance siblings, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_search_query_ad_coverageSearch query ad coverageBRead-onlyInspect
Returns SQP search query rows joined to observed ads search-term and keyword-target coverage.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | No | Filter by SQP ASIN (exact match) | |
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by | search_query_volume |
| end_date | No | Optional. YYYY-MM-DD end date for SQP week range. Defaults to today if omitted. | |
| min_volume | No | Minimum SQP search query volume | |
| profile_id | No | Filter ads evidence by profile ID | |
| sort_order | No | Sort order | desc |
| start_date | No | Optional. YYYY-MM-DD start date for SQP week range. Defaults to 30 days ago if omitted. | |
| ad_group_id | No | Filter ads evidence by Sponsored Products ad group ID | |
| campaign_id | No | Filter ads evidence by Sponsored Products campaign ID | |
| search_query | No | Filter by SQP search query (LIKE match, use % for wildcards) | |
| coverage_state | No | Filter by deterministic paid coverage state | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds that the output is a join of SQP rows with ads coverage evidence, which is useful, but it does not explain what a 'coverage_state' means, how data gaps surface, or the freshness behavior that include_diagnostics hints at.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the core resource and the join are stated immediately. It is perhaps too terse to count as ideal structure for a 15-parameter analytical tool, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value enumeration is not required. However, for a complex joined analytics tool with 15 params and a domain-specific coverage_state enum, the description omits the conceptual model (what a coverage row represents, what 'no_paid_coverage_observed' vs 'data_gap' imply), leaving the agent to infer usage from schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across all 15 parameters, including the three enums and pagination, so baseline is 3. The description adds no parameter-level detail beyond the schema (e.g., what min_volume interacts with, or how date range defaults to a 30-day SQP week window).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Returns') and resource ('SQP search query rows joined to observed ads search-term and keyword-target coverage'), which distinguishes it from get_search_query_performance and get_search_terms. It is precise but heavy with domain jargon (SQP, coverage) that an agent must already understand, so it stops short of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says nothing about when to choose this tool over get_search_query_performance or get_search_terms, nor about prerequisites or when the join is meaningful. With ~90 sibling tools, the absence of routing guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_search_query_performanceSearch query performanceARead-onlyInspect
Returns Brand Analytics SQP weekly market search query volume plus your ASIN's full per-query funnel: impression count and impression-share, click count and click-share, cart-add count and share, and purchase count and share, with market vs brand conversion rate and a deterministic funnel_stage label (no_impressions, impressions_no_clicks, clicks_no_cart_adds, cart_adds_no_purchases, converting) showing where the ASIN drops off. Use it to tell 'no impressions' apart from 'impressions but no clicks' for a query/ASIN. Does not include ad spend/ACOS or the search terms that triggered ads; use get_search_terms/get_keyword_performance for ads search-term data.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | No | Filter by ASIN (exact match) | |
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by | search_query_volume |
| end_date | No | Optional. YYYY-MM-DD end date for week range. Defaults to today if omitted. | |
| min_volume | No | Minimum search query volume | |
| sort_order | No | Sort order | desc |
| start_date | No | Optional. YYYY-MM-DD start date for week range. Defaults to 30 days ago if omitted. | |
| search_query | No | Filter by search query (LIKE match, use % for wildcards) | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds meaningful behavior beyond that: the deterministic funnel_stage label set and its enum values, and an explicit statement of what is NOT returned (ad spend/ACOS, ad-triggering search terms). It does not mention any auth or rate-limit constraints, so it is not a full 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A dense but front-loaded paragraph that leads with what is returned, then the use case, then the exclusions. Every sentence carries information, though the metric enumeration is verbose relative to the rest.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, return values need not be spelled out, yet the description adds funnel_stage semantics and explicit exclusions. For an 11-parameter analytics tool this is complete, with only minor gaps around pagination/diagnostic behavior that the schema already hints at (include_diagnostics, next_offset).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all 11 parameters (filters, pagination, sort columns, date range). The description focuses on returned fields rather than parameter meaning, so it neither adds to nor compensates for the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 Brand Analytics SQP weekly market search query volume plus the ASIN's per-query funnel) and enumerates the exact metrics returned. It also distinguishes itself from siblings by name, routing ads search-term needs to get_search_terms/get_keyword_performance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit when-to-use case ('to tell no impressions apart from impressions but no clicks for a query/ASIN') and explicitly names the alternatives for the data this tool excludes. An agent knows both when to pick it and when to pick something else.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_search_termsSearch termsARead-onlyInspect
Returns customer search terms that triggered Sponsored Products and Sponsored Brands ads. Defaults to ad_product=auto, searching both SP and SB and returning ad_product on each row; set ad_product when you need one product only. Filter on the aggregated per-term totals with min_spend, min_orders, or zero_orders_only; these run server-side after grouping, so questions like which terms spent money without converting (zero_orders_only=true with min_spend) answer in one bounded call. Recent ~3 days may be incomplete. Does not include bidded target performance or Brand Analytics market volume/share; use get_keyword_performance or get_search_query_performance for those.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| keyword | No | Filter by matched keyword text (LIKE match, use % for wildcards). | |
| sort_by | No | Column to sort by | spend |
| end_date | No | Optional. YYYY-MM-DD. Defaults to today if omitted. | |
| min_spend | No | Keep only search-term groups whose total spend in the window is at least this amount. Applied server-side after grouping, so wasted-spend questions stay bounded. | |
| ad_product | No | Sponsored ad product to search. Defaults to auto, which searches both Sponsored Products and Sponsored Brands search-term reports and returns ad_product on each row. | auto |
| match_type | No | Filter by match type or auto-targeting expression type | |
| min_orders | No | Keep only search-term groups with at least this many orders in the window. Applied server-side after grouping. | |
| profile_id | No | Filter by profile ID | |
| sort_order | No | Sort order | desc |
| start_date | No | Optional. YYYY-MM-DD. Defaults to 30 days ago if omitted. | |
| ad_group_id | No | Filter by ad group ID. | |
| campaign_id | No | Filter by campaign ID. With ad_product=auto, searches matching SP and SB search-term reports. | |
| search_term | No | Filter by customer search term (LIKE match, use % for wildcards). | |
| ad_group_name | No | Filter by ad group name (LIKE match, use % for wildcards). | |
| campaign_name | No | Filter by campaign name (LIKE match, use % for wildcards) | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| zero_orders_only | No | Keep only search-term groups with zero orders in the window (spend without conversion). Combine with min_spend to surface meaningful wasted spend in one bounded call. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the bar is lower. The description still adds real behavior: filters run server-side after aggregation, recent ~3 days may be incomplete, and ad_product is returned per row in auto mode. The incompleteness caveat is a genuinely useful data-freshness disclosure, though no rate limits or auth prerequisites are mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five tightly packed sentences: resource definition first, then default behavior, filter semantics, a freshness caveat, and excluded scope. Each sentence carries unique information and the routing guidance is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 20 params, full schema coverage, an output schema, and complete annotations, the description supplies exactly the missing layer — grouping semantics, freshness caveats, and sibling routing. Nothing an agent needs to call this correctly is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema documents every parameter including limits and pagination. The description adds meaning for the aggregation filters (min_spend, min_orders, zero_orders_only run after grouping) and the ad_product default behavior, but leaves the LIKE-match semantics, sort options, and include_raw_rows/include_diagnostics behavior to the schema. Baseline is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — returns customer search terms that triggered Sponsored Products and Sponsored Brands ads — and explicitly contrasts itself with get_keyword_performance and get_search_query_performance for target-level and market-volume data. An agent can distinguish it from siblings like get_brand_search_terms without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use guidance (default auto covers both SP and SB; set ad_product for one product only), a concrete usage pattern for waste detection (zero_orders_only=true with min_spend answers non-converting-spend questions in one bounded call), and names the alternative tools to use for adjacent needs. 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.
get_seasonality_indexSeasonality indexARead-onlyInspect
Get a year-independent, unlabeled 52-week ISO-week demand curve for ASINs, built from available historical sales, sessions, and revenue data. At least 365 distinct daily source records per ASIN are required. Index value of 1.0 = average week, >1.0 = above-average demand, <1.0 = below-average. Retail events are not assigned to static ISO weeks. Use without ASIN for a summary of all ASINs ranked by seasonal amplitude. Use with ASIN for the available weekly curve, coverage_summary, and availability metadata. An unavailable result means the curve has not been computed; it never represents zero demand.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | No | Filter by ASIN | |
| limit | No | Max rows (1-1000, default 52 for ASIN curves) | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_order | No | Sort order (default: desc — most seasonal first) | desc |
| min_confidence | No | Only show data with at least this confidence score (0-1) | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite annotations already declaring a safe read-only, non-open-world operation, the description adds substantive behavioral context: the index scale (1.0 = average, >1.0 above, <1.0 below), that retail events are not pinned to static ISO weeks, and critically that an unavailable result means the curve was never computed rather than zero demand. That last point prevents a serious misinterpretation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the definition and scale interpretation, then the two usage modes. Dense but nearly every sentence carries information; the two 'Use without ASIN / Use with ASIN' sentences are slightly parallel but each adds a distinct output shape.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 enumerated, and the description still covers the things schema cannot: the data threshold required for computation, how to read the index, and what an unavailable result implies. Nothing an agent needs to call it correctly is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 goes beyond the schema by explaining the semantic effect of the primary parameter: the presence or absence of ASIN switches between a ranked cross-ASIN summary and a single-ASIN weekly curve. It also reinforces the limit default of 52 for ASIN curves.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a year-independent, unlabeled 52-week ISO-week demand curve for ASINs') with the source basis (historical sales, sessions, revenue). An agent can immediately distinguish this from sales/traffic or ranking siblings without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly separates the two calling modes: without ASIN gives a ranked summary of all ASINs by seasonal amplitude, with ASIN gives the weekly curve plus coverage and availability metadata. It also states the data prerequisite (365 distinct daily records per ASIN). Missing only explicit routing to named sibling tools when seasonality isn't the right lens.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_settlement_economicsSettlement economicsARead-onlyInspect
Get settlement-report finalized financial data. This tool is backed by settlement reports and can lag recent Payments / Transaction View rows until Amazon finalizes the settlement period; use get_payment_transactions for recent refund, deferred, or payment transaction rows before settlement finalization. Summary mode (default): pivoted economics by ASIN when resolvable, otherwise by SKU, including source-signed order_item_price, refund_item_price, refund_net, principal quantity, and FBAPerUnitFulfillmentFee amount/quantity/per-unit value. revenue remains all ItemPrice rows for backward compatibility. The per-unit fulfillment fee is signed like the settlement fee amount. Summary fee fields commission (Amazon's referral fee, from amount_description Commission), item_fees (all item-level fees: commission, fulfillment, refund/shipping/giftwrap chargebacks), fba_fee, and fba_per_unit_fulfillment_fee overlap and are not additive; use net or total_fees for period totals. Summary mode also returns unattributed_fees: account-level settlement-report fees (AWD, removal orders, Deal/Vine/Premium Services, quarterly returns fees) that carry no SKU and cannot be attributed to an ASIN, grouped by fee type with a total (these are excluded from the per-ASIN pivot). This is a date-window ASIN analysis, not an exact Amazon disbursement statement: a window can contain multiple settlement IDs, and transaction families present in the live Payments feed might be absent from the V2 settlement report. For exact finalized disbursement-group reconciliation, use get_payment_transactions with financial_event_group_id and transaction_status=RELEASED, following pagination until complete. Detail mode: raw settlement-report rows filtered by amount type or amount description. settlement_effective_date uses posted_date, then posted_date_time, settlement_end_date, deposit_date, and finally snapshot_date because Amazon settlement rows can omit posted_date. marketplace_currency is inferred from the scoped Amazon marketplace when settlement item rows omit currency. asin_resolution explains how ASIN was attached to settlement rows: order_item_asin comes from the order item table and is preferred when available; historical_sku_asin comes from historical order-item SKU maps; active_listing_sku comes from active-listing SKU maps; settlement_text_asin parses an ASIN embedded in the fee text (for example FBA customer-returns fees). Rows that cannot be mapped to an ASIN are still returned at SKU grain instead of being suppressed. Currency note: settlement rows do not carry a reliable per-row currency, so marketplace_currency is asserted from the scoped marketplace and amounts are not currency-filtered; if the account transacts in multiple currencies (e.g. a North America unified account) settlement amounts may combine currencies, so use get_financial_events (scoped to the marketplace currency by default) to isolate a single currency.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Filter by SKU | |
| asin | No | Filter by ASIN | |
| limit | No | Max rows (1-1000, default 20). | |
| detail | No | true = raw settlement rows, false = pivoted per-ASIN summary | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by (summary mode) | revenue |
| end_date | No | Optional. YYYY-MM-DD end date for settlement_effective_date. | |
| sort_order | No | Sort order | desc |
| start_date | No | Optional. YYYY-MM-DD start date for settlement_effective_date. | |
| amount_type | No | Detail mode only. Filter by amount type (e.g. ItemPrice, ItemFees, Promotion). | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| amount_description | No | Detail mode only. Filter by amount description (e.g. FBAPerUnitFulfillmentFee). | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnlyHint=true, destructiveHint=false), and the description goes well beyond them: settlement lag versus live Payments rows, non-additive/overlapping fee fields (commission, item_fees, fba_fee), unattributable account-level fees, the ASIN resolution fallback chain, and the multi-currency caveat. This is exactly the kind of behavior an agent needs and that annotations alone cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and routing guidance are front-loaded in the first two sentences, and most of the remaining length is substantively necessary given 13 parameters, two output modes, and currency caveats. However, the text is a dense unbroken block with no headings or bullets, making it harder to scan than it needs to be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needn't explain return values, and it covers everything else: which mode returns what, edge cases (unattributed fees, unmapped ASINs at SKU grain), data-freshness limitations, and the routing to sibling tools. Nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 beyond the schema: the summary-vs-detail mode distinction, that amount_type/amount_description apply only in detail mode, the settlement_effective_date fallback chain, and how marketplace_currency is inferred. It does not explain every parameter (e.g., sort_by, include_raw_rows), so it falls short of 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line states a specific verb and resource ('Get settlement-report finalized financial data') and immediately differentiates itself from siblings by naming get_payment_transactions and get_financial_events with the conditions that select each. An agent can distinguish this tool from its closest alternatives 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use guidance: use get_payment_transactions for recent refund/deferred/payment rows before settlement finalization, use it with financial_event_group_id and transaction_status=RELEASED for exact disbursement reconciliation, and use get_financial_events to isolate a single currency. These are concrete alternatives with the conditions that trigger them, not vague hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shipment_receiving_statusShipment receiving statusARead-onlyInspect
Get per-SKU receiving status for FBA inbound shipments — shows quantity shipped vs quantity received by Amazon. Use to track receiving progress and identify discrepancies. Returns the current state of each shipment's items; snapshot_date is when a row was last refreshed. Inbound shipment items are account/region-level like shipments: rows surface tenant-wide for any key.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Filter by specific seller SKU | |
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_order | No | Sort order by snapshot_date | desc |
| shipment_id | No | Filter by specific shipment ID | |
| snapshot_date | No | Optional. Only include rows last refreshed on this date (YYYY-MM-DD). Defaults to current state. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered; the description adds genuinely non-obvious behavior: rows are account/region-level and 'surface tenant-wide for any key', plus snapshot_date meaning 'when a row was last refreshed'. That scoping caveat materially affects how results should be interpreted, though nothing is said about rate limits or result size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with purpose and the core metric, then usage, then scoping caveats. Slightly over-explained with mild redundancy between 'Returns the current state of each shipment's items' and the shipped-vs-received framing, but nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and all 8 parameters documented at 100%, the description only needs to cover interpretation caveats — and it does: freshness semantics, the shipped-vs-received comparison, and the tenant-wide scoping behavior. An agent has everything needed to call and read this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 meaning the schema lacks: snapshot_date is explained as freshness/refresh time, and the tenant-wide scoping note clarifies that sku/shipment_id filters do not narrow results to a single tenant. This goes beyond restating schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource ('Get per-SKU receiving status for FBA inbound shipments') and pins down the exact metric returned ('quantity shipped vs quantity received by Amazon'). That precision implicitly separates it from near-siblings such as get_fba_inbound_operation_status and get_inbound_shipments without needing to name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use to track receiving progress and identify discrepancies' provides an implied usage context but is essentially a restatement of the purpose. No when-not-to-use condition and no routing to competing siblings (operation status, inbound shipments) is offered, so selection still requires inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shipping_previewShipping previewARead-onlyInspect
Get Multi-Channel Fulfillment (MCF) shipping options and estimated delivery dates before creating an order. Shows available shipping speeds, fees, and fulfillability. Max 50 items per preview.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | Items to get shipping preview for | |
| destination | Yes | Shipping destination address | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description reinforces this by framing the call as a preview and adds useful scope context (fulfillability output, 50-item cap), though it says nothing about auth, rate limits, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, the purpose and pre-order timing are front-loaded, and the limit is stated last without filler. Every sentence carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needn't explain return values, and it covers purpose, timing, and the item cap. Minor gaps remain around the compact-rows/diagnostics flags, but the schema carries those.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter including the nested item and destination fields is already documented in the schema. The description only restates the 50-item cap and adds no meaning for include_raw_rows or include_diagnostics, so it earns the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get MCF shipping options and estimated delivery dates') and clarifies its role as a pre-order check, which cleanly separates it from get_mcf_orders and get_fba_inbound_options. It also names what the caller gets back: speeds, fees, and fulfillability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'before creating an order' gives a clear situational trigger for using this tool. It doesn't name a specific alternative tool or state exclusions, so it falls short of an explicit when/when-not statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sp_entities_liveSP entities (live)ARead-onlyInspect
List current Sponsored Products live entity state directly from Amazon Ads API for campaigns, ad groups, product ads, keywords, targets, negative keywords, and negative targets. Use before write operations when warehouse snapshots may lag.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | Entity IDs for the selected entity_type | |
| asins | No | ASIN filter for targets/negative targets where Amazon supports it | |
| scope | No | For negative_keyword or negative_target, restrict to ad-group-level or campaign-level entities. Omit to query both where possible. | |
| states | No | Entity states to include | |
| name_query | No | Campaign/ad-group name query | |
| next_token | No | Amazon pagination token from a prior response | |
| profile_id | No | Numeric Amazon Ads profile ID. Optional when this API key has exactly one enabled Ads profile; agentcentral will default it. Call get_account_info for amazon_ads.enabled_profile_ids. Do not use the marketplace ID, tenant ID, or API key prefix. | |
| text_query | No | Keyword text or negative keyword text query | |
| entity_type | Yes | Sponsored Products live entity family to list | |
| match_types | No | Keyword or negative keyword match type filter | |
| max_results | No | Maximum rows to request from Amazon (1-250) | |
| ad_group_ids | No | Restrict to ad group IDs | |
| campaign_ids | No | Restrict to campaign IDs | |
| expression_types | No | Target expressionType filter | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, openWorldHint=true, destructiveHint=false, so the safety profile is covered. The description adds genuine value beyond that by disclosing the key behavioral trait: this reads directly from the Amazon Ads API rather than the warehouse, and freshness may differ. It doesn't cover pagination, rate limits, or default result sizing, which the schema partially handles.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The enumeration of entity families is front-loaded and the usage condition follows immediately; every clause earns its place and nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 described, and the annotations cover the read-only safety profile. The description is complete enough to call the tool correctly, but for a 16-parameter tool sitting beside a similarly named sibling it should have clarified the boundary between the two live-entity tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across all 16 parameters, including the tricky profile_id default and the scope/entity_type relationships, so the structured data already carries the semantics. The description adds no syntax, format, or interaction detail on top of it, which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (List) plus resource (Sponsored Products live entity state pulled directly from the Amazon Ads API) and enumerates the seven entity families covered. It is clear and actionable, though it never distinguishes itself from the near-identical sibling get_sponsored_ads_entities_live, which forces the agent to guess between them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use before write operations when warehouse snapshots may lag" gives an explicit trigger condition and the reason to prefer this live source over snapshot tools. It stops short of naming the competing live sibling or stating when-not to use it, so it is clear context without full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sponsored_ads_entities_liveSponsored ads entities (live)ARead-onlyInspect
List current Sponsored Products, Sponsored Brands, or Sponsored Display entity state directly from Amazon Ads API for verified read-only combinations. Sponsored Brands keyword/product/category/theme targets and their negatives read through Common Campaign Management (entity_type=target or negative_target; keyword/negative_keyword alias to KEYWORD targets and surface the keyword text, match type, and bid). Returns Amazon-source fields with bounded pagination and diagnostics for unsupported product/entity pairs; agentcentral does not infer actions.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | Entity IDs for the selected entity type. | |
| asins | No | Sponsored Products target ASIN filter where Amazon supports it. | |
| scope | No | Sponsored Products negative entities only: restrict to ad-group-level or campaign-level records. Omit to query both. | |
| states | No | Entity states to include. Product-specific unsupported state filters, including SD PROPOSED, return diagnostics without an API call. | |
| ad_product | Yes | Sponsored ad product to query: SP, SB, or SD. | |
| name_query | No | Campaign/ad-group/ad name filter where Amazon supports it. SD name filters are exact-match per Amazon docs. | |
| next_token | No | Amazon pagination token for SP/SB list endpoints. | |
| profile_id | No | Numeric Amazon Ads profile ID. Optional when this API key has exactly one enabled Ads profile; agentcentral will default it. Call get_account_info for amazon_ads.enabled_profile_ids. Do not use the marketplace ID, tenant ID, or API key prefix. | |
| text_query | No | Sponsored Products keyword or negative keyword text filter. | |
| entity_type | Yes | Entity family to list. Supported combinations are returned in diagnostics for unsupported product/entity pairs. | |
| match_types | No | Sponsored Products keyword or negative keyword match type filter. | |
| max_results | No | Maximum rows to request from Amazon (1-100). | |
| start_index | No | Sponsored Display offset pagination cursor. SD uses start_index/count instead of next_token. | |
| ad_group_ids | No | Restrict to ad group IDs. | |
| campaign_ids | No | Restrict to campaign IDs. | |
| target_types | No | Sponsored Brands target type filter for entity_type=target/negative_target. entity_type=keyword/negative_keyword forces KEYWORD. | |
| portfolio_ids | No | Campaign-level portfolio ID filter where Amazon supports it. | |
| expression_types | No | Sponsored Products target expression type filter. | |
| include_raw_rows | No | Set false to return a compact row preview while keeping diagnostics. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. | |
| include_extended_data | No | Request extended fields where Amazon documents them. For SB ads this is ignored because the list endpoint has no extended-data flag. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds meaningful context beyond annotations: Amazon-source fields, bounded pagination, diagnostics for unsupported product/entity pairs, SB target alias behavior, and the explicit constraint that agentcentral does not infer actions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences and front-loads the core purpose. The middle sentence is dense with parenthetical detail, but every clause earns its place by clarifying entity_type aliasing and supported SB target behavior for a 21-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complex 21-parameter schema, 100% schema description coverage, and an output schema, the description is largely complete: it covers purpose, read-only scope, pagination, diagnostics, and SB target aliasing. It lacks explicit when-to-use routing against sibling tools, but that is the only notable gap for an otherwise well-documented live entity-listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. The description adds semantic value beyond the schema by explaining that entity_type=target or negative_target routes SB keyword/product/category/theme targets through Common Campaign Management, and that keyword/negative_keyword aliases to KEYWORD targets and surfaces keyword text, match type, and bid.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (List) and resource (current Sponsored Products, Sponsored Brands, or Sponsored Display entity state) with a clear scope: directly from Amazon Ads API for verified read-only combinations. It does not explicitly name sibling tools such as get_sp_entities_live or get_sponsored_ads_report, but its broader ad-product coverage is distinguishable from those narrower sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by phrases like 'for verified read-only combinations' and 'diagnostics for unsupported product/entity pairs', which tell the agent this tool is for supported read-only entity-state queries. However, it does not explicitly say when to use this tool instead of alternatives like get_sp_entities_live, get_sd_campaign_performance, or get_sponsored_ads_report, leaving routing guidance incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sponsored_ads_reportSponsored ads reportARead-onlyInspect
Use for retained Sponsored Products, Sponsored Brands, and Sponsored Display report views when you need one parameterized cross-product report surface. Especially useful for SB/SD ads, search terms, targeting, purchased products, and invalid traffic that are not exposed as narrow tools. For common SP campaign/ad group/search-term workflows, the narrower SP tools may be clearer.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | No | Filter by advertised, promoted, purchased, or targeting ASIN where the selected view supports an ASIN column. | |
| ad_id | No | Filter by ad/ad product-ad ID when the selected view has ad grain. | |
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| keyword | No | Filter by keyword text (LIKE match) where the selected view includes keyword text. | |
| sort_by | No | Column to sort by | spend |
| end_date | No | Optional. YYYY-MM-DD. Defaults to today if omitted. | |
| ad_product | Yes | Sponsored ad product: SP (Sponsored Products), SB (Sponsored Brands), or SD (Sponsored Display). | |
| profile_id | No | Filter by profile ID | |
| sort_order | No | Sort order | desc |
| start_date | No | Optional. YYYY-MM-DD. Defaults to 30 days ago if omitted. | |
| ad_group_id | No | Filter by ad group ID when the selected view has ad-group grain. | |
| campaign_id | No | Filter by campaign ID. | |
| report_view | Yes | Retained report view to query. Unsupported product/view combinations return metadata instead of guessing. | |
| search_term | No | Filter by customer search term (LIKE match) for search-term views. | |
| target_query | No | Filter targeting text/expression (LIKE match) for targeting views. | |
| ad_group_name | No | Filter by ad group name (LIKE match) when available. | |
| campaign_name | No | Filter by campaign name (LIKE match, use % for wildcards) | |
| non_zero_only | No | When true, omit rows with zero or null spend, sales, orders, units, impressions, and clicks. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds one useful behavioral nuance via the schema note that unsupported product/view combinations return metadata instead of guessing. It does not discuss data freshness or rate limits, so it adds modest value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the primary use case and followed by the alternative routing. No wasted preamble, though the second and third sentences overlap somewhat in intent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, and annotations cover the safety profile. The description adequately covers scope and routing for a 21-parameter reporting tool, leaving only minor gaps around freshness/limits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with 21 well-documented parameters, so the schema carries parameter semantics. The description adds no syntax or format details beyond what the schema provides, making 3 the appropriate baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource (retained SP/SB/SD report views) and frames the tool as a single cross-product report surface. It distinguishes itself from the many narrow sibling report tools by noting it covers SB/SD ads, search terms, targeting, purchased products, and invalid traffic. Slightly abstract ('one parameterized cross-product report surface') but an agent can place it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use (retained cross-product views, especially SB/SD areas not exposed by narrow tools) and when an alternative is better ('For common SP campaign/ad group/search-term workflows, the narrower SP tools may be clearer'). This is clear routing guidance with a named alternative class.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sponsored_ads_targeting_optionsSponsored ads targeting optionsARead-onlyInspect
Return Amazon-source Sponsored Products, Sponsored Brands, and Sponsored Display targeting option and bid-recommendation fields for documented read-only endpoints. Unsupported or ambiguous endpoint slices return diagnostics without an Amazon call; AMC is out of scope.
| Name | Required | Description | Default |
|---|---|---|---|
| asins | No | ASIN inputs for SP recommendations or convenience SD product payloads. | |
| brands | No | SB products_count brand refinement IDs. | |
| cursor | No | SP product recommendation pagination cursor. | |
| genres | No | SB products_count genre refinement IDs. | |
| locale | No | Optional Amazon Ads locale, such as en_US or de_DE. | |
| tactic | No | SD target_recommendations tactic. | T00030 |
| themed | No | SP product recommendations only: request Amazon theme-grouped output when supported. | |
| themes | No | SD target_recommendations themes object from Amazon's schema. | |
| keyword | No | SP negative brand search keyword. | |
| products | No | SD target/bid recommendation products array from Amazon's schema. Use request_body for full raw control. | |
| cost_type | No | SD bid_recommendations costType. | cpc |
| ad_product | Yes | Sponsored ad product to query: SP, SB, or SD. | |
| age_ranges | No | SB products_count age-range refinement IDs. | |
| next_token | No | SB category/refinement pagination token. | |
| profile_id | No | Numeric Amazon Ads profile ID. Optional when this API key has exactly one enabled Ads profile; agentcentral will default it. Call get_account_info for amazon_ads.enabled_profile_ids. Do not use the marketplace ID, tenant ID, or API key prefix. | |
| ad_group_id | No | Sponsored Products keyword recommendations ad group ID. | |
| campaign_id | No | Sponsored Products keyword recommendations campaign ID. | |
| category_id | No | Category refinement ID for category_refinements or products_count. | |
| max_results | No | Maximum Amazon-source options to request where supported. | |
| option_type | Yes | Amazon-source targeting or bid-option surface. Unsupported product/option pairs return diagnostics without an API call. | |
| price_range | No | SB products_count price range object from Amazon's schema, for example { min, max }. | |
| type_filter | No | SD target_recommendations typeFilter. Defaults to PRODUCT, CATEGORY, and AUDIENCE. | |
| rating_range | No | SB products_count rating range object from Amazon's schema, for example { min, max }. | |
| request_body | No | Advanced override: exact Amazon Ads request body for the selected endpoint. Use only when following Amazon's published schema. | |
| category_type | No | SD target_recommendations categoryType for category audiences. | |
| creative_type | No | SD bid_recommendations creativeType. | |
| landing_pages | No | Required for SB bid_recommendations/optimization_recommendations: the promoted-ASIN landingPages array from Amazon's schema (e.g. [{asins:["B0..."]}]). Amazon uses it to compute the campaign-level suggested CPC (minimumValue/recommendedValue). | |
| supply_source | No | SB category supply source. STREAMING_VIDEO is deprecated; agentcentral only exposes AMAZON. | AMAZON |
| bid_optimization | No | SD bid_recommendations bidOptimization. | clicks |
| include_ancestor | No | SP category recommendations only: include ancestor categories when Amazon supports it. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| is_prime_shipping | No | SB products_count Prime-shipping refinement. | |
| targeting_clauses | No | SD bid_recommendations targetingClauses array from Amazon's schema. | |
| candidate_keywords | No | Optional SP keyword candidates to include alongside Amazon keyword recommendations. | |
| cost_control_metric | No | SB optimization recommendation metric. Amazon currently supports COST_PER_CLICK. | COST_PER_CLICK |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. | |
| location_expression | No | SD target_recommendations locationExpression from Amazon's schema. | |
| include_only_root_categories | No | SB category tree only: return only root categories. | |
| parent_category_refinement_id | No | SB category tree only: return children of this parent category refinement ID. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint=false, and openWorldHint. Beyond those, the description discloses non-obvious behavior: unsupported or ambiguous endpoint slices return diagnostics without making an Amazon call, and AMC is excluded. That failure/no-op mode is genuine added value not present in the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste, front-loaded with what is returned followed by scope exclusions. Appropriate size for a broad multi-endpoint tool without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema, annotations, and full param coverage exist, so return-format and argument detail need not be repeated. The description adequately conveys scope and no-call behavior. Its one real gap is failing to position the tool against the overlapping get_sp_targeting_options and get_bid_recommendations siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already carries the per-parameter semantics (including how profile_id resolves, which params are SP/SB/SD-specific, and pagination cursors). The description adds no per-parameter detail. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Return) and resource (targeting option and bid-recommendation fields) across the three Amazon ad products (SP, SB, SD), which implicitly distinguishes it from the SP-only get_sp_targeting_options and the get_bid_recommendations siblings. It stops short of naming those siblings explicitly, so the differentiation must be inferred by the agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives some scope boundaries ("documented read-only endpoints", "AMC is out of scope", unsupported slices return diagnostics), which is implied usage guidance. However, with 39 parameters and a broad option_type enum, it never states when to choose this tool over the closely overlapping siblings get_sp_targeting_options or get_bid_recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sp_targeting_optionsSP targeting optionsARead-onlyInspect
Return Amazon-source Sponsored Products targeting options and recommendation fields: keyword candidates, product target candidates, category recommendations/tree/refinements, and negative brand search/recommendations. Source-attributed read-only data; agentcentral does not decide which targets to create.
| Name | Required | Description | Default |
|---|---|---|---|
| asins | No | Input ASINs for product/category recommendations | |
| cursor | No | Amazon cursor for product recommendation pagination | |
| locale | No | Optional Amazon Ads locale, such as en_US or de_DE | |
| themed | No | For product recommendations, request Amazon theme-grouped output when supported | |
| keyword | No | Brand search keyword for negative_brand_search | |
| profile_id | No | Numeric Amazon Ads profile ID. Optional when this API key has exactly one enabled Ads profile; agentcentral will default it. Call get_account_info for amazon_ads.enabled_profile_ids. Do not use the marketplace ID, tenant ID, or API key prefix. | |
| ad_group_id | No | Ad group ID for keyword recommendations | |
| campaign_id | No | Campaign ID for keyword recommendations | |
| category_id | No | Category ID for category_refinements | |
| max_results | No | Maximum Amazon-source options to request where supported | |
| option_type | Yes | Amazon-source targeting discovery surface to call | |
| include_ancestor | No | For category recommendations, include ancestor categories when Amazon supports it | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| candidate_keywords | No | Optional keywords to rank alongside Amazon keyword recommendations | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds useful framing that results are source-attributed read-only Amazon data and that the tool does not commit targets, but says nothing about rate limits, pagination behavior, or result freshness beyond what the schema flags describe.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with the core verb and enumerated surfaces front-loaded, followed by the read-only/no-commit caveat. Nothing is padded or repeated from the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explained, and the 15-parameter schema is fully documented. The description adequately frames the tool's scope and non-committal nature; only the failure to distinguish it from its closest sibling keeps it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across all 15 parameters, so the schema already carries the parameter semantics; baseline 3 is appropriate. The description's enumeration of surfaces loosely corresponds to the option_type enum, but it adds no format, default, or constraint detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource (return Amazon-source Sponsored Products targeting options) and enumerates the exact discovery surfaces covered, so an agent knows precisely what it produces. It does not, however, differentiate itself from the near-identical sibling get_sponsored_ads_targeting_options, which is a real ambiguity given how close the names are.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: 'read-only data; agentcentral does not decide which targets to create' hints that this is a discovery call feeding a later decision, but there is no explicit when-to-use, when-not-to-use, or named alternative versus the SP/Sponsored-Ads siblings. The agent must infer the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_store_performanceStore performanceARead-onlyInspect
Use for Amazon Brand Store analytics by date, store, page, source, or tag: views, visits, orders, units, sales, dwell time, bounce rate, and new-to-store. Do not use for account sales totals, ASIN/SKU sales, or ad campaign performance; use sales or ads tools.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Filter by source tag name | |
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| source | No | Filter by traffic source, such as ADS, ORGANIC, or OTHER | |
| page_id | No | Filter by Brand Store page ID | |
| sort_by | No | Column to sort by | views |
| end_date | No | Optional. YYYY-MM-DD. Defaults to yesterday. | |
| dimension | No | Breakdown to return: date, store, page, source, or tag | date |
| min_sales | No | Only include rows with at least this sales amount | |
| min_views | No | Only include rows with at least this many page views | |
| page_name | No | Filter by Brand Store page name (LIKE match, use % for wildcards) | |
| profile_id | No | Filter by ad account profile ID | |
| sort_order | No | Sort order | desc |
| start_date | No | Optional. YYYY-MM-DD. Defaults to 30 days ago. | |
| store_name | No | Filter by store name (LIKE match, use % for wildcards) | |
| brand_entity_id | No | Filter by Brand Store entity ID | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds scope (which dimensions and metrics apply) but says nothing about data freshness, default lookback behavior, or result shape beyond what the schema and output schema already provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both front-loaded with the essential information: scope/metrics first, then exclusions and redirects. There is no padding, and the negative guidance is placed where an agent will see it before committing to the call.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and full parameter coverage, the description need not explain return values, and it correctly focuses on scope and routing. It is nearly complete, with only the vague 'sales or ads tools' redirect and unstated default date window keeping it below 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all 18 parameters (including enums for dimension, sort_by, and sort_order, plus date formats and pagination semantics) are already documented in the schema. The description's 'by date, store, page, source, or tag' phrase merely restates the dimension enum rather than adding syntax or interaction detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (Amazon Brand Store analytics), the dimensions available (date, store, page, source, tag), and the metric set returned (views, visits, orders, units, sales, dwell time, bounce rate, new-to-store). It explicitly separates itself from account totals, ASIN/SKU sales, and ad campaign performance, so 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit negative guidance ('Do not use for account sales totals, ASIN/SKU sales, or ad campaign performance'), which is the key routing signal against a large sibling list. However, the redirect is generic ('use sales or ads tools') rather than naming the concrete siblings such as get_sales_summary or get_campaign_performance, leaving the agent to guess the exact target.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subscribe_and_saveSubscribe and SaveBRead-onlyInspect
Get Amazon Subscribe & Save offer status, historical snapshots, and Amazon-provided Subscribe & Save metrics.
| Name | Required | Description | Default |
|---|---|---|---|
| skus | No | Filter metrics by SKU where Amazon supports SKU filters. | |
| view | No | Data view. Defaults to offers, or offer_history when start_date/end_date is provided without a view. Use offer_metrics for ASIN/SKU metrics and seller_metrics for seller/brand-level retention and revenue metrics. | |
| asins | No | Filter by specific ASINs. Live offers are capped at 20 ASINs per call; metrics support depends on Amazon's view/filter rules. | |
| limit | No | Max rows to return (1-500, default 20). Live offers are capped at 100 by Amazon. | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| metrics | No | Optional Amazon metric allowlist for seller_metrics. Omit for Amazon's default/all metrics unless using ASIN/SKU/fulfillment filters. | |
| end_date | No | Optional. YYYY-MM-DD. Defaults to today for offer_history and metrics views. | |
| start_date | No | Optional. YYYY-MM-DD. For offer_history, reads stored snapshots. For metrics views, defaults to a 30-day window ending at end_date/today. | |
| brand_names | No | Filter seller_metrics by brand name where Amazon supports brand filters. Retention metrics are brand-filterable for US marketplace data. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| time_period_type | No | Metrics period type for offer_metrics and seller_metrics. | PERFORMANCE |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. | |
| aggregation_frequency | No | Metrics aggregation frequency for offer_metrics and seller_metrics. | WEEK |
| fulfillment_channel_types | No | Filter metrics by fulfillment channel type where supported. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds that results include historical snapshots and Amazon-provided metrics, but says nothing about pagination behavior, freshness, or the 20-ASIN/100-offer caps that materially affect calls – although those appear in the schema rather than the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though at the cost of being thin for a tool with 14 parameters and four view modes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explained, and full schema coverage handles the parameters. However, for a 14-param, zero-required, four-view tool, the description does little to orient an agent on which view to pick or that this is a read-only reporting tool rather than a mutation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every one of the 14 parameters is already documented in the schema, and the baseline is 3. The description adds no parameter-level meaning beyond repeating 'offer status, historical snapshots, metrics' at a high level.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (Amazon Subscribe & Save) plus the three categories of data returned (offer status, historical snapshots, metrics). It is clear what the tool does, but it makes no attempt to distinguish itself from the many other get_* siblings or to signal that it is the sole Subscribe & Save surface.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no when-to-use guidance, no prerequisites, and no alternatives. The existence of four views (offers, offer_history, offer_metrics, seller_metrics) is the key usage decision, yet it is only explained inside the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_suppressed_listingsSuppressed listingsARead-onlyInspect
Get suppressed/stranded listings: items that are in FBA inventory but not buyable. Returns source suppression facts enriched with current listing titles where available. Reimbursement placeholder SKUs are filtered by default; set include_synthetic_skus=true to include rows flagged with is_synthetic. This table refreshes daily. For a live buyability cross-check on a specific ASIN, pair with get_buybox_status, get_listing_restrictions, and get_fba_eligibility (all live SP-API).
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Filter by SKU | |
| asin | No | Filter by ASIN | |
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| ob_date | No | Filter by observation date (YYYY-MM-DD). Defaults to the latest successful suppressed-listings sync, which can be empty. | |
| sort_by | No | Column to sort by | sku |
| sort_order | No | Sort order | desc |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. | |
| include_synthetic_skus | No | Include reimbursement placeholder SKUs such as FBA...missing1. Defaults to false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so safety is covered. The description adds genuinely non-structured behavior: the daily refresh cadence, that synthetic reimbursement placeholder SKUs are filtered by default, and that results are enriched with current titles.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It front-loads the definition before the operational notes, and each sentence carries distinct information (definition, return shape, default filter, freshness, pairing). The include_synthetic_skus restatement is minor overlap with the schema, slightly diluting the concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering safety and an output schema covering return values, the description only needs to add purpose, freshness, defaults, and routing, all of which it does. An agent has enough to call this correctly; only a fuller exclusion rule would push it higher.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 every parameter, including the include_synthetic_skus default and ob_date behavior. The description mostly restates the default-filtering rule and adds only the detail that rows are flagged with is_synthetic; useful but largely redundant against the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get suppressed/stranded listings') and immediately defines the concept ('items that are in FBA inventory but not buyable'), then says what it returns ('source suppression facts enriched with current listing titles'). It is clearly distinguishable from live-API siblings like get_buybox_status and get_fba_eligibility, which it names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit pairing guidance ('For a live buyability cross-check on a specific ASIN, pair with get_buybox_status, get_listing_restrictions, and get_fba_eligibility') and distinguishes freshness by noting the table refreshes daily. It stops short of a full when-not-to-use statement, but the daily-vs-live contrast is a clear routing signal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tacosTACOS (total ad cost of sales)ARead-onlyInspect
Use for ASIN-level TACOS/PPC share from Business Reports plus aligned SP/SD product data. Ads stop at the latest Business Report date in the requested window. ad_sales is SP same-SKU 14-day attributed sales plus SD promoted-ASIN sales; total_attributed_ad_sales separately retains SP halo plus SD promoted-ASIN sales for compatibility. organic_sales is approximate Business Report sales less product-attributed ad_sales. TACOS remains SP+SD spend divided by Business Report sales; ASIN-level ACOS uses product-attributed ad_sales. Sponsored Brands and DSP are excluded. Use campaign tools for campaign ACOS.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | No | Filter by child ASIN (exact match) | |
| limit | No | Max rows (1-1000, default 20). | |
| offset | No | Pagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue. | |
| sort_by | No | Column to sort by | total_sales |
| end_date | No | Optional. YYYY-MM-DD. Defaults to today if omitted. | |
| group_by | No | Output grain. asin (default) returns one row per child ASIN; parent_asin rolls sales and SP/SD ad spend up across size/color variations to the parent ASIN. | asin |
| sort_order | No | Sort order | desc |
| start_date | No | Optional. YYYY-MM-DD. Defaults to 30 days ago if omitted. | |
| parent_asin | No | Filter to one variation family (exact match on the Business Report parent ASIN). With group_by=asin returns one row per child in the family; with group_by=parent_asin returns that family's single rollup row. | |
| channel_split | No | Add deterministic per-ASIN spend and product-attributed sales columns. sp_ad_sales uses SP same-SKU sales; sd_ad_sales uses SD promoted-ASIN sales; sp_total_attributed_ad_sales retains SP halo sales. Sponsored Brands and DSP have no per-ASIN spend attribution and are excluded from these and from ad_spend/tacos; use get_sb_campaign_performance for Sponsored Brands. | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_zero_sales | No | Include ASINs/parents that have SP/SD ad activity but no Business Report sales row in the window. Default false returns only products with Business Report presence. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring readOnly/openWorld=false, the description still adds substantial behavior: ads stop at the latest Business Report date, ad_sales uses SP same-SKU 14-day attribution plus SD promoted-ASIN sales, total_attributed_ad_sales retains SP halo, organic_sales is derived by subtraction, and TACOS denominator differs from ASIN-level ACOS numerator. These alignment and attribution caveats are exactly the traps an agent would otherwise fall into.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and data scope are front-loaded in the first sentence, then alignment rules and metric definitions follow in a logical order with no filler sentences. It is dense with jargon and metric-naming detail (e.g. the halo/compatibility note), which borders on overload for a description, but each sentence carries real information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 13 parameters at full schema coverage, an output schema, and non-destructive read annotations, the description supplies everything else an agent needs: grain options, window/alignment behavior, attribution definitions, and inclusion/exclusion rules. Nothing material for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (including channel_split, group_by, include_zero_sales) is already documented in the schema. The description adds metric definitions rather than parameter-level meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence states a specific resource (ASIN-level TACOS/PPC share) plus its data provenance (Business Reports + aligned SP/SD product data), and the closing sentence carves out the sibling grain it is not ('Use campaign tools for campaign ACOS'). An agent can distinguish this from campaign- and SB/DSP-level tools 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear selection context: use this for ASIN-level TACOS/PPC share, and it explicitly excludes Sponsored Brands and DSP while redirecting campaign-level ACOS needs to campaign tools. The alternative is named only generically ('campaign tools') in the body rather than by a concrete tool name, and no prerequisites (auth/account scope) are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_todays_salesToday's salesARead-onlyInspect
Use only for today/current-day Amazon marketplace sales from orders/order items, refreshed well ahead of the ~72-hour Business Reports lag. Explicit Non-Amazon/MCF sales channels and canceled orders are excluded so totals reconcile with get_sales_summary and Business Reports. Check sales_completeness_state for the current-day picture. Grain: per-ASIN rows with account-level totals in structuredContent.totals. Limit applies to ASIN rows only. revenue is available priced line-item revenue; Pending FBA prices are enriched from Amazon's order-tracking report when available, while remaining unavailable units stay explicit and estimated_revenue provides the deterministic ASP-filled estimate. Use get_orders or fulfillment tools for channel-complete order/MCF activity. Do not use for yesterday, historical dates, or ranges; use get_sales_summary for account daily totals or get_sales_velocity/get_sales_and_traffic for historical ASIN/SKU sales.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max ASIN rows to return (1-1000, default 20) | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| fulfillment_channel | No | Filter by fulfillment channel: AFN (FBA) or MFN (merchant) | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations supply the safety profile (readOnly, non-destructive, closed world), and the description adds substantial behavior beyond them: data freshness relative to the ~72-hour Business Reports lag, exclusion of Non-Amazon/MCF channels and canceled orders, reconciliation with get_sales_summary, per-ASIN row grain with account totals, and how Pending FBA prices are enriched versus left as estimated_revenue. That is unusually rich disclosure for a read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the critical scoping sentence before the mechanics, and most clauses carry actionable information. It is dense and jargon-heavy ('deterministic ASP-filled estimate'), with a couple of clauses that could be tightened, but there is little outright waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex, lag-affected sales tool it covers exclusions, freshness, grain, limit semantics, enriched vs estimated revenue, and alternatives to sibling tools. An output schema exists, so return-shape explanation is optional, yet the mention of structuredContent.totals adds useful orientation rather than padding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 real semantics not in the schema: 'Limit applies to ASIN rows only', which clarifies the grain the limit constrains. It does not elaborate on fulfillment_channel or include_raw_rows beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('today/current-day Amazon marketplace sales from orders/order items') and immediately scopes it as current-day only. It names the siblings it is not (get_sales_summary, get_sales_velocity, get_sales_and_traffic, get_orders) so an agent can discriminate without opening another schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use ('Use only for today/current-day'), explicit when-not ('Do not use for yesterday, historical dates, or ranges'), and it routes to named alternatives for each excluded case, plus a pointer to sales_completeness_state for current-day coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_variationsVariationsBRead-onlyInspect
Get parent/child variation relationships for an ASIN. Shows the variation family tree including variation theme (size, color, etc.) and all child ASINs.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | Yes | Parent or child ASIN to look up variation relationships for | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered without description help. The description adds content scope (variation theme, child ASINs), which is useful, but discloses nothing about auth, rate limits, or edge cases like non-variant ASINs. With annotations carrying the safety burden, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, zero filler, and the core purpose is front-loaded ahead of the clarifying detail about what the tree contains. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not needed, and annotations cover the safety profile. For a simple one-required-param read tool, the description is essentially complete; the only gap is routing guidance against sibling ASIN-lookup tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (asin, include_raw_rows, include_diagnostics) are already documented in the schema. The description adds no parameter-level syntax or format detail beyond 'for an ASIN.' Baseline 3 is correct when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get parent/child variation relationships for an ASIN,' and clarifies the scope with 'variation family tree including variation theme... and all child ASINs.' An agent can immediately tell this is about variation families. It does not name or differentiate from any sibling (e.g. get_product_details, get_listing_registry), which keeps it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no exclusions, and no mention of alternatives such as get_product_details or get_listing_registry, which also touch ASIN-level data. The reader can only infer the call context from 'for an ASIN.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refresh_listing_offer_observationsRefresh listing offer observationsARead-onlyInspect
Request a bounded asynchronous Listings Items observation refresh for up to 20 explicitly selected seller SKUs. This reads Amazon only; it never changes a listing or replaces the materialized baseline. Results report requested/queued or enqueue_failed state, not an observed price.
| Name | Required | Description | Default |
|---|---|---|---|
| skus | Yes | Seller SKUs to refresh (1-20). | |
| include_raw_rows | No | False returns compact rows. Default true. | |
| include_diagnostics | No | True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available. |
Output Schema
| Name | Required | Description |
|---|---|---|
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/openWorld/destructive annotations by disclosing that the call is asynchronous, bounded to 20 SKUs, does not mutate the listing or replace the materialized baseline, and returns requested/queued/enqueue_failed state rather than an observed price. These are the exact behavioral traits an agent needs to avoid misinterpreting the result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly packed sentences with zero waste. The core action and its bound are front-loaded, and the second sentence delivers the scope and result-state caveats.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an async enqueue tool with full schema coverage, rich annotations, and an output schema, the description supplies everything else needed: async/bounded nature, no baseline mutation, and the meaning of the returned state. Nothing material is left ambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 skus (1-20), include_raw_rows, and include_diagnostics. The description only restates the SKU bound and adds no format or interaction detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (refresh listing offer observations) plus precise scope: bounded, asynchronous, up to 20 explicitly selected seller SKUs. It is clear what the tool does, though it never names a sibling (e.g., get_listing_offers) to sharpen the contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for when this applies — a bounded refresh request over an explicit SKU list — and clarifies scope ('reads Amazon only; it never changes a listing or replaces the materialized baseline'). It does not, however, state exclusions or point to the read-path alternative for obtaining observed prices.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_conversation_feedbackSubmit conversation feedbackAInspect
Submit a concise, redacted, task-specific product issue to agentcentral only after the user explicitly asks to send feedback and confirms the packet. Include only the minimum redacted evidence needed to investigate. Do not request or submit conversation history, prior-turn arrays, or raw transcripts. Do not submit API keys, bearer tokens, Connector URLs, refresh tokens, buyer names, addresses, phone numbers, emails, order IDs, tracking IDs, gift messages, full tool payloads, or unrestricted seller metrics. Free-text ASINs are aliased automatically; use related_asins only when specific ASINs are necessary for debugging. This creates a product feedback item for human review, not a support ticket and not model training data.
| Name | Required | Description | Default |
|---|---|---|---|
| evidence | No | Specific redacted evidence for review: tool names, freshness dates, short error fragments, or observed contradictions. Do not include raw payloads. | |
| severity | No | ||
| user_goal | No | Brief task goal, when needed to understand the issue. Do not include conversation history, prior-turn arrays, or raw transcripts. | |
| user_request | Yes | The user's explicit request to send this product-quality feedback to agentcentral. | |
| issue_summary | Yes | Concise, task-specific product issue with only the minimum redacted details needed to investigate. Do not include conversation history, prior-turn arrays, or raw transcripts. | |
| privacy_notes | No | Short note about sensitive details that were omitted, generalized, or redacted from the case packet. | |
| related_asins | No | Optional explicit ASINs needed for product debugging. ASINs in free text are aliased automatically. | |
| client_context | No | ||
| issue_category | Yes | Neutral classification of the issue; do not assign blame. | |
| agent_confidence | No | ||
| expected_behavior | No | ||
| observed_behavior | No | ||
| reproduction_notes | No | ||
| agentcentral_tools_used | No | agentcentral tool names involved in the issue, if known. | |
| relevant_error_messages | No | Short error messages only. Do not include raw payloads, credentials, Connector URLs, or transcripts. | |
| submission_acknowledgement | Yes | Must be true. Confirms the user reviewed the summary and explicitly asked to submit it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the safety profile (write, openWorld, non-destructive); the description adds destination (agentcentral), downstream handling (creates a product feedback item for human review, not training data), and extensive redaction rules. It goes well beyond what the structured annotations convey and contradicts nothing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the action and its precondition in the first sentence, then layers constraints. It is dense and long, but nearly every clause carries actionable redaction or routing guidance rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter submission tool with no output schema, the description supplies the prerequisites, privacy boundaries, field-level hints, and the nature of the created artifact. Nothing critical to invoking it correctly appears to be missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 63% schema coverage across 16 parameters, the description adds real meaning: it explains the evidence field's redaction intent, the automatic aliasing of free-text ASINs and when to use related_asins, and that issue_category must be neutral. It stops short of describing several other fields (severity, agent_confidence, reproduction_notes), so it complements rather than fully covers the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (submit) plus resource (a redacted, task-specific product issue sent to agentcentral), and draws a clear line from every sibling, which are all read-oriented get_* tools. An agent can tell instantly that this is the single write/submission tool in the set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit precondition ('only after the user explicitly asks to send feedback and confirms the packet') and explicit exclusions ('not a support ticket and not model training data'). It also states what not to do (no conversation history, no raw transcripts), leaving little to inference.
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 tool update
- Changed
get_product_fee_estimates6 fields changed- added
Input schema / properties / is_amazon_fulfilledAdded value: +{ + "description": "live only. Required fulfillment flag for Amazon's estimate.", + "type": "boolean" +} - added
Input schema / properties / priceAdded value: +{ + "description": "live only. Candidate listing price, zero or greater.", + "minimum": 0, + "type": "number" +} - added
Input schema / properties / shipping_priceAdded value: +{ + "description": "live only. Optional candidate shipping price.", + "minimum": 0, + "type": "number" +} - changed
Input schema / properties / sku / descriptionPrevious value: -"Filter by exact seller SKU."New value: +"Filter by exact seller SKU. Required for view=live." - changed
Input schema / properties / view / descriptionPrevious value: -"current returns the latest report-backed snapshot; history returns bounded snapshot rows; changes compares two compatible snapshots deterministically."New value: +"current returns the latest report-backed snapshot; history returns bounded snapshot rows; changes compares two compatible snapshots; live requests Amazon's Product Fees API for one SKU and a caller-supplied price." - changed
Input schema / properties / view / enumPrevious value: -[ - "current", - "history", - "changes" -]New value: +[ + "current", + "history", + "changes", + "live" +]
98 tool updates
- Added
diagnose_performance - Added
get_account_data_tour - Added
get_account_info - Added
get_action_history - Added
get_ad_eligibility - Added
get_adgroup_performance - Added
get_ads_change_history - Added
get_aplus_status - Added
get_attribution_performance - Added
get_audience_segments - Added
get_awd_inventory - Added
get_awd_shipment_items - Added
get_awd_shipments - Added
get_bid_recommendations - Added
get_brand_health - Added
get_brand_search_terms - Added
get_budget_pacing - Added
get_budget_recommendations - Added
get_buybox_status - Added
get_campaign_performance - Added
get_campaign_snapshots - Added
get_catalog_cleanup - Added
get_competitive_pricing - Added
get_current_rank - Added
get_days_of_cover - Added
get_dsp_advertisers_live - Added
get_dsp_entities_live - Added
get_dsp_performance - Added
get_fba_eligibility - Added
get_fba_inbound_documents - Added
get_fba_inbound_operation_status - Added
get_fba_inbound_options - Added
get_fba_inbound_plan - Added
get_fba_inventory - Added
get_fba_storage_fees - Added
get_financial_events - Added
get_inbound_shipments - Added
get_inventory_by_fulfillment_center - Added
get_inventory_health - Added
get_inventory_movements - Added
get_inventory_risk_triage - Added
get_keyword_performance - Added
get_keyword_ranks - Added
get_listing_content_changes - Added
get_listing_offers - Added
get_listing_quality - Added
get_listing_registry - Added
get_listing_restrictions - Added
get_market_basket - Added
get_mcf_orders - Added
get_offer_listings - Added
get_order_details - Added
get_order_items - Added
get_orders - Added
get_payment_transactions - Added
get_placement_breakdown - Added
get_portfolio_performance - Added
get_product_details - Added
get_product_fee_estimates - Added
get_product_performance - Added
get_product_reviews - Added
get_profitability_review - Added
get_promotion_performance - Added
get_purchased_products - Added
get_reimbursements - Added
get_repeat_purchase_behavior - Added
get_report_document - Added
get_returns - Added
get_review_trends - Added
get_sales_and_traffic - Added
get_sales_ranks - Added
get_sales_summary - Added
get_sales_velocity - Added
get_sb_campaign_performance - Added
get_sd_campaign_performance - Added
get_search_catalog_performance - Added
get_search_query_ad_coverage - Added
get_search_query_performance - Added
get_search_terms - Added
get_seasonality_index - Added
get_settlement_economics - Added
get_share_of_voice - Added
get_shipment_receiving_status - Added
get_shipping_preview - Added
get_sp_entities_live - Added
get_sp_targeting_options - Added
get_sponsored_ads_entities_live - Added
get_sponsored_ads_report - Added
get_sponsored_ads_targeting_options - Removed
get_started - Added
get_store_performance - Added
get_subscribe_and_save - Added
get_suppressed_listings - Added
get_tacos - Added
get_todays_sales - Added
get_variations - Added
refresh_listing_offer_observations - Added
submit_conversation_feedback
1 tool update
- First observed
get_started
Publisher details
- Operator
- Subsecond Data, LLC · Publisher source
- Operator website
- https://agentcentral.to/
- Vendor relationship
- Authorized partner
- Documentation
- https://agentcentral.to/docs
- Trust center
- https://agentcentral.to/security
- Restrictions
- Paid plan from $39 to $159 per month based on order volume, with a 14-day free trial and no credit card required. Requires an Amazon seller account, authorized through Amazon for Seller Central data and, optionally, Amazon Ads data. Each API key is scoped to one marketplace. Header-based clients authenticate with a Bearer API key from the dashboard. OAuth clients must support Client ID Metadata Documents; dynamic client registration is not offered. · Publisher source
Related MCP Connectors
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Connect Amazon Seller Central to Claude or ChatGPT via MCP. Orders, inventory, pricing, fees, FBA.
Get recommended by Amazon's AI. Hosted MCP server for Amazon listing compliance & generation.
Amazon Seller Central and Ads inside Claude or ChatGPT. Real fees from your own settlements.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceHosted Amazon Seller Central & Vendor Central MCP server. Connect Claude, ChatGPT, Cursor, Codex, Gemini, and GitHub Copilot to live Amazon SP-API and Amazon Ads API data.15MIT
- AlicenseNot gradedqualityCmaintenanceAmazon Seller Central MCP server. Connect Seller Central, Vendor Central and Amazon Ads to Claude, ChatGPT, Gemini or Cursor, and ask for net profit per SKU with your own COGS, VAT and FBM shipping costs, PPC down to the search term, SQP, inventory and listing health.MIT
- AlicenseNot gradedqualityCmaintenanceEnables sellers to interact with Amazon Selling Partner API and Advertising API data—orders, inventory, pricing, ads, reports, and more—through MCP clients like Claude and Cursor.MIT
- AlicenseNot gradedqualityDmaintenanceMCP servers for Amazon Seller Central and Amazon Ads API, enabling AI assistants to manage your Amazon account using natural language.9 npm2MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.