ZoneFoundry for Sonos

Sonos MCP server: control your Sonos speakers from any MCP client.

Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeRead-only

What it can do

  • Ask Zonefoundry: Sends a request in natural language to the user's ZoneFoundry assistant, which carries it out on the user's Sonos system and returns a reply. It handles playing songs, artists, albums
  • List Rooms: List this user's Sonos rooms and current groups (cloud topology).
  • Now Playing: Current playback state (track/artist/state/volume) for a room.

What data it sees

Do you need an account

No: the server works without sign-in

Sonos MCP server: control your Sonos speakers from any MCP client. Play songs, artists and playlists, set volume, group rooms, move music to another room, switch to TV, spoken announcements and reminders. 27 tools, English and Chinese. Works through the official Sonos cloud, so there is no home bridge to install; sign in with OAuth. Requires the free ZoneFoundry iOS app signed in to your Sonos account.

How to connect

How to connect ZoneFoundry for Sonos to Claude

The server address to paste into Claude settings:

https://zonefoundry--kisssam6886.run.tools

  1. Open Claude (claude.ai or the desktop app).
  2. Go to Settings → Connectors.
  3. Click Add custom connector.
  4. Paste the server address copied below into Remote MCP server URL and click Add.
  5. In a chat, click + → Connectors and switch the new connector on.

Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.

Authorization

After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.

How to connect ZoneFoundry for Sonos to ChatGPT

The server address to paste into ChatGPT settings:

https://zonefoundry--kisssam6886.run.tools

  1. Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
  2. Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
  3. Open Settings → Connectors and click Create.
  4. Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
  5. Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
  6. In a new chat open + → Apps/Connectors and enable the connector.

OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.

Authorization

On first use ChatGPT opens the service's sign-in window. Sign in and approve access.

How to connect ZoneFoundry for Sonos to Cursor

The server address to paste into Cursor settings:

https://zonefoundry--kisssam6886.run.tools

Fastest: click Open in Cursor below and confirm the prompt.

Manually:

  1. In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
  2. Paste the JSON copied below into ~/.cursor/mcp.json (per project: .cursor/mcp.json in the repo root).
  3. Save the file. The server appears in the MCP list; authorize it there if asked.

Authorization

If the service needs sign-in, an authorize button appears next to the server in the MCP list.

Server tool list (27)

Raw names from tools/list. Only developers need these.

ask_zonefoundrySends a request in natural language to the user's ZoneFoundry assistant, which carries it out on the user's Sonos system and returns a reply. It handles playing songs, artists, albums and playlists, news and radio, spoken announcements, scenes and multi-step requests, across Apple Music, Spotify, QQ Music and NetEase Cloud Music, and understands English and Chinese (Mandarin and Cantonese). An artist name plays about 10 of that artist's songs. Without the ZoneFoundry bridge, tracks play directly on the speaker and are added to the Sonos queue the next time the ZoneFoundry app is opened. Examples: 'play some jazz in the kitchen', 'play the morning news in the bedroom', '喺客厅播周杰伦'.
list_roomsList this user's Sonos rooms and current groups (cloud topology).
now_playingCurrent playback state (track/artist/state/volume) for a room.
toggle_play_pauseToggle play/pause in a room's group.
next_trackSkip to next track in a room's group.
previous_trackSkip to previous track in a room's group.
set_volumeSet a room's volume (0-70; values above 70 are clamped for safety).
adjust_volumeRaises or lowers a room's volume by a relative amount (-30 to 30); the current level does not need to be known.
set_muteMutes or unmutes a single room. Muting keeps playback running.
set_play_modeTurns shuffle and/or repeat on or off for a room's group. repeat: 'off' | 'all' (repeat the queue) | 'one' (repeat the current track). Only the settings that are passed are changed.
set_home_theaterChanges soundbar settings: night mode (quieter loud scenes, clearer quiet ones) and speech enhancement (clearer dialogue). Applies to Sonos soundbars; if the named room has no soundbar, the home's soundbar is used. Only the settings that are passed are changed.
move_musicMoves what's playing from one room to another: the music continues in `to_room` and stops in `from_room` (other rooms grouped with `from_room` keep playing).
switch_sourceSwitch a room between music, TV audio (soundbar HDMI/optical) and line-in. All three go through Sonos' cloud, so the user doesn't need to be home or have the app open; TV picks a soundbar with a TV input, line-in picks a speaker with a line-in port. Only if the cloud can't switch to TV does it fall back to the ZoneFoundry app on the home Wi-Fi.
seekJump to a position in the current track, in seconds from the start (e.g. 90 = 1:30). Only works while something is playing.
group_roomsGroup one or more rooms onto `room` so they all play the same thing. `room` stays the one that keeps playing; the others join it.
ungroup_roomTake a room out of whatever group it is in, so it plays on its own again.
play_musicSearches for a song or artist and starts playback in a room through the Sonos cloud. A query of 'title artist' plays one song; an artist name alone plays a batch of that artist's songs, with duplicate versions of the same title removed. Without the ZoneFoundry bridge, tracks play directly on the speaker and are added to the Sonos queue the next time the ZoneFoundry app is opened.
search_musicSearches for songs without playing them and returns candidate tracks (name, artist, album, duration).
announceSpeaks a short text message aloud on a room's Sonos speaker using text-to-speech. Music pauses during the message and then resumes. Up to 300 characters, at least 8 seconds apart; one message can carry several items. language: zh-CN / zh-HK / en-US; when omitted, the home's language preference is used.
set_reminderSchedules a one-time spoken reminder: at the given time the room's Sonos speaker reads the text aloud (text-to-speech). Takes either `at` (the home's local time, 24-hour HH:MM) or `in_minutes`. Examples: {text:'Time to get up',room:'Bedroom',at:'07:30'} / {text:'焗炉好了',room:'客厅',in_minutes:20}. This is ZoneFoundry's own scheduler, separate from native Sonos alarms.
list_remindersList pending spoken reminders created via this MCP connection.
cancel_reminderCancels a pending reminder by its reminderId.
play_historyLists recent requests this home made to ZoneFoundry, newest first: the user's own words (e.g. 'play Norah Jones', '播周杰伦'), with time, channel and whether each succeeded. Covers requests made through the ZoneFoundry assistant, the app's voice and command features, messaging bots and this connection; music started by browsing in the app or in the Sonos app is not recorded. Entries contain the request text only, with no structured track or artist fields.
taste_profileReturns this home's learned listening profile (usual artists, genres, rooms, times of day and language habits) plus request statistics (most repeated requests, busiest hours, channels). Same coverage as the play history. The profile is regenerated daily and may be empty for a new user; statistics are computed live.
list_favoritesLists the home's Sonos favorites (title, artist, position, service) in the order Sonos stores them. Works without the ZoneFoundry bridge. Sonos caps favorites at about 70 items; `total` is the real count.
list_playlistsLists the home's Sonos playlists (id, title, track count). Works without the ZoneFoundry bridge. An error response means the list could not be read, not that there are no playlists.
undo_lastReverts the most recent volume or grouping change made in this home within the last 10 minutes, restoring every room's prior volume and group layout. Each change can be undone once; repeated calls step back through earlier changes. Playback, favorites, alarms and other settings are not affected.