开始前你需要
- Claude 账号,网页版或桌面 App 都可以。
- 你的 Sonos 账户邮箱和密码。两条路最后都要在你的 Sonos 账号上确认一次。
- 走自定义连接器的话,还需要装 ZoneFoundry(App Store 搜 ZoneFoundry)并已连上音箱。
先选路:一句话判据
| 你的情况 | 走哪条 |
|---|---|
| 英文界面、系统跑 S2、想一分钟连好 | Sonos 官方内置连接器 |
| 中文界面,或希望 Claude 在中文工具名单里选 | ZoneFoundry 自定义连接器 |
| 要在 Claude Code 或脚本里用 | ZoneFoundry 访问密钥 |
路 A:Sonos 官方内置连接器
Sonos 在 Sonos 27 里发布了官方 MCP(叫 Sonos 27mcp),Claude 那边把它做成了内置连接器,所以在连接器列表里直接能搜到,不用复制任何地址。官方帮助页写明目前是美式英语的版本。
- 在 Claude 打开 设置 → 连接器(Connectors),搜索 Sonos,或者从列表里选它,点 Connect。
- 浏览器会打开授权页,显示由「Sonos Cloud MCP Anthropic」请求控制你的 Sonos 系统。看完权限列表,点 Okay。
- 输入你的 Sonos 账户邮箱和密码,点 Sign In。
- 再看一遍 Claude 请求的权限,点 Okay。
- 回到 设置 → 连接器,Sonos 那一行状态应该出现勾。
- 开一个新的对话再问它,旧的对话不会自动带上新接的工具。
路 B:ZoneFoundry 自定义连接器
这条路不依赖 Claude 的连接器目录,所以不管官方那边有没有放开、你的账号在哪个区,都能用。代价是要多一步:手机上的 6 位授权码。
1. 在 App 里复制连接器链接
ZoneFoundry → 设置 →「AI 与聊天」→ AI 接入 → 点 Claude 卡片。「怎么连接」里有连接器链接 https://relay.zonefoundry.dev/mcp,点下面的「复制」。Claude 和 ChatGPT 两张卡片用的是同一个链接,区别只在各自 AI 里添加的位置。
2. 在 Claude 里添加自定义连接器
在 claude.ai 或 Claude 桌面 App 打开 设置 → 连接器 → 点 + Add → Add custom connector,把链接粘进去,点 Connect。
Claude 的菜单文案会随版本变(有的版本把这一页放在 Customize 下面)。判据不是菜单叫什么,而是最后能不能打开「Add custom connector」这一页。能打开就对了。
3. 用手机确认(5 分钟内)
电脑上会开一页,显示 6 位数字码。回 ZoneFoundry App,在「输入授权码」里填进去,点 批准。三个细节:
- 5 分钟内有效。超时那一页会显示已过期,回 Claude 重新连一次就有新码。
- 同一页上也有二维码,用 iPhone 相机扫一下可以直接跳到 App 里批准。
- 也可以直接对 ZoneFoundry 助手说「授权 123456」。
4. 回 Claude 开新对话
那一页显示 Approved — returning… 之后,回 Claude 开新对话。App 里的 Claude 卡片这时应该显示「已授权」。
两条路差在哪
| 项目 | Sonos 官方 | ZoneFoundry |
|---|---|---|
| 怎么加 | 连接器列表里搜 Sonos | 自定义连接器,粘贴链接 |
| 确认方式 | 浏览器里登录 Sonos 账户 | 手机上填 6 位授权码 |
| 工具说明语言 | 英文,34 个工具 | 中文 30 个 / 英文 27 个 |
| 语言可用范围 | 官方写明美式英语 | 中英粤都可以 |
| 系统要求 | S2 软件 + Sonos 账户 | Sonos 账户(桥接可选) |
Claude Code 和脚本
Claude Code 走的是密钥,不是连接器。在 App 的 「AI 接入」→「访问密钥」 新建一条,得到 zfagt_ 开头的 token(只显示一次)。然后把 https://relay.zonefoundry.dev/sse/zh 配成 MCP 服务器,请求头带上:
Authorization: Bearer zfagt_你的token
为什么用 /sse/zh:它同时接受 SSE 长连接和普通 POST,不用赌你的客户端用哪种。只有在它明确不接受 /sse/* 时,才改成 /mcp/zh(那一条只收 POST)。
用密钥接进来的 Claude Code 不会让 Claude 卡片变成「已授权」—— 那类连接只记在「访问密钥」下面。这是设计如此,不是没连上。
接上之后怎么问
Claude 拿到工具名单后,正常说话就行,不用背命令。几句可以直接用的:
- 「列出我的房间」—— 最快的自检,能说出真实房间名就说明通了。
- 「客厅放周杰伦,音量 25」
- 「除了卧室,其他房间都放同一首歌」
- 「十分钟后在厨房提醒我关火」—— 走的是音箱播报。
如果它答得像模像样但音箱没反应,先怀疑工具调用没通(回 App 看卡片状态),别急着怪音箱。
常见问题
Sonos 官方连接器和自定义连接器可以同时装吗?
技术上可以,但同一个 Claude 会话里挂两个 Sonos 相关的 MCP 服务器时,「暂停」「下一首」这类通用指令可能被路由到另一个,表现成点了没反应。要对比就把其中一个关掉。
为什么 Claude 卡片一直显示「连接」而不是「已授权」?
说明那次授权没有走完。6 位授权码 5 分钟内有效,超时会显示已过期;还有一种常见情况是用访问密钥接的 Claude Code,那类连接只记在「访问密钥」里,不会让 Claude 卡片变成已授权。
Claude Code 也能控制 Sonos 吗?
能,但走的是访问密钥而不是连接器。在 App 里新建一条 zfagt_ 开头的密钥,然后在 Claude Code 里把 https://relay.zonefoundry.dev/sse/zh 配成 MCP 服务器,带上 Authorization: Bearer 头。
授权码过期了怎么办?
回 Claude 里重新点一次连接,会生成新的授权码。旧的那个不会再用,也不用去撤销什么。
Claude 说找不到 Sonos 连接器?
官方的那个连接器在 Claude 设置 → 连接器里搜索 Sonos 应该能看到;如果搜不到,可能是账号或地区还没放开,改用自定义连接器那条路,它不依赖官方目录。