Before you start
- An AI assistant that can add MCP connectors (Claude, ChatGPT, or any client that supports HTTP MCP).
- Your Sonos account email and password — both routes authorise through it.
- Your Sonos system runs the S2 software (Sonos states this as a requirement).
The short version: there are two Sonos MCP servers now
MCP (Model Context Protocol) is the standard that lets an AI assistant call outside tools. The model itself can't "control speakers" — it just makes calls according to a tool catalogue. So "Sonos supports MCP" means someone runs a server that wraps play, volume and grouping into named tools the model can call.
Two such servers exist right now, and both are live:
- Sonos's own
Sonos 27mcpathttps://mcp.ws.sonos.com/mcp, 34 tools, shipped with Sonos 27 in September 2026. - ZoneFoundry's MCP at
https://relay.zonefoundry.dev/mcp— 27 tools in English, 30 in Chinese, with Chinese tool descriptions.
They are independent: neither one needs the other. You can connect a different one to a different assistant.
Sonos's official 27mcp
Sonos describes it as the first official way to control Sonos straight from an AI assistant. The essentials:
| Item | Official 27mcp |
|---|---|
| Endpoint | https://mcp.ws.sonos.com/mcp |
| Auth | OAuth 2.1 with PKCE and dynamic client registration. No client ID or secret to obtain. |
| Tools | 34 |
| How you add it | Claude and ChatGPT ship a built-in connector — search Sonos in settings. Other MCP clients register the URL manually. |
| Language | The Sonos support page states it is "available in US-English" — an early-access release. Once connected you can phrase commands in any language. |
| Cost | Sonos charges nothing. Your AI assistant still needs whatever subscription tier it requires. |
| Stability | Sonos states plainly that tool names, descriptions and schemas "will evolve without notice" — it is not a stable API. |
ZoneFoundry's MCP
Ours is built around Chinese-language use: the tool descriptions are in Chinese, and besides standard MCP there is a key-based route for apps that can't do OAuth.
| Item | ZoneFoundry |
|---|---|
| Endpoint | https://relay.zonefoundry.dev/mcp (English) · …/mcp/zh (Chinese) |
| Auth | Two: an OAuth connector (approve a 6-digit code on your phone), or an access key starting zfagt_ passed as ?token= or an Authorization: Bearer header. |
| Tools | 27 in English; 30 in Chinese (extra idempotent pause, resume and pause_all) |
| How you add it | Claude and ChatGPT use the OAuth connector; Super XiaoAi, Muse, Claude Code and scripts use a key. Each card in the app carries its own steps. |
| Language | A Chinese tool catalogue makes tool selection more reliable for Chinese models; commands work in Mandarin, Cantonese or English. |
| Cost | MCP access isn't charged separately; some capabilities (home bridge, more rooms) follow the plan described in the app. |
Which one to use
The deciding factor is your assistant and your language — not which one is "better".
- You use Claude or ChatGPT in English, your system is on S2, and you want it connected in a minute — use the official 27mcp. It's already in the connector list; search Sonos in settings, no URL to copy.
- Your AI is Super XiaoAi, or any app or script that can't do OAuth — ZoneFoundry is the only option; the official server has no key route.
- You want the model choosing from a Chinese tool catalogue — use ZoneFoundry's
/mcp/zh. Chinese descriptions cut mis-selection on long tool lists. - You're wiring it into Claude Code or your own script — use a ZoneFoundry access key and send the Bearer header. The official server can be registered manually too, but it is OAuth only.
Don't put both in one session. Sonos's own docs warn that when one assistant has several MCP servers, generic commands like "pause" can be routed to the wrong one and appear to do nothing.
ZoneFoundry's 27 tools
Once connected, this is the list the model gets. Grouped by purpose:
- Read state:
list_rooms·now_playing·list_favorites·list_playlists·play_history·taste_profile·list_reminders - Playback:
play_music·search_music·toggle_play_pause·next_track·previous_track·seek·set_play_mode - Volume:
set_volume·adjust_volume·set_mute - Rooms and groups:
group_rooms·ungroup_room·move_music - Devices and announcements:
switch_source·set_home_theater·announce - Reminders:
set_reminder·cancel_reminder - Free-form:
ask_zonefoundry(hand a sentence straight to the assistant) ·undo_last(revert the last volume or grouping change)
The Chinese catalogue adds pause, resume and pause_all. They're idempotent: pause only pauses and never turns an already-paused room back on, which is steadier than toggling twice.
Fastest check: ask the assistant to list your rooms. If real Sonos room names come back, tool calls are working.
Fixing the common errors
405 Method Not Allowed
The URL is right, but that path doesn't accept this method. Most often you're using GET/SSE against /mcp/zh, which is POST-only. Change only the path segment and keep ?token= intact:
Before: https://relay.zonefoundry.dev/mcp/zh?token=zfagt_xxx
After: https://relay.zonefoundry.dev/sse/zh?token=zfagt_xxx
Replace the whole string and drop ?token= and you'll trade the 405 for a 401 — that isn't a new problem, it's a missing key.
401 Unauthorized
The two kinds of 401 mean different things — first work out which route you're on:
- OAuth connector: a 401 is often just the normal auth challenge and the client will open the consent page next. Finish the flow (6-digit code → enter it in the app → approve); don't abandon it for a key.
- Key: check whether
?token=was truncated by the input field (the usual culprit), then whether thezfagt_string is complete, then whether the key was revoked. With a header, make sure you didn't dropBearerand the space after it.
Connected, but the assistant sees no tools
First check whether it lists your real rooms, then look at the card under AI access in the app: it should read Authorized. If it still says Connect, that authorisation never completed — connect again rather than blaming Sonos.
FAQ
Does Sonos have an official MCP?
Yes. Sonos shipped an official MCP server, Sonos 27mcp, with Sonos 27 in September 2026: https://mcp.ws.sonos.com/mcp, 34 tools, free, requires the S2 software. Its support page states it is available in US-English.
Can I connect both the official 27mcp and ZoneFoundry's MCP?
You can, but don't keep both in the same AI session. Sonos's own docs warn that with several MCP servers attached to one assistant, generic commands like "pause" can be routed to the wrong one. If you want to compare, keep only one at a time.
After connecting, the assistant says it can't find tools, or I get a 401?
A 401 means authentication failed, so first identify the route. On the OAuth connector it is often just the normal challenge — finish the flow. On a key, check whether the token was truncated in the URL, or whether you dropped Bearer and the space in the Authorization header.
What causes 405 Method Not Allowed?
The address is right but the path rejects that HTTP method — usually GET or SSE against the POST-only /mcp/zh. Switch the path to /sse/zh and keep the ?token= part untouched.
Does it work with Chinese AI assistants?
The official 27mcp is currently US-English only. To drive Sonos from a Chinese assistant such as Super XiaoAi, connect ZoneFoundry's MCP — its tool names and descriptions are in Chinese.
Do I need the home bridge for MCP?
No — a Sonos account sign-in is enough. The bridge only decides whether songs an AI requests go straight into the play queue.