Stremio MCP服务器
MCP(模型上下文协议)服务器,允许您使用语音命令或文本提示在Android电视上控制Stremio。搜索电影和电视节目,然后在您的Android电视上立即播放!
特性
回放控制
- 搜索内容:按标题查找电影和电视节目(通过TMDB)
- 播放电影:立即在您的Android TV上播放电影
- 播放电视节目:播放电视节目的特定剧集
- 一个命令回放:在单个命令中搜索和播放
- 深度链接集成:使用Stremio的原生深度链接实现无缝播放
图书馆访问(可选)
- 浏览您的图书馆:查看Stremio库中的所有电影和电视节目
- 继续观看:查看您当前正在观看的内容
- 搜索库:在您的库中查找特定的标题
- 从图书馆播放:直接播放库中的内容
运作原理
此MCP服务器结合了三种技术:
- TMDB API -搜索电影/电视节目并获取其IMDb ID
- Stremio深度链接 -构造URL以打开特定内容页面
- ADB(安卓调试桥) -向您的Android TV发送命令
- 远程控制模拟 -自动为您按下“播放”按钮
服务器在Stremio中打开电影/节目页面,然后模拟按下遥控器上的中心/OK按钮自动开始播放。
先决条件
1.安卓电视设置
在您的Android TV上启用ADB调试:
- 首选 设置 > 设备偏好设置 > 关于
- 点击 构建 7次启用开发者模式
- 回去 设备偏好设置 > 开发人员选项
- 启用 USB调试 和 网络调试
- 记下您的Android TV的IP地址(设置>网络和互联网>您的网络)
2.TMDB API密钥
从电影数据库获取免费的API密钥:
- 在以下网址创建帐户https://www.themoviedb.org/
- 首选https://www.themoviedb.org/settings/api
- 请求API密钥(选择“开发人员”选项)
- 复制API密钥
3.Stremio身份验证密钥(可选)
对于库访问功能,您需要您的Stremio身份验证密钥:
- 首选 https://web.stremio.com 并登录
- 打开浏览器控制台(F12)
- 运行:
JSON.parse(localStorage.getItem("profile")).auth.key - 复制输出值
看 GET_AUTH_KEY.md 详细说明。
备注:这是可选的。您可以在没有库访问权限的情况下使用MCP服务器——您将无法从Stremio库中浏览或播放。
4.ADB(安卓调试桥)
ADB需要与您的Android TV通信。请根据您的操作系统安装它:
macOS:
brew install android-platform-toolsLinux(Ubuntu/Debian):
sudo apt-get update
sudo apt-get install android-tools-adbLinux(Fedora):
sudo dnf install android-tools视窗: 下载 SDK平台工具 并将该文件夹添加到PATH中。
验证安装:
adb --version5.Python和uv
- Python 3.10或更高版本
- 紫外线 -快速Python包安装程序(将由安装脚本自动安装)
安装
快速设置(推荐)
cd /path/to/stremio-mcp
./setup.sh安装脚本将:
- 安装
uv如不存在 - 安装所有Python依赖项
- 设置配置文件
- 指导您完成剩余步骤
手动设置
如果您更喜欢手动安装:
1.安装uv
curl -LsSf https://astral.sh/uv/install.sh | sh2.安装依赖项
uv sync3.配置环境变量
复制示例环境文件:
cp .env.example .env编辑 .env 并添加您的配置:
TMDB_API_KEY=your_tmdb_api_key_here
ANDROID_TV_HOST=192.168.1.100 # Your Android TV's IP address
ANDROID_TV_PORT=55554.连接到Android TV(首次设置)
备注:确保您已安装ADB(请参阅上面的先决条件部分)。
第一次连接时,您需要将计算机与Android TV配对:
# Connect to Android TV
adb connect YOUR_ANDROID_TV_IP:5555您应该在Android TV上看到一个弹出窗口,要求授权连接。单击“允许”。
5.在Claude Desktop中配置MCP
将此添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"stremio": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/stremio-mcp",
"run",
"src/stremio_mcp.py"
],
"env": {
"TMDB_API_KEY": "your_tmdb_api_key_here",
"ANDROID_TV_HOST": "192.168.1.100",
"ANDROID_TV_PORT": "5555",
"STREMIO_AUTH_KEY": "your_stremio_auth_key_here"
}
}
}
}替换 /absolute/path/to/stremio-mcp 与这个项目的实际路径。
备注:使用 uv run 确保自动管理依赖关系并使用正确的Python环境。
用法
配置后,您可以在Claude中使用自然语言命令:
搜索内容
"Search for the movie Inception"
"Find the TV show Breaking Bad"播放电影
"Play The Shawshank Redemption"
"Play the movie Inception from 2010"播放电视节目
"Play Breaking Bad season 1 episode 1"
"Play Game of Thrones S05E08"库命令(已配置STREMIO_AUTH_KEY)
"Show me my Stremio library"
"What am I currently watching?"
"Search my library for Breaking Bad"
"Play Breaking Bad from my library"
"Continue watching from where I left off"直接播放(如果您有IMDb ID)
"Play movie tt0111161" # The Shawshank Redemption
"Play TV show tt0903747 season 1 episode 1" # Breaking Bad可用工具
MCP服务器提供5个功能强大的整合工具:
1. 搜索 -通用内容搜索
在TMDB上搜索电影或电视节目。
- 仅搜索电影、仅搜索电视或两者都自动搜索
- 按年份筛选
- 返回IMDb ID以便于播放
示例:“寻找盗梦空间”或“寻找《绝命毒师》电视节目”
2. 播放 -通用播放
播放TMDB搜索或Stremio库中的任何内容。
- 直接通过标题搜索或IMDb ID播放
- 支持电影和电视节目
- 选择来源:TMDB搜索或您的库
- 自动处理库简历点
例子:
- “玩《盗梦空间》”
- 《绝命毒师》第1季第1集
- “播放tt0111161”
- “从我的图书馆玩《绝命毒师》”
3. 图书馆 -图书馆管理
访问和管理您的Stremio库。
- 列表:查看库中的所有项目
- 继续:查看您当前正在观看的内容
- 搜索:在您的库中查找特定的标题
例子:
- “列出我的库”
- “我现在在看什么?”
- “在我的图书馆里搜索《绝命毒师》”
4. tv_控制 -完整的电视控制
控制Android TV的所有方面。
- 体积:向上/向下/静音/设置(0-15)
- 播放:播放/暂停/切换/停止/下一个/上一个/前进/倒退
- 导航:上/下/左/右/选择/返回/主页
- 力量:唤醒/睡眠/切换/状态
例子:
- “调高音量”
- “暂停播放”
- “向下导航”
- “关掉电视”
5. 回放_状态 -获取当前播放状态
检查您的Android TV上当前播放的内容。
- 显示应用程序名称(例如Stremio)
- 显示当前标题/剧集
- 显示播放状态(播放/暂停/停止)
- 显示当前位置和持续时间
例子:
- “现在在玩什么?”
- “我在看什么?”
- “显示播放状态”
故障排除
连接问题
问题:无法连接到Android TV
解决方案:
- 确保你的电脑和安卓电视在同一个WiFi网络上
- 检查Android TV上是否启用了ADB调试
- 尝试重新连接:
adb disconnect && adb connect YOUR_TV_IP:5555 - 重新启动ADB服务器:
adb kill-server && adb start-server
ADB授权
问题:“未经授权”错误
解决方案:
- 您的电视上应出现一个弹出窗口,要求授权连接
- 检查电视屏幕,然后单击“允许”
- 确保勾选“始终允许使用此计算机”
Stremio未开业
问题:命令已发送,但Stremio未打开
解决方案:
- 确保您的Android电视上安装了Stremio
- 手动启动Stremio一次并登录
- 配置你的插件(你需要工作插件来播放内容)
- 检查IMDb ID是否正确
内容未播放
问题:Stremio打开,但内容无法播放
可能原因:
- 您需要在Stremio中安装提供流的插件
- 内容可能在您的插件中不可用
- 检查您的Stremio插件配置
TMDB搜索不起作用
问题:找不到电影/节目
解决方案:
- 验证您的TMDB_API_KEY是否正确
- 检查您的互联网连接
- 尝试不同的搜索词
- 确保TMDB上存在该内容
Stremio深度链接的工作原理
服务器以以下格式构建深度链接:
电影:
stremio:///detail/movie/{imdb_id}/{imdb_id}电视节目:
stremio:///detail/series/{imdb_id}/{imdb_id}:{season}:{episode}这些链接通过亚洲开发银行发送到安卓电视,亚洲开发银行告诉安卓在内容页面打开Stremio。然后,服务器模拟按下遥控器的中心/OK按钮(键码23)以自动开始播放。
备注:斯特雷米奥 autoPlay 该参数仅适用于您之前观看过的内容,因此此MCP使用远程按钮模拟来实现可靠的播放。
局限性
- 仅限安卓电视:此服务器是专门为Android TV设计的
- 取决于时间:自动播放使用2.5秒的延迟,可能需要调整
- 无播放控制:无法暂停、停止或查询当前播放状态
- 需要插件:您必须配置可用的Stremio插件
- 单向通信:可以发送命令,但无法从Stremio获得反馈
- 需要网络:电脑和安卓电视必须在同一网络上
- UI状态依赖:如果Stremio的UI布局发生变化,按下按钮可能无法工作
高级用法
直接使用ADB
您可以手动测试深度链接:
# Play a movie
adb shell am start -a android.intent.action.VIEW -d "stremio:///detail/movie/tt0111161/tt0111161?autoPlay=true"
# Play a TV episode
adb shell am start -a android.intent.action.VIEW -d "stremio:///detail/series/tt0903747/tt0903747:1:1?autoPlay=true"通过WiFi使用
ADB可以无线工作:
# Connect via WiFi (after initial USB connection)
adb tcpip 5555
adb connect YOUR_TV_IP:5555多台安卓电视
您可以通过指定设备来配置多台Android电视:
adb -s 192.168.1.100:5555 shell am start ...安全说明
- ADB访问权限可完全控制您的Android电视
- 仅授权受信任的计算机
- 保留您的ADB密钥(
~/.android/adbkey)安全 - 考虑在不使用时禁用ADB调试
贡献
欢迎投稿!一些改进的想法:
- 添加对查询当前播放的支持
- 实施暂停/恢复/停止控制
- 添加对播放列表的支持
- 浏览Stremio目录
- 更好的错误处理和恢复
许可证
MIT许可证-有关详细信息,请参阅许可证文件
致谢
支持
对于问题和疑问:
- 检查上面的故障排除部分
- 在GitHub上打开一个问题
- 查看Stremio文档:https://www.stremio.com/
免责声明
该项目不隶属于Stremio或得到Stremio的认可。它使用公开记录的深度链接功能和标准的Android ADB命令。使用风险自负。
