Skip to main content
Glama
AlonDrilich

internet-radio

by AlonDrilich

72FM Radio: a Claude plugin for internet radio

This plugin lets Claude find live internet radio stations and hand you a working stream URL. Ask for "jazz stations in Brazil", "the most popular radio in Japan" or "the stream address of BBC World Service", and Claude searches the Radio Browser directory for you. It adds one skill, find-radio-station, and one local MCP server, internet-radio, with five read-only tools: search_stations, get_station, top_stations, list_countries and list_genres.

What it connects to

The server makes outbound HTTPS GET requests, and only to the public Radio Browser API at de1.api.radio-browser.info, de2.api.radio-browser.info and all.api.radio-browser.info (it tries them in that order). The requests carry your search words and the User-Agent internet-radio-mcp/1.0 (+https://72fm.com). As with any web request, Radio Browser also sees your IP address; nothing else is sent: no files, no account details, no credentials, and the plugin needs none. (The RADIO_BROWSER_MIRRORS environment variable, if you set it yourself, replaces those three addresses with https ones you choose.) It does not run shell commands, write files or read anything outside its own folder. Each result includes a listen_url on 72fm.com; that is only a link, and nothing contacts 72fm.com unless you open it.

Radio Browser is a community-run, public-domain directory of radio stations. Stations belong to their broadcasters; neither this plugin nor 72FM owns, hosts or curates them, and a listed stream can occasionally be offline.

Related MCP server: radiomcp

Install

Add the plugin from the Claude directory once it is listed. Until then, the same server runs on its own in Claude Code, Claude Desktop, Cursor or VS Code: see internet-radio-mcp, for example claude mcp add internet-radio -- npx -y github:AlonDrilich/internet-radio-mcp.

The plugin's server needs Node.js 20 or newer. It runs from one self-contained file, dist/server.mjs, so nothing is installed when the plugin is installed (there is no package-lock.json and no install step here). The file is committed so that what runs is what you can read in this repository.

To reproduce it: clone AlonDrilich/internet-radio-mcp at the same version, run npm ci, copy its src/*.js over this repository's server/ (they are identical), then from the MCP repo run npx esbuild@0.28.2 src/index.js --bundle --platform=node --target=node20 --format=esm --banner:js="import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);" --outfile=<this repo>/dist/server.mjs. The result is unminified, and it contains the server source plus its two runtime packages (@modelcontextprotocol/server and zod) pinned by that repository's lockfile.

Source and license

The server source is in server/, readable and unminified; dist/server.mjs is the unminified bundle of that source and its two runtime packages. It is the same code as AlonDrilich/internet-radio-mcp, which also runs standalone with npx. MIT licensed. Made by 72FM, a free web radio player built on the same directory.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    Internet radio for Claude and your terminal with ~25,000 verified live stations from 197 countries. Control playback, search, and get recommendations through natural language.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Internet radio + AI DJ for Claude. 55,000+ stations across 197 countries. Search, play, and get recommendations through natural language.
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server that wraps the Radio Browser API to search radio stations, list countries, and discover genres. Enables AI agents to find and browse radio stations without authentication.
    378 npm
    MIT
  • F
    license
    B
    quality
    B
    maintenance
    Enables searching and browsing internet radio stations from the Radio Browser directory, retrieving live now-playing track information from station streams via ICY/Shoutcast metadata, and interacting with directory data through MCP tools without requiring API keys.
    29
    -