Skip to main content
Glama

RoamDial — World Radio Map

Server Details

Explore 35,000+ live radio stations from 215 countries by city, genre, mood, and ICY track title.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A3.9/5.0

Scored across 4 tools

Disambiguation4/5

The four tools have mostly distinct purposes: search for discovery, get_station for detailed profiles, get_now_playing for a specific station's live metadata, and spin_globe for random discovery with metadata sampling. The only mild overlap is between get_now_playing and spin_globe, since both can return current track metadata, but spin_globe is clearly framed as random station selection rather than direct metadata lookup.

Naming Consistency5/5

All tool names use consistent snake_case and follow a verb_noun pattern: get_now_playing, get_station, search_stations, spin_globe. The convention is predictable and readable across the entire small set.

Tool Count4/5

Four tools is a well-scoped set for a radio discovery server, covering search, station detail, live metadata, and random exploration. It is slightly lean, but each tool earns its place and the count fits the focused domain.

Completeness4/5

The surface covers the core radio-map workflows: find stations, inspect station profiles, check what is playing, and explore randomly by country or genre. Minor gaps exist around broader browsing operations such as listing available countries/genres or station collections, but the main lifecycle is covered.

Available Tools

4 tools
get_now_playingGet Live Now Playing (ICY)A
Read-only
Inspect

Query real-time ICY stream metadata for a verified station in the RoamDial directory. Returns the track/show title, sampling timestamp (observedAt), and availability reason.

NameRequiredDescriptionDefault
stationIdYes12-character hex station ID or slug-id from the RoamDial directory.

Output Schema

NameRequiredDescription
cityYes
mapUrlYes
countryYes
listenUrlYes
localTimeYes
stationIdYes
nowPlayingYes
stationNameYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare read-only, open-world, non-idempotent, and non-destructive behavior. The description adds useful context beyond those annotations by noting the data is real-time, that a sampling timestamp (observedAt) is returned, and that an availability reason is provided, which signals possible unavailability.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core action and followed by the key return fields. It contains no filler and every sentence contributes to understanding the tool.

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?

For a simple one-parameter read-only tool with annotations and an output schema, the description is largely complete: it identifies the data source, the live nature of the result, and the key returned pieces. It could be stronger by clarifying when to use this instead of get_station or search_stations, but that gap is more about usage guidance than core completeness.

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 coverage is 100%, and the schema already explains that stationId is a 12-character hex station ID or slug-id from the RoamDial directory. The description adds the notion of a 'verified station' but does not provide additional format details, examples, or constraints beyond what is in the schema.

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?

The description states a specific operation: querying real-time ICY stream metadata for a station in the RoamDial directory. It distinguishes this from a general station lookup by emphasizing live now-playing metadata, but it does not explicitly name or contrast with siblings like get_station or search_stations.

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?

Usage is implied by the phrase 'real-time ICY stream metadata for a verified station,' suggesting it should be used when current track/show information is needed. However, there is no explicit when-to-use guidance, no exclusions, and no mention of alternatives among the sibling tools.

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

get_stationGet Station ProfileA
Read-onlyIdempotent
Inspect

Get the detailed profile of a station by ID or slug-id, including broadcast metadata, Wikipedia summary, RoamDial internal listener stats, and similar stations.

NameRequiredDescriptionDefault
stationIdYes12-character hex station ID (e.g. "aaaaaaaaaaaa") or slug-id (e.g. "classic-fm-aaaaaaaaaaaa").

Output Schema

NameRequiredDescription
stationYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so the safety profile is covered. The description adds the payload composition, which helps an agent decide whether a fetch is worth it, but it says nothing about missing/invalid IDs, external Wikipedia dependency timing, or freshness of listener stats.

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

Conciseness5/5

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

A single front-loaded sentence with no filler; every clause contributes either the action or a category of returned data.

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 explain return values, and one fully documented parameter plus strong annotations leaves little uncovered. Only edge-case behavior for an unknown ID is unaddressed.

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% and the schema itself gives the 12-character hex form plus a slug-id example. The description's 'by ID or slug-id' restates that rather than adding new meaning, so baseline 3 is appropriate.

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?

Specific verb ('Get') plus resource ('detailed profile of a station') and an enumeration of what the profile contains (broadcast metadata, Wikipedia summary, listener stats, similar stations). It is clearly distinguishable from search_stations and get_now_playing, though it never names a sibling to contrast against.

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

Usage Guidelines4/5

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

The phrase 'by ID or slug-id' implicitly tells the agent this is the lookup tool for when you already hold an identifier, which is the practical discriminator versus search_stations. There are no explicit exclusions or stated preconditions, so it stops short of full routing guidance.

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

search_stationsSearch Radio StationsA
Read-onlyIdempotent
Inspect

Search live radio stations in the RoamDial directory by keyword, country, city, genre, or language. Returns verified stations with direct listenUrl and mapUrl.

NameRequiredDescriptionDefault
cityNoCity or state/region name.
genreNoGenre slug or keyword (e.g. "classical", "jazz", "rock", "pop", "electronic", "news", "hip-hop", "country", "world", "oldies").
limitNoMaximum number of stations to return (1-25, default 10).
queryNoStation name, call sign, frequency, city, or keyword.
countryNoISO 2-letter country code (e.g. "GB", "JP", "US") or country name/alias ("UK", "usa", "japan").
languageNoBroadcast language (e.g. "English", "Japanese").

Output Schema

NameRequiredDescription
countYes
stationsYes
snapshotBuiltAtYes

TDQS

A3.6/5.0
Behavior3/5

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

The annotations already declare the full safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), so behavior is largely covered structurally. The description adds that stations are 'verified' and return direct listenUrl and mapUrl, which is modest value beyond the annotations and mostly overlaps the output schema.

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

Conciseness5/5

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

Two tight sentences: capability and filter dimensions first, return content second. No redundant phrasing and nothing that restates the tool name.

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?

An output schema exists, so return-shape explanation is unnecessary, and all six parameters are documented in the schema. The only gap is behavioral detail around filter combination and empty results, which is minor for a read-only search tool.

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% and each parameter has an example-rich description, so the baseline of 3 applies. The description names the same five filter dimensions without adding syntax, precedence, or combination rules beyond the schema.

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 and resource (search live radio stations in the RoamDial directory) plus the five filter dimensions and the returned artifact (listenUrl, mapUrl). It is clearly distinguishable from the get_* siblings, though it never names them explicitly.

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?

Usage is implied: search when you have a keyword/country/genre/language rather than a known station, which is the role of the get_station sibling. However, no explicit when-to-use, when-not-to-use, or alternative routing is given, and there is no guidance on combining filters or handling zero results.

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

spin_globeSpin the Radio GlobeA
Read-only
Inspect

Pick a random live radio station from the 3D globe (optionally constrained by country or genre) and sample its current ICY track title within a 2.5s budget.

NameRequiredDescriptionDefault
genreNoOptional genre slug or keyword.
countryNoOptional ISO 2-letter country code or country name/alias.

Output Schema

NameRequiredDescription
stationYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, non-idempotent and non-destructive, so the safety profile is covered. The description adds real value beyond that: it discloses nondeterministic random selection, a 2.5s latency budget, and that the result includes a sampled ICY track title. It does not say what happens when no station matches the filter, which is the main remaining gap.

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

Conciseness5/5

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

A single front-loaded sentence with no filler: the core action, the optional filters, and the time budget all appear in order of importance. Nothing is repeated from the annotations or schema.

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 needn't explain return values, and the latency budget plus the nondeterminism note cover the operationally important behavior for a two-optional-param tool. The one omission is the empty-result / no-matching-station behavior, which matters for a randomized lookup with filters.

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 both parameters are already documented as optional genre and country inputs. The description only restates that these are optional constraints on the random pick, without adding format guidance beyond the schema's ISO-code and slug notes. Baseline 3 is appropriate when the schema carries the parameter detail.

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?

The description states a specific verb and resource ('pick a random live radio station from the 3D globe') plus a secondary action ('sample its current ICY track title'), which separates it from the deterministic siblings search_stations, get_station and get_now_playing. It stops short of naming those alternatives explicitly, so the differentiation is inferable rather than stated.

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?

It signals the use case (random discovery, optionally narrowed by country or genre) but gives no explicit when-not guidance and never points to search_stations or get_now_playing as the deterministic alternatives. An agent can infer the intent, but must reason about the selection itself.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updates
    • First observedget_now_playing
    • First observedget_station
    • First observedsearch_stations
    • First observedspin_globe

Related MCP Connectors

Related MCP Servers

  • 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
    A
    quality
    B
    maintenance
    Enables MCP clients such as Claude, Cursor, and VS Code Copilot to search more than 50,000 internet radio stations by name, genre, country, or language and retrieve their direct stream URLs. It also surfaces the most popular and trending stations along with country and genre listings, with no API key or account required.
    5
    466 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables Claude to search the Radio Browser directory for live internet radio stations and return working stream URLs, supporting queries by country, genre, popularity, or specific station.
    MIT
  • 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
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources