aov-bundle-upsell
🤖 MCP
Tools reference

Tools reference

The complete surface: 14 read tools, available on every connection, plus 12 write tools, available only on a Read and write connection. What each one is for is in the tool guide.

⚠️

Connected before September 2026? Your connection only has the original 5 read tools: get_setup_status, get_offers, get_offer_details, get_analytics, get_plan_status. Reconnect from Settings to pick up the rest.

Read tools

Available on every connection, Read-only or Read and write.

ToolParametersAnswers
get_setup_statusnoneIs the widget live on the storefront, and if not, why?
get_offersquery? type? status? sort? limit? after?Which offers exist, and which are live?
get_offeroffer_idHow is this one offer configured, in full, including its admin link?
get_offer_fieldsoffer_typeWhat fields a given offer type allows: kinds, limits, which are plan-locked
get_offer_timelineoffer_id after?The change history of one Fixed bundle offer (Fixed bundles only)
get_analyticsstart? end? offer_id?Revenue, orders, attach rate, top offers
get_plan_statusnoneWhich plan, how much used, capped or not
get_widget_settingsoffer_typeThe storefront widget design for one offer type: colors, fonts, texts, layout
search_productsquery limit?Products in the Shopify catalogue, by name
search_collectionsquery limit?Collections in the store, by name
get_discountslimit?Active Shopify discounts, including this app's own
search_customer_segmentsquery? after?Customer segment names, for an offer's segment targeting
get_marketsnoneThe store's Shopify markets
get_product_variantsproduct_idOne product's variants: price, availability, options

Write tools

Only on a Read and write connection. Every create tool below shares one rule: it is only for an offer the store does not have yet. To change one that already exists, use update_offer.

ToolParameters (key ones)Does
create_fbt_offername trigger fields?Create a Frequently Bought Together offer
create_volume_discount_offername scope tiers or template fields?Create a Volume Discount offer, from tiers or one of six templates
create_mix_match_offername options fields?Create a Mix & Match Bundle offer
create_bundle_builder_offername pool, layout fields?Create a Bundle Builder offer
create_fixed_bundle_offername product_ids fields?Create a Product Fixed Bundle offer
create_upsell_offername scope, recommendations fields?Create a Product Recommendation offer
update_offeroffer_id fieldsChange any field of an existing offer, any type
set_offer_statusoffer_ids (1 to 10) statusTurn offers on (active) or off (paused)
duplicate_offeroffer_idCopy one offer; the copy starts switched off
delete_offersoffer_ids (1 to 10)Permanently delete offers and their Shopify discount or bundle product
update_widget_settingsoffer_type changes? translations?Change widget colors, fonts, texts, layout
import_imageurl alt?Copy a public image into the store's Shopify Files, for use in a Volume tier or similar

The six create tools are detailed in the tool guide; each takes its own type-specific fields beyond the ones summarised here.

Accepted values

ParameterAccepts
type / offer_typefbt, volume-discount, mix-match-bundle, bundle-builder, product-fixed-bundle, upsell
status (on get_offers)active, scheduled, expired, draft, all
status (on set_offer_status)active, paused
start, endYYYY-MM-DD
limit on get_offersA whole number, up to 50. Defaults to 10

upsell is the offer type the app calls Product Recommendation. The other five match their names.

Defaults worth knowing

ToolIf you pass nothing
get_offersThe 10 most recent offers, any type, any status, newest first
get_analyticsThe last 30 days
search_products / search_collectionsA server-side default page size (ask for a limit if you need a specific count)
⚠️

The get_offers default of 10 is the one that quietly misleads. Nothing in the answer says the list was cut short unless you also read next_cursor. Ask for a limit (up to 50), or page with after, whenever the total matters.

The same data over REST

A separate, older read-only surface, the Store API, serves some of this data as plain GET requests for scripts rather than assistants, using the same token. It does not mirror every MCP tool one for one, see its own endpoints for what it covers.

Limits

Read requests60 per minute, per connection
Writes60 per hour, per connection, Read and write only
Tokens per store5, created on the Developer Tools tab (sign-in connections don't count)
Analytics currencyUSD, regardless of the store's own currency

Rate limits are counted per connection, so one tool cannot exhaust another's budget. Over the limit, the server answers 429 with a Retry-After header; over the hourly write budget, a tool answers Write limit reached naming the wait.

What is deliberately absent

  • No customer data. No names, emails, addresses, or individual orders. The segment tool returns names only.
  • No theme or storefront source. get_setup_status reads your theme server-side and returns conclusions; the files themselves never leave, and no tool can change your theme.
  • No orders or billing. Nothing here reads an individual order or changes your subscription.
  • No internal identifiers. The store's record id and Shopify access token never leave the server.
  • No pricing. get_plan_status reports your store's plan and usage, never a price list.

Related

Product
Install AppWebsiteAvada Apps
Resources
DocumentationFAQPrivacy Policy
Company
Avada GroupContact
© 2026 Avada Group. All rights reserved.