# Airtune Radio

> Search 50,000+ live radio stations: what's playing, on air now, recent songs, schedules, charts.

- name: app.airtune/radio
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 94/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/app.airtune%2Fradio
- tools: https://api.protogrid.dev/v1/servers/app.airtune%2Fradio/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "radio": {
      "type": "http",
      "url": "https://airtune.app/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-1d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 94/100 (new)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 7 of 7 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,386 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump
- pass `tools.hidden_text`: no hidden text in tool names, descriptions, schemas or annotations

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`, `stability.new_links`: tool history recorded for 0 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 7, about 1,386 tokens to load them all
- tool set hash: 084cec20ffcbc872e0bdf7292a22744c
- badge: [![protogrid quality](https://protogrid.dev/badge/app.airtune/radio.svg)](https://protogrid.dev/servers/app.airtune/radio)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://airtune.app/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (7)

- `airing_now`: Radio programmes on air right now (or starting within 30 minutes), across stations that publish a schedule, most popular stations first. Optionally limited to one country. Each item names the show, its station and the station's Airtune page.
- `country_top_tracks`: The songs played most often on a country's radio stations in the last 7 days, as measured by Airtune from the titles stations send with their streams (not a sales or streaming chart). Each song names one station that played it.
- `get_station`: Details of one radio station: country, languages, genres, description, website, broadcaster group, the song playing right now (when the station sends titles), and the programme on air now and next (when the station publishes a schedule). Use this to answer "what's playing on X". Needs the station slug from search_stations.
- `list_categories`: The valid values for search_stations filters: country codes, genre slugs, mood slugs or language codes, each with a display name and the number of stations. Largest first.
- `recent_tracks`: The songs Airtune detected on a station, newest first, with the time each one started (UTC). Detection reads the artist and title the station sends with its stream, so talk and news stations, and stations that send no titles, have no songs. Needs the station slug from search_stations.
- `search_stations`: Find live radio stations in Airtune's catalogue of 50,000+ stations from 200+ countries. Search by name (typo-tolerant) and/or filter by country, genre, mood or language. With no query, returns the most popular stations matching the filters. Returns each station's slug (needed by the other tools) and its Airtune page URL, where the user can listen.
- `station_schedule`: One day of a station's programme schedule (EPG): each show's name, host and start/end time, with the station's UTC offset. Only stations that publish a schedule have one. Covers today and the next 6 days in the station's own time zone. Needs the station slug from search_stations.
