Before you start
- Either MCP already connected (see how the two differ). Reading it as reference works too.
- To follow along, an assistant you can ask to list your rooms.
First, the honest part: Sonos's 34 have no published names
Sonos's tech blog says only "34 carefully designed tools" and names none of them. The support page describes a capability range, not a tool list. And Sonos states plainly that tool names, descriptions and schemas will evolve without notice — the tool list itself is the authority.
We tried to obtain the real names from public sources. Here is what we found, so you can check it yourself:
- Posting
tools/liststraight tohttps://mcp.ws.sonos.com/mcpwithout auth returns401withaccess_denied / Invalid Token. - Its resource metadata exposes just two scopes,
playback-control-allandpartner-content:read— no tool catalogue. - Sonos's developer docs site (
docs.sonos.com) has no MCP section.
So the only reliable source for those 34 names is reading them at runtime after signing in to a Sonos account. Anyone publishing a "list" of them is guessing, or copying someone who guessed. We won't publish one.
The eight capability areas Sonos does document
These are the areas Sonos's support page does state explicitly — each is checkable:
- Discovery of players and groups
- Playback from connected services
- Volume and mute by product or group
- Play, pause, skip, seek
- Grouping and moving audio
- Sonos Favorites and playlists
- Shuffle and repeat
- Line-in, plus home-theater Night Sound and Speech Enhancement
Which of our tools covers each
| Documented by Sonos | Our tools |
|---|---|
| Discovery of players and groups | list_rooms |
| Playback from connected services | play_music · search_music |
| Volume and mute by product or group | set_volume · adjust_volume · set_mute |
| Play, pause, skip, seek | toggle_play_pause · next_track · previous_track · seek |
| Grouping and moving audio | group_rooms · ungroup_room · move_music |
| Favorites and playlists | list_favorites · list_playlists |
| Shuffle and repeat | set_play_mode |
| Line-in / Night Sound / Speech Enhancement | switch_source · set_home_theater |
In other words, every capability Sonos actually documents has a matching tool on our side. We do not claim parity: the other tools among their 34 may cover finer actions we can't verify, so we don't judge.
All 27 of our tools, one by one
The full list served by the English endpoint, https://relay.zonefoundry.dev/mcp:
| Group | Tool | What it does |
|---|---|---|
| Read state | list_rooms |
Lists every room and the current grouping |
now_playing |
What a room is playing, its state and volume | |
list_favorites |
Lists Sonos Favorites | |
list_playlists |
Lists Sonos playlists | |
play_history |
Recent requests made to ZoneFoundry (wording, time, channel, success); manual plays in the app or Sonos app aren't included | |
taste_profile |
This home's listening profile — usual artists, genres, rooms, times, language habits — plus request stats | |
list_reminders |
Lists pending spoken reminders | |
| Playback | play_music |
Searches and plays. A single word plays 10 tracks by default, "title artist" plays one, 25 max |
search_music |
Searches without playing; returns candidates with artist, album and duration | |
toggle_play_pause |
Pauses if playing, resumes if paused | |
next_track · previous_track |
Next / previous track | |
seek |
Jumps to a position in the current track, in seconds | |
set_play_mode |
Shuffle on/off; repeat off, whole queue, or current track | |
| Volume | set_volume |
Sets a room's volume to 0–70 |
adjust_volume |
Raises or lowers by a relative amount (−30 to +30) without knowing the current level | |
set_mute |
Mutes or unmutes one room; playback keeps running | |
| Rooms and groups | group_rooms |
Joins one or more rooms onto a host so they play the same source |
ungroup_room |
Takes a room out of whatever group it's in | |
move_music |
Moves what's playing from one room to another; the source room stops | |
| Devices and announcements | switch_source |
Switches between music, TV audio and line-in |
set_home_theater |
Night Sound and Speech Enhancement for a soundbar; only the settings you pass change | |
announce |
Speaks a short message via TTS; music pauses and resumes. Up to 300 characters, at least 8 seconds apart | |
| Reminders | set_reminder |
Schedules a one-off spoken reminder by local HH:MM or N minutes |
cancel_reminder |
Cancels a pending reminder | |
| Free-form | ask_zonefoundry |
Hands the user's sentence to the ZoneFoundry assistant to parse and run |
undo_last |
Reverts the last volume or grouping change (within 10 minutes, once per change) |
The 3 extras in the Chinese catalogue
The Chinese endpoint …/mcp/zh has 30 tools: the 27 above plus these 3. All idempotent, steadier than toggling twice:
pause— pauses only. An already-paused room stays paused rather than flipping to play.resume— resumes only. A room already playing is left alone.pause_all— pauses every room at once instead of one by one.
The English endpoint stays at 27 so existing clients and directory listings aren't disturbed — the extra actions matter more to Chinese-language models.
What we have that Sonos's docs don't mention
Here's the boundary: Sonos hasn't published its tool list, so "not mentioned in their docs" does not mean "they don't have it". These definitely exist on our side; on theirs, all we can say is that the support page doesn't mention them.
now_playing— reads what a room is playing. Sonos lists control actions; reading the current track isn't stated explicitly.announce— TTS that restores music afterwards. Sonos lists playback and device control; speech isn't mentioned.set_reminder/list_reminders/cancel_reminder— scheduled spoken reminders; no such category appears in Sonos's stated range.play_historyandtaste_profile— request history and a listening profile. Sonos lists control actions, not descriptions of listening.ask_zonefoundry— hands a whole sentence to our assistant for phrasing the tool list doesn't cover.undo_last— reverts the last volume or grouping change; undo isn't in Sonos's stated range.- The Chinese tool names and descriptions themselves — a model picks better from text it actually reads.
Going the other way, there is one thing Sonos documents that has no counterpart in our tool list: managing all of an account's Sonos systems through one interface. All 27 of our tools take a room name and none switches households. If you run two separate Sonos systems, check that before choosing.
Verify it yourself
Don't take the table on faith — ask the connected assistant to list your rooms. Real Sonos room names mean tool calls work. For detail, ask it to list the tools it can use: most clients can read the runtime tool list, and that is the set you actually have.
If you connected Sonos's 27mcp instead, the same step is worth doing — you'll see what those 34 are actually called, which beats any second-hand list.
FAQ
What are Sonos's 34 tools called?
Sonos hasn't published them. The tech blog says only "34 carefully designed tools"; the support page gives a capability range and states that tool names, descriptions and schemas evolve without notice and aren't a stable API. You can only read them at runtime with tools/list once connected.
You have 27 versus their 34 — is that weaker?
Tool count isn't capability. Ours are consolidated by action — set_volume and adjust_volume are separate, grouping and moving music are separate tools. Checked line by line against the capability range Sonos documents, all eight areas have a matching tool.
Why does the Chinese version have 3 extra tools?
The Chinese endpoint adds pause, resume and pause_all. They're idempotent — pause only pauses and won't flip an already-paused room to play. The English endpoint is unchanged so existing clients and directory listings aren't affected.
How do I know which tool set I connected?
Ask it to list your rooms. On our server you get real Sonos room names and can do things Sonos's docs don't mention, like announcements and reminders; on the official 27mcp you get only what its 34 tools allow.
Will tool names change later?
Sonos says theirs will change without notice. Our Chinese-only pause, resume and pause_all were added separately precisely so existing clients aren't disturbed, and the main tool set stays stable — but per MCP convention, clients should always trust the runtime tool list.