AOV.ai Cart Drawer MCP
Point the AI tool you already use — ChatGPT, Claude, Claude Code, Cursor, Codex — at this store's cart drawer. Once connected, your assistant answers questions about your drawer, its revenue, its setup and your plan on its own, and, if you let it, changes the drawer's settings for you: rewards, upsells, add-ons, blocks, wording, colours and more. You do not have to open the app, take screenshots, or share your Shopify login.
Two things make this different from pasting numbers into a chat window. The assistant reads live data, so an answer is never stale. And what it is allowed to do is decided by you, per connection, and enforced on the server rather than asked of the model.
Two levels of access
Every connection carries one access level. It is chosen when the connection is made, and it starts at the lowest.
| Level | The assistant can | Tools it sees |
|---|---|---|
| Read only | Read this store's data, and nothing else | 12 or 13 |
| Read and write | Also change the drawer's settings, through the tools described in the tool guide | 44 |
The count depends on which cart drawer your store runs. Stores on the newer drawer (v2) and stores on the earlier drawer (v1) each see a few tools the other does not — see What depends on your drawer version.
A new connection should be read only unless you deliberately choose otherwise. Write access lets the assistant change the drawer your shoppers see. Grant it one connection at a time, to a tool you trust.
The check runs on the server, on every call. It is not an instruction to the model that a clever prompt could talk it out of: a read-only connection is never offered the write tools at all, so there is nothing registered for it to call. An assistant that tries is told the connection is read-only.
Changes are saved first, then published
A tool that changes something saves the change and tells the assistant that it was saved. Publishing it to your storefront follows. If publishing fails, the result says so, the change stays saved, and the assistant can retry the publish without repeating the change.
A few safeguards sit around that:
- Removals need confirmation. Removing a reward tier, removing an upsell rule and switching template all require the assistant to pass an explicit confirmation.
- Stale edits are refused. Most write tools can be told which version of the settings the assistant was looking at. If the settings changed in the meantime, the write is refused and the assistant is told to read them again — a change is never applied on top of something it has not seen.
- Whole-look changes ask first. Applying a style or a colour preset overwrites several values at once. The tool descriptions tell the assistant to check what would be replaced, tell you, and wait for your go-ahead.
- Writes are rate-limited. 20 writes per minute per connection, and one change to a store is saved at a time.
One connection, one store
A connection is issued to one store and carries that binding itself. The store is never taken from the request, so a connection cannot be pointed at a different shop, and an assistant holding it can only ever see the store it was made for.
If you run several stores, each one makes its own connection, and key-based clients get their own
server name — aov-cart-drawer-your-store — so an answer always says which store it came from.
Two ways to connect
| Route | For | Credential |
|---|---|---|
| Sign-in | ChatGPT, Claude on the web | None to copy — you approve the connection in the app |
| API key | Claude Code, Cursor, Claude Desktop, and other clients that can send a header | A key beginning aov_mcp_ |
Hosted clients like ChatGPT and Claude have no field for a key, so they sign in instead: the client shows a one-time code, you type it into Settings → MCP connectors, choose what it can do, and approve. Desktop and terminal clients send a key in a header.
An API key is shown once, right after you create it. The server keeps only a fingerprint, never the key itself. Lose it and there is no way to recover it — you revoke that connection and make a new one. Sign-in connections have no key to lose.
A paid plan is required
Connecting to AI is available on paid plans. The check runs on the server, on every request — not once at setup. If a store's subscription ends, the next call from the assistant is refused with a message explaining why, and the connection starts working again once the plan is back.
What it can read
| Area | What the assistant can answer |
|---|---|
| Setup | Whether the drawer is switched on and what is blocking it, and the store's context |
| Drawer settings | Which features are on, how rewards, upsells, add-ons, blocks and display rules are set up |
| Performance | Orders, attributed revenue and average order value, split by feature, plus top upsell products |
| Options | The styles, colour presets, block types and languages available to this store |
| Templates | The templates saved on the store, and which one is live (earlier drawer only) |
| Storefront wording | The text shoppers see, and what has been translated |
| Plan | The store's own subscription state and how many orders the drawer handled this cycle |
| Shopify resources | Products, variants, collections and discounts — looked up by name so a rule can be built without you finding ids |
What it can change
Only with write access:
| Area | What the assistant can do |
|---|---|
| Features | Turn the drawer, upsell, reward bar, announcement and shipping protection on or off |
| Rewards | Add, edit, remove and reorder reward tiers; change the reward bar's settings |
| Upsells | Add, edit, remove and reorder upsell rules; set the default slots; change upsell presentation |
| Add-ons | Gift wrap and shipping protection settings |
| Blocks | Turn blocks on or off, add, edit, remove and reorder them, including custom HTML blocks |
| Look | Colours, typography and geometry, quick styles, zone styles and colour presets (v2), template switching (v1) |
| Behaviour | Display rules, general and empty-cart behaviour, cart validation, the sticky cart |
| Wording | Base wording and per-language translations |
What it never returns
- No customer data. No names, emails, addresses, or individual orders. Performance figures are aggregates over a date range, never a list of people.
- No credentials. Not your Shopify access token, and not the key itself.
Where next
- Authentication — sign in or create a key, set the access level, revoke
- Install a client — ChatGPT, Claude, Claude Code, Codex, Cursor, Claude Desktop
- Tool guide — what each tool is for, and when it is the right one
- Recipes — questions worth asking, start to finish
- Troubleshooting — every refusal message, and what it means
- Store API — the same data as plain REST, for your own integrations