Claude Desktop (token)
Try Claude web & desktop first. Recent versions of
Claude Desktop can add a connector by URL and sign in at Shopify — no token, no bridge, no Node.js.
This page is for older builds where the only way in is claude_desktop_config.json.
Configured this way, Claude Desktop has no field for a request header, so the connection runs
through mcp-remote, a small bridge that adds the header on its way out. That is the only reason
this setup is longer than the others.
Before you start
Install Node.js 18 or newer if you do not have it. The bridge is fetched and run with npx,
which comes with Node. Without it the server appears in the config and never starts, and Claude
Desktop reports only that it could not connect.
Add the server
- In Claude Desktop, open Settings → Developer → Edit Config. That opens the folder holding
claude_desktop_config.json. - Open the file in any text editor and paste:
{
"mcpServers": {
"aov-bundle": {
"command": "npx",
"args": [
"mcp-remote",
"https://avada-bundle-upsell.firebaseapp.com/mcp",
"--header",
"Authorization:${AUTH}"
],
"env": {
"AUTH": "Bearer aovmcp_YOUR_TOKEN"
}
}
}
}- Save, quit Claude Desktop completely, and open it again. Closing the window is not enough on macOS — quit from the menu or with Cmd+Q, or the old config stays loaded.
No space after the colon in Authorization:${AUTH}. A space there breaks how mcp-remote
splits its arguments, and the failure surfaces only as "could not connect" — nothing points at the
space. This is the most common mistake on this page.
Why the token is in env
The token sits in env and is referenced from args, rather than being written straight into the
argument list. Both work. The indirection keeps the token off the command line, where it would
otherwise be visible to anything that can list running processes.
Check it worked
Open a new chat and look for the tools icon in the message box. The server should be listed with 5 tools. Then ask:
Are my bundles showing on the storefront right now?
If the server does not appear at all, it is almost always one of three things, in this order: Node.js is not installed, Claude Desktop was not fully quit, or there is a space after that colon.
One trailing comma in the JSON also silences the whole file, including every other server in it — paste it into a JSON validator before blaming the connection.