返回 MCP 目录
public公开dns本地运行

sonos-mcp-server

Sonos设备控制服务器

article

README

🚀 Sonos MCP 服务器

该项目是一个 Sonos MCP(模型上下文协议)服务器,可让您对网络中的 Sonos 设备进行控制与交互。它具备设备发现、播放状态控制、设备状态检索以及队列管理等实用功能。

🚀 快速开始

本服务器允许您控制和交互网络中的 Sonos 设备,提供了发现设备、控制播放状态等功能。下面为你介绍具体的使用步骤。

✨ 主要特性

  • 发现网络中的 Sonos 设备
  • 检索并控制设备的播放状态
  • 管理播放队列
  • 作为 MCP 工具公开功能

📦 安装指南

环境要求

  • Python 3.7+
  • uv 用于管理 Python 项目

安装步骤

  1. 克隆仓库:

    git clone https://github.com/WinstonFassett/sonos-mcp-server.git
    cd sonos-mcp-server
    
  2. 使用 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 文件。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端