mcpField
S
Sonos MCP Server

Sonos MCP Server

ローカル
github.com/WinstonFassettゲーム・エンタメ91 週間前に更新

Sonos MCP Server について

ネットワーク上の Sonos デバイスを MCP クライアントから検出・操作するサーバーです。再生、キュー、デバイス状態、スピーカー制御を MCP ツールとして提供し、stdio と HTTP のトランスポートに対応します。

主な機能

  1. 01ネットワーク上の Sonos 検出
  2. 02デバイスと再生状態の取得
  3. 03再生と音量の操作
  4. 04再生キューの管理
  5. 05音楽サービスの曲をキューに追加

活用シーン

  1. 01複数デバイスの再生状況を確認
  2. 02一時停止、曲送り、音量調整
  3. 03スピーカーの再生キューを管理
  4. 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
開発用
  1. リポジトリをクローンします:

    git clone https://github.com/WinstonFassett/sonos-mcp-server.git
    cd sonos-mcp-server
    
  2. 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_TRANSPORTstdiostdio、sse、または streamable-http
SONOS_MCP_HOST127.0.0.1HTTP のバインドアドレス
SONOS_MCP_PORT8000HTTP ポート(パスは /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 ファイルをご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。