遥控电视
一个MCP服务器,让AI代理控制Android电视——在流媒体服务中搜索内容并播放,管理电源和音量,发送远程控制命令,所有这些都是通过ADB完成的。
说“玩怪奇物语”,它会在Netflix上找到它,启动深度链接,导航个人资料选择器,并开始播放。没有手动搜索,没有菜单,没有遥控器。
运作原理
- 你让你的AI代理玩点什么
- 服务器搜索 JustWatch 找到哪些流媒体服务有它,并获取Android TV深度链接
- 它向您的电视发送ADB命令:如果需要,强制停止应用程序,启动深度链接,检测配置文件选择器,并选择您的配置文件
- 内容播放。结果在本地缓存,因此重复请求是即时的。
对于音乐,它搜索Spotify API以找到确切的曲目和艺术家,然后打开Spotify进行有针对性的搜索,播放正确的歌曲,并自动排队播放类似的音乐。
它能做什么?
- 《玩怪奇物语》 --在Netflix上找到它,使用深度链接启动,选择您的个人资料
- “在Disney+上玩冰雪奇缘” --直接打开电影
- “演奏波西米亚狂想曲” --在Spotify上查找歌曲,播放它,排队播放类似的音乐
- “男孩们有什么服务?” --显示它在Prime Video、Apple TV等上播放。
- “暂停” / “下一集” / “倒退” --远程控制命令
- “关掉电视” / “打开电视” --LAN唤醒的电源控制
- “音量增大” / “静音” --音量控制
- “打开YouTube” --启动任何已安装的应用程序
- “在Bob个人资料中扮演男孩” --选择特定的流媒体配置文件
支持的设备
任何正在运行的设备 安卓电视 或 谷歌电视:
- 电视品牌: 飞利浦、索尼、TCL、海信、夏普等安卓电视厂商
- 流媒体设备: NVIDIA Shield、小米Mi Box、配备谷歌电视的Chromecast
- 亚马逊消防电视 (部分——ADB工作,一些深度链接格式可能不同)
在电视上启用ADB
首先,您需要在电视上启用ADB(Android调试桥)。这是一次性设置:
- 首选 设置 > 设备首选项 > 关于
- 轻按 内部版本号 7次——你会看到“你现在是一名开发人员”
- 回去吧-- 开发者选项 现在出现在“设备首选项”下
- 启用 USB调试 (有些电视称之为“网络调试”)
- 重新启动电视
- 当您首次通过ADB连接时,电视将显示“允许USB调试吗?”-- 接受它 并勾选“始终允许使用此计算机”
确切的菜单路径可能因制造商而异。在某些电视上,它是“设置”>“关于”>“内部版本号”。如果上述内容不匹配,请搜索“\[您的电视品牌\]启用开发者选项”。
先决条件
- Node.js 18+
- 安卓调试桥 安装在您的计算机上:
- macOS: brew install android-platform-tools - Ubuntu/Debian: sudo apt install adb - 窗户: 下载平台工具
- Spotify开发者应用 (可选-仅用于音乐搜索)
安装
npm install -g remote-control-tv设置
remote-control-tv setup向导将连接到您的电视,测试连接,并将配置保存到 ~/.remote-control-tv/config.json.
添加到您的AI代理
Claude Code
添加 ~/.claude/settings.json:
{
"mcpServers": {
"tv": {
"command": "remote-control-tv"
}
}
}或者不进行全局安装:
{
"mcpServers": {
"tv": {
"command": "npx",
"args": ["-y", "remote-control-tv"]
}
}
}VS Code / Cursor
添加 .vscode/mcp.json 在您的工作区或用户设置中:
{
"servers": {
"tv": {
"command": "remote-control-tv"
}
}
}Any MCP-compatible client
服务器使用 stdio传输.快跑 remote-control-tv 作为子进程,通过JSON-RPC在stdin/stdout上进行通信。
工具
| 工具 | 说明 | 关键参数 |
|---|---|---|
| tv_play | 搜索内容并播放。自动处理深度链接、应用强制停止和配置文件选择。 | title (必填), service, profile, music |
| tv_search | 在不播放的情况下搜索内容。返回可用服务和深度链接。 | title (必填), type (视频/音乐) |
| tv_电源 | 打开、关闭、切换或检查状态。支持处于深度待机状态的电视的LAN唤醒。 | action (必填:开/关/切换/状态) |
| tv_体积 | 调高/调低音量、静音/取消静音或设置为某个级别。 | action (必填:向上/向下/静音/取消静音/设置), steps, level |
| tv_key | 发送任何遥控器按键。 | key (必填), count, delay |
| tv_app | 按名称启动应用程序。 | app (必填) |
支持的应用程序
youtube, netflix, disney, prime, spotify, jellyfin, hbo, skyshowtime, youtube_music, youtube_kids
可以通过配置添加自定义应用程序。
支持的密钥
| 类别 | 密钥 |
|---|---|
| 导航 | up, down, left, right, center/ok, back, home, enter |
| 播放 | play, pause, play_pause, stop, next, previous, fast_forward, rewind |
| 音量 | volume_up, volume_down, mute |
| 电源 | power, sleep, wakeup |
| 系统 | search, settings, tv_input |
配置文件设置
Netflix、Disney+和Prime Video等流媒体应用程序会显示“谁在看?”个人资料选择器。运行配置文件向导进行配置:
remote-control-tv profiles该向导检测安装了哪些应用程序,直接从电视自动读取Disney+配置文件,并交互式地引导您浏览Netflix和Prime Video。无需手动编辑配置。
Spotify设置(可选)
对于音乐搜索,创建一个免费的Spotify开发者应用程序:
- 首选 developer.spotify.com/dashboard
- 创建应用程序(重定向URI:
https://localhost,选择Web API) - 添加
clientId和clientSecret到您的配置
在没有配置Spotify的情况下, tv_play 和 music: true 将返回错误。没有它,所有其他工具都能工作。
多台电视
向中添加多个条目 tvs 配置中的数组。通过 tv 工具调用中的参数来选择哪一个。如果省略,则使用 defaultTv 或者列表中的第一台电视。
已知怪癖
- 网飞 已运行时忽略深层链接。服务器强制在每次启动前停止它。
- 网飞 有时会完全跳过配置文件选择器。服务器检测到这一点,并避免发送会干扰播放的不必要按键。
- Spotify电视应用程序 只响应
spotify:search:URI(不是spotify:track:或spotify:artist:).服务器通过使用Spotify API来识别准确的艺术家和曲目名称,然后构建精确的搜索查询。 - Prime Video 使用自定义渲染器。配置文件检测用途
logcat监控而不是UI检查。 - 深度待机 将电视完全从网络上删除。配置
macLAN唤醒字段,或在电视设置中启用“网络待机”。
调试
使用测试您的服务器 MCP检查员:
npx @modelcontextprotocol/inspector remote-control-tv检查ADB连接:
adb connect :5555
adb -s :5555 shell echo ok贡献
欢迎捐款。一些需要帮助的领域:
- 应用程序特定的深度链接测试 --验证不同电视品牌和Android版本的深度链接格式
- 轮廓检测 --提高更多流媒体服务(HBO Max、SkyShowtime等)的检测可靠性
- 消防电视支持 --测试并记录亚马逊Fire TV设备的差异
- 其他流媒体服务 --添加应用注册表项和深度链接模式
许可证
麻省理工学院
