无线电浏览器MCP
一种现代的模型上下文协议(MCP)服务器,提供对无线电浏览器API的访问,并使用VLC直接流式传输互联网无线电台。
特性
🔧 无线电发现工具
get_radio_stats():数据库统计(站点、国家、标签)。search_stations_by_country_code(country_code):按ISO代码发现(例如“US”、“GB”)。search_stations_by_station_name(name):模糊搜索特定电台。search_stations_by_tag(tag):按流派或标签搜索电台(例如,“chillout”、“jazz”、“rock”)。get_available_tags([limit], [order]):获取可用标签的全局列表(按站数或名称排序)。search_global_top_voted_stations(limit):从API获取全球投票最多的电台。search_global_top_clicked_stations(limit):从API获取全球点击量最大的电台。get_available_servers():API服务器发现和故障转移信息。
- 搜索响应在本地缓存,以改进个人标签分析。
⭐ 收藏夹和个人历史
add_favorite_station(url, [name], [stationuuid]):将电台添加到您的个人收藏夹列表中。remove_favorite_station(url):从收藏夹中删除电台。get_favorite_stations():列出所有已保存的收藏夹电台。get_my_recent_stations([limit]):查看您最近播放的电台。get_my_top_stations([limit]):查看按总收听时间排序的个人热门电台。get_my_top_tags([limit]):根据收听的电台和缓存的电台元数据查看您的个人热门标签。
🎵 播放和控制工具
play_radio_station(url, [name], [stationuuid]):将任何广播URL直接流式传输到您的系统扬声器。支持播放列表分辨率(.m3u,.pls)。stop_radio():立即终止播放。get_radio_status():返回当前电台、URL、, 正在播放 跟踪元数据和Windows媒体桥状态。get_windows_media_bridge_status():MCP->SMTC主机通信的详细诊断(/health+/debug/state).set_radio_volume(volume):调节音量(0-100)。get_radio_volume():检索当前音量水平。Automatic Reconnection:对于不稳定的流,平滑播放,指数回退(可配置)。
- 在Windows上,播放可以委托给 Radio-Browser-SMTC-Host 媒体播放器。如果不可用,则自动使用VLC回退。
______________________________________________________________________
🛠️ 需求
- VLC 媒体播放器:必须安装在您的系统上。
- Python 3.10+
- 可选(Windows媒体弹出集成):运行伴侣主机在
Radio-Browser-SMTC-Host.
🚀 快速开始
服务器已针对以下方面进行了优化 紫外线。您甚至可以在不克隆存储库或管理虚拟环境的情况下运行它。
使用 uvx
uvx --from git+https://github.com/Filyus/Radio-Browser-MCP radio-browser-mcp本地开发
如果您在本地有源代码,可以使用以下命令运行:
uvx --from . radio-browser-mcp______________________________________________________________________
⚙️ 配置
服务器支持多个环境变量来调整重新连接、监听跟踪和Windows媒体会话行为:
| 变量 | 默认值 | 描述 |
|---|---|---|
RADIO_INITIAL_RECONNECT_DELAY | 0.1 | 重新连接尝试的启动延迟(秒)。 |
RADIO_MAX_RECONNECT_DELAY | 30.0 | 指数回退的最大上限延迟(秒)。 |
RADIO_RECONNECT_BACKOFF_THRESHOLD | 5.0 | 检测不稳定流并触发回退的窗口(秒)。 |
RADIO_ENABLE_BACKGROUND_TRACKING | true | 启用监听SQLite持续时间的定期后台提交。 |
RADIO_TRACKING_INTERVAL | 60.0 | 后台持续时间跟踪提交之间的间隔(秒)。 |
RADIO_MAX_PLAYLIST_BYTES | 262144 | 解析时要读取的最大字节数 .m3u/.pls 播放列表。 |
RADIO_ENABLE_WINDOWS_SMTC_HOST | false | 通过HTTP将SMTC更新发送到外部桌面主机(选择加入)。 |
RADIO_ENABLE_WINDOWS_SMTC_HOST_PLAYER | false | 更喜欢通过桌面SMTC主机播放(/player/*)在VLC回退(选择加入)之前。 |
RADIO_WINDOWS_SMTC_HOST_UPDATE_URL | http://127.0.0.1:8765/smtc/update | 更新C#SMTC主机的终结点。 |
RADIO_WINDOWS_SMTC_HOST_TIMEOUT | 0.6 | 主机更新的HTTP超时(秒)。 |
Windows SMTC+MSIX
有关完整的Windows设置(主机播放器模式、MSIX打包、证书/安装、故障排除),请参阅:
⚙️ MCP配置
根据您安装服务器的方式,将以下配置之一添加到MCP客户端(如Claude Desktop或 mcp_config.json 反重力AI)。
选项1:远程执行(通过 uvx)
如果您不想手动克隆存储库,这是推荐的方法。它自动获取代码和依赖关系。
{
"mcpServers": {
"radio-browser": {
"command": "uvx",
"args": [
"--from", "git+https://github.com/Filyus/Radio-Browser-MCP",
"radio-browser-mcp"
],
"env": {
"RADIO_INITIAL_RECONNECT_DELAY": "0.1",
"RADIO_ENABLE_BACKGROUND_TRACKING": "true",
"RADIO_TRACKING_INTERVAL": "60.0"
}
}
}
}选项2:本地执行(通过 uv run / python)
如果您已在本地克隆了存储库(例如,用于Antigravity AI或主动开发),请将配置指向您的本地脚本路径。使用 uv run 确保自动管理所有依赖关系。
{
"mcpServers": {
"radio-browser": {
"command": "uv",
"args": [
"run",
"C:\\MCP-Servers\\Radio-Browser-MCP\\server.py"
],
"env": {
"RADIO_INITIAL_RECONNECT_DELAY": "0.1",
"RADIO_ENABLE_BACKGROUND_TRACKING": "true",
"RADIO_TRACKING_INTERVAL": "60.0"
}
}
}
}*(注:您可以替换 "uv", "run" 随着 "python" 如果您通过手动安装了依赖项 pip 进入你的活跃环境。)*
______________________________________________________________________
📁 文件结构
server.py:带有回放事件挂钩和历史路由的FastMCP服务器。app.py:无线电浏览器API客户端和播放列表解析程序。db.py:SQLite数据库跟踪收藏夹、播放指标和缓存的电台元数据(radio_browser.db).pyproject.toml:现代Python项目定义。example_usage.py:演示脚本。
🛡️ 关键技术
- VLC(python VLC):用于高兼容性音频流(HTTPS/HLS/ICY)。
- FastMCP:用于工具注册的高级MCP框架。
- 拉夫:确保干净、现代化的代码库。
⚖️ 许可证
这个项目是开源的。由免费提供动力 无线电浏览器API.
