允许您通过模型上下文协议控制和与网络中的Sonos设备交互的服务器,提供发现设备、控制播放、检索设备状态和管理队列的功能。
home-automation-and-iotentertainment-and-media
339 查看 · 2026-07-07 更新
简介
允许您通过模型上下文协议控制和与网络中的Sonos设备交互的服务器,提供发现设备、控制播放、检索设备状态和管理队列的功能。
简介
允许您通过模型上下文协议控制和与网络中的Sonos设备交互的服务器,提供发现设备、控制播放、检索设备状态和管理队列的功能。
Sonos MCP 服务器
该项目是一个 Sonos MCP(Model Context Protocol)服务器,允许您控制和与网络上的 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
使用
运行服务器
标准输入输出
使用标准输入输出运行服务器:
uv run mcp run server.py
使用 Supergateway 的 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
此命令托管一个 MCP Inspector 用于测试和调试目的。
要在开发模式下通过 SSE 运行服务器,请使用 supergateway 的 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: 检索 Sonos 设备上的当前曲目信息。volume: 获取或设置 Sonos 设备的音量。skip,play_index,remove_index_from_queue: 管理 Sonos 设备队列中的曲目。
许可证
本项目根据 MIT 许可证发布。有关详细信息,请参阅 LICENSE 文件。
来源
- 来源:github
- 链接:https://github.com/WinstonFassett/sonos-mcp-server