aov-cart-drawer-help-center
🤖 MCP
Authentication

Authentication

There are two ways to connect, and which one you use is decided by your AI client rather than by you. Hosted clients sign in. Desktop and terminal clients send a key.

Sign-inAPI key
ClientsChatGPT, Claude on the webClaude Code, Cursor, Claude Desktop, other clients that can send a header
Addresshttps://aov-cart-drawer.firebaseapp.com/oauth/mcphttps://aov-cart-drawer.firebaseapp.com/mcp
CredentialNone to copy or storeA key beginning aov_mcp_
Sent asHandled by the clientAuthorization: Bearer aov_mcp_…
Access levelYou choose it while approvingYou choose it while creating
Rate limit60 requests per minute, per connection60 requests per minute, per connection
RequiresA paid plan, re-checked on every requestA paid plan, re-checked on every request

Both routes end at the same place: a connection in Settings → MCP connectors, with its own access level, its own last-used time, and its own revoke button.

⚠️

The two addresses are not interchangeable. A hosted client pointed at /mcp has nowhere to put a credential and fails on its first call; a key-based client pointed at /oauth/mcp is asked to sign in and cannot. Use the address the app shows for the client you picked.

Access levels

Every connection carries exactly one, whichever route made it.

LevelShown asThe assistant can
ReadRead onlyRead this store's data only
WriteRead and writeAlso change the drawer's settings

A connection starts at Read only unless you deliberately choose otherwise, and the level is enforced on the server: a read-only connection is never offered the write tools at all. If the connection was made with write access, a write is also checked against the narrower of the level the client was granted and the level stored on the connection.

There is no separate "delete" level. The few tools that remove something — a reward tier, an upsell rule, a block — are part of write access, and the first two need an explicit confirmation on every call.

Changing the level

The level is fixed when the connection is made. To give a tool more access, or less, create a new connection at the level you want and revoke the old one. Then restart the AI client so it reads the new tool list.

Connect by signing in

This is the route for ChatGPT and Claude on the web. Nothing is copied or stored by you.

  1. In AOV.ai Cart Drawer, go to Settings → MCP connectors and pick your AI app.
  2. Copy the OAuth server URL shown there and add it in the AI app as a custom connector.
  3. Start the connection in the AI app. It shows a one-time code.
  4. Type that code into Approval code in the app and click Review request. You see which app is asking and where it returns to.
  5. Choose what the app can do — Read cart drawer data, and optionally Write cart drawer settings — then Approve.

The AI app finishes the handshake by itself. The OAuth connections list shows the state of each connection:

StatusMeans
ActiveThe connection works
IncompleteApproved, but the AI app has not finished connecting yet
ExpiredThe connection has passed its expiry time — connect again
RevokedTurned off, and will never work again
The code
Length8 characters
Valid for10 minutes
⚠️

Only approve a request you just started yourself. The review shows the app asking and the address it returns to — if either is unfamiliar, click Deny.

Connect with a key

This is the route for Claude Code, Cursor, Claude Desktop, and other clients that can send a request header.

  1. In AOV.ai Cart Drawer, go to Settings → MCP connectors, click Add connection and pick your client.
  2. Copy the Server address shown there. You will need it alongside the key.
  3. Type a Connection name — use the name of the tool you are connecting, for example Claude Desktop. It is only there to tell connections apart. 1–40 characters.
  4. Choose the Access level — Read only or Read and write.
  5. Click Create key.

The key appears once, with a ready-to-paste setup snippet underneath. Copy the snippet for your tool, then follow Install a client.

⚠️

The key is displayed only at this moment. The server stores a fingerprint of it, not the key, so it cannot be shown again — not by you, and not by support. Put it in a password manager before you close the banner.

If you try to reuse the name of a connection that is still active, the field shows an error and Create key stays disabled. Names have to be distinct so that revoking the right one later is unambiguous.

Where the key goes

Your client sends it as a bearer token on every call:

Authorization: Bearer aov_mcp_your_key_here

The word Bearer, a single space, then the key. A missing prefix produces a refusal that reads like a bad key rather than a bad request. The setup snippets in the app already include it.

Nothing is ever sent in a URL. The key belongs in the Authorization header only.

Reading the connections list

Each key connection shows its name, its badges, and when it was last used.

Connections list in the MCP connectors tab showing ChatGPT and Natalie as Active, Read and write connections, with arrows pointing to the Rename and Revoke buttons
BadgeMeans
ActiveThe connection works
RevokedTurned off, and will never work again
Recent activityThe key was used recently
Read only · Read and writeIts access level

Last-used time is not a live session. AI clients do not hold a socket open to the server — they call it when they need something and then go quiet. Recent use is the only evidence available, so an assistant sitting idle for twenty minutes still reports an old timestamp while remaining perfectly usable.

You can Rename a connection at any time.

Revoke, and delete

Revoke stops the connection working. It takes effect on the very next call, it cannot be undone, and it affects only that connection — every other one keeps working. Revoke when a key may have leaked, when you stop using a tool, or when a laptop leaves your control.

Delete is offered on a key connection that is already revoked. It removes the row from the list. It does not stop anything — revoking already did that.

This key does not work anywhere else

Cart Drawer issues keys for two separate surfaces, and they are deliberately not interchangeable:

PrefixSurfaceFor
aov_mcp_/mcpAI clients
aov_sk_/store-api/v1Your own scripts — see Store API

A key minted for one is refused by the other, and revoking one surface never disturbs the other.

Keeping a connection safe

  • Never paste a key into a chat, an issue, a commit, or a screenshot.
  • Keep it out of shared config files and anything that reaches a repository. Where a client supports it, put it in an environment variable — the Claude Desktop snippet does this.
  • Use one named connection per tool. Shared credentials make the connections list meaningless and turn revoking into a choice between breaking everything and breaking nothing.
  • Grant the lowest level that does the job. A tool you are still evaluating has no business being able to change your drawer.
  • Revoke rather than reuse. Creating a replacement takes seconds.

Reading an authentication error

Your assistant reads the refusal back to you in plain language.

Message saysMeansAction
This connection was revokedThe key was not acceptedSee the note below before you act
Isn't included in this store's current subscriptionThe subscription lapsedRenew; the same connection resumes working. This differs from the Store API, which revokes its keys when the plan lapses
This key was issued for a different surfaceAn aov_sk_ Store API key was used on /mcpCreate an AI connection key in Settings → MCP connectors
Hit its limit of 60 requests per minuteToo many calls in one minuteWait about a minute
This connection is read-onlyThe assistant tried to change somethingCreate a connection with write access, then restart the client
⚠️

"This connection was revoked" is also what you get when the client sends no key at all. The message tells you to create a new key, and in that case creating one will not help — the new key will not be sent either. Before minting a replacement, check that your client is actually passing the Authorization header. See Troubleshooting.

Related

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