开始前你需要
- 一个能添加 MCP 连接器的 AI 助手(Claude、ChatGPT,或任何支持 HTTP MCP 的客户端)。
- 你已经登录的 Sonos 账户邮箱与密码 —— 两条路都要用它来授权。
- 你的 Sonos 系统在跑 S2 软件(Sonos 官方明确要求这一条)。
一句话:现在有两套 Sonos MCP
MCP(Model Context Protocol)是让 AI 助手调用外部工具的一套标准。AI 本身不会「控制音箱」,它只会按工具说明书去发起调用。所以「Sonos 支持 MCP」的意思是:有人写好了一台服务器,把播放、音量、分组这些动作包成有名字的工具,AI 照着调用。
目前有两台这样的服务器,都在运行:
- Sonos 官方的
Sonos 27mcp,地址https://mcp.ws.sonos.com/mcp,34 个工具,2026 年 9 月随 Sonos 27 发布。 - ZoneFoundry 的 MCP,地址
https://relay.zonefoundry.dev/mcp,英文 27 个工具、中文 30 个,工具说明是中文的。
两者互不隶属,也互不依赖。你可以在不同助手裡各接一个。
Sonos 官方 27mcp
官方把它描述成「第一个可以直接从 AI 助手控制 Sonos 的官方方式」。要点如下:
| 项目 | 官方 27mcp |
|---|---|
| 地址 | https://mcp.ws.sonos.com/mcp |
| 鉴权 | OAuth 2.1 + PKCE,走动态客户端注册。不需要自己申请 client ID 或密钥。 |
| 工具数 | 34 个 |
| 接入方式 | Claude 和 ChatGPT 内置了官方连接器,在设置里搜 Sonos 即可;其它 MCP 客户端手动注册地址。 |
| 语言 | 官方帮助页写明「available in US-English」,目前是美式英语的早期版本。连上之后指令可以用任何语言说。 |
| 费用 | Sonos 不收费。但你的 AI 助手本身要有对应的订阅档位。 |
| 稳定性 | 官方明说工具名、说明和参数「会随时变化」,不应当成稳定 API 使用。 |
ZoneFoundry 的 MCP
我们这一台是围绕中文场景做的:工具说明是中文,除了标准 MCP 之外还提供一条用密钥的接入方式,给那些做不到 OAuth 的 App 用。
| 项目 | ZoneFoundry |
|---|---|
| 地址 | https://relay.zonefoundry.dev/mcp(英文) · …/mcp/zh(中文) |
| 鉴权 | 两种:OAuth 连接器(手机上填 6 位授权码),或 zfagt_ 开头的访问密钥(URL 里带 ?token= 或请求头 Authorization: Bearer)。 |
| 工具数 | 英文 27 个;中文 30 个(多 pause、resume、pause_all 三个幂等工具) |
| 接入方式 | Claude / ChatGPT 走 OAuth 连接器;超级小爱、Muse、Claude Code 和脚本走密钥。App 里每张卡片都有对应步骤。 |
| 语言 | 工具名和说明有中文版,模型更容易选对工具;指令本身中英粤都可以。 |
| 费用 | MCP 接入不单独收费;部分能力(例如家庭桥接、更多房间)看 App 内的方案说明。 |
怎么选
判据是你的 AI 助手和你说什么语言,不是哪个「更好」。
- 你在用 Claude 或 ChatGPT 的英文界面、系统是 S2、只想快点连上 —— 用官方 27mcp。它已经内置在连接器列表里,设置里搜 Sonos 就能加,不用复制任何地址。
- 你的 AI 是超级小爱、或者任何不会走 OAuth 的 App / 脚本 —— 只能用 ZoneFoundry。官方 27mcp 没有密钥方式。
- 你希望模型在中文工具名单里选工具 —— 用 ZoneFoundry 的
/mcp/zh。工具描述是中文的,长清单下选错的概率更低。 - 你要接进 Claude Code 或自己写脚本 —— 用 ZoneFoundry 的访问密钥,直接带 Bearer 头调用。官方那条也能手动注册地址,但只有 OAuth。
别把两条接进同一个会话。Sonos 自己的文档就提醒:同一个助手挂多个 MCP 服务器时,像「暂停」这种两边都有的通用指令可能被路由到错误的一方,结果按了没反应。
ZoneFoundry 的 27 个工具
连上之后 AI 手里就是这张名单。按用途分组:
- 看状态:
list_rooms·now_playing·list_favorites·list_playlists·play_history·taste_profile·list_reminders - 播放:
play_music·search_music·toggle_play_pause·next_track·previous_track·seek·set_play_mode - 音量:
set_volume·adjust_volume·set_mute - 房间与分组:
group_rooms·ungroup_room·move_music - 设备与播报:
switch_source·set_home_theater·announce - 提醒:
set_reminder·cancel_reminder - 随口说:
ask_zonefoundry(把一句话原样交给助手解析)·undo_last(撤销上一次音量或分组改动)
中文版另有 pause、resume、pause_all。这三个是幂等的:pause 只暂停,不会把已经暂停的房间变成播放,比反复用 toggle_play_pause 稳。
最快自检:跟 AI 说「列出我的房间」。能回你真实的 Sonos 房间名,就说明工具调用通了。
常见报错怎么修
405 Method Not Allowed
地址对了,但那条路径不收这种请求方法。最常见的是拿 GET / SSE 去连只收 POST 的 /mcp/zh。修法只换路径那一段,?token= 原封不动保留:
改前: https://relay.zonefoundry.dev/mcp/zh?token=zfagt_xxx
改后: https://relay.zonefoundry.dev/sse/zh?token=zfagt_xxx
只换整段、把 ?token= 丢了,会从 405 变成 401 —— 那不是新问题,是密钥没了。
401 Unauthorized
两种 401 含义完全不同,先分清走哪条路:
- OAuth 连接器:401 往往只是正常的鉴权挑战,客户端接下来会拉起授权页。继续走完(拿到 6 位码 → 填回 App → 批准),不要因为看到 401 就改去生成密钥。
- 密钥:先看 URL 里的
?token=有没有被输入框截断(最常见),再看zfagt_后面是不是完整,最后确认密钥没有被撤销。用请求头的,检查有没有漏掉Bearer和后面那个空格。
连上了但 AI 说没有工具
先确认它列的是不是你的真实房间;再回 App 的「AI 接入」页看那张卡片是不是显示「已授权」。如果卡片显示「连接」,说明那次授权没有走完 —— 重新连一次,别去怀疑 Sonos。
常见问题
Sonos 有官方 MCP 吗?
有。Sonos 在 2026 年 9 月的 Sonos 27 里发布了官方 MCP 服务器 Sonos 27mcp,地址是 https://mcp.ws.sonos.com/mcp,提供 34 个工具,免费,要求系统跑 S2 软件。官方页面写明目前只提供美式英语。
官方 27mcp 和 ZoneFoundry 的 MCP 能同时接吗?
能,但不建议接在同一个 AI 会话里。Sonos 自己的文档就提醒:同一个助手挂多个 MCP 服务器时,像「暂停」这种通用指令可能被路由到错误的一方。要对比着试,一次只留一个。
接上之后 AI 说找不到工具 / 401 怎么办?
401 表示鉴权没过,先分清走的是哪条路。走 OAuth 连接器的,401 往往只是正常的鉴权挑战,继续走完授权流程即可;用密钥的,检查地址里的 token 有没有被输入框截断,或者用 Authorization: Bearer 头时有没有漏掉 Bearer 和空格。
405 Method Not Allowed 是什么原因?
地址对了,但那条路径不收这种请求方法。最常见是用 GET 或 SSE 去连只收 POST 的 /mcp/zh。改法是把路径换成 /sse/zh,?token= 那一段原封不动保留。
中文 AI 能用吗?
官方 27mcp 目前只提供美式英语。要用中文 AI,例如超级小爱,需要接 ZoneFoundry 自己的 MCP 地址,它的工具名和说明都是中文的。
需要装家庭桥接才能用 MCP 吗?
不需要。只要已经登录 Sonos 账户。桥接只决定 AI 点的歌会不会直接进播放队列。