claude.ai Shopify MCP: token-expired loop after multi-shop switch, unrecoverable from client side

Resolved 💬 1 comment Opened May 21, 2026 by bettertanswim-123 Closed Jun 20, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Using the claude.ai-managed Shopify MCP connector with two Shopify stores on the same Shopify
account (BetterTan Swim and Anelie Cosmetics). After invoking the connector's switch-shop tool to
move between the two stores, every subsequent Shopify MCP tool call returns "MCP server claude.ai
Shopify requires re-authorization (token expired)" and the server disconnects after the failed call.

The connector enters a state where it cannot be recovered from the client side:

  • claude mcp list reports the server as ✓ Connected
  • The tool list enumerates correctly (~30 Shopify tools visible)
  • But every actual tool call (e.g. get-shop-info) returns the token-expired error and triggers a

server disconnect

  • The switch-shop tool's own description states it "revokes the current store's access token so

the next tool call will prompt authorization for a new store" — but no authorization prompt is ever
triggered; the client surfaces the revoked-token error as fatal

Other claude.ai-managed MCPs on the same account (Klaviyo, Canva, Higgsfield, Adobe, Vercel, Google
Drive) work fine throughout — issue is Shopify-specific.

What Should Happen?

After switch-shop is called, the MCP client should detect the deliberately-revoked token and
trigger a fresh OAuth prompt for the new shop (as the tool's own description promises), OR
disconnect+reconnect cleanly. Instead, the client treats the revoked token as a fatal error and
leaves the connector in an unrecoverable state.

Separately, the recovery paths exposed in the UI should actually recover the connector.
Disconnecting the connector at claude.ai/settings/connectors and clicking Connect again silently
re-uses the broken server-side connector record — it never shows Shopify's OAuth consent screen.
This makes the bug unrecoverable from the client side.

Error Messages/Logs

MCP server "claude.ai Shopify" requires re-authorization (token expired)
  (plus, immediately after each failed call, a system event:)
  The following MCP servers have disconnected: claude.ai Shopify

Steps to Reproduce

  1. Sign in to claude.ai on an account that owns two or more Shopify stores under the same Shopify

identity.

  1. In claude.ai Settings → Connectors, add the Shopify connector. Complete the OAuth flow for store

A.

  1. In Claude Code, call any Shopify MCP tool (e.g. get-shop-info). It works.
  2. Call switch-shop to move to store B. The tool reports success.
  3. Call any Shopify MCP tool. → Returns: `MCP server "claude.ai Shopify" requires re-authorization

(token expired)`. Server disconnects.

  1. Try every recovery path. All fail:

a. Full Claude Code restart (quit + relaunch) → tool calls still fail.
b. /mcp reconnect → reports "Authentication successful. Connected to claude.ai Shopify." Tools
enumerate. First call still fails with token-expired.
c. In claude.ai Settings → Connectors, disconnect the Shopify connector, then click Connect
again. The connect flow auto-completes without ever showing Shopify's OAuth consent screen ("Your
connector was connected" appears immediately). Tool calls still fail.
d. In each Shopify store admin → Settings → Apps and sales channels, uninstall the Claude app.
Then retry (c). Connect flow still auto-completes without consent screen. Tool calls still fail.
e. Open a fresh browser (different vendor, no cookies). Log into claude.ai. Add Shopify
connector. Connect flow STILL auto-completes without consent screen.

The broken connector record appears to be persisted on claude.ai's backend and cannot be purged from
any client-side action.

Claude Model

None

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.1.146

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

  • Account: Anthropic Work workspace, hello@bettertanswim.com
  • Two Shopify stores on the same Shopify identity: BetterTan Swim, Anelie Cosmetics
  • macOS Darwin 25.3.0, zsh, Claude Code 2.1.146
  • System clock drift vs time.apple.com: +20ms (negligible — clock skew ruled out)
  • Other claude.ai MCP connectors on the same account (Klaviyo, Canva, Higgsfield, Adobe, Vercel,

Google Drive) work normally in the same Claude Code session — issue is Shopify-specific

  • The connector record on claude.ai's backend appears stuck; needs server-side purge before a clean

OAuth round-trip is possible

  • This blocks all Shopify MCP-driven work on these two stores

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗