Bizzy Radio
Find Bizzy radio stations, read station cards and public author information. Read-only; no playback.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"radio": {
"url": "https://bizzy.fm/mcp"
}
}
}Remote endpoints
https://bizzy.fm/mcpstreamable-httpWhat it can do
Tool inventory
Tools (3)
🟢find_stations(query, limit, offset)
Find stations in Bizzy's full backend catalog by name or location, including unavailable stations. Empty query lists all. ID-sorted, bounded pagination; follow next_offset until null.
Input Schema
{
"type": "object",
"properties": {
"query": {
"default": "",
"description": "Case-insensitive substring of station name or location. Empty lists all stations.",
"type": "string",
"maxLength": 120
},
"limit": {
"default": 20,
"description": "Maximum number of results, from 1 to 50.",
"type": "integer",
"minimum": 1,
"maximum": 50
},
"offset": {
"default": 0,
"description": "Number of matching stations to skip; results are sorted by ID.",
"type": "integer",
"minimum": 0,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"stations": {
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Station UUID from the Bizzy catalog. Never invent an ID."
},
"name": {
"type": "string",
"description": "Station name as supplied by the backend."
},
"location": {
"type": "string",
"description": "Backend location, or an empty string if unspecified."
},
"listen_url": {
"type": "string",
"format": "uri",
"description": "Canonical Bizzy listening page to share with a person; not a raw audio stream."
},
"availability": {
"type": "string",
"enum": [
"available",
"unavailable",
"unknown"
],
"description": "Backend health flag, not a live playback guarantee."
}
},
"required": [
"id",
"name",
"location",
"listen_url",
"availability"
],
"additionalProperties": false
}
},
"total": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "Number of matches in the full backend catalog, including unavailable stations."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"next_offset": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
],
"description": "Next page offset, or null at the end. Catalog changes can move results between pages."
}
},
"required": [
"stations",
"total",
"limit",
"offset",
"next_offset"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_station(id)
Get a Bizzy station by a real catalog UUID. Returns the listening page, not an audio stream. Does not start playback.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Station UUID from the Bizzy catalog. Never invent an ID."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
"description": "Station UUID from the Bizzy catalog. Never invent an ID."
},
"name": {
"type": "string",
"description": "Station name as supplied by the backend."
},
"location": {
"type": "string",
"description": "Backend location, or an empty string if unspecified."
},
"listen_url": {
"type": "string",
"format": "uri",
"description": "Canonical Bizzy listening page to share with a person; not a raw audio stream."
},
"availability": {
"type": "string",
"enum": [
"available",
"unavailable",
"unknown"
],
"description": "Backend health flag, not a live playback guarantee."
}
},
"required": [
"id",
"name",
"location",
"listen_url",
"availability"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_bizzy_info
Read the Bizzy authors and Misha Naer's public contact channels. No authentication required.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"const": "Bizzy"
},
"url": {
"type": "string",
"format": "uri"
},
"authors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
}
},
"required": [
"name"
],
"additionalProperties": false
}
},
"contact": {
"type": "object",
"properties": {
"author": {
"type": "string"
},
"email": {
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"telegram": {
"type": "string",
"format": "uri"
},
"x": {
"type": "string",
"format": "uri"
},
"linkedin": {
"type": "string",
"format": "uri"
}
},
"required": [
"author",
"email",
"telegram",
"x",
"linkedin"
],
"additionalProperties": false
}
},
"required": [
"name",
"url",
"authors",
"contact"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Community
Evidence