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
安装所需的依赖项:
用法
运行服务器
标准输入输出系统
使用 stdio 运行服务器:
带有超级网关的 SSE
使用supergateway
工具通过 SSE 运行服务器:
npx -y supergateway --port 8000 --stdio "uv run mcp run server.py"
或者,您可以使用存储库中提供的便捷脚本:
发展
要使用 MCP Inspector 以“开发”模式运行服务器:
此命令承载 MCP 检查器以用于测试和调试目的。
要在开发模式下使用 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文件。