22 Agent Skills for Amazon sellers and advertisers: Sponsored Products and Brands audits, search-term mining, budget pacing, DSP and Amazon Marketing Cloud, reporting, listing optimization and compliance, product images, repricing, FBA inbound, stockout, refunds, buyer messaging, and profitability. Built for Kuudo's hosted Amazon Ads and Selling Partner MCP servers; price, budget, listing, and shipment writes are previewed and wait for explicit approval.
68
93%
Does it follow best practices?
Impact
66%
1.65xAverage score across 22 eval scenarios
Medium
Suggest reviewing before use
Use this reference after selecting a catalog template or validating an ad-hoc field list.
Unified/v1 reporting addresses an Amazon Ads advertiser account with an amzn1.ads-account.g.* identifier. Numeric profile IDs identify marketplace profiles used by other endpoint families and cannot be substituted into a unified/v1 request.
If the user supplies only a profile ID, use amazon-ads-accounts or the available account-discovery API to resolve and confirm the related advertiser account and marketplace. If more than one account or marketplace matches, show the candidates and ask rather than choosing silently.
Record the resolved advertiser account, marketplace/region, requested time zone, and reporting currency when available. Do not embed credentials, internal identity IDs, or customer names in reusable examples.
Every bundled request body has this shape:
{
"accessRequestedAccounts": [
{"advertiserAccountId": "amzn1.ads-account.g.REPLACE_ME"}
],
"reports": [{
"format": "GZIP_JSON",
"periods": [{
"datePeriod": {
"startDate": "START_DATE",
"endDate": "END_DATE"
}
}],
"query": {
"fields": ["date.value", "campaign.id", "metric.impressions"],
"filter": {"on": {
"comparisonOperator": "EQUALS",
"field": "adProduct.value",
"not": false,
"values": ["SPONSORED_PRODUCTS"]
}}
}
}]
}Replace the account and date placeholders in every request. For an optional prior-year report, derive its dates from the confirmed primary period and replace PRIOR_YEAR_START_DATE and PRIOR_YEAR_END_DATE consistently. Confirm how leap day should map before generating a year-over-year comparison that crosses February 29.
The directly submittable request contains only accessRequestedAccounts and reports at the top level. Each report contains format, periods, and query. Documentation-only _comment keys may exist on wrapper files; omit them from submitted bodies.
An unmodified bundled template has a package-tested request shape and field set. If the user adds, removes, or supplies fields, validate the complete proposed list against the current reporting-field catalog before submission. Resolve unknown fields, missing required dimensions, and incompatible pairs; then validate again.
Every ad-hoc list needs:
Compatibility can force multiple reports. Keep each request internally compatible and state the client-side join keys and cardinality. Avoid promising a lossless join when one report has coarser grain.
The SP Campaign, SP Targeting, and SB Keyword wrapper files contain named CreateReport bodies beside a top-level _comment. The wrapper itself is not an API request. Extract and submit each named body independently:
Return separate JSON blocks when the user needs copy-pasteable requests.
Use the deployment’s current tool schema. Capability names differ across MCP servers and SDKs, so discover the account-query, field-validation, CreateReport, RetrieveReport, and download operations at runtime rather than assuming a particular wrapper or meta-tool.
Creating a report job is a read-type operation: it queues an asynchronous job and changes no campaign, budget, or account setting, so it needs no separate approval. Before submission, bind the request to the confirmed advertiser account, marketplace, period, field list, filters, and number of requests, and state them. If the account or marketplace is no longer the one the user confirmed, ask before submitting; if the period, fields, or filters changed, state the new request.
Record every returned report ID with the request it represents. If a multi-report submission partially fails, preserve successful IDs, report the failed request separately, and retry only that request after correcting the cause.
Treat reporting as asynchronous. Read the integration’s documented terminal and non-terminal statuses; do not assume a fixed completion time. Poll using bounded backoff, a background task, or the host’s wait facility. Stop at the configured timeout or user deadline and return the report ID so retrieval can resume later.
For a completed report:
[] as a valid empty result; distinguish it from failed retrieval or parsing.Signed URLs may expire. Obtain a fresh URL through the retrieval operation when needed instead of assuming a fixed lifetime. Keep access tokens and signed URLs out of logs and reusable artifacts.
State the lifecycle stage reached: generated, submitted, processing, completed, downloaded, failed, or timed out. Include report IDs for live jobs, the resolved account scope, and the report-specific caveats from the linked mapping reference.
.tessl-plugin
skills
amazon-ads-accounts
amazon-ads-budget-pacing
amazon-ads-create-dsp-campaign
amazon-ads-creative-assets
amazon-ads-marketing-cloud
amazon-ads-reporting
assets
templates
sb
references
tests
amazon-ads-sb-performance-review
amazon-ads-sp-campaign-auditor
amazon-ads-sp-search-term-explorer
amazon-product-image
amazon-profitability-calculator
amazon-sp-fba-inbound
amazon-sp-listing-compliance
amazon-sp-listing-optimizer
amazon-sp-messaging-api
amazon-sp-refund-return-monitor
amazon-sp-repricing
amazon-sp-sales-traffic-analyzer
amazon-sp-sqp-asin-ngram
amazon-sp-stockout-prevention
connect-to-kuudo
using-kuudo