article
README
🚀 Sonos MCP 服务器
该项目是一个 Sonos MCP(模型上下文协议)服务器,可让您对网络中的 Sonos 设备进行控制与交互。它具备设备发现、播放状态控制、设备状态检索以及队列管理等实用功能。
🚀 快速开始
本服务器允许您控制和交互网络中的 Sonos 设备,提供了发现设备、控制播放状态等功能。下面为你介绍具体的使用步骤。
✨ 主要特性
- 发现网络中的 Sonos 设备
- 检索并控制设备的播放状态
- 管理播放队列
- 作为 MCP 工具公开功能
📦 安装指南
环境要求
- Python 3.7+
uv用于管理 Python 项目
安装步骤
-
克隆仓库:
git clone https://github.com/WinstonFassett/sonos-mcp-server.git cd sonos-mcp-server -
使用
uv安装所需的依赖项:uv sync
💻 使用示例
运行服务器
标准输入输出(Stdio)
使用标准输入输出运行服务器:
uv run mcp run server.py
与超网关一起使用的 SSE
使用 supergateway 工具通过 SSE 运行服务器:
npx -y supergateway --port 8000 --stdio "uv run mcp run server.py"
或者,您可以使用仓库中提供的方便脚本:
./npx-serve-sse-8000.sh
开发
以“开发”模式运行服务器并使用 MCP Inspector 进行测试和调试:
uv run mcp dev server.py
在第二个终端窗口中运行以下命令,以 SSE 模式进行开发:
npx @modelcontextprotocol/inspector
可用的 MCP 工具
使用暴露的 MCP 工具与 Sonos 设备交互。可用工具包括:
get_all_device_states:检索所有已发现 Sonos 设备的状态信息。now_playing:检索所有 Sonos 设备上当前播放的信息。get_device_state:检索特定 Sonos 设备的状态信息。pause,stop,play:控制 Sonos 设备的播放状态。next,previous:在 Sonos 设备上跳过曲目。get_queue,get_queue_length:管理 Sonos 设备的播放队列。mode:获取或设置 Sonos 设备的播放模式。partymode:启用当前 Sonos 设备的派对模式。speaker_info:检索 Sonos 设备的扬声器信息。get_current_track_info:检索当前正在播放的曲目信息。volume:获取或设置 Sonos 设备的音量。skip,play_index,remove_index_from_queue:管理 Sonos 设备队列中的曲目。
📄 许可证
该项目在 MIT 许可证下开源。有关详细信息,请参阅 LICENSE 文件。
微信扫一扫