AMZ Vault
Server Details
Connects Amazon Seller Central and Amazon Advertising to any MCP client. Settlement-accurate P&L - every fee, refund and reimbursement as Amazon posted it - plus contribution margin and breakeven per product, per marketplace, per day. Full Sponsored Products, Brands and Display management: search terms, placements, keyword and competitor research, dayparting, automation rules. 107 tools: 72 read-only, 29 that stage a reviewable diff for your approval, and 6 confirmation/support actions. Write tools stage a reviewable diff; applying it takes a separate confirmation.
- Status
- Healthy
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
104 toolsaccount_feedbackAccount: Feedback & supportAInspect
Feedback & support channel to the AMZ Vault team (NOT an Amazon write): action=submit opens a thread (subject, body, category bug|idea|question|other), action=list shows this account's threads WITH team replies, action=reply (thread_id, body) continues one. Use when the user reports a problem with AMZ Vault itself, is missing data the tools should have, or wants to send the team an idea. Replies from the team appear in the thread (action=list) and on the web at /feedback. To let support view the account, see account_support_access. Email alternative: support@amz-vault.com.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | submit/reply: the message | |
| action | Yes | ||
| status | No | list: filter by status | |
| subject | No | submit: short summary | |
| category | No | ||
| thread_id | No | reply: which thread (see action=list) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide readOnlyHint=false and destructiveHint=false; the description adds meaningful behavioral context: submit opens a thread, list shows threads with team replies, reply continues a thread, and replies surface both in list results and on the web at /feedback. It also clarifies that this is not an Amazon write. It stops short of describing auth expectations or failure/error behavior, but the core side effects are transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place: purpose and action modes first, when-to-use second, follow-up visibility third, support access fourth, and email alternative last. It is well-structured and front-loaded, avoiding fluff while covering all necessary 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 multi-action communication tool with no output schema and limited annotations, the description covers action semantics, per-action parameters, result visibility, alternatives, and escalation paths. An agent has enough context to select the right mode, supply the correct fields, and know where replies will appear. Nothing critical 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 coverage is 67%, and the description adds valuable action-parameter grouping: submit maps to subject, body, and category; reply maps to thread_id and body; list shows account threads with team replies. This goes beyond the schema's individual field descriptions by explaining how parameters are used per action. Status filtering is left to the schema, but the description still carries meaningful semantic weight.
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 channel ('Feedback & support channel to the AMZ Vault team') and immediately clarifies it is NOT an Amazon write. It enumerates the three actions (submit, list, reply) with their exact effects, making the tool's purpose unambiguous and distinguishable from sibling tools like account_support_access.
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 explicit when-to-use conditions: use it when the user reports a problem with AMZ Vault itself, when data is missing, or when sending the team an idea. It also names an alternative tool (account_support_access) and an email fallback, so an agent knows exactly when this tool is appropriate and when to route elsewhere.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_health_checkAccount: Connection health check (super-admin)ARead-onlyInspect
Per-connection onboarding + sync health across ALL tenants (SUPER-ADMIN ONLY). Answers "is that new sign-up's data actually flowing?": per core dataset (orders, settlements, MCF shipments, sales & traffic, inventory) the last sync time/status/error and whether it is stale for its cadence, plus a per-connection verdict (ok | attention | error), auto-sync state, and whether that user has ever connected an AI client. OPERATIONAL ONLY - carries no revenue, units, margins, ASINs or emails. Params: user_id, seller_connection_id, new_within_days (e.g. 7 to triage just this week's sign-ups).
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | No | Only this user's connections | |
| new_within_days | No | Only connections created in the last N days (1-90) | |
| seller_connection_id | No | Only this connection |
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 complements this by clarifying the access restriction, cross-tenant scope, and the exact set of returned insights: per-dataset sync time/status/error, staleness, connection verdicts, auto-sync state, and AI client connection history. No contradiction with 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 description is dense but well front-loaded with the core purpose and scope. Every clause contributes meaningful information, including usage constraints and parameter guidance. It is somewhat long, but the density justifies the length.
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 there is no output schema, the description does a good job enumerating what the tool returns and what it excludes. It covers access level, scope, operational nature, and parameter intent. Minor omissions like pagination or empty-result behavior are not critical for selecting and calling this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds a useful example for new_within_days and lists the parameter names, but it does not substantially deepen the meaning of user_id or seller_connection_id 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 clearly identifies the tool's function: a per-connection health check for onboarding and sync status across all tenants. It states the specific question it answers, the datasets involved, and the output verdicts. It also distinguishes itself from financial/reporting siblings by explicitly saying it carries no revenue, units, margins, ASINs, or emails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives strong context: it is super-admin only, operational only, and suitable for triaging recent sign-ups via new_within_days with an example. It implies when not to use it by excluding non-operational data, though it does not name specific alternative sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_management_guideManagement: decision framework guideARead-onlyInspect
The operator's brand & PPC decision framework: margin spine (PPD + margin bands), product postures, campaign structure/bidding, harvesting/negation logic, guardrails and decision triggers. CALL THIS before analyzing an account or proposing ANY optimization (bids, budgets, negatives, harvest, campaigns, pricing) and follow it as the default operating model; pass section= (see toc) for a focused read.
| Name | Required | Description | Default |
|---|---|---|---|
| section | No | Optional: one section instead of the full guide (toc always included). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context beyond annotations: the tool returns a framework guide, always includes a toc, and supports section-specific reads. This helps the agent know what kind of response to expect even without an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: content list first, then the critical call-to-action, then the parameter usage hint. Every sentence earns its place with no vague filler or repetition of schema details. It is dense but immediately scannable.
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 one-parameter, read-only reference guide with no output schema, the description is complete: it states what the guide covers, when to use it, that a toc is always included, and how to request a single section. An agent has enough context to select the tool and invoke it correctly without further investigation.
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 the single optional section parameter fully described via enum and description, so the baseline is 3. The description adds value by explaining the intended usage of the parameter: 'pass section= (see toc) for a focused read.' This tells the agent why and when to use the parameter, not just what it is.
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 identifies the tool as the operator's brand & PPC decision framework and enumerates its specific contents: margin spine, product postures, campaign structure/bidding, harvesting/negation logic, guardrails, and decision triggers. This distinguishes it from the many data-query and staging tools among its siblings. The imperative 'CALL THIS' makes its role as a decision guide unmistakable.
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 explicit, highly actionable usage guidance: call this before analyzing an account or proposing ANY optimization, covering bids, budgets, negatives, harvest, campaigns, and pricing. It also frames the tool as the 'default operating model,' making the priority clear. The section= hint adds a focused-use path rather than requiring a full read every time.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_notice_draftAccount: Queue notice draft (admin)AInspect
Queue a one-off notice email to a user for admin review (ADMIN-ONLY). Only QUEUES a draft — nothing is emailed until the admin reviews it on the Send Notice screen and clicks Send there. Use after an ops-review finding that warrants proactive user outreach: pass the recipient user_id, a subject, and a plain-text body (blank line = new paragraph; the greeting is added automatically). bell=true also raises an in-app notification when sent.
| Name | Required | Description | Default |
|---|---|---|---|
| bell | No | Also send an in-app bell notification on send | |
| body | Yes | Plain text; blank line = new paragraph | |
| subject | Yes | ||
| user_id | Yes | Recipient user id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses critical behavior beyond annotations: only the draft is queued, the actual email requires an admin action on the Send Notice screen, the greeting is auto-added, and bell=true triggers an in-app notification. It also flags admin-only usage. No contradiction with the annotations exists, and the disclosure materially changes how an agent should invoke and verify the operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences carry all essential information with no redundancy. The most important constraint (queue-only, admin-only) is front-loaded, followed by usage context and parameter guidance. Every sentence earns its place, making the description dense yet 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?
For a simple 4-parameter action with no output schema, the description covers purpose, when to use it, admin restrictions, the asynchronous send behavior, body format rules, and the optional bell flag. Nothing an agent needs to invoke it correctly is missing, and the absence of an output schema is acceptable because the operation is a fire-and-forget queue request.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 75% schema description coverage, the schema already documents user_id, body, and bell. The description adds value by clarifying body formatting ('blank line = new paragraph'), explaining the auto-added greeting, and explicitly defining bell's effect ('raises an in-app notification when sent'). It also names the undocumented subject parameter in context, partially compensating for that gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Queue a one-off notice email to a user for admin review (ADMIN-ONLY).' This clearly distinguishes it from read-only account tools like account_report or account_profiles and from other stage_* staging tools, while the parenthetical 'admin-only' further narrows its audience and 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?
The description states a clear trigger: 'Use after an ops-review finding that warrants proactive user outreach.' It also sets an explicit boundary by emphasizing this action only queues a draft and does not send, preventing misuse. It does not name alternative tools, but the provided context is sufficient to guide selection among many account and staging siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_ops_eventsAccount: Ops event feed (admin)ARead-onlyInspect
Operational health feed (ADMIN-ONLY): deduped errors / warnings / API-throttle events from the worker and web services with occurrence counts, plus failed SP-API sync runs and failed scheduled tasks. Use for "review the ops log" / troubleshooting sweeps. Params: hours (default 168 = 7d), level (error|warning|throttle), service (web|worker), q (search source/message).
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Substring filter on source/message | |
| hours | No | Lookback window in hours, 1-336 (default 168 = 7d) | |
| level | No | ||
| service | No | ||
| user_id | No | Only events recorded for this user |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context beyond annotations: the ADMIN-ONLY access restriction, deduplication behavior, occurrence counts, and the explicit inclusion of failed SP-API sync runs and scheduled tasks. It does not detail non-admin failure behavior or result limits, but the added context is genuinely useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but efficient: one sentence defines the content, one gives the use case, and one compresses all parameters into a single clause. Information is front-loaded (what it is, admin-only restriction before params). Slightly run-on, but every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description gives a reasonable hint at return shape via 'occurrence counts'. It covers filters, default lookback window, and source services. Gaps are minor: user_id is not mentioned in the prose summary, and there is no pagination or limit information. For a read-only feed tool with 5 optional params, this is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%, leaving level, service, and q without full semantic coverage. The description compensates by encoding the enum values ('level (error|warning|throttle), service (web|worker)') and clarifying q as 'search source/message'. It slightly duplicates the schema's hours default and omits user_id, but it adds meaning where ambiguity is highest.
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 resource and scope: an 'Operational health feed (ADMIN-ONLY)' that returns 'deduped errors / warnings / API-throttle events' with occurrence counts plus failed SP-API syncs and scheduled tasks. The specificity of content enumerated distinguishes it clearly from sibling tools like account_health_check and account_feedback.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use guidance: 'Use for "review the ops log" / troubleshooting sweeps', which tells an agent the exact user intent that should route to this tool. It does not name alternatives or state when-not-to-use-this, but the usage context is unambiguous enough to select correctly among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_profilesAccount: Ad profilesARead-onlyInspect
List the advertising profiles (PPC accounts) bridged to this token's seller connections.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it as readOnly and not destructive, so the safety profile is covered. The description adds the useful context that this is a listing operation over bridged connections, but it does not disclose what the returned data looks like or whether an empty result is possible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that states the action and scope with no filler. Every word 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?
Given the tool's simplicity (no params, no output schema, simple list operation), the description is largely complete. It explains what is listed and the relationship to seller connections, though it stops short of describing the fields or shape of each profile returned.
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?
The tool has zero parameters and 100% schema description coverage, so there are no parameters to explain. Per the baseline for param-less tools, the description is sufficient and does not need to compensate for any undocumented inputs.
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 uses a specific verb ('List') and names a precise resource: advertising profiles/PPC accounts that are bridged to seller connections. This clearly distinguishes it from siblings like account_sellers (which would list seller connections) and ppc_account_summary (which would summarize account performance).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the intended use clear: call this to see PPC accounts linked to the token's seller connections. However, it does not explicitly state when not to use it or name alternatives, so the agent must infer the boundary from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_reportP&L: Account report (canonical)ARead-onlyInspect
THE canonical account overview — ONE call: period cards + settlement waterfall + freshness caveats for the money datasets, with quote_rules. PREFER this for "how is the account doing" questions.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | No | ISO date; default today | |
| currency | No | ||
| date_from | No | ISO date; default 30d ago | |
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and non-destructive behavior. The description adds useful context beyond that: the report bundles period cards, settlement waterfall, freshness caveats, and quote_rules, and signals that it is a single consolidated call. This gives the agent a meaningful picture of what to expect.
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 compact and information-dense. It front-loads the canonical purpose, lists the key report contents, and closes with an explicit usage preference. Every clause earns its place without fluff.
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 report tool with no output schema, the description gives enough high-level content and usage context to guide invocation. It could be more complete by explaining quote_rules or the meaning of 'freshness caveats,' but overall the agent can infer the tool's role and 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?
The description provides no parameter-level guidance. Schema coverage is 75%, but the 'currency' parameter is undocumented and the description does not clarify it or add meaning to any parameter. The tool relies entirely on the input schema, which has a notable gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as the canonical account overview, listing its main components (period cards, settlement waterfall, freshness caveats, quote_rules). It is distinct from the many specialized pnl_* siblings by emphasizing 'ONE call' and the canonical status, though it does not explicitly name an alternative 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?
It gives explicit guidance to prefer this tool for 'how is the account doing' questions, which is a clear usage signal. However, it does not state when not to use it or explicitly compare against alternatives like pnl_breakdown or pnl_summary, so some inference remains.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_sellersAccount: Seller connectionsARead-onlyInspect
List the Amazon seller connections this token can access, with their marketplaces and currencies.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds meaningful context beyond those annotations by specifying that results are scoped to what 'this token can access' and by previewing the return payload (marketplaces and currencies), which is especially useful given there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. The verb and core constraint appear immediately, and every remaining phrase ('Amazon seller connections', 'this token can access', 'marketplaces and currencies') contributes essential 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 zero-parameter read-only listing tool, the description covers the essential behavior, access scoping, and the main output fields. It could be slightly more explicit about the exact return structure or pagination, but given the tool's simplicity and the readOnly/destructive annotations, it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so no parameter explanations are required; the baseline for 0-parameter tools is 4. The description's mention of marketplaces and currencies refers to the output, not parameters, and therefore does not need to compensate for any schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List'), a precise resource ('Amazon seller connections'), and the access scope ('this token can access'), plus the returned attributes (marketplaces and currencies). This clearly differentiates it from sibling account_* tools like account_profiles or account_report, which target different account data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use account_sellers versus alternatives such as account_profiles or account_feedback. There are no exclusions, preconditions, or scenario-based routing hints, leaving the agent to infer usage solely from the tool name and title.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_support_accessAccount: Support access (grant/revoke)ADestructiveInspect
Grant or revoke the AMZ Vault support team's READ-ONLY view of this account: action=grant lets support see what the user sees for 7 days (auto-expires, they can change nothing, and every view notifies the user); action=revoke turns it off immediately. This changes who can access the account, so it ALWAYS needs the user's explicit go-ahead — offer it only when support needs to see a problem first-hand (usually alongside an account_feedback thread).
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With only minimal annotations (readOnlyHint=false, openWorldHint=false), the description carries the full safety disclosure: support can see what the user sees but 'can change nothing,' access auto-expires after 7 days, every view notifies the user, and revoke takes effect immediately. It openly labels the operation as changing account access.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, with each clause adding a distinct fact: scope, auto-expiry, read-only, notifications, immediate revoke, user permission, and when to offer it. There is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter command tool with no output schema, the description is complete: it explains what the tool does, when to use it, the exact effect of each action, and the safety prerequisite. 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?
The schema has one parameter with 0% description coverage, so the description is the only source of parameter semantics. It explains both enum values in detail: action=grant enables 7-day expiring read-only access; action=revoke disables it immediately.
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 precise action and resource: 'Grant or revoke the AMZ Vault support team's READ-ONLY view of this account.' This clearly identifies the tool's function and distinguishes it from the many diagnostic and reporting siblings, while the mention of account_feedback reinforces that it is a separate access-control operation.
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 explicit when-to-use guidance: 'offer it only when support needs to see a problem first-hand' and notes it is 'usually alongside an account_feedback thread.' It also states a mandatory prerequisite: this 'ALWAYS needs the user's explicit go-ahead.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aplus_documentListing: A+ document (live read)ARead-onlyInspect
Fetch ONE A+ content document LIVE, including its full contentModuleList — the copy source for edits (the aplus_content dataset holds metadata only). List keys via data_query 'aplus_content'.
| Name | Required | Description | Default |
|---|---|---|---|
| marketplace_id | No | ||
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. | |
| content_reference_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds that the request is LIVE (not cached) and that the response includes the full contentModuleList, which is useful behavioral context 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?
Two dense sentences with zero filler. The core action is front-loaded, and the dash clearly separates the main purpose from the dataset distinction and key-listing tip.
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?
No output schema exists, so the description must carry the return-value explanation. It does so by promising 'full contentModuleList' and linking it to editing. It does not detail optional-parameter effects or error/pagination behavior, but for a single-document live read the description is nearly sufficient.
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 only 33% (only seller_connection_id has a schema description). The description partially compensates by explaining that content_reference_key values can be listed via data_query 'aplus_content', but it does not clarify marketplace_id or the key's exact format. Useful hint, but not complete param guidance.
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 ('Fetch'), a precise resource ('ONE A+ content document LIVE'), and deliberately contrasts it with the aplus_content dataset ('holds metadata only'). Also names a sibling tool (data_query) for listing keys, so an agent can tell them apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent to list keys via data_query 'aplus_content' and explains that the dataset contains metadata only — effectively saying 'use this tool when you need the full live document, use data_query only for keys/metadata.' This is clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automation_activityAutomation: Approval inboxARead-onlyInspect
THE approval inbox for V2 rule automation — the ONLY surface for pending automation approvals (MinMax/AOE/scheduled-task tools are separate systems, not this inbox). status=pending (default) means NOT yet approved/dismissed by a user: pending_approval (manual queue + AI escalations), pending_ai_review, shadow (AI Shadow Mode — AI applied NOTHING; needs your approve/dismiss) and ai_rejected (overridable). Rows carry approval_mode (manual|ai_review|ai_shadow|auto), rule owner, needs, undoable, and paginate with total_found/truncated/next_offset. scope=mine (default) shows only the calling user's rules; scope=all_users shows every user's. READ-ONLY: action=list. Approving/rejecting/undoing inbox items lives in stage_automation_review.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| limit | No | ||
| scope | No | 'mine' (default): only the calling user's own rules — the ownership boundary. 'all_users': every user's rules on this profile; rows carry owner and owned_by_you. | |
| action | Yes | Which read to run; every action is read-only and runs immediately. | |
| offset | No | ||
| params | No | Action-specific fields (see description). | |
| status | No | ||
| rule_id | No | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| include_full_reasoning | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavioral context beyond the readOnlyHint annotation: it defines what 'pending' means, breaks down the pending sub-statuses, clarifies that shadow mode means AI applied nothing, and discloses pagination fields and the mine/all_users ownership boundary. It also reinforces READ-ONLY semantics and clearly routes mutations to a sibling tool, with no contradiction against 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 description is dense but every sentence earns its place: the core purpose is front-loaded, status semantics are compactly enumerated, scope behavior is stated, and the read-only boundary and mutation alternative are explicit. The length is justified by the tool's complexity and the lack of an output 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?
For a complex 10-parameter tool with no output schema, the description covers purpose, statuses, scope, pagination, read-only behavior, and the mutation alternative. It is not fully complete because it omits details on mode filtering, rule_id, include_full_reasoning, and the params object, but an agent can correctly invoke the default list behavior and navigate the main decision points.
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?
The description adds meaningful semantics for the most important parameters: action=list, status values with their behavioral implications, scope ownership behavior, and pagination concepts. Given only 40% schema coverage, this helps substantially. However, it does not clarify mode, rule_id, include_full_reasoning, or the params object, so some parameter gaps remain.
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 identifies the tool as the approval inbox for V2 rule automation, the only surface for pending automation approvals, and explicitly limits it to read-only listing via action=list. It also distinguishes this tool from MinMax/AOE/scheduled-task systems and from stage_automation_review, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use the tool (list pending automation approvals, with status and scope semantics) and when not to use it: approving, rejecting, or undoing items belongs in stage_automation_review. It also calls out that MinMax/AOE/scheduled-task tools are separate systems, preventing cross-tool confusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automation_aoe_statusAutomation: Adaptive optimizerARead-onlyInspect
Adaptive Optimization Engine: per-campaign configs, modes, guardrails, and recent optimization cycles. NOT the automation approval inbox (automation_activity).
| Name | Required | Description | Default |
|---|---|---|---|
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, openWorldHint=false, and destructiveHint=false, covering the safety profile. The description adds some context about what data is included (configs, modes, guardrails, cycles) but does not disclose behavioral traits like return format, pagination, or freshness. With annotations covering the main behavioral concerns, a neutral 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, with the core resource and contents front-loaded in the first sentence, followed by a terse disambiguation sentence. Every word contributes to orientation or disambiguation, and there is no redundancy or padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only status tool with one optional parameter and no output schema, the description covers the essential scope and adds a critical disambiguation. It does not describe the response shape, but the listed contents (configs, modes, guardrails, cycles) give a reasonable expectation of what will be returned. Overall, it is complete enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single optional profile_id parameter, which already explains its meaning and optionality. The tool description adds no additional parameter semantics beyond what the schema provides, so the baseline score 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 clearly identifies the resource as the Adaptive Optimization Engine and lists its contents: per-campaign configs, modes, guardrails, and recent optimization cycles. It explicitly distinguishes itself from automation_activity, so an agent can tell them apart. However, it lacks a specific action verb like 'retrieve' or 'list', relying on the tool name 'status' to convey the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear when-not signal by stating 'NOT the automation approval inbox (automation_activity)', which prevents confusion with a key sibling. It does not explicitly state when to use this tool versus other automation siblings like automation_rules or automation_recent_tasks, but the phrase 'Adaptive Optimization Engine' implies the intended use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automation_daypartingAutomation: DaypartingARead-onlyInspect
Dayparting, READ-ONLY: action=list shows schedules + assignments (mutations live in stage_dayparting_schedule).
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Which read to run; every action is read-only and runs immediately. | |
| params | No | Action-specific fields (see description). | |
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and destructiveHint=false. The description adds that the list returns schedules and assignments and that mutations are handled elsewhere. This is sufficient for a simple read-only operation, though it does not go deep into output behavior or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence contains the tool's purpose, read-only nature, required action, and the sibling for mutations. Every word 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?
For a single-action read-only tool with readOnlyHint=true, this is nearly complete. The only gap is that action-specific params are referenced in the schema but never concretely specified in the description, though the 'list' action appears self-sufficient.
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 high and action/profile_id are already described in the schema. However, the params object says 'see description' while the tool description never enumerates action-specific fields. The description adds no real parameter-level 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 description states a specific verb ('shows'), a specific resource ('schedules + assignments'), and explicitly contrasts itself with the mutation sibling stage_dayparting_schedule. It is immediately clear what this tool does and what it does not do.
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 explicitly says READ-ONLY, specifies action=list for reads, and directs mutations to stage_dayparting_schedule. This gives the agent clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automation_minmax_resultsAutomation: MinMax analysesARead-onlyInspect
Recent MinMax budget-analysis runs: scope, top performers, campaigns running hot. NOT the automation approval inbox (that is automation_activity).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the temporal scope ('Recent') and the general result contents, but does not disclose details like ordering, default limits, or whether results are cached or live. It is adequate but not 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 short sentences, front-loaded with the core subject and contents, followed by a necessary exclusion. Every word earns its place with no 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?
For a read-only list tool with optional parameters, the description gives a good sense of what is returned, but the undocumented 'limit' parameter and absence of an output schema leave a meaningful gap. An agent knows the general purpose but not how to constrain or paginate results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% because the 'limit' parameter has no description, and the tool description does not clarify it. 'profile_id' is documented in the schema, but the description adds no parameter-level meaning. The agent is left to infer what 'limit' controls.
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 identifies the resource as 'Recent MinMax budget-analysis runs' and enumerates the type of data returned: scope, top performers, and campaigns running hot. The explicit 'NOT the automation approval inbox (that is automation_activity)' distinguishes it from the most likely sibling confusion.
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 explicitly tells the agent when this tool is appropriate — when recent MinMax budget-analysis results are needed — and directly warns against using it for the automation approval inbox, naming automation_activity as the correct alternative. This is clear routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automation_recent_tasksAutomation: Recent task runsBRead-onlyInspect
Get the list of scheduled automation tasks with their status, cadence, and last execution results.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max tasks to return. Default: 20. | |
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds that it returns status, cadence, and last execution results, but it does not clarify whether results are per scheduled task or per run, nor any recency window or ordering. This is adequate but not 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?
The description is a single efficient sentence with no filler. The verb and key result fields are front-loaded, making it easy to scan and act on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list call with two optional parameters, the description is mostly usable, but there is no output schema and the description does not specify the timeframe implied by 'recent' or whether each returned item represents a scheduled task or an individual run. This ambiguity weakens completeness for an agent choosing among similar automation 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 both limit and profile_id are already documented in the schema. The description adds no additional parameter-level meaning, which is acceptable given the high schema coverage.
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 uses a clear verb and resource: 'Get the list of scheduled automation tasks' with specific fields (status, cadence, last execution results). It is mostly distinguishable from siblings like automation_scheduled_tasks, though it does not explicitly clarify that this is about recent runs versus the task definitions themselves.
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 is provided on when to use this tool versus automation_scheduled_tasks, automation_activity, or other automation-related siblings. The only contextual hint is an optional profile_id referencing account_profiles, but there is no explicit when-to-use or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automation_rulesAutomation: RulesARead-onlyInspect
V2 rule-based automation, READ-ONLY: action=list|get|dry_run (mutations live in stage_automation_rule). Every rule has an approval_mode: manual (queue for user approval) | ai_review (AI approves/rejects, low-confidence escalates) | ai_shadow (AI analyzes, applies NOTHING) | auto (applies immediately; can only be set in the app, never from here). list scope=mine (default) shows only the calling user's rules; scope=all_users shows every user's (rows carry owner + owned_by_you). get/dry_run take rule_id; dry_run evaluates the rule without applying anything. describe returns the valid metric/operator/action-type catalog per entity level - ALWAYS check it before building conditions (unknown metrics are rejected at stage time).
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | 'mine' (default): only the calling user's own rules — the ownership boundary. 'all_users': every user's rules on this profile; rows carry owner and owned_by_you. | |
| action | Yes | Which read to run; every action is read-only and runs immediately. | |
| params | No | Action-specific fields (see description). | |
| rule_id | No | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and non-destructive, and the description reinforces this with explicit behavioral details: all actions are read-only, dry_run 'applies NOTHING', and auto mode 'can only be set in the app, never from here.' It also discloses approval_mode semantics and ownership visibility for list results, adding value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loaded with the most important fact (READ-ONLY) and every clause carries operational significance. It is longer than typical descriptions, but the approval_mode breakdown and scope/behavior explanations are necessary for correct invocation and not wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-action, nested-parameter tool with no output schema, the description covers the critical invocation concerns: action selection, scope semantics, rule_id usage, mutation boundary, and the mandatory describe step. It does not detail the exact output shape of get/dry_run, but that is not required to call 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 coverage is 80%, and the description adds meaningful semantics on top: it explains how scope filters results, that get/dry_run require rule_id, and that describe returns the valid metric/operator/action-type catalog. The params object and profile_id are not expanded in the description, but the schema already documents them, so the parameter layer is well supported.
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 clear, specific declaration: 'V2 rule-based automation, READ-ONLY' and enumerates the supported actions (list, get, dry_run, describe). It also differentiates itself from the mutation counterpart by naming stage_automation_rule, so an agent can immediately understand this tool's scope and resource.
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 explicitly states that mutations belong in stage_automation_rule, that describe should always be checked before building conditions, and that auto approval mode cannot be set from here. It also explains when to use list scopes and how dry_run differs from get, giving concrete routing and precondition guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automation_scheduled_tasksAutomation: Scheduled tasksARead-onlyInspect
Scheduled tasks: type, cadence, enabled state, last and next run times. NOT the automation approval inbox (that is automation_activity).
| Name | Required | Description | Default |
|---|---|---|---|
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is read-only and non-destructive, lowering the burden on the description. The description adds useful context by listing the exact data fields returned and clarifying what the tool is not about, without contradicting 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?
Two short sentences each earn their place: the first states the resource and its key fields, the second prevents confusion with a closely named sibling. The most important information is front-loaded with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one optional parameter and no output schema, the field list and sibling distinction provide adequate operational context. It could go slightly further by explicitly stating that it returns scheduled task configurations/status, but the current wording is sufficient for correct selection and 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%, and the only parameter, profile_id, is already fully explained in the schema, including its optionality and relation to account_profiles. The description adds no additional parameter-level detail, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (scheduled tasks) and enumerates the returned attributes: type, cadence, enabled state, and last/next run times. It also distinguishes itself from automation_activity, though it lacks an explicit verb such as 'list' or 'retrieve'.
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 explicitly rules out the automation approval inbox and points to automation_activity as the alternative, which helps prevent a common mis-selection. However, it does not address other schedule-related siblings like automation_recent_tasks or automation_rules, so guidance is partial rather than fully comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brand_market_basketBrand: Market basketBRead-onlyInspect
What customers buy together with each ASIN (bought-with pairs and combination shares).
| Name | Required | Description | Default |
|---|---|---|---|
| asin | No | ||
| limit | No | ||
| weeks | No | ||
| offset | No | ||
| period | No | ||
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, so the description does not need to cover safety. It adds that results contain 'bought-with pairs and combination shares,' but it does not disclose pagination behavior, how weeks/period affect results, or whether output is aggregated across sellers.
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 sentence with no filler. The core behavior and output type are front-loaded, and every word contributes 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 six parameters and no output schema, the description leaves too much unspecified: whether asin is required, what weeks or period mean, how limit/offset paginate, and what the returned data actually looks like. An agent could discover the tool but cannot confidently configure a correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 17% (only seller_connection_id has a description), so the description needed to compensate by explaining asin, limit, weeks, offset, and period. It only indirectly clarifies asin; the other parameters remain semantically undefined and must be guessed.
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 clear subject ('what customers buy together') and resource ('each ASIN'), and specifies the output concept ('bought-with pairs and combination shares'). It does not explicitly contrast sibling brand_* tools, but the market-basket idea is distinct enough for basic identification.
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 is provided on when to use this tool instead of alternatives like brand_repeat_purchase, brand_search_catalog, brand_sqp, or brand_top_search_terms. There are no conditions, prerequisites, or exclusions to help an agent choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brand_repeat_purchaseBrand: Repeat purchaseBRead-onlyInspect
Customer loyalty per ASIN: repeat buyer share and repeat revenue by week.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | No | ||
| limit | No | ||
| weeks | No | ||
| offset | No | ||
| period | No | ||
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful context about the metrics and ASIN-level scope, but it does not reveal behavior around omitted parameters, defaults, or that 'week' is only one of several supported periods.
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 compact sentence with no filler. Every phrase contributes meaning: scope, metric type, and time granularity are all 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?
Given six parameters, no required parameters, low schema coverage, and no output schema, the description is too thin. It does not clarify what happens when `asin` is omitted, how `weeks` relates to `period`, or how repeat purchase is operationally defined, leaving too much 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 description coverage is only 17%, and the description compensates for very little. It implies that `asin` is the grouping dimension and mentions weekly granularity, but it leaves `weeks`, `limit`, `offset`, and the full `period` enum unexplained, and it could even mislead by suggesting only weekly data when MONTH and QUARTER are allowed.
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 clear analytical focus: customer loyalty per ASIN, specifically repeat buyer share and repeat revenue by week. This is concrete enough to distinguish it from sibling brand tools such as brand_market_basket or brand_top_search_terms, though it lacks an explicit verb like 'returns' or 'reports'.
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 is given about when to use this tool versus alternatives. There is no mention of exclusions, prerequisites, or related brand tools, so an agent must infer usage from the title and metric names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brand_search_catalogBrand: Search catalog performanceBRead-onlyInspect
Per-ASIN search funnel totals across ALL queries (query-less SQP): impressions, clicks, cart adds, purchases, median prices.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | No | ||
| limit | No | ||
| weeks | No | ||
| offset | No | ||
| period | No | ||
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare the operation as read-only and non-destructive, covering the safety profile. The description adds useful aggregation context, such as per-ASIN grouping and all-query scope, but does not disclose pagination behavior, time-window handling, or response shape. This is acceptable but not especially rich behavioral 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 description is a single dense sentence that front-loads the core resource and scope, followed by the relevant metrics. There is no filler, and every phrase contributes to understanding what the tool returns.
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 six parameters, only 17% schema coverage, and no output schema, the description leaves important invocation details unstated, such as whether asin is required, how weeks and period interact, and what pagination controls do. It is sufficient for a default call but incomplete for confident, varied use.
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 of six parameters (seller_connection_id) has a schema description, so schema coverage is only 17%. The description hints that asin selects an ASIN and that no query filter applies, but it does not explain limit, weeks, offset, or period semantics. With such low schema coverage, the description should compensate more than it 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?
The description identifies a specific resource: per-ASIN search funnel totals, and enumerates the metrics returned (impressions, clicks, cart adds, purchases, median prices). The 'query-less SQP' note and 'across ALL queries' clarify its scope, though it lacks an explicit verb like 'returns' and does not name the sibling it differs from.
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 'across ALL queries (query-less SQP)' implies this tool should be used for aggregate, query-less analysis rather than query-level search performance, which helps distinguish it from brand_sqp. However, it does not explicitly state when to use this tool versus alternatives like brand_top_search_terms or brand_sqp, nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brand_sqpBrand: Search Query PerformanceARead-onlyInspect
Search Query Performance: organic search funnel per (ASIN, query) — impressions/clicks/cart-adds/purchases with shares. parent_rollup=true aggregates the product family. weeks counts back from the LATEST STORED week (data lags ~2 weeks); rows are newest-week first — page with offset until truncated=false to get the full multi-week window.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | No | ||
| limit | No | ||
| weeks | No | ||
| offset | No | ||
| period | No | ||
| aggregate | No | true = ONE row per (asin, query) summed across the whole window with shares recomputed — use for any multi-week analysis | |
| parent_rollup | No | ||
| query_contains | No | ||
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful behavioral traits beyond that: the ~2 week data lag, newest-week-first row ordering, the parent_rollup aggregation semantics, and the truncated=false termination condition for paging. This is meaningful operational context that an agent cannot infer from the annotations or schema 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?
Roughly 50 words carry a high density of information, with the core scope front-loaded ('organic search funnel per (ASIN, query) — impressions/clicks/cart-adds/purchases') before operational details. It is efficient, though it is structured as one long em-dash run-on sentence that slightly reduces scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only retrieval tool with no output schema, the description covers the essential envelope: data scope, metrics, aggregation mode, time-window semantics, data freshness, ordering, and the pagination loop. Remaining gaps are the interaction between weeks and the period enum, the expected format for asin, and semantics of the three undocumented parameters that appear to exist outside the visible properties.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 22% schema description coverage, the description carries a heavy burden and partially compensates: it explains weeks ('counts back from the LATEST STORED week'), parent_rollup ('aggregates the product family'), and offset (paging until truncated=false). But notable gaps remain: asin, limit, and period (WEEK/MONTH/QUARTER) get no semantic guidance, and the description's 'parent_rollup' naming does not obviously match the schema's 'aggregate' boolean, which could confuse tool selection.
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 specifies a precise resource ('organic search funnel per (ASIN, query)') and the exact metrics returned ('impressions/clicks/cart-adds/purchases with shares'), which clearly distinguishes it from sponsored-search siblings. The main shortfall is that the verb is implicit ('Search Query Performance' is a noun phrase rather than 'Retrieves…'), and no sibling tool is named, though the 'organic' qualifier does most of the differentiation work.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives strong how-to-use guidance: how weeks are counted ('counts back from the LATEST STORED week'), that data lags ~2 weeks, that rows are newest-week first, and the pagination recipe ('page with offset until truncated=false'). However, it never states when to prefer this tool over alternatives such as ppc_search_terms, ppc_query, or brand_top_search_terms, nor any exclusions — the usage context is implied by 'organic' rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brand_top_search_termsBrand: Top search termsARead-onlyInspect
Marketplace-wide top search terms with the top-3 clicked ASINs and their click/conversion shares. WEEK/MONTH rows read the shared full-marketplace store once populated (response carries store=global) — the complete term universe, not just this account's filtered slice.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| period | No | DAY rows exist from 2026-07 forward | |
| week_start_date | No | ||
| search_term_contains | No | ||
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds meaningful behavioral detail beyond annotations: WEEK/MONTH rows read the shared full-marketplace store once populated, and the response carries store=global. This is not derivable from the schema or annotations and helps set expectations about data scope.
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 sentences with the main output front-loaded and the scoping nuance second. It is mostly efficient, though phrases like 'shared full-marketplace store once populated' and 'response carries store=global' are slightly dense and could be simplified without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description only summarizes return values as ASINs and click/conversion shares. With six parameters, only one of which has schema-level documentation, the description leaves important call-construction details unclear, such as date formats, filter behavior, pagination semantics, and the role of seller_connection_id.
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 only 33%, and the description does not explain the meaning or usage of limit, offset, week_start_date, search_term_contains, or seller_connection_id. It adds some context about period behavior by distinguishing WEEK/MONTH from DAY rows, but it does not compensate for the low schema coverage across the other parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('marketplace-wide top search terms'), states the output contents ('top-3 clicked ASINs and their click/conversion shares'), and clearly distinguishes its scope from account-filtered alternatives with 'complete term universe, not just this account's filtered slice.' This makes it easy for an agent to recognize what this tool returns and how it differs from sibling search term 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?
The description provides clear context for when the tool is appropriate: it returns marketplace-wide data from the shared full-marketplace store, especially for WEEK/MONTH periods. It contrasts with 'not just this account's filtered slice,' helping an agent avoid account-level tools, but it does not explicitly name alternative tools or state precise when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_staged_changesChange: Cancel proposalAInspect
Cancel a pending proposal without executing it.
| Name | Required | Description | Default |
|---|---|---|---|
| proposal_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey that this is not read-only and not destructive. The description adds the useful nuance that the proposal is pending and will not be executed, though it does not disclose whether cancellation is reversible or what side effects occur.
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 sentence with no wasted words. The verb and object are front-loaded, and the 'without executing it' qualifier earns its place by preventing confusion with confirm_staged_changes.
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 one-parameter tool with annotations, the description is mostly sufficient: it names the action, the target, and the key non-execution constraint. It omits alternative routing and post-cancellation behavior, but these are minor gaps for a simple cancel operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only references 'a pending proposal' and never explains what proposal_id is, where it comes from, or any format expectations beyond the parameter name.
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 uses a specific verb ('Cancel') and a specific resource ('a pending proposal'), and adds the clarifying qualifier 'without executing it.' This distinguishes it from sibling tools like confirm_staged_changes that would apply the proposal instead.
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 use case is implied: an agent should call this when a pending proposal needs to be discarded. However, there is no explicit when-to-use guidance, no mention of confirm_staged_changes as the alternative for executing, and no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confirm_staged_changesChange: CONFIRM proposalADestructiveInspect
EXECUTE a pending proposal — call ONLY after you have rendered the full diff to the user as text (entities by name, current → proposed, reason) and they agreed. approved_summary must restate what they approved; it appears in the client's permission prompt, so a bare proposal_id is never shown alone. PARTIAL approval: when the user wants only SOME items, pass the rest as excluded_refs — same behavior as the dashboard's per-item checkboxes. Single-use; expires 60 minutes after propose.
| Name | Required | Description | Default |
|---|---|---|---|
| overrides | No | per-item VALUE edits the user chose while approving (e.g. bid 0.90 -> 1.16 to split the difference): ref from staged_changes_pending items, field = the staged value field (new_bid / new_budget / bid / a staged modifier), optional note = why, which is fed back to the staking seat as training signal. | |
| proposal_id | Yes | ||
| excluded_refs | No | refs of items the user chose to EXCLUDE (each staged item's `ref` from staged_changes_pending). Excluded items are dropped before execution and recorded on the proposal; excluding every item refuses — use cancel_staged_changes instead. State the kept/excluded split in approved_summary. | |
| approved_summary | Yes | 1-2 sentences restating exactly what the user approved — written for the user (it shows in their permission prompt), not the server |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this destructive, and the description adds meaningful behavior beyond that: it is single-use, expires 60 minutes after propose, and approved_summary is surfaced in the client's permission prompt. It does not elaborate on rollback or post-execution effects, but the annotations plus these details give a solid safety picture.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place: execution trigger, user-consent precondition, approval-summary requirement, partial-approval mechanism, and single-use/expiry. Critical constraints are front-loaded before secondary details, making it easy for an agent to parse and apply.
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 confirmation tool, the description covers the when, the how, and the main edge case (partial approval), and the schema fills in overrides and full-refusal routing. The main gap is the absence of an output schema or any description of what the tool returns after execution, which would help an agent confirm success.
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?
The description adds real meaning to approved_summary (it appears in the permission prompt, so a bare proposal_id is never enough) and excluded_refs (partial approval mirroring dashboard checkboxes). With 75% schema coverage, the schema already documents overrides clearly; the description's added param context is useful but not exhaustive, leaving proposal_id sourcing implicit.
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 'EXECUTE a pending proposal', a specific verb and resource that immediately distinguishes this final-commit action from sibling tools that create or modify staged proposals. It also encodes the key precondition (user saw the diff and agreed), so the agent understands this is the confirmation step, not a staging or cancel action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit precondition: call 'ONLY after you have rendered the full diff to the user as text' and the user agreed. It also explains partial-approval handling via excluded_refs. However, it doesn't explicitly name cancel_staged_changes as the alternative for a full refusal; that routing appears only in the schema description of excluded_refs, not in the main description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
data_describeData: Describe datasetARead-onlyInspect
Without arguments: list every warehouse dataset available to data_query. With dataset_key: its columns, column descriptions, and a sample row.
| Name | Required | Description | Default |
|---|---|---|---|
| dataset_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds useful behavioral context that the tool returns a sample row and column metadata, and that the full dataset list is scoped to what data_query can access. No hidden side effects or contradictions are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The no-argument case is stated first, the argument case second, and each sentence earns its place by conveying a distinct operational mode. The structure is easy to parse and highly 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 read-only metadata tool with one optional parameter and no output schema, the description covers all essential information: invocation modes, what each mode returns, and the scope of available datasets. No critical gap remains for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description carries the full burden of explaining the optional dataset_key parameter. It explicitly maps each parameter state to its behavior: absent means list all datasets, present means describe that dataset. This fully compensates for the schema's lack of parameter 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 description clearly states the tool's function with a specific verb: list available datasets when no arguments, or describe columns, column descriptions, and a sample row when a dataset_key is provided. It distinguishes itself from data_query by positioning itself as the metadata/schema exploration tool for datasets used by data_query.
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 explicit conditional usage guidance: use without arguments to enumerate datasets, or with dataset_key to inspect schema details. It does not explicitly discuss when not to use it or name alternatives, but the two modes are clearly differentiated and the context is obvious enough for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
data_freshnessData: Sync freshnessARead-onlyInspect
Per-dataset sync freshness, row counts, date coverage and backfill progress — use to caveat answers correctly. Covers seller (SP-API) datasets AND advertising datasets (latest data date per raw PPC dataset for the resolved profile).
| Name | Required | Description | Default |
|---|---|---|---|
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and non-destructive behavior, and the description adds meaningful context about what the tool reports: freshness, row counts, date coverage, and backfill progress. It also clarifies how advertising data is scoped via the resolved profile and raw PPC datasets. No contradiction with annotations 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 description is two sentences with no unnecessary filler. The core purpose is front-loaded, followed by the intended use and scope. 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?
For a read-only metadata tool with two optional, well-documented parameters, the description provides enough context about what data is returned and which dataset families are covered. Since there is no output schema, the description's enumeration of freshness, row counts, date coverage, and backfill progress partially compensates, though a bit more detail on output shape would improve completeness.
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 in the input schema. The description adds only a small amount of extra meaning through 'for the resolved profile', which lightly connects to profile_id, but it does not meaningfully expand 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?
The description clearly identifies the resource as per-dataset sync freshness and lists the specific data dimensions returned: row counts, date coverage, and backfill progress. It distinguishes itself from sibling data tools by explicitly covering both seller SP-API datasets and advertising datasets. However, it lacks an explicit verb such as 'retrieve' or 'list', which slightly weakens its action clarity.
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 'use to caveat answers correctly' gives an explicit intended use case, and the description clarifies the scope across seller and advertising datasets. It does not mention when not to use the tool or name alternative tools, but the use context is clear enough for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
data_queryData: Query warehouseARead-onlyInspect
Generic query over any warehouse dataset (see data_describe): column projection, filters (eq/neq/gt/gte/lt/lte/in/contains), date bounds, ordering, limit ≤1000 + offset — page with offset until a short page comes back to retrieve FULL datasets. Tenancy is enforced automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| columns | No | ||
| date_to | No | ||
| filters | No | ||
| order_by | No | ||
| date_from | No | ||
| order_dir | No | ||
| dataset_key | Yes | ||
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds meaningful behavior beyond that: the short-page pagination semantics for full retrieval, the ≤1000 limit, and automatic tenancy enforcement — the latter being a genuine behavioral guarantee an agent needs to know before invoking. No contradiction with 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?
One information-dense sentence that front-loads the core purpose before capabilities, then pagination behavior, then tenancy. Every clause earns its place: no filler, no repetition of schema field names, and the most important scoping fact (generic over any dataset) comes first.
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 tool with low schema coverage and no output schema, the description covers the critical invocation decisions: what to query, how to filter, how to paginate, and that tenancy is automatic. The main gaps are the filter object structure, response format (since no output schema exists), and the boundary against ppc_query for PPC-specific needs — but an agent could successfully call this tool from the description 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 only 10% (only seller_connection_id has a description), so the description must compensate — and it largely does. It maps capabilities to parameters: projection (columns), filters with explicit operator list, date bounds (date_from/date_to), ordering (order_by/order_dir), and the ≤1000 bound on limit. The residual gap is the internal shape of the filters objects and exact date formats, which remain undocumented.
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 (query) and resource (any warehouse dataset), and enumerates concrete capabilities: column projection, filter operators (eq/neq/gt/gte/lt/lte/in/contains), date bounds, ordering, and pagination. The word 'generic' distinguishes it from specialized query siblings like ppc_query, and the cross-reference to data_describe orients the agent on dataset discovery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit operational guidance: page with offset until a short page returns to retrieve FULL datasets, and mentions the ≤1000 limit. The 'see data_describe' hint routes the agent to the sibling for dataset discovery. However, it does not explicitly say when to prefer specialized siblings (e.g., ppc_query or pnl_* reports) over this generic tool, leaving the exclusion logic 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.
forecast_reorder_reportPurchasing: Reorder advisorARead-onlyInspect
Reorder advisor for one seller connection: per-ASIN runout dates from the latest forecast (counting FBA + AWD + inbound + open purchase orders), lead-time-aware reorder-by dates, suggested units, and an ADVISORY affordability view of unpaid PO obligations vs the trailing payout pace. Repeat its quote_rules caveats when presenting numbers.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | No | Forecast currency (default USD). | |
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this read-only and non-destructive, and the description adds substantial behavioral detail: it counts FBA + AWD + inbound + open purchase orders, is lead-time-aware, is explicitly advisory, and directs the agent to repeat quote_rules caveats when presenting numbers. This goes well beyond the annotation baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense with useful specifics and contains no filler, but it is packed into a single long sentence with many clauses. It is still understandable and front-loaded, though a two-sentence structure would improve parseability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema present, the description enumerates the main output categories: runout dates, reorder-by dates, suggested units, and the advisory affordability view. It also includes an explicit caveat-handling instruction, giving an agent enough context to invoke the tool and interpret results 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?
The input schema covers both parameters with descriptions at 100% coverage, so the description does not need to repeat parameter details. It adds a helpful contextual clue about the seller-connection scope but does not materially extend the schema's 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 concrete deliverable: per-ASIN runout dates, lead-time-aware reorder-by dates, suggested units, and a specific affordability view. It also scopes the tool to one seller connection, distinguishing it from broader reporting siblings like forecast_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: this is a single-seller-connection reorder planning tool with a specific advisory angle. It does not explicitly name alternatives or exclusions, but the scope is stated clearly enough to disambiguate from broader forecasting or inventory tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forecast_reportForecast: 12-month unit forecastARead-onlyInspect
THE 12-month per-ASIN unit forecast (nightly engine): brand totals vs last year, seasonality index, diagnostics incl. trend_check, and per-ASIN rows with the inventory gate (cover days, runout month, LOW STOCK flags). Grounded in stockout-repaired history; recovery is inventory-gated, first month anchors to actual MTD. One currency per call (EUR spans the EU marketplaces). Page rows via offset/next_offset. ALWAYS surface diagnostics.trend_check and quote_rules caveats when quoting numbers. Monthly grain also queryable via data_query dataset 'forecast'.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| currency | No | ||
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable behavior beyond that: the forecast is grounded in stockout-repaired history, recovery is inventory-gated, first month anchors to actual MTD, and the engine runs nightly. This is strong context, though it doesn't fully elaborate on pagination mechanics or output size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and information-rich, with the core subject front-loaded. Each sentence adds a distinct fact: content, grounding, currency, pagination, and usage caveats. The ALL-CAPS emphasis and slightly breathless pace reduce scannability slightly, but no sentence 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 report with no output schema and nullable parameters, the description covers the essentials: what data is returned, how it is computed, how to paginate, how to scope currency, and what caveats to quote. The only notable gap is the exact shape/format of diagnostics.trend_check and quote_rules, but the description does enough to let an agent call 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 coverage is only 25%, so the description carries most of the burden. It adds meaning for currency ('One currency per call (EUR spans the EU marketplaces)') and for offset/limit ('Page rows via offset/next_offset'). It does not explicitly explain limit/offset defaults or constraints, but it meaningfully compensates for the sparse 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 resource: 'THE 12-month per-ASIN unit forecast (nightly engine)' and enumerates its contents: brand totals vs last year, seasonality index, diagnostics including trend_check, per-ASIN rows with inventory gate fields, and LOW STOCK flags. This clearly distinguishes it from siblings like forecast_reorder_report and data_query.
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 explicit usage directives: 'One currency per call (EUR spans the EU marketplaces)', 'Page rows via offset/next_offset', 'Monthly grain also queryable via data_query dataset forecast', and 'ALWAYS surface diagnostics.trend_check and quote_rules caveats when quoting numbers.' These are actionable when-to-use and how-to-use instructions, including an alternative path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inventory_healthInventory: FBA & AWD healthARead-onlyInspect
FBA fulfillable/inbound/reserved units, aged inventory, restock recommendations and AWD pool per SKU. alert_type is derived (OUT_OF_STOCK / LOW_STOCK / AGED_STOCK) when Amazon's restock report has no alert; alerts_only=true returns just the flagged SKUs.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | No | ||
| limit | No | ||
| offset | No | page via next_offset to reach ALL SKUs | |
| alerts_only | No | ||
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral detail beyond the readOnlyHint annotation: alert_type is derived as OUT_OF_STOCK, LOW_STOCK, or AGED_STOCK when Amazon's restock report has no alert, and alerts_only=true filters to flagged SKUs. There is no contradiction with 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?
The description is a single dense sentence with no filler. The output categories are front-loaded, and the alert derivation/alerts_only nuance is appended efficiently without repeating title or schema 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 read-only report tool, the description covers the major output categories, the derived alert_type, and the alerts_only filter. Pagination behavior is already provided in the schema's offset description. Missing asin/limit semantics and explicit sibling differentiation are the only notable gaps.
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?
The description adds real meaning for alerts_only by explaining it returns only flagged SKUs, and offset and seller_connection already have schema descriptions. However, asin and limit have no schema descriptions and are not addressed in the description, so with only 40% schema coverage the description only partially compensates for the gaps.
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 identifies the resource (FBA/AWD inventory health) and the core output categories: fulfillable/inbound/reserved units, aged inventory, restock recommendations, and AWD pool per SKU. It lacks an explicit retrieval verb and doesn't position itself against sibling report tools, so it stops short of a perfect 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 conveys what the tool returns and explains the alerts_only flag, so an agent can infer its use for inventory/replenishment review. However, it does not explicitly state when to use this tool instead of related sibling tools like forecast_reorder_report or forecast_report, and no exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keyword_finderKeywords: Finder (reverse-ASIN)ARead-onlyInspect
Keyword Finder (reverse-ASIN / multi-input lookup): every keyword phrase the input ASINs are known for, merged from first-party data — SQP (own ASINs, TRUE Amazon search volume), Top Search Terms (ANY marketplace ASIN that is top-3 clicked — works for competitor ASINs), and own ad search terms. Seed terms expand to their top clicked ASINs first. Each term carries matched_asins (with per-source evidence), match_count, volume (+volume_source: amazon_sqp = exact; estimated_from_rank = calibrated estimate with volume_band; rank_only = no estimate yet), search_frequency_rank and a relevance_score. Sorted match_count DESC, volume DESC; standard pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| asins | No | Up to 20 ASINs — own or competitor (reverse-ASIN) | |
| limit | No | ||
| terms | No | Up to 10 seed terms — expanded to their top clicked ASINs | |
| weeks | No | ||
| offset | No | ||
| profile_id | No | Ad profile for the ads leg (defaults to the bridged profile) | |
| min_match_count | No | ||
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint and destructiveHint; the description adds substantial behavioral context beyond them. It explains the three data sources being merged, how seed terms expand to ASINs, the volume_source variants with their calibration levels, the sort order, and the presence of standard pagination, giving a clear model of what the tool does step by step.
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 dense, single-paragraph run-on, but it is front-loaded with the core purpose (reverse-ASIN lookup) before diving into data sources and result semantics. Every clause contributes information, and the length is justified by the tool's complexity, though clearer structure would improve scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description adequately enumerates the result fields (matched_asins, match_count, volume, volume_source, search_frequency_rank, relevance_score) and sorting behavior. It still leaves gaps around the meaning of weeks and min_match_count and the exact response envelope, but it covers the essential return semantics for an agent to reason about outcomes.
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 only 50%, and the description meaningfully explains the `terms` expansion and hints at offset/limit via 'standard pagination'. However, it does not clarify `limit`, `weeks`, `min_match_count`, or `offset` details, so it only partially compensates for the undocumented parameters.
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: 'every keyword phrase the input ASINs are known for', clearly framing a reverse-ASIN lookup. It distinguishes itself from sibling keyword tools by emphasizing multi-input, merged first-party sources, and competitor ASIN support, so an agent can immediately recognize its unique 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?
Usage context is strongly implied by the reverse-ASIN angle and 'works for competitor ASINs', but the description never explicitly states when to choose this over related siblings like brand_sqp, brand_top_search_terms, or ppc_search_terms. There are no exclusions or alternative-routing statements, so an agent must infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pnl_breakdownP&L: Account waterfallBRead-onlyInspect
Settlement-basis account waterfall: revenue → refunds → COGS → gross profit → Amazon fees → contribution margin → advertising → net profit → expenses → net profit.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | No | ISO date; default today | |
| currency | No | ||
| date_from | No | ISO date; default 30d ago | |
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation read-only; the description adds the settlement-basis scope and the ordered waterfall stages, which are useful output expectations. It does not explain how multiple seller connections or omitted parameters behave, but the schema partially covers that, so this is adequate-with-gaps.
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 arrow-chain format is extremely compact and front-loaded. The duplicate 'net profit' step ('net profit → expenses → net profit') creates a minor ambiguity, otherwise this would be 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 no output schema, the metric chain is a useful partial return-value description, and the schema covers date defaults and seller_connection_id. However, a tool with this many P&L siblings needs clearer selection context, and currency semantics plus settlement-basis meaning are left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover three of four parameters, so the description does not need to restate them. The uncovered currency parameter is never explained, and the tool description contributes no parameter-specific meaning beyond implying settlement-date scope.
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 (account) and the type of report (settlement-basis waterfall) and enumerates the metric chain, so it is clear this produces an account-level P&L breakdown. It does not use an explicit verb and does not differentiate itself from siblings such as pnl_summary or pnl_by_asin, but the 'account waterfall' wording is a clear 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?
No explicit guidance for when to choose this tool over the many P&L siblings (pnl_summary, pnl_period_cards, pnl_by_asin, pnl_expenses). 'Settlement-basis' is a hint but not a directive, and no alternatives or exclusion conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pnl_by_asinP&L: By productARead-onlyInspect
Per-ASIN P&L rows for a date window (optionally one ASIN): sales, units, fees, COGS, margins, TACoS, stock.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | No | ||
| date_to | No | ISO date; default today | |
| currency | No | ||
| group_by | No | ||
| date_from | No | ISO date; default 30d ago | |
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. |
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 tool is known to be safe. The description adds useful context about what the rows contain (sales, units, fees, COGS, margins, TACoS, stock) and the date-window scoping, but does not disclose aggregation behavior, currency handling, or output 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?
The description is a single compact sentence that front-loads the core resource and lists the important metrics. There is no filler or redundancy, and each phrase adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter tool with no output schema and many sibling P&L tools, the description is adequate but not fully complete. It names returned metrics and the main optional filter, but omits group_by aggregation behavior, currency details, and guidance on when to prefer this over other pnl_* 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 only 50%, so the description needs to compensate. It clarifies the date window and optional single-ASIN filtering, but does not explain group_by or currency semantics. This is partial compensation, not 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 resource ('Per-ASIN P&L rows') and the key metrics included, making it clear this is a product-level profitability read. It does not explicitly differentiate itself from sibling tools like pnl_summary or pnl_breakdown, but the 'Per-ASIN' focus and title 'P&L: By product' give adequate direction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when per-ASIN P&L data for a date window is needed, and optionally for a single ASIN. It does not explicitly state when not to use it or name alternatives among the many pnl_* siblings, so the guidance 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.
pnl_expensesP&L: Operating expensesBRead-onlyInspect
Custom operating expenses (subscriptions, VA, freight, 3PL…): scope, recurrence, amounts.
| Name | Required | Description | Default |
|---|---|---|---|
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds that the report covers custom operating expenses and their dimensions, but it does not disclose aggregation behavior, time period, or response format.
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 compact sentence with examples and facets front-loaded, containing no filler. It is slightly telegraphic, but the information density is appropriate for the tool's simplicity.
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?
Adequate for a read-only report with one optional parameter: it names the content area and the facets exposed. However, with no output schema and no mention of default time periods, aggregation, or how seller_connection_id affects results, some interpretation is left to the 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 description coverage is 100%: the sole optional seller_connection_id is documented in the schema. The tool description does not add parameter-level detail, so the schema carries the burden and the baseline score 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 identifies the exact resource (custom operating expenses) and names representative categories plus the three reported facets: scope, recurrence, and amounts. It lacks an explicit verb but is clearly distinguishable from sibling P&L tools by its operating-expenses focus.
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 use this tool instead of alternatives like pnl_summary or pnl_breakdown, and no mention of prerequisites or exclusions. The long sibling list makes the lack of selection criteria a meaningful gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pnl_mcf_summaryP&L: MCF / off-AmazonBRead-onlyInspect
Multi-Channel Fulfillment (off-Amazon) totals: units, orders, fulfillment fees and COGS for a window.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | No | ISO date; default today | |
| currency | No | ||
| date_from | No | ISO date; default 30d ago | |
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false), so the bar is lower. The description adds useful result-content context (which metrics are totaled) but says nothing about return shape, aggregation granularity, currency handling, or pagination, and there is no output schema to compensate.
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 sentence with the channel scope front-loaded and a compact metric list; every word earns its place. The only weakness is the noun-phrase construction ('totals: ...') which omits an explicit verb, making it read slightly like a label rather than an instruction.
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?
Acceptable for a simple read-only tool with zero required parameters, but there are clear gaps: the currency parameter is undocumented both in the schema and description, no return format is described despite there being no output schema, and no guidance is given for routing to non-MCF P&L 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 75%, so the schema documents date_from, date_to, and seller_connection_id competently, including defaults and a pointer to account_sellers. However, the description itself adds no parameter-level meaning and does nothing to document the one uncovered parameter (currency), leaving a real gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource (Multi-Channel Fulfillment/off-Amazon P&L), the metric set (units, orders, fulfillment fees, COGS), and the time window, which is enough to distinguish it from siblings like pnl_by_asin, pnl_expenses, or pnl_summary. It misses a 5 only because the verb is implicit (the noun 'totals' stands in for 'returns/gets').
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 tool versus alternatives, and no exclusions. With roughly twenty P&L siblings on the same list (pnl_summary, pnl_breakdown, pnl_by_asin, pnl_period_cards, pnl_refunds, pnl_settlement_audit), the agent receives no routing help; the intended scope must be inferred from the name and title alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pnl_period_cardsP&L: Period cardsBRead-onlyInspect
The dashboard mini-P&L cards (Today / Yesterday / MTD / This-month forecast / Last month).
| Name | Required | Description | Default |
|---|---|---|---|
| currency | No | ||
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the period breakdown and the 'mini/dashboard' nature, implying a compact high-level view, but it does not disclose behaviors like data freshness, timezone handling, or how currency affects the cards.
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, tightly packed phrase that front-loads the core concept ('dashboard mini-P&L cards') and lists the periods in parentheses. There is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and two optional parameters, the description says what periods are covered but omits what each card actually contains (e.g., revenue, profit, margin), how currency or seller_connection_id filter the data, and when to select this over other P&L tools. The large sibling set amplifies this 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 only 50% (currency has no schema description). The tool description does not explain either parameter or how they influence the results, failing to compensate for the undocumented currency parameter. Only seller_connection_id has schema-level documentation.
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 a specific resource, the dashboard mini-P&L cards, and enumerates the exact periods covered (Today / Yesterday / MTD / This-month forecast / Last month), which helps distinguish it from P&L tools like pnl_summary or pnl_breakdown. However, it lacks an explicit verb such as 'returns' or 'displays,' making the action slightly implicit.
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 use this tool versus the many sibling P&L tools. The description does not mention alternatives, exclusions, or decision conditions such as 'use this for the dashboard cards' or 'use pnl_breakdown for detailed analysis.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pnl_refundsP&L: Refund detailBRead-onlyInspect
Refund components for a window: net refund amount, count, and itemized lines (reimbursements, restocking).
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | No | ISO date; default today | |
| currency | No | ||
| date_from | No | ISO date; default 30d ago | |
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful context about the returned components (net amount, count, itemized lines) but does not disclose details such as whether itemized lines are always present, how currency is handled, or any aggregation quirks.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that immediately communicates the resource and the main output fields. Every word earns its place, with no filler or repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, no-required-parameter report, the description is largely sufficient: it names the core returned data and the annotations cover safety. The absence of an output schema is partially mitigated by listing the refund components, though the exact shape of itemized lines remains unspecified.
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 in the schema. The description reinforces the date-window concept, which maps to date_from/date_to, but adds no new meaning for currency or seller_connection_id 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 identifies a specific resource — refund components — and lists the key outputs: net refund amount, count, and itemized lines. It is clearly about refunds within a date window, which helps distinguish it from other pnl_* siblings, though it does not explicitly name any alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for a window' implies date-range usage, and the title signals this is a refund detail report. However, there is no guidance on when to choose this over closely related siblings like pnl_breakdown, pnl_summary, or pnl_settlement_audit, and no exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pnl_sb_attributionP&L: SB cost attributionARead-onlyInspect
Per-ASIN Sponsored Brands cost attribution (the sales-weighted split of campaign-level SB spend).
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | No | ISO date; default today | |
| currency | No | ||
| date_from | No | ISO date; default 30d ago | |
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already provide readOnlyHint=true and destructiveHint=false, so the description's behavioral burden is reduced. It usefully adds that the calculation is a sales-weighted split of campaign-level SB spend, which is a meaningful methodology detail. It does not disclose output granularity, zero-attribution handling, or currency behavior, but these are less critical for a safe read-only 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?
The description is a single concise sentence that introduces the core concept and immediately adds the key methodological qualifier in parentheses. Every word earns its place, and the most important scoping information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only attribution tool with optional parameters, the description is largely sufficient. It clearly defines the result: per-ASIN SB cost attribution. It omits the expected output shape and potential edge cases like whether ASINs with zero attributed spend are included, and no output schema exists to pick up that slack.
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?
The input schema already describes date_from, date_to, and seller_connection_id, so 3 of 4 parameters have coverage. The description itself adds no parameter-level guidance, and the currency parameter's meaning remains undocumented. Since all parameters are optional and defaults are specified in the schema, the description does not need to compensate heavily.
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 concrete deliverable: per-ASIN Sponsored Brands cost attribution, with the clarifying detail that it is the sales-weighted split of campaign-level SB spend. Although there is no explicit verb like 'computes' or 'returns', the noun phrase is unambiguous. It is distinguishable from generic P&L/PPC siblings by naming Sponsored Brands, per-ASIN scope, and the attribution methodology.
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 intended use is implied: an agent would call this when it needs Sponsored Brands campaign spend allocated to individual ASINs. However, there is no explicit when-to-use or when-not-to-use guidance, and no alternative tool is named. Among a large sibling set, the agent must infer routing purely from the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pnl_settlement_auditP&L: Settlement fee auditARead-onlyInspect
Settlement fee audit: every distinct fee combination Amazon charged, classified into P&L buckets — verify nothing is misclassified or missed.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | No | ||
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and non-destructive, and the description aligns with them. The description adds useful behavioral detail: it enumerates every distinct fee combination and classifies them, which conveys the result shape beyond just 'audit'. It does not detail output formatting, but the safety profile is already covered by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. It states the tool name, the action, the scope, and the purpose efficiently.
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 tool with zero required parameters, the description provides enough context to understand what it returns and why it exists. The missing currency semantics and lack of alternative routing are gaps, but the schema partially covers seller_connection_id and the annotations cover safety.
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 only 50%: seller_connection_id has a description, but currency is undocumented. The description does not mention either parameter or explain acceptable currency values, defaults, or how the two parameters affect the audit. Since the description does not compensate for the schema gap, this dimension is weak.
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 ('audit') and resource ('settlement fee') and clarifies the exact scope: every distinct fee combination Amazon charged, classified into P&L buckets. This clearly distinguishes it from generic P&L summary or breakdown 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?
The phrase 'verify nothing is misclassified or missed' implies an audit use case, which gives some usage context. However, it does not explicitly state when to prefer this tool over siblings like pnl_expenses or pnl_breakdown, nor any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pnl_summaryP&L: SummaryCRead-onlyInspect
Profit & Loss summary for a date window: account tiles (sales, fees, COGS, ad spend, gross profit, contribution margin, net profit, TACoS) plus the top product rows.
| Name | Required | Description | Default |
|---|---|---|---|
| top_n | No | ||
| date_to | No | ISO date; default today | |
| currency | No | ||
| group_by | No | ||
| date_from | No | ISO date; default 30d ago | |
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only nature is covered. The description adds what the user will see, but it doesn't disclose sorting, grouping, or whether the summary is account-wide versus per seller connection. That is acceptable but not 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?
One compact sentence, front-loaded with the resource and scope, and it lists concrete metrics instead of generic marketing language. No wasted words, though it is too brief to carry the missing parameter semantics.
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 six parameters, no output schema, and many closely related pnl_* siblings, a correct invocation depends on knowing what top_n, group_by, and currency do; the description doesn't provide that. A zero-argument default call is easy, but any deliberate parameter choice is under-specified.
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 descriptions cover date_from, date_to, and seller_connection_id, leaving top_n, currency, and group_by undocumented except for types/enum. The description repeats the date-window idea and mentions 'top product rows,' but it does not explain top_n, currency, or group_by, so it fails to compensate for the 50% schema coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (P&L summary), the scope (date window), and the contents (account tiles plus top product rows), which is enough to understand what the tool returns. It does not explicitly contrast with pnl_breakdown or pnl_by_asin, so it earns a 4 rather than a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this summary over pnl_breakdown, pnl_period_cards, or pnl_by_asin; the 'date window' phrase only implies a time-based report. There are no exclusions or alternative tools named, so the agent cannot decide among the many pnl_* siblings from the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_account_summaryPPC: Account summaryBRead-onlyInspect
Get account-level aggregate metrics for a date range: total spend, sales, ACoS, ROAS, clicks, impressions, purchases.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | No | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| start_date | No | ||
| period_days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered at a low bar. The description adds the metric list and account-level scope but discloses no further behavioral traits such as how aggregates are computed, profile-selection behavior with multiple tokens, or handling of date ranges with no data.
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 17-word sentence with the verb and scope front-loaded ahead of the metric enumeration. Every word carries information; there is no filler or repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The metric enumeration partially substitutes for a missing output schema, and annotations cover safety. However, with 0 required parameters and three undocumented date/profile parameters, the description leaves ambiguity about the minimum viable call (are start/end dates required? what does period_days do?) that an agent must resolve elsewhere.
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 only 25% — only profile_id is documented in the schema, and its description already covers its semantics. The description's 'for a date range' loosely maps to start_date/end_date/period_days but does not explain their formats or relationship (e.g., whether period_days substitutes for start/end dates), so it fails to compensate for the three undocumented parameters.
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 ('Get') and resource ('account-level aggregate metrics for a date range') and enumerates the exact metrics returned: total spend, sales, ACoS, ROAS, clicks, impressions, purchases. The 'account-level aggregate' qualifier distinguishes it from sibling tools at campaign, ad group, keyword, and daily-trend granularity (ppc_campaigns, ppc_ad_groups, ppc_daily_trend).
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 no guidance on when to use this tool versus alternatives — it never names a sibling or states when NOT to use it. In a sibling set of ~70 PPC tools (ppc_campaign_details, ppc_daily_trend, ppc_period_comparison, ppc_query), an agent gets no routing help beyond the implicit 'account-level' hint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_ad_groupsPPC: Ad groupsARead-onlyInspect
Query ad group performance data within campaigns. Returns ad groups sorted by spend with metrics: cost, sales, ACoS, clicks, impressions, purchases, CTR, CVR, CPC. Supports filtering by campaign name, campaign ID, ad type, and metric thresholds.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Scope by seller SKU (mapped to ASINs; matches SP/SD ad rows directly). | |
| asin | No | Scope to campaigns/ad groups advertising this ASIN. | |
| skus | No | Scope by multiple seller SKUs. | |
| asins | No | Scope to ANY of these ASINs. | |
| limit | No | Maximum ad groups to return. Default: 25, max: 50. | |
| offset | No | Pagination offset — page via next_offset to reach ALL ad groups. | |
| ad_type | No | Filter to a specific ad type. | |
| acos_max | No | Maximum ACoS as decimal. | |
| acos_min | No | Minimum ACoS as decimal. | |
| end_date | No | ||
| spend_min | No | Minimum spend in dollars. | |
| clicks_min | No | Minimum clicks. | |
| parent_sku | No | Scope to the full family by parent SKU. | |
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| start_date | No | ||
| campaign_id | No | Filter to ad groups within a specific campaign. | |
| parent_asin | No | Scope to the FULL parent family (all child ASINs resolved automatically). | |
| period_days | No | ||
| campaign_name_contains | No | Filter to ad groups from campaigns matching this name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds useful behavioral context: results are sorted by spend, and the specific metrics returned are enumerated. This goes beyond what the annotations alone convey without contradicting them.
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 compact and front-loaded with the core purpose, then efficiently lists the returned metrics and supported filter dimensions. Every sentence contributes useful information with no filler or repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 19-parameter tool with no output schema, the description lists the return metrics and main filters, but it omits important invocation context such as date-range handling, pagination behavior, and how SKU/ASIN/parent scoping filters interact. The undocumented date parameters are not addressed in the description.
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 84%, so the schema already documents most parameters. The description summarizes filter categories but does not add meaningful detail beyond the schema, and it does not compensate for the undocumented date parameters (start_date, end_date, period_days).
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 the specific resource ('ad group performance data within campaigns') and the action ('Query'), and lists the returned metrics and sorting behavior. It doesn't explicitly differentiate from sibling PPC tools by name, but the scope is specific enough to distinguish it from campaign-level or keyword-level 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?
The description implies the tool is for ad-group-level performance queries and mentions supported filters, but it provides no explicit guidance on when to choose this over siblings like ppc_campaigns, ppc_campaign_details, or ppc_keywords. No exclusions or alternative routing are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_ad_type_breakdownPPC: Ad-type breakdownBRead-onlyInspect
Get performance comparison across ad types (SP vs SB vs SD). Returns aggregate metrics for each ad type including campaign count.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | No | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| start_date | No | ||
| period_days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds some transparency by revealing the output is aggregate metrics per ad type and includes campaign count, but it does not mention behaviors like date-range handling, grouping logic, or whether data is limited to a single profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The first sentence states the core function, and the second adds the key output detail. Every word 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?
For a tool with four parameters, no output schema, and only 25% schema description coverage, the description is too thin. It explains what is returned but not how the parameters shape the query, how date ranges are interpreted, or whether the result is limited to a single profile. An agent would need to guess or make an extra call to understand basic usage.
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 only 25%, with profile_id the only documented parameter. The description does not compensate by explaining start_date, end_date, or period_days, nor does it mention how date inputs affect the comparison. An agent must infer parameter semantics from names alone, which is insufficient given the low schema coverage.
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: 'Get performance comparison across ad types (SP vs SB vs SD).' It clearly names the three ad types, which distinguishes it from related breakdown tools like ppc_match_type_breakdown, and states what is returned: aggregate metrics including campaign count.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes it clear this tool is for ad-type-level performance comparison, but it does not explicitly say when to prefer it over related tools such as ppc_match_type_breakdown or ppc_campaign_details, nor does it state any exclusions or prerequisites. Usage context is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_advertised_productsPPC: Advertised productsARead-onlyInspect
Query product/ASIN-level performance (SP+SD ad grain, merged per ASIN with a per-program split; SB per-ASIN spend exists only in the blended P&L). Returns products sorted by spend with status classification (Scaling, Stable, Underperforming, Bleeding). Supports single ASIN, multiple ASINs (for parent family aggregation), or SKU lookup. When multiple ASINs are provided (e.g. all child ASINs from ppc_product_family), also returns family_totals with aggregate metrics across all children.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Filter by seller SKU. | |
| asin | No | Filter to a specific ASIN. | |
| asins | No | List of ASINs to query (e.g. child ASINs from a parent family). Returns performance for each + family_totals. | |
| limit | No | Products per page. Default: 25, max: 1000. | |
| offset | No | Pagination offset — page through ALL advertised products via next_offset. | |
| end_date | No | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| start_date | No | ||
| period_days | No | ||
| target_acos | No | Target ACoS for status classification. Default: 0.30. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context beyond annotations: the SP+SD vs SB asymmetry (SB per-ASIN spend exists only in blended P&L), the sorting by spend, status classification, and the family_totals aggregation behavior. This is a meaningful addition, though it doesn't detail pagination or error cases.
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 well-structured: first sentence states the core query and data grain, second explains the return sorting and status classification, third covers input modes and family_totals. Every sentence earns its place with no filler, and the most important scoping information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with 10 optional parameters and no output schema, the description gives sufficient context to invoke it correctly: supported lookup modes, the family aggregation path, the unique SB data limitation, and status classification. It could mention pagination behavior (offset/next_offset) explicitly, but the schema provides parameter hints and the core usage scenarios are well covered.
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 70%, so the schema documents most parameters. The description adds conceptual meaning beyond the schema by explaining the relationship between asins and family_totals, and notes that profile_id is optional when the token has exactly one. It also clarifies that SB per-ASIN spend is only in blended P&L, which affects interpretation of results. Some uncovered parameters (start_date, end_date, period_days, offset) lack detailed semantics, but the description's added context compensates well.
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?
Description states a specific verb ('Query') and resource ('product/ASIN-level performance'), and distinguishes itself by noting the SP+SD/SB grain and the per-program split. It also contrasts with family aggregation via sibling ppc_product_family, helping an agent tell it apart from other ppc_* 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?
Provides explicit guidance on when to use single ASIN vs multiple ASINs vs SKU lookup, and references sibling tool ppc_product_family as a source for child ASINs. It also states the status classification behavior and the family_totals return when multiple ASINs are supplied, giving clear context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_asset_upload_linkPPC: Asset upload linkARead-onlyInspect
Mint a 1-hour browser-upload link so the USER can hand over a local file (chat attachments cannot reach the server). Flow: call this → send upload_url to the user → they drop the file there (image jpg/png ≤25MB, or video mp4/mov/wmv/avi ≤100MB) → call stage_asset_upload with the returned staged_file_id. Videos over 100MB must be hosted at a public URL instead.
| Name | Required | Description | Default |
|---|---|---|---|
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context: the link expires in 1 hour, chat attachments cannot reach the server, file type/size limits, the upload_url/staged_file_id flow, and the video-size exception. No contradiction with 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 description is compact yet information-dense, with the core purpose front-loaded, then a flow, constraints, and an exception. Every sentence earns its place and there is no redundant fluff.
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?
Even without an output schema, the description names the key returned artifacts (upload_url and staged_file_id) and gives the complete handoff flow. It could be slightly more explicit about the exact response shape, but for a low-complexity tool the provided context is sufficient.
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?
The single optional parameter profile_id is already fully described in the schema (100% coverage). The description adds no additional parameter-level detail, but because the schema carries the full burden, a baseline score of 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 opens with a specific verb and resource: 'Mint a 1-hour browser-upload link.' It clearly distinguishes this tool from chat attachments and downstream stage_asset_upload, so an agent can understand exactly what action is being performed and why.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear step-by-step flow and states when this tool is appropriate (local file handover) versus when it is not (videos over 100MB must use a public URL). It does not explicitly name an alternative sibling tool for the public-URL case, so it slightly misses a fully explicit when-not-to-use comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_bid_recommendationsPPC: Bid recommendations (SP + SB)ARead-onlyInspect
Amazon's suggested bid + range per keyword for a SPECIFIC campaign (routed by campaign type). SB: [range_start, range_end], range_start = effective CPC floor. SP: theme-based recommendations for manual keywords AND auto targeting groups (auto_targets: close_match/loose_match/substitutes/complements; needs ad_group_id when the campaign has several ad groups). Check this BEFORE choosing bids. NOT valid for BRAND_IMPRESSION_SHARE/vCPM campaigns — the response carries a warning there (Amazon has no vCPM bid-rec API; use the KEYWORD_INVALID_BID [minBid, maxBid] round-trip instead).
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | No | ||
| ad_format | No | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| ad_group_id | No | SP only — required when the campaign has >1 ad group | |
| campaign_id | Yes | ||
| auto_targets | No | SP auto targeting groups |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it read-only and non-destructive, and the description adds real behavioral detail: SB results are [range_start, range_end] with range_start as effective CPC floor; SP covers manual keywords and auto targeting groups; unsupported campaign types produce a warning; and the underlying reason is disclosed (no vCPM bid-rec API). This exceeds what structured fields alone 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 dense but every sentence earns its place: core purpose, SB/SP behavior, usage timing, and vCPM exception are each covered without dangling filler. Key constraints like 'NOT valid for' and 'needs ad_group_id' are front-loaded or highlighted.
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 no output schema, the description covers a lot: return format for SB, warning behavior, valid/invalid campaign types, and SP targeting inputs. The main gap is ad_format, an undocumented enum that is not mentioned in the description, leaving the agent to guess how it applies. Otherwise the tool is well-specified.
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?
The description adds meaning for auto_targets by listing the four targeting groups, explains ad_group_id's conditional requirement, and clarifies that keywords refer to manual keywords. However, ad_format remains undocumented in both the schema and the description, and its role in SB productCollection/video vs SP is not explained. That keeps this from being a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Amazon's suggested bid + range per keyword for a SPECIFIC campaign', and immediately distinguishes SB vs SP behavior. It makes clear this is a bid-recommendation retrieval tool, not a general campaign report or budget tool, and differentiates it from alternatives by routing campaign types.
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 explicitly says 'Check this BEFORE choosing bids', which tells the agent when to call it. It also explicitly states what it is NOT valid for (BRAND_IMPRESSION_SHARE/vCPM campaigns) and names the alternative round-trip pattern via KEYWORD_INVALID_BID. The ad_group_id condition is also provided as a usage rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_budget_alertsPPC: Budget alertsARead-onlyInspect
Find campaigns approaching or exceeding their daily budget. Returns campaigns where average daily spend is >= threshold (default 90%) of budget, enriched with Amazon's live budgetUsagePercent snapshot (live_usage_pct, all ad types SP/SB/SD) when available. Full per-day usage history: ppc_query dataset 'budget_usage'.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | No | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| start_date | No | ||
| period_days | No | Lookback days. Default: 7. | |
| threshold_pct | No | Budget utilization threshold as decimal. Default: 0.90 (90%). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral detail beyond annotations: the exact threshold calculation, default threshold of 90%, and the conditional enrichment from Amazon's live budgetUsagePercent snapshot '(when available)'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: the first states the purpose and selection rule, the second explains the enrichment and points to the full-history alternative. The most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with all parameters optional and output schema absent, the description conveys the core invocation semantics, default threshold, enrichment field, and where to get detailed history. Minor ambiguity remains around how start_date/end_date interact with period_days and average daily spend, but the defaults and optionality make successful invocation likely.
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 60%; the description clarifies threshold semantics ('default 90%') but not start_date/end_date semantics. threshold_pct gets useful meaning from the description, while period_days and profile_id are already covered in the schema. The uncompensated date parameters keep this at a mid score.
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?
Description opens with a precise verb and resource: 'Find campaigns approaching or exceeding their daily budget.' It also specifies the selection rule (average daily spend >= threshold) and the enrichment field, making the tool's purpose unmistakable and distinct from generic campaign-list or search 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?
The description gives clear when-to-use context: budget alerts based on utilization threshold. It also points to an alternative for fuller data ('Full per-day usage history: ppc_query dataset budget_usage'), which helps an agent choose between snapshot alerts and detailed history, though it stops short of explicit exclusion wording.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_campaign_create_guidePPC: Campaign creation guideARead-onlyInspect
The verified contract for creating campaigns via stage_campaign_create: per-format required fields, goals, landing-page rules, asset sourcing, safety model, and post-create lifecycle. CALL THIS FIRST whenever the user asks to create an SB campaign.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only and non-destructive, and the description aligns with that. It adds useful behavioral context by describing its role as a pre-creation contract and listing lifecycle/safety topics, beyond what annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences deliver strong signal: the tool's role, content scope, and exact invocation trigger. The imperative call-to-action is front-loaded, and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only guide with no output schema, the description fully covers what the agent needs: what the tool is, what it contains, and when to call it. No important operational gap remains.
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?
The tool has zero parameters and schema coverage is vacuously 100%, so parameter-level explanation is unnecessary. Baseline 4 applies; the description's content focus is appropriate for a guide tool.
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?
Description clearly defines this as the verified contract/guide for creating campaigns via stage_campaign_create, enumerating the exact content areas it covers. It distinguishes itself from stage_campaign_create and other PPC tools by positioning itself as the prerequisite reference guide.
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 instructs the agent when to use it: 'CALL THIS FIRST whenever the user asks to create an SB campaign.' It also names the dependent operation (stage_campaign_create), making the workflow ordering unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_campaign_detailsPPC: Campaign detailsARead-onlyInspect
Get detailed data for specific SP campaigns including placements, advertised ASINs, placement modifiers, and top keywords/targets. GRAIN: advertised_asins is CURRENT ad state (entity-synced; includes never-served ads; source flagged advertised_asins_source), product_ads carries per-ad state, and asins_served_in_window is the report view scoped to the requested range. SP only — SB/SD campaigns come back under notes with the right dataset to query. Use this after ppc_campaigns to drill in.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | No | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| start_date | No | ||
| period_days | No | ||
| campaign_ids | Yes | List of campaign IDs to detail (max 10). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does substantial work: it discloses grain differences (advertised_asins as current entity-synced state, product_ads per-ad, asins_served_in_window as report view), notes never-served ads, and flags source terminology. It omits response format and rate-limit details, but the key behavioral nuances are surfaced.
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. The primary purpose is front-loaded, followed by a dense GRAIN clarification that earns its place, and the workflow statement closes efficiently. No information is repeated.
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?
Despite having no output schema and several non-obvious semantics, the description covers the critical distinctions that would trip up an agent: what each data grain means, the SP-only limitation, and the intended sequencing after ppc_campaigns. It doesn't describe response shape or error behavior, but the most decision-relevant context is 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 coverage is only 40% (only profile_id is described in-schema). The description adds meaning for the date range via 'asins_served_in_window ... scoped to the requested range' and for campaign_ids via 'specific SP campaigns', but it does not explain date formats, optionality, or how the parameters map to the listed output categories. It partially compensates for the low schema coverage but leaves gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('Get detailed data for specific SP campaigns') and enumerates the payload types (placements, advertised ASINs, placement modifiers, top keywords/targets). It also distinguishes itself from SB/SD tools and explicitly positions itself relative to ppc_campaigns ('drill in'), making sibling differentiation clear.
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 a clear workflow cue ('Use this after ppc_campaigns to drill in') and an explicit exclusion ('SP only — SB/SD campaigns come back under notes with the right dataset to query'). It does not name the specific alternative tools for the SB/SD cases, so it is 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.
ppc_campaign_metadataPPC: Campaign metadataBRead-onlyInspect
Campaign configuration and user metadata: bidding strategy, placement settings, goal/KPI, tags, notes.
| Name | Required | Description | Default |
|---|---|---|---|
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| campaign_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the read-only safety profile is covered. The description adds content-level context about what metadata is returned, but it does not disclose behavior beyond that, such as whether it returns a single campaign's metadata or how profile scoping works.
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 compact sentence that front-loads the resource name and uses a concise list of returned fields. It is efficient, though the missing verb makes it read more like a title than a clear instruction.
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 low-complexity read-only tool, the description is serviceable and lists key returned content. However, it leaves campaign_id semantics unspecified and does not clarify how this tool differs from the many sibling PPC tools, so an agent might not reliably select 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?
The schema describes profile_id but leaves campaign_id completely undocumented, and the description does not mention either parameter. With only 50% schema description coverage, the description should compensate by explaining what campaign_id means or whether it is required, which it fails to do.
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 the resource (campaign metadata) and enumerates specific content areas (bidding strategy, placement settings, goal/KPI, tags, notes), making the tool's purpose fairly clear. However, it uses a noun phrase rather than an explicit verb and does not distinguish it from sibling tools like ppc_campaign_details or ppc_campaigns.
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 when to use the tool: when the agent needs campaign configuration and user metadata. It provides no explicit alternatives, exclusions, or conditions such as 'use ppc_campaign_details for performance metrics instead.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_campaignsPPC: CampaignsARead-onlyInspect
Query campaign performance data with optional filters. Returns campaigns sorted by spend (descending) with metrics: cost, sales, ACoS, clicks, impressions, purchases, CTR, CVR, CPC. Supports filtering by ad type (SP/SB/SD), campaign name, and metric thresholds (acos_min, acos_max, spend_min, etc.). IMPORTANT: When the user asks for campaigns above/below a metric threshold, ALWAYS use the appropriate min/max filter parameter — do NOT just sort and return all campaigns.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Scope by seller SKU (mapped to ASINs for SB coverage; matches SP/SD ad rows directly). | |
| asin | No | Scope to campaigns advertising this ASIN (SP advertised products, SB ad creatives, SD promoted products). | |
| skus | No | Scope by multiple seller SKUs. | |
| sort | No | Sort field. Default: cost. | |
| asins | No | Scope to campaigns advertising ANY of these ASINs. | |
| limit | No | Campaigns per page. Default: 25, max: 500. | |
| offset | No | Pagination offset — use next_offset from the previous response to page through ALL campaigns. | |
| ad_type | No | Filter to a specific ad type. Omit for all types. | |
| acos_max | No | Maximum ACoS as decimal (e.g. 0.30 for 30%). Only return campaigns with ACoS <= this value. | |
| acos_min | No | Minimum ACoS as decimal (e.g. 0.50 for 50%). Only return campaigns with ACoS >= this value. | |
| end_date | No | End date (YYYY-MM-DD). Defaults to today. | |
| roas_min | No | Minimum ROAS (e.g. 3.0 for 3x return). | |
| sales_min | No | Minimum sales in dollars. | |
| spend_max | No | Maximum spend in dollars. | |
| spend_min | No | Minimum spend in dollars. Only return campaigns spending at least this amount. | |
| clicks_min | No | Minimum clicks. | |
| parent_sku | No | Scope to the full family by parent SKU. | |
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| start_date | No | Start date (YYYY-MM-DD). Defaults to 30 days ago. | |
| campaign_id | No | Filter to a specific campaign ID. | |
| parent_asin | No | Scope to the FULL parent family: resolves every child ASIN (product library / Category Listing) and matches campaigns advertising any of them. The response's scope block shows the resolved ASINs. | |
| period_days | No | Lookback period in days. Alternative to start_date/end_date. Default: 30. | |
| impressions_min | No | Minimum impressions. | |
| campaign_name_contains | No | Filter campaigns whose name contains this substring (case-insensitive). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already report readOnlyHint=true and destructiveHint=false. The description adds meaningful behavioral context beyond that: default sort by spend descending, returned metrics, and the crucial rule that threshold queries must use min/max filters rather than relying on sorted 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 description is compact and front-loaded, with the core purpose stated first and the critical usage warning placed at the end. Every sentence contributes necessary information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 24 optional parameters and no output schema, the description provides a solid overview of return values and key usage behavior. It relies on the schema for parameter details, which is appropriate given the 100% schema coverage.
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 fully documents every parameter. The description reinforces the threshold-filter concept but does not add meaningfully beyond the schema's per-parameter 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 description clearly states the tool queries campaign performance data and lists the returned metrics, with filtering mentioned. However, it does not explicitly distinguish this from close siblings like ppc_campaign_search or ppc_campaign_details.
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 context is clear: this is for querying campaign performance data with optional filters. The IMPORTANT note gives concrete parameter-usage guidance for threshold queries, but it does not contrast this tool with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_campaign_searchPPC: Find campaignsARead-onlyInspect
Lightweight campaign name lookup. Returns campaign names and IDs only (no metrics). Use this to find campaign IDs before calling other tools.
| Name | Required | Description | Default |
|---|---|---|---|
| ad_type | No | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| name_contains | Yes | Search substring for campaign name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context by disclosing the exact return scope: campaign names and IDs only, with no metrics. This is especially valuable because there is no output schema to communicate the return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, tightly packed with the core behavior, return scope, and usage intent. The key differentiator ('no metrics') is front-loaded, and every sentence earns its place without fluff.
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 lookup tool with strong read-only annotations, the description covers the essential return values and the intended workflow. It does not mention pagination, result limits, or how ad_type filtering interacts with results, but given the schema covers parameters well and the tool is deliberately lightweight, the definition is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, with name_contains and profile_id already explained in the input schema; the ad_type enum is self-documenting to some degree. The description reinforces the search-by-name behavior but does not add significant new 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 identifies this as a lightweight campaign name lookup that returns only campaign names and IDs, explicitly stating it excludes metrics. This distinguishes it from metric-heavy sibling tools like ppc_campaign_details or ppc_campaigns, and the stated goal of finding campaign IDs before calling other tools gives immediate purpose clarity.
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 clear usage context: use this tool to find campaign IDs before calling other tools. It also implicitly excludes metric-related use cases by saying 'no metrics.' However, it does not explicitly name an alternative tool or state when not to use it, so it falls just short of full alternative/exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_change_historyPPC: Change historyARead-onlyInspect
Get recent campaign change history showing what changed, when, old values, and new values. Covers bid, budget, status, and other changes.
| Name | Required | Description | Default |
|---|---|---|---|
| field | No | Filter by field changed. | |
| limit | No | Max changes to return. Default: 50. | |
| offset | No | Page via next_offset to reach ALL rows. | |
| end_date | No | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| start_date | No | ||
| change_type | No | Filter by change type. | |
| period_days | No | ||
| campaign_name_contains | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is handled. The description adds output-content transparency (old values, new values, timestamps) but discloses no behavioral limits such as how 'recent' is defined, default time windows, or whether history coverage is restricted. No contradiction with 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 sentences with no filler: the first front-loads the action and return contract, the second adds filter-relevant coverage. Every clause earns its place and provides information beyond 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?
Moderate-to-high complexity (9 optional parameters, no output schema, no enums, no required fields) with no defaults explained. The description conveys the core return concept but not how period_days interacts with start_date/end_date, what the default time window is, or how next_offset pagination behaves. Sufficient for a basic call, gappy for a precise one.
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 covers 5 of 9 parameters (56%); the description partially compensates by enumerating covered change types (bid, budget, status), which hints at values for field/change_type. However, start_date, end_date, period_days, and campaign_name_contains receive no meaning in either the schema or the description, leaving date-window semantics unexplained for a history tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('recent campaign change history'), and specifies the return contract ('what changed, when, old values, and new values'). The history-with-old/new-values semantics clearly distinguish it from current-state siblings like ppc_campaign_details and ppc_campaign_metadata, even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case (auditing what changed in campaigns) is implied by the wording, but there is no explicit when-to-use guidance, no exclusions, and no named alternatives. In a sibling set of roughly 90 tools, an agent gets no routing help beyond the implicit history-vs-state distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_conversion_funnelPPC: Conversion funnelBRead-onlyInspect
Get conversion funnel data: Impressions → Clicks → Orders with rates between each stage. Useful for health check analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Scope by seller SKU (mapped to ASINs; matches SP/SD ad rows directly). | |
| asin | No | Scope to campaigns/ad groups advertising this ASIN. | |
| skus | No | Scope by multiple seller SKUs. | |
| asins | No | Scope to ANY of these ASINs. | |
| ad_type | No | ||
| end_date | No | ||
| parent_sku | No | Scope to the full family by parent SKU. | |
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| start_date | No | ||
| parent_asin | No | Scope to the FULL parent family (all child ASINs resolved automatically). | |
| period_days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds the specific funnel stages and rate calculations, which is useful. However, it does not clarify aggregation behavior, date handling, or how scope parameters affect results, and there is no output schema to compensate.
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 that communicates the core function, the funnel stages, and a primary use case without wasted words. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 11 parameters, no output schema, and many closely related sibling tools, this description is too thin to fully orient an agent. It explains what the funnel contains but not how the parameters shape the result, what time range is used, or when a different PPC tool would be more appropriate.
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?
The description provides no parameter-level guidance. Schema coverage is 64%, meaning several parameters lack descriptions, and the description does not compensate for the gap. For example, it does not mention date range, ad type, or scoping semantics beyond the high-level funnel concept.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get conversion funnel data' and clearly defines the resource as a funnel from Impressions to Clicks to Orders with conversion rates. This is more specific than the title alone, though it does not explicitly differentiate itself from sibling PPC analytics 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?
The description gives a usage context: 'Useful for health check analysis.' This implies when the tool is relevant, but it does not provide explicit guidance on when to choose this tool over alternatives such as ppc_daily_trend, ppc_period_comparison, or ppc_query.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_creativesPPC: CreativesARead-onlyInspect
SB ad creatives at ad grain (headline, brand logo, custom images, video asset ids, ASINs, landing page, creative status) plus SD creatives; include_assets=true adds the asset-library inventory.
| Name | Required | Description | Default |
|---|---|---|---|
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| campaign_id | No | ||
| creative_type | No | ||
| include_assets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false, lowering the burden. The description adds meaningful context by specifying the ad-grain fields returned and the effect of include_assets=true on asset-library inventory.
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?
Single sentence, front-loaded with tool scope and followed by a concrete flag behavior; no filler. The parenthetical field list is dense but compact enough to stay readable.
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 retrieval tool, the description conveys the data grain, included fields, and the optional include_assets behavior, which is enough to call it correctly. It does not detail response shape, pagination, or default behavior when include_assets is absent, but annotations cover the safety profile and no output schema is declared.
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?
The description directly explains include_assets and, by listing SB and SD creatives, hints at creative_type values. profile_id already has a schema description, but campaign_id and creative_type remain undocumented in both schema and description, leaving roughly half the parameters without added meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as returning SB ad creatives at ad grain with a detailed field list, plus SD creatives, which distinguishes it from sibling tools like ppc_campaigns and ppc_ad_groups. However, it omits an explicit verb such as 'lists' or 'returns', relying on title and fragmentary phrasing.
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 this is the creative-level tool ('SB ad creatives at ad grain... plus SD creatives') and notes the include_assets toggle, giving an agent context for when to call it. It does not explicitly name alternatives or exclusion conditions, so usage routing depends on inference from the tool name and sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_daily_trendPPC: Daily trendARead-onlyInspect
Get day-by-day metrics for trend analysis. Returns an array of daily data points with cost, sales, ACoS, clicks, impressions. Useful for spotting spikes, dips, and patterns over time.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Scope by seller SKU (mapped to ASINs; matches SP/SD ad rows directly). | |
| asin | No | Scope to campaigns/ad groups advertising this ASIN. | |
| skus | No | Scope by multiple seller SKUs. | |
| asins | No | Scope to ANY of these ASINs. | |
| end_date | No | ||
| parent_sku | No | Scope to the full family by parent SKU. | |
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| start_date | No | ||
| campaign_id | No | ||
| parent_asin | No | Scope to the FULL parent family (all child ASINs resolved automatically). | |
| period_days | No | Lookback days. Default: 14. | |
| campaign_name_contains | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true and destructiveHint=false, and the description does not contradict them. It adds a useful detail by specifying the return shape ('array of daily data points') and included metrics, but it doesn't explain how date windows behave when period_days vs start_date/end_date are provided, or how missing days are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the first states the purpose and output, and the second lists the metrics and the intended use case. There is no filler, redundancy, or unnecessary 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?
The description is adequate for a simple read-only trend endpoint, but with 12 optional parameters and no output schema, it doesn't explain filter behavior, date defaults beyond the schema's period_days setting, or how this compares to ppc_period_comparison and ppc_account_summary. The return values are partially described, making this only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is roughly 67%, and most scoping parameters already have meaningful descriptions. The tool description adds no parameter-level semantics, such as how sku, asin, and campaign_id filters interact or the default lookback behavior, so parameter understanding relies on 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 uses a clear verb ('Get'), a specific resource ('day-by-day metrics'), and states the output: an array of daily data points with cost, sales, ACoS, clicks, and impressions. It doesn't explicitly contrast with sibling tools like ppc_period_comparison or ppc_conversion_funnel, but the daily time-series framing makes its role clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says the tool is 'for trend analysis' and 'useful for spotting spikes, dips, and patterns over time,' which provides a clear when-to-use context. It doesn't mention alternative tools or explicitly state when not to use it, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_dayparting_analyticsPPC: Dayparting analyticsARead-onlyInspect
Get the dayparting (time-of-day bid modifier) schedule for the profile. Returns a 7x24 grid of bid multipliers by day and hour.
| Name | Required | Description | Default |
|---|---|---|---|
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds a useful behavioral detail beyond that: the exact return shape as a 7x24 grid of bid multipliers, which is valuable since there is no output schema. It does not contradict 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 description is two tight sentences with no filler. The verb and resource are front-loaded, and the return format sentence earns its place by compensating for the absent output 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?
For a simple read-only tool with one optional parameter and no output schema, the description covers the core purpose, the parameter's role via schema, and the return shape. It does not mention timezone or default behavior when profile_id is omitted across multiple profiles, but these are minor gaps for this 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?
The single parameter profile_id is fully documented in the schema with a clear description and an optional-condition note, so schema coverage is 100%. The description adds no new parameter-level detail beyond restating that the schedule is 'for the profile,' which matches the baseline expectation for high schema coverage.
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 ('Get') and names the exact resource ('dayparting schedule for the profile'), then defines the returned artifact as a '7x24 grid of bid multipliers by day and hour.' This clearly distinguishes it from write-oriented siblings like stage_dayparting_schedule and from other PPC analytics 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?
The read-only nature is implied by 'Get' and the annotations, and the sibling stage_dayparting_schedule suggests the write counterpart. However, the description does not explicitly state when to choose this tool over alternatives or when not to use it, so usage guidance 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.
ppc_describePPC: Describe raw datasetARead-onlyInspect
Without arguments: catalog of the raw PPC datasets behind ppc_query (daily report tables at campaign/ad-group/target/search-term/placement/ASIN grain for SP+SB+SD, plus current-state snapshots: campaign_meta, portfolios, placement modifiers, SB ads/creatives, SD creatives, asset library, negative keywords/targets). With dataset_key: full column list + a sample row.
| Name | Required | Description | Default |
|---|---|---|---|
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| dataset_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint and no destructive behavior, and the description adds meaningful behavioral detail: it never returns query results, only a catalog or column list plus a sample row for a selected dataset. It also discloses the scope of covered datasets. No contradiction with 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 description is a single dense sentence with no filler, and it front-loads the two invocation modes. The parenthetical list of dataset categories is useful but makes the description longer than strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still explains what the agent will get in both modes: a catalog, or a column list plus sample row. It also specifies the dataset scope and granularity, so an agent has enough context to invoke the tool and interpret the result 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?
profile_id is well described in the schema, and dataset_key has no schema description, so the description must compensate. It explains that dataset_key selects a dataset and changes the output, but it does not enumerate valid keys or provide examples; the no-argument catalog is the implied way to discover them. This is adequate but has a clear gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific action (describe/catalog) and resource (raw PPC datasets behind ppc_query), and distinguishes the two operating modes. It also orients the tool relative to ppc_query, so an agent can tell this is schema discovery rather than data querying.
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 explicitly states when to use the no-argument form (return a catalog) versus the dataset_key form (return columns and a sample row), which is clear contextual guidance. It does not name sibling alternatives or state when not to use it, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_harvesting_candidatesPPC: Harvest candidatesARead-onlyInspect
Find converting search terms eligible for promotion to manual campaigns. Returns terms with conversions at or near target ACoS. Covers SP + SB search terms (rows carry a program label; SD has no search-term report).
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Scope by seller SKU (mapped to ASINs; matches SP/SD ad rows directly). | |
| asin | No | Scope to campaigns/ad groups advertising this ASIN. | |
| skus | No | Scope by multiple seller SKUs. | |
| asins | No | Scope to ANY of these ASINs. | |
| limit | No | ||
| offset | No | Page via next_offset to reach ALL rows. | |
| end_date | No | ||
| min_orders | No | Minimum orders. Default: 1. | |
| parent_sku | No | Scope to the full family by parent SKU. | |
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| start_date | No | ||
| parent_asin | No | Scope to the FULL parent family (all child ASINs resolved automatically). | |
| period_days | No | ||
| target_acos | No | Target ACoS as decimal. Default: 0.30. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only and non-destructive, so the safety profile is covered. The description adds useful behavioral context: it returns only converting terms at or near target ACoS, covers SP + SB while excluding SD because no report exists, and notes the program label on rows. This goes beyond the annotations without contradicting them.
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-load the core purpose, then specify the output criterion and program scope. Every sentence carries distinct information: what the tool finds, what filters the results, and what data it covers or excludes. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 14 optional parameters and no output schema, the description gives the core retrieval intent and partial return semantics but does not describe the output fields, default time ranges, or how the scoping parameters interact. It is enough for a basic call but leaves an agent without a clear picture of the returned rows or edge cases like empty results or date defaults.
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 71%, so the schema already documents most parameters. The description reinforces target_acos by mentioning 'at or near target ACoS' but does not add per-parameter semantics for the less-documented fields like limit, offset, or period_days. It adds general context rather than compensating for the remaining undocumented parameters.
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: 'Find converting search terms eligible for promotion to manual campaigns.' This clearly distinguishes it from generic search-term or optimization tools such as ppc_search_terms and ppc_negation_candidates by focusing on harvest candidates. It is not a tautology of the tool name and adds concrete output criteria.
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 context for use is clear: call this when the agent needs search terms that are converting and eligible to promote to manual campaigns, with ACoS near target. It does not explicitly list alternative tools or state when not to use them, but the purpose statement and coverage caveat ('SD has no search-term report') provide enough directional guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_keywordsPPC: KeywordsARead-onlyInspect
Query keyword/target bid performance across Sponsored Products AND Sponsored Brands (rows carry ad_type SP/SB; SD targeting expressions live on ppc_query dataset sd_targets). Returns keywords with current bid, cost, sales, ACoS, clicks, and a recommendation hint (increase_bid, decrease_bid, pause_candidate, monitor). Supports metric threshold filters. NOTE: impressions here are AD impressions, not search volume — for organic search-query volume use brand_sqp.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Scope by seller SKU (mapped to ASINs; matches SP/SD ad rows directly). | |
| asin | No | Scope to campaigns/ad groups advertising this ASIN. | |
| skus | No | Scope by multiple seller SKUs. | |
| asins | No | Scope to ANY of these ASINs. | |
| limit | No | Keywords per page. Default: 25, max: 1000. | |
| offset | No | Pagination offset — use next_offset from the previous response to page through ALL keywords. | |
| acos_max | No | Maximum ACoS as decimal. | |
| acos_min | No | Minimum ACoS as decimal (e.g. 0.50 for 50%). | |
| end_date | No | ||
| spend_min | No | Minimum spend in dollars. | |
| clicks_min | No | Minimum clicks. | |
| min_clicks | No | Click floor at aggregation. Default 0 = FULL Targeting Report parity incl. zero-click stale targets; raise for leaner responses. | |
| parent_sku | No | Scope to the full family by parent SKU. | |
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| start_date | No | ||
| campaign_id | No | ||
| parent_asin | No | Scope to the FULL parent family (all child ASINs resolved automatically). | |
| period_days | No | ||
| target_acos | No | Target ACoS as decimal (e.g., 0.30 for 30%). Default: 0.30. | |
| keyword_contains | No | ||
| campaign_name_contains | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds a critical behavioral caveat that impressions are AD impressions, not search volume, and clarifies that rows carry ad_type SP/SB with SD targets handled elsewhere. Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds meaningful context without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: purpose and scope, return fields, then a key caveat and alternative. Front-loaded and free of 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?
Covers output fields, the SP/SB scope, and the impressions caveat well, but with 21 parameters and no output schema, the lack of date-range and filtering semantics for start_date/end_date/period_days leaves an agent with gaps when constructing queries. Useful for the core case but not fully complete for the parameter space.
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?
The description mentions 'metric threshold filters,' which maps to acos_max, spend_min, and clicks_min, but many parameters (start_date, end_date, period_days, campaign_id, keyword_contains, campaign_name_contains) are left unexplained in both schema and description. With 71% schema coverage, the description only partially compensates for the undocumented parameters.
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 uses a specific verb ('Query') and a precise resource ('keyword/target bid performance') across Sponsor Products and Sponsored Brands, distinguishing SD targeting (ppc_query dataset sd_targets) and organic search volume (brand_sqp). It clearly differentiates this tool from nearest 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 routes users to ppc_query for SD targeting expressions and to brand_sqp for organic search-query volume, giving clear alternatives for related but distinct needs. It does not state general when-to-use versus other PPC tools like ppc_campaigns or ppc_ad_groups, but the purpose is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_match_type_breakdownPPC: Match-type breakdownARead-onlyInspect
Get performance breakdown by keyword match type (Broad, Phrase, Exact, etc.). SP campaigns only. Scope by asin/parent_asin/sku for a true ASIN-accurate cut (SP ad-group grain), or by campaign.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Scope by seller SKU (mapped to ASINs; matches SP/SD ad rows directly). | |
| asin | No | Scope to campaigns/ad groups advertising this ASIN. | |
| skus | No | Scope by multiple seller SKUs. | |
| asins | No | Scope to ANY of these ASINs. | |
| end_date | No | ||
| parent_sku | No | Scope to the full family by parent SKU. | |
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| start_date | No | ||
| campaign_id | No | ||
| parent_asin | No | Scope to the FULL parent family (all child ASINs resolved automatically). | |
| period_days | No | ||
| campaign_name_contains | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context beyond that: it reveals the SP-only restriction, the ad-group grain for ASIN-accurate scoping, and the match-type breakdown structure. This helps an agent understand data semantics the annotations do not 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?
Two sentences, no filler, and the most important information is front-loaded. The description states the function first, then adds the two critical qualifications (SP-only and scoping semantics). Every sentence 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?
There is no output schema and 12 optional parameters, yet the description does not mention return metrics, default date behavior, or how period_days and campaign_name_contains interact with the scoping options. For a read-only breakdown tool this is adequate but noticeably incomplete, since a caller still has to infer or explore several important behaviors.
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 58%, so the schema already documents the obvious scoping parameters. The description adds value by grouping them semantically: asin/parent_asin/sku yield a true ASIN-accurate cut at SP ad-group grain, while campaign-level scoping is a different view. However, it does not compensate for the 5 undocumented parameters (start_date, end_date, period_days, campaign_id, campaign_name_contains), which is the main reason this is not a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action and object: 'Get performance breakdown by keyword match type (Broad, Phrase, Exact, etc.)'. It also scopes the tool to 'SP campaigns only', which distinguishes it from sibling tools like ppc_ad_type_breakdown or ppc_placements that target different dimensions. This is more than a paraphrase of the title and leaves no ambiguity about the tool's core function.
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, actionable scoping guidance: use asin/parent_asin/sku for an ASIN-accurate SP ad-group-grain breakdown, or use campaign scoping for a broader cut. It also explicitly restricts use to SP campaigns, which is a useful exclusion. It does not name alternative sibling tools or spell out when-not-to-use relative to them, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_negation_candidatesPPC: Negation candidatesARead-onlyInspect
Find non-converting search terms with significant spend — candidates for negative keyword addition. Returns terms with high clicks/spend but zero orders. Covers SP + SB search terms (rows carry a program label — pass campaign_type=SB to stage_negatives for SB rows).
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Scope by seller SKU (mapped to ASINs; matches SP/SD ad rows directly). | |
| asin | No | Scope to campaigns/ad groups advertising this ASIN. | |
| skus | No | Scope by multiple seller SKUs. | |
| asins | No | Scope to ANY of these ASINs. | |
| limit | No | ||
| offset | No | Page via next_offset to reach ALL rows. | |
| end_date | No | ||
| min_spend | No | Minimum spend in dollars. Default: 5. | |
| min_clicks | No | Minimum clicks. Default: 10. | |
| parent_sku | No | Scope to the full family by parent SKU. | |
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| start_date | No | ||
| parent_asin | No | Scope to the FULL parent family (all child ASINs resolved automatically). | |
| period_days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds meaningful behavioral context: the tool returns zero-order terms with high clicks/spend, covers SP and SB programs, and rows carry a program label needed for downstream staging. This goes beyond the annotations without contradicting them.
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 deliver the core purpose, output criteria, program coverage, and a downstream routing hint. No filler or repetition of schema content; the most important decision-relevant information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 14-parameter tool with no output schema, the description adequately captures the tool's purpose and return semantics. It could be more complete by noting defaults or date-range behavior, but the schema covers several parameters and the description gives enough for an agent to decide whether to call this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 71%, so most parameters are already self-documenting. The description adds value by explaining the output semantics ('zero orders'), program coverage (SP + SB), and the program-label nuance that affects how rows should be passed to stage_negatives. This clarifies concepts not obvious from individual parameter 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 description clearly identifies a specific verb ('Find') and resource ('non-converting search terms with significant spend'), and frames the output as candidates for negative keyword addition. It is distinct from nearby siblings like ppc_negatives, ppc_search_terms, and stage_negatives because it emphasizes zero orders and spend-based filtering.
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 states what the tool is for and gives actionable cross-tool guidance: pass campaign_type=SB to stage_negatives for SB rows. It does not explicitly name alternatives or state when not to use this tool, but the context is clear enough for an agent to select it for negation-candidate discovery.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_negativesPPC: Current negativesBRead-onlyInspect
Current negative keywords and negative product targets (campaign- and ad-group-level), with state and source.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| state | No | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| campaign_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds useful scope details: entity types (negative keywords and negative product targets), levels (campaign and ad-group), and output dimensions (state and source). However, it does not disclose behavior like default filtering, pagination, or how the type/state parameters interact, so it adds moderate but not rich behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler. It front-loads the core resource ('Current negative keywords and negative product targets') and appends the relevant filtering dimensions efficiently. Every phrase 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?
For a read-only list tool with no required parameters and annotations already covering safety, the description is minimally adequate: an agent can infer it returns current campaign/ad-group-level negatives. But there is no output schema, no default behavior for omitted parameters, and no explanation of 'source' or how state filtering works. This leaves meaningful gaps for an agent deciding how to invoke the tool confidently.
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 only 25%, so the description needs to compensate for undocumented parameters. It vaguely maps to the schema by mentioning 'negative keywords' and 'negative product targets' (type) and campaign/ad-group level (campaign_id), but it does not explain the meaning of the state parameter, defaults, or how the optional filters behave. The enums for type and state provide some structure, but the description adds little semantic 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?
The description clearly identifies the resource: current negative keywords and negative product targets at campaign and ad-group level. It lacks an explicit verb like 'list' or 'get', but the phrase 'Current ... with state and source' makes the read-purpose evident. It does not explicitly distinguish itself from siblings like ppc_negation_candidates or stage_negatives, but 'current' provides some differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given about when to use this tool versus alternatives such as ppc_negation_candidates, stage_negatives, or ppc_keywords. The word 'Current' implies this is for inspecting existing negatives rather than candidates or staged changes, but the description never states the intended use case or exclusions, leaving the agent to infer the selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_new_to_brandPPC: New-to-brandBRead-onlyInspect
New-to-brand purchases/sales and NTB% per campaign (SB + SD, from standard report columns — no AMC needed). SP has no NTB data.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable coverage context — SB/SD scope, no AMC dependency, and SP exclusion — beyond the annotations. It does not disclose the output structure, row granularity beyond 'per campaign,' or how the days parameter shapes results, so transparency is partial but acceptable for a read-only report.
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 concise sentences with zero filler. The core metric and aggregation level are front-loaded, and each sentence earns its place: one defines what the tool returns and its data source, the other sets an expectation about SP exclusion.
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, two-parameter report whose safety profile is covered by annotations, the description is adequate but has clear gaps: the meaning of 'days' is unexplained, no output schema exists so return structure is undescribed, and there is no explicit routing guidance versus sibling ppc_* tools. The metric definition, ad-type scope, and data-source note cover the essentials.
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 50%: only profile_id has a description. The tool description mentions neither parameter, leaving 'days' entirely undocumented — no default, range, or lookback-window semantics. Since coverage is not high (>80%), the description should compensate for the undocumented parameter but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: it reports 'New-to-brand purchases/sales and NTB% per campaign,' expanded from the cryptic NTB abbreviation in the title. It also scopes coverage to SB + SD and explicitly excludes SP, which helps distinguish it from the many sibling ppc_* report tools. It stops short of naming a specific alternative tool, but the purpose itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is useful usage context: the data comes 'from standard report columns — no AMC needed,' and 'SP has no NTB data' is a partial exclusion informing the agent which ad types not to expect. However, it never states when to prefer this tool over siblings such as ppc_campaigns, ppc_campaign_details, or ppc_conversion_funnel, nor does it name alternatives. The intended usage must be inferred from the NTB focus.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_optimization_suggestionsPPC: Optimization suggestionsARead-onlyInspect
Analyze campaigns and categorize into top performers (at or below target ACoS), running hot (significantly over target), and wasted spend (spending with no sales). Includes optimization suggestions for each campaign.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| end_date | No | ||
| min_spend | No | Min spend to include. Default: 5. | |
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| start_date | No | ||
| period_days | No | ||
| target_acos | No | Target ACoS as decimal. Default: 0.30. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this as a read-only, non-destructive operation. The description adds substantive behavioral context by specifying the three output categories and the criteria for each, plus the presence of optimization suggestions. The only minor gap is that 'significantly over target' is not precisely quantified, but the categorization logic is still meaningfully disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that begins with the action and then enumerates the output categories efficiently. Every phrase contributes meaning: the categorization criteria and the inclusion of suggestions are both stated with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does explain the return shape at a conceptual level: categorized campaigns plus optimization suggestions. However, it leaves key parameter semantics unaddressed and does not clarify ambiguity around thresholds or how date-related parameters interact. It is adequate for a basic understanding but not fully complete for confident 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 only 43%, so the description must compensate for undocumented parameters. It aligns with min_spend and target_acos by mentioning 'spending' and 'target ACoS', but it does not clarify limit, start_date, end_date, or period_days. An agent would not understand how to set date ranges or limit the analysis from either the schema or the description.
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 the tool's function: analyze campaigns and categorize them into top performers, running hot, and wasted spend, while providing optimization suggestions. It uses a specific verb ('Analyze') and a specific resource ('campaigns'), and the category definitions add useful detail. It does not explicitly distinguish itself from siblings like ppc_bid_recommendations or ppc_campaign_details, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for understanding campaign performance relative to target ACoS and generating optimization suggestions, but it gives no explicit guidance on when to choose it over related ppc_* analysis tools. No exclusions, prerequisites, or alternative recommendations are provided, leaving the invocation decision mostly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_period_comparisonPPC: Period comparisonBRead-onlyInspect
Compare current period metrics to the previous period of equal length. Returns current metrics, previous metrics, and percentage deltas.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | No | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| start_date | No | ||
| period_days | No | Lookback days. Default: 30. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe read-only operation. The description adds useful behavioral context by explaining that it returns current metrics, previous metrics, and percentage deltas. However, it does not disclose how periods are bounded, what happens with missing dates, or which metrics are included, so transparency is decent but not 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 tight sentences with no filler. The core action is front-loaded, and the return shape is summarized in the second sentence. Every word 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?
For a tool with four parameters and no output schema, the description is too thin. It does not state what metrics are compared, which parameters are required for a valid call, or what the response looks like beyond three broad categories. An agent would struggle to invoke this tool confidently with only this description.
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 only 50%, with start_date and end_date completely undocumented. The description does not compensate: it never mentions these parameters, their formats, how they interact with period_days, or whether they are required. The phrase 'previous period of equal length' hints at the logic but does not clarify parameter usage.
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 uses a specific verb ('compare') and names a distinct resource ('current period metrics' vs 'previous period of equal length'), which clearly separates it from siblings like ppc_daily_trend or ppc_account_summary. It also states the output categories, so an agent knows exactly what this tool is for.
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 about when to choose this tool over alternatives, nor any mention of when not to use it. While the description implies period-over-period analysis, it does not reference sibling tools such as ppc_daily_trend or pnl_period_cards, leaving the selection decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_placement_modifiersPPC: Placement modifiersBRead-onlyInspect
Current placement bid modifiers per campaign (top of search, product pages, rest of search).
| Name | Required | Description | Default |
|---|---|---|---|
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| campaign_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful temporal scope ('current') and enumerates the placement categories, but it does not disclose behavior when campaign_id is omitted, nor the output format or units.
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 one compact, front-loaded sentence with no filler. The parenthetical list of placement categories efficiently adds detail without bloating the 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?
This is a simple read-only lookup with two optional parameters and no output schema, so the description is fairly adequate. However, it does not state the output shape, units of modifiers, or the behavior when only profile_id is supplied, leaving some 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 description coverage is only 50%: profile_id is documented, but campaign_id has no schema description. The description's phrase 'per campaign' gives some meaning to campaign_id, but it does not explain whether it is optional, whether omitting it returns all campaigns, or what format is expected.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (placement bid modifiers), a clear scope (per campaign), and specific placement categories (top of search, product pages, rest of search). It lacks an explicit verb like 'get' or 'list,' but 'current' strongly implies read-only retrieval and the title reinforces the same meaning.
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 the tool should be used when you need current placement bid modifiers for a campaign, but it gives no explicit when-to-use guidance or alternatives. With siblings like ppc_placements and ppc_campaign_details nearby, some routing direction would be valuable, but the core use case is inferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_placementsPPC: Placement performanceARead-onlyInspect
Get performance breakdown by placement type (Top of Search, Product Pages, Rest of Search) from SP placement data. Works at ACCOUNT level (default), at CAMPAIGN level (campaign_id / campaign_name_contains), at PRODUCT level (asin/parent_asin/sku — campaigns advertising those products), or per-campaign across the account (group_by_campaign=true). Placement bid modifiers are included in the response (placement_modifiers) when scoped to campaigns.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Scope by seller SKU (mapped to ASINs; matches SP/SD ad rows directly). | |
| asin | No | Scope to campaigns/ad groups advertising this ASIN. | |
| skus | No | Scope by multiple seller SKUs. | |
| asins | No | Scope to ANY of these ASINs. | |
| end_date | No | ||
| parent_sku | No | Scope to the full family by parent SKU. | |
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| start_date | No | ||
| campaign_id | No | ||
| parent_asin | No | Scope to the FULL parent family (all child ASINs resolved automatically). | |
| period_days | No | ||
| group_by_campaign | No | Return one row per campaign x placement instead of account-level totals. | |
| campaign_name_contains | No | ||
| include_shared_campaigns | No | Product-scoped placements default to campaigns advertising ONLY the family; true restores whole-campaign (catch-alls included, can ~2x). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered by structured data. The description adds behavioral value beyond annotations by disclosing that placement_modifiers are included when scoped to campaigns and that include_shared_campaigns can roughly double product-scoped results. It does not describe output metrics or date defaults, but the disclosed behavior is meaningful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no filler: front-loaded core purpose, then scope modes, then a response-nuance note. Every sentence earns its place, and the structure lets an agent quickly identify what the tool does and which parameters matter.
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 14-parameter tool with no output schema, the description covers the main selection modes, the default behavior, and a notable response field, which is enough to make a reasonable first call. It does not specify default date windows or the full metric set, so it is not fully complete, but the core usage context is 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 64%, and the description adds useful semantic context for scoping parameters by mapping asin/parent_asin/sku to product-level campaigns and explaining group_by_campaign. However, it adds little for start_date, end_date, period_days, campaign_id, or campaign_name_contains, which are not well described in the schema either. The description partially compensates for the coverage gap but does not fully carry the parameter documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get performance breakdown by placement type' from SP placement data, and names the placement types (Top of Search, Product Pages, Rest of Search). It also distinguishes the tool by enumerating account, campaign, and product scoping modes, separating it from sibling breakdown tools like ppc_match_type_breakdown or ppc_ad_type_breakdown.
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 explicitly explains when to use each scoping mode: ACCOUNT level default, CAMPAIGN level via campaign_id/campaign_name_contains, PRODUCT level via asin/parent_asin/sku, and per-campaign via group_by_campaign=true. It does not name sibling alternatives to exclude, but the scope guidance is clear and actionable enough for an agent to select this tool appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_portfoliosPPC: PortfoliosARead-onlyInspect
Get portfolio-level performance rollup. Shows each portfolio with campaign count, total spend, sales, and ACoS.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | Page via next_offset to reach ALL rows. | |
| end_date | No | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| start_date | No | ||
| period_days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only safety profile is clear. The description adds value by specifying the rollup content and metrics shown, which goes beyond annotations. It does not disclose pagination or date-window behavior, but the read-only annotations lower the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences. The first front-loads the verb and resource, the second lists the returned fields. Every word earns its place with no fluff or repetition of the name/title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with six parameters, only one-third of which are documented in the schema, and no output schema, the description is too thin to fully guide invocation. It does not explain date requirements, defaults, or pagination semantics, leaving significant 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 description coverage is only 33% (offset and profile_id have descriptions; limit, end_date, start_date, and period_days do not). The tool description does not compensate by explaining how dates, period_days, or pagination parameters behave, so an agent cannot confidently construct a complete request.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('portfolio-level performance rollup'), and lists the exact metrics returned (campaign count, spend, sales, ACoS). The portfolio-level qualifier distinguishes it from account- or campaign-level sibling tools like ppc_account_summary and ppc_campaigns.
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 'portfolio-level performance rollup' implies when to use it: whenever portfolio-level PPC metrics are needed. However, it does not mention alternatives or explicitly state when not to use this tool, leaving the agent to infer routing 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.
ppc_product_familyPPC: Product familyARead-onlyInspect
Look up parent/child product hierarchy from the product library (Category Listing report). Use this when the user references a parent SKU, parent ASIN, product family, listing, or any product identifier that isn't a direct campaign name. Returns the parent product info and all child variants with their ASINs. After getting child ASINs, use ppc_advertised_products with the asins parameter to pull PPC performance for the entire family. IMPORTANT: When a user mentions a parent SKU (e.g. 'SEAMLESS-LARGE-SPATULAS'), this is NOT a campaign name — it's a product family identifier. Use this tool first to resolve the child ASINs, then query PPC data for those ASINs.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | Fuzzy search across SKU, ASIN, parent SKU, and product title. Use when unsure of the exact identifier. | |
| child_asin | No | A child ASIN — finds which parent family it belongs to and returns the full family. | |
| parent_sku | No | Exact parent SKU to look up (e.g. 'SEAMLESS-LARGE-SPATULAS'). Returns parent + all children. | |
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| parent_asin | No | Parent ASIN to look up. Returns parent + all children. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and non-destructive, so the bar is lower. The description adds the key behavior that it resolves the family hierarchy first and returns parent plus all child ASINs, enabling the recommended PPC workflow. It also gives a concrete parent-SKU example, though it does not disclose rate limits or authentication-specific 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 longer than average but front-loads the core purpose and usage decision. The repeated emphasis on parent SKU not being a campaign name is somewhat redundant, but it reinforces a critical disambiguation and each sentence contributes to correct tool selection or invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description adequately states what is returned: parent product info and all child variants with their ASINs. It covers when to use the tool, what to expect, a concrete input example, and the next step in the workflow, so an agent has enough context 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%, so the baseline is 3. The description adds value beyond the schema by showing a real parent-SKU example ('SEAMLESS-LARGE-SPATULAS'), clarifying that the search covers product identifiers rather than campaign names, and explaining the recommended ASIN-based follow-up query.
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 clear verb and resource: look up parent/child product hierarchy from the product library. It also lists the exact trigger references (parent SKU, parent ASIN, product family, listing) and explicitly contrasts this with campaign names, making it easy to distinguish from sibling PPC lookup 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?
The description gives explicit when-to-use guidance: use it when a user references a parent SKU, parent ASIN, product family, listing, or any product identifier that isn't a campaign name. It also names the follow-up tool, ppc_advertised_products, with the required asins parameter, and warns against misinterpreting a parent SKU as a campaign name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_product_reportPPC: Product report (canonical)ARead-onlyInspect
THE canonical product/family report — ONE call returning every view labeled: family resolution, asin_accurate ad totals (SP+SD ad grain — the numbers to quote for ad spend/ACoS; SB per-ASIN spend is in the blended pnl only), campaign_grain context (top campaigns + family-exclusive placements with modifiers — for finding bleeders, NEVER summed as a product total), blended pnl (TACoS/total sales/margin), and a headline block with quote_rules. PREFER this over assembling the pieces yourself for any "how is product X doing" question.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | ||
| asin | No | ||
| end_date | No | ||
| parent_sku | No | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| start_date | No | ||
| parent_asin | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish read-only/non-destructive behavior, and the description adds substantial value: it identifies which numbers are safe to quote for ad spend/ACoS, warns that SB per-ASIN spend appears only in the blended PnL, and explicitly says campaign-grain data must never be summed as a product total. These are critical behavioral caveats 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?
The description is dense but every clause earns its place: it front-loads the canonical status, lists all included views, and embeds necessary warnings inline. It avoids filler and relies on structured labels and caveats rather than redundant prose.
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 there is no output schema, the description does a good job enumerating the returned views and critical caveats. It is less complete on input semantics and response structure, but for a read-only aggregate report the core selection and interpretation guidance is 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 only 14%, so the description needs to compensate, but it never explains sku, asin, end_date, or parent_sku. It gives contextual hints around 'product/family' and 'family resolution,' but not enough for an agent to know how to populate or scope the parameters correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('canonical product/family report') and a specific action ('ONE call returning every view labeled...'). It enumerates the constituent views and explicitly frames itself as the preferred option for product performance questions, clearly distinguishing it from sibling tools that return individual pieces.
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 usage directive: 'PREFER this over assembling the pieces yourself for any "how is product X doing" question.' It does not name specific alternative tools or describe when to avoid this tool, but the usage context is clear enough for an agent to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_queryPPC: Query raw datasetARead-onlyInspect
FULL-fidelity row-level query over any raw PPC dataset (see ppc_describe): column projection, filters (eq/neq/gt/gte/lt/lte/in/contains), date bounds, ordering, limit ≤1000 + offset — page with offset until a short page to retrieve complete datasets. This is the path for daily time series below account level, SB/SD keyword-level data, and anything the shaped ppc_* readers cap. Profile tenancy enforced automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| columns | No | ||
| date_to | No | ||
| filters | No | ||
| order_by | No | ||
| date_from | No | ||
| order_dir | No | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| dataset_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it read-only and non-destructive; the description adds non-obvious behavior such as the hard limit of 1000 rows per page, the recommendation to page with offset until a short page, and automatic profile-tenancy enforcement. It does not describe default ordering or exact response shape, but the main operational behaviors are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but economical; every clause carries a distinct fact (fidelity, projection, filters, dates, ordering, pagination, use cases, tenancy). It is front-loaded with the core purpose. A slight structural cost comes from one long multi-clause sentence, but there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 10-parameter tool with no output schema and weak schema descriptions, this description covers the essential invocation details: pagination strategy, supported operators, use cases, and tenancy. The main remaining gaps are exact date formats and filter-object syntax, and what the returned rows look like, but the basic contract is clear.
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 only 10%, so the description must compensate. It maps nearly every parameter family to a capability: column projection, filters with operator list, date bounds, ordering, and limit/offset, plus dataset_key via ppc_describe and profile_id via tenancy enforcement. It stops short of showing the exact JSON shape for filters, but it adds substantial meaning beyond the bare 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 action ('FULL-fidelity row-level query') and a concrete resource ('any raw PPC dataset'), and it explicitly separates itself from the shaped ppc_* readers, which are said to cap certain data. It also points to ppc_describe for dataset discovery, making the tool's niche unmistakable.
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 conditions for choosing this tool: daily time series below account level, SB/SD keyword-level data, and anything the shaped ppc_* readers cap. It does not enumerate when to prefer specific alternative named tools, but the shaped-reader exclusion gives usable routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ppc_search_termsPPC: Search termsARead-onlyInspect
Query search term performance data. Returns terms sorted by spend with metrics: cost, sales, ACoS, clicks, impressions, purchases, CVR. Supports filtering by search term text, campaign name, and metric thresholds. FULL dataset is reachable: when the response has truncated=true, call again with offset=next_offset until it is false — never treat one page as complete.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Scope by seller SKU (mapped to ASINs for SB coverage; matches SP/SD ad rows directly). | |
| asin | No | Scope to terms from campaigns/ad groups advertising this ASIN. | |
| skus | No | Scope by multiple seller SKUs. | |
| asins | No | Scope to terms from campaigns/ad groups advertising ANY of these ASINs. | |
| limit | No | Terms per page. Default: 25, max: 1000. | |
| offset | No | Pagination offset — use next_offset from the previous response to page through ALL terms. | |
| acos_max | No | Maximum ACoS as decimal. | |
| acos_min | No | Minimum ACoS as decimal (e.g. 0.50 for 50%). | |
| end_date | No | ||
| spend_min | No | Minimum spend in dollars. | |
| clicks_min | No | Minimum clicks. | |
| min_clicks | No | Click floor applied at aggregation. Default 0 = FULL report parity including the 0-2 click long tail; raise for leaner responses. | |
| parent_sku | No | Scope to the full family by parent SKU. | |
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| start_date | No | ||
| campaign_id | No | Filter to terms from ONE campaign (exact id; covers SP and SB campaigns). | |
| parent_asin | No | Scope to the FULL parent family: resolves every child ASIN and returns terms from all campaigns/ad groups advertising any of them — the way to pull a parent product's complete search-term report. | |
| period_days | No | ||
| search_term_contains | No | Filter terms containing this substring. | |
| campaign_name_contains | No | Filter to terms from campaigns matching this name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=true, destrctiveHint=false), the description discloses behavior annotations can't express: results are sorted by spend, the returned metric set, and critically the pagination contract (truncated=true, offset=next_offset, never treat one page as complete). This directly prevents a common integration failure — stopping at page one — and is exactly the kind of beyond-the-annotation trait a query tool should reveal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no filler: the first states purpose and output shape, the second enumerates filter dimensions, and the third carries the high-stakes pagination warning with emphasis ('never treat one page as complete'). Every sentence earns its place and the most operationally important guidance is front-loaded last for vividness without bloating the entry.
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 complexity (20 parameters, no output schema), the description covers the essential invocation contract: return metrics, sort order, filter capabilities, and the pagination loop required to reach the FULL dataset. The residual gap is that the date-scoping parameters (start_date, end_date, period_days) have empty schema descriptions and are not addressed in the description, which is a minor but real hole for a time-series ad metrics tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 85%, so the baseline of 3 applies and the schema already documents most parameters well (e.g., parent_asin, min_clicks, offset all carry rich descriptions). The description adds modest semantic framing by mapping its stated filters ('search term text, campaign name, metric thresholds') to parameter groups, plus reinforcing the offset/next_offset contract, but it does not compensate for the few undocumented date parameters (start_date, end_date, period_days) that fall in the remaining 15%.
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 ('Query search term performance data') and details the exact return shape: terms sorted by spend with the metric list (cost, sales, ACos, clics, impressions, purchases, CVR). This is concrete enough to distinguish it from siblings like ppc_keywords (keywords, not search terms), ppc_campaigns, and brrand_top_search_terms — the metric list and spend-sort order make the resource unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by naming the tool's resource (search-term performance, with metric thresholds and text/campaign filtering) but never states when to pick this over alternatives such as ppc_keywords, ppc_product_report, or pp_cquery. There are no exclusions or explicit alternative routing; the invocation guidance that exists is about paging within this tool ('never treat one page as complete'), which is valuable but is not when-vs-alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
product_cogsProducts: COGSBRead-onlyInspect
Current per-SKU landed costs (COGS) and coverage summary.
| Name | Required | Description | Default |
|---|---|---|---|
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds minimal context beyond that: 'Current' signals this is not a staged or hypothetical view, and 'coverage summary' hints at aggregation or completeness. It does not explain what 'coverage' means or what happens when the token has multiple seller connections, but for a read-only tool these are moderate gaps.
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 one concise sentence with no filler and front-loads the key resource and scope. It earns its place, though it is terse enough that 'coverage summary' could have been clarified without much length. Overall it is well structured and easy to scan.
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 one optional parameter and read-only annotations, the description is mostly adequate, but the absence of an output schema makes the vague 'coverage summary' more significant. An agent cannot tell whether the tool returns a detailed line-item list, a summary object, or both. It also does not clarify how seller filtering behaves when multiple connections exist, though the schema partially handles that.
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 optional seller_connection_id is already documented well in the schema, including the conditional requirement. The tool description adds no parameter-level meaning beyond pointing at COGS. With full schema coverage, the baseline of 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 the resource clearly: per-SKU landed costs (COGS), and adds scope via 'Current' and 'coverage summary'. It is easy to tell this is a read-style COGS tool rather than a staged update, and the readOnlyHint annotation reinforces that. However, it does not use an explicit verb like 'retrieves' or 'lists', and 'coverage summary' is slightly vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance about when to use this tool versus alternatives such as stage_cogs_update or product_fee_preview. The word 'Current' implies it is for viewing existing COGS rather than updating them, but no exclusions or alternative routing are stated. An agent must infer the usage context from the name and annotations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
product_fee_previewProducts: Amazon fee previewBRead-onlyInspect
Amazon's own estimated fees per SKU for the coming weeks (referral, fulfillment, storage).
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | ||
| asin | No | ||
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only, non-destructive safety profile. The description adds useful context by clarifying that fees are Amazon's own estimates and forward-looking, but it does not discuss response format, how the optional parameters interact, or any other runtime 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 one well-structured sentence with all terms earning their place, and the core scope ('per SKU') is front-loaded. It is easy to scan.
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?
Despite having only three optional parameters, the low schema coverage and absence of an output schema mean the description needs to explain parameter usage and what the preview includes; it only mentions fee categories and the per-SKU scope. An agent would still be guessing about required identifiers and response structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, and the description only weakly supports the 'sku' parameter via 'per SKU'; it does not explain the 'asin' parameter or the relationship/alternation between sku and asin. seller_connection_id is already documented in the schema, so the description adds little 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?
The description clearly identifies what the tool provides: Amazon's own estimated fees per SKU over the coming weeks, broken out into referral, fulfillment, and storage. It does not use an explicit verb like 'get' or 'list', and it does not distinguish itself from sibling product tools such as product_cogs or pnl_summary.
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 is given about when to choose this tool versus alternatives, nor are any exclusions or prerequisites mentioned. The only implicit signal is that the tool is relevant when fee previews are needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
product_libraryProducts: Library & breakevenBRead-onlyInspect
The canonical product catalog with breakeven ACoS and effective BE margin targets per product family.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | page via next_offset to reach ALL products | |
| search | No | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| include_archived | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safe-read profile is covered. The description adds that the tool returns breakeven ACoS and BE margin targets per product family, but it does not disclose behavior such as pagination, filtering semantics, or what happens with archived products. With annotations carrying the safety context, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-formed sentence with no filler. It front-loads the core identity ('canonical product catalog') and then states the distinguishing data content. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With five optional parameters, no output schema, and a large sibling set, this description is too thin. It omits pagination behavior, return shape, param semantics, and usage boundaries. An agent would likely need to call the tool or consult additional documentation to use 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 only 40% (2 of 5 parameters documented), and the description provides no parameter-level meaning. It does not explain limit, search, include_archived, or offset pagination beyond the schema's brief offset note, so it fails to compensate for the low coverage.
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 clear resource: 'canonical product catalog' and specific content: 'breakeven ACoS and effective BE margin targets per product family.' It does not use an explicit action verb like 'list' or 'retrieve', and it does not distinguish itself from siblings such as ppc_product_report or product_cogs, but the core purpose is clear.
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 is given on when to use this tool versus alternatives. The word 'canonical' hints at a source-of-truth role, but there is no explicit context, exclusions, or mention of sibling tools that might be more appropriate for other product data needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stage_ad_group_createStage: CREATE ad groupAInspect
Create a new SP ad group in an existing campaign (name + default bid; created ENABLED). SB structure goes through stage_campaign_create. Stages a proposal — NOTHING changes until confirm_staged_changes.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| campaign_id | Yes | ||
| default_bid | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the annotations by disclosing that this tool only stages a proposal and that nothing changes until confirm_staged_changes. It also adds the created-ENABLED default behavior. These are meaningful behavioral details beyond the raw readOnly/destructive hints, though auth or confirmation response behavior are not covered.
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-load the core purpose, then add the critical SB alternative and the staged-change caveat. Every sentence adds value and there is no fluff or repetition of schema details.
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 staging tool, the description covers the essential context: what is created, where, in what state, and that it is staged until confirmation. It also routes SB users elsewhere. Minor gaps remain around optional profile_id handling and what exactly happens after confirmation, but those are partially covered by the schema and the explicit confirm_staged_changes reference.
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 low (roughly 25%), so the description must compensate. It does clarify that campaign_id refers to an existing campaign and that name and default_bid are part of the creation payload. However, it does not explain the optional profile_id behavior or default_bid format/units, so compensation is only partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: creating a new SP ad group in an existing campaign. It also adds key scoping details (name + default bid, created ENABLED) and explicitly distinguishes this from the SB path via stage_campaign_create, making sibling differentiation clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states when this tool applies: SP ad groups in existing campaigns. It also gives an explicit exclusion by saying SB structure goes through stage_campaign_create, which directs the agent to the correct alternative. The staging workflow is also signaled by referencing confirm_staged_changes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stage_ad_group_updateStage: Ad group name/bidAInspect
Rename an ad group (SP/SB) or change its default bid (SP only — SB ad groups have no default bid). Stages a proposal — NOTHING changes until confirm_staged_changes.
| Name | Required | Description | Default |
|---|---|---|---|
| updates | Yes | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| ad_group_id | Yes | ||
| campaign_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only give readOnlyHint=false and destructiveHint=false. The description adds the critical behavioral contract that nothing changes until confirm_staged_changes, plus the SB no-default-bid constraint. This materially changes how an agent invokes and interprets the call.
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 action, and a clear warning that nothing changes until confirmation. No filler and every sentence 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 staging behavior and the SP/SB nuance are covered, but the description lacks the shape of valid updates and does not reference related tools such as staged_changes_pending or cancel_staged_changes. Since there is no output schema, an agent has limited guidance on what a successful staged call returns or how to verify it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25%, so the descriptor must compensate. It does clarify that updates relate to name/default bid and that campaign_type matters for SP/SB. However, the updates object is opaque: no allowed keys, examples, or structure are provided, and ad_group_id has no schema description.
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 precise actions: renaming an ad group or changing its default bid, with explicit SP/SB scoping. It also distinguishes itself from confirm_staged_changes by clarifying this tool only stages a proposal.
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: rename works for both SP and SB, bid changes work for SP only, and SB bid changes are excluded. It also points to confirm_staged_changes as the follow-up action. It does not explicitly enumerate all alternative stage_* tools, but the usage context is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stage_aplus_updateStage: A+ contentAInspect
Create or update an A+ (EBC/Premium) content document, optionally attach ASINs and submit for Amazon approval. modules: RAW A+ module JSON (copy shapes from aplus_document) or simplified {type: text | image_text | company_logo, headline, body, image}. Images: {staged_file_id: N} via ppc_asset_upload_link — A+ does NOT accept public URLs (bytes ride Amazon's Uploads API on confirm). Omit content_reference_key to CREATE. Draft-only confirms are safe to iterate; submit_for_approval=true sends to Amazon review (asynchronous, typically days). Brand Registry required. Stages a proposal — NOTHING changes until confirm_staged_changes.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| locale | No | ||
| modules | No | ||
| content_type | No | ||
| apply_to_asins | No | ||
| marketplace_id | No | ||
| submit_for_approval | No | ||
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. | |
| content_reference_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate readOnlyHint=false and destructiveHint=false, so the description carries the behavioral burden. It discloses the staging lifecycle, that nothing changes until confirmation, that image bytes travel via Amazon's Uploads API on confirm, and that approval review is asynchronous and typically takes days. This is substantial context 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?
The description is dense but every sentence earns its place: main purpose first, then module/image formats, create trigger, approval behavior, prerequisite, and staging caveat. There is no filler and no unnecessary repetition of schema 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?
For a complex 9-parameter staging tool with no output schema, the description covers creation vs update, module shapes, image constraints, approval lifecycle, brand registry requirement, and the connection to confirm_staged_changes. The main gaps are minor: locale/marketplace_id semantics, EMC content type detail, and an explicit statement about what the tool returns, but an agent can still 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?
With schema description coverage at only 11%, the description compensates well for most parameters: modules formats, content_reference_key omission for create, submit_for_approval behavior, and staged_file_id image requirements. However, name, locale, marketplace_id, and the EMC vs EBC distinction are left undocumented by both schema and description.
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 'Create or update an A+ (EBC/Premium) content document' – a specific verb and resource. It also says it 'stages a proposal — NOTHING changes until confirm_staged_changes', which clearly separates this tool from confirm_staged_changes and from read-only references like aplus_document.
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 explicit routing signals: use aplus_document to copy module shapes, use ppc_asset_upload_link for images, and use confirm_staged_changes to apply changes. It also states a clear exclusion – A+ does NOT accept public URLs – and explains when draft-only confirms are safe versus when submit_for_approval triggers asynchronous Amazon review.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stage_asset_uploadStage: UPLOAD assetAInspect
Upload an IMAGE or VIDEO into the Creative Asset Library — from a public source_url, or from a staged_file_id (browser upload via ppc_asset_upload_link; images only). Reference the returned asset_id in stage_campaign_create. brandEntityId auto-resolved for SB use when omitted. VIDEO upload is EXPERIMENTAL: verify the id in an sb_video create afterward. Stages a proposal — NOTHING changes until confirm_staged_changes.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| tags | No | ||
| asins | No | ||
| file_name | No | e.g. "logo.png" / "video.mp4" — required when the URL path has no usable filename (jpg/png/mp4/mov/wmv/avi) | |
| asset_type | No | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| source_url | No | ||
| asset_sub_type | No | IMAGE subtypes, or BACKGROUND_VIDEO (the only video value; defaulted for VIDEO) | |
| staged_file_id | No | from ppc_asset_upload_link (instead of source_url) | |
| brand_entity_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
All three annotations are false (readOnlyHint=false, openWorldHint=false, destructiveHint=false), so the description carries the full burden of behavioral disclosure — and it delivers. It reveals that this is a staging operation that changes nothing until confirm_staged_changes, flags VIDEO as EXPERIMENTAL with a mandatory verification step, discloses auto-resolution of brand_entity_id, and constrains staged_file_id to images only. This is exactly the behavioral context an agent needs, well beyond what the annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences with zero filler: the core action and both input paths are front-loaded, followed by the downstream reference, auto-resolution note, experimental warning, and staging caveat. Every sentence contributes distinct information an agent cannot infer from 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?
Despite 10 parameters and no output schema, the description covers the critical decisions: input source selection, brand resolution, video risk, and the staging workflow, plus a hint about the return value via 'Reference the returned asset_id.' Minor gaps remain — conflict handling if both source_url and staged_file_id are supplied, and error behavior for invalid sources — but the essentials for correct invocation are 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 only 40%, so the description must compensate, and it partially does. It explains the source_url vs staged_file_id trade-off including the images-only restriction that the schema's staged_file_id description omits, and adds auto-resolution semantics for the otherwise-undocumented brand_entity_id. The remaining undocumented params (name, tags, asins, file_name) are left to their self-evident names, which is acceptable but not fully compensated for.
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 pair: 'Upload an IMAGE or VIDEO into the Creative Asset Library.' It clarifies the two mutually exclusive input routes (public source_url vs staged_file_id from ppc_asset_upload_link) and ties itself into the broader workflow by telling the agent to reference the returned asset_id in stage_campaign_create. This clearly distinguishes it from sibling stage_* tools and from ppc_asset_upload_link.
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 concrete decision guidance: use staged_file_id only when the file came from ppc_asset_upload_link and is an image, use source_url otherwise; brand_entity_id is auto-resolved for SB use when omitted. The experimental video caveat ('verify the id in an sb_video create afterward') and the staging rule ('NOTHING changes until confirm_staged_changes') tell the agent when and how to follow up. It stops short of explicitly naming 'when not to use' alternatives, but the staged-vs-immediate distinction is strongly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stage_automation_reviewStage: Approval-inbox decisionAInspect
Stage a decision on automation approval-inbox items (see automation_activity for the inbox itself): action=approve|reject|undo, each takes log_ids (max 100) + optional reason, and stages a proposal — NOTHING happens until confirm_staged_changes. approve executes the approved actions LIVE against Amazon after confirmation; undo REVERTS an applied action at Amazon (pushes the prior value back; 24h window; bid/budget/status/placement changes only).
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Which mutation to stage; every action returns a proposal that needs confirm_staged_changes — nothing changes until the user confirms. | |
| params | No | Action-specific fields (see description). | |
| reason | No | ||
| log_ids | No | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description carries the full behavioral burden and does so thoroughly: it discloses the staged-proposal mechanism ('NOTHING happens until confirm_staged_changes'), the live external effect of approve after confirmation, and detailed undo semantics (reverts at Amazon, pushes prior value back, 24h window, restricted to bid/budget/status/placement changes). This adds far more than the sparse annotations (readOnlyHint=false, destructiveHint=false) provide, and does not contradict them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with no filler; the core purpose is front-loaded and the critical 'NOTHING happens until confirm_staged_changes' warning is emphatically placed. The undo specifics (24h window, change-type restrictions) add length but are essential behavioral constraints, so the density is justified.
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 mutation tool with no output schema and a two-phase staging workflow, the description covers the action semantics, parameter constraints, external side-effects, and related-tool references (automation_activity, confirm_staged_changes). Minor gaps remain: what reject does post-confirmation is implied but not stated, and profile_id semantics rely on the schema rather than the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 60%, the description compensates meaningfully: it clarifies that every action takes log_ids with a hard max of 100, states reason is optional, and maps each enum value to its behavioral meaning. It does not address profile_id or the nested params structure in detail, but the schema already documents profile_id and the description covers the core parameter relationships.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource combination: 'Stage a decision on automation approval-inbox items.' It enumerates the three possible actions (approve|reject|undo) and explicitly disambiguates from siblings by naming automation_activity as the inbox source and confirm_staged_changes as the required follow-up, so an agent can distinguish it from the many other stage_* 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?
The description provides clear workflow context: read the inbox via automation_activity, stage a decision here, and nothing takes effect until confirm_staged_changes. It gives a pointed cross-reference to a sibling, but does not explicitly state when NOT to use this tool (e.g., bid-only changes via stage_bid_changes) or mention cancel_staged_changes as the alternative for abandoning a staged proposal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stage_automation_ruleStage: Automation rule changeAInspect
Stage a rule mutation: action=create|update|delete|toggle|duplicate|assign|unassign|run_now. Stages a proposal — NOTHING changes until confirm_staged_changes (reads live in automation_rules). Mutations take rule_id (except create); create/update take params (name, entity_level, conditions, actions, guardrails, run_frequency, approval_mode...). approval_mode accepts manual|ai_review|ai_shadow — NEVER auto: granting a rule unsupervised execution is app-only. assign takes params.entities [{entity_type, entity_id}]. Condition metrics/operators/action types, per-action config keys AND top-level rule params are ALL validated (automation_rules action=describe for the catalog) - unknown keys anywhere are rejected with the valid set named. Schedule: run_frequency (daily|every_n_days|weekly), run_frequency_n, run_days_of_week (0=Sun..6=Sat), run_hour_utc (0-23). Action configs: add_negative takes negative_type (NEGATIVE_EXACT|NEGATIVE_PHRASE) + level (auto|campaign|ad_group); harvest takes match_type (EXACT|PHRASE|BROAD), sub_action, bid, target_campaign_id/target_ad_group_id. Conditions compare a metric to a fixed value, OR to the product family's breakeven ACoS: value_ref='breakeven_acos' + value_offset (points; -5 = fire 5 points below breakeven) instead of value — ACoS metrics only; resolves computed breakeven first, manual BE margin target as fallback. Placement conditions (SP campaign rules): metric keys placement_{tos|pp|ros}_{acos|modifier|clicks|spend|cvr}. run_now executes the rule LIVE after confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Which mutation to stage; every action returns a proposal that needs confirm_staged_changes — nothing changes until the user confirms. | |
| params | No | create/update rule fields; assign: {entities: [...]} | |
| rule_id | No | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations: it discloses that all mutations are staged non-destructively, that validation rejects unknown keys anywhere with the valid set named, that run_now executes live only after confirmation, and that automatic unsupervised execution is forbidden. These are important behavioral traits that the annotations alone do not 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 dense and long, but almost every sentence carries a substantive fact that an agent needs to invoke the tool correctly. It front-loads the core staging concept and action list before diving into parameter details. It loses a point only because the sheer wall of technical detail could be better organized with lists or separators.
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?
This tool has nested objects, multiple enums, complex validation behavior, and no output schema, yet the description covers the full decision space: actions, param shapes, schedule domains, action configs, conditions, validation policy, and the confirm-step requirement. The only lightly covered field is profile_id, but the schema already documents it, so 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?
The schema only says params is an object with a terse hint, but the description supplies the full semantic payload: action-specific param requirements, approval_mode values, assign entity structure, schedule fields with their allowed ranges, action config keys, and condition value references. It compensates heavily for the sparse schema and even resolves ambiguity such as value_ref='breakeven_acos' plus value_offset.
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-resource pair: 'Stage a rule mutation', then enumerates the eight distinct mutation types. It clearly distinguishes itself from close siblings by stating that nothing changes until confirm_staged_changes and that live reads happen in automation_rules. This is far more precise than a generic 'manage automation rules' statement.
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 explicit routing guidance: use confirm_staged_changes to apply a staged proposal, use automation_rules to read live rules, and never pass approval_mode=auto, which is app-only. It also explains that create/update require params while other mutations need rule_id, giving the agent the decision rules for choosing the right action form.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stage_bid_changesStage: BidsAInspect
Propose bid changes on SP + SB + SD keywords/targets matching filters (ad_type narrows to one program). Pass set_to (exact new bid) OR adjust_pct (percent change) — one is required. PRECISION: target_ids stages exactly those targets (the id every reader returns) — use it whenever a keyword label repeats across ad groups (every AUTO campaign); ad_group_id scopes to one ad group. SAFETY: if the filter matches more than limit, the call is REJECTED (never silently truncated) unless allow_truncation=true; responses always carry matched_count/staged_count/truncated. Prefer adjust_pct for multi-target changes — a flat set_to ignores each target's starting bid. SD current bids are entity-synced ~half-hourly; a NULL current_bid means not yet synced. BIS/vCPM campaigns: check floors via KEYWORD_INVALID_BID semantics — see ppc_bid_recommendations. STAGING ONLY: saves a reviewable diff in AMZ Vault — NOTHING is sent to Amazon until confirm_staged_changes is called.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| reason | No | Why THIS change, 1-3 sentences specific to it - shown in the approval modal | |
| set_to | No | ||
| ad_type | No | ||
| targets | No | PER-TARGET bids: each target gets its own new bid, derived from its own data — PREFERRED for optimization passes over one batch-wide percentage. Sufficient alone; mutually exclusive with set_to/adjust_pct. | |
| acos_max | No | PERCENTAGE POINTS (25 = 25%), unlike the read tools' decimals; values < 1 are rejected as ambiguous. Only targets AT OR UNDER this 30d ACoS (zero-sale rows excluded) — the safe bulk scale-up guard | |
| acos_min | No | PERCENTAGE POINTS (25 = 25%), unlike the read tools' decimals; values < 1 are rejected as ambiguous. 30d window; zero-sale spenders included (infinite ACoS) | |
| adjust_pct | No | ||
| match_type | No | filter to one match type (match-type tiering) | |
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| target_ids | No | stage exactly these targets; sufficient alone — other filters become assertions that FAIL LOUDLY on contradiction | |
| ad_group_id | No | ||
| campaign_id | No | ||
| allow_truncation | No | ||
| keyword_contains | No | ||
| campaign_name_contains | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false and destructiveHint=false, so the description carries the burden — and it delivers: rejection-not-truncation behavior with limit/allow_truncation, guaranteed response fields (matched_count/staged_count/truncated), the half-hourly SD entity-sync caveat with NULL current_bid semantics, and the staging-only guarantee that nothing reaches Amazon until confirmation. No contradiction with 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?
Long but information-dense; every sentence carries operational value and labeled sections (PRECISION:, SAFETY:, STAGING ONLY:) make it scannable for an agent. Front-loaded with the core purpose and the required-parameter contract before edge-case caveats.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a high-complexity 16-param staging tool with no output schema and minimal annotations, so the description must cover the full invocation contract — and it does: parameter relationships, rejection/truncation safety, response fields, sync lag, floor-semantics cross-reference, and the confirm_staged_changes workflow. No critical information 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?
With only 44% schema coverage and 16 params, the description compensates strongly: it defines the set_to/adjust_pct contract, target_ids precision behavior, ad_group_id scoping, limit/allow_truncation safety semantics, and acos_min/acos_max percentage-point units with zero-sale inclusion rules. However, adjust_pct's own value format (10 = +10% or 0.10?) is never clarified despite the description's careful unit disambiguation for acos, and the 'one is required' sentence omits targets/target_ids as sufficient alternatives (the schema partially covers those).
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?
'Propose bid changes on SP + SB + SD keywords/targets matching filters' names a specific verb (propose/stage), resource (bids), and program scope, clearly separating it from stage_budget_changes and other stage_* siblings. The 'STAGING ONLY: saves a reviewable diff... NOTHING is sent to Amazon until confirm_staged_changes is called' sentence pins down the tool's exact role in the workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use guidance: 'Prefer adjust_pct for multi-target changes — a flat set_to ignores each target's starting bid' and 'use it [target_ids] whenever a keyword label repeats across ad groups (every AUTO campaign)'. Names the follow-up tool (confirm_staged_changes) and cross-references ppc_bid_recommendations for BIS/vCPM floors, so an agent knows both the alternative and the next step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stage_budget_changesStage: BudgetsAInspect
Propose SP campaign daily-budget changes. Pass set_to (exact new budget) OR adjust_pct (percent change) — one is required. SB/SD budgets are updated per campaign via stage_campaign_update instead. STAGING ONLY: saves a reviewable diff in AMZ Vault — NOTHING is sent to Amazon until confirm_staged_changes is called.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| reason | No | Why THIS change, 1-3 sentences specific to it - shown in the approval modal | |
| set_to | No | ||
| ad_type | No | ||
| adjust_pct | No | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| campaign_id | No | ||
| campaign_name_contains | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clearly discloses that this tool does NOT send changes to Amazon and only saves a reviewable diff in AMZ Vault until confirm_staged_changes is called. This is meaningful behavioral context beyond the annotations' basic readOnlyHint/destructiveHint flags. It also uses 'Propose' and 'STAGING ONLY' to set accurate expectations about side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three tight sentences with no filler. The key constraint (set_to OR adjust_pct) and the most important safety behavior (staging-only) are front-loaded, and the sibling routing is placed exactly where it is useful.
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 staging workflow and safety profile are well covered, and the tool's core purpose is clear. However, with no output schema and several unexplained parameters, the description leaves gaps around campaign targeting and response behavior. It is adequate for a human but incomplete for an agent that needs to know how to select campaigns and interpret the staged result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 25% schema description coverage, the description must compensate, but it only explains set_to and adjust_pct. It does not explain how campaign_id vs campaign_name_contains should be used, what limit does, or why ad_type includes SB/SD when the description says the tool is SP-only. The mutual-exclusivity note is valuable, but too many parameters remain under-specified.
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 ('Propose'), resource ('SP campaign daily-budget changes'), and scope ('SP'), and it explicitly differentiates itself from stage_campaign_update for SB/SD budgets. The staging-only behavior is also front-loaded, so an agent can tell what this tool does at a glance. The only minor wrinkle is that the schema's ad_type enum still lists SB/SD, but the prose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly names the alternative for SB/SD budgets: 'SB/SD budgets are updated per campaign via stage_campaign_update instead.' It also clarifies the required parameter pattern (set_to OR adjust_pct, one required) and the staging workflow, including that confirm_staged_changes must be called before anything reaches Amazon. This gives clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stage_campaign_createStage: CREATE campaignsAInspect
Create Sponsored Products, Sponsored Brands or Sponsored Display campaigns end-to-end. For SB, call ppc_campaign_create_guide FIRST for the full verified contract. SD item: {name, campaignType: sd_contextual (targets {asins|categories|similar_product}) | sd_audiences (audience {preset: views_similar|views_advertised, lookback}), budget, defaultBid, skus[], costType cpc|vcpm, raw_targets?[] for exact expressions} — SD creates default PAUSED for review. SP item: {name, campaignType: auto|manual_keyword|manual_product, budget, defaultBid, skus[], keywords?[{text, matchType, bid}], productTargets?[{type, value, bid}], autoTargetingGroups?, negativeKeywords?[], placementTop?/placementProductPage?/placementRestOfSearch?}. SB item: {name, campaignType: sb_product_collection | sb_video | sb_store_spotlight, budget, goal? (PAGE_VISIT | BRAND_IMPRESSION_SHARE | CONVERSIONS), brandEntityId? (auto-resolved when omitted), keywords?[{text, matchType, bid}]. productCollection: headline (max 50), brandName (max 30), brandLogoAssetId, asins[] (3-5), customImageAssetId?, landingPageType?/landingPageUrl?. video: asins[] (exactly 1), videoAssetId, headline?/brandName?/brandLogoAssetId?. storeSpotlight: headline, brandName, brandLogoAssetId, landingPageUrl (Store URL), subpages[] (exactly 3, each {pageTitle, url, asin}). Asset ids come from ppc_creatives include_assets or an existing SB ad. SB campaigns are created PAUSED for review. Stages a proposal — NOTHING changes until confirm_staged_changes.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Why THIS change, 1-3 sentences specific to it - shown in the approval modal | |
| campaigns | Yes | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide only minimal boolean hints (readOnlyHint=false, destructiveHint=false), so the description carries the behavioral burden. It thoroughly discloses that SD campaigns are created PAUSED for review, SB campaigns are PAUSED, and nothing changes until confirmation. It also reveals external dependencies like asset ids coming from ppc_creatives or an existing SB ad, exceeding what annotations could 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 long and dense, but this is justified by the complexity of supporting three campaign types. It is well-structured with SD/SP/SB sections and a clear staging warning at the end. Some information is repeated from schema enums, but the compact item syntax keeps it efficient; still, it is on the edge of being overwhelming.
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 tool with no output schema, the description covers most critical context: per-type requirements, staging semantics, PAUSED defaults, and the SB guide prerequisite. Minor gaps include the absence of a note about what the tool returns after staging and the SP campaign's default state (not stated as PAUSED). Overall, it is nearly sufficient for safe 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 67% but the nested campaigns object has almost no parameter descriptions. The description adds essential semantics: valid campaignType values, per-type required fields, cardinality constraints (asins 3-5, subpages exactly 3, video exactly 1), max lengths for headline/brandName, costType options, and goal-specific requirements. This is far beyond the schema's sparse enum listings.
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 action and resource: 'Create Sponsored Products, Sponsored Brands or Sponsored Display campaigns end-to-end.' It further clarifies that the tool only 'Stages a proposal — NOTHING changes until confirm_staged_changes,' which precisely distinguishes its behavior from direct creation. The name and per-type breakdown (SD/SP/SB items) make it easy to differentiate from siblings like stage_campaign_update.
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 explicitly directs 'For SB, call ppc_campaign_create_guide FIRST for the full verified contract,' providing a clear when-to-use alternative. It also implies use for new campaigns via the 'CREATE' emphasis, but does not explicitly state when not to use it versus stage_campaign_update or other staging tools. Overall, the context is clear but exclusions are mostly implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stage_campaign_tagsStage: Campaign tags/notesAInspect
Tag/annotate a campaign in AMZ Vault (add_tags / remove_tags / note) — pure metadata, nothing is sent to Amazon. Tags surface in ppc_campaign_metadata. Stages a proposal — NOTHING changes until confirm_staged_changes.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | ||
| add_tags | No | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| campaign_id | Yes | ||
| remove_tags | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the sparse annotations by disclosing that this is pure metadata, nothing reaches Amazon, and no changes are applied until confirm_staged_changes is called. It also explains that tags will surface in ppc_campaign_metadata, giving the agent useful downstream visibility.
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, tightly structured sentence with no filler. Every clause adds distinct value: operation, metadata-only effect, visibility, and staging safety.
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 staging tool with no output schema and minimal annotations, the description covers the essential behavior, the confirmation requirement, and where the tags will be visible. An agent can safely invoke this tool without missing critical side-effect information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 20% schema description coverage, the description compensates by explicitly naming add_tags, remove_tags, and note, which maps directly to three key parameters. It does not elaborate on campaign_id, but the parameter name and tool title make its role clear, and profile_id already has a schema description.
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 uses a specific verb ('Tag/annotate a campaign') and a precise resource scope, and it explicitly distinguishes the operation from real Amazon-facing changes by noting 'nothing is sent to Amazon.' It also makes the staging nature obvious, which separates it from direct mutation 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?
The description gives clear context for when to use this tool: to add, remove, or note campaign metadata and to stage a proposal rather than immediately applying it. It does not explicitly name alternatives or exclusions, but the 'stage_' prefix and the statement about confirmation provide sufficient directional guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stage_campaign_updateStage: Campaign settings & placementsAInspect
Update campaigns: name, budget_amount, budget_type (LIFETIME is SB-only), bidding_strategy, start_date / end_date (YYYY-MM-DD; null end_date clears it), portfolio_id (null unassigns), bid_optimization (SB-only bool), and/or placement modifiers — works on EXISTING campaigns any time. BATCH: pass campaigns=[{campaign_id, campaign_type, updates}, …] (max 50) to stage MANY campaigns as ONE staged change — one approval to stage, one to confirm. Placements — SP: top_of_search_modifier / product_page_modifier / rest_of_search_modifier; SB: those plus home_modifier. All 0..900%; setting SB placements forces bidOptimization=false (Amazon requires it). SD has no placements. Stages a proposal — NOTHING changes until confirm_staged_changes.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Why THIS change, 1-3 sentences specific to it - shown in the approval modal | |
| updates | No | ||
| campaigns | No | Batch form — stages ALL campaigns as one change | |
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| campaign_id | No | ||
| campaign_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate a non-read-only, non-destructive mutation. The description adds substantial behavioral detail: changes are staged and require confirmation, SB placement edits force bidOptimization=false, LIFETIME is SB-only, null end_date clears it, null portfolio_id unassigns, and SD has no placements. This goes well beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every clause contributes a field, constraint, or workflow fact. It is front-loaded with the core action and uses semicolons and dashes to keep related information organized without filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter tool with nested objects and no output schema, the description covers the payload structure, type-specific rules, batching, value ranges, and the confirm workflow. It is complete enough for an agent to invoke the tool correctly, with only the boilerplate reason parameter left undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 50% schema coverage, the description carries the parameter-documentation burden and succeeds: it explains date formats, budget_type restrictions, null-clearing behavior, placement modifier names per campaign type, the 0–900% range, and the batch structure with max 50. This adds far more meaning than the sparse input schema alone.
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 'Update campaigns' and enumerates specific updatable fields, then clarifies scope with 'works on EXISTING campaigns', distinguishing it from create-style siblings like stage_campaign_create. It also clearly states that this is a staging action rather than a direct update.
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 context: works on existing campaigns any time, supports batch staging of up to 50 campaigns, and explicitly says nothing changes until confirm_staged_changes. However, it does not name alternatives like stage_budget_changes or stage_bid_changes for bid-only or budget-only updates, so exclusions are 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.
stage_cogs_updateStage: COGSAInspect
Propose setting per-SKU landed costs (COGS), time-versioned. Items may also carry optional component costs (factory_cost / freight_cost / duty_cost / packaging_cost) — metadata beside the landed unit_cost, which remains what the P&L uses. STAGING ONLY: saves a reviewable diff in AMZ Vault — NOTHING is sent to Amazon until confirm_staged_changes is called.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | ||
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses the full safety model: saves a reviewable diff in AMZ Vault, sends nothing to Amazon until confirm_staged_changes. It also clarifies the semantic distinction between landed unit_cost (P&L driver) and component costs (metadata), which materially changes how an agent interprets item fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: purpose, item-level cost semantics, and the critical staging safety warning. The most decision-relevant information (staging-only, nothing sent) is placed last but clearly emphasized with all-caps, and there is no redundant restatement of the title 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?
For a staging tool with no output schema, the description adequately covers the workflow (propose, review, confirm) and the item cost semantics. Remaining gaps are minor but real: 'time-versioned' is asserted without explaining how an agent specifies version dates, and the expected shape of items is only partially sketched.
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?
The schema documents only seller_connection_id; the items array is an undescribed object list (~50% coverage). The description compensates by naming the meaningful sub-fields (factory_cost, freight_cost, duty_cost, packaging_cost) and explaining how unit_cost relates to them. It does not specify required keys inside items or how time-versioning is expressed, leaving some construction ambiguity.
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 ('Propose setting per-SKU landed costs (COGS)'), adds the time-versioned scoping, and clarifies that unit_cost is what the P&L uses rather than the optional component costs. The staging-only framing differentiates it from the direct-write and read-only siblings in the tool list.
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 declares 'STAGING ONLY' and names the exact commit path (confirm_staged_changes), which is the key routing decision an agent must make. However, it stops short of naming exclusions such as 'to read current COGS use product_cogs' or contrasting with cancel_staged_changes, leaving some sibling routing implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stage_competitor_watchlistStage: Competitor watchlistAInspect
Propose adding/removing competitor ASINs on the review-insights watchlist. Watched ASINs get the same weekly review-topic data as own products (readable in the customer_feedback datasets with scope=competitor_asin), fetched by the nightly walk with LEFTOVER call budget - the own catalog always wins. Entries anchor to the product FAMILY: family_asin is one of the user's OWN ASINs (a child resolves to its parent so the whole family shares the list). Cap 10 competitors per family; adds that push the weekly walk over budget WARN but never block (the refresh cycle just stretches past a week). STAGING ONLY: saves a reviewable diff in AMZ Vault — NOTHING is sent to Amazon until confirm_staged_changes is called.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | ||
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide readOnlyHint=false, openWorldHint=false, destructiveHint=false; the description carries the real behavioral load and does so thoroughly: save of a reviewable diff in AMZ Vault, nightly-walk budget semantics, child-resolves-to-parent family anchoring, the 10-per-family cap, and WARN-but-never-block degradation. All disclosed behavior is consistent with the annotations, so there is no contradiction.
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 dense sentences where each one adds distinct information: purpose, watchlist benefit, family resolution, cap/budget behavior, and staging workflow. The purpose is front-loaded before constraints. It is on the longer side, but the tool's genuine complexity (budget, family, cap, staging) justifies the length; the all-caps emphasis is the only minor stylistic cost.
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 staged write with no output schema, the description covers an unusually complete picture: effect, data access, budget behavior, resolution rules, caps, warning behavior, and the follow-up confirmation tool. The main gap is that it never states what the tool returns (e.g., how the reviewable diff is identified or retrieved, presumably via staged_changes_pending), which matters more here because no output schema exists to fill that void.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 50% top-level schema coverage (items itself has no schema description), the description compensates by explaining the items semantics and adding constraints the schema lacks: the child-resolves-to-parent rule for family_asin and the 10-competitors-per-family cap. Nested property docs already cover action's add/remove enum and note, and seller_connection_id is schema-documented, so the description adds genuine, non-redundant meaning where the schema is weakest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ('Propose adding/removing competitor ASINs on the review-insights watchlist') that names exactly what the tool does. The review-insights watchlist targeting and STAGING ONLY framing distinguish it unambiguously from the ∼90 sibling tools, many of which are also stage_* prefixed but none touch the competitor watchlist.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the staging workflow explicitly and names confirm_staged_changes as the required follow-up, stating that NOTHING is sent to Amazon until that tool is called. The budget-priority context ('LEFTOVER call budget - the own catalog always wins') gives the agent situational guidance for when this tool is appropriate. It does not articulate a crisp when-not-to-use conditional or name a non-staged alternative, but the staging/confirm split supplies most of the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stage_dayparting_scheduleStage: Dayparting changeAInspect
Stage a dayparting mutation: action=create|update|delete|toggle|clone|assign|unassign. Stages a proposal — NOTHING changes until confirm_staged_changes (reads live in automation_dayparting). create/update take params (name, hour_matrix 7x24 multiplier grid, schedule_type); assign takes params.entities [{entity_type, entity_id, base_value?}]; mutations take schedule_id.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Which mutation to stage; every action returns a proposal that needs confirm_staged_changes — nothing changes until the user confirms. | |
| params | No | create/update schedule fields; assign: {entities: [...]} | |
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| schedule_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false and destructiveHint=false; the description adds the critical behavioral trait that this tool stages a proposal and 'NOTHING changes until confirm_staged_changes.' It also clarifies that live reads happen in automation_dayparting, which prevents an agent from assuming this tool mutates live state immediately. This is meaningful context 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 dense sentences deliver the action set, the staging behavior, and the action-to-parameter mapping with no filler. The most important constraint—nothing changes until confirmation—is front-loaded, and the parameter details are organized by action for quick parsing.
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 seven actions, nested params, and no output schema, the description covers the core workflow and parameter requirements well. Minor gaps remain, such as not specifying whether clone requires additional naming params or what the returned proposal looks like, but these are relatively small against the strong overall coverage.
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% and schedule_id lacks a description, but the description compensates strongly by mapping actions to their required parameters: create/update use name, hour_matrix, schedule_type; assign uses params.entities with entity_type, entity_id, and optional base_value; mutations use schedule_id. This gives the agent actionable parameter semantics that the schema alone does not provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb and resource: 'Stage a dayparting mutation', and enumerates the exact actions (create, update, delete, toggle, clone, assign, unassign). It also distinguishes itself from live automation tools by clarifying that nothing changes until confirm_staged_changes, which separates it from the many stage_* 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?
The description clearly frames when this tool is appropriate: to stage a proposal rather than apply live changes. It names confirm_staged_changes as the follow-up and points to automation_dayparting for live reads. It does not explicitly state when not to use it or compare against other stage_* tools, so it stops short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
staged_changes_pendingChange: Pending proposalsARead-onlyInspect
List this account's pending (unconfirmed) proposals.
| Name | Required | Description | Default |
|---|---|---|---|
No 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 profile is covered. The description adds meaningful behavioral context: it lists only pending/unconfirmed proposals for the current account, which is useful beyond the annotations and consistent with them.
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. Every element—account scope, pending status, unconfirmed clarification—adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only list tool with no output schema, the description fully states what the tool returns and is sufficient for an agent to select and invoke it correctly. No critical information 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?
The tool has zero parameters and schema description coverage is 100%, so there is no parameter burden for the description to carry. This matches the baseline for a parameterless tool.
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 uses a specific verb ('List') and resource ('this account's pending unconfirmed proposals'), clearly identifying what the tool returns. The 'pending (unconfirmed)' qualifier distinguishes it from confirm/cancel stages and the many stage_* mutation 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?
The description makes the tool's purpose clear but does not explicitly state when to use it versus alternatives like confirm_staged_changes or cancel_staged_changes. Usage context is implied by 'pending (unconfirmed)' but no when-not or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stage_entity_statusStage: Entity status by IDAInspect
Pause/enable/archive specific entities BY ID: ad groups, product ads, keywords, targets, or campaigns (complements the filter-based stage_status_change). ARCHIVED is permanent — Amazon cannot unarchive; confirm intent with the user first. Pausing product ads REQUIRES pause_cause (inventory | performance) + reason: inventory pauses are watched and a re-enable is staged automatically when stock returns; if the batch would pause a campaign's last active ad, the campaign is paused with it (an ad-less campaign cannot serve and only confuses). Stages a proposal — NOTHING changes until confirm_staged_changes.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | one-line why, recorded on the change and shown at approval | |
| entity_ids | Yes | ||
| new_status | Yes | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| ad_group_id | No | ||
| campaign_id | No | ||
| entity_type | Yes | ||
| pause_cause | No | REQUIRED when pausing product ads. inventory = out of stock (re-enable staged on restock); performance = stays paused | |
| campaign_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses critical non-obvious behavior beyond the sparse annotations: ARCHIVED is permanent, inventory pauses auto-stage a re-enable, pausing the last active ad pauses the campaign, and the operation only stages changes until confirm_staged_changes. There is no contradiction with readOnlyHint=false or destructiveHint=false since the staging behavior explains why destructiveHint is false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place: it states the core action, contrasts with a sibling, flags permanence, explains the product-ad requirement and side effect, and clarifies the staging workflow. It front-loads the essential purpose and then layers warnings logically.
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 complexity (9 parameters, 3 required, no output schema, minimal annotations), the description covers the core contract very well: what changes, what is required, what side effects occur, and what does not happen until confirmation. It is slightly incomplete regarding optional scoping parameters and the exact return/proposal representation, but it is strong enough for safe 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?
With only 33% schema coverage, the description adds meaningful semantics for pause_cause (inventory vs performance), the reason requirement, entity_types, new_status archive permanence, and entity_ids being ID-based. However, it does not clarify optional but potentially relevant parameters like ad_group_id, campaign_id, and campaign_type, so it does not fully compensate for the low schema coverage.
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 specific actions (Pause/enable/archive), a specific resource (entities BY ID), and the exact entity types. It also distinguishes itself from the filter-based stage_status_change sibling, so an agent can identify the correct tool without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says this tool is for ID-based changes and complements the filter-based alternative. It also gives actionable when-to-use guidance: confirm before archiving, require pause_cause + reason for product ads, and warn about the last-active-ad cascade.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stage_listing_updateStage: Listing content (title/bullets/description/keywords/price)AInspect
Update LIVE Amazon listing content: title, bullet_points (full replacement list), description, search_terms (backend keywords, ~249 bytes), and/or price. Single SKU (sku + updates) or items=[{sku, marketplace_id, updates}, ...] (max 25) as ONE staged change. The diff shows current warehouse values before anything is sent; on confirm Amazon PATCHes asynchronously and returns per-SKU status + verbatim issues. Images (W13 P2): main_image + other_images (1-8 gallery slots, in order) — each a public http(s) URL or {staged_file_id: N} from the ppc_asset_upload_link staging flow (Amazon fetches the bytes from AMZ Vault). A+ content comes later. Stages a proposal — NOTHING changes until confirm_staged_changes.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | ||
| items | No | ||
| reason | No | Why THIS change, 1-3 sentences specific to it — shown in the approval modal (your report summary is not a substitute) | |
| updates | No | ||
| marketplace_id | No | Marketplace id or country code; defaults to US | |
| allow_long_title | No | ONLY for media categories — everything else is capped at 75 chars from 2026-07-27 | |
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description significantly exceeds the annotations by disclosing that nothing changes until confirm_staged_changes, that a diff of current warehouse values is shown first, that Amazon PATCHes asynchronously on confirm, and that per-SKU status plus verbatim issues are returned. It even explains how Amazon fetches image bytes from AMZ Vault. No contradiction with readOnlyHint=false or destructiveHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well organized: action and scope first, then single/bulk modes, then staged-change semantics, then image edge cases, then out-of-scope A+ content. Every clause carries necessary information for a complex 7-parameter nested tool, and the most important safety behavior ('NOTHING changes until confirm') is stated plainly.
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 no output schema and nested objects, the description covers the core workflow, return statuses, image sourcing, bulk limits, and the confirm step. The main gap is that the schema lists zero required parameters while the description implies sku or items must be provided, without explicitly stating that one of them is required. Overall, an agent can invoke this correctly in most cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at only 57%, the description compensates well: it clarifies that bullet_points is a full replacement list, search_terms is ~249 bytes, items is capped at 25, and images follow a 1-8 slot ordered gallery with public URL or staged_file_id format. It does not add much for reason, marketplace_id, or seller_connection_id, but the schema already documents those.
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: it updates LIVE Amazon listing content (title, bullet_points, description, search_terms, price, images) and immediately clarifies that the operation is staged. The explicit scope list and the 'A+ content comes later' note differentiate it from sibling tools like stage_aplus_update and stage_product_edit.
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 usage context: single SKU vs. bulk items mode, the one-staged-change constraint, the image staging prerequisite via ppc_asset_upload_link, and the staged-then-confirm workflow. It explicitly rules out A+ content, but it does not name sibling alternatives or spell out when not to use this tool beyond that.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stage_margin_targetStage: BE margin targetAInspect
Propose a manual BE (breakeven) margin target for a product family (null be_margin_pct clears it so the computed breakeven applies). STAGING ONLY: saves a reviewable diff in AMZ Vault — NOTHING is sent to Amazon until confirm_staged_changes is called.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | Yes | ||
| strategy | No | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| be_margin_pct | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no behavioral hints, so the description carries the full burden. It discloses that the tool saves a reviewable diff in AMZ Vault, that nothing reaches Amazon until confirmation, and that a null be_margin_pct clears the manual override. Core side effects are clearly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The action is front-loaded, and the critical staging caveat is highlighted. Every clause adds useful 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?
The essential invocation context is present: what is being staged, where it is saved, when it reaches Amazon, and how to clear the override. The main gaps are missing semantics for the optional strategy parameter and no mention of return values, but given the simple required-asin shape, the description is largely adequate.
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 only 25% (profile_id is the only documented parameter). The description adds useful meaning for be_margin_pct by explaining the null-clearing behavior, but asin and strategy are left undocumented in both the schema and the description, so the tool does not fully compensate for the low coverage.
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 object: 'Propose a manual BE (breakeven) margin target for a product family.' It also clearly marks the tool as staging-only, which distinguishes it from confirm/apply tools and other stage_* siblings that manage different resource types.
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 explicitly frames when to use the tool: it stages a change and does not send anything to Amazon until confirm_staged_changes is called. It provides a clear boundary against direct-apply workflows, though it does not enumerate alternative staging tools or explicitly say when not to stage a margin target.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stage_negativesStage: Add negativesAInspect
Propose adding negative keywords / negative ASIN targets. Items: campaign_id + keyword_text (SP/SB) or asin_target (SP/SD) or brand_id (SD). Levels: SP campaign or ad_group (pass ad_group_id); SB and SD are AD-GROUP level — ad_group_id required (SB is keyword-only, SD is product/brand-only). match_type: NEGATIVE_EXACT (default) | NEGATIVE_PHRASE | NEGATIVE_BROAD — any casing (negativeExact, exact) is accepted and normalized to the correct per-API wire form; SB has no broad. STAGING ONLY: saves a reviewable diff in AMZ Vault — NOTHING is sent to Amazon until confirm_staged_changes is called.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | ||
| reason | No | Why THIS change, 1-3 sentences specific to it - shown in the approval modal | |
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses significant behavioral traits beyond the annotations: staging-only semantics (writes to AMZ Vault, never hits Amazon), input normalization ('any casing is accepted and normalized to the correct per-API wire form'), level constraints (SB/SD require ad_group_id), and ad-type restrictions (SB is keyword-only, SD is product/brand-only, SB has no broad). These behaviors align with readOnlyHint=false and destructiveHint=false — the tool writes a staging record but is non-destructive — so there is no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place — item formats, level rules, match_type normalization, and staging semantics are all load-bearing. It front-loads the purpose before the constraints and caps off with the critical 'NOTHING is sent to Amazon' warning. The single-paragraph wall of text could be more scannable with structured separation, but the complexity of the three-ad-type matrix justifies the length.
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 substantial domain complexity (SP/SB/SD distinctions, level requirements, match_type variants, staging semantics), the description covers the essential calling contract completely. Minor gaps exist: it doesn't reference how to review pending staged items (sibling staged_changes_pending), and doesn't mention item limits or duplicate handling. With no output schema, a bit more detail on the reviewable-diff result would round it out, but 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?
With schema coverage at 67%, the description carries the semantic load and does so thoroughly. It explains exactly which fields pair with which ad type (campaign_id + keyword_text for SP/SB, asin_target for SP/SD, brand_id for SD), which level each ad type requires, and the full match_type value set with its default and normalization rules. This goes well beyond the raw schema, giving the agent the combinatorial knowledge needed to construct valid items.
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+resource pair — 'Propose adding negative keywords / negative ASIN targets' — which precisely states the operation and its object. It also distinguishes itself from the sibling stage_negatives_remove by framing this as the 'add' counterpart, and the 'STAGING ONLY' framing separates it from direct-mutation tools like confirm_staged_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?
The description clearly establishes the staging workflow: changes are saved as a reviewable diff and 'NOTHING is sent to Amazon until confirm_staged_changes is called,' which tells the agent when this tool is appropriate (proposing changes without committing) versus when direct modification or confirmation is needed. It does not explicitly name alternatives like stage_negatives_remove or staged_changes_pending, but the add-vs-remove and stage-vs-confirm contrasts are strongly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stage_negatives_removeStage: REMOVE negativesAInspect
REMOVE (archive) negative keywords / negative product targets by their local ids from ppc_negatives — the other half of negation management. Stages a proposal — NOTHING changes until confirm_staged_changes.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
It discloses the critical behavioral trait that this only stages a proposal and that 'NOTHING changes until confirm_staged_changes', which goes beyond what annotations provide. It also clarifies that REMOVE means 'archive', managing expectations about deletion. This does not contradict the destructiveHint=false annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: the verb and target are front-loaded, the sibling distinction is compact, and the staging warning is prominent. Every clause adds useful 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 staging tool with a simple two-parameter schema, the description covers the source table, item types, id semantics, and the required follow-up confirmation step. Nothing essential is missing for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only describes profile_id; items has no description. The description compensates by explaining that 'negative keywords / negative product targets' are removed 'by their local ids', giving meaning to the items array and negative_id field. It does not explain the kind enum in detail, but the schema already provides the allowed values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('REMOVE/archive'), a concrete resource ('ppc_negatives'), and the item types ('negative keywords / negative product targets'). It also distinguishes itself from the sibling stage_negatives by calling itself 'the other half of negation management', so an agent can tell them apart.
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 'the other half of negation management' clearly situates this tool relative to its add-side sibling stage_negatives, and the staging warning clarifies that this is a proposal step, not a direct action. However, it does not explicitly say 'use stage_negatives for adding' or spell out when not to use this tool, so the guidance is strong but slightly implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stage_portfolio_createStage: CREATE portfolioAInspect
Create a new portfolio (no budget cap; set budgets after via stage_portfolio_update, incl. date-range policies with budget_start_date/budget_end_date). Stages a proposal — NOTHING changes until confirm_staged_changes.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the most important behavioral trait: this stages a proposal and nothing changes until confirm_staged_changes. It also states there is no budget cap, which prevents the agent from assuming budget fields should exist here. This goes beyond the annotations, which only indicate non-read-only and non-destructive intent.
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 carry all the essential information: what the tool creates, what it does not do, where to set budgets later, and the critical staging behavior. No filler or repetition of schema details.
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 description gives the essential workflow context: create, then update budgets, then confirm staged changes. It does not describe the return value or staged-change handle, but for a staging tool with no output schema, the stated flow is sufficient 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?
The schema already documents profile_id, and the description clarifies that no budget parameters are part of this call by pointing to stage_portfolio_update. However, the description does not elaborate on the required 'name' field or add much detail about how profile_id should be chosen. With 50% schema coverage, some extra parameter context would help.
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 identifies the action ('Create a new portfolio') and the resource, and distinguishes this tool from stage_portfolio_update by directing budget-related changes there. It also clarifies the staging nature of the operation, so the agent knows it is not a direct 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 explicitly says to use stage_portfolio_update for setting budgets afterward, which helps route the agent away from overloading this tool. It also names confirm_staged_changes as the step that makes changes effective. It does not enumerate all alternative or invalid use cases, but the core decision is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stage_portfolio_updateStage: PortfolioAInspect
Update a portfolio: name, budget_amount, budget_policy (DATE_RANGE/MONTHLY_RECURRING/"remove"), budget_start_date, budget_end_date. NOTE: Amazon portfolios cannot be paused/archived — state accepts only ENABLED. To stop a portfolio's spend, cap its budget at $1 with no end date (budget_amount=1, budget_policy=MONTHLY_RECURRING; undo with budget_policy="remove"), or pause its member campaigns (campaign_meta filtered by portfolio_id, then stage_entity_status). Stages a proposal — NOTHING changes until confirm_staged_changes.
| Name | Required | Description | Default |
|---|---|---|---|
| updates | Yes | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| portfolio_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The key behavioral fact is disclosed prominently: 'Stages a proposal — NOTHING changes until confirm_staged_changes.' The description also reveals the platform limitation that state only accepts ENABLED and provides the exact workaround. Annotations only indicate non-read-only and non-destructive, so this substantial additional context goes well beyond what structured metadata already conveys.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences carry a high amount of actionable detail without fluff. The primary purpose is front-loaded, and the caveats and workarounds are organized into a compact NOTE that 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?
For a staging tool with no output schema, the description covers the core behavior, the platform constraint, the workaround, and the follow-up tool (confirm_staged_changes). It provides enough to invoke the tool correctly, including the critical 'nothing changes until confirmation' semantics.
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 only 33%, with the 'updates' object left undocumented. The description compensates by naming the updatable fields and the valid values for budget_policy (DATE_RANGE/MONTHLY_RECURRING/'remove'), plus a concrete example for the stop-spend case (budget_amount=1, budget_policy=MONTHLY_RECURRING). This gives the agent actionable parameter-level semantics that the schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Update a portfolio') and enumerates the exact fields affected: name, budget_amount, budget_policy, budget_start_date, budget_end_date. The staged-proposal note distinguishes it from direct mutation tools, and the sibling stage_portfolio_create is implicitly contrasted by the word 'Update'.
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 guidance for a common goal (stopping a portfolio's spend) and explicitly names alternative paths: cap the budget here, or pause member campaigns via campaign_meta and stage_entity_status. It also explains the constraint that Amazon portfolios cannot be paused/archived. It does not explicitly say 'use this instead of stage_portfolio_create', but the update-versus-create distinction is reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stage_po_upsertStage: Purchase ordersAInspect
Propose creating or updating purchase orders (matched by po_number per connection): supplier_name (created if new), status/milestone dates, ship mode, freight and duty, payments ([{label, amount, due_date, paid}]), notes, and lines ([{sku, units, unit_cost}] - replaces existing lines when provided). QC outcomes belong in notes. Nothing is saved until the user confirms via confirm_staged_changes - show them the diff first.
| Name | Required | Description | Default |
|---|---|---|---|
| purchase_orders | Yes | ||
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide readOnlyHint=true and destructiveHint=false. The description adds critical behavioral context: upsert matching per connection, supplier auto-creation, replacement of lines when provided, and the non-persistent staging semantics. This fully explains what happens on invocation and after confirmation, going well 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 dense sentences, no filler. The first sentence front-loads the core upsert purpose and field list; the second is a targeted field-placement rule; the third handles the confirmation workflow. It is slightly long due to the field enumeration, but every clause adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description covers the critical input contract, side effects, and follow-up action. The only notable gap is that it does not state what the tool returns (e.g., a stage ID or diff summary) that would be needed to call confirm_staged_changes; the workflow is implied but not explicitly specified.
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 only 50% and the array items are untyped; the description compensates by enumerating the expected inner fields (supplier_name, status/milestone dates, ship mode, freight, payments, notes, lines) and their semantics. It does not, however, provide exhaustive parameter names or an example shape, leaving some work to the agent.
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 the specific verb 'Propose creating or updating' and the resource 'purchase orders', with the matching key 'po_number per connection'. It clearly distinguishes itself as a staging tool (nothing saved until confirmation) and enumerates the fields involved, so an agent can grasp the scope at a glance.
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 workflow guidance: stage first, show the user the diff, and only then confirm via confirm_staged_changes. It also gives a routing rule for content: 'QC outcomes belong in notes.' It does not explicitly name which sibling tools to prefer over this one, but the workflow and field-level direction are clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stage_product_ad_addStage: ADD product adsAInspect
Add advertised products to an existing SP or SD ad group (campaign_type, default SP) — created ENABLED. Seller accounts advertise by SKU (give sku; asin alone works only for vendor accounts). Stages a proposal — NOTHING changes until confirm_staged_changes.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| ad_group_id | Yes | ||
| campaign_id | Yes | ||
| campaign_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare non-read-only and non-destructive, but the description adds critical behavioral detail: the operation creates a staged proposal and 'NOTHING changes until confirm_staged_changes.' It also reveals the seller/vendor SKU vs ASIN rule and that ads are created ENABLED. No contradiction with 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 sentences pack the action, target, default campaign type, enabled state, seller/vendor rule, and staging behavior with zero filler. The most important scoping information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core workflow, the critical input constraints, and the confirmation follow-up, which is sufficient given the absence of an output schema. It could be slightly more complete by briefly mentioning how staged changes can be inspected or canceled, but that is referenced by sibling tool names and not essential.
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 only 20%, so the description carries a heavy load. It compensates by explaining campaign_type (SP/SD, default SP) and the crucial SKU/ASIN distinction for seller vs vendor accounts. campaign_id and ad_group_id remain self-explanatory, but the description does not fully map every parameter, leaving some burden on the agent.
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 identifies the action ('Add advertised products'), the resource ('existing SP or SD ad group'), and the key state ('created ENABLED'). It also differentiates from sibling staging tools like stage_targeting_add or stage_ad_group_create by specifying this is specifically for product ads, not targets or ad group 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 gives clear context: it must target an existing ad group, defaults to SP, and it stages a proposal that requires confirm_staged_changes. It does not explicitly name sibling alternatives or state when not to use this tool versus stage_product_edit or stage_targeting_add, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stage_product_editStage: Product fieldAInspect
Propose editing one Product Library field (locks it against future syncs). STAGING ONLY: saves a reviewable diff in AMZ Vault — NOTHING is sent to Amazon until confirm_staged_changes is called.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | Yes | ||
| field | Yes | ||
| value | No | New value — string for sku/title/brand/parent_asin/image_url, number for list_price; lifecycle_status takes discontinuing | new_launch (forecast models sell-down / skips LY targets); null clears the field | |
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral detail beyond the annotations: it discloses the lock side effect, the reviewable-diff behavior, and the no-send guarantee. Annotations already indicate a non-read-only, non-destructive operation, so the description's staging specifics are valuable. It does not explain how the lock is released or whether cancel_staged_changes can undo it, but the core behavior is transparent.
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 sentences, front-loaded with the core purpose and the lock side effect, then immediately stating the staging constraint. Every clause earns its place with no redundant filler or repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the high-level workflow well: what is staged, where the diff is saved, and when the actual Amazon update happens. It does not describe the output/return value, how to review the staged diff, or the meaning of profile_id, and there is no output schema to fill that gap. This makes it minimally viable but not fully complete for an agent invoking the tool correctly in all cases.
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?
The value parameter has a rich schema description covering types and special values like null clearing the field, which helps. However, asin and field have no schema descriptions, and profile_id's description is truncated ('Which advertising profile (see'), leaving the agent to infer their meaning from context. The tool description adds domain context but does not enumerate valid field names or explain profile_id, so the parameter guidance is adequate but incomplete.
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 action ('Propose editing one Product Library field') on a specific resource, with a clear scoping detail ('locks it against future syncs'). It also distinguishes itself from confirm_staged_changes by emphasizing that nothing is sent to Amazon until that tool is called, which separates it from related sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly says this is 'STAGING ONLY' and that nothing is sent to Amazon until confirm_staged_changes is called, giving the agent a clear when-to-use boundary. It names the follow-up tool but does not explicitly contrast with other stage_* tools such as stage_listing_update, so it stops just short of full alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stage_status_changeStage: Campaign statusAInspect
Propose enabling/pausing campaigns matching filters. STAGING ONLY: saves a reviewable diff in AMZ Vault — NOTHING is sent to Amazon until confirm_staged_changes is called.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| ad_type | No | ||
| new_status | Yes | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| campaign_id | No | ||
| campaign_name_contains | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint: false, openWorldHint: false, destructiveHint: false) provide almost no behavioral signal, so the description carries the full burden — and it delivers. It discloses the two-phase architecture: a reviewable diff is saved in AMZ Vault, nothing is sent to Amazon until confirm_staged_changes is called, and the operation is a proposal rather than an execution. This is exactly the critical behavior an agent needs to avoid mistakenly believing it changed live campaign status.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. The core action is front-loaded in the first sentence, and the critical safety/behavioral constraint (staging-only, nothing sent until confirmation) follows immediately in the second. Nothing repeats schema or annotation 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 moderate-complexity tool (6 params, 1 required, no output schema), the description covers the essentials: what it does, what persistence mechanism is used (reviewable diff in AMZ Vault), and what triggers execution. It could strengthen completeness by referencing the review workflow (staged_changes_pending) or the ability to discard (cancel_staged_changes), but the core agent decision — stage versus execute — is fully covered.
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 very low (~17%, only profile_id documented), so the description must compensate. It partially does: 'enabling/pausing' maps to new_status (ENABLED/PAUSED), and 'matching filters' conceptually explains ad_type, campaign_id, and campaign_name_contains. However, it doesn't give per-parameter semantics for limit or explain how filters combine, leaving meaningful gaps given the low schema coverage.
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 ('Propose'), a resource ('campaigns'), and an action ('enabling/pausing'), and immediately clarifies scope with 'matching filters'. It also disambiguates from confirm_staged_changes by name, so an agent can distinguish this staging tool from its execution counterpart without inspecting schemas, and from other stage_* siblings via the specific status-change focus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the primary routing decision explicit: use this for staging ('STAGING ONLY'), and it names the follow-up tool ('confirm_staged_changes') that actually executes. It clearly communicates that this tool is not for immediate effect. However, it doesn't explicitly contrast with other stage_* siblings (e.g., stage_campaign_update, stage_entity_status) or state when NOT to use it beyond the staging constraint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stage_supplier_upsertStage: SuppliersAInspect
Propose creating or updating suppliers (matched by name per connection): contacts, payment terms, and the production/transit lead times that power the reorder advisor. Use this after reading a user's supplier spreadsheet - stage what you parsed and let them confirm. Nothing is saved until the user confirms via confirm_staged_changes - show them the diff first.
| Name | Required | Description | Default |
|---|---|---|---|
| suppliers | Yes | ||
| seller_connection_id | No | Which seller connection (see account_sellers). Optional when the token has exactly one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the most important behavioral trait beyond the annotations: nothing is saved until the user confirms, and the agent should show the diff first. This is critical for a staging tool and complements the readOnlyHint/destructiveHint annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no filler. It front-loads the action and resource, then adds the workflow and safety behavior. Every sentence contributes essential 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 staging tool with one required array parameter and no output schema, the description adequately covers what to stage, when to use it, and what happens after. It could be slightly more explicit about the expected structure inside each supplier object, but the listed fields and matching semantics give enough guidance 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 only 50%, so the description compensates by listing what the supplier objects should contain: contacts, payment terms, and production/transit lead times. It also clarifies the seller_connection_id parameter as optional when the token has exactly one connection, adding useful meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific action ('Propose creating or updating suppliers'), the resource (suppliers), and the matching rule ('matched by name per connection'). It also clearly distinguishes this from other stage_* siblings by focusing on supplier data and the confirm-before-save flow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use guidance: 'Use this after reading a user's supplier spreadsheet'. It also explains the expected workflow—stage the parsed data, show the diff, and wait for confirmation via confirm_staged_changes—which helps the agent decide when this tool is appropriate. It does not explicitly discuss alternatives, but the context is strong enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stage_targeting_addStage: ADD keywords/targetsAInspect
Add keywords, ASIN product targets, and/or category targets to an EXISTING campaign + ad group (SP or SB) — e.g. to act on ppc_harvesting_candidates or extend a live campaign. asin_targets items take exactly one of asin | category_id | expression (raw [{type, value}] list for category refinements; SP-only). The destination must be currently ENABLED (campaign and ad group): a PAUSED destination refuses at staging, because targets there sit dormant and re-enabling the campaign would also revive its existing targets — harvest into a live campaign or stage_campaign_create a new one instead. Stages a proposal — NOTHING changes until confirm_staged_changes.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Why THIS change, 1-3 sentences specific to it - shown in the approval modal | |
| keywords | No | ||
| profile_id | No | Which advertising profile (see account_profiles). Optional when the token has exactly one. | |
| ad_group_id | Yes | ||
| campaign_id | Yes | ||
| asin_targets | No | ||
| campaign_type | No | ||
| allow_paused_destination | No | opt-in override: the user EXPLICITLY wants to prep a paused campaign (they understand its existing targets revive on enable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false and destructiveHint=false; the description adds substantial non-obvious behavior: nothing changes until confirmation, paused destinations are refused at staging with a rationale, asin_targets must take exactly one of three forms, and expression refinements are SP-only. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense and front-loaded with the core action, then adds necessary constraints, rationale, and alternatives. Every clause earns its place; 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?
For a staging mutation tool with 8 parameters and no output schema, this description is complete: it covers target types, exclusivity constraints, destination preconditions, the staging workflow, and the recommended alternative. An agent can correctly decide when to call it and what parameters matter.
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 low at 38%, but the description compensates by explaining the asin_targets exclusivity rule, the raw expression format, SP-only scope, campaign types, and destination state. It does not add detail about keywords' text/matchType or reason, but those are relatively self-explanatory or documented 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?
Uses a specific verb 'Add' with concrete resources (keywords, ASIN product targets, category targets) and a precise destination (existing campaign + ad group, SP or SB). This clearly differentiates it from creation tools like stage_campaign_create and other stage_* 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 says when to use it (act on ppc_harvesting_candidates or extend a live campaign), when it refuses (paused destination), and which alternative to choose instead (stage_campaign_create). It also clarifies that the operation only stages a proposal requiring confirm_staged_changes.
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. Dates show when Glama detected each change.
104 tool updates
- First observed
account_feedback - First observed
account_health_check - First observed
account_management_guide - First observed
account_notice_draft - First observed
account_ops_events - First observed
account_profiles - First observed
account_report - First observed
account_sellers - First observed
account_support_access - First observed
aplus_document - First observed
automation_activity - First observed
automation_aoe_status - First observed
automation_dayparting - First observed
automation_minmax_results - First observed
automation_recent_tasks - First observed
automation_rules - First observed
automation_scheduled_tasks - First observed
brand_market_basket - First observed
brand_repeat_purchase - First observed
brand_search_catalog - First observed
brand_sqp - First observed
brand_top_search_terms - First observed
cancel_staged_changes - First observed
confirm_staged_changes - First observed
data_describe - First observed
data_freshness - First observed
data_query - First observed
forecast_reorder_report - First observed
forecast_report - First observed
inventory_health - First observed
keyword_finder - First observed
pnl_breakdown - First observed
pnl_by_asin - First observed
pnl_expenses - First observed
pnl_mcf_summary - First observed
pnl_period_cards - First observed
pnl_refunds - First observed
pnl_sb_attribution - First observed
pnl_settlement_audit - First observed
pnl_summary - First observed
ppc_account_summary - First observed
ppc_ad_groups - First observed
ppc_ad_type_breakdown - First observed
ppc_advertised_products - First observed
ppc_asset_upload_link - First observed
ppc_bid_recommendations - First observed
ppc_budget_alerts - First observed
ppc_campaign_create_guide - First observed
ppc_campaign_details - First observed
ppc_campaign_metadata - First observed
ppc_campaign_search - First observed
ppc_campaigns - First observed
ppc_change_history - First observed
ppc_conversion_funnel - First observed
ppc_creatives - First observed
ppc_daily_trend - First observed
ppc_dayparting_analytics - First observed
ppc_describe - First observed
ppc_harvesting_candidates - First observed
ppc_keywords - First observed
ppc_match_type_breakdown - First observed
ppc_negation_candidates - First observed
ppc_negatives - First observed
ppc_new_to_brand - First observed
ppc_optimization_suggestions - First observed
ppc_period_comparison - First observed
ppc_placement_modifiers - First observed
ppc_placements - First observed
ppc_portfolios - First observed
ppc_product_family - First observed
ppc_product_report - First observed
ppc_query - First observed
ppc_search_terms - First observed
product_cogs - First observed
product_fee_preview - First observed
product_library - First observed
stage_ad_group_create - First observed
stage_ad_group_update - First observed
stage_aplus_update - First observed
stage_asset_upload - First observed
stage_automation_review - First observed
stage_automation_rule - First observed
stage_bid_changes - First observed
stage_budget_changes - First observed
stage_campaign_create - First observed
stage_campaign_tags - First observed
stage_campaign_update - First observed
stage_cogs_update - First observed
stage_competitor_watchlist - First observed
stage_dayparting_schedule - First observed
stage_entity_status - First observed
stage_listing_update - First observed
stage_margin_target - First observed
stage_negatives - First observed
stage_negatives_remove - First observed
stage_po_upsert - First observed
stage_portfolio_create - First observed
stage_portfolio_update - First observed
stage_product_ad_add - First observed
stage_product_edit - First observed
stage_status_change - First observed
stage_supplier_upsert - First observed
stage_targeting_add - First observed
staged_changes_pending
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Amazon Ads MCP with 27+ tools for analytics, wasted spend, and automation.
Connect Amazon Seller Central to Claude or ChatGPT via MCP. Orders, inventory, pricing, fees, FBA.
Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceUnifies Amazon SP-API and Ads API into 20 MCP tools for orders, inventory, reports, feeds, and advertising, handling auth, throttling, and PII compliance automatically.-
- AlicenseNot gradedqualityCmaintenanceEnables AI-powered advertising applications by providing MCP-compliant tools to interact with Amazon Ads API for campaign management, reporting, and optimization.1MIT
- AlicenseNot gradedqualityBmaintenanceHosted Amazon Seller Central & Vendor Central MCP server. Connect Claude, ChatGPT, Cursor, Codex, Gemini, and GitHub Copilot to live Amazon SP-API and Amazon Ads API data.12MIT
- AlicenseNot gradedqualityDmaintenanceFacilitate the management and automation of Amazon Sponsored Ads145MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
The domain-prefix taxonomy (account_, ppc_, pnl_, stage_, automation_) makes most tools instantly separable, and descriptions explicitly call out near-neighbor distinctions like automation_activity vs automation_aoe_status. However, at 104 tools there are still overlapping clusters—automation_scheduled_tasks vs automation_recent_tasks, pnl_summary vs pnl_breakdown vs pnl_period_cards, and stage_status_change vs stage_entity_status—so an agent must read carefully to avoid misselection.
Names are consistently snake_case and organized by domain prefix, which is highly predictable and a strong pattern for such a large set. The main deviation is that read tools are noun phrases (ppc_campaigns, pnl_summary) while mutation tools use stage_+verb, and a few generic verbs like data_query and data_describe break the noun pattern; still, this is far more consistent than most large servers.
104 tools is an extreme selection surface for any agent; even with clear prefixes and good descriptions, the set is far beyond the typical well-scoped 3-15 range. The server would be more coherent decomposed into focused sub-servers for PPC reads, PPC mutations, P&L, automation, and account admin.
For its apparent scope—Amazon seller P&L, inventory/forecast, brand analytics, full PPC read/write lifecycle, A+ content, automation, and admin ops—the surface is remarkably complete: every mutation flows through stage_* to confirm_staged_changes, and generic data_query/ppc_query fill long-tail needs. Minor gaps such as no dedicated order/settlement line-item reader and no true delete operation (only archive) are workable, so coverage earns a high but not perfect score.