Skip to main content
Glama
maxim75

radiobrowser-api-mcp

by maxim75

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GRPC_PORTNoHost port to map to the container's gRPC port 50051 when deploying with Docker Compose. For example, GRPC_PORT=50099 maps host port 50099 to container port 50051.50051
RADIO_MCP_AUTH_TOKENNoOptional token required for mutating tools (register_station_click, vote_for_station, resolve_station_stream_url, add_station) when running in gRPC mode. If set, these tools require `authorization: Bearer <token>` metadata. If unset, all tools are open.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_now_playingA

Get the track currently playing on a radio station.

Args:
    station_name: Station name, e.g. "Smooth FM Sydney" or "smooth 95.3".
    timeout: Seconds for directory + stream reads; clamped to 1-60, and
        shared as an overall deadline across all candidates tried.

Returns:
    Dict with artist, title, raw_title, station_matched, country and
    stream_url (track fields null when the station is reachable but
    sending no track titles right now). Raises (as an MCP error) when
    nothing is found.
search_radio_stationsB

Search the Radio Browser directory for stations matching a name.

Args:
    query: Free-text station name, e.g. "smooth sydney".
    limit: Max results; clamped to 1-20.

Returns:
    List of station dicts with name, stream URL, codec, bitrate, country.
advanced_station_searchA

Advanced station search with field filters (GET /json/stations/search).

At least one of name/country/countrycode/state/language/tag/codec is required.
The *_exact flags switch that field to exact matching.
list_all_stationsB

List stations in the directory (GET /json/stations). Paginate with offset/limit.

get_station_by_uuidA

Get one station by its stationuuid (GET /json/stations/byuuid/{uuid}).

find_stations_by_nameC

Find stations by name (GET /json/stations/byname[/exact]/{name}).

find_stations_by_countryA

Find stations by country, e.g. "Australia" (GET /json/stations/bycountry[/exact]/{country}).

find_stations_by_country_codeC

Find stations by ISO 3166-1 country code, e.g. "AU" (GET /json/stations/bycountrycodeexact/{code}).

find_stations_by_stateB

Find stations by state/region (GET /json/stations/bystate[/exact]/{state}).

find_stations_by_languageC

Find stations by broadcast language, e.g. "english" (GET /json/stations/bylanguage[/exact]/{language}).

find_stations_by_tagB

Find stations by tag/genre, e.g. "chill" (GET /json/stations/bytag[/exact]/{tag}).

find_stations_by_codecA

Find stations by stream codec, e.g. "MP3" (GET /json/stations/bycodec[/exact]/{codec}).

get_top_voted_stationsC

Highest-voted stations (GET /json/stations/topvote/{count}).

get_most_clicked_stationsC

Most-clicked stations (GET /json/stations/topclick/{count}).

get_recently_clicked_stationsC

Most recently clicked stations (GET /json/stations/lastclick/{count}).

get_recently_updated_stationsB

Most recently changed/added stations (GET /json/stations/lastchange/{count}).

get_station_check_historyA

Automated stream-check history for a station (GET /json/checks).

Args:
    station_uuid: Station uuid.
    seconds: Only checks newer than this many seconds. The API ignores
        `limit` here (verified live), so use `seconds` to bound the
        response — e.g. 86400 for the last day. Defaults to 0, which
        returns the FULL history (can be thousands of entries).
register_station_clickA

Register a click (listen) for a station (GET /json/click/{uuid}).

NOTE: increments the station's public click counter. Returns the station record.
vote_for_stationB

Vote for a station (GET /json/vote/{uuid}). NOTE: increments the public vote counter.

resolve_station_stream_urlA

Get the current stream URL for a station (GET /json/url/{uuid}). Also counts as a click.

add_stationA

Submit a new station to the directory (POST /json/add). Only name + url are required.

list_countriesC

Countries in the directory with station counts (GET /json/countries).

list_country_codesA

ISO 3166-1 country codes in the directory with station counts (GET /json/countrycodes).

list_codecsA

Stream codecs with station counts (GET /json/codecs[/{filter}]).

list_statesA

States/regions with station counts (GET /json/states[/{country}]).

Country must be the exact directory name, e.g. "Australia".
list_languagesA

Broadcast languages with station counts (GET /json/languages[/{filter}]).

list_tagsB

Tags/genres with station counts (GET /json/tags[/{filter}]).

get_directory_statsB

Directory server statistics (GET /json/stats): station counts, checks, clicks, etc.

list_directory_serversB

Known directory mirror servers (GET /json/servers).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/maxim75/radiobrowser-api-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server