Sonos
FreeNot checkedMCP server for controlling Sonos speakers - playback, volume, groups, queue, playlists and favourites via Claude Desktop (or other MCP supported LLM's)
About
MCP server for controlling Sonos speakers - playback, volume, groups, queue, playlists and favourites via Claude Desktop (or other MCP supported LLM's)
README
Control your Sonos system from any MCP-compatible AI client. Run locally over stdio, deploy with Docker on Linux for whole-home access, or follow the documented Helm / k3s guidance when its networking caveats fit your environment.
What it does
SoniqMCP is an MCP server that exposes your Sonos system as tools for AI agents. Connect Claude Desktop (or any MCP client) to control playback, volume, queues, favourites, playlists, local music library browsing and playback, and room grouping through natural conversation.
Tools available:
| Category | Tools |
|---|---|
| System | list_rooms, get_system_topology |
| Playback | play, pause, stop, next_track, previous_track, get_playback_state, get_track_info |
| Playback Modes | get_play_mode, set_play_mode, seek, get_sleep_timer, set_sleep_timer |
| Volume | get_volume, set_volume, adjust_volume, mute, unmute, get_mute |
| Room Audio | get_eq_settings, set_bass, set_treble, set_loudness |
| Queue | get_queue, add_to_queue, remove_from_queue, clear_queue, play_from_queue |
| Favourites | list_favourites, play_favourite |
| Alarm Lifecycle | list_alarms, create_alarm, update_alarm, delete_alarm |
| Playlist Playback and Lifecycle | list_playlists, play_playlist, create_playlist, update_playlist, delete_playlist |
| Local Music Library | browse_library, play_library_item |
| Groups | get_group_topology, join_group, unjoin_room, party_mode, group_rooms |
| Group Audio | get_group_volume, set_group_volume, adjust_group_volume, group_mute, group_unmute |
| Inputs | switch_to_line_in, switch_to_tv |
| Setup | ping, server_info |
Quick start
Prerequisites: Python 3.12+, uv
# 1. Clone and install
git clone <repo-url> sonos-mcp-server
cd sonos-mcp-server
make install # runs: uv sync
# 2. Configure (copy and edit)
cp .env.example .env
# 3. Run
make run # starts the server over stdio
See docs/setup/stdio.md for the full local setup guide including Claude Desktop wiring. After the server is running, use docs/prompts/example-uses.md for direct and agent-mediated prompt examples, and use docs/prompts/command-reference.md as the canonical command surface.
Deployment models
| Local stdio | Docker (HTTP) | Helm / k3s (HTTP) | |
|---|---|---|---|
| Best for | Same-machine AI client | Linux home-lab server | Self-hosted k3s/Kubernetes |
| Client location | Same machine only | Any network client | Any network client |
See docs/setup/README.md for the full deployment comparison and setup guides.
Configuration
All configuration is via a project-local .env file or environment variables.
When both are present, environment variables win:
| Variable | Default | Description |
|---|---|---|
SONIQ_MCP_TRANSPORT |
stdio |
Transport mode (stdio or http) |
SONIQ_MCP_EXPOSURE |
local |
Network exposure posture (local or home-network) |
SONIQ_MCP_LOG_LEVEL |
INFO |
Log level (DEBUG/INFO/WARNING/ERROR) |
SONIQ_MCP_DEFAULT_ROOM |
(none) | Optional default Sonos room |
SONIQ_MCP_MAX_VOLUME_PCT |
80 |
Volume safety cap (0–100) |
SONIQ_MCP_TOOLS_DISABLED |
(none) | Comma-separated tools to disable |
SONIQ_MCP_HTTP_HOST |
127.0.0.1 |
Bind address (HTTP transport only; for home-network access, also set SONIQ_MCP_EXPOSURE=home-network and use 0.0.0.0 or a LAN address) |
SONIQ_MCP_HTTP_PORT |
8000 |
Port (HTTP transport only) |
SONIQ_MCP_AUTH_MODE |
none |
HTTP auth mode: none, static, or oidc (HTTP transport only) |
For static and OIDC auth configuration, see docs/setup/authentication.md.
Command surface
The supported command surface lives in docs/prompts/command-reference.md. That page is the canonical reference for:
maketargets for development, quality gates, Docker, Compose, and Helm- direct CLI invocation examples
- the relationship between local
stdioworkflows and remoteStreamable HTTPdeployment paths
Docs
- Setup overview and deployment models
- Local stdio setup guide
- Docker deployment guide
- Helm deployment guide
- Authentication guide
- Troubleshooting
- Operations and release guidance
- Prompts and command reference index
- Example prompts and usage flows
- Command reference
- Claude Desktop integration
- Home Assistant integration
- n8n integration
- Security policy
- Threat model
Installing Sonos
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/PaulKnauer/sonos-mcp-serverFAQ
Is Sonos MCP free?
Yes, Sonos MCP is free — one-click install via Unyly at no cost.
Does Sonos need an API key?
No, Sonos runs without API keys or environment variables.
Is Sonos hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Sonos in Claude Desktop, Claude Code or Cursor?
Open Sonos on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzCompare Sonos with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
