Sonos MCP服务器
此项目是一个Sonos MCP(模型上下文协议)服务器,允许您控制网络上的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
使用SSE运行服务器 supergateway 工具:
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检查器,用于测试和调试。
要在开发模式下使用SSE运行服务器,请使用超级网关的SSE命令,并在第二个终端windor中运行:
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许可证获得许可。请参阅 许可证 文件以获取详细信息。

