Sonos MCP Server について
ネットワーク上の Sonos デバイスを MCP クライアントから検出・操作するサーバーです。再生、キュー、デバイス状態、スピーカー制御を MCP ツールとして提供し、stdio と HTTP のトランスポートに対応します。
主な機能
- 01ネットワーク上の Sonos 検出
- 02デバイスと再生状態の取得
- 03再生と音量の操作
- 04再生キューの管理
- 05音楽サービスの曲をキューに追加
活用シーン
- 01複数デバイスの再生状況を確認
- 02一時停止、曲送り、音量調整
- 03スピーカーの再生キューを管理
- 04対応する音楽サービスの曲をキューに追加
MCP 対応
Sonos デバイスの検出、再生・音量操作、キュー管理、デバイス情報を MCP クライアント向けのツールとして公開します。stdio、SSE、streamable HTTP に対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Sonos MCP サーバー
このプロジェクトは、ネットワーク上の Sonos デバイスを操作し、やり取りするための Sonos MCP(Model Context Protocol)サーバーです。デバイスの検出、再生の操作、デバイス状態の取得、キューの管理など、さまざまな機能を提供します。
機能
- ネットワーク上の Sonos デバイスを検出
- デバイスの再生状態を取得および操作
- 再生キューを管理
- 機能を MCP ツールとして公開
必要条件
- Python 3.12+
- Python プロジェクトの管理用
uv
インストール
Git から(直接インストール)
pip install git+https://github.com/WinstonFassett/sonos-mcp-server.git
開発用
-
リポジトリをクローンします:
git clone https://github.com/WinstonFassett/sonos-mcp-server.git cd sonos-mcp-server -
uvを使用して必要な依存関係をインストールします:uv sync
使用方法
サーバーの実行
Stdio
stdio を使用してサーバーを実行します:
uv run mcp run server.py
HTTP(streamable-http)
サーバーは MCP の streamable-http トランスポートをネイティブでサポートしています(mcp SDK >= 1.12)。プロキシは不要です:
SONOS_MCP_TRANSPORT=streamable-http \
SONOS_MCP_HOST=127.0.0.1 \
SONOS_MCP_PORT=8090 \
uv run sonos-mcp-server
エンドポイント:http://127.0.0.1:8090/mcp
環境変数:
| 変数 | デフォルト | 備考 |
|---|---|---|
SONOS_MCP_TRANSPORT | stdio | stdio、sse、または streamable-http |
SONOS_MCP_HOST | 127.0.0.1 | HTTP のバインドアドレス |
SONOS_MCP_PORT | 8000 | HTTP ポート(パスは /mcp) |
SONOS_MCP_ALLOWED_HOSTS | (localhost のみ) | 受け入れる追加の Host ヘッダー(カンマ区切り)。異なるホスト名のプロキシの背後で提供する場合に必要です(例:mac-mini.tailc3138.ts.net:*)。 |
SONOS_DEVICE_IPS | (SSDP による検出) | スピーカーの IP アドレス(カンマ区切り)。SSDP マルチキャストを省略し、ユニキャスト SOAP で名前を解決します。プロセスがマルチキャストできない場合(例:ローカルネットワークのアクセス許可がない launchd)に必要です。 |
レガシー:supergateway を使用した SSE
従来の代替手段(非推奨 — 上記の streamable-http を推奨):
npx -y supergateway --port 8000 --stdio "uv run mcp run server.py"
開発
MCP Inspector を使用してサーバーを「開発」モードで実行するには:
uv run mcp dev server.py
このコマンドは、テストとデバッグ用の MCP Inspector を起動します。
SSE を使用してサーバーを開発モードで実行するには、supergateway 用の SSE コマンドを使用し、別のターミナルウィンドウで次を実行します:
npx @modelcontextprotocol/inspector
Claude Desktop へのインストール
Git に公開した後、ユーザーは直接インストールできます:
mcp install git+https://github.com/WinstonFassett/sonos-mcp-server.git
または、Claude Desktop の設定に追加します:
{
"mcpServers": {
"sonos": {
"command": "sonos-mcp-server"
}
}
}
利用可能な 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 デバイスのキュー内のトラックを管理します。add_service_tracks_to_queue:Spotify、Apple Music、Tidal、Deezer などの音楽サービスからトラックを Sonos キューに追加します。
更新の公開
変更を加えた後:
git add .
git commit -m "Description of changes"
git push
ユーザーは次のようにして更新できます:
pip install --upgrade git+https://github.com/WinstonFassett/sonos-mcp-server.git
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細は LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。