关于 Chromecast / DLNA casting (catt)
这款 MCP 服务通过 catt 将 YouTube 视频及其他媒体投放到 Chromecast 或 DLNA 设备,并提供播放控制和设备发现。具备所需组件时,还可同步 Firefox 与电视的播放。
主要功能
- 01投放 YouTube 视频和媒体网址
- 02控制播放、音量和进度
- 03发现 Chromecast 和 DLNA 设备
- 04投放 Firefox 当前标签页
- 05同步电脑与电视的播放
适用场景
- 01在电视上播放 YouTube 视频
- 02暂停、跳转或调整投放音量
- 03查找本地网络中的投放设备
- 04将 Firefox 视频播放镜像到电视
MCP 相关
向 MCP 客户端提供 15 个投放、播放控制、同步和设备发现工具。通过 stdio 运行。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx catt-mcpCATT_DEVICEName or IP of the default Chromecast / DLNA deviceTV_HOSTOptional Android TV IP, used to wake the screen over ADB before castingADB_PATHPath to the adb binary if not on PATH本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
10收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| url | string | 是 | YouTube URL(youtube.com/watch?v=xxx、youtu.be/xxx)或视频 ID |
详细介绍
catt-mcp
通过 catt 将 YouTube 视频和媒体投放到 Chromecast/DLNA 设备的 MCP 服务。
提供 15 个工具,涵盖 YouTube 投放、播放控制、双屏同步和设备发现。
演示

演示是在真实网络中使用 docs/demo/record.sh 录制的:一个精简的 MCP 客户端(docs/demo/mcp_demo.py)通过标准输入/输出启动服务,并在环境中设置 CATT_DEVICE,列出工具并调用 cast_scan(只读)。私有 IP 地址已替换为文档示例地址。
工具
| 工具 | 作用 |
|---|---|
cast_youtube | 将 YouTube 视频投放到电视(URL 或视频 ID) |
cast_url | 将任意 URL(视频、音频、流)投放到电视 |
cast_stop | 停止电视上正在进行的投放 |
cast_pause | 暂停正在进行的投放 |
cast_resume | 恢复投放播放 |
cast_volume | 调节投放音量(0-100) |
cast_seek | 在视频中快进或快退 |
cast_status | 返回当前投放状态 |
cast_scan | 扫描网络上可用的 Chromecast/DLNA 设备 |
cast_info | 返回当前媒体的详细信息 |
cast_browser | 将 Firefox 当前活动标签页中的视频投放到电视(YouTube、Twitch 等) |
cast_browser_dual | 同时在电脑(Firefox)和电视上播放视频并同步(适用于 LightBeat) |
cast_dual_resync | 在 Firefox 视频位置重新启动电视,以重新同步电脑和电视 |
cast_dual_stop | 停止双路投放和同步监控程序 |
cast_dual_offset | 调整电视延迟(正值=电视领先,负值=电视落后) |
YouTube ID 提取
_extract_video_id(支持 URL watch?v=、youtu.be/、shorts/ 或 11 个字符的裸 ID;其他任何内容都会在到达 catt/ADB 之前被拒绝)特意与 pylips-mcp(youtube_video,使用 Premium 账号的电视应用)中的实现保持重复。两个服务都可以独立安装;每个服务都会使用相同的用例表测试各自的副本(tests/test_youtube_id.py)。决策记录于 2026-09-20。
要求
- Python 3.10+
- catt:
pip install catt - yt-dlp:
pip install yt-dlp - 同一网络上的 Chromecast 或兼容 DLNA 的设备
lz4(可选,用于缓存压缩):pip install lz4
双路投放(Linux + Hyprland)
cast_browser、cast_browser_dual、cast_dual_resync、cast_dual_stop 和
cast_dual_offset 会通过正在运行的桌面会话控制 Firefox。只有在具备所需
二进制文件时,才会提供这些工具:
- Hyprland 和
PATH中的hyprctl - 用于 MPRIS 播放控制的
playerctl - 正在播放待镜像视频的 Firefox
- 用于读取 Firefox 会话缓存的
lz4(Python 包)
如果缺少这些依赖,服务仍会正常启动,只是不提供这五个 工具,而不是等到调用时才失败。
一行安装
uvx catt-mcp # depuis PyPI ; avant publication : uvx --from git+https://github.com/amineutron/catt-mcp catt-mcp
Claude Desktop / Claude Code 配置(mcpServers):
{ "catt": { "command": "uvx", "args": ["catt-mcp"], "env": { "CATT_DEVICE": "Living Room TV" } } }
设置
1. 安装依赖
pip install mcp catt yt-dlp
2. 发现设备
catt scan
记下设备名称(例如 55OLED705/12、客厅电视)。
3. 配置
将 config.example.yaml 复制为 config.yaml:
catt:
device: "55OLED705/12" # Name from catt scan
4. 运行
catt-mcp # installed (pip, uvx) ; `catt-mcp --help` lists the settings
python -m catt_mcp # same thing, from any environment where the package is installed
python server.py # from a clone, without installing (thin launcher, code in catt_mcp/)
或使用环境变量:
CATT_DEVICE="55OLED705/12" catt-mcp
代码位于 catt_mcp 包中(catt_mcp/server.py、catt_mcp/sync_watcher.py),
因此可以与其他 MCP 服务一起安装,不会发生模块名称冲突。
双屏工具(dual_cast、dual_resync、dual_offset)通过
ADB 控制电视,需要电视的 IP 地址。使用 TV_HOST(或 config.yaml 中的
tv.host)进行设置,例如 TV_HOST="192.0.2.10";内置默认值只是一个占位符。
Claude 桌面应用配置
{
"mcpServers": {
"catt": {
"command": "python3",
"args": ["/path/to/catt-mcp/server.py"],
"env": {
"CATT_DEVICE": "55OLED705/12"
}
}
}
}
许可证
MIT
Lyra 生态系统的一部分
| 仓库 | 角色 |
|---|---|
| lyra | 默认在本地运行的语音 DevOps 助手(AGPL-3.0) |
| fedora-agents | MCP:KVM 虚拟机和备份 |
| mcp-tracking | MCP + API + 长时间运行任务的仪表板 |
| neutroncore | homelab 的 PWA 中心 |
| hue-mcp | Philips Hue MCP(分支自 ThomasRohde/hue-mcp) |
| pylips-mcp | Philips 电视 MCP |
| denon-mcp | Denon 功放 MCP |
| catt-mcp | Chromecast 和 DLNA MCP |
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。