Tools reference
The complete surface, in tables. Explanations of what each tool is for are in the tool guide.
Which of these your assistant can see depends on the connection's access level, on which cart drawer your store runs, and on whether the drawer has been set up. A read-only connection is never offered the write tools — they are not registered for it, so there is nothing for it to call.
Reading — 13 tools
Available at every access level.
| Tool | Parameters | Answers |
|---|---|---|
get_store_context | — | Which drawer generation, which template, the revision, setup readiness |
get_setup_health | — | Is the drawer actually working, and what is blocking it? |
get_drawer_settings | schemaVersion? sections? blockKey? pageSize? cursor? offsets? htmlOffset? expectedRevision? | How is the drawer configured? |
get_configuration_options | domain kind? pageSize? offset? | Which styles, presets, block types and languages are available? |
get_analytics | start? end? | Orders, attributed revenue, AOV, revenue by feature |
get_translations | template? locale? | What wording do shoppers see? |
get_plan_status | — | This store's subscription state and orders this cycle |
get_operation_status | operationId? | What happened to a change that did not finish? |
search_products | name? handle? vendor? status? | Which product did the merchant mean? |
get_product_variants | name, handle or product id | Which variants does a product have? |
search_collections | name | Which collection did they mean? |
search_discounts | name | Which Shopify code discount did they mean? |
get_all_templates | — | Which templates are saved, and which is live (v1 only) |
Parameters marked ? are optional. The four search_* and get_product_variants tools exist so
nothing has to be guessed: a merchant says "recommend the linen trousers"; the assistant searches,
shows what matched, and asks which one if more than one does.
Writing — 34 tools
Need read and write access. Most of them accept two optional extras: expectedRevision, the
version of the settings the assistant last read, and requestId, so that repeating the same request
does not apply it twice. The exception is retry_configuration_publication, which requires
expectedRevision.
Features and publishing
| Tool | Does |
|---|---|
update_drawer_features | Turns the drawer, upsell, reward bar, announcement and shipping protection on or off |
retry_configuration_publication | Retries publishing an already-saved change to the storefront |
Rewards
| Tool | Does |
|---|---|
add_reward_tier | Appends a tier: free shipping, order off, or free gift |
update_reward_tier | Changes fields on one tier |
remove_reward_tier | Removes one tier. Needs confirm: true |
reorder_reward_tiers | Sets the full tier order |
update_reward_bar_settings | Changes the reward bar's behaviour, copy, layout and appearance |
Upsells
| Tool | Does |
|---|---|
add_upsell_rule | Appends one rule |
update_upsell_rule | Changes fields on one rule |
remove_upsell_rule | Removes one rule. Needs confirm: true |
reorder_upsell_rules | Sets the full rule order |
update_upsell_default_slots | Replaces the ordered default slots and their discount |
update_upsell_settings | Changes upsell presentation and behaviour |
Add-ons
| Tool | Does |
|---|---|
update_gift_wrap_settings | Gift-wrap display, note and hide conditions |
update_shipping_protection_settings | Shipping-protection copy, amount and image |
Blocks
| Tool | Does |
|---|---|
update_block_settings | Turns a block on or off in the full or empty cart view |
update_content_block_settings | Content and visibility fields for one block |
add_drawer_block | Adds a library block, or a custom HTML block |
update_imported_block | Edits an imported block's HTML, or resets it to the original |
remove_drawer_block | Removes an imported block |
set_block_order | Reorders the visible blocks in one view and zone |
Look
| Tool | Does | Drawer |
|---|---|---|
update_drawer_style | Colour fields, by hex value | v1 and v2 |
apply_color_preset | Applies a colour preset | v1 and v2 |
update_drawer_design | Typography and geometry | v1 only |
switch_template | Switches the live template. Needs confirm: true | v1 only |
update_zone_design | Typography and geometry per zone | v2 only |
set_quick_style | Applies a quick style | v2 only |
set_zone_style | Applies one zone style | v2 only |
Behaviour
| Tool | Does |
|---|---|
update_global_display_settings | Where the drawer runs, include and exclude paths, cart-page behaviour |
update_general_settings | Drawer behaviour, discount suggestions and empty-cart content |
update_cart_validation | The cart validation rule, its message, appearance and targets |
update_sticky_cart | The sticky cart button |
Wording
| Tool | Does |
|---|---|
update_wording | Base wording — the fallback every language uses |
update_translation | Wording for one language |
What depends on your drawer version
Cart Drawer has an earlier drawer (v1) and a newer one (v2). get_store_context reports which one
a store runs, and a tool that does not apply to it is simply not offered.
| Only on v1 | Only on v2 | |
|---|---|---|
| Read | get_all_templates | — |
| Write | update_drawer_design, switch_template | update_zone_design, set_quick_style, set_zone_style |
| Connection | v1 store | v2 store |
|---|---|---|
| Read only | 13 tools | 12 tools |
| Read and write | 44 tools | 44 tools |
Write tools also need the drawer's settings to exist. A store that has never saved its initial settings sees the read tools and is told to open the Cart Editor and save once; the write tools appear after that.
The same data over REST
Cart Drawer serves this on two surfaces that share one set of handlers. The Store API
lives at /store-api/v1, takes its own key beginning aov_sk_, and is meant for scripts and
integrations rather than AI clients. Keys are not interchangeable between the two — see
Authentication.
Every tool above has a REST endpoint. To find the endpoint for a tool, look it up in the MCP tool column on Endpoints, which also gives each endpoint's method, path and parameters.
Limits
| Requests | 60 per minute, per connection |
| Writes | 20 per minute, per connection |
| Concurrent writes | One change to a store is saved at a time; a second one waits a few seconds and is asked to retry |
| Result size | 16,000 characters per call |
| Analytics window | At most 400 days, in the store's own timezone |
| Discount search | Up to 100 eligible discounts, no continuation |
A result that hits the size limit is cut off with a note saying so, and suggesting a narrower request. That note is real information: an assistant that ignores it will summarise a partial answer as though it were complete. Asking for one section, one language, or one block brings the result back under the limit.
What is deliberately absent
- No customer data. No names, emails, addresses, or individual orders anywhere in the surface.
- No credentials. The store's access token and the connection key never leave the server.
- No silent removals. Removing a reward tier or an upsell rule, and switching template, require an explicit confirmation on the call.