Radio Dad

95.9 · THE SWITCHBOARD

Your assistant has my number.

The switchboard here takes calls from the machines too. Patch Radio Dad into Claude or ChatGPT and ask the way you would ask a friend who knows every dial: a station in Lagos, something Brazilian, Portuguese talk for the practice. Six read-only tools over 50,000+ live stations, and nothing to sign into.

https://radiodad.app/mcp

Paste it as a custom connector. No account, no key, no sign-in.

ClaudeChatGPTClaude CodeCursorVS CodeAny MCP client

In the conversation

I'm learning Portuguese. Any radio I could put on?

Lisbon · Porto Alegre · Luanda

Antena 1 Lisbon · Portugal
Rádio Gaúcha Porto Alegre · Brazil
Radio Luanda Luanda · Angola

Three accents of the same language, from three continents. Open the globe and I show you where they broadcast from, or ask for another country and the board changes.

My own illustration of the board, drawn in Radio Dad's type and color. The globe is the real one, spinning the same baked coastline the connector draws. The cards show the shape of what you get: the live board picks its own stations, logos and all. The surrounding chat window belongs to whichever assistant you use.

01SETUP

One URL, about a minute

Radio Dad is a remote MCP server. Any assistant that speaks the Model Context Protocol can call in, and the whole configuration is the address above. I sit here and patch the calls through to the dial.

Web, desktop and mobile · no sign-in

  1. Open Settings, then CustomizeConnectors.
  2. Choose Add, then Add custom connector.
  3. Paste the URL and confirm. No sign-in appears, because there is nothing to sign into.
  4. Start a new chat and ask for a station. Claude asks once before it uses a tool; that prompt is Claude's, and everything our tools do is read-only.

Developer mode

  1. Open SettingsConnectors and turn on developer mode.
  2. Create a new connector and paste the same URL.
  3. Ask for a station in a new conversation.
  4. The server speaks the Apps SDK convention as well as MCP Apps, so the station board renders inline here too.

Terminal · one command

  1. Run this. It connects immediately: no browser step, no token.
  2. Add --scope user to keep it in every project rather than only this one.
  3. Check it with /mcp, then ask for a station. Remove it with claude mcp remove radiodad.
$ claude mcp add --transport http radiodad \
    https://radiodad.app/mcp

~/.cursor/mcp.json · or .cursor/mcp.json per project

  1. Add the entry below. Cursor keys these under mcpServers and infers the transport from the url, so no type is needed.
  2. Reopen Cursor and enable the server in its MCP settings.
{
  "mcpServers": {
    "radiodad": { "url": "https://radiodad.app/mcp" }
  }
}

.vscode/mcp.json · or MCP: Open User Configuration

  1. Run MCP: Add Server from the Command Palette for the guided flow, or paste the entry below.
  2. Note the differences: VS Code keys these under servers, not mcpServers, and it does want type.
{
  "servers": {
    "radiodad": {
      "type": "http",
      "url": "https://radiodad.app/mcp"
    }
  }
}

Anything else that speaks MCP takes the same address. Three things differ between clients and cost people the most time: the top-level key is mcpServers in most and servers in VS Code; some want "type": "http" and some infer it; and in Claude Code an entry with a url but no type is read as a local command and refused. streamable-http works as an alias for http. The server speaks the current revision of the protocol, 2026-07-28, alongside the older ones back to 2024-11-05, so a client on either side of that change works without you picking anything.

02WHAT TO ASK

What to ask for

You never have to name the app. Tell your assistant what you want and it picks the right line to ring. These are the asks I test against.

By place

  • Play me a radio station from Japan
  • What do people actually listen to in Brazil?
  • I want to hear what a station in Nairobi sounds like

By language

  • I'm learning French, is there French radio I could put on?
  • Arabic radio, something with talk rather than music
  • Spanish radio for the drive home

By mood

  • I want some lofi on in the background
  • Put on some talk radio
  • Find me a classical station

Let it choose

  • Take me somewhere random in the world
  • Anything good on the radio?
  • Is KEXP streaming right now?
03THE TOOLS

The six tools

All read-only. None of them writes anything, anywhere, and the assistant chooses between them from what you asked for.

search_radio_stations

A station by name, or close to it. For when someone knows the broadcaster: KEXP, BBC Radio 6, Rádio Gaúcha.

radio_stations_by_country

What a country is actually listening to, ranked by how alive the stream is rather than by name.

radio_stations_by_genre

Genre or mood: jazz, lofi, talk, classical, something to work to.

radio_stations_by_language

Stations broadcasting in a language, wherever they are. The one people learning a language reach for.

random_radio_station

Somewhere you would never have typed. The whole point of a globe.

whats_good_on_radio

A short hand-picked set for when the ask is open: anything good on right now?

04HONEST LIMITS

What it does not do

A switchboard that overpromises wastes your night. Here is the short list, plainly.

Audio does not play inside Claude

Assistants render connector interfaces in a sandbox whose security policy blocks audio from any other origin, so the request is never even made. Tapping a station opens it already playing in the free web player, or in the Radio Dad app on iPhone and iPad. Every music connector works this way.

Station logos stay as monograms

The same sandbox blocks images from other origins, so the board draws its own lettered tiles instead of loading a broadcaster's logo. It is the design, not a missing asset.

Some streams cannot be offered

A station is only offered as playable when it streams over https in a format the surface can decode. Anything else says so and opens the web player, instead of a play button that fails.

It is a catalog, not a schedule

Stations come from an open, community-contributed catalog, served from our own edge with corrections applied. It is contributed data, so a stream can go quiet between checks. There is no programme guide, and no podcasts here.

05QUESTIONS

The rest of it

What is MCP, in one sentence?

The Model Context Protocol is an open standard for letting an assistant use an outside tool. Radio Dad runs a server that speaks it, so any assistant that also speaks it can look up live radio. You add it once with a URL, and nothing about your assistant changes otherwise.

Does the radio play inside the chat?

Not in Claude. Assistants render connector interfaces in a sandbox whose security policy blocks audio from any other origin, so the request is never even made. Tapping a station opens it already playing in the free web player, or in the Radio Dad app on iPhone and iPad. Every music connector works this way, for the same reason.

Do I need the app, an account, or a subscription?

None of the three. The connector is read-only and unauthenticated: no sign-in step, nothing to pay for, no account to create. Premium features live in the iOS app and are not part of the connector. The app makes the listening better, it is not a requirement for the asking.

What data does the connector collect?

None by the connector: it receives a search term from the assistant and returns stations, with no account, no cookie and no profile. The app itself carries no ads and no tracking; usage statistics are anonymous and never tied to you. The privacy policy has the detail.

Why does my assistant ask permission each time?

That prompt is your assistant's, not ours, and it is a good habit: it shows you which tool is about to run and with what arguments. Most assistants offer an “always allow” option once you have seen a few. Everything our tools do is read-only, so there is nothing they can change on your behalf.

Why do some stations open in the web player instead of playing?

A station is only offered as playable when it streams over https in a format the surface can decode. Plenty of broadcasters are http-only, or stream a playlist format a plain browser cannot open. Rather than a play button that fails, those say so and hand off.

Where do the stations come from?

An open, community-contributed catalog, served from our own edge with our corrections applied on top. It is contributed data, so a stream can go quiet between checks and a name can be spelled oddly. We hide the ones we know are dead and fix the ones people report.

How do I remove it?

Delete the connector wherever you added it, or run claude mcp remove radiodad in Claude Code. There is no account on our side, so there is nothing left behind and nothing to cancel.

06PRIVACY

Nothing about you

The connector takes a search term and returns stations. There is no account, no cookie and no profile, and the endpoint keeps no record of who asked. The app is built the same way: no ads, no tracking, no account. Usage statistics are anonymous and never tied to you. Two outside services do narrow jobs: RevenueCat sees which plan you bought and whether it is active, against an anonymous id it generates, and PostHog receives the anonymous usage statistics, in the EU. Neither learns who you are. PostHog is told that a station was played, never by whom. Read the privacy policy, or write to me at [email protected] about anything, including a security concern.

ONE URL

Ask your assistant for the world.

Paste it once and the whole dial takes calls. When you want the full console, the globe, the captions, the app is free to download.

https://radiodad.app/mcp