mcpField
P
Philips TV (JointSpace + ADB)

Philips TV (JointSpace + ADB)

本地服务
github.com游戏娱乐02 周前更新

关于 Philips TV (JointSpace + ADB)

面向家庭娱乐自动化的 Philips Android TV 控制服务,结合 JointSpace 与 ADB,支持电源、Ambilight、应用、输入源及 YouTube 播放控制。

主要功能

  1. 01控制电源、屏幕和音量
  2. 02设置 Ambilight 模式与颜色
  3. 03查看和启动电视应用
  4. 04播放指定 YouTube 视频
  5. 05读取电视状态和当前应用
  6. 06切换输入源并发送遥控按键

适用场景

  1. 01通过 AI 客户端调整电视设置
  2. 02启动指定的 YouTube 视频
  3. 03执行控制前检查电视状态

MCP 相关

向 MCP 客户端提供电视控制工具,包括电源、音量、Ambilight、应用启动、YouTube 播放、状态查询和遥控按键输入。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"amineutron-pylips": {
"command": "uvx",
"args": [
"pylips-mcp"
],
"env": {
"TV_HOST": "<TV_HOST>",
"TV_USER": "<TV_USER>",
"TV_PASS": "<TV_PASS>",
"DENON_HOST": "<DENON_HOST>",
"DENON_PORT": "<DENON_PORT>",
"PYLIPS_TLS_FINGERPRINT": "<PYLIPS_TLS_FINGERPRINT>"
}
}
}
}
启动命令uvx pylips-mcp
需要配置的环境变量
TV_HOSTIP address of the Philips TV
TV_USERJointSpace pairing username (from pylips pairing)
TV_PASS密钥JointSpace pairing password
DENON_HOSTOptional Denon AVR IP: volume and mute are redirected to the amplifier (HDMI ARC)
DENON_PORTDenon telnet port
PYLIPS_TLS_FINGERPRINTOptional SHA-256 fingerprint to pin the TV certificate

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypipylips-mcp0.4.0

工具

17

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

pylips-mcp

tests License: MIT Python 3.10+

用于通过 JointSpace API 和 ADB 控制 Philips Android TV 的 MCP 服务。

提供 14 个工具,涵盖电源、音量、Ambilight、应用启动和 YouTube 播放。 可透明处理 TP Vision SHA1 证书链。

演示

MCP 客户端:16 个工具,然后在真实电视上调用 get_state

使用真实电视录制,录制脚本为 docs/demo/record.sh:一个最简 MCP 客户端(docs/demo/mcp_demo.py)通过 stdio 启动服务,并从环境变量读取 TV_HOST/TV_USER/TV_PASS,列出工具并调用 get_state(只读)。凭据不会出现在屏幕上。

工具

工具作用
power_on打开 Philips 电视
power_off关闭 Philips 电视(待机)
screen_off关闭电视屏幕,同时保持声音播放(音乐模式)。注意:主要适用于 HDMI/TV 信号源,在 Android 模式下支持有限。
screen_on在执行 screen_off 后重新打开电视屏幕
volume_up调高电视音量(默认 +5)
volume_down调低电视音量(默认 -5)
volume_set将音量调到指定级别
mute开启或关闭电视声音
ambilight_on开启电视的 Ambilight
ambilight_off关闭电视的 Ambilight
ambilight_mode更改 Ambilight 模式
ambilight_color将 Ambilight 设为固定颜色(RGB 0-255),亮度可选
list_apps列出电视上可用的应用
launch_app在电视上启动应用
youtube_video在 YouTube 上播放指定视频(YouTube URL 或视频 ID)
get_state返回电视当前状态:powerstate(On/Standby)、音量、muted、ambilight_on、ambilight_mode
current_app返回电视当前显示的内容:kind(app、input = HDMI 或天线输入、home、other)、app(供 launch_app 使用的名称)和 package
set_source将电视切换到 HDMI 输入(hdmi1 至 hdmi4),或返回主菜单(home)
send_key发送遥控器按键
YouTube ID 提取

extract_video_id 有意与 catt-mcp 中的实现重复(cast_youtube,支持 Chromecast 起始位置和双屏同步)。两个服务均可独立安装;每个服务都使用同一组测试用例测试自己的副本(tests/test_youtube_id.py)。此决定记录于 2026-09-20。

要求

  • Python 3.10+
  • JointSpace 凭据(用户名和密码),通过与电视进行一次性配对获取(参见 Setup);服务本身直接与电视 API 通信,运行时不需要 pylips
  • 启用了 JointSpace API 的 Philips Android TV(2016 年及之后的型号)
  • 电视上启用了 ADB(用于 YouTube 深层链接)
  • wakeonlan Python 包(可选,用于 Wake-on-LAN)

一行安装

uvx pylips-mcp                 # depuis PyPI ; avant publication : uvx --from git+https://github.com/amineutron/pylips-mcp pylips-mcp

Claude Desktop / Claude Code 配置(mcpServers):

{ "pylips": { "command": "uvx", "args": ["pylips-mcp"], "env": { "TV_HOST": "192.0.2.10", "TV_USER": "...", "TV_PASS": "..." } } }

设置

1. 与电视配对

只需配对一次,即可获取 JointSpace 用户名和密码。克隆该仓库后,使用 eslavnov/pylips 的配对工具 (PyPI 上的 pylips 包是无关项目:请勿执行 pip install pylips), 并按照其 README 操作,输入电视的 IP。之后 pylips-mcp 不再需要 pylips。

请妥善保存配对时获取的用户名和密码:在步骤 3 中将它们填入 config.yaml,或设置为 TV_USER / TV_PASS。

2. 安装依赖
pip install pylips-mcp        # or: uvx pylips-mcp
3. 配置

将 config.example.yaml 复制为 config.yaml,并填入电视凭据:

tv:
  host: "192.168.0.XX"
  user: "your_user"
  pass: "your_password"

4. 运行
pylips-mcp                    # installed (pip, uvx) ; `pylips-mcp --help` lists the settings
python -m pylips_mcp          # same thing, from any environment where the package is installed
python server.py              # from a clone, without installing (thin launcher, code in pylips_mcp/)

或者通过环境变量设置:

TV_HOST=192.168.0.XX TV_USER=xxx TV_PASS=xxx pylips-mcp

代码位于 pylips_mcp 包中(包含 TP Vision 证书),因此可以与其他 MCP 服务一起安装,而不会发生模块名称冲突。

Claude Desktop 配置

{
  "mcpServers": {
    "philips-tv": {
      "command": "python3",
      "args": ["/path/to/pylips-mcp/server.py"],
      "env": {
        "TV_HOST": "192.168.0.XX",
        "TV_USER": "your_user",
        "TV_PASS": "your_password"
      }
    }
  }
}

SSL 说明

Philips 电视提供一条由 SHA1 签名、颁发于 2015 年的 TP Vision 证书链。 现代 OpenSSL 和 Fedora/RHEL 加密策略会拒绝 SHA1 签名,因此无法进行常规 CA 验证,即使使用捆绑的证书链和 SECLEVEL=0 也不行。

本服务采取的替代方案如下,如实说明:

  • 禁用 CA 验证(因为验证无法成功);
  • 电视提供的证书的 SHA-256 指纹必须与 tpvision_ca.pem 中附带的叶证书匹配(在 TLS 握手后由 urllib3 检查,因此中间人无法在没有私钥的情况下冒充电视)。已在一台真实的 55OLED705 电视上验证(JointSpace 6,端口 1926);
  • PYLIPS_TLS_FINGERPRINT=<sha256 hex> 可固定另一台电视的指纹,PYLIPS_TLS_PIN=0 可禁用固定并记录警告。

tpvision_ca.pem 是公开的 TP Vision 证书链(叶证书 restfultv.tpvision.com,中间证书 ca.tpvision.com,根证书 www.tpvision.com,有效期至 2042 年),使用 openssl s_client -showcerts 从电视中提取。它不包含任何秘密。

许可证

MIT

HDMI ARC 音量

当电视通过 HDMI ARC 连接到功放时,声音不会从电视输出: 调节电视音量不会产生可听到的效果。如果配置中填写了 denon.host, 则 volume_up、volume_down、volume_set 和 mute 会重定向到 Denon 功放;否则会通过电视 API 控制音量。

要直接控制功放(输入、关机、状态),请使用 denon-mcp。

Lyra 生态系统的一部分

仓库作用
lyra默认在本地运行的语音 DevOps 助手(AGPL-3.0)
fedora-agentsMCP:KVM 虚拟机和备份
mcp-trackingMCP + API + 长时间运行任务的仪表板
neutroncorehomelab 的 PWA 中枢
hue-mcpPhilips Hue MCP(分叉自 ThomasRohde/hue-mcp)
pylips-mcpPhilips 电视 MCP
denon-mcpDenon 功放 MCP
catt-mcpChromecast 和 DLNA MCP

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。