Skip to main content

Add your description here

Project description

Sonos MCP Server

This project is a Sonos MCP (Model Context Protocol) server that allows you to control and interact with Sonos devices on your network. It provides various functionalities such as discovering devices, controlling playback, retrieving device states, and managing queues.

Features

  • Discover Sonos devices on the network
  • Retrieve and control playback state for devices
  • Manage playback queues
  • Expose functionalities as MCP tools

Requirements

  • Python 3.7+
  • uv for managing Python projects

Installation

  1. Clone the repository:

    git clone https://github.com/WinstonFassett/sonos-mcp-server.git
    cd sonos-mcp-server
    
  2. Install the required dependencies using uv:

    uv sync
    

Usage

Running the Server

Stdio

Run the server using stdio:

uv run mcp run server.py

SSE with Supergateway

Run the server with SSE using the supergateway tool:

npx -y supergateway --port 8000 --stdio "uv run mcp run server.py"

Alternatively, you can use the convenience script provided in the repository:

./npx-serve-sse-8000.sh

Development

To run the server in "development" mode with the MCP Inspector:

uv run mcp dev server.py

This command hosts an MCP Inspector for testing and debugging purposes.

To run the server with SSE in development mode, use the SSE command for supergateway, and in a second terminal windor run:

npx @modelcontextprotocol/inspector

Available MCP Tools

Use the exposed MCP tools to interact with Sonos devices. The available tools include:

  • get_all_device_states: Retrieve the state information for all discovered Sonos devices.
  • now_playing: Retrieve information about currently playing tracks on all Sonos devices.
  • get_device_state: Retrieve the state information for a specific Sonos device.
  • pause, stop, play: Control playback on a Sonos device.
  • next, previous: Skip tracks on a Sonos device.
  • get_queue, get_queue_length: Manage the playback queue for a Sonos device.
  • mode: Get or set the play mode of a Sonos device.
  • partymode: Enable party mode on the current Sonos device.
  • speaker_info: Retrieve speaker information for a Sonos device.
  • get_current_track_info: Retrieve current track information for a Sonos device.
  • volume: Get or set the volume of a Sonos device.
  • skip, play_index, remove_index_from_queue: Manage tracks in the queue for a Sonos device.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_sonos_mcp_server-0.1.0.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iflow_mcp_sonos_mcp_server-0.1.0-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file iflow_mcp_sonos_mcp_server-0.1.0.tar.gz.

File metadata

File hashes

Hashes for iflow_mcp_sonos_mcp_server-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a212b7ed5542562b7ffe60108ef9b58bb003997885bc34b8570cb1df1265e883
MD5 ff5f42896682e7874fe07288cfe3f0bd
BLAKE2b-256 919907da469e584c80ef0e8c2b162e7005233ad21a1e5c97f850bc5105ec38f9

See more details on using hashes here.

File details

Details for the file iflow_mcp_sonos_mcp_server-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for iflow_mcp_sonos_mcp_server-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0ed72d06d9cd52cfa5808b955475e19dbf7417b1641eacf5de0b913d49f03517
MD5 cce3de4db1d1f6a65db78eb830c6d540
BLAKE2b-256 d00235d799dba084a47e4a454df75336f3699b21938ddfe051e9533c4362f8aa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page