Sonos MCP Server

by WinstonFassett
Verified

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Schema

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Tools

Functions exposed to the LLM to take actions

NameDescription
get_all_device_states

Retrieve the state information for all discovered Sonos devices.

Returns: List[Dict[str, Any]]: A list of dictionaries containing state information for each device.

now_playing

Retrieve information about currently playing tracks on all Sonos devices.

Returns: List[Dict[str, str]]: A list of dictionaries containing the name, title, artist, and album of currently playing tracks.

get_device_state

Retrieve the state information for a specific Sonos device.

Args: name: The name of the device to retrieve state information for. If None, uses the current device.

Returns: Dict[str, Any]: A dictionary containing the device's name, volume, state, and current track information.

pause

Pause playback on a Sonos device.

Args: name: The name of the device to pause. If None, uses the current device.

Returns: Dict[str, Any]: The device's state after pausing, including name, volume, state, and track info.

stop

Stop playback on a Sonos device.

Args: name: The name of the device to stop. If None, uses the current device.

Returns: Dict[str, Any]: The device's state after stopping, including name, volume, state, and track info.

play

Start playback on a Sonos device.

Args: name: The name of the device to start playback on. If None, uses the current device.

Returns: Dict[str, Any]: The device's state after starting playback, including name, volume, state, and track info.

next

Skip to the next track on a Sonos device.

Args: name: The name of the device to skip the track on. If None, uses the current device.

Returns: Dict[str, Any]: The device's state after skipping to the next track, including name, volume, state, and track info.

previous

Skip to the previous track on a Sonos device.

Args: name: The name of the device to skip the track on. If None, uses the current device.

Returns: Dict[str, Any]: The device's state after skipping to the previous track, including name, volume, state, and track info.

get_queue

Retrieve the queue of tracks for a Sonos device.

Args: name: The name of the device to retrieve the queue from. If None, uses the current device.

Returns: List[Dict[str, Any]]: A list of dictionaries containing track information in the queue.

mode

Get or set the play mode of a Sonos device.

Args: mode: The play mode to set (e.g., "NORMAL", "SHUFFLE_NOREPEAT", "SHUFFLE", "REPEAT_ALL"). If None, returns the current mode. name: The name of the device to set the mode for. If None, uses the current device.

Returns: str: The current play mode after the operation.

partymode

Enable party mode on the current Sonos device.

Returns: Dict[str, Any]: The device's state after enabling party mode, including name, volume, state, and track info.

speaker_info

Retrieve speaker information for a Sonos device.

Args: name: The name of the device to retrieve speaker information from. If None, uses the current device.

Returns: Dict[str, str]: A dictionary containing speaker information.

get_current_track_info

Retrieve current track information for a Sonos device.

Args: name: The name of the device to retrieve track information from. If None, uses the current device.

Returns: Dict[str, str]: A dictionary containing the current track's artist, title, album, playlist position, and duration.

volume

Get or set the volume of a Sonos device.

Args: volume: The volume level to set (0-99). If None, returns current volume. name: The name of the device to control. If None, uses the current device.

Returns: int: The current volume level after the operation.

Raises: ValueError: If volume is not between 0 and 99. ValueError: If the specified device is not found.

skip

Skip tracks in the queue for a Sonos device.

Args: increment: The number of tracks to skip forward. Defaults to 1. name: The name of the device to skip tracks on. If None, uses the current device.

Returns: Dict[str, Any]: The device's state after skipping tracks, including name, volume, state, and track info.

Raises: ValueError: If the new track position is out of the queue's range.

play_index

Play a specific track from the queue on a Sonos device.

Args: index: The index of the track to play. name: The name of the device to play the track on. If None, uses the current device.

Returns: Dict[str, Any]: The device's state after playing the specified track, including name, volume, state, and track info.

Raises: ValueError: If the index is out of the queue's range.

remove_index_from_queue

Remove a specific track from the queue on a Sonos device.

Args: index: The index of the track to remove. name: The name of the device to remove the track from. If None, uses the current device.

Returns: List[Dict[str, Any]]: The updated queue after removing the track.

Raises: ValueError: If the index is out of the queue's range.

get_queue_length

Retrieve the queue length for a Sonos device.

Args: name: The name of the device to retrieve the queue length from. If None, uses the current device.

Returns: int: The length of the queue.

ID: mjamhjygzg