mcpField
S
Sonos Mcp

Sonos Mcp

本地服务
github.com/castbreeze游戏娱乐147 周前更新

关于 Sonos Mcp

Sonos Mcp 是通过 CastBreeze 控制 Sonos 扬声器的 MCP 服务,面向需要从 AI 客户端管理播放的用户。它支持播放音频文件和流媒体,并提供扬声器组信息。

主要功能

  1. 01OAuth 登录 CastBreeze
  2. 02控制 Sonos 扬声器
  3. 03播放 URL 或本地音频
  4. 04循环播放音频流
  5. 05管理音量与播放优先级
  6. 06查询扬声器组和播放器

适用场景

  1. 01在指定扬声器播放提示音
  2. 02播放 URL 或本地 MP3、WAV
  3. 03循环播放网络电台流
  4. 04查看扬声器组和播放器信息

MCP 相关

该 MCP 服务向兼容客户端提供 Sonos 控制、音频播放和设备查询工具,并提供认证状态资源。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"castbreeze": {
"command": "npx",
"args": [
"-y",
"@castbreeze/sonos-mcp"
]
}
}
}
启动命令npx -y @castbreeze/sonos-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@castbreeze/sonos-mcp

工具

6

收录的工具列表 · 更新于 3 周前

此工具无需参数。

详细介绍

@castbreeze/sonos-mcp

用于控制 Sonos 扬声器并通过 CastBreeze 播放音频流的模型上下文协议(MCP)服务。

功能

  • 🔐 使用 CastBreeze 进行 OAuth 身份验证
  • 🔊 通过 MCP 控制 Sonos 扬声器
  • 🎵 播放来自 URL 或本地文件的音频片段(MP3、WAV)
  • 📻 循环播放音频 URL
  • 🎚️ 管理播放优先级和音量
  • 🏠 获取扬声器组和播放器信息
  • 🔔 播放默认提示音

安装

NPM
npm install -g @castbreeze/sonos-mcp
PNPM
pnpm add -g @castbreeze/sonos-mcp
NPX(无需安装)
npx @castbreeze/sonos-mcp

使用方法

与 Claude Desktop 配合使用

将以下内容添加到 Claude Desktop 配置文件中:

MacOS:~/Library/Application Support/Claude/claude_desktop_config.json Windows:%APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "castbreeze-sonos": {
      "command": "npx",
      "args": ["-y", "@castbreeze/sonos-mcp"]
    }
  }
}

或者,如果已全局安装:

{
  "mcpServers": {
    "castbreeze-sonos": {
      "command": "sonos-mcp"
    }
  }
}
与 Cline 配合使用(VS Code 扩展)

将以下内容添加到 Cline MCP 设置(.roo/mcp.json)中:

{
  "mcpServers": {
    "castbreeze-sonos": {
      "command": "node",
      "args": ["path/to/dist/index.js"]
    }
  }
}

身份验证

此服务使用 OAuth 与 CastBreeze 进行身份验证:

  1. 使用 start_login 工具启动 OAuth 流程
  2. 在浏览器中完成授权
  3. 使用 finish_login 工具并提供授权码
  4. 访问令牌会存储在 auth.json 中,以供后续使用

可用工具

身份验证
  • start_login:启动 OAuth 登录流程(打开浏览器)
  • finish_login:使用授权码完成 OAuth 登录
播放
  • play_default_chime:播放默认提示音

    • 参数:players(数组或 "*")、volume(可选)、priority(可选)
  • play_audio_clip:播放音频片段(MP3/WAV)

    • 参数:players、uri(URL 或 file:// 路径)、volume(可选)、priority(可选)
    • 支持:https://、http://、file:// URI
  • play_radio:循环播放 URI(流媒体)

    • 参数:uri、groups(可选)、volume(可选)
设备管理
  • get_groups:获取所有扬声器组和播放器

可用资源

  • auth://status:当前身份验证状态和令牌信息

示例

在所有扬声器上播放提示音
Play the default chime on my Sonos speakers
播放 URL 中的 MP3
Play https://example.com/audio.mp3 on my Sonos
播放本地文件
Play the file at /path/to/audio.mp3 on Sonos
播放电台流
Play https://stream.example.com/radio on repeat

开发

# Install dependencies
pnpm install

# Build
pnpm build

# Run with inspector
pnpm inspector

要求

  • Node.js >= 22.0.0
  • CastBreeze 账户(用于 OAuth 身份验证)
  • 网络中的 Sonos 扬声器

项目结构

mcp/
├── src/
│   ├── index.ts           # Main MCP server implementation
│   └── server-selection.ts # Server selection utilities
├── dist/                  # Compiled JavaScript output
├── auth.json             # OAuth tokens (auto-generated)
├── package.json
└── README.md

许可证

MIT

参与贡献

欢迎贡献!请随时提交 Pull Request。

支持

相关项目

更新日志

1.1.0
  • 以 @castbreeze/sonos-mcp 名称首次发布到 npm
  • 支持 OAuth 身份验证
  • 支持播放来自 URL 和本地文件的音频片段
  • 支持电台流播放
  • 支持管理扬声器组

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。