Before you start
- A ChatGPT account. The custom MCP route needs a version that exposes plugin or app settings.
- Your Sonos account email and password.
- For the custom route you also need ZoneFoundry installed with your speakers connected.
Pick a route
| Your situation | Route |
|---|---|
| English UI, S2, want fewer steps | Official Sonos plugin |
| The plugin list has no Sonos, or you work in Chinese | ZoneFoundry custom MCP |
Route A: the official Sonos plugin
Sonos 27's official MCP is called Sonos 27mcp; ChatGPT exposes it as a plugin, so you install it from the directory without typing a URL. Sonos's support page states it is available in US-English.
- In ChatGPT open Settings → Plugins, browse or search Public plugins for Sonos, and choose Install plugin.
- The consent window asks for ChatGPT to control your Sonos system. Review it and select Okay.
- Select Continue, then sign in to your Sonos account.
- Review the permissions ChatGPT requests and select Okay.
- Start a new chat and type Sonos in the composer, or pick it from the Plugins menu.
Route B: the ZoneFoundry custom MCP server
This route doesn't depend on the official plugin directory, so it works before the plugin reaches you — and when you want Chinese tool descriptions.
1. Copy the connector link
ZoneFoundry → Settings → AI & Chat → AI access → tap the ChatGPT card → copy the link https://relay.zonefoundry.dev/mcp. It's the same address the Claude card uses.
2. Add a custom MCP server in ChatGPT
This part of ChatGPT's UI has changed across versions; both paths below work. Use whichever matches what you see:
- Newer UI: open
chatgpt.com/plugins→ + → Add custom MCP server → name and description, paste the MCP server URL under Connection, and follow the page for authentication. - Older UI: Settings → Apps → Advanced settings, turn on Developer mode; back in Apps choose Create, paste the link as the MCP server URL, set Authentication to OAuth, create it and connect.
You'll be asked to acknowledge a risk notice — accept it, then choose Create as a plugin.
3. Enter the 6-digit code on your phone
A 6-digit code appears during the connection. Enter it in ZoneFoundry under Enter authorization code and approve. The code lasts five minutes; if it expires, reconnect in ChatGPT for a new one. Scanning the QR code on that page with the iPhone camera also jumps straight to the app.
How the two routes differ
| Item | Official plugin | ZoneFoundry |
|---|---|---|
| How to install | Search Sonos in the plugin directory | Add custom MCP server, paste a URL |
| 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 |
| Can you scope tools | Sonos says tool names and schemas evolve without notice — not a stable API | The Chinese endpoint also has a lite tool set |
| System requirement | S2 software + Sonos account | Sonos account (bridge optional) |
Don't keep both Sonos-related MCP servers in one ChatGPT session. Sonos's own docs warn that with several MCP servers attached, a generic command like "pause" can be routed to the other one and appear to do nothing.
Things you can just say
No commands to memorise — talk normally. A few that work:
- "List my rooms" — the fastest check; real room names mean it works.
- "Play Jay Chou in the living room at volume 25."
- "Set the bedroom volume to 15."
- "Play the same song everywhere except the bedroom."
If it talks a good game but nothing happens, suspect the tool call, not the speakers — check whether the card reads Authorized before blaming hardware or Wi-Fi.
Common errors
401 Unauthorized
On OAuth a 401 is often just the normal challenge and ChatGPT opens the consent flow next — finish it and get the 6-digit code. Don't abandon it for a key. Only key-based connections need a token completeness check.
405 Method Not Allowed
The address is right but the method isn't. Usually GET or SSE against the POST-only /mcp/zh: change the path to /sse/zh and keep ?token= exactly as it was.
Installed, but ChatGPT won't call the tools
Start a new chat — an existing one won't pick up newly connected tools. In the new chat ask it to list your rooms; if room names come back the link works and the problem is phrasing.
FAQ
Can ChatGPT control Sonos directly?
Yes, but through MCP. Sonos ships an official MCP server (27mcp) in Sonos 27 that ChatGPT exposes as a plugin, or you can use ZoneFoundry's custom MCP server. ChatGPT cannot talk to the speakers directly.
The Sonos plugin isn't there — now what?
The official Sonos plugin is an early US-English release and isn't necessarily open to every account or region. If it's missing, take the custom MCP route: on chatgpt.com/plugins choose Add custom MCP server and paste https://relay.zonefoundry.dev/mcp.
Can I ask in Chinese?
Yes. The official 27mcp is US-English for setup and availability, but once connected you can phrase commands in any language. If you want the model choosing from a Chinese tool catalogue, use ZoneFoundry's Chinese endpoint — tool names and descriptions are in Chinese.
Do I need developer mode?
It depends on your ChatGPT version. Some require Settings → Apps → Advanced settings → Developer mode, then Create under Apps; others let you go to chatgpt.com/plugins, hit + and pick Add custom MCP server. The test is reaching the field where you enter the MCP server URL.
Should I give up when I see a 401?
Don't. On the OAuth connector a 401 is usually just the normal challenge and the consent flow follows — finish it and collect the 6-digit code. Only key-based connections need a token check.