# Internet Radio [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/AlonDrilich/internet-radio-mcp  
**GitHub Stars:** 1  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/internet-radio

## Description
Search internet radio stations, stream URLs, top stations, countries and genres (Radio Browser).

## Tools
Capabilities this server exposes over MCP:

- **search_stations** — clickcount` (default `votes`), `limit` 1–50 (default 10)
- **get_station** — One station
- **top_stations** — clicks` \
- **list_countries** — Country name, ISO code, station count and 72FM country page (`https://72fm.com/radio/<iso2>?source=mcp`)
- **list_genres** — Top genre tags by station count. Placeholder and non-genre tags are filtered out (e.g. `undefined`, `radio`, `fm`, and country, region or language names).

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "internet-radio": {
    "command": "npx",
    "args": ["-y","github:AlonDrilich/internet-radio-mcp"],
    "env": {
      "RADIO_BROWSER_MIRRORS": "",
      "RADIO_BROWSER_TIMEOUT_MS": ""
    }
  }
}
```

**Requires environment variables:** `RADIO_BROWSER_MIRRORS`, `RADIO_BROWSER_TIMEOUT_MS` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What Internet Radio does

The Internet Radio MCP server gives MCP clients read-only access to the Radio Browser station directory. It can find stations by name, genre tag, ISO country code, or language, retrieve one station by its Radio Browser identifier, and rank stations by votes, plays, or recent activity.

Results include station details such as the name, location, language, tags, codec, bitrate, homepage, vote count, direct stream URL, and a 72FM browser listening URL. The directory is community-maintained and contains stations from around the world. Stations that failed the directory's latest stream check are omitted from searches.

A natural-language `find_radio` prompt supports requests based on a mood, place, activity, or genre. For example, an agent can use it to interpret a request for calm jazz or radio from a particular city before searching.

## How it works

The server uses the Radio Browser HTTP API and tries configured mirrors in sequence. Each mirror has an eight-second timeout; if all configured mirrors fail, the tool reports an error while the process remains running. Responses are returned as a short summary, JSON text, and structured MCP content.

Station content comes from a public directory and is treated as untrusted data. Text is normalized and length-limited, while stream, homepage, and favicon URLs are restricted to canonical HTTP or HTTPS values without credentials. Results are capped at 5 MB and must be JSON lists. These measures reduce, but do not eliminate, the risk of malicious station metadata being passed to an agent.

## Setup and configuration

Node.js 20 or newer is required. The server can run through `npx` without a global installation:

```sh
npx -y github:AlonDrilich/internet-radio-mcp
```

It uses stdio transport, so a client must launch the command as an MCP process. Claude Desktop, Cursor, VS Code, Claude Code, and Gemini CLI have documented setup paths. A Docker image is also available at `ghcr.io/alondrilich/internet-radio-mcp:latest`.

No API key or account is required. Optional configuration includes `RADIO_BROWSER_MIRRORS`, a comma-separated replacement list of mirror URLs, and `RADIO_BROWSER_TIMEOUT_MS` for request timing. HTTPS is required for custom mirrors except local HTTP addresses used for testing; redirects are not followed.

## Tools and capabilities

The Internet Radio MCP server exposes five read-only tools:

- `search_stations` filters by name, tag, country code, and language, then orders by votes or click count. It returns 1–50 stations.
- `get_station` retrieves one entry using its `stationuuid`.
- `top_stations` ranks stations by votes, clicks, or trending activity, with optional country and tag filters.
- `list_countries` reports country names, ISO codes, station counts, and 72FM country pages.
- `list_genres` returns common genre tags while excluding placeholder, country, region, and language labels.

The station search and ranking limits default to 10 results. Genre listings default to 30 and allow up to 100 entries.

## Limitations and notes

The Internet Radio MCP server does not operate or curate the stations it returns. Broadcasters own their streams, and entries can become unavailable even after a successful directory check. Direct stream URLs are resolved by the directory when possible; otherwise, the original URL is used.

Station names, tags, languages, countries, and URLs may be edited by anyone. Agents should treat returned values as data rather than instructions. The service is read-only and does not provide tools for editing stations, controlling playback, or guaranteeing stream availability.

_Full upstream README: https://allmcps.com/mcp/internet-radio/readme_

