com.vendooly/vendooly

Vendooly

Amazon Seller Central, Ads and Vendor Central in ChatGPT & Claude. 106 tools; writes need approval.

Endpointhttps://mcp.vendooly.com/mcp (streamable-http)
Registry version1.0.2
Now129 tools · grade F (43) · pin ts_0a1d80b906e3a6f710a99d4b046480f5 · protocol 2025-06-18
First / last listed2026-10-24 23:28 UTC / 2026-10-24 23:28 UTC
Grade over time2026-10-24: F (43), 129 tools

Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.

Timeline

First listing · 2026-10-24 23:28 UTC
129 tools, grade F (43)

Tools: list_clients get_client_status get_fba_inventory fba_inbound_discrepancies fba_reimbursement_check get_fulfilled_shipments get_inbound_plans create_inbound_plan get_inbound_plan generate_inbound_options confirm_inbound_option set_packing_information cancel_inbound_plan update_mfn_quantity check_feed_status get_orders get_order_items get_fba_customer_returns fiscal_transactions_export get_epr_report audit_catalog_quality create_listing update_listing get_listing delete_listing bulk_delete_listings search_catalog get_product_types list_my_products get_my_catalog_detail get_catalog_item get_competitive_pricing get_buybox_prices get_my_pricing get_fee_estimate update_price bulk_update_prices bulk_update_inventory bulk_update_listings bulk_set_shipping_template get_account_health check_listing_restrictions get_listing_issues list_inactive_listings audit_title_compliance plan_title_seo_fix apply_title_seo_batch title_seo_status title_seo_rollback audit_compliance update_item_highlights audit_aplus_coverage list_aplus_documents get_aplus_document get_dashboard_data get_all_dashboards generate_vendor_oauth_link get_vendor_purchase_orders get_vendor_purchase_order_details get_vendor_po_summary get_vendor_invoices get_vendor_remittances ads_list_profiles ads_list_portfolios ads_create_portfolio ads_list_sp_campaigns ads_create_sp_campaign ads_update_sp_campaign ads_list_sp_audiences ads_update_sp_audience_bidding ads_delete_sp_campaign ads_list_sp_ad_groups ads_create_sp_ad_group ads_update_sp_ad_group ads_list_sb_campaigns ads_update_sb_campaign ads_list_sb_ad_groups ads_update_sb_ad_group ads_list_sb_keywords ads_update_sb_keyword_bid ads_update_sb_keyword_state ads_list_sb_targets ads_update_sb_target_bid ads_update_sb_target_state ads_list_sd_campaigns ads_update_sd_campaign ads_list_sd_ad_groups ads_update_sd_ad_group ads_list_sp_keywords ads_create_sp_keywords ads_update_sp_keyword_bid ads_update_sp_keyword_state ads_list_sp_negative_keywords ads_create_sp_negative_keywords ads_delete_sp_negative_keywords ads_list_sp_product_ads ads_catalog_coverage ads_update_sp_product_ad_state ads_create_sp_product_ads ads_list_sp_targets ads_create_sp_product_targets ads_update_sp_target_bid ads_update_sp_target_state ads_delete_sp_targets ads_list_sp_negative_targets ads_create_sp_negative_targets ads_delete_sp_negative_targets get_vendor_trading_terms weekly_recap diagnose_sales_drop reprice_to_buybox ads_get_budget_usage ads_stockout_check findings_list ads_performance list_context_topics get_context_document list_sops get_sop save_sop list_cockpits get_cockpit save_cockpit set_cockpit_target invite_team_member list_team_members send_feedback execute_sql ping

Current tools (129)

list_clientsList the connected Amazon outposts (an outpost = one seller on one marketplace; the account_id of each is what you pass to other tools). Org-scoped.
params: none
get_client_statusGet status/details of the selected Amazon seller account (outpost), including the Amazon Ads connection: ads.ads_status and, for Ads consents granted from 30/7/2026, ads.expires_at / ads.days_left (Amazon expires Ads consent 365 days after it is granted, then Ads stop working until the seller reconnects). If ads.warning is present, tell the user and point them to Marketplaces → Reconnect Ads.
params: account_id
get_fba_inventoryFBA inventory summaries
params: account_id
fba_inbound_discrepanciesREAD-ONLY. "Check FBA shipments and show me the discrepancies / what to recover": reads the inventory ledger (Receipts) which gives, per shipment, units received and the UNRECONCILED quantity that Amazon itself flags (potential loss), plus an estimated recoverable value (× listing price); and cross-references reimbursements ALREADY granted (lost/damaged/returns) so you do not claim what is already
params: days, account_id
fba_reimbursement_checkREAD-ONLY. "How many FBA units did I lose / got damaged, and how many were NOT reimbursed?" — the FBA lost & damaged balance per SKU (what ZoneWizard logistics, Igolai, Getida do). Reads the inventory ledger (Adjustments: lost M/5, found F/N, damaged E/6, other damage H/K/7/U, disposed D) and the reimbursements report (Lost_Warehouse, Damaged_Warehouse, CustomerReturn, reversals) and returns per S
params: days, sku, only_open, limit, account_id
get_fulfilled_shipmentsREAD-ONLY. FBA orders as physically fulfilled by Amazon (report Amazon Fulfilled Shipments, GENERAL variant — no buyer PII): per order, the fulfillment-center-id each item shipped FROM and the derived ship-from country. Use when the user needs to know FROM WHICH COUNTRY an FBA order departed — typical case: choosing the correct VAT regime on manually issued invoices for marketplaces without Amazon
params: days, order_id, sku, max_orders, account_id
get_inbound_plansREAD-ONLY. List FBA inbound plans (new "Send to Amazon" workflow, Fulfillment Inbound v2024-03-20): inbound plan id, name, status (ACTIVE/SHIPPED/VOIDED), marketplaces, created/updated. This is the API that sees shipments created with the current Amazon flow (the legacy get_inbound_shipments v0 returns nothing for them). Use to list the seller's actual inbound plans/shipments and their status.
params: status, page_size, account_id
create_inbound_planACTION. Crea un PIANO di spedizione FBA ("Send to Amazon", Fulfillment Inbound v2024-03-20): SKU + quantità + indirizzo di ORIGINE (magazzino/fornitore del seller). È il PASSO 1 del flusso: il piano nasce come bozza modificabile, NON parte nessuna spedizione. SEQUENZA COMPLETA (guida l'utente passo-passo): 1) create_inbound_plan → 2) generate_inbound_options kind:"packing" → 3) confirm_inbound_opt
params: name, items*, source_address*, account_id, confirm_id
get_inbound_planREAD-ONLY. Dettaglio di UN piano inbound FBA v2024 (stato, indirizzo origine, righe SKU con quantità/prep/label). Con operation_id (invece di inbound_plan_id) fa il polling di un'operazione asincrona pendente (create/generate/confirm) e ne ritorna stato + problemi. Per l'ELENCO dei piani usa get_inbound_plans.
params: inbound_plan_id, operation_id, account_id
generate_inbound_optionsACTION (bozze non vincolanti). Genera E elenca in una sola chiamata le opzioni del piano inbound FBA: kind:"packing" = opzioni di imballo (packing groups); kind:"placement" = opzioni di DESTINAZIONE con split tra centri Amazon e FEE per opzione (inbound placement fee vs Amazon-optimized) — mostra SEMPRE fee e numero spedizioni di ogni opzione all'utente prima di confermare. Richiede il piano creat
params: inbound_plan_id*, kind*, regenerate, account_id
confirm_inbound_optionACTION. Conferma un'opzione del piano inbound FBA scelta dall'utente. kind:"packing" + packing_option_id = fissa l'imballo (poi servono le scatole: set_packing_information). kind:"placement" + placement_option_id = IMPEGNO VERO: le spedizioni vengono CREATE con lo split e le fee di quell'opzione (ritorna gli shipment_ids). Conferma SOLO dopo che l'utente ha visto fee e split e ha approvato esplici
params: inbound_plan_id*, kind*, option_id*, account_id, confirm_id
set_packing_informationACTION. Registra le SCATOLE del piano inbound FBA (dopo il packing confermato): per ogni packing group, le scatole con dimensioni in CM, peso in KG, quantità di scatole identiche e contenuto (SKU+quantità per scatola, salvo content_source diverso). Passo obbligatorio PRIMA di generare le opzioni di placement. Chiedi all'utente dimensioni/peso reali: Amazon le verifica in ricezione.
params: inbound_plan_id*, groupings*, account_id, confirm_id
cancel_inbound_planACTION. Annulla un piano inbound FBA v2024 non ancora spedito (torna VOIDED). Usalo per i ripensamenti su un piano creato per errore o non più necessario. Chiedi conferma esplicita all'utente prima di chiamare.
params: inbound_plan_id*, account_id, confirm_id
update_mfn_quantityUpdate MFN inventory quantity for a SKU
params: sku*, quantity*, account_id, confirm_id
check_feed_statusStato di elaborazione di un feed (es. quelli restituiti da bulk_delete_listings). Amazon lavora i feed in modo asincrono: IN_QUEUE/IN_PROGRESS = ancora in corso, richiama fra un po'. Quando è DONE la risposta porta GIÀ l'esito letto: `summary` con quante righe Amazon ha processato/accettato/rifiutato, `errors_count` e `warnings_count`, e `issues_sample` con un campione delle righe problematiche (`
params: feed_id*, wait, account_id
get_ordersList individual orders (last N days): order ids, status, dates and totals only — no buyer data. Live Amazon Orders API, throttled (≈1 req/min): use ONLY when you need order-level rows. For daily sales/orders charts or trends over a period use get_daily_sales; for a single revenue total use get_revenue_summary — both are served from cache and never throttle.
params: days_back, statuses, limit, account_id
get_order_itemsItems for a specific order
params: order_id*, account_id
get_fba_customer_returnsREAD-ONLY. Detailed physical FBA customer returns from GET_FBA_FULFILLMENT_CUSTOMER_RETURNS_DATA: SKU, ASIN, return date, quantity, original reason, detailed_disposition, status, fulfillment center and customer_comments. Use for damaged returns (DAMAGED_BY_FC/DAMAGED_BY_CARRIER), incompatibility (NOT_COMPATIBLE), product quality and return investigations. Separate from reimbursements/refunds and n
params: days, start_date, end_date, report_id, sku, asin, order_id, reason, detailed_disposition, limit, offset, account_id
fiscal_transactions_exportREAD-ONLY. Fiscal transactions file for the accountant (VAT/OSS support): one row per order item for sales (VENDITA), refunds (RIMBORSO), A-to-Z claims and chargebacks, with Amazon posted date, marketplace, order id, SKU, quantity, currency, ship-to country, B2B flag (Amazon Business order), net price, VAT (Amazon ChargeType *Tax, separate), shipping and gift wrap with their VAT, promotions, taxab
params: start_date*, end_date*, refresh, account_id
get_epr_reportREAD-ONLY. Amazon EPR (Extended Producer Responsibility) report for one seller outpost and one CLOSED calendar period, from SP-API GET_EPR_MONTHLY_REPORTS / GET_EPR_QUARTERLY_REPORTS / GET_EPR_ANNUAL_REPORTS (Product Listing role, sellers only). Returns a summary per ship-to country and EPR category/subcategory: units sold, total reported weight (kg) and material weights (paper, glass, aluminum, s
params: period_type, period, country, limit, refresh, account_id
audit_catalog_qualityRun catalog quality audit
params: top_n, wait_timeout_sec, account_id
create_listingCrea/sostituisce una listing (PUT). product_data accetta campi SEMPLICI auto-mappati nel formato attributi SP-API: title, brand, price, quantity, condition, ean/upc/gtin, description, bullets[]. Per agganciare un'offerta a un ASIN GIA' a catalogo usa requirements:"LISTING_OFFER_ONLY" + asin (NON servono title/brand: li fornisce il catalogo). Puoi anche passare attributes gia' strutturati. validate
params: sku*, product_data*, account_id, confirm_id
update_listingModifica una listing esistente. SHORTCUT amichevoli (consigliati — costruiscono la struttura attributo corretta, niente schema SP-API a mano): bullets:[...] → bullet_point ("Funzionalità principali", la leva dei punti-elenco su amazon.it/EU, fino a 5 ~100 char l'uno), title → item_name, shipping_template → merchant_shipping_group (modello di spedizione: ID o nome esatto come in Seller Central; il
params: sku*, bullets, title, shipping_template, patches, product_type, validate_only, account_id, confirm_id
get_listingFetch one listing (summaries, issues, offers, fulfillment availability). Pass include_data:["attributes"] for the full attribute set.
params: sku*, include_data, account_id
delete_listingDelete a listing
params: sku*, account_id, confirm_id
bulk_delete_listingsCancella offerte IN BLOCCO su un account, filtrando per canale di gestione. USA QUESTO, non delete_listing in ciclo, quando le offerte da eliminare sono più di qualche decina: delete_listing va SKU per SKU e sul rate limit di Amazon migliaia di SKU non finiscono mai, mentre qui si spediscono in feed da 20.000. Due fasi obbligatorie: (1) chiamalo SENZA plan_id → legge dal report Amazon quali SKU ri
params: channel, skus, plan_id, confirm, account_id, confirm_id
search_catalogSearch the Amazon catalog. IMPORTANT: use identifiers (ASIN/EAN/ISBN) for reliable, compact results. Keyword search returns up to 10 items (summaries only) and may be incomplete — prefer identifiers when you know the ASIN or EAN.
params: keywords, identifiers, identifierType, account_id
get_product_typesGet product type definition. product_type is REQUIRED (e.g. PUZZLE, SAFETY_AND_HEALTH, LUGGAGE). By default fetches the JSON Schema server-side and returns allowed enum values per attribute (attribute_enums) + required_attributes — no need to open the S3 link. The schema is personalised for the selected seller: shipping_templates = the seller's shipping templates (modelli di spedizione) as [{id, n
params: product_type*, locale, include_enums, raw_schema, attributes, account_id
list_my_productsList own products from local cache (SKU, ASIN, title, price, stock FBA+MFN, fulfillment channel, velocity = avg units/day last 30d, days_cover = stock/velocity — paginated, default 50 rows, no customer data). Use velocity/days_cover for stock-out risk ("sells 3.2/day, runs out in ~4 days"). Filter channel:"FBM" for merchant-fulfilled only. NB: sorted by sales rank, so unranked FBM items appear in
params: limit, offset, q, only_in_stock, channel, account_id
get_my_catalog_detailCatalog detail from local cache
params: asin*, account_id
get_catalog_itemLive SP-API catalog item lookup
params: asin*, locale, account_id
get_competitive_pricingREAD-ONLY. Buy Box / Featured Offer price per ASIN (max 20 per Amazon call, auto-batched). Returns buy_box_price (listing) + buy_box_landed_price (incl. shipping), condition, whether you win the Buy Box, and source. Falls back to live offers when Amazon has no competitive price, so it returns far fewer nulls than the raw SP-API. Use for a few ASINs; for a long list use get_buybox_prices.
params: asins*, account_id
get_buybox_pricesREAD-ONLY. BULK Buy Box / Featured Offer export for a LIST of ASINs (up to 100). Returns a clean table per ASIN: buy_box_price (all-in for the customer), lowest_price, offer_count, whether you win the Buy Box, FBA/FBM of the winner, and a reason when there is no Buy Box (suppressed / no offers). Use for "give me the Buy Box price for these ASINs" / export. Note: Amazon rate limits make long lists
params: asins*, customer_type, account_id
get_my_pricingYour own pricing per SKU
params: skus*, account_id
get_fee_estimateEstimate Amazon fees (referral + FBA + variable closing) and net proceeds for a given selling price, via the official Amazon Product Fees API (getMyFeesEstimate). Pass asin OR sku, the price, currency and fulfillment_channel (FBA default, or FBM). Returns referral_fee, fba_fee, closing_fee, total_fees and net_proceeds (price minus Amazon fees, before your cost of goods). Use it for real margins: m
params: asin, sku, price*, currency, fulfillment_channel, account_id
update_priceUpdate price for a SKU
params: sku*, price*, currency, account_id, confirm_id
bulk_update_pricesBulk price updates
params: updates*, account_id, confirm_id
bulk_update_inventoryBulk inventory updates
params: updates*, account_id, confirm_id
bulk_update_listingsBulk listing attribute updates (title, bullet_point, any patch). updates: [{sku, title?, bullets?: string[], patches?: [...], product_type?, validate_only?}]. product_type is optional: each SKU's product type is read from its listing (results[].product_type_used). Use when you need to update titles or bullets on multiple SKUs at once instead of calling update_listing one by one. Returns {total, ok
params: updates*, account_id, confirm_id
bulk_set_shipping_templateAssegna lo STESSO modello di spedizione (merchant_shipping_group) a molti SKU in una volta, con un feed JSON_LISTINGS_FEED (fino a 5.000 SKU per chiamata, un feed) invece di update_listing SKU per SKU. shipping_template = ID o nome come in Seller Central (elenco: get_product_types product_type="PRODUCT" → shipping_templates). Prima chiama con validate_only:true (valida la modifica su 3 SKU di prov
params: skus*, shipping_template*, validate_only, account_id, confirm_id
get_account_healthREAD-ONLY. Account Health of ONE seller account on ONE marketplace (outpost), read from Amazon's official seller performance report (GET_V2_SELLER_PERFORMANCE_REPORT, same data as Seller Central → Account Health): seller account status (NORMAL/AT_RISK/DEACTIVATED), Account Health Rating status (GREAT/WARNED — Amazon does NOT expose the 0-1000 numeric score via API), each metric with value %, Amazo
params: refresh, account_id
check_listing_restrictionsREAD-ONLY. Gated products: BEFORE listing or buying stock, tells whether THIS seller account can sell each ASIN on the outpost's marketplace (or other marketplaces of the same region) in a given condition, using Amazon's Listings Restrictions API (getListingsRestrictions). Per ASIN: libero (no restriction) / serve_approvazione (APPROVAL_REQUIRED, with Amazon's approval_links to Seller Central) / n
params: asins, identifiers, identifier_type, marketplace_ids, condition, reason_locale, include_brand, brands, category, classification_id, sample_size, account_id
get_listing_issuesREAD-ONLY. Issue Amazon di SKU SPECIFICI (una chiamata SP-API per SKU): usalo quando l'utente nomina 1-20 SKU. Per la domanda "quali dei miei articoli NON sono in vendita / sono bloccati / soppressi e perché" NON usare questo in loop: usa list_inactive_listings, che copre tutto il catalogo con una chiamata ogni 20 SKU.
params: skus, issue_locale, account_id
list_inactive_listingsREAD-ONLY. Elenco CATALOGO-WIDE dei listing che NON sono in vendita, CON IL MOTIVO — la risposta a "quali prodotti sono inattivi/bloccati/soppressi?", "cosa mi ha bloccato Amazon dopo il caricamento?", "perché questo articolo non si vende?". Legge lo stato reale della Listings Items API (BUYABLE / DISCOVERABLE) e gli enforcement dichiarati da Amazon: LISTING_SUPPRESSED (offerta non acquistabile),
params: scope, changed_since, max_pages, top_n, issue_locale, check_fba_stock, check_stranded_report, stranded_wait_sec, account_id
audit_title_complianceAudit all listings for Amazon title limit (75 chars, enforced from July/August 2026 — i titoli non conformi vengono RISCRITTI dall'IA di Amazon, solo i brand registrati hanno 14 giorni di review). Returns titles over the limit with excess character count + bullet/highlight counts per SKU, più la fascia at_risk (73–75 char, conformi ma senza margine). L'azione per un titolo troppo lungo è ACCORCIAR
params: max_pages, account_id
plan_title_seo_fixTitolo conforme SENZA perdere SEO, passo 1 (solo lettura): per ogni SKU accorcia il titolo a 72 caratteri (o usa new_titles), calcola le parole di ricerca perse e le ricolloca in generic_keyword (≤250 byte, niente doppioni); quello che non entra va come frase presa pari pari dal titolo vecchio in coda al bullet più affine, o alla descrizione. MAI parole nuove. Se il taglio è già stato fatto passa
params: skus, limit, include_bullets, original_titles, new_titles, account_id
apply_title_seo_batchTitolo-SEO, passo 2 (SCRITTURA): applica un lotto del piano (solo SKU ready). Primo lotto dell'outpost max 2 SKU, poi max 50; prima di ogni lotto rilegge il precedente e si ferma se non risulta applicato. Ogni SKU viene riletto dal vivo: se la listing è cambiata dall'anteprima non si scrive. Salva il valore di prima nel registro per title_seo_rollback.
params: plan_id*, skus, account_id, confirm_id
title_seo_statusTitolo-SEO: stato per l'outpost (ultimo piano con i conteggi, ultimi lotti con esito, verificato, annullabile).
params: account_id
title_seo_rollbackTitolo-SEO (SCRITTURA): rimette titolo, generic_keyword, bullet e descrizione com'erano prima di un lotto, dal registro.
params: batch_id*, account_id, confirm_id
audit_complianceAudit compliance/GPSR del catalogo (EU/IT). Per ogni SKU verifica gli attributi compliance REALI del suo product type (schema-aware): manufacturer, rtip_manufacturer_contact_information (contatto fabbricante), country_of_origin, safety_warning, safety_data_sheet_url e — dove il product type li prevede — i GPSR: gpsr_safety_attestation, gpsr_manufacturer_reference, dsa_responsible_party_address (re
params: max_pages, mode, account_id
update_item_highlightsUpdate Item Highlights on a listing. L'attributo UFFICIALE è title_differentiation (max 125 char, rollout titoli modulari 27/7/2026); item_highlights è il nome legacy visto su alcuni schema US — il tool risolve da solo quale espone lo schema del product type e scrive su quello. ATTENZIONE: non tutti i marketplace/product type lo espongono — dove manca il tool rifiuta con esito chiaro (not_supporte
params: sku*, highlights*, product_type, confirm, account_id, confirm_id
audit_aplus_coverageREAD-ONLY. Copertura A+ Content del catalogo: quali ASIN hanno un documento A+ APPROVED (= visibile al cliente) e quali no, con i buchi ORDINATI per peso commerciale (unità vendute a 30 giorni) — quindi "quali pagine che vendono davvero sono senza A+". Segnala anche i documenti REJECTED (lavoro già fatto mai andato online, il recupero più rapido) e quelli in DRAFT/SUBMITTED. LIMITE DA DICHIARARE S
params: max_documents, max_catalog, top_n, account_id
list_aplus_documentsREAD-ONLY. Elenco dei documenti A+ Content del seller su questo marketplace, con stato (DRAFT | SUBMITTED | APPROVED | REJECTED), badge e data di aggiornamento. Solo APPROVED è visibile al cliente. Per la domanda "quanto del mio catalogo ha A+" usa audit_aplus_coverage, non questo.
params: max_pages, account_id
get_aplus_documentREAD-ONLY. Dettaglio di UN documento A+ (stato, badge, ASIN associati, tipi di modulo). content_reference_key si prende da list_aplus_documents o audit_aplus_coverage. include_content=true restituisce anche i moduli completi. NB: i moduli A+ sono TIPIZZATI (STANDARD_TEXT, STANDARD_COMPARISON_TABLE, …), non HTML libero — un "HTML pronto" generato altrove va rimappato su questi tipi, non incollato.
params: content_reference_key*, include_content, account_id
get_dashboard_dataRead-only aggregated KPI summary for this account (listing counts, 7d revenue total, issue count). Aggregates only, no customer data.
params: account_id
get_all_dashboardsRead-only aggregated KPI summary across all accounts in the org (aggregates only, no customer data)
params: none
generate_vendor_oauth_linkVendor Central OAuth link
params: redirect_uri, state, region
get_vendor_purchase_ordersVendor POs
params: days_back, include_details, po_item_state, account_id
get_vendor_purchase_order_detailsVendor PO details
params: po_number*, account_id
get_vendor_po_summaryVendor PO aggregate summary
params: days_back, account_id
get_vendor_invoicesVendor invoices — SP-API non espone un endpoint di lettura per le fatture vendor retail (solo POST submitInvoices). Questo tool restituisce una spiegazione della limitazione e rimanda a get_vendor_remittances per gli importi stimati e a Vendor Central per le fatture reali.
params: days_back, ship_from_party_id, account_id
get_vendor_remittancesVendor: importi stimati dai PO (SP-API non espone remittance reali in lettura)
params: days_back, summary_only, account_id
ads_list_profilesList Amazon Ads profiles for this account
params: account_id
ads_list_portfoliosList Amazon Ads portfolios (groups of campaigns with optional shared budget)
params: profile_id, account_id
ads_create_portfolioCreate an Amazon Ads portfolio to group campaigns (no portfolio-level budget cap; campaigns can then be assigned to it). Same scope as campaigns — no extra authorization needed.
params: portfolio*, account_id, confirm_id
ads_list_sp_campaignsLIVE: stato corrente delle campagne SP. Campi chiave per campagna: name, campaignId, state, targetingType (AUTO|MANUAL) e daily_budget = budget giornaliero NUMERICO nella valuta del marketplace (es. 50, 150). NON esiste un "bid" a livello campagna (i bid sono su keyword/target). Usa per VERIFICARE prima di agire o per avere nomi/ID. NON ritorna performance: per ACoS/spesa/ROAS/vendite/click usa ex
params: state_filter, profile_id, account_id
ads_create_sp_campaignCreate a SP campaign. campaign.targeting_type: "AUTO" (Amazon sceglie automaticamente i target — NON aggiungere keyword/target manuali; per modulare i bid dei 4 gruppi auto usa ads_create_sp_product_targets con auto_match) oppure "MANUAL" (default; poi attacchi keyword via ads_create_sp_keywords o ASIN via ads_create_sp_product_targets). Placement bidding: passa placement_bidding [{placement, perc
params: campaign*, account_id, confirm_id
ads_update_sp_campaignAggiorna una o PIÙ campagne SP. SINGOLA: campaign_id + patches (patches.daily_budget numero → convertito nel payload v3 budget{budgetType:DAILY,budget}; patches.state ENABLED|PAUSED; patches.placement_bidding = MOLTIPLICATORI per placement [{placement, percentage 0-900}] con placement PLACEMENT_TOP|PLACEMENT_REST_OF_SEARCH|PLACEMENT_PRODUCT_PAGE|SITE_AMAZON_BUSINESS (alias top/rest_of_search/produ
params: campaign_id, patches, items, profile_id, account_id, confirm_id
ads_list_sp_audiencesREAD-ONLY. Elenca i SEGMENTI DI PUBBLICO utilizzabili per i moltiplicatori di bid delle campagne Sponsored Products (audience bid adjustments, disponibili in IT/DE/FR/ES/UK). source: "amazon" (default: pubblici costruiti da Amazon, es. chi ha già comprato dal brand, chi ha cliccato o messo nel carrello, alta probabilità di acquisto), "amc" (pubblici creati in Amazon Marketing Cloud) o "all". searc
params: source, search, locale, profile_id, account_id
ads_update_sp_audience_biddingImposta i MOLTIPLICATORI PER SEGMENTO DI PUBBLICO di UNA campagna Sponsored Products (dynamicBidding.shopperCohortBidding): aggiunge o modifica (set=[{audience_id, percentage}]), toglie (remove=[audience_id]) o azzera tutto (clear_all=true). percentage = aumento % del bid, INTERO 0-900: i segmenti possono solo ALZARE il bid, mai abbassarlo. Si applica SOPRA il moltiplicatore di placement (es. bid
params: campaign_id*, set, remove, clear_all, confirm, profile_id, account_id, confirm_id
ads_delete_sp_campaignArchivia (elimina) una o più campagne SP. È l'UNICO modo di archiviare una campagna: ads_update_sp_campaign accetta solo ENABLED|PAUSED (Amazon rifiuta ARCHIVED sul PUT). IRREVERSIBILE — una campagna archiviata non si riattiva, va ricreata. campaign_ids: [id, ...].
params: campaign_ids*, profile_id, account_id, confirm_id
ads_list_sp_ad_groupsRead-only list of Sponsored Products ad groups (id, name, state, default bid)
params: campaign_id, profile_id, account_id
ads_create_sp_ad_groupCreate a SP ad group in an existing campaign. Defaults to PAUSED so it can be populated before delivery. IMPORTANTE — un ad group è O keyword-targeted O product-targeted, MAI entrambi: Amazon RIFIUTA (otherError) una keyword in un ad group che ha già product target, e viceversa. Quindi se ti servono SIA keyword SIA target di prodotto, crea DUE ad group separati nella stessa campagna: uno popolato
params: ad_group*, account_id, confirm_id
ads_update_sp_ad_groupUpdate a SP ad group
params: ad_group_id*, patches*, account_id, confirm_id
ads_list_sb_campaignsLIVE: stato corrente delle campagne Sponsored Brands (SB) ESISTENTI (create da Amazon Ads console — Vendooly non crea ancora campagne SB nuove, serve brandEntityId/Brand Registry/asset creativi/moderazione, non implementato). Campi chiave: name, campaignId, state (ENABLED|PAUSED|ARCHIVED), daily_budget, costType (CPC|vCPM), bidding (placement/bidOptimization), brandEntityId. NON ritorna performanc
params: state_filter, campaign_id_filter, profile_id, account_id
ads_update_sb_campaignAggiorna una o PIÙ campagne Sponsored Brands (SB) ESISTENTI: budget giornaliero, stato (ENABLED|PAUSED) e OTTIMIZZAZIONE DELL'OFFERTA. Per ottimizzare senza tagliare volume NON strozzare il budget: usa i moltiplicatori per posizionamento con patches.bid_adjustments_by_placement=[{placement, percentage}] — placement (enum verificato): TOP_OF_SEARCH | DETAIL_PAGE | HOME | OTHER (alias comodi: top, d
params: campaign_id, patches, items, profile_id, account_id, confirm_id
ads_list_sb_ad_groupsRead-only: elenco ad group Sponsored Brands (SB) — id, nome, stato (ENABLED|PAUSED|ARCHIVED), campagna di appartenenza. Filtra con campaign_id_filter.
params: campaign_id_filter, profile_id, account_id
ads_update_sb_ad_groupAggiorna un ad group Sponsored Brands (SB) ESISTENTE (es. stato ENABLED|PAUSED). NON crea ad group nuovi.
params: ad_group_id*, patches*, account_id, confirm_id
ads_list_sb_keywordsLIVE: keyword Sponsored Brands (SB) con BID e stato ATTUALI — la lettura da fare prima di riofferire su SB. Filtra con campaign_id/ad_group_id. NON ritorna performance: per spesa/vendite/ACoS usa execute_sql su fact_keyword_daily. Elenco vuoto = quel brand non ha keyword SB (tipico se le campagne SB usano product targeting o non esistono): dillo, NON inventare keyword.
params: campaign_id, ad_group_id, state_filter, profile_id, account_id
ads_update_sb_keyword_bidAggiorna il BID di una o PIÙ keyword Sponsored Brands. È la leva per OTTIMIZZARE una campagna SB invece di spegnerla o strozzarne il budget. keyword_id si ottiene da ads_list_sb_keywords. SINGOLA: keyword_id + bid. BATCH (consigliato): items=[{keyword_id, bid}], MAX 25. Esito verificato per-id (read-after-write).
params: keyword_id, bid, items, profile_id, account_id, confirm_id
ads_update_sb_keyword_stateAggiorna lo stato (ENABLED|PAUSED|ARCHIVED) di una o PIÙ keyword Sponsored Brands. SINGOLA: keyword_id + state. BATCH: items=[{keyword_id, state}], MAX 25. Esito verificato per-id.
params: keyword_id, state, items, profile_id, account_id, confirm_id
ads_list_sb_targetsLIVE: product target Sponsored Brands (ASIN/categoria/brand) con BID e stato ATTUALI. Il target_id serve per ads_update_sb_target_bid. NON ritorna performance: usa execute_sql sul data-hub. Elenco vuoto = nessun target SB su questo profilo: dillo, NON inventare target.
params: campaign_id, ad_group_id, state_filter, profile_id, account_id
ads_update_sb_target_bidAggiorna il BID di uno o PIÙ product target Sponsored Brands. Insieme a ads_update_sb_keyword_bid e ai moltiplicatori per posizionamento di ads_update_sb_campaign è il modo per OTTIMIZZARE SB (invece di limitarsi a spegnere o tagliare il budget). target_id da ads_list_sb_targets. SINGOLA: target_id + bid. BATCH: items=[{target_id, bid}], MAX 25. Esito verificato per-id.
params: target_id, bid, items, profile_id, account_id, confirm_id
ads_update_sb_target_stateAggiorna lo stato (ENABLED|PAUSED|ARCHIVED) di uno o PIÙ product target Sponsored Brands. SINGOLA: target_id + state. BATCH: items=[{target_id, state}], MAX 25. Esito verificato per-id.
params: target_id, state, items, profile_id, account_id, confirm_id
ads_list_sd_campaignsLIVE: campagne Sponsored Display (SD) ESISTENTI — name, campaignId, state (enabled|paused|archived), budget giornaliero, tactic (T00020 contestuale | T00030 audiences), costType (cpc|vcpm), bidOptimization. Vendooly non CREA campagne SD (servono audiences/creatives/Brand Registry): legge e aggiorna quelle già create da Amazon Ads console. NON ritorna performance: per ACoS/spesa SD usa execute_sql
params: state_filter, campaign_id_filter, profile_id, account_id
ads_update_sd_campaignAggiorna una o PIÙ campagne Sponsored Display ESISTENTI: budget giornaliero e/o stato (enabled|paused). SINGOLA: campaign_id + daily_budget/state. BATCH: items=[{campaign_id, daily_budget?, state?}], MAX 25. Esito verificato per-id (read-after-write). NON crea campagne SD.
params: campaign_id, daily_budget, state, items, profile_id, account_id, confirm_id
ads_list_sd_ad_groupsRead-only: ad group Sponsored Display — id, nome, stato, campagna di appartenenza e defaultBid (l'offerta dell'ad group, la leva di ottimizzazione SD). Filtra con campaign_id_filter.
params: campaign_id_filter, state_filter, profile_id, account_id
ads_update_sd_ad_groupAggiorna uno o PIÙ ad group Sponsored Display: BID (defaultBid) e/o stato (enabled|paused). Su SD il bid dell'ad group è la leva principale di ottimizzazione. SINGOLA: ad_group_id + bid/state. BATCH: items=[{ad_group_id, bid?, state?}], MAX 25. Esito verificato per-id.
params: ad_group_id, bid, state, items, profile_id, account_id, confirm_id
ads_list_sp_keywordsLIVE: keyword SP con bid e stato ATTUALI — per agire o verificare. NON ritorna performance: per spesa/vendite/ACoS o keyword che sprecano usa execute_sql su fact_keyword_daily.
params: campaign_id, ad_group_id, profile_id, account_id
ads_create_sp_keywordsCreate SP keywords. L'ad group bersaglio deve essere keyword-targeted: se ha GIÀ product target Amazon rifiuta con otherError (un ad group è keyword O product, mai entrambi) → in quel caso crea un ad group dedicato alle keyword. Ogni keyword: { campaign_id, ad_group_id, keyword_text, match_type (BROAD|PHRASE|EXACT), bid }.
params: keywords*, account_id, confirm_id
ads_update_sp_keyword_bidAggiorna il bid di una o PIÙ keyword SP. SINGOLA: keyword_id + bid. BATCH (consigliato per agire su molte keyword in una volta — meno chiamate, niente raffica): items=[{keyword_id, bid}], ogni keyword può avere un bid diverso, MAX 25 per chiamata. Esito verificato PER-ID (read-after-write).
params: keyword_id, bid, items, profile_id, account_id, confirm_id
ads_update_sp_keyword_stateAggiorna lo stato (ENABLED/PAUSED) di una o PIÙ keyword SP. SINGOLA: keyword_id + state. BATCH: items=[{keyword_id, state}], MAX 25 per chiamata. Esito verificato PER-ID.
params: keyword_id, state, items, profile_id, account_id, confirm_id
ads_list_sp_negative_keywordsList SP negative keywords
params: campaign_id, ad_group_id, profile_id, account_id
ads_create_sp_negative_keywordsCreate SP negative keywords
params: negatives*, account_id, confirm_id
ads_delete_sp_negative_keywordsDelete SP negative keywords
params: keyword_ids*, profile_id, account_id, confirm_id
ads_list_sp_product_adsREAD-ONLY LIVE. Elenco SP completo di default (all_pages=true), con ASIN/SKU, stato, nomi e stati di campagna e gruppo. Filtri esatti. all_pages=false legge una pagina Amazon: continuare con next_token anche se vuota dopo i filtri ASIN/SKU. Per trovare tutti gli ASIN scoperti usare ads_catalog_coverage.
params: campaign_id, ad_group_id, state_filter, asin, sku, page_size, next_token, all_pages, profile_id, account_id
ads_catalog_coverageREAD-ONLY. Tutti gli ASIN del catalogo e delle vendite recenti di un outpost, uno per uno, con SKU, titolo, stock, vendite e copertura Sponsored Products LIVE. Incrocia tutte le Product Ads e gli stati campagna/gruppo. Nessun campionamento; dati incompleti o obsoleti producono errore, mai falsi scoperti. Per prodotti venduti senza SP attive usare only_with_sales=true e only_uncovered=true. Richied
params: lookback_days, only_in_stock, only_with_sales, only_uncovered, ignore_orphan_ads, account_id
ads_update_sp_product_ad_stateMette in pausa o riattiva (ENABLED/PAUSED) uno o PIÙ product ad SP, cioè il singolo ASIN/SKU sponsorizzato dentro un ad group, senza toccare campagna o ad group. ad_id da ads_list_sp_product_ads. ARCHIVED non è ammesso (irreversibile). SINGOLA: ad_id + state. BATCH: items=[{ad_id, state}], MAX 25 per chiamata. Esito verificato PER-ID.
params: ad_id, state, items, profile_id, account_id, confirm_id
ads_create_sp_product_adsCreate SP product ads
params: ads*, account_id, confirm_id
ads_list_sp_targetsList SP targeting clauses — SIA i target MANUAL (ASIN/categoria) SIA i 4 gruppi AUTO che Amazon genera da solo nelle campagne AUTO. Ogni clause ritorna il suo targetId, lo state e (se impostato) il bid. Mappatura gruppi AUTO (expression.type → nome UI): QUERY_HIGH_REL_MATCHES=close-match, QUERY_BROAD_REL_MATCHES=loose-match, ASIN_SUBSTITUTE_RELATED=substitutes, ASIN_ACCESSORY_RELATED=complements.
params: campaign_id, ad_group_id, state_filter, profile_id, account_id
ads_create_sp_product_targetsCreate SP targets. MANUAL (campagne MANUAL): ogni target { campaign_id, ad_group_id, bid, e uno tra: asin (ASIN target), category_id (category target), expression (raw v3) }. AUTO (campagne AUTO): per impostare il bid sui 4 gruppi di matching automatico usa { campaign_id, ad_group_id, bid, auto_match: "close"|"loose"|"substitutes"|"complements" } (close=ricerche strettamente correlate, loose=gener
params: targets*, account_id, confirm_id
ads_update_sp_target_bidAggiorna il bid di uno o PIÙ target SP (MANUAL ASIN/categoria o i 4 gruppi AUTO close/loose/substitutes/complements). Il target_id si ottiene da ads_list_sp_targets; è QUESTA (non ads_create_*) la via per modulare i bid dei gruppi auto su una campagna AUTO già esistente. SINGOLA: target_id + bid. BATCH (consigliato per molti target): items=[{target_id, bid}], ognuno con bid diverso, MAX 25. Esito
params: target_id, bid, items, profile_id, account_id, confirm_id
ads_update_sp_target_stateAggiorna lo stato (ENABLED/PAUSED) di uno o PIÙ target SP. SINGOLA: target_id + state. BATCH: items=[{target_id, state}], MAX 25. Esito verificato per-id.
params: target_id, state, items, profile_id, account_id, confirm_id
ads_delete_sp_targetsDelete (archive) SP product targets
params: target_ids*, profile_id, account_id, confirm_id
ads_list_sp_negative_targetsList SP negative product targets
params: campaign_id, ad_group_id, profile_id, account_id
ads_create_sp_negative_targetsCreate SP negative product targets. Each: { campaign_id, ad_group_id, asin (or raw expression) }.
params: targets*, account_id, confirm_id
ads_delete_sp_negative_targetsDelete (archive) SP negative product targets
params: target_ids*, profile_id, account_id, confirm_id
get_vendor_trading_termsVendor trading terms — SP-API non espone termini commerciali (payment terms, sconti, accordi) in lettura. Questo tool restituisce una spiegazione della limitazione e rimanda a Vendor Central e a get_vendor_remittances per i netCost per PO.
params: account_id
weekly_recapREAD-ONLY operational recap, aggregates only (no customer data): revenue, orders, FBA/FBM split, account health and top products by sales velocity. Use when the user asks "how did it go", "recap", "how am I doing".
params: days, account_id
diagnose_sales_dropDiagnose a sales drop: compares the last N days with the previous period, checks account health and returns likely causes plus suggested actions. Use for "why are my sales dropping?".
params: days, statuses, account_id
reprice_to_buyboxACTION. Reprices the given SKUs to win the Buy Box: compares your price with the Buy Box price and proposes a new one (`delta` below the Buy Box, never below `floor`). With confirm=false it returns a PREVIEW (before→after); with confirm=true it applies the prices. ALWAYS show the preview and get the user's explicit approval before calling with confirm=true.
params: skus*, floor, delta, confirm, account_id, confirm_id
ads_get_budget_usageREAD-ONLY, LIVE. Quanto del budget GIORNALIERO ogni campagna ha già consumato OGGI, in percentuale (dato INTRAGIORNALIERO, aggiornato da Amazon ogni ~10-15 min). Serve alla domanda "quali campagne stanno per restare senza budget adesso / sono già andate dark?": a 100% la campagna esce dall'asta fino a mezzanotte. È l'UNICA fonte del dato di oggi — il data-hub (fact_campaign_daily) è giornaliero e
params: ad_product, campaign_ids, threshold_percent, max_campaigns, profile_id, account_id
ads_stockout_checkREAD-ONLY. Cross-references catalog days of cover (30d cached velocity) with active SP product ads: finds where you are paying for clicks on products close to stock-out. Use for "am I wasting ads budget?", "are ads pushing products that are running out?".
params: days_threshold, profile_id, account_id
findings_listREAD-ONLY. Problemi operativi rilevati OGNI GIORNO dal motore deterministico Vendooly sul Data-Hub (i numeri vengono dal motore dati, non dall'LLM). Regole: buybox_lost (Buy Box persa su ASIN che vendono), buybox_suppressed (Buy Box soppressa), stockout_risk (copertura reale FBA sotto soglia, merce in arrivo inclusa), ads_no_stock (product ad SP attiva su prodotti in esaurimento), negative_margin
params: status, rule_key, severity, limit
ads_performanceREAD-ONLY, DETERMINISTICO. Performance Ads dal Data-Hub con numeri calcolati dal server, SEMPRE uguali a parità di dati: finestre FISSE di 7/14/30 giorni chiuse 3 giorni prima dell'ultimo dato (attribuzione Amazon ancora incompleta), ACoS/CTR/CVR/CPC/RPC/AOV dalle somme SQL, confronto con il periodo precedente, e per ogni riga una colonna action con la regola applicata: HOLD_DATA (pochi click: non
params: level, window, campaign_id, ad_product, action, acos_max, limit
list_context_topicsList built-in documentation topics (guides and recipes for using Vendooly tools correctly: write confirmation flow, catalog cache fields, rate limits, multi-account, cross analyses). Read the relevant guide BEFORE an operation you are not familiar with.
params: none
get_context_documentGet a built-in documentation topic by name (see list_context_topics).
params: topic*
list_sopsList the standard operating procedures (SOP) saved in the user's Vendooly organization: title, schedule, number of steps, outposts it applies to. Use it to answer "what do we do every day/week" or before running a procedure. Max 10 active SOP per organization.
params: include_archived
get_sopRead one SOP with all its steps (from list_sops → id). Follow the steps in order when the user asks to run the procedure.
params: sop_id*
save_sopCreate (without sop_id) or update (with sop_id) a SOP of the user's organization. Owners/admins only. steps = ordered list of {title, body?, role?} (max 40). outpost_ids = the outposts it applies to (from list_clients; omit = all). status=archived archives it, status=active restores it. Max 10 active SOP: the 11th is refused with limit_reached. Show the user the title and steps before saving.
params: sop_id, title, description, steps, schedule, outpost_ids, source, status, confirm_id
list_cockpitsList the cockpits of the user's organization (a cockpit = a group of outposts watched together with monthly sales targets and a traffic light). Max 10 active per organization.
params: include_archived
get_cockpitCockpit for a calendar month: for each outpost the month-to-date sales (VAT included, from the Vendooly data-hub), the month target, the end-of-month projection, Ads ACoS/TACoS, open findings (stock-outs, blocked listings, Ads on out-of-stock items) and a traffic light rosso/giallo/grigio/verde with reasons and the next action (rules 2026-10-15). Without cockpit_id uses the first active cockpit, o
params: cockpit_id, month, include_health, include_dormant
save_cockpitCreate (without cockpit_id) or update a cockpit of the user's organization. Owners/admins only. outpost_ids from list_clients (omit = all outposts). status=archived / active. Max 10 active cockpits.
params: cockpit_id, name, description, outpost_ids, status, confirm_id
set_cockpit_targetSet the monthly sales target of one outpost (seller × marketplace) for a calendar month. Owners/admins only. vat says whether the target is VAT included (inclusa, default, same basis as the data) or excluded (esclusa: the cockpit then flags it yellow because it compares different bases). status: proposto (default) | validato | concordato; changing the numbers of a validato/concordato target withou
params: outpost_id*, month*, sales_target*, vat, tacos_max, acos_max, status, note, confirm_id
invite_team_memberInvite a colleague to the user's OWN Vendooly organization (the one of this connection — you cannot choose another). Use when the user says "invite this person to my account/team". Only owners/admins can invite. `role` is admin (sees every seller) or member (sees only the sellers listed in `seller_ids`; get them from list_team_members → sellers). With send_email=true (default) Vendooly emails the
params: email*, role*, seller_ids, send_email, permissions, confirm_id
list_team_membersList the people of the user's Vendooly organization (role, status, assigned sellers, per-function permissions) and the seller ids that can be assigned to a member. Owners/admins only.
params: none
send_feedbackSend the user's feedback (a bug, an idea, a question or a general comment) straight to the Vendooly team — they read every one. Use it whenever the user reports a problem, is frustrated, hits an error, or suggests something. ALSO proactively OFFER to send it when something clearly is not working ("vuoi che lo segnali al team Vendooly?") and call it once they agree. Put the user's words in `message
params: message*, category, ai_context
execute_sqlEsegue UNA query SQL di sola lettura sul data-hub storico dell'account (DuckDB, un file per org). È LA STRADA PRIMARIA per OGNI domanda di ANALYTICS, in particolare la PERFORMANCE Amazon Ads: ACoS, ROAS, spesa, click, impression, vendite/ordini per campagna o keyword, keyword che sprecano, campagne zombie, performance PER PLACEMENT — Top of Search / Rest of Search / Product Pages / Amazon Business
params: sql*, max_rows
pingHealthcheck
params: none

Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.