Quak

docs · mcp · alpha

Your AI assistant, on your speakers

Quak's MCP server lets Claude, ChatGPT, Cursor and any other MCP client make announcements on your Sonos. Ask for it in plain words: “tell the kids dinner is ready”, “play a drum roll in the living room”. The assistant picks the voice, and a fitting effect when it's fun: a robot in a spaceship for the washing machine, a radio DJ in the stadium for the win.

The address

MCP server (Streamable HTTP)
https://api.quak.party/mcp

Every announcement costs credits like any other play and is in your history. Quiet hours, your default speakers and your plan's effects apply as always.

Tools

Play
play_textSpeak a text, with voice, voice effect, ambience, speakers and volume
play_soundPlay a built-in sound
play_clipPlay one of your clips
play_urlPlay an audio URL
replayPlay an earlier announcement from the history again, also on other speakers; only the base fee
stopStop whatever plays, free
Find and manage
find_soundsFind sounds by words: name, description, keywords, tags
list_speakersWhere it can play: all speakers, locations, groups, rooms
list_voicesVoices of a language, the fastest first
list_effectsVoice effects and ambiences, each with a short description
list_clipsYour own clips
historyThe latest plays, with the id for replay and save_clip
save_clipKeep an earlier announcement as your own clip

The tools call the same API as every client, with the same checks, credits and limits. Plays from an assistant show up in the history as sent via MCP.

Set it up

Claude.ai and Claude Desktop

Settings → Connectors → Add custom connector, with the URL below. Claude signs in with your Quak login.

ChatGPT

Settings → Apps & Connectors → developer mode → a new connector with the URL below, authentication OAuth.

When the assistant connects, Quak asks you in the browser: which app, what it may do and in which workspace. You can disconnect it any time under Your profile → Logins.

Claude Code, sign in in the browser
claude mcp add --transport http quak https://api.quak.party/mcp
Claude Code with an API key
claude mcp add --transport http quak https://api.quak.party/mcp \
  --header "Authorization: Bearer qk_key_…"
Cursor and others (mcp.json)
{
  "mcpServers": {
    "quak": {
      "url": "https://api.quak.party/mcp",
      "headers": { "Authorization": "Bearer qk_key_…" }
    }
  }
}

Without headers the client signs in with OAuth instead, if it can. Make a key for your assistant under Settings → API keys, with play, or create if it should also keep clips.

Signing in

Two ways, both as Authorization: Bearer …: OAuth 2.1 for Claude.ai, Claude Desktop and ChatGPT (the client finds everything itself from the 401 of the server), or an API key for Claude Code, Cursor and scripts.

An app you let in with OAuth works in the one workspace you chose, with create (announcements and clips) or play if it only asks for that. It can't change settings, people or keys.