在线视频搜索与观看MCP服务maccmsv10-api-mcp
老苏之前介绍过 LibreTV
和 MoonTV
,这两者都支持标准的苹果 CMS V10 API
格式,但老苏每次想用的时候,还要先回忆端口或者域名,想不起来还要翻翻文档,实在是麻烦,所以就有了改成 MCP
的念头,毕竟 MCP
只需要设置一次,然后就可以随时使用了
什么是 maccmsv10-api-mcp ?
maccmsv10-api-mcp
是一个免费的在线视频搜索与观看MCP
服务,底层支持苹果CMS V10 API
格式,让你可以随时随地畅享海量免费影视内容。
v1
版本:直接复用了LibreTV
的播放器,将一个视频的所有分集信息(包括每一集的名称和播放地址)序列化为JSON
字符串,并将其作为一个完整的URL
查询参数(episodes
)传递。当剧集数量较多时(例如,超过20
集的电视剧),这个生成的URL
会变得极长,极易超过浏览器和Web
服务器的默认长度限制。v2
版本:- 将大数据量的传输从
URL
转移到了更适合的API
请求体中,彻底解决了URL
过长的问题,但也因此对LibreTV
的播放器进行了改造,不能再直接复用了。 - 增加了日志
- 取消了
PASSWORD
环境变量 - ……
- 将大数据量的传输从
安装
config.json
maccmsv10-api-mcp
支持苹果 CMS V10 API
格式,但本身没有带源,你可以从 LibreTV
和 MoonTV
中获得
LibreTV
的源的地址: https://github.com/bestZwei/LibreTV/blob/main/js/config.jsMoonTV
的源的地址:https://github.com/senshinya/MoonTV/blob/main/config.json
两者有很多是重叠的,保存时一定要使用 UTF-8
格式
1 | { |
其中
mcp_base_url
:如果环境变量MCP_BASE_URL
设置了,这里可以不用设置;sources
:在这里设置源,标准的格式为:source_name
:源的英文名称api
:源地址name
:源的中文名称
1 | "source_name": { |
不建议设置太多的源,虽然做了优化,但是还是会比较慢。当然,最新版的 Cherry Studio
支持 长时间运行模式
,不知道是否有助于改善 ?
源码安装
如果不想借助服务器,可以在本机安装
关于
python
环境的安装,不在本文的范围,请自行搜索学习;
1 | # 下载代码 |
docker 安装
在群晖上以 Docker 方式安装。
在注册表中搜索 wbsu2003
,下拉找到 wbsu2003/maccmsv10-api-mcp
,版本选择 latest
。
卷
在 docker
文件夹中,创建一个新文件夹 maccmsv10
,并创建一个子目录 logs
,将 config.json
放入根目录
文件夹 | 装载路径 | 说明 |
---|---|---|
docker/maccmsv10/config.json |
/app/config.json |
挂载源文件,可以是只读 |
docker/maccmsv10/logs |
/app/logs |
挂载日志目录,v2 新增 |
端口
本地端口不冲突就行,不确定的话可以用命令查一下
1 | # 查看端口占用 |
本地端口 | 容器端口 |
---|---|
8350 |
8000 |
环境
可变 | 值 |
---|---|
MCP_BASE_URL |
MCP 服务的访问地址,设为 http://群晖IP:8350 |
命令行安装
如果你熟悉命令行,可能用 docker cli
更快捷
1 | # 新建文件夹 maccmsv10 和 子目录 |
也可以用 docker-compose
安装,将下面的内容保存为 docker-compose.yml
文件
1 | version: '3' |
然后执行下面的命令
1 | # 新建文件夹 maccmsv10 和 子目录 |
运行
在浏览器中输入 http://群晖IP:8350
就能看到运行信息界面
Cherry Studio
MCP
服务需要在客户端中使用,还是以老苏最常用的 Cherry Studio
为例
名称
:用于识别不同的MCP
服务;类型
:选择SSE
协议;URL
:填入http://群晖IP:8350/mcp
如果设置和服务没问题的话,是可以看到工具的
提示词
一种是简单的,例如 采用 markdown 表格方式展示
,这种可能显示会比较随机
每次的展示可能都会不同,看大模型的心情了
老苏推荐使用相对复杂的提示词,来对显示格式进行固定
1 | ## 约束 |
查询
例如: 找 我是刑警
,会调用 search_movie
工具
播放
选中要播放的前三列,复制
粘贴到输入栏加上 播放
,最后组成了 播放 黑木耳 我是刑警 44314
,也就是要包含视频源,片名和视频 id
正常应该直接调用 get_playback_info
但有时候也会再次调用 search_movie
直接点网页播放的地址就可以
诊断
还有一个接口,主要用于对视频有效性进行诊断
感谢
本项目是基于 LibreTV
播放器的二次开发,感谢 LibreTV
项目。
如果要自己使用 AI
编程来实现这个功能,老苏做不到,因为老苏并不是程序员。在这个项目中,老苏并没有编写任何代码,只负责需求定义和测试工作。
Claude Code
等 AI
编程工具,对非程序员来说的意义在于,终于可以不用依赖他人,能够在已有项目的基础上,定制一些满足自己需要的功能
参考文档
magicblack/maccms10: 苹果cms官网,苹果cmsv10,maccmsv10,麦克cms,开源cms,内容管理系统,视频分享程序,分集剧情程序,网址导航程序,文章程序,漫画程序,图片程序
地址:https://github.com/magicblack/maccms10苹果CMS内容管理系统 - 苹果CMS手册 - 苹果CMS教程 - 苹果CMS帮助 - 苹果CMS常见问题
地址:https://www.maccms.la/LibreSpark/LibreTV: 一分钟搭建影视站,支持Vercel/Docker等部署方式
地址:https://github.com/LibreSpark/LibreTV