Search 50,000+ live radio stations: what's playing, on air now, recent songs, schedules, charts.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
How many programmes to return (1-20).
ISO 3166-1 alpha-2 country code, e.g. "DE". Default: all countries.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http radio https://airtune.app/mcp
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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many programmes to return (1-20). |
| country | string | ISO 3166-1 alpha-2 country code, e.g. "DE". Default: all countries. |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 20,
"minimum": 1,
"description": "How many programmes to return (1-20)."
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "ISO 3166-1 alpha-2 country code, e.g. \"DE\". Default: all countries."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| country* | string | ISO 3166-1 alpha-2 country code, e.g. "TR". |
{
"type": "object",
"required": [
"country"
],
"properties": {
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "ISO 3166-1 alpha-2 country code, e.g. \"TR\"."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| slug* | string | Station slug from search_stations, e.g. "kexp-b870d2". |
| locale | string | Language for country, genre and language names (ISO 639-1). Default: en. |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "Station slug from search_stations, e.g. \"kexp-b870d2\"."
},
"locale": {
"enum": [
"en",
"tr",
"ar",
"ja",
"ru",
"pt",
"es",
"de",
"fr",
"it",
"nl",
"pl",
"zh",
"ko",
"hi",
"el"
],
"type": "string",
"description": "Language for country, genre and language names (ISO 639-1). Default: en."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| kind* | string | Which list to return. |
| locale | string | Language for country, genre and language names (ISO 639-1). Default: en. |
{
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"countries",
"genres",
"moods",
"languages"
],
"type": "string",
"description": "Which list to return."
},
"locale": {
"enum": [
"en",
"tr",
"ar",
"ja",
"ru",
"pt",
"es",
"de",
"fr",
"it",
"nl",
"pl",
"zh",
"ko",
"hi",
"el"
],
"type": "string",
"description": "Language for country, genre and language names (ISO 639-1). Default: en."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| slug* | string | Station slug from search_stations. |
| limit | integer | How many songs to return (1-50). |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "Station slug from search_stations."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "How many songs to return (1-50)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| mood | string | Mood slug, e.g. "chill". list_categories(kind=moods) gives the valid ones. |
| genre | string | Genre slug, e.g. "jazz". list_categories(kind=genres) gives the valid ones. |
| limit | integer | How many stations to return (1-20). |
| query | string | Station name or part of it, e.g. "BBC Radio 1" or "kexp". |
| locale | string | Language for country, genre and language names (ISO 639-1). Default: en. |
| country | string | ISO 3166-1 alpha-2 country code, e.g. "JP". |
| language | string | Broadcast language, ISO 639-1, e.g. "es". |
{
"type": "object",
"properties": {
"mood": {
"type": "string",
"maxLength": 32,
"description": "Mood slug, e.g. \"chill\". list_categories(kind=moods) gives the valid ones."
},
"genre": {
"type": "string",
"maxLength": 32,
"description": "Genre slug, e.g. \"jazz\". list_categories(kind=genres) gives the valid ones."
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 20,
"minimum": 1,
"description": "How many stations to return (1-20)."
},
"query": {
"type": "string",
"maxLength": 100,
"description": "Station name or part of it, e.g. \"BBC Radio 1\" or \"kexp\"."
},
"locale": {
"enum": [
"en",
"tr",
"ar",
"ja",
"ru",
"pt",
"es",
"de",
"fr",
"it",
"nl",
"pl",
"zh",
"ko",
"hi",
"el"
],
"type": "string",
"description": "Language for country, genre and language names (ISO 639-1). Default: en."
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "ISO 3166-1 alpha-2 country code, e.g. \"JP\"."
},
"language": {
"type": "string",
"pattern": "^[a-z]{2}$",
"description": "Broadcast language, ISO 639-1, e.g. \"es\"."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| date | string | Day in the station's time zone, YYYY-MM-DD. Default: today. |
| slug* | string | Station slug from search_stations. |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"description": "Day in the station's time zone, YYYY-MM-DD. Default: today."
},
"slug": {
"type": "string",
"description": "Station slug from search_stations."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 13, 2026.