tool4seller-mcp
Server Details
tool4seller MCP server exposes Amazon seller data and ad management — sales/profit analytics, inventory, and Amazon Ads campaign management across 22 marketplaces — to AI assistants.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-03-26
- URL
TDQS
Scored across 61 tools
The prepare_X / apply_X pairs and diagnose_* tools are cleanly separated, but the read surface has several tools whose boundaries blur in practice: query_advertising, query_advertising_campaigns, query_advertising_targets, and query_advertising_search_terms all return performance metrics along different dimensions, and the workflow layer (prepare_workflow_draft, continue_workflow_draft, get_workflow_draft, get_workflow_plan) requires careful reading to pick correctly. Descriptions carry the disambiguation burden rather than names, which helps but leaves real misselection risk.
A clear verb_noun pattern dominates: query_*, prepare_*, apply_*, get_*, list_*, diagnose_*, cancel_/confirm_/continue_*. The only notable deviation is inventory_risk_review, which drops the leading verb, but it is still readable and unambiguous within the diagnostic family.
61 tools is far beyond a comfortable set, and the count is inflated by structural repetition: five prepare/apply advertising pairs, three prepare/apply keyword-rank pairs, plus a parallel workflow layer that duplicates the same operations. The broad Amazon seller + ads + tracking domain justifies many tools, but not this many distinct entry points.
Coverage is genuinely broad: sales, traffic, profit, inventory, orders, inbound shipments, reviews, ABA search terms, keyword-rank tracking lifecycle, and advertising CRUD across campaign/ad group/ad/targeting. Gaps are minor but real — campaign creation is Sponsored Products only while ad groups and ads support SD/SB, and portfolios are read-only with no write path.
Available Tools
61 toolsapply_ad_group_changesApply ad group changesADestructiveInspect
Executes only a confirmed AD_AD_GROUP_CHANGE plan on the authorized Amazon Ads account. Changes ad-group default bids, states, or names. Requires the plan's one-time confirmation receipt and an idempotency key. A linked structure draft may automatically prepare the next preview without confirming or executing it. Review Sandbox simulates advertising writes and skips continuation.
| Name | Required | Description | Default |
|---|---|---|---|
| planId | Yes | Confirmed immutable workflow plan ID. If this call times out or disconnects, do not prepare a replacement plan: query get_workflow_plan, or retry this exact plan with the same idempotency key. An INDETERMINATE item means Amazon may have accepted the write and must be reconciled before any retry. | |
| idempotencyKey | Yes | Client-generated key unique to this plan. Generate a new key for every newly prepared plan; include the planId or another random value. Reuse the exact key only when retrying apply for this same plan; never reuse it for a newly prepared plan. | |
| applyContinuation | No | For atomic plans belonging to an AD_STRUCTURE_CREATE draft. Pass the applyContinuation object returned by continue_workflow_draft or the previous apply result unchanged with its current plan. After the approved write finishes, the server prepares the next-stage preview without confirming or executing it. If omitted, continuation may still be recovered from the active linked plan. Review Sandbox skips automatic continuation. | |
| confirmationReceipt | Yes | One-time receipt returned by confirm_workflow_plan for this exact plan. A receipt for the current plan does not confirm subsequent plans. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| planId | No | |
| status | No | |
| storeId | No | |
| summary | No | |
| planHash | No | |
| policyId | No | |
| warnings | No | |
| createdAt | No | |
| expiresAt | No | |
| simulated | No | |
| parameters | No | |
| confirmedAt | No | |
| nextActions | No | |
| planVersion | No | |
| continuation | No | |
| workflowType | No | |
| executionMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations declaring a destructive write, the description discloses that a linked structure draft may automatically prepare a next preview without confirming or executing it, and that Review Sandbox simulates writes and skips continuation. It also highlights the one-time confirmation receipt and idempotency requirements, which are behaviorally important for safe retries.
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 four focused sentences, front-loading the core constraint that only a confirmed plan is executed. Each sentence carries useful operational context about prerequisites, continuation behavior, or sandbox behavior.
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 destructive workflow tool with nested parameters and an output schema, the definition covers the key call prerequisites, continuation side effect, and sandbox distinction. Error and reconciliation guidance is supplied in the schema's planId description, so no critical agent guidance 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 the schema already explains planId, confirmationReceipt, idempotencyKey, and applyContinuation in more detail than the tool description. The description adds only high-level requirements, 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 and resource: executing a confirmed AD_AD_GROUP_CHANGE plan, and clarifies that it changes ad-group default bids, states, or names. This distinguishes it from prepare_* and from apply_* tools for other resource types without requiring 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 clearly states that only a confirmed plan may be executed and that a one-time confirmation receipt and idempotency key are required. It also notes Review Sandbox behavior, but it does not explicitly name prepare_ad_group_changes or confirm_workflow_plan as the preceding steps, leaving that routing to inference from sibling names and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_ad_group_creationApply ad group creationADestructiveInspect
Executes only a confirmed AD_AD_GROUP_CREATE plan on the authorized Amazon Ads account. Creates advertising ad groups. Requires the plan's one-time confirmation receipt and an idempotency key. A linked structure draft may automatically prepare the next preview without confirming or executing it. Review Sandbox simulates advertising writes and skips continuation.
| Name | Required | Description | Default |
|---|---|---|---|
| planId | Yes | Confirmed immutable workflow plan ID. If this call times out or disconnects, do not prepare a replacement plan: query get_workflow_plan, or retry this exact plan with the same idempotency key. An INDETERMINATE item means Amazon may have accepted the write and must be reconciled before any retry. | |
| idempotencyKey | Yes | Client-generated key unique to this plan. Generate a new key for every newly prepared plan; include the planId or another random value. Reuse the exact key only when retrying apply for this same plan; never reuse it for a newly prepared plan. | |
| applyContinuation | No | For atomic plans belonging to an AD_STRUCTURE_CREATE draft. Pass the applyContinuation object returned by continue_workflow_draft or the previous apply result unchanged with its current plan. After the approved write finishes, the server prepares the next-stage preview without confirming or executing it. If omitted, continuation may still be recovered from the active linked plan. Review Sandbox skips automatic continuation. | |
| confirmationReceipt | Yes | One-time receipt returned by confirm_workflow_plan for this exact plan. A receipt for the current plan does not confirm subsequent plans. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| planId | No | |
| status | No | |
| storeId | No | |
| summary | No | |
| planHash | No | |
| policyId | No | |
| warnings | No | |
| createdAt | No | |
| expiresAt | No | |
| simulated | No | |
| parameters | No | |
| confirmedAt | No | |
| nextActions | No | |
| planVersion | No | |
| continuation | No | |
| workflowType | No | |
| executionMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive/openWorld writes; the description adds genuine context beyond them — real writes to the authorized account, one-time receipt semantics, idempotency, and that a linked draft may auto-prepare a next preview without confirming or executing it. Sandbox simulation behavior is disclosed rather than left to inference.
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 front-loaded sentences with no filler: action and scope first, then prerequisites, then continuation behavior, then sandbox caveat. Dense but every clause carries operational 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?
Return values are covered by the output schema, and the description handles the hard parts: continuation eligibility, automatic next-preview preparation, and sandbox divergence. Combined with the schema's retry/reconciliation notes, an agent has what it needs to call this safely.
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 the parameter descriptions are far richer than the tool description (timeouts, INDETERMINATE reconciliation, key reuse rules). The description only restates that a confirmation receipt and idempotency key are required, adding little 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 ('Executes ... Creates advertising ad groups') scoped to AD_AD_GROUP_CREATE plans on the authorized Amazon Ads account. The plan-type scoping implicitly separates it from prepare_ad_group_creation and apply_ad_group_changes, though neither sibling is named.
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?
Makes the prerequisite chain explicit: only a confirmed plan, requiring the one-time confirmation receipt and an idempotency key, so an agent knows it must come after confirm_workflow_plan. It also distinguishes the Review Sandbox case, but never states when to use apply_ad_group_changes instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_campaign_changesApply campaign changesADestructiveInspect
Executes only a confirmed AD_CAMPAIGN_CHANGE plan on the authorized Amazon Ads account. Changes campaign budgets, states, or names. Requires the plan's one-time confirmation receipt and an idempotency key. A linked structure draft may automatically prepare the next preview without confirming or executing it. Review Sandbox simulates advertising writes and skips continuation.
| Name | Required | Description | Default |
|---|---|---|---|
| planId | Yes | Confirmed immutable workflow plan ID. If this call times out or disconnects, do not prepare a replacement plan: query get_workflow_plan, or retry this exact plan with the same idempotency key. An INDETERMINATE item means Amazon may have accepted the write and must be reconciled before any retry. | |
| idempotencyKey | Yes | Client-generated key unique to this plan. Generate a new key for every newly prepared plan; include the planId or another random value. Reuse the exact key only when retrying apply for this same plan; never reuse it for a newly prepared plan. | |
| applyContinuation | No | For atomic plans belonging to an AD_STRUCTURE_CREATE draft. Pass the applyContinuation object returned by continue_workflow_draft or the previous apply result unchanged with its current plan. After the approved write finishes, the server prepares the next-stage preview without confirming or executing it. If omitted, continuation may still be recovered from the active linked plan. Review Sandbox skips automatic continuation. | |
| confirmationReceipt | Yes | One-time receipt returned by confirm_workflow_plan for this exact plan. A receipt for the current plan does not confirm subsequent plans. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| planId | No | |
| status | No | |
| storeId | No | |
| summary | No | |
| planHash | No | |
| policyId | No | |
| warnings | No | |
| createdAt | No | |
| expiresAt | No | |
| simulated | No | |
| parameters | No | |
| confirmedAt | No | |
| nextActions | No | |
| planVersion | No | |
| continuation | No | |
| workflowType | No | |
| executionMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (destructive=true, openWorld=true, readOnly=false), so the description's added value is workflow behavior: one-time receipt semantics, idempotency-key scoping, and the automatic linked-draft continuation that prepares but does not execute the next preview. The finer retry/INDETERMINATE guidance lives in the schema parameters rather than here, leaving a small gap against the destructive mutation.
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?
Core purpose is front-loaded in the first sentence, followed by the mutation scope, then prerequisites, with edge behaviors (continuation, sandbox) last. It is slightly redundant with the schema-level description, which repeats the same next-stage-preview guidance, and the closing sandbox sentence is terse to the point of being cryptic.
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 destructive, multi-stage workflow tool with an output schema, the description covers the aspects an agent could not infer from structure: confirmation receipt requirements, idempotency across retries, automatic continuation, and sandbox behavior. Return values are properly left to 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 parameter meaning is fully carried by the schema, including planId retry semantics, idempotency-key reuse rules, and the applyContinuation contract. The description only references the receipt and idempotency key in passing, which is the expected baseline when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (executes/applies), the resource (an AD_CAMPAIGN_CHANGE plan), and the exact fields mutated (budgets, states, names), which separates it from prepare_campaign_changes and from apply_campaign_creation. It does not name any sibling explicitly, so the differentiation is inferred rather than stated.
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 'only a confirmed plan' constraint plus the required one-time confirmation receipt and idempotency key make the preconditions clear. It also notes the Review Sandbox variant skips continuation. It stops short of naming alternatives (e.g. confirm_workflow_plan, query_advertising_campaigns) or stating when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_campaign_creationApply campaign creationADestructiveInspect
Executes only a confirmed AD_CAMPAIGN_CREATE plan on the authorized Amazon Ads account. Creates Sponsored Products campaigns. Requires the plan's one-time confirmation receipt and an idempotency key. A linked structure draft may automatically prepare the next preview without confirming or executing it. Review Sandbox simulates advertising writes and skips continuation.
| Name | Required | Description | Default |
|---|---|---|---|
| planId | Yes | Confirmed immutable workflow plan ID. If this call times out or disconnects, do not prepare a replacement plan: query get_workflow_plan, or retry this exact plan with the same idempotency key. An INDETERMINATE item means Amazon may have accepted the write and must be reconciled before any retry. | |
| idempotencyKey | Yes | Client-generated key unique to this plan. Generate a new key for every newly prepared plan; include the planId or another random value. Reuse the exact key only when retrying apply for this same plan; never reuse it for a newly prepared plan. | |
| applyContinuation | No | For atomic plans belonging to an AD_STRUCTURE_CREATE draft. Pass the applyContinuation object returned by continue_workflow_draft or the previous apply result unchanged with its current plan. After the approved write finishes, the server prepares the next-stage preview without confirming or executing it. If omitted, continuation may still be recovered from the active linked plan. Review Sandbox skips automatic continuation. | |
| confirmationReceipt | Yes | One-time receipt returned by confirm_workflow_plan for this exact plan. A receipt for the current plan does not confirm subsequent plans. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| planId | No | |
| status | No | |
| storeId | No | |
| summary | No | |
| planHash | No | |
| policyId | No | |
| warnings | No | |
| createdAt | No | |
| expiresAt | No | |
| simulated | No | |
| parameters | No | |
| confirmedAt | No | |
| nextActions | No | |
| planVersion | No | |
| continuation | No | |
| workflowType | No | |
| executionMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and openWorldHint=true, and the description adds real operational context beyond them: the one-time nature of the receipt, idempotency expectations, that a linked draft may silently prepare the next preview without confirming or executing it, and that Review Sandbox simulates writes and skips continuation. These are exactly the side effects an agent must know before invoking a destructive write.
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 gating condition and the effect, then the preconditions, then the continuation and sandbox caveats. Five sentences with no filler, though the final two caveats are dense enough that they read as schema-level detail rather than selection guidance.
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 destructive, open-world write tool with a nested continuation object, the description covers the prerequisite chain, the automatic continuation side effect, and the sandbox variant, while the output schema handles return values and the parameter descriptions handle timeout/indeterminate recovery. An agent has enough 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 coverage is 100% and each parameter already carries detailed guidance (idempotency reuse rules, continuation recovery, receipt scoping). The description only restates that a receipt and idempotency key are required, adding no syntax or semantics 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 (executes), a specific resource (an AD_CAMPAIGN_CREATE plan) and the concrete outcome (creates Sponsored Products campaigns). The 'only a confirmed ... plan' scoping plus the sibling set (apply_campaign_changes, prepare_campaign_creation) makes the boundary unambiguous 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 gates usage on a confirmed plan plus a one-time confirmation receipt and idempotency key, which tells the agent it must call confirm_workflow_plan first. It also carves out the Review Sandbox case. It does not explicitly name the alternative to use for a change vs. a creation, so it falls short of a full when/when-not matrix.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_keyword_rank_competitor_replacementApply keyword rank competitor replacementADestructiveInspect
Executes only a confirmed plan matching this tool in the authorized tool4seller account; rejects other operation groups. Replaces the full associated competitor set of one existing owned-product tracker. An empty set clears associations. Does not create independent competitor tracking or change keyword status. Requires the plan's one-time confirmation receipt and idempotency key; rechecks applicable eligibility and quota before applying. Revalidates applicable competitor Catalog relationships. Review Sandbox simulates execution.
| Name | Required | Description | Default |
|---|---|---|---|
| planId | Yes | Confirmed immutable keyword-rank tracking plan ID. On timeout, query get_workflow_plan or retry this exact plan with the same idempotency key. | |
| idempotencyKey | Yes | Client-generated key unique to this plan. Generate a new key for every newly prepared plan; include the planId or another random value. Reuse the exact key only when retrying apply for this same plan; never reuse it for a newly prepared plan. | |
| confirmationReceipt | Yes | One-time receipt returned by confirm_workflow_plan for this exact plan. A receipt for the current plan does not confirm subsequent plans. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| planId | No | |
| status | No | |
| storeId | No | |
| summary | No | |
| planHash | No | |
| policyId | No | |
| warnings | No | |
| createdAt | No | |
| expiresAt | No | |
| simulated | No | |
| parameters | No | |
| confirmedAt | No | |
| nextActions | No | |
| planVersion | No | |
| continuation | No | |
| workflowType | No | |
| executionMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructive/openWorld annotations, it discloses that an empty set clears all associations, that eligibility and quota are rechecked before applying, that Catalog relationships are revalidated, and that the receipt is one-time and single-plan. These are substantive behavioral facts an agent would otherwise have to guess.
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 is front-loaded with the core action and scope, then the exclusions, then the preconditions. Sentences are dense but each carries distinct information; only the Sandbox sentence is tangential 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, full parameter coverage, and annotations covering safety, the description adds the mutation consequences, eligibility rechecks, and retry/uncertainty handling an agent needs. Nothing essential 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%, and each parameter already documents its role, retry semantics, and reuse rules in detail. The description only restates that the confirmation receipt and idempotency key are required, adding 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?
The description states a precise verb and resource: 'Replaces the full associated competitor set of one existing owned-product tracker', including the empty-set case. It distinguishes itself from the sibling prepare_keyword_rank_competitor_replacement and from apply_keyword_rank_tracking_changes by explicitly ruling out creating competitor tracking or changing keyword status.
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 preconditions — only a confirmed plan matching this tool, with a one-time confirmation receipt and idempotency key, and it 'rejects other operation groups'. Exclusions ('does not create independent competitor tracking or change keyword status') further scope usage. It stops short of naming the exact prepare/confirm sibling sequence, so it is not a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_keyword_rank_tracking_changesApply keyword rank tracking changesADestructiveInspect
Executes only a confirmed plan matching this tool in the authorized tool4seller account; rejects other operation groups. Updates existing keyword tracking status to ACTIVE (resume) or ARCHIVED (remove while retaining ranking history). Does not create tracking or change competitor associations. Requires the plan's one-time confirmation receipt and idempotency key; rechecks applicable eligibility and quota before applying. Does not access Amazon Catalog. Review Sandbox simulates execution.
| Name | Required | Description | Default |
|---|---|---|---|
| planId | Yes | Confirmed immutable keyword-rank tracking plan ID. On timeout, query get_workflow_plan or retry this exact plan with the same idempotency key. | |
| idempotencyKey | Yes | Client-generated key unique to this plan. Generate a new key for every newly prepared plan; include the planId or another random value. Reuse the exact key only when retrying apply for this same plan; never reuse it for a newly prepared plan. | |
| confirmationReceipt | Yes | One-time receipt returned by confirm_workflow_plan for this exact plan. A receipt for the current plan does not confirm subsequent plans. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| planId | No | |
| status | No | |
| storeId | No | |
| summary | No | |
| planHash | No | |
| policyId | No | |
| warnings | No | |
| createdAt | No | |
| expiresAt | No | |
| simulated | No | |
| parameters | No | |
| confirmedAt | No | |
| nextActions | No | |
| planVersion | No | |
| continuation | No | |
| workflowType | No | |
| executionMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real value beyond the destructiveHint annotation: it specifies what archiving does to data ('remove while retaining ranking history'), discloses idempotency-key and one-time-receipt requirements, and notes eligibility/quota rechecks at apply time. The only gap is not stating explicitly that the ARCHIVED transition is the irreversible/removal path in the caller's own terms.
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 action and its scope, then constraints, then exclusions. Dense but disciplined; a couple of the negative clauses ('Does not access Amazon Catalog') could be trimmed, but nothing is 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, full annotation coverage, and 100% schema coverage, the description supplies everything else an agent needs: confirmation/idempotency preconditions, rejection behavior, eligibility/quota rechecks, and a sandbox simulation path.
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 each parameter already documents its semantics in depth, so the description's mention of the receipt and idempotency key largely restates the schema. Baseline 3 is appropriate; no additional parameter meaning is introduced.
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 (executes a confirmed plan) plus the exact resource (keyword rank tracking status) and the two resulting states (ACTIVE resume, ARCHIVED with history retained). It proactively differentiates from siblings by declaring 'Does not create tracking or change competitor associations', which rules out apply_keyword_rank_tracking_creation and apply_keyword_rank_competitor_replacement.
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 gates usage on a confirmed plan, and explicitly excludes other operation groups and creation/competitor operations. It also mentions the Sandbox simulation path for review. It stops short of naming the sibling tools (prepare_*/confirm_workflow_plan) as the explicit alternative workflow, leaving that routing to be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_keyword_rank_tracking_creationApply keyword rank tracking creationAInspect
Executes only a confirmed plan matching this tool in the authorized tool4seller account; rejects other operation groups. Creates keyword tracking for owned products or independent competitors. Existing active tracking is unchanged; paused tracking must use the status changes tool. Requires the plan's one-time confirmation receipt and idempotency key; rechecks applicable eligibility and quota before applying. Revalidates applicable competitor Catalog relationships. Review Sandbox simulates execution.
| Name | Required | Description | Default |
|---|---|---|---|
| planId | Yes | Confirmed immutable keyword-rank tracking plan ID. On timeout, query get_workflow_plan or retry this exact plan with the same idempotency key. | |
| idempotencyKey | Yes | Client-generated key unique to this plan. Generate a new key for every newly prepared plan; include the planId or another random value. Reuse the exact key only when retrying apply for this same plan; never reuse it for a newly prepared plan. | |
| confirmationReceipt | Yes | One-time receipt returned by confirm_workflow_plan for this exact plan. A receipt for the current plan does not confirm subsequent plans. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| planId | No | |
| status | No | |
| storeId | No | |
| summary | No | |
| planHash | No | |
| policyId | No | |
| warnings | No | |
| createdAt | No | |
| expiresAt | No | |
| simulated | No | |
| parameters | No | |
| confirmedAt | No | |
| nextActions | No | |
| planVersion | No | |
| continuation | No | |
| workflowType | No | |
| executionMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real behavior beyond the annotations: rejects mismatched operation groups, rechecks eligibility and quota at apply time, and revalidates competitor Catalog relationships before applying. Does not spell out what happens to partially-failed applications or the shape of a rejection/quota error, 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?
Front-loads the operation-group gate and the core action, then layers constraints in short sentences. It is dense with domain jargon and the retry guidance is duplicated between the description and the planId/idempotencyKey schema text, but no sentence is 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 safety and open-world behavior, so the description needn't explain return values. It still supplies the full lifecycle context an agent needs: confirmation prerequisite, idempotency retry rule, eligibility/quota recheck, and sandbox simulation.
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 ties the parameters to workflow semantics: the plan must already be confirmed, the receipt is one-time and plan-bound, and retries must reuse the same idempotency key. This reinforces intended sequencing rather than restating types.
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 ('Creates keyword tracking for owned products or independent competitors') and scopes it to a confirmed plan matching this tool, explicitly rejecting other operation groups. This clearly separates it from prepare_keyword_rank_tracking_creation (prepares) and apply_keyword_rank_tracking_changes (modifies existing).
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: existing active tracking is unchanged and paused tracking must use the status changes tool. Also names prerequisites (one-time confirmation receipt plus idempotency key) and the sandbox simulation path for review.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_product_ad_changesApply product ad changesADestructiveInspect
Executes only a confirmed AD_AD_CHANGE plan on the authorized Amazon Ads account. Changes advertising ad states or supported Sponsored Brands ad names. Requires the plan's one-time confirmation receipt and an idempotency key. A linked structure draft may automatically prepare the next preview without confirming or executing it. Review Sandbox simulates advertising writes and skips continuation.
| Name | Required | Description | Default |
|---|---|---|---|
| planId | Yes | Confirmed immutable workflow plan ID. If this call times out or disconnects, do not prepare a replacement plan: query get_workflow_plan, or retry this exact plan with the same idempotency key. An INDETERMINATE item means Amazon may have accepted the write and must be reconciled before any retry. | |
| idempotencyKey | Yes | Client-generated key unique to this plan. Generate a new key for every newly prepared plan; include the planId or another random value. Reuse the exact key only when retrying apply for this same plan; never reuse it for a newly prepared plan. | |
| applyContinuation | No | For atomic plans belonging to an AD_STRUCTURE_CREATE draft. Pass the applyContinuation object returned by continue_workflow_draft or the previous apply result unchanged with its current plan. After the approved write finishes, the server prepares the next-stage preview without confirming or executing it. If omitted, continuation may still be recovered from the active linked plan. Review Sandbox skips automatic continuation. | |
| confirmationReceipt | Yes | One-time receipt returned by confirm_workflow_plan for this exact plan. A receipt for the current plan does not confirm subsequent plans. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| planId | No | |
| status | No | |
| storeId | No | |
| summary | No | |
| planHash | No | |
| policyId | No | |
| warnings | No | |
| createdAt | No | |
| expiresAt | No | |
| simulated | No | |
| parameters | No | |
| confirmedAt | No | |
| nextActions | No | |
| planVersion | No | |
| continuation | No | |
| workflowType | No | |
| executionMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive=true and openWorld=true, so the safety profile is covered; the description adds genuinely new traits beyond them: one-time confirmation receipts, idempotency semantics, and the fact that a linked draft may silently prepare (but not execute) the next preview, plus that Review Sandbox simulates writes. It never explains what a rejected/INDETERMINATE outcome looks like at the description level, but that is pushed into the parameter docs.
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 tool-level description is four short sentences that front-load the core action and the confirmation dependency, with the sandbox caveat last. The only weak spot is 'Review Sandbox simulates advertising writes and skips continuation,' which is terse to the point of being cryptic without prior context.
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 destructive, idempotent write tool with an output schema and full annotation coverage, the description supplies the confirmation gate, retry/idempotency model, continuation side effect, and sandbox behavior — enough to call it correctly. Residual gaps (retry-on-timeout and INDETERMINATE reconciliation) are handled in the parameter schema rather than 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% and the nested applyContinuation object is thoroughly documented in the schema, so the schema already carries parameter meaning. The description only restates that a receipt and idempotency key are required, adding no syntax or format detail beyond the structured fields. 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 first sentence names a concrete verb (Executes) and resource (a confirmed AD_AD_CHANGE plan on the Amazon Ads account), and the second narrows scope to ad states and supported Sponsored Brands ad names. That distinguishes it from apply_product_ad_creation and the other apply_* siblings in the fleet, though it never names an alternative 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?
'Executes only a confirmed ... plan' plus the receipt and idempotency-key requirements implicitly set the precondition (confirm_workflow_plan must have run first) and the continuation/sandbox exceptions carve out when behavior differs. It gives clear context but stops short of naming the prepare/confirm siblings or stating explicit when-not conditions at the description level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_product_ad_creationApply product ad creationADestructiveInspect
Executes only a confirmed AD_AD_CREATE plan on the authorized Amazon Ads account. Creates Sponsored Products product ads or Sponsored Display product ads. Requires the plan's one-time confirmation receipt and an idempotency key. A linked structure draft may automatically prepare the next preview without confirming or executing it. Review Sandbox simulates advertising writes and skips continuation.
| Name | Required | Description | Default |
|---|---|---|---|
| planId | Yes | Confirmed immutable workflow plan ID. If this call times out or disconnects, do not prepare a replacement plan: query get_workflow_plan, or retry this exact plan with the same idempotency key. An INDETERMINATE item means Amazon may have accepted the write and must be reconciled before any retry. | |
| idempotencyKey | Yes | Client-generated key unique to this plan. Generate a new key for every newly prepared plan; include the planId or another random value. Reuse the exact key only when retrying apply for this same plan; never reuse it for a newly prepared plan. | |
| applyContinuation | No | For atomic plans belonging to an AD_STRUCTURE_CREATE draft. Pass the applyContinuation object returned by continue_workflow_draft or the previous apply result unchanged with its current plan. After the approved write finishes, the server prepares the next-stage preview without confirming or executing it. If omitted, continuation may still be recovered from the active linked plan. Review Sandbox skips automatic continuation. | |
| confirmationReceipt | Yes | One-time receipt returned by confirm_workflow_plan for this exact plan. A receipt for the current plan does not confirm subsequent plans. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| planId | No | |
| status | No | |
| storeId | No | |
| summary | No | |
| planHash | No | |
| policyId | No | |
| warnings | No | |
| createdAt | No | |
| expiresAt | No | |
| simulated | No | |
| parameters | No | |
| confirmedAt | No | |
| nextActions | No | |
| planVersion | No | |
| continuation | No | |
| workflowType | No | |
| executionMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare a destructive open-world write, and the description adds real context beyond that: the confirmation-receipt requirement, idempotency-key requirement, automatic draft continuation that stops short of executing, and that Review Sandbox simulates writes and skips continuation. It does not spell out rollback/irreversibility of a completed ad write, which is the main remaining gap for a destructiveHint=true 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?
Four front-loaded sentences that each carry content: purpose, scope, continuation caveat, sandbox caveat. Some of it duplicates the applyContinuation schema description, but nothing is padded 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 and full parameter documentation, the description fills the remaining gaps an agent needs: the confirm-then-apply gate, idempotent retry framing, the automatic continuation behavior, and the sandbox exception. Nothing material about invoking this destructive write 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 planId, idempotencyKey, confirmationReceipt, and the applyContinuation internals in detail. The description adds only the high-level statement that a receipt and idempotency key are required, which is a restatement rather than new semantic detail. 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 ('Executes only a confirmed AD_AD_CREATE plan') and the resource created ('Sponsored Products product ads or Sponsored Display product ads'). The 'only a confirmed ... plan' qualifier plus the creation framing distinguishes it from apply_product_ad_changes and the prepare_* siblings 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 gates use on a confirmed plan with a one-time confirmation receipt and an idempotency key, which functions as a when-to-use prerequisite. It also describes the follow-on scenario ('A linked structure draft may automatically prepare the next preview without confirming or executing it') and how Review Sandbox differs, so the agent knows both the entry condition and the post-call behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_targeting_changesApply targeting changesADestructiveInspect
Executes only a confirmed AD_TARGETING_CHANGE plan on the authorized Amazon Ads account. Changes positive keyword or ASIN targeting bids or states, or re-enables/archives negative keyword or ASIN targeting. Negative targeting has no bid actions; archiving is irreversible. Requires the plan's one-time confirmation receipt and an idempotency key. A linked structure draft may automatically prepare the next preview without confirming or executing it. Review Sandbox simulates advertising writes and skips continuation.
| Name | Required | Description | Default |
|---|---|---|---|
| planId | Yes | Confirmed immutable workflow plan ID. If this call times out or disconnects, do not prepare a replacement plan: query get_workflow_plan, or retry this exact plan with the same idempotency key. An INDETERMINATE item means Amazon may have accepted the write and must be reconciled before any retry. | |
| idempotencyKey | Yes | Client-generated key unique to this plan. Generate a new key for every newly prepared plan; include the planId or another random value. Reuse the exact key only when retrying apply for this same plan; never reuse it for a newly prepared plan. | |
| applyContinuation | No | For atomic plans belonging to an AD_STRUCTURE_CREATE draft. Pass the applyContinuation object returned by continue_workflow_draft or the previous apply result unchanged with its current plan. After the approved write finishes, the server prepares the next-stage preview without confirming or executing it. If omitted, continuation may still be recovered from the active linked plan. Review Sandbox skips automatic continuation. | |
| confirmationReceipt | Yes | One-time receipt returned by confirm_workflow_plan for this exact plan. A receipt for the current plan does not confirm subsequent plans. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| planId | No | |
| status | No | |
| storeId | No | |
| summary | No | |
| planHash | No | |
| policyId | No | |
| warnings | No | |
| createdAt | No | |
| expiresAt | No | |
| simulated | No | |
| parameters | No | |
| confirmedAt | No | |
| nextActions | No | |
| planVersion | No | |
| continuation | No | |
| workflowType | No | |
| executionMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive=true and openWorld=true, and the description adds substantial context beyond that: 'archiving is irreversible,' negative targeting has no bid actions, a one-time confirmation receipt and idempotency key are required, and sandbox mode skips continuation. These are exactly the operational traits an agent needs before invoking a destructive write.
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 preconditions and irreversibility warning are front-loaded, but the run-on sentence about continuation and the schema-level prose about nextActions/presenting previews add density that could be tightened. Still, every clause carries operational 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?
With an output schema present, return values needn't be explained; the description still covers the critical edge cases (irreversible archive, idempotency/retry posture, continuation behavior, sandbox simulation), leaving nothing an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents planId, idempotencyKey, confirmationReceipt, and the applyContinuation nested object in detail. The description only restates that a receipt and idempotency key are required, adding no syntax or semantics 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 ('executes') on a specific resource ('confirmed AD_TARGETING_CHANGE plan') and enumerates the exact operations covered (positive bid/state changes, re-enable/archive negative targeting). This clearly differentiates it from siblings like prepare_targeting_changes and apply_targeting_creation.
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 establishes the precondition (only a confirmed plan) and explains downstream behavior (auto-prepared next-stage preview, sandbox skipping continuation), which tells the agent when this tool applies. It doesn't explicitly name alternatives for the non-confirmed case, but the gating condition is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_targeting_creationApply targeting creationADestructiveInspect
Executes only a confirmed AD_TARGETING_CREATE plan on the authorized Amazon Ads account. Creates positive keyword, positive ASIN, negative keyword, or negative ASIN targeting entities. A batch may contain multiple targeting groups. Requires the plan's one-time confirmation receipt and an idempotency key. A linked structure draft may automatically prepare the next preview without confirming or executing it. Review Sandbox simulates advertising writes and skips continuation.
| Name | Required | Description | Default |
|---|---|---|---|
| planId | Yes | Confirmed immutable workflow plan ID. If this call times out or disconnects, do not prepare a replacement plan: query get_workflow_plan, or retry this exact plan with the same idempotency key. An INDETERMINATE item means Amazon may have accepted the write and must be reconciled before any retry. | |
| idempotencyKey | Yes | Client-generated key unique to this plan. Generate a new key for every newly prepared plan; include the planId or another random value. Reuse the exact key only when retrying apply for this same plan; never reuse it for a newly prepared plan. | |
| applyContinuation | No | For atomic plans belonging to an AD_STRUCTURE_CREATE draft. Pass the applyContinuation object returned by continue_workflow_draft or the previous apply result unchanged with its current plan. After the approved write finishes, the server prepares the next-stage preview without confirming or executing it. If omitted, continuation may still be recovered from the active linked plan. Review Sandbox skips automatic continuation. | |
| confirmationReceipt | Yes | One-time receipt returned by confirm_workflow_plan for this exact plan. A receipt for the current plan does not confirm subsequent plans. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| planId | No | |
| status | No | |
| storeId | No | |
| summary | No | |
| planHash | No | |
| policyId | No | |
| warnings | No | |
| createdAt | No | |
| expiresAt | No | |
| simulated | No | |
| parameters | No | |
| confirmedAt | No | |
| nextActions | No | |
| planVersion | No | |
| continuation | No | |
| workflowType | No | |
| executionMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, destructive, and open-world. The description adds real value beyond them by disclosing batch semantics, the automatic next-stage preview preparation, and sandbox write simulation that skips continuation. It does not address partial-failure or reconciliation behavior in the description proper (that lives only in the planId schema text).
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 operation and only six sentences, each carrying a distinct constraint (scope, entity types, batch, receipt/key, continuation, sandbox). One or two clauses are dense but nothing is 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 and fully documented parameters, the description only needs to cover invocation preconditions and side effects, which it does: confirmation requirement, idempotency, continuation behavior, and sandbox divergence. The remaining gap is guidance on reconciling INDETERMINATE outcomes, which is delegated to the schema text.
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 semantics for planId, idempotencyKey, confirmationReceipt, and applyContinuation. The description only mentions that a receipt and idempotency key are required, adding no syntax or format detail. 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: executes a confirmed AD_TARGETING_CREATE plan and enumerates the entity types it creates (positive/negative keyword and ASIN targeting). The plan-type qualifier distinguishes it cleanly from apply_targeting_changes and from the prepare_* 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?
Explicitly restricts use to plans that are already confirmed, and names the required receipt and idempotency key. It also flags the sandbox variant and the continuation side-effect. It does not explicitly route the agent to confirm_workflow_plan or prepare_targeting_creation as the preceding steps, 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.
cancel_workflow_planCancel workflow planADestructiveInspect
Cancels a prepared or confirmed plan before business changes are applied.
| Name | Required | Description | Default |
|---|---|---|---|
| planId | Yes | Prepared or confirmed workflow plan ID. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| planId | No | |
| status | No | |
| storeId | No | |
| summary | No | |
| planHash | No | |
| policyId | No | |
| warnings | No | |
| createdAt | No | |
| expiresAt | No | |
| simulated | No | |
| parameters | No | |
| confirmedAt | No | |
| nextActions | No | |
| planVersion | No | |
| continuation | No | |
| workflowType | No | |
| executionMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds useful stage context (only prepared or confirmed plans, and no business changes have been applied yet), but is silent on whether cancellation deletes the plan, whether it is idempotent, and what happens if the plan was already applied.
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 verb and the state constraint appear immediately. Nothing is repeated or 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?
An output schema and annotations exist, so return values and safety profile are covered. However, for a destructive single-action tool, the description omits post-cancellation state and behavior for plans past the confirm stage, which an agent would need before invoking 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?
Only one parameter with 100% schema description coverage, so the baseline is 3. The description merely echoes the schema's 'prepared or confirmed workflow plan ID' qualifier and adds no format, lookup, or sourcing guidance (e.g., where to obtain the planId).
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 (cancels) and resource (prepared or confirmed workflow plan) plus the stage constraint 'before business changes are applied', which implicitly separates it from the apply_* and confirm_workflow_plan siblings. It does not name those siblings explicitly, so differentiation is inferential rather than stated.
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 'before business changes are applied' hints at the appropriate moment to use it (prior to apply/confirm), but there is no explicit when-to-use statement, no exclusion for plans already applied, and no pointer to confirm_workflow_plan or apply_* as the alternative path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confirm_workflow_planConfirm workflow planADestructiveInspect
Confirms the exact immutable plan the customer reviewed. Call only after explicit customer approval of old/new values.
| Name | Required | Description | Default |
|---|---|---|---|
| planId | Yes | Prepared plan ID reviewed by the customer. | |
| planHash | Yes | Exact hash returned by prepare/get. | |
| planVersion | Yes | ||
| expectedItemCount | Yes | Exact number of reviewed plan items. |
Output Schema
| Name | Required | Description |
|---|---|---|
| planId | No | |
| status | No | |
| planHash | No | |
| confirmedAt | No | |
| planVersion | No | |
| confirmationReceipt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds a human-approval gate and the immutability property ('exact immutable plan') that annotations cannot express, which is meaningful context for a destructiveHint=true tool. It omits what actually happens on confirm — whether changes execute immediately or a separate apply_* call is still required — and gives no guidance for hash/version mismatch.
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 filler, with the identity constraint front-loaded and the precondition second. 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 values needn't be explained, and the safety profile is carried by annotations. However, for a destructive commit step in a multi-tool workflow, the description leaves the critical question open: whether confirming itself applies changes or merely locks the plan for a later apply_* call. That ambiguity is material to 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 75%, so most parameters are already documented (planId, planHash, expectedItemCount); planVersion has no description. The phrase 'exact immutable plan' hints that all four params together pin plan identity, but the description adds no meaning about what a version or hash mismatch implies. Baseline 3 is warranted.
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 ('Confirms') and a specific resource ('the exact immutable plan the customer reviewed'), which places it clearly in the prepare/confirm/apply lifecycle. It does not explicitly name the sibling it is *not* (get_workflow_plan, cancel_workflow_plan, apply_*), so an agent must infer the distinction from the lifecycle vocabulary.
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?
'Call only after explicit customer approval of old/new values' is a concrete, actionable precondition that tells the agent when to invoke it. It stops short of naming alternatives (e.g. cancel_workflow_plan when approval is withheld, get_workflow_plan to re-review), so the routing is 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.
continue_workflow_draftContinue workflow draftADestructiveInspect
Resumes a READY AD_STRUCTURE_CREATE draft from persisted server state. This call may query Amazon Ads for keyword or ASIN candidates and suggested bids, including candidates not yet created in the account, or reuse saved recommendations. It persists workflow progress and decisions. It reconciles the last atomic plan, retains successful Amazon IDs, and prepares exactly the next Campaign, Ad Group, Product Ad, automatic-target bid, or Targeting plan. All Campaigns are prepared together, then all Ad Groups, then all Product Ads across every ad group in one multi-group plan; the Product Ad plan is completed before any targeting recommendation or bid decision can pause another structure. It never confirms or applies a write plan. For AUTO ad groups it persists the selected bid mode with the created adGroupId, synchronizes the four Amazon-created targets, obtains suggested bids when selected, and returns a separately confirmable AD_TARGETING_CHANGE plan. Partial writes retry only failed items. A 429 suggestion read includes per-target evidence; ambiguous create results require reconciliation and are never retried. For MANUAL ad groups without supplied positive targeting, it waits until Product Ads exist, persists Amazon candidates only for the recorded KEYWORD or ASIN TARGET family, accepts customer selection by candidateRef, obtains suggested or custom bids, accepts explicit customCandidates when recommendations are absent or rejected, and prepares separately confirmable Targeting plans. It accepts at most 100 selected candidates per ad group and reuses the exact suggested bids already shown to the customer. Once every manual decision is ready, it combines all MANUAL positive targeting groups into one batch plan, then combines all configured negative targeting across AUTO and MANUAL groups into one separate batch plan. AUTO-only drafts skip MANUAL processing and MANUAL-only drafts skip AUTO processing. When a plan is returned, pass applyContinuation unchanged to the matching operation-specific execution tool so a successful write automatically returns the next stage preview without asking the customer to advance. After an AUTO bid write, immediately present the returned MANUAL targeting preview or selection action in the same response when manual groups remain.
| Name | Required | Description | Default |
|---|---|---|---|
| draftId | Yes | READY AD_STRUCTURE_CREATE draft ID. | |
| expectedDraftVersion | Yes | Latest draftVersion used for optimistic locking and safe recovery. | |
| manualTargetingDecisions | No | Optional decisions keyed by a deferred MANUAL ad-group clientRef. First submit up to 100 candidateRef values returned by MANUAL_TARGETING_SELECTION_REQUIRED, or add customer-approved customCandidates when recommendations are absent or rejected. All candidates for one ad group must be KEYWORD or TARGET, never both; use separate manual Campaign/Ad Group structures when both targeting families are required. Then choose AMAZON_SUGGESTED, or CUSTOM with one bid for every selected candidateRef. Selection and bid choice may be submitted together when the customer already requested suggested bids. | |
| automaticTargetBidDecisions | No | Optional decisions keyed by AUTO ad-group clientRef, used after a DECIDE_LATER or incomplete recommendation result. |
Output Schema
| Name | Required | Description |
|---|---|---|
| plan | No | |
| draft | No | |
| nextAction | No | |
| applyContinuation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses substantial behavioral details: it queries Amazon Ads, persists workflow progress and decisions, reconciles the last atomic plan, retains successful IDs, and prepares only the next atomic plan. It also describes partial-write retry behavior, 429 suggestion-read evidence, ambiguous create-result reconciliation, and the rule that ambiguous creates are never retried. The destructive/open-world annotations are not contradicted; this tool mutates draft/workflow state while explicitly not applying Amazon Ads writes.
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 is front-loaded in the first sentence, which is good. However, the description is a very long, dense paragraph covering many edge cases, sequencing rules, and retry semantics without internal structure. Much of the content is substantive for this complex workflow, but the overall presentation is over-verbose rather than concise.
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 tool's orchestration complexity and the presence of an output schema, the description is comprehensive. It explains the workflow stages, AUTO vs MANUAL branching, retry/reconciliation behavior, candidate limits, and how to continue into execution tools. An agent has enough context to invoke and route 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 schema already documents all four parameters and their nested structures. The description still adds useful workflow-level meaning: candidateRef-based selection, customCandidates as a fallback, the 100-candidate cap, one targeting family per ad group, and bid-mode behavior for AUTO and MANUAL decisions. It stops short of fully explaining every parameter interaction because the schema itself is already very detailed.
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: it resumes a READY AD_STRUCTURE_CREATE draft from persisted server state. It also explicitly distinguishes this orchestration/preparation tool from execution tools by saying it never confirms or applies a write plan. The scope and sequencing are detailed enough that an agent can identify this as the draft-continuation tool rather than a get, prepare, or apply 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?
The precondition is explicit: the draft must be READY and AD_STRUCTURE_CREATE. The description also gives strong routing guidance for the next step by telling the agent to pass applyContinuation unchanged to the matching execution tool. It does not explicitly name when to use get_workflow_draft or prepare_workflow_draft instead, so it falls short of full when/when-not/alternatives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diagnose_ad_efficiencyDiagnose ad efficiencyARead-onlyInspect
Diagnoses advertising efficiency with read-only advertising metrics for one store and business date range. MCP reporting and workflow metric date ranges use yyyy-MM-dd and include both startDate and endDate, with at most 95 calendar days per range. For longer read-only reports, split into non-overlapping windows: endDate = startDate plus 94 days, capped at the requested end date; the next startDate is the previous endDate plus 1 day. Apply the same limit independently to comparison ranges. Do not average ratios such as ACOS or ROAS across windows; recompute them from summed base metrics. Do not automatically split advertising write plans or metric-based selectors; obtain a supported analysis window from the user. Keyword ranking trends have separate limits: DAILY supports up to 90 inclusive days and RAW up to 31 inclusive days. For keyword ranking trends, use these interval-specific limits when splitting read-only reports. This reporting limit does not apply to campaign scheduling dates.
| Name | Required | Description | Default |
|---|---|---|---|
| focus | No | Optional focus such as sales, profit, ads, or inventory. | |
| endDate | Yes | Business end date in yyyy-MM-dd format. The inclusive range can contain at most 95 days. | |
| storeId | Yes | Store identifier, in sellerId:marketplaceId format. | |
| startDate | Yes | Business start date in yyyy-MM-dd format. The inclusive range can contain at most 95 days. | |
| compareEndDate | No | Optional comparison end date in yyyy-MM-dd format. The comparison range independently allows at most 95 inclusive days. | |
| compareStartDate | No | Optional comparison start date in yyyy-MM-dd format. The comparison range independently allows at most 95 inclusive days. |
Output Schema
| Name | Required | Description |
|---|---|---|
| scope | No | |
| metrics | No | |
| summary | No | |
| evidence | No | |
| findings | No | |
| warnings | No | |
| workflow | No | |
| nextQueries | No | |
| recommendedActions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond annotations with concrete rate limits (95-day range), splitting rules, and aggregation caveats (do not average ratios), plus exceptions for write plans and keyword ranking trends. Annotations already confirm read-only, but this description adds critical operational constraints.
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 purpose but then includes lengthy, off-topic instructions about advertising write plans and keyword ranking trends that are irrelevant to this read-only diagnosis tool. These repeated and extraneous sentences dilute the core message.
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 calling requirements well (date formats, range limits, splitting), and the output schema handles return values. However, it omits guidance on when to select this vs sibling diagnostic/query tools and contains irrelevant limits that could mislead, leaving a gap for correct tool selection.
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 schema descriptions already document each parameter, including independent 95-day limits for comparison ranges. The description adds no parameter-specific meaning beyond what the schema provides, so baseline 3.
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 'Diagnoses' and resource 'advertising efficiency' with scope 'one store and business date range'. It does not explicitly differentiate from sibling tools like query_advertising or diagnose_sales_change, so it misses the top mark.
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 extensive procedural guidance on date-range splitting and aggregation but never states when to choose this tool over query_advertising or other diagnose_* siblings. Usage is implied by 'read-only advertising metrics' but alternatives are not named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diagnose_profit_anomalyDiagnose profit anomalyARead-onlyInspect
Diagnoses profit anomalies with read-only profit, sales, and advertising signals for one store and business date range. MCP reporting and workflow metric date ranges use yyyy-MM-dd and include both startDate and endDate, with at most 95 calendar days per range. For longer read-only reports, split into non-overlapping windows: endDate = startDate plus 94 days, capped at the requested end date; the next startDate is the previous endDate plus 1 day. Apply the same limit independently to comparison ranges. Do not average ratios such as ACOS or ROAS across windows; recompute them from summed base metrics. Do not automatically split advertising write plans or metric-based selectors; obtain a supported analysis window from the user. Keyword ranking trends have separate limits: DAILY supports up to 90 inclusive days and RAW up to 31 inclusive days. For keyword ranking trends, use these interval-specific limits when splitting read-only reports. This reporting limit does not apply to campaign scheduling dates.
| Name | Required | Description | Default |
|---|---|---|---|
| focus | No | Optional focus such as sales, profit, ads, or inventory. | |
| endDate | Yes | Business end date in yyyy-MM-dd format. The inclusive range can contain at most 95 days. | |
| storeId | Yes | Store identifier, in sellerId:marketplaceId format. | |
| startDate | Yes | Business start date in yyyy-MM-dd format. The inclusive range can contain at most 95 days. | |
| compareEndDate | No | Optional comparison end date in yyyy-MM-dd format. The comparison range independently allows at most 95 inclusive days. | |
| compareStartDate | No | Optional comparison start date in yyyy-MM-dd format. The comparison range independently allows at most 95 inclusive days. |
Output Schema
| Name | Required | Description |
|---|---|---|
| scope | No | |
| metrics | No | |
| summary | No | |
| evidence | No | |
| findings | No | |
| warnings | No | |
| workflow | No | |
| nextQueries | No | |
| recommendedActions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses meaningful behavior: read-only signals, a 95-day inclusive range limit, window-splitting rules, ratio recomputation guidance, separate keyword-ranking limits, and a campaign-scheduling exception. These details help an agent avoid incorrect reporting behavior, though they are broad and somewhat generic across reporting tools.
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 front-loaded with the core purpose, but it is long and includes guidance about keyword ranking trends and campaign scheduling that is not clearly relevant to diagnosing profit anomalies. Much of the later text could be trimmed or moved to a shared reporting guide.
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 annotations and output schema, the description covers the main operational constraints an agent needs: store/date scope, read-only nature, range limits, comparison handling, and ratio recomputation. It lacks explicit sibling-tool routing, but is otherwise sufficiently complete for the tool's complexity.
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 six parameters, including date formats and range limits. The description adds context about splitting long ranges and comparison ranges, but does not substantially extend parameter 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?
The description clearly states a specific verb and resource: it diagnoses profit anomalies using read-only profit, sales, and advertising signals for one store and date range. It does not explicitly contrast with sibling diagnostic tools, which keeps it below 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?
The description gives detailed operational constraints for date ranges and splitting windows, but it does not say when to use this tool versus alternatives such as diagnose_sales_change, diagnose_ad_efficiency, or query_profit. Usage is therefore implied rather than fully routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diagnose_sales_changeDiagnose sales changeARead-onlyInspect
Diagnoses sales changes with read-only sales, traffic, advertising, and inventory signals for one store and business date range. MCP reporting and workflow metric date ranges use yyyy-MM-dd and include both startDate and endDate, with at most 95 calendar days per range. For longer read-only reports, split into non-overlapping windows: endDate = startDate plus 94 days, capped at the requested end date; the next startDate is the previous endDate plus 1 day. Apply the same limit independently to comparison ranges. Do not average ratios such as ACOS or ROAS across windows; recompute them from summed base metrics. Do not automatically split advertising write plans or metric-based selectors; obtain a supported analysis window from the user. Keyword ranking trends have separate limits: DAILY supports up to 90 inclusive days and RAW up to 31 inclusive days. For keyword ranking trends, use these interval-specific limits when splitting read-only reports. This reporting limit does not apply to campaign scheduling dates.
| Name | Required | Description | Default |
|---|---|---|---|
| focus | No | Optional focus such as sales, profit, ads, or inventory. | |
| endDate | Yes | Business end date in yyyy-MM-dd format. The inclusive range can contain at most 95 days. | |
| storeId | Yes | Store identifier, in sellerId:marketplaceId format. | |
| startDate | Yes | Business start date in yyyy-MM-dd format. The inclusive range can contain at most 95 days. | |
| compareEndDate | No | Optional comparison end date in yyyy-MM-dd format. The comparison range independently allows at most 95 inclusive days. | |
| compareStartDate | No | Optional comparison start date in yyyy-MM-dd format. The comparison range independently allows at most 95 inclusive days. |
Output Schema
| Name | Required | Description |
|---|---|---|
| scope | No | |
| metrics | No | |
| summary | No | |
| evidence | No | |
| findings | No | |
| warnings | No | |
| workflow | No | |
| nextQueries | No | |
| recommendedActions | 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 reinforces read-only while adding genuinely useful context: the 95-day cap, the keyword-ranking interval limits (90 DAILY / 31 RAW), the ratio-recomputation rule, and the exclusion for campaign scheduling dates. These are non-obvious behavioral constraints 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 is front-loaded correctly, but the body is a long block of date-splitting boilerplate that reads like shared policy text rather than tool-specific guidance, plus a keyword-ranking digression that this tool's schema doesn't even expose as parameters. Roughly half the text does not earn its place for calling this specific 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?
Safety and date-window behavior are well covered, and an output schema exists so return values needn't be described. However, for a multi-signal diagnostic tool with an optional 'focus' param, the description never explains what kind of diagnosis is produced (drivers, attribution, anomaly breakdown) or how it differs from the two sibling diagnose_* 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 schema already documents storeId format and the per-date-range limits. The description adds the independent-limit rule for comparison ranges and the windowing formula (endDate = startDate + 94 days), which is somewhat more than the schema, but it says nothing about what the optional 'focus' parameter actually changes in the diagnosis.
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 gives a specific verb (diagnoses), resource (sales changes), and names the signal sources (sales, traffic, advertising, inventory) and scope (one store, business date range). It implicitly distinguishes itself from the query_* siblings by being a diagnosis rather than a raw data pull, though it never names a sibling to contrast with.
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 real constraint guidance — split windows for longer ranges, don't average ratios, don't split advertising write plans, get a supported window from the user — but these are mostly operational rules for the date parameters rather than when-to-use-this-tool guidance. It never says when to pick this over diagnose_ad_efficiency, diagnose_profit_anomaly, or the query_* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discover_capabilitiesDiscover capabilitiesARead-onlyInspect
Lists supported business workflows and their already-exposed MCP tools for diagnosis, advertising draft collection, and individual advertising operations. Returns navigation and input guidance only; does not prepare plans, execute queries, or apply advertising changes. Returns MCP reporting date limits and range-splitting guidance.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Capability search text, such as sales change, profit anomaly, advertising efficiency, or inventory risk. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | No | |
| query | No | |
| tools | No | |
| prompts | No | |
| resources | No | |
| workflows | No | |
| dateRangePolicy | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnlyHint=true, destructiveHint=false, openWorldHint=false), and the description adds genuinely new behavioral context: navigation/guidance-only output, no execution side effects, and that it surfaces reporting date limits and range-splitting guidance. This affects how an agent should consume the result, going 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?
Three tight sentences, front-loaded with purpose then boundaries then return content, with no filler. The opening sentence is slightly dense ('for diagnosis, advertising draft collection, and individual advertising operations'), 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?
For a read-only, one-optional-param discovery tool with an output schema and full annotation coverage, this is close to complete: purpose, boundaries, and key return content are all stated. The only minor gap is no guidance on whether the query filter is recommended for first-time discovery versus omitted for a full listing.
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 the single 'query' parameter is fully documented in the schema with example search texts. The description adds no syntax, format, or required/optional detail beyond that, so this is the baseline case where the schema carries the 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?
States a specific verb+resource ('Lists supported business workflows and their already-exposed MCP tools') and scopes it to diagnosis, advertising draft collection, and individual ad operations. It sharply distinguishes itself from the many prepare_*/apply_*/query_* siblings by declaring it returns navigation and input guidance only.
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 negative framing ('does not prepare plans, execute queries, or apply advertising changes') tells the agent when not to use it and routes mutation work to the prepare/apply siblings. It does not explicitly say 'call this first' or name a specific alternative to use instead, so usage is clear but not fully prescriptive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_current_userGet current userARead-onlyInspect
Returns the current user's default currency, time zone, display language, and creation time. Authenticated basic access; no business OAuth scope is required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds meaningful behavioral context beyond annotations: it identifies the exact profile fields returned and states that only authenticated basic access is required, with no business OAuth scope. This helps the agent understand auth requirements that annotations do not cover.
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 return value and followed by the authentication context. Every sentence adds useful information, with no repetition of 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?
The output schema handles the return shape, annotations cover the safety profile, and the description supplies the remaining critical context: the returned fields and the authentication requirement. For a zero-parameter read-only profile tool, nothing essential 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?
There are zero parameters, and schema coverage is 100%, so no parameter semantics need explanation. The description does not invent or misdescribe parameters. Baseline for a zero-parameter tool is 4.
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 the current user's profile details) and enumerates the exact fields returned. It is clear and concrete, though it does not explicitly differentiate itself from siblings—largely because no sibling is similarly named or scoped.
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 the tool's name and the description's field list, but there is no explicit guidance on when to call it versus alternatives. It does not state prerequisites beyond authentication or exclusion conditions, leaving the agent to infer that this is the canonical way to retrieve the current user's profile.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workflow_draftGet workflow draftBRead-onlyInspect
Returns the current owned workflow draft without modifying it, including its effective expiry state, optimistic-lock version, missing inputs, validation errors, recommended next actions, and persisted continuation state.
| Name | Required | Description | Default |
|---|---|---|---|
| draftId | Yes | Workflow draft ID. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | |
| draftId | No | |
| storeId | No | |
| summary | No | |
| warnings | No | |
| createdAt | No | |
| expiresAt | No | |
| updatedAt | No | |
| parameters | No | |
| nextActions | No | |
| continuation | No | |
| draftVersion | No | |
| workflowType | No | |
| missingInputs | No | |
| schemaVersion | No | |
| validationErrors | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds that the draft is 'owned' and lists returned state such as expiry, lock version, missing inputs, validation errors, and continuation state, but much of that overlaps with the output schema and does not disclose auth or failure 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?
The description is a single front-loaded sentence with no unnecessary preamble. It is somewhat dense due to the long list of returned fields, and the phrase 'without modifying it' is redundant with readOnlyHint, but overall it is efficient.
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 simple one-parameter read tool with annotations and an output schema, the description provides sufficient scope and return context. The main omissions are sibling differentiation and explicit usage guidance rather than missing operational details.
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?
There is only one parameter, draftId, and schema description coverage is 100%. The schema already documents it as the workflow draft ID, and the description adds no further parameter-specific semantics. Baseline 3 is appropriate when schema coverage is complete.
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: it returns the current owned workflow draft. It also names the draft scope and return content, so the operation is clear. However, it does not explicitly distinguish itself from related siblings such as get_workflow_plan, prepare_workflow_draft, or continue_workflow_draft.
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 explains what is returned but gives no explicit guidance about when to use this tool versus alternatives like continue_workflow_draft or get_workflow_plan. It also provides no exclusions or prerequisite conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workflow_planGet workflow planARead-onlyInspect
Gets a workflow plan without modifying it, returning its effective expiry state, persisted execution status, item errors, upstream diagnostics, and explicit old/new values. After a timeout or disconnected apply call, query this exact plan (or retry apply with the same idempotency key); never create a replacement plan until its outcome is terminal and any INDETERMINATE items have been reconciled.
| Name | Required | Description | Default |
|---|---|---|---|
| planId | Yes | Prepared workflow plan ID. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| planId | No | |
| status | No | |
| storeId | No | |
| summary | No | |
| planHash | No | |
| policyId | No | |
| warnings | No | |
| createdAt | No | |
| expiresAt | No | |
| simulated | No | |
| parameters | No | |
| confirmedAt | No | |
| nextActions | No | |
| planVersion | No | |
| continuation | No | |
| workflowType | No | |
| executionMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and non-destructive, but the description adds valuable behavior context: what state is returned and the reconciliation/idempotency semantics that govern recovery after ambiguous apply outcomes. It does not cover error cases such as a missing or expired plan ID, but for a read-only query tool the disclosure is rich.
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 no filler; the read-only scope and return contents come first, and the recovery guidance follows. 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?
The tool is simple (one required param, output schema exists) and the description covers what an agent needs: that it is a safe read, what it returns, and exactly when to use it versus retrying apply or creating a new plan.
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 planId parameter is already fully documented in the schema, and the description adds only the reinforcement that it must be 'this exact plan' rather than a newly created one. Baseline 3 is appropriate when the schema carries the parameter detail.
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 (Gets) and resource (a workflow plan) and explicitly declares it is non-modifying, which differentiates it from the apply/cancel/confirm siblings. It also enumerates what the returned state includes (expiry state, execution status, item errors, diagnostics, old/new values), so the agent knows exactly what it retrieves.
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 triggering scenario ('After a timeout or disconnected apply call') and names the two correct recovery paths: query this exact plan or retry apply with the same idempotency key. It also states a hard prohibition: never create a replacement plan until the outcome is terminal and INDETERMINATE items are reconciled.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inventory_risk_reviewInventory risk reviewARead-onlyInspect
Reviews inventory risk with read-only inventory and inventory alert signals for one store. MCP reporting and workflow metric date ranges use yyyy-MM-dd and include both startDate and endDate, with at most 95 calendar days per range. For longer read-only reports, split into non-overlapping windows: endDate = startDate plus 94 days, capped at the requested end date; the next startDate is the previous endDate plus 1 day. Apply the same limit independently to comparison ranges. Do not average ratios such as ACOS or ROAS across windows; recompute them from summed base metrics. Do not automatically split advertising write plans or metric-based selectors; obtain a supported analysis window from the user. Keyword ranking trends have separate limits: DAILY supports up to 90 inclusive days and RAW up to 31 inclusive days. For keyword ranking trends, use these interval-specific limits when splitting read-only reports. This reporting limit does not apply to campaign scheduling dates.
| Name | Required | Description | Default |
|---|---|---|---|
| focus | No | Optional focus such as sales, profit, ads, or inventory. | |
| endDate | Yes | Business end date in yyyy-MM-dd format. The inclusive range can contain at most 95 days. | |
| storeId | Yes | Store identifier, in sellerId:marketplaceId format. | |
| startDate | Yes | Business start date in yyyy-MM-dd format. The inclusive range can contain at most 95 days. | |
| compareEndDate | No | Optional comparison end date in yyyy-MM-dd format. The comparison range independently allows at most 95 inclusive days. | |
| compareStartDate | No | Optional comparison start date in yyyy-MM-dd format. The comparison range independently allows at most 95 inclusive days. |
Output Schema
| Name | Required | Description |
|---|---|---|
| scope | No | |
| metrics | No | |
| summary | No | |
| evidence | No | |
| findings | No | |
| warnings | No | |
| workflow | No | |
| nextQueries | No | |
| recommendedActions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered structurally. The description adds genuine behavioral constraints on top: a hard 95-calendar-day cap per range, a prescribed window-splitting algorithm, and a warning not to average ratios across windows. However, several paragraphs (keyword ranking limits, advertising write plans) do not apply to this tool and dilute the 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?
The purpose is front-loaded well, but the bulk of the text is generic boilerplate about keyword ranking trend limits and advertising write plans that is irrelevant to an inventory risk review. Every sentence is supposed to earn its place; here several paragraphs do 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?
An output schema and full annotations exist, so return values and safety need not be explained. What remains missing is how the optional 'focus' value changes the review and why an agent would choose this tool over the raw query_inventory / query_inventory_alerts siblings — a real gap given a crowded sibling namespace.
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 documented storeId/startDate/endDate/compare* semantics are already covered and the baseline is 3. The description adds real meaning beyond the schema by specifying the exact non-overlapping split procedure (endDate = startDate + 94) and that the comparison range is limited independently. The 'focus' parameter is never mentioned in the description, leaving that gap unaddressed.
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 names a specific verb and resource ('Reviews inventory risk') plus the scope ('for one store') and the signals consumed ('inventory and inventory alert signals'). This implicitly distinguishes it from the raw siblings query_inventory and query_inventory_alerts, though it never names them 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?
Usage is only implied: a 'review' that combines two signal sources suggests a synthesis tool rather than a raw query, and 'read-only' signals safety. There is no explicit statement of when to pick this over query_inventory, query_inventory_alerts, or the diagnose_* tools, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_inbound_shipment_itemsList inbound shipment itemsBRead-onlyInspect
Returns paginated FBA inbound shipment items for up to 100 shipment IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of items to return. Defaults to 100 and cannot exceed 100. | |
| offset | No | Zero-based pagination offset. | |
| sellerIds | No | Comma-separated seller IDs. Omit to include all sellers authorized for the current user. | |
| shipmentIds | Yes | Comma-separated shipment IDs, up to 100 values. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 'paginated' and the 100-shipment-ID cap, which is genuine extra context, but says nothing about behavior with invalid or unknown shipment IDs or what happens past the cap.
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?
One front-loaded sentence with no filler, stating resource and scope immediately. It is efficient but so terse that the sibling relationship and pagination contract are left entirely implicit.
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 annotations handle the safety profile. However, for a tool with a near-identical sibling, the description omits the disambiguation an agent needs to select correctly, which is the main remaining gap.
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 limit, offset, sellerIds, and shipmentIds are fully documented in the schema itself. The description only restates the shipmentIds cap, adding no meaning beyond structured fields — 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 ('Returns') plus precise resource ('FBA inbound shipment items') and a scoping constraint (up to 100 shipment IDs). The noun differs from sibling list_inbound_shipments, but the description never states that distinction explicitly, so an agent must infer 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?
No statement of when to use this versus list_inbound_shipments, no prerequisites, and no exclusions. The only guidance is the implicit constraint that it takes shipment IDs, which an agent could derive from the required parameter anyway.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_inbound_shipmentsList inbound shipmentsBRead-onlyInspect
Returns paginated FBA inbound shipments for authorized sellers.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of items to return. Defaults to 100 and cannot exceed 100. | |
| offset | No | Zero-based pagination offset. | |
| sellerIds | No | Comma-separated seller IDs. Omit to include all sellers authorized for the current user. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 results are paginated and scoped to authorized sellers, but does not add detail on rate limits, ordering, or output 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?
The description is a single front-loaded sentence with no wasted words. It is appropriately sized for a simple list 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?
For a simple read-only list tool with a full input schema, output schema, and safety annotations, the description covers the essential resource and scope. It is slightly incomplete because it does not explain its relationship to list_inbound_shipment_items.
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 limit, offset, and sellerIds are already fully documented in the schema. The description only implies pagination and seller scoping; it adds no parameter semantics 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: returns paginated FBA inbound shipments. It is clear what the tool does, but it does not explicitly distinguish itself from the sibling list_inbound_shipment_items tool.
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 only a vague scope ('for authorized sellers') and no when-to-use guidance. It does not explain when to choose this over list_inbound_shipment_items or inventory-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_storesList storesBRead-onlyInspect
Returns sellers, marketplaces, SP API status, Advertising API status, and active status for the current user.
| Name | Required | Description | Default |
|---|---|---|---|
| sellerId | No | Optional seller id filter. Omit to include all sellers authorized for the current user. | |
| adApiStatus | No | Optional advertising data access status filter. Leave empty to include all advertising data access statuses. ACTIVE means advertising data APIs are currently available for this marketplace. INACTIVE means advertising access is disabled for the seller account. UNAUTHORIZED means advertising access is enabled for the seller account, but not authorized for this marketplace. | |
| spApiStatus | No | Optional store data access status filter. Leave empty to include all store data access statuses. ACTIVE means store data APIs are currently available for this marketplace. INACTIVE means store data APIs are currently unavailable for this marketplace. | |
| activeStatus | No | Optional store selection status filter. Leave empty to include all store selection statuses. ACTIVE means the marketplace is enabled and can be selected in data requests. INACTIVE means the marketplace is disabled and should not be selected in data requests. | |
| marketplaceId | No | Optional marketplace id filter. Omit to include all marketplaces under the matched sellers. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds the useful scoping fact that results are limited to the current user's authorized sellers/marketplaces, but says nothing about result size or pagination behaviour for a listing call, and an output schema exists so return shape is not its job.
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 listing the returned entities with no filler. It is appropriately sized, though the space saved is not spent on the missing usage routing.
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 output schema and complete annotations, most of the burden is already handled elsewhere. What remains missing is the operational context an agent needs: that this is the discovery entry point for seller and marketplace identifiers used by the query_* family.
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 the five optional filters are documented in unusual detail in the schema itself. The description restates none of them and adds nothing beyond the implicit 'all sellers for the current user' default, which the sellerId schema text already states. Baseline 3 is the correct ceiling.
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 resource concretely (sellers, marketplaces, and the SP/Advertising/active status fields returned) and scopes it to the current user, so an agent knows exactly what this returns. It does not, however, distinguish itself from near-neighbours like get_current_user or discover_capabilities, which an agent could easily confuse it with.
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 guidance on when to call this versus alternatives such as get_current_user or discover_capabilities. The most useful fact — that this is the tool to resolve sellerId/marketplaceId before calling query_* tools — is absent entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_ad_group_changesPrepare ad group changesAInspect
Prepares an immutable, separately confirmable Amazon Ads plan. Changes ad-group default bids, states, or names. Persists an internal plan without changing advertising entities.
| Name | Required | Description | Default |
|---|---|---|---|
| parameters | Yes | Current ad-group default-bid, ENABLED/PAUSED state, or name changes. Use stable adGroupIds returned by query_advertising_ad_groups, or parent campaign/state selectors. Sponsored Brands ad groups do not support default-bid actions. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| planId | No | |
| status | No | |
| storeId | No | |
| summary | No | |
| planHash | No | |
| policyId | No | |
| warnings | No | |
| createdAt | No | |
| expiresAt | No | |
| simulated | No | |
| parameters | No | |
| confirmedAt | No | |
| nextActions | No | |
| planVersion | No | |
| continuation | No | |
| workflowType | No | |
| executionMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false; the description usefully reconciles this by clarifying that it persists an internal plan while leaving advertising entities untouched, which is non-obvious for a non-readonly tool. What is missing is the plan lifecycle (expiry, validity window, what makes a plan confirmable).
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, scope second, side-effect clarification last. No filler and no 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?
Output schema exists, so return values needn't be explained, and annotations plus a rich nested schema cover the mechanics. The remaining gap is workflow positioning — which tool consumes the prepared plan and under what conditions — which an agent must infer from sibling names 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 coverage is 100% and the nested schema already documents operation limits, action types, selector semantics, and even the 'state goes in value, not action.state' gotcha. The description only restates the changeable fields (bids, states, names), so it adds little 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 (Prepares) and resource (an immutable, separately confirmable Amazon Ads plan) and scopes it to ad-group default bids, states, and names. The clause 'without changing advertising entities' implicitly separates it from apply_ad_group_changes, though that sibling is never named.
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 'immutable, separately confirmable plan' — an agent infers this is the pre-apply step — but no explicit when-to-use/when-not or next-step guidance is given. The description never points to confirm_workflow_plan or apply_ad_group_changes, which matters in a family of ~10 prepare_*/apply_* pairs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_ad_group_creationPrepare ad group creationAInspect
Prepares an immutable, separately confirmable Amazon Ads plan. Creates advertising ad groups. Persists an internal plan without changing advertising entities.
| Name | Required | Description | Default |
|---|---|---|---|
| parameters | Yes | Prepares a plan to create one to one hundred customer-reviewed ENABLED ad groups under existing Sponsored Products, Sponsored Display, or Sponsored Brands campaigns. Provide name and optional defaultBid. For SP AUTO, carry the customer's optional automaticTargetBidding choice so the synchronized four targets return the correct next action. defaultBid is supported by SP/SD and defaults to 25 times the marketplace minimum bid; SB does not support a default bid, so a supplied value is ignored and is not sent to Amazon. The server resolves adProduct and derives the required SINGLE_MARKETPLACE marketplace fields for SD only. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| planId | No | |
| status | No | |
| storeId | No | |
| summary | No | |
| planHash | No | |
| policyId | No | |
| warnings | No | |
| createdAt | No | |
| expiresAt | No | |
| simulated | No | |
| parameters | No | |
| confirmedAt | No | |
| nextActions | No | |
| planVersion | No | |
| continuation | No | |
| workflowType | No | |
| executionMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations only saying readOnlyHint=false and destructiveHint=false, the description adds genuinely useful context: it persists a plan but does not modify advertising entities, and the plan is immutable. It does not state plan lifetime, what confirmation consumes it, or any failure/rate-limit behavior, which keeps it from 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 short sentences, front-loaded with the plan concept and no filler. The middle sentence 'Creates advertising ad groups' slightly risks being read as immediate execution, requiring the third sentence to disambiguate.
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?
Complete for a plan-preparation tool: schema is exhaustive and an output schema exists, so return values need no explanation. The one remaining gap is that the description never points to the confirming tool or describes the confirm step the plan is prepared for.
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 the nested adGroups/defaultBid/automaticTargetBidding semantics are already documented in the schema. The description restates defaultBid and server-side adProduct resolution, adding little beyond what the schema 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 description states a specific verb and resource ('Prepares an immutable, separately confirmable Amazon Ads plan. Creates advertising ad groups') and clarifies the scope boundary by saying it persists an internal plan without changing advertising entities. It implicitly contrasts with the apply_ad_group_creation sibling, though it never names 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?
'Separately confirmable' implies a prepare-then-confirm workflow, but the description never says explicitly to use this instead of apply_ad_group_creation or that a follow-up confirmation step is required. The selection logic must be inferred from sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_campaign_changesPrepare campaign changesAInspect
Prepares an immutable, separately confirmable Amazon Ads plan. Changes campaign budgets, states, or names. Persists an internal plan without changing advertising entities.
| Name | Required | Description | Default |
|---|---|---|---|
| parameters | Yes | Campaign budget, ENABLED/PAUSED state, or name changes. Metric rules use campaign totals for the inclusive date range. Campaigns may be selected directly by stable IDs or by mutually exclusive selector + action rules. Execution snapshots are action-scoped: budget actions ignore name-only changes, name actions ignore budget-only changes, and state actions ignore name and budget changes; changes to the action's own guarded fields still make the plan stale. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| planId | No | |
| status | No | |
| storeId | No | |
| summary | No | |
| planHash | No | |
| policyId | No | |
| warnings | No | |
| createdAt | No | |
| expiresAt | No | |
| simulated | No | |
| parameters | No | |
| confirmedAt | No | |
| nextActions | No | |
| planVersion | No | |
| continuation | No | |
| workflowType | No | |
| executionMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false with destructiveHint=false; the description adds the crucial nuance that the only side effect is persisting an internal immutable plan, not mutating ads. It stops short of describing plan lifetime, staleness/expiry, or the confirm step needed before execution.
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, no filler, with the nature of the tool and its non-mutating guarantee front-loaded. 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 tool with a deeply nested schema, a 20-operation cap, action-scoped snapshot staleness, and a large prepare/apply/confirm sibling family, the description omits the lifecycle (what to call next to confirm or apply) and any mention of plan invalidation. An output schema exists, so return-value detail is not required, but the workflow context is thin.
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 the nested schema itself documents operations, selectors, action/value shapes, date ranges, and staleness semantics in detail. The description only restates the field domain ('budget, ENABLED/PAUSED state, or name changes'), adding nothing 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?
States a specific verb and resource: prepares an immutable plan that changes campaign budgets, states, or names, and explicitly says advertising entities are not modified. That distinguishes it from apply_campaign_changes, but it never names the sibling nor distinguishes itself from prepare_campaign_creation or prepare_workflow_draft.
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?
'Separately confirmable' hints at the prepare-then-confirm flow, and 'persists an internal plan without changing advertising entities' implies it is the non-executing counterpart to apply_campaign_changes. But no alternative is named and no explicit 'use this when / not when' guidance is given, so an agent must infer the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_campaign_creationPrepare campaign creationAInspect
Prepares an immutable, separately confirmable Amazon Ads plan. Creates Sponsored Products campaigns. Persists an internal plan without changing advertising entities.
| Name | Required | Description | Default |
|---|---|---|---|
| parameters | Yes | Prepares a plan to create one to one hundred customer-reviewed ENABLED campaigns. adProduct is required and currently accepts SPONSORED_PRODUCTS only; the stable field is reserved for future Sponsored Brands and Sponsored Display support. The server derives store marketplace fields; targetingType controls automatic target creation on execution. Campaign plans expose reachScope.mode=AMAZON_ONLY: ads are limited to Amazon owned-and-operated properties. Present reachScope using its display name and description in the customer's language. Do not expose the underlying Amazon API value MINIMIZE_SPEND unless explicitly requested. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| planId | No | |
| status | No | |
| storeId | No | |
| summary | No | |
| planHash | No | |
| policyId | No | |
| warnings | No | |
| createdAt | No | |
| expiresAt | No | |
| simulated | No | |
| parameters | No | |
| confirmedAt | No | |
| nextActions | No | |
| planVersion | No | |
| continuation | No | |
| workflowType | No | |
| executionMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare non-read-only, non-destructive, closed-world, and the description adds real context beyond them: the plan is immutable, persisted internally, and has no effect on live advertising entities until separately confirmed. It does not quantify plan lifetime or confirm permissions, keeping it below 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 short sentences, each carrying distinct information – what it does, its scope, and its side-effect profile – with the key differentiator (immutable, confirmable plan) 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 and the nested schema carries the heavy parameter documentation, so return values and field semantics are covered. What remains missing for a multi-step workflow tool is the explicit next action (confirm_workflow_plan / apply_campaign_creation), though 'separately confirmable' points in that direction.
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 the nested schema already documents every field, so the baseline is 3; the description adds meaning by explaining adProduct is reserved for future Sponsored Brands/Display, that targetingType controls automatic target creation on execution, and that the server derives marketplace fields. It does not add field-level syntax beyond that.
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 (prepare an Amazon Ads campaign plan for Sponsored Products) and distinguishes planning from execution with 'without changing advertising entities.' The middle sentence 'Creates Sponsored Products campaigns' is momentarily misleading for a prepare tool, but the surrounding sentences scope it to a plan.
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 two-step flow via 'immutable, separately confirmable plan,' but never names apply_campaign_creation or confirm_workflow_plan as the follow-up, nor states when to use this instead of apply_campaign_creation. Usage must be inferred from the sibling naming pattern.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_keyword_rank_competitor_replacementPrepare keyword rank competitor replacementAInspect
Prepares and persists an immutable keyword-rank tracking change plan for explicit customer review. Replaces the full associated competitor set of one existing owned-product tracker. An empty set clears associations. Does not create independent competitor tracking or change keyword status. Does not apply tracking changes. Competitor validation may read fresh Amazon Catalog product relationships.
| Name | Required | Description | Default |
|---|---|---|---|
| parameters | Yes | Prepare one immutable plan, review it, obtain explicit approval, confirm, then use the matching execution tool. Query account capabilities and applicable quotas first. Competitor Catalog relationships are refreshed during preparation and execution where applicable; changed relationships require a new plan. No silent cached fallback. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| planId | No | |
| status | No | |
| storeId | No | |
| summary | No | |
| planHash | No | |
| policyId | No | |
| warnings | No | |
| createdAt | No | |
| expiresAt | No | |
| simulated | No | |
| parameters | No | |
| confirmedAt | No | |
| nextActions | No | |
| planVersion | No | |
| continuation | No | |
| workflowType | No | |
| executionMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=false, openWorldHint=true, but the description adds substantial context beyond them: the plan is immutable and requires explicit customer approval, an empty set clears associations, competitor validation may read fresh Amazon Catalog relationships, and changed relationships require a new plan with no silent cached fallback. These are real behavioral traits an agent 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?
Front-loaded with the core action and scope, then the exclusions. Mostly every sentence earns its place, though the 'Does not apply tracking changes' point is partially redundant with the workflow note in the schema description.
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 rich annotations, an output schema, and a fully described nested input schema, the description covers everything else needed: immutability, approval requirement, clearing semantics, fresh-validation caveats, and the follow-on execution step. 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% and the nested fields already document critical semantics — competitorAsins is a 'Complete replacement set, not an append,' empty array clears, PARENT vs CHILD ASIN rules, max 10. The description's 'Replaces the full associated competitor set' and 'An empty set clears associations' merely echo what the schema already states, 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 and resource — 'Prepares and persists an immutable keyword-rank tracking change plan' — and scopes it precisely to replacing 'the full associated competitor set of one existing owned-product tracker.' This clearly separates it from apply_keyword_rank_competitor_replacement (execution) and prepare_keyword_rank_tracking_changes (keyword changes).
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 what it does NOT do — 'Does not create independent competitor tracking or change keyword status. Does not apply tracking changes' — and the schema description lays out the prepare → review → approve → confirm → execute workflow and says to query capabilities and quotas first. It stops short of naming the specific alternative siblings (e.g., prepare_keyword_rank_tracking_changes) for other change types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_keyword_rank_tracking_changesPrepare keyword rank tracking changesAInspect
Prepares and persists an immutable keyword-rank tracking change plan for explicit customer review. Updates existing keyword tracking status to ACTIVE (resume) or ARCHIVED (remove while retaining ranking history). Does not create tracking or change competitor associations. Does not apply tracking changes. Uses existing account tracking; does not access Amazon Catalog.
| Name | Required | Description | Default |
|---|---|---|---|
| parameters | Yes | Prepare one immutable plan, review it, obtain explicit approval, confirm, then use the matching execution tool. Query account capabilities and applicable quotas first. Updates existing tracking in the account; does not access Amazon Catalog. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| planId | No | |
| status | No | |
| storeId | No | |
| summary | No | |
| planHash | No | |
| policyId | No | |
| warnings | No | |
| createdAt | No | |
| expiresAt | No | |
| simulated | No | |
| parameters | No | |
| confirmedAt | No | |
| nextActions | No | |
| planVersion | No | |
| continuation | No | |
| workflowType | No | |
| executionMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well past the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=false) by disclosing that the plan is immutable and persisted, that ARCHIVED preserves ranking history and the resulting state is NOT_TRACKED rather than an ARCHIVED state, that removing the last keyword drops the target from its tracking list, and that ACTIVE only resumes system-paused collection after package and quota checks. It also disclaims Amazon Catalog access, which matters for a non-open-world 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 core action and scope, then bounded by a compact set of 'does not' exclusions that each remove a real ambiguity. It is dense and mostly waste-free, though the repeated negation clauses read as somewhat clipped and could be merged into one boundary sentence.
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, full annotation coverage, and a fully described nested schema, the description supplies exactly the missing layer: the prepare/review/confirm/execute lifecycle, the prerequisite capability and quota check, and the state semantics of the two allowed changes. Nothing needed to select or invoke the tool 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% and the single top-level parameter is a deeply documented nested object, so the baseline is 3. The description adds semantics the schema does not: the operation only mutates already-existing tracking entries and works against the account's existing tracking, which tells the agent items must reference tracked keywords rather than new ones.
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+resource ('Prepares and persists an immutable keyword-rank tracking change plan') and immediately bounds the operation to status updates ACTIVE/ARCHIVED on existing tracking. Explicitly negates the neighboring capabilities ('Does not create tracking', 'Does not apply tracking changes'), so an agent can separate it from prepare_keyword_rank_tracking_creation and apply_keyword_rank_tracking_changes without consulting 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 flow is spelled out: prepare -> explicit customer review -> approval -> confirm -> matching execution tool, plus the precondition to query capabilities and quotas first. Exclusions route the agent away from creation and application. Slight deduction because the alternative tools are described by negation ('matching execution tool') rather than named outright.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_keyword_rank_tracking_creationPrepare keyword rank tracking creationAInspect
Prepares and persists an immutable keyword-rank tracking change plan for explicit customer review. Creates keyword tracking for owned products or independent competitors. Existing active tracking is unchanged; paused tracking must use the status changes tool. Does not apply tracking changes. Competitor validation may read fresh Amazon Catalog product relationships.
| Name | Required | Description | Default |
|---|---|---|---|
| parameters | Yes | Prepare one immutable plan, review it, obtain explicit approval, confirm, then use the matching execution tool. Query account capabilities and applicable quotas first. Competitor Catalog relationships are refreshed during preparation and execution where applicable; changed relationships require a new plan. No silent cached fallback. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| planId | No | |
| status | No | |
| storeId | No | |
| summary | No | |
| planHash | No | |
| policyId | No | |
| warnings | No | |
| createdAt | No | |
| expiresAt | No | |
| simulated | No | |
| parameters | No | |
| confirmedAt | No | |
| nextActions | No | |
| planVersion | No | |
| continuation | No | |
| workflowType | No | |
| executionMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true; the description earns credit by explaining that open-world behavior concretely ('Competitor validation may read fresh Amazon Catalog product relationships') and by clarifying that the persisted plan is immutable and non-applying. It stops short of stating auth/scope prerequisites (e.g. required capability for competitor tracking), which would push it higher.
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 compact sentences, front-loaded with the core action and the immutability guarantee, followed by scope and non-goals. Minor redundancy between 'Does not apply tracking changes' and the review framing, but no wasted bulk.
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, full schema coverage, and annotations present, the description supplies exactly the missing behavioral context: immutability of the plan, non-application, competitor Catalog reads, and routing for excluded cases. Nothing an agent needs to select or 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% and nested, so the schema already carries parameter meaning (trackingScope, productType, asin vs parentAsin, keyword limits). The description only adds a light gloss on owned-vs-competitor tracking, 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?
Names a specific verb and resource ('Prepares and persists an immutable keyword-rank tracking change plan') and immediately delineates scope: owned products vs independent competitors. It distinguishes itself from apply_keyword_rank_tracking_creation ('Does not apply tracking changes') and from prepare_keyword_rank_tracking_changes ('paused tracking must use the status changes tool').
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 exclusions and routing: existing active tracking is untouched, paused tracking belongs to the status-changes tool, and this tool does not apply changes. It implies the prepare→review→apply flow via 'explicit customer review' but never names the execution sibling (apply_keyword_rank_tracking_creation) or the confirm step, which the agent must infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_product_ad_changesPrepare product ad changesAInspect
Prepares an immutable, separately confirmable Amazon Ads plan. Changes advertising ad states or supported Sponsored Brands ad names. Persists an internal plan without changing advertising entities.
| Name | Required | Description | Default |
|---|---|---|---|
| parameters | Yes | Current ad ENABLED/PAUSED state or Sponsored Brands name changes. Use stable adIds returned by query_advertising_ads, or parent campaign/ad-group/state selectors. Product ads do not support name changes. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| planId | No | |
| status | No | |
| storeId | No | |
| summary | No | |
| planHash | No | |
| policyId | No | |
| warnings | No | |
| createdAt | No | |
| expiresAt | No | |
| simulated | No | |
| parameters | No | |
| confirmedAt | No | |
| nextActions | No | |
| planVersion | No | |
| continuation | No | |
| workflowType | No | |
| executionMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false, destructiveHint=false and openWorldHint=false; the description adds the meaningful context that the plan is immutable, is separately confirmable, and does not mutate advertising entities. It stops short of disclosing plan lifetime/expiry or what happens to a plan that is never confirmed.
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, front-loaded with the plan concept and the non-mutation guarantee. No restatement of the tool name or 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, full annotation coverage and a richly described nested input schema, the description carries enough for correct invocation. The remaining gap is workflow-level: it never names the confirm/cancel tools or states that the plan must be confirmed before any ad state actually changes.
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 the nested schema already explains storeId format, selector fields, the SET_STATE/SET_NAME action shape, and the 1-20 operation limit. The description only echoes the change types, adding little beyond the schema (it does not, for example, clarify how selector combinations are scoped), 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?
The description names a specific verb (prepares) and a precise resource (an immutable, separately confirmable Amazon Ads plan for product ads), and states exactly what the plan covers: ad state changes and supported Sponsored Brands ad names. The phrase 'persists an internal plan without changing advertising entities' cleanly separates it from the apply_* 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?
It makes clear this is the staging step (prepare then separately confirm) and that nothing is applied yet, which is the key usage decision against apply_product_ad_changes. It does not explicitly name confirm_workflow_plan/apply_product_ad_changes as the next step, nor does it state exclusions such as when a direct apply is preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_product_ad_creationPrepare product ad creationAInspect
Prepares an immutable, separately confirmable Amazon Ads plan. Creates Sponsored Products product ads or Sponsored Display product ads. Persists an internal plan without changing advertising entities.
| Name | Required | Description | Default |
|---|---|---|---|
| parameters | Yes | Prepares a plan to create ENABLED product ads under one or more existing Sponsored Products or Sponsored Display ad groups. Use legacy adGroupId plus skus/asins for one group, or adGroups[] for one immutable multi-group plan. SP uses PRODUCT_AD/productCreative; SD uses COMPONENT/responsive eCommerce componentCreative with the resolved ASIN. Non-empty skus takes precedence over asins within each group. Production live products must resolve to both SKU and ASIN in Listings; non-production and Review Sandbox products are exempt. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| planId | No | |
| status | No | |
| storeId | No | |
| summary | No | |
| planHash | No | |
| policyId | No | |
| warnings | No | |
| createdAt | No | |
| expiresAt | No | |
| simulated | No | |
| parameters | No | |
| confirmedAt | No | |
| nextActions | No | |
| planVersion | No | |
| continuation | No | |
| workflowType | No | |
| executionMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, and the description adds meaningful context: the plan is immutable, must be separately confirmed, and does not change advertising entities. This clarifies the write-to-plan versus write-to-account distinction, which is not captured by annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences with no filler. The key constraints—immutable plan, separately confirmable, no entity changes—are front-loaded before the lower-level detail.
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 and annotations cover the safety profile, the description supplies the essential behavioral context: it creates a plan rather than changing entities and requires separate confirmation. A slightly clearer pointer to the confirm/apply workflow would make it fully complete for an agent navigating this 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?
Schema description coverage is 100%, so the nested schema already documents storeId, skus/asins precedence, adGroupId, adGroups, and campaignId in detail. The top-level description adds little parameter-specific meaning beyond saying the tool creates SP or SD product ads, so the schema remains the primary source of parameter semantics.
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: it prepares an immutable Amazon Ads plan and creates Sponsored Products or Sponsored Display product ads. It also distinguishes itself from mutation siblings by noting it persists an internal plan 'without changing advertising entities,' though it stops short of naming apply_product_ad_creation 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 phrases 'immutable, separately confirmable' and 'persists an internal plan' imply this is a prepare step before confirmation/apply, but the description never states when to use this tool versus apply_product_ad_creation or confirm_workflow_plan. The usage context is inferable but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_targeting_changesPrepare targeting changesAInspect
Prepares an immutable, separately confirmable Amazon Ads plan. Changes positive keyword or ASIN targeting bids or states, or re-enables/archives negative keyword or ASIN targeting. Negative targeting has no bid actions; archiving is irreversible. Persists an internal plan without changing advertising entities.
| Name | Required | Description | Default |
|---|---|---|---|
| parameters | Yes | Change positive keyword or ASIN bids/states, or re-enable/archive negative keyword or ASIN targeting. Negative targeting has no bid action. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| planId | No | |
| status | No | |
| storeId | No | |
| summary | No | |
| planHash | No | |
| policyId | No | |
| warnings | No | |
| createdAt | No | |
| expiresAt | No | |
| simulated | No | |
| parameters | No | |
| confirmedAt | No | |
| nextActions | No | |
| planVersion | No | |
| continuation | No | |
| workflowType | No | |
| executionMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real context beyond the annotations: the plan is immutable and separately confirmable, it writes a plan rather than mutating ad entities, negative targeting accepts no bid actions, and archiving is irreversible. Those are non-obvious traits that annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=false) do not convey. It stops short of describing the confirmation lifecycle or what the persisted plan record contains.
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 short sentences, each carrying distinct information, with the core identity (immutable confirmable plan) front-loaded and the constraints (no negative bids, irreversible archive, no entity mutation) following. No filler or 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?
Given an output schema exists and annotations cover the safety profile, the description supplies the essential decision information: what the tool does, that it does not mutate entities, and the irreversibility constraint. Slightly incomplete because it does not hint at the follow-up confirmation/apply step that a prepare tool necessarily requires.
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 would be 3, but the description still adds branch-level meaning: the positive branch handles bids/states while the negative branch is state-only with an irreversible ARCHIVED terminal value. It does not map the oneOf branch structure to targetType values (KEYWORD/TARGET vs NEGATIVE_KEYWORD/NEGATIVE_TARGET) as explicitly as the schema does.
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 (prepares) plus the exact resource (an immutable, separately confirmable Amazon Ads targeting plan) and enumerates both supported branches: positive keyword/ASIN bid or state changes and negative re-enable/archive. The phrase 'persists an internal plan without changing advertising entities' functionally separates it from apply_targeting_changes, and the positive-vs-negative scope separates it from prepare_targeting_creation.
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?
'Separately confirmable' and 'Persists an internal plan without changing advertising entities' imply the prepare-then-confirm/apply workflow, which is useful implied guidance. However, it never names the alternative calls (apply_targeting_changes, confirm_workflow_plan) or states an explicit when-to-use/when-not condition, leaving the agent to infer the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_targeting_creationPrepare targeting creationAInspect
Prepares an immutable, separately confirmable Amazon Ads plan. Creates positive keyword, positive ASIN, negative keyword, or negative ASIN targeting entities. A batch may contain multiple targeting groups. Persists an internal plan without changing advertising entities.
| Name | Required | Description | Default |
|---|---|---|---|
| parameters | Yes | Create positive keyword, positive ASIN, negative keyword, or negative ASIN targeting; targetingGroups allows a reviewed batch of these types. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| planId | No | |
| status | No | |
| storeId | No | |
| summary | No | |
| planHash | No | |
| policyId | No | |
| warnings | No | |
| createdAt | No | |
| expiresAt | No | |
| simulated | No | |
| parameters | No | |
| confirmedAt | No | |
| nextActions | No | |
| planVersion | No | |
| continuation | No | |
| workflowType | No | |
| executionMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses that the plan is immutable, separately confirmable, and persisted internally without changing advertising entities. This is valuable behavioral context for an agent deciding whether this tool has side effects, though it omits workflow sequencing and error/permission details.
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 core action and plan semantics, with no filler. Each sentence contributes either purpose, supported entity types, batch scope, or side-effect clarification.
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 and rich nested parameter descriptions are present, so the description need not explain return values in detail. It sufficiently covers the prepare-plan semantics and targeting types, though it could more explicitly connect this tool to the subsequent confirm/apply workflow.
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 the nested parameters thoroughly. The description adds only the high-level notion that a batch may contain multiple targeting groups and lists the four targeting types, which is marginal 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 the specific action: preparing an immutable, separately confirmable Amazon Ads plan for targeting creation, and lists the four supported targeting families. It is clearly distinguishable from query or apply siblings, though it does not explicitly name apply_targeting_creation.
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 implies use before a separate confirmation/apply step by saying the plan is 'separately confirmable' and does not change advertising entities, but it never explicitly states when to use this versus apply_targeting_creation or prepare_targeting_changes. No exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_workflow_draftPrepare workflow draftADestructiveInspect
Creates or incrementally updates an AD_STRUCTURE_CREATE draft. Collect the Sponsored Products Campaign/Ad Group/Product Ad structure and any targeting the customer already supplied. One MANUAL ad group can contain only one positive targeting family: KEYWORD or ASIN TARGET. If positive targeting is omitted, collect manualTargetingFamily=KEYWORD|TARGET before execution. If the customer wants both, model separate manual Campaign/Ad Group structures from the start and assign one family to each; never put both into one ad group. Every ad group needs a negative-targeting decision: supplied allowed negative items automatically record negativeTargetingMode=CONFIGURED; when none are supplied, recommend negatives and ask the customer to choose CONFIGURED or NONE. AUTO permits both negative keywords and negative ASINs; a MANUAL KEYWORD group permits only negative keywords, and a MANUAL TARGET group permits only negative ASINs. Continuation prepares all Campaigns together, then all Ad Groups, then all Product Ads across every ad group in one multi-group plan before any AUTO bid decision or MANUAL recommendation can pause the draft. After all Product Ads exist, continuation queries and persists Amazon recommendations only for each manual ad group's recorded family, asks the customer to choose up to 100 candidates, obtains suggested or custom bids, then combines all ready MANUAL positive targeting into one Targeting batch plan. It subsequently combines every configured negative targeting item across AUTO and MANUAL structures into one separate negative Targeting batch plan. AUTO-only drafts skip the MANUAL stage and MANUAL-only drafts skip the AUTO stage. If recommendations are absent or rejected, submit customer-approved customCandidates of the same family to the continuation; do not recreate the already-created structure. For every AUTO ad group, explain that Amazon creates exactly four targets after the ad group exists and record automaticTargetBidding.mode as KEEP_DEFAULT, AMAZON_SUGGESTED, CUSTOM, or DECIDE_LATER; CUSTOM requires all four official theme bids. Never model those themes as manually created targets. Every supplied nested entity requires a stable clientRef. Updating requires draftId and expectedDraftVersion; arrays merge by clientRef and remove only through removeClientRefs. When the draft is READY, call continue_workflow_draft. The server then persists the current atomic plan, created Amazon IDs, recommendation choices, and bid choice so later calls safely resume. Every returned write plan must still be shown, explicitly confirmed, and applied. Pass applyContinuation to the matching operation-specific execution tool so successful writes automatically prepare the next stage; never ask the customer for permission merely to advance. Recommendation 429 responses are recoverable and do not create a write plan. During draft collection, accept syntactically valid SKU/ASIN values without querying Inventory or Listings; production Product Ad plan preparation performs product resolution.
| Name | Required | Description | Default |
|---|---|---|---|
| draftId | No | Existing draft ID. Omit only when creating a new draft. | |
| storeId | No | Store ID in sellerId:marketplaceId format. Required when creating a draft and immutable afterwards. | |
| parameters | No | Partial SP advertising structure. Only supplied fields are merged into the draft. | |
| workflowType | Yes | Draft workflow type. | |
| removeClientRefs | No | Stable clientRef values to delete explicitly. Omission never deletes entities. | |
| expectedDraftVersion | No | Required optimistic-lock version when updating an existing draft. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | |
| draftId | No | |
| storeId | No | |
| summary | No | |
| warnings | No | |
| createdAt | No | |
| expiresAt | No | |
| updatedAt | No | |
| parameters | No | |
| nextActions | No | |
| continuation | No | |
| draftVersion | No | |
| workflowType | No | |
| missingInputs | No | |
| schemaVersion | No | |
| validationErrors | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial behavior beyond the destructiveHint=true annotation: merge-by-clientRef semantics, deletion only via removeClientRefs, optimistic locking with draftId/expectedDraftVersion, server-side persistence and safe resume, and recoverable 429 responses that create no write plan. Nothing contradicts the annotations (omission never deletes, consistent with explicit removal), but the exact effect of a merge on previously supplied nested arrays could be stated more sharply.
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 dense paragraph of roughly 350 words mixing purpose, collection rules, continuation sequencing, error handling, and validation policy. Nearly every sentence carries information, but the lack of structure or grouping makes it hard to scan, and several points (AUTO negative support, family exclusivity) duplicate schema 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?
Covers the full lifecycle an agent needs: draft creation, incremental update with version locking, the multi-stage continuation ordering, AUTO bid mode decisions, recommendation handling, and the final confirm-and-apply path. With an output schema present, no return-value detail is owed.
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 already 100%, so the baseline is 3, and the description earns more by adding cross-field constraints the schema cannot express: one positive targeting family per MANUAL ad group, negative families gated by ad group type, and the requirement for a stable clientRef on every nested entity. Some of this restates the schema's own manualTargetingFamily and negativeTargetingMode descriptions, which caps it at 4.
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 and resource: 'Creates or incrementally updates an AD_STRUCTURE_CREATE draft', and immediately scopes it to SP Campaign/Ad Group/Product Ad structures. It is clear what the tool does, but it never names the narrower siblings (prepare_campaign_creation, prepare_ad_group_creation, prepare_targeting_creation) to explain when the umbrella draft tool is preferred over 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?
Explicitly states the transition points: call continue_workflow_draft when the draft is READY, pass applyContinuation to the operation-specific execution tool, and never ask permission merely to advance. It also gives when-not guidance (do not recreate an already-created structure when recommendations are rejected) and how to split both targeting families into separate structures.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_aba_search_termsQuery aba search termsARead-onlyInspect
Query the latest Amazon Brand Analytics search-term report for one supported marketplace: US ATVPDKIKX0DER, CA A2EUQ1WTGCTBG2, UK A1F83G8C2ARO7P, DE A1PA6795UKMFR9, FR A13V1IB3VIYZZH, IT APJ6JRA9NG5V4, ES A1RKKUPIHCS9HS, JP A1VC38T7YXB528. Returns the current-week report plus raw previousWeek (1 week earlier), sameWeekLastMonth (4 weeks earlier), and sameWeekLastQuarter (12 weeks earlier) snapshots (rank, click share, conversion share) and the latest 13 weekly rank points. Comparison snapshots are raw baselines, not calculated changes or rates. BROWSE is paginated. EXACT accepts 1 to 100 terms and FUZZY accepts one keyword; neither accepts pagination or sorting, and FUZZY returns at most the first 100 Lucene matches. searchFrequencyRank is the weekly search rank. searchVolume is weekly search volume. totalClickShare and totalConversionShare are percentages from 0 through 100, not counts or decimal fractions. Trend point weekStartDate is the week start date. supplyDemandRatio is searchVolume divided by competingListingCount (searches per competing listing), not a percentage. query.status is MATCHED when at least one item matched and NO_MATCH otherwise; inspect each item.matched for per-term results. pagination is present only for BROWSE and contains offset and limit but no total or hasMore. This is marketplace research data, not keyword-rank tracking or advertising search-term performance.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | BROWSE, EXACT, or FUZZY. Defaults to BROWSE. | BROWSE |
| limit | No | BROWSE only. 1 to 100. Defaults to 100. | |
| offset | No | BROWSE only. Zero-based offset. Defaults to 0. | |
| sortBy | No | BROWSE only: searchFrequencyRank, totalClickShare, totalConversionShare, or searchVolume. | searchFrequencyRank |
| keyword | No | FUZZY only: one search phrase, 1 to 200 characters. | |
| sortOrder | No | BROWSE only: asc or desc. | asc |
| searchTerms | No | EXACT only: 1 to 100 complete search terms. | |
| marketplaceId | Yes | Supported marketplace ID: US ATVPDKIKX0DER, CA A2EUQ1WTGCTBG2, UK A1F83G8C2ARO7P, DE A1PA6795UKMFR9, FR A13V1IB3VIYZZH, IT APJ6JRA9NG5V4, ES A1RKKUPIHCS9HS, or JP A1VC38T7YXB528. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare read-only/non-destructive/closed-world, and the description goes far beyond: it defines the four snapshot windows, warns they are raw baselines not calculated changes, discloses that pagination exists only for BROWSE and lacks total/hasMore, and caps FUZZY at 100 Lucene matches. Field-level semantics (percentage ranges, supplyDemandRatio formula, MATCHED vs NO_MATCH) remove ambiguity an agent could 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?
Purpose and marketplace scope are front-loaded, followed by mode behavior, then output-field semantics, then a disambiguation line. It is dense and mostly earns its length, but the eight marketplace names/IDs duplicate the enum descriptions verbatim, which 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?
An output schema exists, so return-value explanation was optional, yet the description documents the snapshots, trend points, percentage semantics and status values — precisely the parts of a complex analytics payload an agent needs to interpret. Nothing material for correct invocation is missing at 8 parameters.
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 cross-parameter rules the schema only implies per-field: pagination and sorting apply only to BROWSE, EXACT requires 1-100 complete terms, FUZZY takes exactly one keyword. Some of this repeats the schema's per-property text rather than extending 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?
States a specific verb and resource: 'Query the latest Amazon Brand Analytics search-term report for one supported marketplace'. It also explicitly bounds itself against siblings at the end: 'not keyword-rank tracking or advertising search-term performance', which separates it from query_keyword_rank_* and query_advertising_search_terms.
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 the modes and their constraints (BROWSE paginated, EXACT 1-100 terms, FUZZY one keyword, neither accepts pagination or sorting) and gives negative guidance against related tool categories. It does not explicitly name the closest sibling, query_aba_search_term_trends, as the alternative when trend history rather than a single report snapshot is wanted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_aba_search_term_trendsQuery aba search term trendsARead-onlyInspect
Return all retained raw weekly ABA observations for exactly one search term. The retained window covers at least two years and may be longer as server retention changes; use the returned startDate and endDate. searchFrequencyRank is the weekly search rank, and searchVolume is weekly search volume. Use query_aba_search_terms for the latest report, share snapshots, and the recent 13-week trend. Status AVAILABLE means at least one weekly rank exists. NO_RANK_DATA means the term has no retained rank history. Each point uses weekStartDate. Do not treat this as keyword-rank tracking or advertising performance.
| Name | Required | Description | Default |
|---|---|---|---|
| searchTerm | Yes | Exactly one complete search term. | |
| marketplaceId | Yes | Supported marketplace ID: US ATVPDKIKX0DER, CA A2EUQ1WTGCTBG2, UK A1F83G8C2ARO7P, DE A1PA6795UKMFR9, FR A13V1IB3VIYZZH, IT APJ6JRA9NG5V4, ES A1RKKUPIHCS9HS, or JP A1VC38T7YXB528. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 still adds genuine behavioral context the annotations cannot: the retention window is at least two years but variable, consumers must trust the returned startDate/endDate, and AVAILABLE vs NO_RANK_DATA encodes whether any weekly rank exists. It stops short of noting result-size limits or response shape, keeping it at a 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?
Front-loaded with the scope, then routing, then field/status semantics — a sensible order with little waste. It does spend sentences defining searchFrequencyRank and searchVolume, which an output schema likely already carries, but the status-code gloss is not 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?
For a two-parameter read-only tool with an output schema, this covers the non-obvious risks: variable retention, the authoritative date fields, and status meanings. Remaining gaps (pagination, result-size ceilings, per-marketplace coverage) are minor against the structured fields already present.
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 both parameters fully documented and marketplaceId enumerated, so the schema does the heavy lifting. The description only reinforces the 'exactly one search term' constraint already stated verbatim in the schema and says nothing additional about marketplace behavior or per-marketplace retention differences. 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 all retained raw weekly ABA observations for exactly one search term,' and draws a hard boundary against the sibling query_aba_search_terms. An agent can distinguish it from query_keyword_rank_trends and query_advertising_search_terms 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 the agent: 'Use query_aba_search_terms for the latest report, share snapshots, and the recent 13-week trend,' and adds a negative exclusion ('Do not treat this as keyword-rank tracking or advertising performance'). Both the when-to-use and when-not-to-use cases are named against real siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_account_usagesQuery account usagesARead-onlyInspect
Queries current account-wide package limits, usage and remaining capacity. Authenticated basic access; no business OAuth scope is required. Omit resources for all resources, including businesses whose operational APIs are not yet available. Use when asked about quota or before planning capacity-consuming changes. Results do not reserve capacity or guarantee a later write. NOT_APPLICABLE is not unlimited; UNAVAILABLE is not zero. Business lists do not include package quotas. Use KEYWORD_RANK_TRACKING_KEYWORDS for keyword rank tracking; active site/keyword pairs are deduplicated across account shops and parent ASINs. Paused records do not consume keyword capacity.
| Name | Required | Description | Default |
|---|---|---|---|
| resources | No | Optional exact resource identifiers, up to 50 before deduplication. Omit to query all resources. Empty values and unknown identifiers are rejected. Resources describe account-wide usage and are unaffected by business store filters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | Requested account-wide resource usages, or all resources when omitted. No pagination. |
| queriedAt | No | UTC ISO-8601 query completion time, not an atomic snapshot timestamp. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and non-destructive, and the description adds substantial context beyond them: basic auth needs no business OAuth scope, results do not reserve capacity or guarantee a later write, NOT_APPLICABLE is not unlimited and UNAVAILABLE is not zero, business lists exclude package quotas, and paused records don't consume capacity. This is exactly the interpretive context a consumption/quota 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 core purpose and usage triggers are front-loaded and each sentence carries information. The trailing stream of caveats (NOT_APPLICABLE/UNAVAILABLE, business lists, dedup, paused records) is dense and slightly telegraphic, but none of it is wasted 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?
Given an output schema exists, the description doesn't need to explain return shapes; instead it supplies the missing interpretation rules for sentinel values and capacity accounting. Nothing an agent needs to call and correctly read this tool 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% with per-enum oneOf descriptions, so the baseline is 3; the description adds real meaning by explaining deduplication across account shops and parent ASINs, that paused records don't consume capacity, and that resources are unaffected by business store filters. It does repeat the omit-for-all and max-50 rules already present in the schema, which keeps it from 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?
States a specific verb and resource ('Queries current account-wide package limits, usage and remaining capacity'), which immediately distinguishes it from the query_* analytics siblings that return business metrics. Scope (account-wide, not business-filtered) is 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?
Gives explicit when-to-use triggers ('when asked about quota or before planning capacity-consuming changes'), explains how to widen scope ('Omit resources for all resources'), and routes keyword-specific questions via KEYWORD_RANK_TRACKING_KEYWORDS. An agent knows both when to call it and how to configure it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_advertisingQuery advertisingARead-onlyInspect
Returns store-level advertising performance or paginated advertising performance metrics grouped by SKU, ASIN, or parent ASIN for a single store and business date range. MCP reporting and workflow metric date ranges use yyyy-MM-dd and include both startDate and endDate, with at most 95 calendar days per range. For longer read-only reports, split into non-overlapping windows: endDate = startDate plus 94 days, capped at the requested end date; the next startDate is the previous endDate plus 1 day. Apply the same limit independently to comparison ranges. Do not average ratios such as ACOS or ROAS across windows; recompute them from summed base metrics. Do not automatically split advertising write plans or metric-based selectors; obtain a supported analysis window from the user. Keyword ranking trends have separate limits: DAILY supports up to 90 inclusive days and RAW up to 31 inclusive days. For keyword ranking trends, use these interval-specific limits when splitting read-only reports. This reporting limit does not apply to campaign scheduling dates.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of items to return. Defaults to 100 and cannot exceed 100. | |
| offset | No | Zero-based pagination offset. | |
| sortBy | No | Advertising performance sort field. | |
| values | No | Optional identifiers for the selected dimension. | |
| endDate | Yes | End business date in yyyy-MM-dd format. Date range is inclusive and can contain at most 95 days. For longer read-only reports, use non-overlapping windows of up to 95 days. | |
| storeId | Yes | Store ID from the Stores API, formatted as sellerId:marketplaceId. | |
| dimension | No | Query dimension. | |
| sortOrder | No | Sort order. | |
| startDate | Yes | Start business date in yyyy-MM-dd format. Date range is inclusive and can contain at most 95 days. For longer read-only reports, use non-overlapping windows of up to 95 days. | |
| reportType | No | Report type. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/destructive annotations, the description discloses concrete behavioral traits: a 95-calendar-day cap with explicit window-splitting arithmetic, ratio-recomputation warnings (ACOS/ROAS), interval-specific keyword-ranking limits (DAILY 90, RAW 31), the requirement to ask the user for a supported analysis window on write plans, and clarification that the limit does not apply to campaign scheduling dates. This is rich context 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 front-loaded in the first sentence, and subsequent sentences follow a logical constraint-then-procedure order. The ratio-recomputation and keyword-trend caveats are dense but each carries distinct information; minor redundancy around repeated 95-day language prevents 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 present, return values need not be explained, and the description thoroughly covers the trickiest complexity (date-window handling and ratio aggregation). It is nearly complete, with the only gap being explicit tool-selection guidance against the many sibling advertising query 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 coverage is 100%, so the baseline is 3, but the description adds meaningful semantics for startDate/endDate beyond the schema: exact splitting rules, independence of comparison ranges, and the distinction between reporting vs scheduling date limits. It does not elaborate on limit/offset/sortBy beyond the schema, keeping it at a 4.
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 states a specific verb ('Returns') and resource ('store-level advertising performance or paginated advertising performance metrics grouped by SKU, ASIN, or parent ASIN') scoped to a single store and date range. It is clear what the tool produces, though it does not explicitly contrast itself with siblings like query_advertising_campaigns or diagnose_ad_efficiency.
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 extensive operational usage guidance for date ranges (95-day windows, non-overlapping splits, separate limits for keyword ranking trends, no auto-splitting of write plans). However, it never states when to choose this tool over sibling query/diagnose tools, so selection guidance is only implied by the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_advertising_ad_groupsQuery advertising ad groupsARead-onlyInspect
Returns current advertising ad groups with stable IDs, name, state, serving status, default bid, parent campaign including campaignType, and Amazon createdAt/updatedAt timestamps as UTC ISO-8601 instants. Results can proceed to AD_AD_GROUP_CHANGE, AD_AD_CREATE, or AD_TARGETING_CREATE. AD_AD_CREATE resolves the product-specific creative: SP uses PRODUCT_AD/productCreative and SD uses COMPONENT/responsive eCommerce componentCreative. Choose targeting inputs from campaign.campaignType: Sponsored Display supports ASIN Targets and negative ASIN Targets only, never keywords or negative keywords.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of items to return. Defaults to 100 and cannot exceed 100. | |
| offset | No | Zero-based pagination offset. | |
| states | No | Ad group states. Omit to return all states. | |
| storeId | Yes | Store ID from the Stores API, formatted as sellerId:marketplaceId. | |
| campaignIds | No | Campaign IDs limiting the ad groups. | |
| campaignName | No | Campaign-name substring filter. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safe read nature is known. The description adds useful behavioral context: the exact fields returned, UTC ISO-8601 timestamp format, and the rule that Sponsored Display supports only ASIN Targets and negative ASIN Targets. It does not cover rate limits or authentication, but with annotations that 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?
The description is front-loaded with what the tool returns, followed by downstream usage and specific constraints. Four sentences, each earning its place with no redundant information. The structure is efficient and easy 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?
Given the existence of an output schema and the read-only annotations, the description provides complete context: it explains the returned fields, how results feed into other tools, and domain-specific targeting constraints. An agent has everything needed to invoke the 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 schema already documents all six parameters thoroughly. The description does not add any parameter-specific meaning beyond what the schema provides; the mention of campaign.campaignType refers to output fields, not input parameters. 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 (Returns) and resource (advertising ad groups), and enumerates the exact fields returned including IDs, state, bid, campaign details, and timestamps. It does not explicitly differentiate from sibling query tools like query_advertising_campaigns, but the scope is clear enough for an agent to distinguish 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?
The description gives clear context for when to use the results: they can proceed to AD_AD_GROUP_CHANGE, AD_AD_CREATE, or AD_TARGETING_CREATE. It also provides a domain constraint for choosing targeting inputs based on campaign.campaignType. However, it does not name alternative query tools or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_advertising_adsQuery advertising adsARead-onlyInspect
Returns current Sponsored Products, Sponsored Display, and Sponsored Brands ads with stable ad IDs, product identity or name, state, serving status, parent references, and Amazon createdAt/updatedAt timestamps as UTC ISO-8601 instants. Results can proceed to AD_AD_CHANGE for confirmed ENABLED/PAUSED state changes or Sponsored Brands name changes.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of items to return. Defaults to 100 and cannot exceed 100. | |
| offset | No | Zero-based pagination offset. | |
| states | No | Ad states. Omit to return all states. | |
| storeId | Yes | Store ID from the Stores API, formatted as sellerId:marketplaceId. | |
| adGroupIds | No | Ad group IDs limiting the ads. | |
| campaignIds | No | Campaign IDs limiting the ads. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 genuine context beyond that: results reflect 'current' state, ad IDs are stable, timestamps are Amazon createdAt/updatedAt as UTC ISO-8601, and the output feeds a specific downstream mutation tool. It stays silent on result-set size/pagination behavior, which keeps it from 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?
Two dense sentences with the core purpose front-loaded and no filler. The long enumeration of return fields overlaps with the existing output schema, so it is slightly less economical than it could be, but every listed item still carries distinguishing 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?
With annotations, full schema coverage, and an output schema, the description covers purpose, scope, return semantics, and the downstream mutation path. The remaining gap is filter/pagination behavior over potentially large ad sets, which an agent would have to infer from the 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%, so filters (states, campaignIds, adGroupIds, limit, offset) are fully documented in the schema. The description adds no semantics about filtering, combination rules, or default behavior beyond what the schema already provides — 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+resource (returns Sponsored Products/Display/Brands ads) and enumerates the returned identity fields, which cleanly separates it from query_advertising_campaigns, query_advertising_ad_groups, and query_advertising_targets. It never names those siblings explicitly, so the differentiation is inferred from the resource noun rather than stated.
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 second sentence gives a forward path ('Results can proceed to AD_AD_CHANGE for confirmed ENABLED/PAUSED state changes'), which implies the tool is the read step before a mutation. However, there is no guidance on when to use this versus query_advertising, query_advertising_campaigns, or how to narrow with the available filters — usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_advertising_bid_recommendationsQuery advertising bid recommendationsARead-onlyInspect
Read-only POST that returns current Amazon suggested bids and bid ranges for 1 to 100 Sponsored Products, Sponsored Brands, or Sponsored Display targeting items. For an existing keyword or target, provide targetingType and targetingId only. For a candidate that has not been created, first create its ad group, then provide targetingType, adGroupId, and targeting; this operation does not create the candidate. The server resolves the advertising product, Campaign, and Ad Group from synchronized data, so clients do not provide adProduct or campaignId. Compatible items in the same product, Campaign, Ad Group, and targeting type are combined into one Amazon recommendation request. Successful group responses are cached briefly and reused for identical requests. If a group is rate-limited, earlier successful groups are preserved, later groups of the same advertising product are not sent, and other advertising products continue. Retry only retryItemIndexes after retryAfterSeconds; do not immediately repeat the complete request when requestFingerprint is unchanged. Rate-limited and deliberately skipped unfinished items both retain the backward-compatible TOO_MANY_REQUESTS code; details distinguish them. Retrieves bid recommendations from Amazon Ads using the authorized advertising profile, or reuses cached recommendation results. Supports existing targets and supplied keyword or product targeting candidates that have not been created in the advertising account. This is a read-only tool: it neither creates targeting entities nor applies the returned bid. Use it when a bid decision needs Amazon's recommendation; historical CPC is not a suggested bid. Never repeat an unchanged request in the same assistant turn. Reuse successful items and the same requestFingerprint response. On TOO_MANY_REQUESTS, wait at least retryAfterSeconds and call this tool again with only retryItemIndexes.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | Existing and candidate targeting items. Existing items require targetingType and targetingId only; candidate items require targetingType, adGroupId, and targeting. Submit selected candidates once, reuse successful results, and retry only response retryItemIndexes after retryAfterSeconds. | |
| storeId | Yes | Store ID from the Stores API, formatted as sellerId:marketplaceId. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint/destructiveHint annotations, it discloses server-side resolution of adProduct/Campaign/Ad Group, grouping of compatible items into one Amazon request, brief caching of successful group responses, and nuanced partial-failure semantics where rate-limited groups preserve earlier successes and skip later groups of the same product while other products continue. The TOO_MANY_REQUESTS code-sharing detail is exactly the kind of non-obvious behavior an agent 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 core purpose and targeting rules are front-loaded, but the retry/caching guidance is restated several times ('retry only retryItemIndexes after retryAfterSeconds,' 'do not repeat an unchanged request,' 'reuse successful items') across the middle and final sentences. Roughly a third of the text could be cut without losing 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 no explanation, and the description covers everything else an agent needs: input shape selection, server-side resolution, caching, partial rate-limit failure, and retry protocol. Nothing material 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 baseline is 3; the description goes further by explaining the mutually exclusive parameter combinations (targetingId alone vs adGroupId + targeting) and clarifying that adProduct and campaignId are deliberately absent because the server resolves them. That adds real meaning beyond the field-level 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?
The opening sentence gives a specific verb, resource, and scope: read-only POST returning Amazon suggested bids and bid ranges for 1-100 Sponsored Products/Brands/Display targeting items. It is clearly separable from siblings like query_advertising_target_recommendations and the prepare_*/apply_* families, which mutate rather than read.
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 explicit selection rules: existing items use targetingType + targetingId only; uncreated candidates require creating the ad group first, then passing targetingType, adGroupId, and targeting. It also gives negative guidance ('this operation does not create the candidate'), warns that historical CPC is not a suggested bid, and prescribes the retry path on TOO_MANY_REQUESTS.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_advertising_campaignsQuery advertising campaignsARead-onlyInspect
Returns advertising campaign performance or daily campaign performance. Summary reports support standardized campaign attribute and aggregated metric filters. When the user specifies any supported attribute or metric condition, pass it through filters in the first call; do not retrieve unfiltered pages and filter locally. Paginate only the filtered result. Always retain and present each campaign's current budget from budget.currencyAmount with budget.currencyCode. For budget changes, show current budget -> planned budget before requesting confirmation. Results can proceed to AD_CAMPAIGN_CHANGE for customer-confirmed daily-budget, ENABLED/PAUSED state, or name changes, and Sponsored Products, Sponsored Display, or Sponsored Brands campaigns can proceed to AD_AD_GROUP_CREATE. MCP reporting and workflow metric date ranges use yyyy-MM-dd and include both startDate and endDate, with at most 95 calendar days per range. For longer read-only reports, split into non-overlapping windows: endDate = startDate plus 94 days, capped at the requested end date; the next startDate is the previous endDate plus 1 day. Apply the same limit independently to comparison ranges. Do not average ratios such as ACOS or ROAS across windows; recompute them from summed base metrics. Do not automatically split advertising write plans or metric-based selectors; obtain a supported analysis window from the user. Keyword ranking trends have separate limits: DAILY supports up to 90 inclusive days and RAW up to 31 inclusive days. For keyword ranking trends, use these interval-specific limits when splitting read-only reports. This reporting limit does not apply to campaign scheduling dates.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of items to return. Defaults to 100 and cannot exceed 100. | |
| offset | No | Zero-based pagination offset. | |
| sortBy | No | Advertising performance sort field. | |
| states | No | Comma-separated campaign state filters. Allowed values are enabled, paused, and archived. | |
| endDate | Yes | End business date in yyyy-MM-dd format. Date range is inclusive and can contain at most 95 days. For longer read-only reports, use non-overlapping windows of up to 95 days. | |
| filters | No | Server-side campaign filters. When the user supplies a supported condition, use this object in the first request instead of scanning unfiltered pages. Paginate only if the filtered response has more results. | |
| storeId | Yes | Store ID from the Stores API, formatted as sellerId:marketplaceId. | |
| sortOrder | No | Sort order. | |
| startDate | Yes | Start business date in yyyy-MM-dd format. Date range is inclusive and can contain at most 95 days. For longer read-only reports, use non-overlapping windows of up to 95 days. | |
| reportType | No | Report type. | |
| campaignIds | No | Comma-separated campaign ID filters, up to 100 values. Omit to include all campaigns. | |
| campaignName | No | Fuzzy campaign name filter. | |
| portfolioIds | No | Portfolio IDs limiting the campaigns. | |
| campaignTypes | No | Comma-separated campaign type filters. Allowed values are sponsoredProducts, sponsoredBrands, and sponsoredDisplay. | |
| targetingTypes | No | Comma-separated targeting type filters. Allowed values are auto and manual. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only safety profile, and the description adds real behavioral context beyond that: budget fields that must be surfaced (budget.currencyAmount with budget.currencyCode), the current->planned budget preview before confirmation, window-splitting rules, the 95-day cap, and the instruction not to average ratios across windows. The keyword-ranking-trend limits (90/31 days) are tangential to a campaign report and add noise rather than clarity.
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 is front-loaded, but the remainder is a dense single-block wall covering budget presentation, workflow handoffs, date windows, ratio recomputation, keyword trend limits, and scheduling exclusions. The 95-day rule and window-splitting algorithm are stated repeatedly, and the keyword-ranking paragraph does not belong in a campaign-report description.
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 the description covers the pieces an agent must get right: date-window construction, ratio recomputation across windows, and the budget display requirement. What it lacks is any guidance on reportType selection (summary vs. daily) and on when filters are unsupported (it says summary-only only indirectly).
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 limit, offset, states, filters, and date windows thoroughly. The description reinforces the filters directive with a worked example (ACoS > 35% becomes filters.metrics.acos.gt = 0.35), but that example is also present in the schema's filters description, so the added meaning is marginal — 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?
Opening sentence names a specific verb+resource ('Returns advertising campaign performance or daily campaign performance') and distinguishes summary vs. daily report types. It does not explicitly separate itself from the sibling query_advertising or query_advertising_ad_groups, which an agent might pick instead for adjacent 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 concrete usage direction: push supported attribute/metric conditions into filters on the first call, paginate only the filtered result, and never fetch unfiltered pages for local filtering. It also names the downstream tools (AD_CAMPAIGN_CHANGE, AD_AD_GROUP_CREATE) this result feeds, but never states when a different query tool should be used instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_advertising_negative_targetsQuery advertising negative targetsARead-onlyInspect
Returns paginated negative keyword or negative ASIN management records with stable IDs, state, serving status, match details, parent campaign/ad group references, and Amazon createdAt/updatedAt timestamps as UTC ISO-8601 instants. Historical ENABLED, PAUSED, and ARCHIVED states remain queryable. Results can proceed to AD_TARGETING_CHANGE to re-enable legacy PAUSED entities or archive PAUSED/ENABLED entities; PAUSED is not a writable target state, ARCHIVED is terminal, and negative targeting entities do not support bid actions or performance metrics.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | No | Negative ASIN filter. Only valid for targetType negativeAsin. | |
| limit | No | Maximum number of items to return. Defaults to 100 and cannot exceed 100. | |
| offset | No | Zero-based pagination offset. | |
| states | No | Negative target states. Omit to return all states. | |
| storeId | Yes | Store ID from the Stores API, formatted as sellerId:marketplaceId. | |
| adGroupIds | No | Up to 100 ad group IDs. | |
| targetType | Yes | Negative target type. negativeKeyword returns campaign/ad-group negative keywords; negativeAsin returns ad-group negative ASIN exclusions. | |
| campaignIds | No | Up to 100 campaign IDs. Combined with campaignName using AND. | |
| keywordText | No | Negative-keyword text substring. Only valid for targetType negativeKeyword. | |
| campaignName | No | Campaign-name substring filter. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe read, and the description adds genuine behavioral context: historical ENABLED/PAUSED/ARCHIVED states remain queryable, PAUSED is not a writable target state, ARCHIVED is terminal, and negative targets support neither bids nor performance metrics. These are non-obvious constraints an agent cannot infer from the schema or 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?
Two dense sentences, front-loaded with what is returned before the state/downstream constraints. The field enumeration is somewhat verbose given an output schema exists, but nothing is 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 annotations, full schema coverage, and an output schema present, the description covers the remaining burden — state lifecycle, mutability constraints, and downstream workflow. An agent has everything needed to select and 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 all ten parameters (storeId format, limit cap, targetType semantics, asin/keywordText validity constraints) are already documented in the schema. The description adds no parameter-level syntax or filtering detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (returns paginated negative keyword / negative ASIN records) and enumerates the fields returned, so an agent can distinguish it from query_advertising_targets (positive targets) without opening either schema. The closing note that negative targeting entities lack bid actions and performance metrics further separates it from sibling targeting 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 gives clear downstream context — results feed AD_TARGETING_CHANGE to re-enable PAUSED or archive PAUSED/ENABLED entities, with PAUSED not writable and ARCHIVED terminal. It does not explicitly name when to prefer this over query_advertising_targets or how to choose negativeKeyword vs negativeAsin beyond the schema, so no exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_advertising_portfoliosQuery advertising portfoliosARead-onlyInspect
Returns current Amazon Ads portfolios with stable portfolio IDs, names, states, serving status, budget policy and amount, budget dates, in-budget status, and Amazon createdAt/updatedAt timestamps as UTC ISO-8601 instants. This management query does not return performance metrics.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Portfolio-name substring filter. | |
| limit | No | Maximum number of items to return. Defaults to 100 and cannot exceed 100. | |
| offset | No | Zero-based pagination offset. | |
| states | No | Portfolio states. Omit to return all states present in synchronized data. | |
| storeId | Yes | Store ID from the Stores API, formatted as sellerId:marketplaceId. | |
| portfolioIds | No | Portfolio IDs limiting the result. Omit to return all portfolios. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 goes beyond them by disclosing the exact returned attributes, that IDs are stable, that timestamps are UTC ISO-8601 instants, and that no performance metrics are returned — genuinely useful behavioral context 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?
Two tight sentences, front-loaded with what is returned and immediately followed by the exclusion that matters most for query selection. No filler and nothing that restates 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?
With a full input schema, full annotations, and an output schema, the remaining burden on the description is small, and it correctly covers scope and the metrics exclusion. The gap is routing guidance against the crowded query_advertising_* family, which would make this a complete definition.
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 (name, limit, offset, states, storeId, portfolioIds) carries its own documented semantics including the 100-item cap and the sellerId:marketplaceId store format. The description adds nothing about parameters, 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 gives a specific verb and resource ("Returns current Amazon Ads portfolios") and enumerates the exact fields returned, so an agent knows precisely what this tool produces. It also names a scope boundary ("management query ... does not return performance metrics"). It stops short of distinguishing itself from the many query_advertising_* siblings (campaigns, ad groups, targets), so it lands at 4 rather than 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 a single negative scoping hint ("does not return performance metrics"), but no statement of when to choose this over query_advertising_campaigns or the other query siblings, and no mention of the required storeId prerequisite or the synchronized-data caveat. An agent must infer selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_advertising_purchased_productsQuery advertising purchased productsARead-onlyInspect
Returns purchased product performance attributed to advertised products. MCP reporting and workflow metric date ranges use yyyy-MM-dd and include both startDate and endDate, with at most 95 calendar days per range. For longer read-only reports, split into non-overlapping windows: endDate = startDate plus 94 days, capped at the requested end date; the next startDate is the previous endDate plus 1 day. Apply the same limit independently to comparison ranges. Do not average ratios such as ACOS or ROAS across windows; recompute them from summed base metrics. Do not automatically split advertising write plans or metric-based selectors; obtain a supported analysis window from the user. Keyword ranking trends have separate limits: DAILY supports up to 90 inclusive days and RAW up to 31 inclusive days. For keyword ranking trends, use these interval-specific limits when splitting read-only reports. This reporting limit does not apply to campaign scheduling dates.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of items to return. Defaults to 100 and cannot exceed 100. | |
| offset | No | Zero-based pagination offset. | |
| sortBy | No | Advertising performance sort field. | |
| values | No | Optional identifiers for the selected dimension. | |
| endDate | Yes | End business date in yyyy-MM-dd format. Date range is inclusive and can contain at most 95 days. For longer read-only reports, use non-overlapping windows of up to 95 days. | |
| storeId | Yes | Store ID from the Stores API, formatted as sellerId:marketplaceId. | |
| dimension | No | Query dimension. | |
| sortOrder | No | Sort order. | |
| startDate | Yes | Start business date in yyyy-MM-dd format. Date range is inclusive and can contain at most 95 days. For longer read-only reports, use non-overlapping windows of up to 95 days. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With read-only annotations already covering safety, the description adds substantial behavioral context: the 95-day range limit, non-overlapping window splitting rules, ratio recomputation guidance, and exclusions for write plans and keyword ranking trends. It does not contradict the annotations, though some added guidance applies to adjacent tools rather than this query directly.
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 is front-loaded in the first sentence, but the description is long and includes instructions about keyword ranking trends and write plans that are not directly relevant to this read-only purchased-products query. The date-window guidance is useful, but the overall text is not tightly scoped to the 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 complete input schema, output schema, and read-only annotations, the description supplies enough context for correct date-window handling and ratio interpretation. The main missing piece is explicit guidance on when this tool should be used versus neighboring advertising query 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 schema already documents all parameters including dates, pagination, sorting, dimension, and values. The description reinforces date-range semantics but adds limited parameter-specific meaning 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 first sentence gives a clear verb and resource: returns purchased product performance attributed to advertised products. It does not explicitly distinguish this report from sibling advertising queries such as query_advertising or query_advertising_targets, so it is clear but not fully sibling-differentiated.
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 operational usage rules for date windows and splitting read-only reports, but it does not clearly say when to choose this tool over other advertising reporting siblings. Usage is implied by the reporting context rather than explicitly contrasted with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_advertising_search_termsQuery advertising search termsARead-onlyInspect
Returns product-scoped buyer search term performance or product-ASIN search term performance. When a manual AD_STRUCTURE_CREATE draft has productAds but lacks positive targeting, use dimension=sku|asin|parentAsin with values to find evidence-backed keyword or product-target candidates. Sort by adOrders, adSales, or roas to surface historical performers. The returned average CPC can be presented as a historical bid reference, but it is not an Amazon suggested bid. Show the supporting metrics and obtain customer approval before adding any candidate or bid to the draft. MCP reporting and workflow metric date ranges use yyyy-MM-dd and include both startDate and endDate, with at most 95 calendar days per range. For longer read-only reports, split into non-overlapping windows: endDate = startDate plus 94 days, capped at the requested end date; the next startDate is the previous endDate plus 1 day. Apply the same limit independently to comparison ranges. Do not average ratios such as ACOS or ROAS across windows; recompute them from summed base metrics. Do not automatically split advertising write plans or metric-based selectors; obtain a supported analysis window from the user. Keyword ranking trends have separate limits: DAILY supports up to 90 inclusive days and RAW up to 31 inclusive days. For keyword ranking trends, use these interval-specific limits when splitting read-only reports. This reporting limit does not apply to campaign scheduling dates.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of items to return. Defaults to 100 and cannot exceed 100. | |
| offset | No | Zero-based pagination offset. | |
| sortBy | No | Advertising performance sort field. | |
| values | No | Optional identifiers for the selected dimension. | |
| endDate | Yes | End business date in yyyy-MM-dd format. Date range is inclusive and can contain at most 95 days. For longer read-only reports, use non-overlapping windows of up to 95 days. | |
| storeId | Yes | Store ID from the Stores API, formatted as sellerId:marketplaceId. | |
| dimension | No | Query dimension. | |
| searchKey | No | Optional buyer search term text. | |
| sortOrder | No | Sort order. | |
| startDate | Yes | Start business date in yyyy-MM-dd format. Date range is inclusive and can contain at most 95 days. For longer read-only reports, use non-overlapping windows of up to 95 days. | |
| resultType | No | Search term result type. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only/non-destructive, and the description adds genuinely new behavioral context: average CPC is a historical reference and not an Amazon suggested bid, ratios must be recomputed from summed base metrics rather than averaged, and customer approval is required before mutating the draft. These are non-obvious operational constraints that materially change how an agent should use the output.
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 usage guidance are correctly front-loaded, but the second half is bloated: the 95-day window and non-overlapping-window splitting rules largely restate the startDate/endDate schema descriptions, and the passage about keyword ranking trend limits (DAILY 90 days / RAW 31 days) belongs to a different tool and is noise here.
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 query with an output schema and full annotation coverage, the description supplies what is needed to call it correctly: date-range constraints, dimension/values pairing, sorting guidance, and the bid-reference caveat. The misplaced keyword-ranking-trend text adds confusion but does not create a functional gap.
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 usage meaning the schema does not: which dimension/values combinations to combine for candidate discovery and which sortBy fields (adOrders, adSales, roas) surface historical performers. It does not explain searchKey/resultType interplay, so it is above baseline but not exhaustive.
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 and disambiguates the two return modes: "Returns product-scoped buyer search term performance or product-ASIN search term performance." Combined with the schema's dimension/resultType enums, an agent can tell exactly what this does versus siblings like query_aba_search_terms or query_advertising_targets.
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 triggering scenario (a manual AD_STRUCTURE_CREATE draft with productAds but no positive targeting) and a concrete recipe using dimension=sku|asin|parentAsin with values. It also states the approval gate before adding candidates. It stops short of naming an alternative sibling or an explicit when-not-to-use case, so it falls just below the top band.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_advertising_target_recommendationsQuery advertising target recommendationsARead-onlyInspect
Read-only POST that returns Amazon-recommended keyword or ASIN targeting candidates before targeting entities are created. Supply exactly one source: adGroupId, or asins with adProduct. With adGroupId, the server resolves Campaign, advertising product, advertised ASINs, Sponsored Brands creative context, and Sponsored Display tactic from synchronized data. Sponsored Products supports KEYWORD and TARGET recommendations, Sponsored Brands supports KEYWORD and TARGET recommendations, and Sponsored Display supports TARGET recommendations only. Sponsored Display ASIN product recommendations require tactic T00020 because Amazon v3.3 does not support PRODUCT recommendations for T00030. TARGET currently means recommended ASIN product targets; category, brand, and audience recommendations are not included. Sponsored Products and Sponsored Brands TARGET responses can return nextToken for the next page. Pass that token back unchanged while keeping the original recommendation context. If Amazon rate-limits any page, the server does not retry and returns HTTP 429 with code TOO_MANY_REQUESTS; retain previously received items and retry only the failed page with the same nextToken. Each returned targeting object can be copied into a candidate bid-recommendation item together with the created adGroupId and targetingType, then used to create the selected target. This operation does not create or update advertising entities. Recommendations are retrieved from the Amazon Ads recommendation APIs using the authorized advertising profile and supplied context. Returned candidates are not limited to targeting entities already present in the user's advertising account. Use this tool first when the customer has not selected targeting candidates, then pass selected targeting objects to query_advertising_bid_recommendations before creation.
| Name | Required | Description | Default |
|---|---|---|---|
| asins | No | Advertised ASIN recommendation context; mutually exclusive with adGroupId. | |
| locale | No | Optional Amazon recommendation locale, for example en_US. | |
| tactic | No | Required only for ASIN-based Sponsored Display recommendations. Amazon v3.3 PRODUCT recommendations support T00020 only. | |
| storeId | Yes | Store ID from the Stores API, formatted as sellerId:marketplaceId. | |
| adGroupId | No | Existing ad group recommendation context; mutually exclusive with asins. | |
| adProduct | No | Required with asins and omitted with adGroupId. | |
| nextToken | No | Pagination token from a previous Sponsored Products or Sponsored Brands TARGET response. Pass it back unchanged with the same recommendation context; after a page-level TOO_MANY_REQUESTS error, retry only that page using the same token. | |
| maxResults | No | Maximum normalized candidates, default 100. | |
| targetingType | Yes | Recommend keywords or ASIN product targets. Sponsored Display supports TARGET only. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Although annotations already establish read-only, non-destructive, open-world behavior, the description adds substantial operational context: no create/update side effects, Amazon API dependency, rate-limit behavior with HTTP 429 and TOO_MANY_REQUESTS, no retry on rate limit, and instructions to retain prior items and retry only the failed page with the same nextToken.
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 front-loaded with the core read-only POST purpose and the key source-selection rule. It is necessarily detailed for a complex recommendation workflow, though a few sentences, such as the general note about retrieval from Amazon Ads recommendation APIs, are somewhat redundant with earlier context.
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?
The tool has an output schema, rich annotations, and 100% schema description coverage, so the description does not need to explain return values in detail. It still covers the critical disambiguation, supported recommendation modes, pagination/rate-limit behavior, and workflow handoff to bid recommendations, making it complete 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 description coverage is 100%, so the schema already documents all nine parameters. The description adds useful semantic constraints beyond the schema, especially the exactly-one-source rule, the relationship between adGroupId and server-resolved context, adProduct coupling with asins, and the T00020 limitation for Sponsored Display ASIN product recommendations.
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: read-only retrieval of Amazon-recommended keyword or ASIN targeting candidates before targeting entities are created. It clearly distinguishes this tool from sibling tools such as query_advertising_targets, query_advertising_bid_recommendations, and the apply/prepare targeting tools by framing it as the recommendation-discovery step.
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 sequencing: use this tool first when the customer has not selected targeting candidates, then pass selected targeting objects to query_advertising_bid_recommendations before creation. It also states the exactly-one-source rule and the ad-product-specific supported recommendation types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_advertising_targetsQuery advertising targetsARead-onlyInspect
Queries advertising keyword, explicit ASIN, product-category, automatic theme, or keyword-group theme target performance, including current targets with zero traffic in the date range. Product-scoped historical keyword or explicit-ASIN results can provide evidence for targeting candidates when a manual AD_STRUCTURE_CREATE draft lacks positive targeting. Average CPC is a historical bid reference, not an Amazon suggested bid; show supporting metrics and obtain customer approval before reusing a target or bid. dimension/values provide product scope; filters enables store-level target attribute and aggregated metric search and cannot be combined with product scope. When the user specifies a supported attribute or metric condition, pass it through filters in the first call; do not retrieve unfiltered pages and filter locally. Paginate only the filtered result. Query results can proceed to AD_TARGETING_CHANGE for bid or ENABLED/PAUSED state changes. Enabled and paused positive Targets can change bids without enabling them first; archived entities are not writable. MCP reporting and workflow metric date ranges use yyyy-MM-dd and include both startDate and endDate, with at most 95 calendar days per range. For longer read-only reports, split into non-overlapping windows: endDate = startDate plus 94 days, capped at the requested end date; the next startDate is the previous endDate plus 1 day. Apply the same limit independently to comparison ranges. Do not average ratios such as ACOS or ROAS across windows; recompute them from summed base metrics. Do not automatically split advertising write plans or metric-based selectors; obtain a supported analysis window from the user. Keyword ranking trends have separate limits: DAILY supports up to 90 inclusive days and RAW up to 31 inclusive days. For keyword ranking trends, use these interval-specific limits when splitting read-only reports. This reporting limit does not apply to campaign scheduling dates.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of items to return. Defaults to 100 and cannot exceed 100. | |
| offset | No | Zero-based pagination offset. | |
| sortBy | No | Advertising performance sort field. | |
| values | No | Optional product scope values for historical targeting candidate lookup. Do not combine with filters. | |
| endDate | Yes | End business date in yyyy-MM-dd format. Date range is inclusive and can contain at most 95 days. For longer read-only reports, use non-overlapping windows of up to 95 days. | |
| filters | No | Store-level target attribute and aggregated metric filters. When the user supplies a supported condition, use filters in the first request instead of scanning unfiltered pages; paginate only the filtered response. Do not combine with dimension or values. | |
| storeId | Yes | Store ID from the Stores API, formatted as sellerId:marketplaceId. | |
| dimension | No | Optional product scope dimension for historical targeting candidate lookup. Do not combine with filters. | |
| searchKey | No | Optional target search text. | |
| sortOrder | No | Sort order. | |
| startDate | Yes | Start business date in yyyy-MM-dd format. Date range is inclusive and can contain at most 95 days. For longer read-only reports, use non-overlapping windows of up to 95 days. | |
| targetType | Yes | Target report type. asinTarget includes explicit ASIN targets, product-category targets, automatic targeting themes, and keyword-group themes. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description is free to add the operational context that matters: zero-traffic targets are still returned, archived entities are not writable, enabled/paused positives can change bids without re-enabling, and average CPC is a historical reference rather than an Amazon suggested bid requiring customer approval. These are real behavioral traits not derivable from the schema or 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?
The purpose and scope are correctly front-loaded, but a large trailing block restates date-window mechanics (yyyy-MM-dd, 95 days, endDate = startDate + 94, comparison ranges) that the startDate/endDate schema descriptions already carry verbatim. The keyword-ranking-vs-reporting limit split and the 'do not average ratios' rule are useful, but the section is long enough that the actionable routing guidance is diluted.
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 are covered elsewhere; given that, the description supplies everything an agent needs to call it correctly — required date format and window limits, pagination-plus-filter interaction, scope exclusivity, and the follow-up write tool. Nothing material is left for the agent to guess.
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 earns an extra point by explaining the semantic relationship the schema cannot express — that dimension/values define product scope while filters define store-level scope, and that the two are mutually exclusive. It also clarifies that filters combine after aggregation and that metric predicates belong in filters.metrics on the first request, reinforcing the deprecation path 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?
The description opens with a specific verb and resource ('Queries advertising keyword, explicit ASIN, product-category, automatic theme, or keyword-group theme target performance') and enumerates exactly which target types are covered, including zero-traffic ones. This makes it distinguishable from query_advertising (account-level performance) and query_advertising_negative_targets 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 gives concrete routing rules: use filters for store-level attribute/metric conditions on the first call rather than scanning pages, use dimension/values only for product-scoped historical candidate lookup, and never combine the two. It also states the downstream path to AD_TARGETING_CHANGE and the 95-day windowing procedure. It stops short of naming sibling alternatives (e.g. query_advertising_target_recommendations) for the 'suggest me a target' case, so the agent must infer that boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_asin_search_termsQuery asin search termsARead-onlyInspect
Look up natural search terms for a marketplace ASIN. The ASIN may be a variation parent, child, or standalone product; callers do not need to know its type. For a parent, returns child ASINs and each child's available search-term count; ask which child the user means, then call this same tool for that child. For a child or standalone ASIN, SUMMARY (default) returns the first 100 terms in PC order; FULL returns the complete available list. If the user explicitly requests all terms, use FULL on the first call for the selected child. naturalIdx is this ASIN's natural rank; searchFrequencyRank is the keyword's ABA weekly search rank. searchVolume is weekly search volume. This tool does not return advertising bids or keyword trends; use an ABA tool for a selected keyword's weekly trend. If variation lookup is unavailable, variationType is UNKNOWN, not a claim that the ASIN is standalone.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | Yes | The parent, child, or standalone ASIN provided by the user. | |
| detailLevel | No | SUMMARY returns the first 100 available terms; FULL returns the complete available term list. Applies to a child or standalone ASIN, not a parent selection result. | SUMMARY |
| marketplaceId | Yes | Marketplace ID: US ATVPDKIKX0DER, CA A2EUQ1WTGCTBG2, UK A1F83G8C2ARO7P, DE A1PA6795UKMFR9, FR A13V1IB3VIYZZH, IT APJ6JRA9NG5V4, ES A1RKKUPIHCS9HS, JP A1VC38T7YXB528. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a read-only, closed-world, non-destructive operation. Beyond that, the description discloses that SUMMARY returns the first 100 terms in PC order, FULL returns the complete list, that a parent lookup returns child ASINs and counts, and that variationType UNKNOWN means lookup was unavailable rather than the ASIN being standalone. It also defines what naturalIdx, searchFrequencyRank, and searchVolume mean, which the 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?
The description is front-loaded with purpose, then proceeds logically through ASIN-type handling, detail levels, field definitions, boundaries, and an edge case. It is dense but every sentence carries information; the only minor redundancy is defining output fields when an output schema exists.
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, the description needn't explain return structures, and it does not waste space doing so. It covers everything an agent needs to call correctly: required ASIN semantics, marketplace context, detail-level selection, the follow-up flow for parents, and the boundary against advertising/ABA trend 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 coverage is 100%, so baseline is 3, but the description adds meaning: the ASIN may be parent, child, or standalone and callers do not need to know the type, and it explains when to choose FULL on the first call versus defaulting to SUMMARY. The detailLevel enum is already documented in the schema, but the timing/behavior guidance is valuable 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?
States a specific verb and resource ('look up natural search terms for a marketplace ASIN') and implicitly separates itself from advertising search-term data by saying it does not return advertising bids or keyword trends. An agent can identify the tool's scope 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 explains how to handle parent vs child vs standalone ASINs, what to do after a parent result (ask the user which child, then call this same tool), when to use SUMMARY versus FULL, and where to go instead for keyword trends (an ABA tool). This is a complete decision tree for the caller.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_inventoryQuery inventoryARead-onlyInspect
Returns paginated inventory listing data for a single store. FBA-specific fields are populated only for AFN inventory and are null for MFN inventory when not applicable.
| Name | Required | Description | Default |
|---|---|---|---|
| skus | No | Comma-separated SKU filters, up to 100 values. Omit to include all SKUs. | |
| asins | No | Comma-separated ASIN filters, up to 100 values. Omit to include all ASINs. | |
| limit | No | Maximum number of items to return. Defaults to 100 and cannot exceed 100. | |
| offset | No | Zero-based pagination offset. | |
| storeId | Yes | Store ID from the Stores API, formatted as sellerId:marketplaceId. | |
| salesChannel | No | Optional inventory fulfillment channel filter. Allowed values are AFN and MFN. Omit to include all channels. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare this as a safe read-only operation. The description adds useful behavioral context beyond annotations: results are paginated and FBA-specific fields are populated only for AFN inventory and null for MFN when not applicable.
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 two tightly written sentences with zero waste. The core behavior is front-loaded, and the second sentence adds a specific, relevant caveat about FBA fields.
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?
The tool has a rich input schema, full parameter descriptions, annotations, and an output schema, so the description need not explain return values or every parameter. It adequately covers pagination and AFN/MFN field behavior, though it could mention when to prefer sibling tools like query_inventory_alerts.
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 parameters are already well documented. The description adds a small amount of meaning by explaining AFN/MFN-specific null behavior, which relates to the salesChannel filter, but it does not add syntax or filtering details 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 states a specific verb and resource: returns paginated inventory listing data. It also scopes the operation to a single store, which helps distinguish it from broader or alert-oriented siblings, but it does not explicitly differentiate it from query_inventory_alerts or inventory_risk_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 implies that this tool retrieves inventory listing data, but it provides no explicit when-to-use guidance, exclusions, or alternative tools. An agent must infer that query_inventory_alerts should be used for alerts and inventory_risk_review for risk analysis.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_inventory_alertsQuery inventory alertsCRead-onlyInspect
Returns low stock, excess stock, long-term storage, or recommended removal inventory alerts.
| Name | Required | Description | Default |
|---|---|---|---|
| skus | No | Comma-separated SKU filters, up to 100 values. Omit to include all SKUs. | |
| asins | No | Comma-separated ASIN filters, up to 100 values. Omit to include all ASINs. | |
| limit | No | Maximum number of items to return. Defaults to 100 and cannot exceed 100. | |
| offset | No | Zero-based pagination offset. | |
| storeId | Yes | Store ID from the Stores API, formatted as sellerId:marketplaceId. | |
| alertType | Yes | Inventory alert type. | |
| restockType | No | Optional AFN restock type filter. | |
| salesChannel | No | Optional inventory fulfillment channel filter. Allowed values are AFN and MFN. Omit to include all channels. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 fully covered by structured data. The description adds nothing beyond the enum values already present in the schema — no note on the 100-result cap, pagination behavior, or how alert severity/ordering is determined.
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 zero waste, but it is arguably under-specified rather than genuinely concise — the space saved is not used for any discriminating context.
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?
Eight parameters, an output schema, and full annotation and schema coverage mean much of the burden is carried elsewhere. Still, for a tool this wide (filters by SKU, ASIN, channel, restock type, pagination), the description omits any framing of scope or result semantics, leaving the agent to rely wholly on structured fields.
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 clear per-parameter text including the sellerId:marketplaceId format and the 100-value/100-result limits, so the schema does the work. The description only echoes the alertType values and contributes no additional meaning. 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') and resource ('inventory alerts') and enumerates the four alert categories, which lets an agent map directly to alertType. It does not explicitly distinguish itself from close siblings like query_inventory or inventory_risk_review, so the differentiation is only implicit in the word 'alerts'.
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 guidance on when to use this instead of query_inventory or inventory_risk_review, and no mention that storeId and alertType are required scoping inputs. The only usage signal is the type enumeration, which the agent must infer as a routing rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_keyword_rank_trackersQuery keyword rank trackersARead-onlyInspect
One trackingScope per request: PARENT (default) uses parentAsin and tracks the family; CHILD uses asin and tracks only that exact variation, excluding siblings. The server resolves its parent. For tracker lists use parentAsins with PARENT or asins with CHILD. Query, ADD, RESUME, REMOVE and SET_COMPETITORS must preserve the same scope and target. Both OWN_PRODUCT and independent COMPETITOR support CHILD. For OWN_PRODUCT associations, PARENT competitorAsins are parent/standalone ASINs while CHILD competitorAsins are exact variation ASINs. includeCompetitors compares the same scope. Account capabilities and notices are returned even for empty results. Check advertisingRankTracking before interpreting advertising ranks or offering advertising tracking. False means unsupported, not a missing match; never promise advertising ranks or silently substitute organic tracking for an explicit advertising-rank request. This applies to own products, independent competitors, and associated competitors. Returns keyword rank tracking configuration across authorized stores. Groups top-level items by storeId and the selected tracking target with nested keywords, and may include PENDING_KEYWORDS parents. Each tracking record has a stable trackingId and its own ACTIVE or PAUSED state. PAUSED means the system stopped tracking due to package expiry or restrictions; it is not a customer pause action. Restore it with RESUME only when package access and quota permit. Returns all matching configuration without pagination. Product title and imageUrl are included when available. Latest rankings are not included; use query_keyword_rank_trends with storeId, parentAsin and keywords to retrieve rankings. This tool does not return Search Volume or calculate rank changes. Query query_account_usages with resources=[KEYWORD_RANK_TRACKING_KEYWORDS] for account quota; list counts are not quota usage. One product type per request: OWN_PRODUCT (default) or independent COMPETITOR. Call separately for each type; ALL and mixed selections are not supported. Competitors share account-wide marketplace/keyword quota with owned products. To create tracking use prepare_keyword_rank_tracking_creation; to resume or archive existing keywords use prepare_keyword_rank_tracking_changes; to replace associated competitors use prepare_keyword_rank_competitor_replacement. Follow each published schema and obtain explicit customer confirmation before its matching apply tool. Preserve the returned trackingScope: PARENT uses parentAsin; CHILD uses asin. Never substitute the parent when a customer requests one child.
| Name | Required | Description | Default |
|---|---|---|---|
| asins | No | Optional exact child ASIN filters for CHILD only; omit parentAsins. | |
| states | No | Optional keyword tracking states. Accepts PENDING_KEYWORDS, ACTIVE, and PAUSED and includes all three when omitted. REMOVED is internal and unavailable. | |
| keywords | No | Optional exact tracked keyword filters, up to 20. Multiple values use OR; different filter fields use AND. | |
| storeIds | No | Optional store IDs in sellerId:marketplaceId format, up to 100. Omit to query all active authorized stores. Every returned item includes storeId. | |
| searchText | No | Optional case-insensitive search. Matches exact parent/child ASIN or a keyword substring within tracked configurations. Search does not match listing titles. Product title and imageUrl are added for matched trackers; ranking history is not queried. | |
| parentAsins | No | Optional exact tracked parent ASIN filters, up to 100. For PARENT only; CHILD uses asins instead. | |
| productType | No | One product type per request: OWN_PRODUCT (default) or independent COMPETITOR. Call separately for each type; ALL and mixed selections are not supported. Competitors share account-wide marketplace/keyword quota with owned products. | OWN_PRODUCT |
| trackingScope | No | PARENT (default) tracks a parent family using parentAsin. CHILD tracks only the specified variation using asin; omit parentAsin. Never silently substitute a parent or sibling. Applies to OWN_PRODUCT and independent COMPETITOR. SET_COMPETITORS supports both scopes for OWN_PRODUCT: parent/standalone competitors for PARENT, exact child competitors for CHILD. | PARENT |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Rich disclosure beyond the readOnlyHint/non-destructive annotations: PAUSED means system-stopped due to package expiry, not a customer pause; RESUME is conditional on package access; account capabilities and notices return even for empty results; no pagination; advertisingRankTracking=false means unsupported and must not be substituted with organic ranks. The deduction is for spending several sentences on ADD/RESUME/REMOVE/SET_COMPETITORS rules that do not apply to this read-only tool, which can leave an agent unsure what this tool itself performs.
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 ("Returns keyword rank tracking configuration...") appears roughly 40% into a ~350-word block, behind a scope rule that is then restated three more times, including "Never substitute the parent when a customer requests one child" at both the opening and the close. Material unrelated to a read-only query (ADD/REMOVE/SET_COMPETITORS guidance) consumes budget that matches would be better spent elsewhere.
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, yet the description still covers the things an agent must know to call it correctly: empty-result behavior, PENDING_KEYWORDS parents, stable trackingId with independent ACTIVE/PAUSED state, quota sharing between competitors and owned products, and the advertising-rank caveat. Nothing needed for a correct call 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, but the description adds relational meaning the schema does not spell out: parentAsins pairs with PARENT and asins with CHILD (never both), and for OWN_PRODUCT associations PARENT competitorAsins are parent/standalone ASINs while CHILD ones are exact variations. The repeated "one product type per request" rule is useful only because it clarifies that ALL/mixed selections are rejected.
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 keyword rank tracking configuration across authorized stores") and defines the grouping model (by storeId and selected tracking target, with nested keywords). It clearly distinguishes itself from query_keyword_rank_trends for rankings and from prepare_* siblings for creation/changes.
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: use query_keyword_rank_trends for latest rankings, query_account_usages for quota, prepare_keyword_rank_tracking_creation/changes/competitor_replacement for mutations. It also states exclusions (no Search Volume, no rank changes, no rankings), which is exactly the when-not guidance an agent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_keyword_rank_trendsQuery keyword rank trendsARead-onlyInspect
One trackingScope per request: PARENT (default) uses parentAsin and tracks the family; CHILD uses asin and tracks only that exact variation, excluding siblings. The server resolves its parent. For tracker lists use parentAsins with PARENT or asins with CHILD. Query, ADD, RESUME, REMOVE and SET_COMPETITORS must preserve the same scope and target. Both OWN_PRODUCT and independent COMPETITOR support CHILD. For OWN_PRODUCT associations, PARENT competitorAsins are parent/standalone ASINs while CHILD competitorAsins are exact variation ASINs. includeCompetitors compares the same scope. Account capabilities and notices are returned even for empty results. Check advertisingRankTracking before interpreting advertising ranks or offering advertising tracking. False means unsupported, not a missing match; never promise advertising ranks or silently substitute organic tracking for an explicit advertising-rank request. This applies to own products, independent competitors, and associated competitors. First discover tracked products and keywords with query_keyword_rank_trackers (all matching configuration is returned without pagination). For DAILY, provide one storeId, one scope-specific ASIN and 1 to 10 exact tracked keywords, plus startDate/endDate (up to 90 inclusive marketplace-local days). All requested daily points return in one response; there is no offset/limit pagination. Split more than 10 keywords into separate requests. Each day keeps the last actual observation; absent days are not synthesized. Equal-time ties use child ASIN descending, current source first, then ID descending, not best rank. RAW uses the same storeId and scope-specific ASIN with exactly one keyword, supports 31 inclusive days, and uses offset and limit (default and maximum 100) over observation points; increase offset by limit until fewer than limit points are returned. RAW preserves distinct child ASINs and prefers current records over archived copies. One product type per request: OWN_PRODUCT (default) or independent COMPETITOR. Call separately for each type; ALL and mixed selections are not supported. Competitors share account-wide marketplace/keyword quota with owned products. MCP reporting and workflow metric date ranges use yyyy-MM-dd and include both startDate and endDate, with at most 95 calendar days per range. For longer read-only reports, split into non-overlapping windows: endDate = startDate plus 94 days, capped at the requested end date; the next startDate is the previous endDate plus 1 day. Apply the same limit independently to comparison ranges. Do not average ratios such as ACOS or ROAS across windows; recompute them from summed base metrics. Do not automatically split advertising write plans or metric-based selectors; obtain a supported analysis window from the user. Keyword ranking trends have separate limits: DAILY supports up to 90 inclusive days and RAW up to 31 inclusive days. For keyword ranking trends, use these interval-specific limits when splitting read-only reports. This reporting limit does not apply to campaign scheduling dates.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | No | Required exact child ASIN for CHILD; omit parentAsin. | |
| limit | No | RAW only: maximum observation points per page, default and maximum 100. Does not limit DAILY results. | |
| offset | No | RAW only: zero-based observation offset. DAILY requires 0. | |
| endDate | Yes | Required inclusive end date in yyyy-MM-dd, interpreted in each store's marketplace time zone. | |
| storeId | Yes | One authorized store ID in sellerId:marketplaceId format. | |
| interval | No | Trend resolution. DAILY keeps the final stored observation in each marketplace-local day, up to 90 inclusive days. Ties use child ASIN descending, current source first, then ID descending. RAW reads one product keyword over up to 31 inclusive days, with offset/limit pagination over observation points. Increase offset by limit; stop when fewer than limit points are returned. | DAILY |
| keywords | Yes | Exact tracked keywords for this product: DAILY 1 to 10, RAW exactly one. DAILY returns the full requested history without pagination. | |
| startDate | Yes | Required inclusive start date in yyyy-MM-dd, interpreted in each store's marketplace time zone. | |
| parentAsin | No | The selected product's tracked parent ASIN. | |
| productType | No | One product type per request: OWN_PRODUCT (default) or independent COMPETITOR. Call separately for each type; ALL and mixed selections are not supported. Competitors share account-wide marketplace/keyword quota with owned products. | OWN_PRODUCT |
| trackingScope | No | PARENT (default) tracks a parent family using parentAsin. CHILD tracks only the specified variation using asin; omit parentAsin. Never silently substitute a parent or sibling. Applies to OWN_PRODUCT and independent COMPETITOR. SET_COMPETITORS supports both scopes for OWN_PRODUCT: parent/standalone competitors for PARENT, exact child competitors for CHILD. | PARENT |
| includeCompetitors | No | Include currently associated competitors' stored histories for the same keyword and trackingScope. OWN_PRODUCT + DAILY only, exactly one keyword, at most 31 inclusive days and 10 associated competitors. PARENT compares parent families; CHILD compares exact associated variations. Compare observedAt before comparing ranks; empty points mean no stored history. This is not independent COMPETITOR tracking. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond readOnlyHint/destructiveHint/openWorldHint, the description adds substantial operational behavior: empty-result account notices, quota sharing, no DAILY pagination, RAW offset/limit pagination, tie-breaking rules, absence of synthesized days, and advertising-rank fallback semantics. It meaningfully reduces ambiguity about what the server will and will not return.
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 extremely long and dense, with repeated date-window and DAILY/RAW limitations across several paragraphs. It is not front-loaded around the tool's core operation, and multiple sentences repeat constraints already stated elsewhere in the description or 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?
Given 12 parameters, complex scope/date/pagination rules, annotations, and an output schema, the description is complete enough for correct invocation. It covers the major edge cases, limits, exclusions, and advertising-rank caveat, even though it is overlong.
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 most parameter definitions; the description mainly reinforces those. It still adds useful cross-parameter semantics, especially scope-preservation across operations, productType separation, parent-vs-child competitorAsin meaning, and includeCompetitors' narrow OWN_PRODUCT+DAILY constraints.
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 identifies keyword ranking trends and clearly separates the tool from query_keyword_rank_trackers by pointing to that sibling for discovery. It explains the DAILY vs RAW modes and scope behavior, but it opens with detailed constraints rather than a concise statement of the tool's core purpose.
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 rules: discover trackers with query_keyword_rank_trackers first, choose DAILY for up to 10 keywords and 90 days, RAW for one keyword and 31 days, and call separately per productType. It also names exclusions such as ALL/mixed selections and clarifies how to interpret advertising-rank capability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_profitQuery profitARead-onlyInspect
Returns store-level profit summaries or paginated profit data by SKU, ASIN, or parent ASIN for a single store and business date range. MCP reporting and workflow metric date ranges use yyyy-MM-dd and include both startDate and endDate, with at most 95 calendar days per range. For longer read-only reports, split into non-overlapping windows: endDate = startDate plus 94 days, capped at the requested end date; the next startDate is the previous endDate plus 1 day. Apply the same limit independently to comparison ranges. Do not average ratios such as ACOS or ROAS across windows; recompute them from summed base metrics. Do not automatically split advertising write plans or metric-based selectors; obtain a supported analysis window from the user. Keyword ranking trends have separate limits: DAILY supports up to 90 inclusive days and RAW up to 31 inclusive days. For keyword ranking trends, use these interval-specific limits when splitting read-only reports. This reporting limit does not apply to campaign scheduling dates.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of items to return. Defaults to 100 and cannot exceed 100. | |
| offset | No | Zero-based pagination offset. | |
| sortBy | No | Profit sort field. | |
| values | No | Optional identifiers for the selected dimension. | |
| endDate | Yes | End business date in yyyy-MM-dd format. Date range is inclusive and can contain at most 95 days. For longer read-only reports, use non-overlapping windows of up to 95 days. | |
| storeId | Yes | Store ID from the Stores API, formatted as sellerId:marketplaceId. | |
| dimension | No | Query dimension. | |
| sortOrder | No | Sort order. | |
| startDate | Yes | Start business date in yyyy-MM-dd format. Date range is inclusive and can contain at most 95 days. For longer read-only reports, use non-overlapping windows of up to 95 days. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 constraints beyond them, namely the inclusive 95-calendar-day cap, the 100-item pagination ceiling implied elsewhere, and the rule to recompute ratios from summed base metrics rather than averaging. This is useful operational context an agent would otherwise get wrong. It does not describe output shape, but 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?
The purpose is front-loaded in a single strong sentence, but roughly half the text is dedicated to keyword-ranking-trend and campaign-scheduling limits that are irrelevant to this tool and inflate the definition. Sentences like 'This reporting limit does not apply to campaign scheduling dates' spend tokens without helping the caller. The useful window-splitting rule could be stated in one sentence instead of several.
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 input schema, an output schema, and read-only annotations, the definition covers the remaining gap, namely the hard 95-day window limit and the ratio-recomputation rule, which are the mistakes an agent would realistically make. Nothing essential about calling the tool is missing. It loses a point for padding with rules belonging to adjacent tools rather than fully owning its own scope.
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 including storeId format, date formats, dimension enum, and limit/offset are already fully documented in the schema. The description adds only indirect meaning by naming the supported granularities (SKU, ASIN, parent ASIN, store level), which maps loosely to the dimension enum. Baseline 3 applies 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 opening sentence gives a specific verb and resource: store-level profit summaries or paginated profit data by SKU, ASIN, or parent ASIN, scoped to one store and a date range. It is clearly a read/reporting tool distinct from diagnose_profit_anomaly or query_sales, though it never names those siblings to reinforce the distinction. The remainder of the description drifts into date-window policy rather than reinforcing what the tool returns.
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 real usage guidance for splitting long ranges into non-overlapping windows and an explicit prohibition against averaging ratios like ACOS/ROAS across windows. However, several guidelines (keyword ranking trends at 90/31 days, campaign scheduling dates, advertising write plans) belong to other sibling tools and do not help an agent decide when to use query_profit. The guidance is contextual but unfocused for this specific tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_review_ratingsQuery review ratingsARead-onlyInspect
Returns paginated rating data for parent ASINs that have review tracking enabled in a single store. Parent ASINs without review tracking or rating data are omitted from the response.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of items to return. Defaults to 100 and cannot exceed 100. | |
| offset | No | Zero-based pagination offset. | |
| storeId | Yes | Store ID from the Stores API, formatted as sellerId:marketplaceId. | |
| parentAsins | No | Comma-separated parent ASIN filters, up to 100 values. Omit to include all tracked parent ASINs. Values without review tracking or rating data are omitted from the response. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, non-destructive, closed-world behavior, so the safety profile is covered. The description usefully adds behavioral context that annotations cannot: results are paginated and ASINs lacking tracking or rating data are silently omitted, which prevents the agent from misreading an empty/short result set.
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 compact sentences with no waste, and the core scope (single store, tracked parent ASINs) is front-loaded before the omission caveat. 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 formatting needn't be explained. Combined with full schema coverage and the omission behavior noted, the description gives enough for correct invocation, though the absence of usage guidance leaves a small gap.
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 four parameters (limit, offset, storeId, parentAsins) are fully documented in the schema. The description adds no parameter-level detail beyond what the schema already provides, 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 ('Returns') and resource ('paginated rating data for parent ASINs') with clear scope constraints (review tracking enabled, single store). An agent knows exactly what this yields, though it never explicitly contrasts itself with sibling query tools like query_keyword_rank_trackers or query_asin_search_terms.
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 explains what comes back but offers no guidance on when to reach for this tool versus its many siblings, nor any prerequisites beyond the implicit store scope. Usage is inferable from the resource but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_salesQuery salesBRead-onlyInspect
Returns sales summaries, daily sales summaries, SKU sales, or daily SKU sales for a business date range. The range is inclusive and each request may contain at most 95 calendar days. When splitting a longer range, set endDate to startDate plus 94 days, then start the next range at the previous endDate plus 1 day; a 95-day difference between startDate and endDate would contain 96 inclusive days and is invalid. MCP reporting and workflow metric date ranges use yyyy-MM-dd and include both startDate and endDate, with at most 95 calendar days per range. For longer read-only reports, split into non-overlapping windows: endDate = startDate plus 94 days, capped at the requested end date; the next startDate is the previous endDate plus 1 day. Apply the same limit independently to comparison ranges. Do not average ratios such as ACOS or ROAS across windows; recompute them from summed base metrics. Do not automatically split advertising write plans or metric-based selectors; obtain a supported analysis window from the user. Keyword ranking trends have separate limits: DAILY supports up to 90 inclusive days and RAW up to 31 inclusive days. For keyword ranking trends, use these interval-specific limits when splitting read-only reports. This reporting limit does not apply to campaign scheduling dates.
| Name | Required | Description | Default |
|---|---|---|---|
| skus | No | Optional SKU filters. | |
| limit | No | Maximum number of items to return. Defaults to 100 and cannot exceed 100. | |
| offset | No | Zero-based pagination offset. | |
| sortBy | No | Sales sort field. | |
| endDate | Yes | End business date in yyyy-MM-dd format. Date range is inclusive and can contain at most 95 days. For longer read-only reports, use non-overlapping windows of up to 95 days. | |
| storeIds | No | Optional store IDs from the Stores API, each formatted as sellerId:marketplaceId. | |
| sortOrder | No | Sort order. | |
| startDate | Yes | Start business date in yyyy-MM-dd format. Date range is inclusive and can contain at most 95 days. For longer read-only reports, use non-overlapping windows of up to 95 days. | |
| reportType | No | Report type. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 bar is low. The description still earns credit for disclosing the hard 95-day inclusive limit, the off-by-one trap (94-day delta), and the analytic constraint not to average ratios like ACOS/ROAS but recompute from summed base metrics.
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 95-day / non-overlapping-window rule is restated three separate times ('each request may contain at most 95 calendar days', 'MCP reporting and workflow metric date ranges... at most 95 calendar days per range', 'For longer read-only reports, split into non-overlapping windows'), which crowds out front-loaded guidance on what the reports contain and when to use them.
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?
Date-window constraints are covered exhaustively and an output schema exists, so return values need not be explained. But for a 9-parameter, 4-report-type analytics tool that sits beside several other sales/order/traffic queries, it says nothing about what distinguishes summary vs dailySummary vs sku output or why an agent would choose it over its 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 documents every parameter, including startDate/endDate semantics and the limit cap. The description adds only the ratio-recomputation caveat relevant to reportType choice, not meaning for skus, storeIds, sortBy, or offset; 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 and enumerates the four report types that map to reportType. However, it never distinguishes itself from close siblings like query_sales_orders, query_sales_traffic, or query_profit, so an agent must infer which 'sales' tool to pick.
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?
Nearly all guidance is about date-window math rather than tool selection; the one implicit routing cue is the note that keyword ranking trends have separate limits (pointing at query_keyword_rank_trends). No explicit statement of when to prefer this over query_sales_orders or query_sales_traffic, and no prerequisites or exclusions for its own use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_sales_ordersQuery sales ordersARead-onlyInspect
Returns one store's sales orders with all order items in descending purchase time. Uses a UTC start-inclusive, end-exclusive window of at most 31 days. Excludes canceled, non-Amazon and replacement orders. SKU and promotion filters select whole orders. The time window always filters purchasedAt (order purchase time), never refund or return event time. REFUND means the order currently has a refund flag in the latest synchronized data; it does not necessarily mean a full refund or a physical return. An order purchased in July and refunded in September matches a July purchase window with REFUND, but not a September purchase window. Historical results may change after later refunds are synchronized. This endpoint cannot answer which refunds or returns occurred during a period. Amounts may be estimated; amounts after promotion are not settlement proceeds. Missing prices or order currency produce null amounts. Use this endpoint for individual orders and their items; use Sales reports for aggregated sales metrics and Profit reports for profit, refunds and costs. Order amount sums are not guaranteed to reconcile with report sales or netSales. Returns no total count. Offset pagination is not a snapshot; deduplicate by storeId and orderId when collecting changing data.
| Name | Required | Description | Default |
|---|---|---|---|
| skus | No | Exact seller SKUs, at most 100. Any matching item selects the whole order; all order items are returned. | |
| endAt | Yes | Exclusive purchase time in UTC yyyy-MM-dd'T'HH:mm:ss'Z' format. Must be after startAt and at most 31 days later. Applies to purchasedAt even when statuses includes REFUND; not a refund or return time boundary. | |
| limit | No | Maximum number of items to return. Defaults to 100 and cannot exceed 100. | |
| offset | No | Zero-based pagination offset. | |
| startAt | Yes | Inclusive purchase time in UTC yyyy-MM-dd'T'HH:mm:ss'Z' format, for example 2024-04-05T23:30:00Z. Whole seconds only. Applies to purchasedAt even when statuses includes REFUND; not a refund or return time boundary. | |
| storeId | Yes | Store ID from the Stores API, formatted as sellerId:marketplaceId. | |
| orderIds | No | Exact order IDs, at most 100. The purchase time window still applies. | |
| statuses | No | Optional business statuses: PENDING, UNSHIPPED, SHIPPED, REFUND. Leave empty for all visible statuses. UNSHIPPED applies to merchant fulfillment. The time window always filters purchasedAt (order purchase time), never refund or return event time. REFUND means the order currently has a refund flag in the latest synchronized data; it does not necessarily mean a full refund or a physical return. An order purchased in July and refunded in September matches a July purchase window with REFUND, but not a September purchase window. Historical results may change after later refunds are synchronized. This endpoint cannot answer which refunds or returns occurred during a period. | |
| fulfillmentChannel | No | Optional fulfillment channel: AFN (Amazon) or MFN (merchant). Leave empty to include both. | |
| hasPromotionDiscount | No | Optional true or false. True selects orders with any nonzero recorded item promotion discount; false selects orders without such items. This does not indicate promotion campaign membership. SKU and discount filters are evaluated independently across all items in an order. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond readOnly/destructive annotations by disclosing exclusions (canceled, non-Amazon, replacement orders), the exact time-window semantics, the REFUND caveat, historical mutability, estimated amounts, nullable amounts, absence of a total count, and non-snapshot offset 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?
Although dense, it is front-loaded with the core behavior and structured around scope, time semantics, exclusions, limitations, and alternatives. Every sentence carries operational meaning for calling or interpreting the tool correctly.
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 ten parameters, an output schema, annotations, and sibling tools, the description supplies everything an agent needs: selection scope, exclusion rules, time interpretation, refund limitations, amount caveats, pagination behavior, and sibling routing.
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, but the description adds cross-cutting meaning: SKU and promotion filters select whole orders, the window always applies to purchasedAt rather than refund/return events, and the filters are evaluated independently. Those clarifications add genuine value 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 precise verb and resource: returns one store's sales orders with all order items. It explicitly distinguishes this from Sales reports and Profit reports, so an agent can select it over siblings 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 guidance on when to use this tool (individual orders and items) versus Sales reports (aggregated metrics) and Profit reports (profit, refunds, costs). It also states the important limitation that this endpoint cannot answer which refunds or returns occurred during a period.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_sales_trafficQuery sales trafficARead-onlyInspect
Returns sales traffic summaries or paginated sales traffic metrics by ASIN or parent ASIN for a single store and business date range. MCP reporting and workflow metric date ranges use yyyy-MM-dd and include both startDate and endDate, with at most 95 calendar days per range. For longer read-only reports, split into non-overlapping windows: endDate = startDate plus 94 days, capped at the requested end date; the next startDate is the previous endDate plus 1 day. Apply the same limit independently to comparison ranges. Do not average ratios such as ACOS or ROAS across windows; recompute them from summed base metrics. Do not automatically split advertising write plans or metric-based selectors; obtain a supported analysis window from the user. Keyword ranking trends have separate limits: DAILY supports up to 90 inclusive days and RAW up to 31 inclusive days. For keyword ranking trends, use these interval-specific limits when splitting read-only reports. This reporting limit does not apply to campaign scheduling dates.
| Name | Required | Description | Default |
|---|---|---|---|
| asins | No | Comma-separated ASIN filters, up to 100 values. Omit to include all ASINs. | |
| limit | No | Maximum number of items to return. Defaults to 100 and cannot exceed 100. | |
| offset | No | Zero-based pagination offset. | |
| sortBy | No | Sales traffic sort field. | |
| endDate | Yes | End business date in yyyy-MM-dd format. Date range is inclusive and can contain at most 95 days. For longer read-only reports, use non-overlapping windows of up to 95 days. | |
| storeId | Yes | Store ID from the Stores API, formatted as sellerId:marketplaceId. | |
| sortOrder | No | Sort order. | |
| startDate | Yes | Start business date in yyyy-MM-dd format. Date range is inclusive and can contain at most 95 days. For longer read-only reports, use non-overlapping windows of up to 95 days. | |
| reportType | No | Report type. | |
| parentAsins | No | Comma-separated parent ASIN filters, up to 100 values. Omit to include all parent ASINs. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Consistent with readOnlyHint=true and destructiveHint=false, and it goes well beyond the annotations: the 95-inclusive-day cap, the exact split algorithm (endDate = startDate + 94, next startDate = previous endDate + 1), the rule that ratios like ACOS/ROAS must be recomputed from summed base metrics rather than averaged, and that comparison ranges are limited independently. The only weakness is that some disclosed limits (keyword ranking DAILY/RAW caps, campaign scheduling dates) belong to sibling tools and dilute the 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?
The purpose is front-loaded in sentence one and the chunking algorithm is actionable, but the middle section is bloated with rules for tools other than this one — keyword ranking DAILY/RAW interval limits and campaign scheduling exclusions — which consume roughly a third of the text without affecting how this tool is called.
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 full schema coverage, an output schema, and read-only annotations, the description covers the one non-obvious operational constraint (date-window size and splitting) thoroughly. It is short only on how reportType selects between summary and row-level output, which is the main remaining ambiguity for an agent.
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 every parameter including the yyyy-MM-dd format and the 95-day inclusive range — the description largely restates this. It adds no meaning for reportType, whose six enum values (store, dailyStore, asin, parentAsin, dailyAsin, dailyParentAsin) determine the shape of the response and are never explained. 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 names a specific verb (Returns) and a specific resource (sales traffic summaries / paginated sales traffic metrics), scoped to ASIN or parent ASIN, one store, and a date range. That is enough to distinguish it from write-side siblings, but it never distinguishes it from the closest read siblings query_sales and query_sales_orders, which 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?
It gives real when/when-not guidance for the date dimension: split read-only reports into non-overlapping windows, but do not auto-split write plans or metric-based selectors — ask the user for a supported window. It gives no guidance at all on when to pick this tool over query_sales or query_sales_orders, so tool-selection guidance is only implied.
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.
61 tool updates
- First observed
apply_ad_group_changes - First observed
apply_ad_group_creation - First observed
apply_campaign_changes - First observed
apply_campaign_creation - First observed
apply_keyword_rank_competitor_replacement - First observed
apply_keyword_rank_tracking_changes - First observed
apply_keyword_rank_tracking_creation - First observed
apply_product_ad_changes - First observed
apply_product_ad_creation - First observed
apply_targeting_changes - First observed
apply_targeting_creation - First observed
cancel_workflow_plan - First observed
confirm_workflow_plan - First observed
continue_workflow_draft - First observed
diagnose_ad_efficiency - First observed
diagnose_profit_anomaly - First observed
diagnose_sales_change - First observed
discover_capabilities - First observed
get_current_user - First observed
get_workflow_draft - First observed
get_workflow_plan - First observed
inventory_risk_review - First observed
list_inbound_shipment_items - First observed
list_inbound_shipments - First observed
list_stores - First observed
prepare_ad_group_changes - First observed
prepare_ad_group_creation - First observed
prepare_campaign_changes - First observed
prepare_campaign_creation - First observed
prepare_keyword_rank_competitor_replacement - First observed
prepare_keyword_rank_tracking_changes - First observed
prepare_keyword_rank_tracking_creation - First observed
prepare_product_ad_changes - First observed
prepare_product_ad_creation - First observed
prepare_targeting_changes - First observed
prepare_targeting_creation - First observed
prepare_workflow_draft - First observed
query_aba_search_term_trends - First observed
query_aba_search_terms - First observed
query_account_usages - First observed
query_advertising - First observed
query_advertising_ad_groups - First observed
query_advertising_ads - First observed
query_advertising_bid_recommendations - First observed
query_advertising_campaigns - First observed
query_advertising_negative_targets - First observed
query_advertising_portfolios - First observed
query_advertising_purchased_products - First observed
query_advertising_search_terms - First observed
query_advertising_target_recommendations - First observed
query_advertising_targets - First observed
query_asin_search_terms - First observed
query_inventory - First observed
query_inventory_alerts - First observed
query_keyword_rank_trackers - First observed
query_keyword_rank_trends - First observed
query_profit - First observed
query_review_ratings - First observed
query_sales - First observed
query_sales_orders - First observed
query_sales_traffic
Publisher details
- Operator
- TAPCASH INC. · Publisher source
- Operator website
- https://www.tool4seller.com
- Vendor relationship
- First-party
- Documentation
- Unknown
- Trust center
- Unknown
- Restrictions
- Authentication required: OAuth sign-in (via ChatGPT plugin / Claude connector), or an MCP Key sent in the TS-MCP-KEY header (key issued inside tool4seller).
Related MCP Servers
- AlicenseNot gradedqualityBmaintenancePerplexity for social: ask what competitors are running across social and get answers grounded in real ad and creative data, not guesses.2Apache 2.0
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs119 npm54 PyPIMIT
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.164 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.