Skip to main content
Glama
AlonDrilich

internet-radio-mcp

by AlonDrilich

Search radio stations

search_stations
Read-onlyIdempotent

Find internet radio stations in the Radio Browser directory by name, genre, country, or language. Returns playable stream URLs and browser listen links, excluding broken streams.

Instructions

Search internet radio stations in the Radio Browser community directory by name, genre tag, country and/or language. Broken streams are excluded. Returns stream URLs plus a listen_url to play each station in the browser on 72FM. Station data from the Radio Browser community directory (radio-browser.info, public domain). Stations belong to their broadcasters; 72FM does not own, operate or curate them.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tagNoGenre or format tag, e.g. "jazz", "classical", "news", "lofi". See list_genres.
nameNoPart of the station name, e.g. "BBC World Service" or "jazz fm".
limitNoMaximum number of stations to return (1-50, default 10).
orderNoSort order, highest first: votes (community votes, default), clickcount (recent plays), bitrate.votes
languageNoBroadcast language in English, lowercase works best, e.g. "portuguese", "japanese".
countrycodeNoTwo-letter ISO 3166-1 alpha-2 country code, e.g. "BR" for Brazil, "JP" for Japan. See list_countries.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
countYes
sourceYes
stationsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds genuinely non-structured behavior: broken streams are filtered out, results include stream URLs plus a browser listen_url, and the data provenance/licensing caveat. It does not mention rate limits or result stability, keeping it out of 5 territory.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core capability is front-loaded in the first sentence and the practical behavior (broken streams excluded, listen_url) follows. The final two sentences of provenance/ownership boilerplate are useful for trust but are not strictly about invocation, making it slightly longer than necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not detail return fields, and it correctly avoids that. Combined with 100% schema coverage and full annotation coverage, an agent has what it needs to call the tool, though filter-combination semantics and pagination/result-size behavior remain unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all six parameters (tag, name, limit, order, language, countrycode) are already documented in the schema with examples and constraints. The description only restates the filter dimensions generically and adds no syntax, defaults, or combination semantics beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Search) and resource (internet radio stations) plus the filter dimensions and the data source (Radio Browser community directory). It is immediately distinguishable from get_station and top_stations by implication, but never names or contrasts those siblings explicitly, which is what a 5 would require.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The filter axes ('by name, genre tag, country and/or language') imply when the tool is useful, and the schema points to list_genres/list_countries for discovering valid values. However, there is no explicit when-to-use versus get_station or top_stations, no statement of how filters combine (AND vs OR), and no guidance on empty results.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.