Android TV远程控制服务

一个通过ADB让AI代理控制Android TV的MCP服务器,支持跨流媒体搜索内容并播放、管理电源和音量、发送遥控命令等功能。

  • by Hustawek
  • TypeScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 Hustawek/remote-control-tv

使用说明

遥控电视

一个MCP服务器,让AI代理控制Android电视——在流媒体服务中搜索内容并播放,管理电源和音量,发送远程控制命令,所有这些都是通过ADB完成的。

说“玩怪奇物语”,它会在Netflix上找到它,启动深度链接,导航个人资料选择器,并开始播放。没有手动搜索,没有菜单,没有遥控器。

运作原理

  1. 你让你的AI代理玩点什么
  2. 服务器搜索 JustWatch 找到哪些流媒体服务有它,并获取Android TV深度链接
  3. 它向您的电视发送ADB命令:如果需要,强制停止应用程序,启动深度链接,检测配置文件选择器,并选择您的配置文件
  4. 内容播放。结果在本地缓存,因此重复请求是即时的。

对于音乐,它搜索Spotify API以找到确切的曲目和艺术家,然后打开Spotify进行有针对性的搜索,播放正确的歌曲,并自动排队播放类似的音乐。

它能做什么?

  • 《玩怪奇物语》 --在Netflix上找到它,使用深度链接启动,选择您的个人资料
  • “在Disney+上玩冰雪奇缘” --直接打开电影
  • “演奏波西米亚狂想曲” --在Spotify上查找歌曲,播放它,排队播放类似的音乐
  • “男孩们有什么服务?” --显示它在Prime Video、Apple TV等上播放。
  • “暂停” / “下一集” / “倒退” --远程控制命令
  • “关掉电视” / “打开电视” --LAN唤醒的电源控制
  • “音量增大” / “静音” --音量控制
  • “打开YouTube” --启动任何已安装的应用程序
  • “在Bob个人资料中扮演男孩” --选择特定的流媒体配置文件

支持的设备

任何正在运行的设备 安卓电视 或 谷歌电视:

  • 电视品牌: 飞利浦、索尼、TCL、海信、夏普等安卓电视厂商
  • 流媒体设备: NVIDIA Shield、小米Mi Box、配备谷歌电视的Chromecast
  • 亚马逊消防电视 (部分——ADB工作,一些深度链接格式可能不同)

在电视上启用ADB

首先,您需要在电视上启用ADB(Android调试桥)。这是一次性设置:

  1. 首选 设置 > 设备首选项 > 关于
  2. 轻按 内部版本号 7次——你会看到“你现在是一名开发人员”
  3. 回去吧-- 开发者选项 现在出现在“设备首选项”下
  4. 启用 USB调试 (有些电视称之为“网络调试”)
  5. 重新启动电视
  6. 当您首次通过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开发者应用程序:

  1. 首选 developer.spotify.com/dashboard
  2. 创建应用程序(重定向URI: https://localhost,选择Web API)
  3. 添加 clientId 和 clientSecret 到您的配置

在没有配置Spotify的情况下, tv_play 和 music: true 将返回错误。没有它,所有其他工具都能工作。

多台电视

向中添加多个条目 tvs 配置中的数组。通过 tv 工具调用中的参数来选择哪一个。如果省略,则使用 defaultTv 或者列表中的第一台电视。

已知怪癖

  • 网飞 已运行时忽略深层链接。服务器强制在每次启动前停止它。
  • 网飞 有时会完全跳过配置文件选择器。服务器检测到这一点,并避免发送会干扰播放的不必要按键。
  • Spotify电视应用程序 只响应 spotify:search: URI(不是 spotify:track: 或 spotify:artist:).服务器通过使用Spotify API来识别准确的艺术家和曲目名称,然后构建精确的搜索查询。
  • Prime Video 使用自定义渲染器。配置文件检测用途 logcat 监控而不是UI检查。
  • 深度待机 将电视完全从网络上删除。配置 mac LAN唤醒字段,或在电视设置中启用“网络待机”。

调试

使用测试您的服务器 MCP检查员:

npx @modelcontextprotocol/inspector remote-control-tv

检查ADB连接:

adb connect <TV_IP>:5555
adb -s <TV_IP>:5555 shell echo ok

贡献

欢迎捐款。一些需要帮助的领域:

  • 应用程序特定的深度链接测试 --验证不同电视品牌和Android版本的深度链接格式
  • 轮廓检测 --提高更多流媒体服务(HBO Max、SkyShowtime等)的检测可靠性
  • 消防电视支持 --测试并记录亚马逊Fire TV设备的差异
  • 其他流媒体服务 --添加应用注册表项和深度链接模式

许可证

麻省理工学院