Before you start
- A Claude account — web or desktop app both work.
- Your Sonos account email and password — both routes confirm on your Sonos account.
- For the custom route you also need ZoneFoundry installed (search the App Store) with your speakers connected.
Pick a route in one line
| Your situation | Route |
|---|---|
| English UI, S2 system, want it done in a minute | Sonos's built-in connector |
| Chinese UI, or you want Claude choosing from a Chinese tool list | ZoneFoundry custom connector |
| Claude Code or your own script | ZoneFoundry access key |
Route A: Sonos's built-in connector
Sonos shipped an official MCP (Sonos 27mcp) in Sonos 27, and Claude lists it as a built-in connector — so it's searchable in the connector list with no URL to copy. Sonos's support page states it is available in US-English.
- In Claude open Settings → Connectors, search Sonos or pick it from the list, and select Connect.
- A browser window opens asking you to grant "Sonos Cloud MCP Anthropic" permission to control your Sonos system. Review the list and select Okay.
- Enter your Sonos account credentials and select Sign In.
- Review the permissions Claude requests and select Okay.
- Back in Settings → Connectors you should see a checkmark under Status.
- Start a new chat — an existing conversation won't pick up the newly connected tools.
Route B: the ZoneFoundry custom connector
This route doesn't depend on Claude's connector directory, so it works regardless of rollout or region. The cost is one extra step: a 6-digit code on your phone.
1. Copy the connector link from the app
ZoneFoundry → Settings → AI & Chat → AI access → tap the Claude card. Under How to connect you'll find the connector link https://relay.zonefoundry.dev/mcp; tap Copy below it. Both the Claude and ChatGPT cards use the same link; only where you add it differs.
2. Add a custom connector in Claude
On claude.ai or the Claude desktop app open Settings → Connectors → + Add → Add custom connector, paste the link and click Connect.
Claude's menu labels shift between versions (some put this page under Customize). The test isn't what the menu is called — it's whether you reach the "Add custom connector" page. If you can, you're in the right place.
3. Approve on your phone within 5 minutes
A page opens on your computer showing a 6-digit code. Go back to ZoneFoundry, enter it under Enter authorization code and tap Authorize. Three details:
- Five minutes. Past that the page says it expired — reconnect in Claude for a fresh code.
- The same page shows a QR code — scan it with the iPhone camera to land straight in the app and approve.
- You can also just tell the ZoneFoundry assistant "authorize 123456".
4. Back to Claude, new chat
Once that page shows Approved — returning…, go back to Claude and open a new chat. The Claude card in the app should now read Authorized.
How the two routes differ
| Item | Sonos official | ZoneFoundry |
|---|---|---|
| How to add | Search Sonos in the connector list | Custom connector, paste a link |
| Approval | Sign in to Sonos in the browser | 6-digit code on your phone |
| Tool descriptions | English, 34 tools | 30 in Chinese / 27 in English |
| Language availability | Sonos states US-English | Mandarin, Cantonese or English |
| System requirement | S2 software + Sonos account | Sonos account (bridge optional) |
Claude Code and scripts
Claude Code uses a key, not a connector. In the app go to AI access → Access keys and create one; you get a token starting zfagt_ (shown once). Then register https://relay.zonefoundry.dev/sse/zh as an MCP server with this header:
Authorization: Bearer zfagt_your-token
Why /sse/zh: it accepts both long-lived SSE and plain POST, so you don't have to guess which your client uses. Only switch to /mcp/zh (POST-only) if it clearly rejects /sse/*.
A Claude Code connection made with a key won't flip the Claude card to Authorized — key connections are listed under Access keys instead. That's by design, not a failed connection.
What to actually ask
Once Claude has the tool list, just talk normally — no commands to memorise. A few that work as written:
- "List my rooms" — the fastest check; real room names mean it works.
- "Play Jay Chou in the living room at volume 25."
- "Play the same song everywhere except the bedroom."
- "Remind me in ten minutes in the kitchen to turn off the stove" — spoken through the speaker.
If it answers plausibly but nothing happens, suspect the tool call rather than the speakers — check the card status in the app first.
FAQ
Can I install both the official and the custom connector?
Technically yes, but with two Sonos-related MCP servers in one Claude session, generic commands like "pause" or "next" can be routed to the other one and appear to do nothing. If you want to compare, disable one.
Why does the Claude card stay on Connect instead of Authorized?
That authorisation never completed. The 6-digit code is valid for five minutes and shows as expired after that. The other common case is Claude Code connected with an access key — those are listed under Access keys and won't flip the Claude card.
Can Claude Code control Sonos too?
Yes, via an access key rather than a connector. Create a zfagt_ key in the app, register https://relay.zonefoundry.dev/sse/zh as an MCP server in Claude Code, and send the Authorization: Bearer header.
What if the code expires?
Click connect again in Claude and a fresh code is issued. The old one is dead — there's nothing to revoke.
Claude can't find the Sonos connector?
The official connector should appear when you search Sonos under Settings → Connectors. If it doesn't, the rollout may not have reached your account or region — use the custom connector route instead, which doesn't depend on that directory.