maccmsv10-api-mcp 接入 TaoToken:在线视频搜索与观看 MCP 服务配置指南

发布时间:2026/10/10 21:45:53

maccmsv10-api-mcp 接入 TaoToken:在线视频搜索与观看 MCP 服务配置指南 1. 为什么要把苹果 CMS V10 源接进 MCP如果你手上有几个苹果 CMS V10 的采集源平时用 LibreTV 或者 MoonTV 看片应该都遇到过同一个尴尬每次换设备、换客户端都得重新回忆那个源站域名和端口翻收藏夹、翻聊天记录折腾半天才想起来。我自己就经常在手机、平板、电脑之间来回切配置一遍又一遍烦得很。maccmsv10-api-mcp 这个项目解决的正是这件事。它把「苹果 CMS V10 API」包装成了一个标准的 MCP 服务你只需要在客户端里配置一次之后不管换什么模型、换什么对话都能直接调用搜索和播放能力。说白了就是把「找片源」这件事从每次手动输入变成了模型可以自动调用的工具。它底层兼容苹果 CMS V10 的api.php/provide/vod接口格式LibreTV 和 MoonTV 里那些公开的源配置基本都能直接拿来用。项目本身不带源你得自己准备config.json把源地址填进去。v2 版本相比 v1 最大的改动是把分集数据从 URL 参数挪到了请求体里解决了长剧集 URL 超长的问题同时增加了日志目录去掉了 PASSWORD 环境变量。适合谁用一类是像我这样手里已经有一堆苹果 CMS 源、想统一管理的人另一类是想在 Cherry Studio、Cline 这类支持 MCP 的客户端里让模型直接帮你搜片、给播放地址的人。整个链路跑通之后你只需要说一句「找 我是刑警」模型就会调search_movie返回表格再说「播放 黑木耳 我是刑警 44314」它就调get_playback_info给你网页播放地址。这篇就按 Docker 部署 TaoToken 统一通道的方式把配置、验证、排错一次讲清楚。你跟着做半小时内应该能跑通搜索和播放两条链路。2. TaoToken 前置准备与 MCP 服务端配置在讲具体配置之前先把 TaoToken 这一层说清楚。TaoToken 在这里的角色是给你的 MCP 客户端提供一个统一的模型调用通道。maccmsv10-api-mcp 本身只负责视频搜索和播放它不包含大模型能力而你在 Cherry Studio 里让模型去调这些工具模型请求得有个地方发。TaoToken 就是干这个的一个 Key 走通多个模型省得你每个客户端配一遍。你需要先去 TaoToken 的控制台拿一个 API Key。打开 https://taotoken.net/api-keys 登录后创建一个新的 Key复制出来备用。这个 Key 后面会填到客户端的模型配置里不是填到 maccmsv10-api-mcp 里别搞混了。然后确认一下你的模型接入地址。TaoToken 的 API 入口是 https://taotoken.net/api 在 Cherry Studio 里配置模型时Base URL 填这个Key 填刚才复制的Model ID 按你需要选比如claude-sonnet-4-20250514或者gpt-4o之类。具体支持哪些模型可以在 https://taotoken.net/models 看列表。现在回到 maccmsv10-api-mcp 本身。它有两种跑法源码直接跑或者 Docker。源码跑适合本机调试Docker 适合放在 NAS 或者小主机上长期挂着。我这里重点讲 Docker因为群晖、威联通这类设备上 Docker 最省心。先准备config.json。这个文件是核心里面定义了两个东西mcp_base_url和sources。mcp_base_url是你这个 MCP 服务对外暴露的地址比如http://192.168.0.206:8350。如果你在环境变量里设了MCP_BASE_URL这个字段可以省略。sources下面就是一个个源每个源有api和name两个字段。{ mcp_base_url: http://192.168.0.206:8350, sources: { heimuer: { api: https://json.heimuer.xyz/api.php/provide/vod, name: 黑木耳 }, wolongzy: { api: https://collect.wolongzyw.com/api.php/provide/vod, name: 卧龙资源 } } }保存的时候一定用 UTF-8 编码不然中文源名会乱码。源不用配太多虽然项目做了并发优化但源多了搜索还是会慢。建议先配两三个常用的跑通了再加。Docker 部署这块如果你用群晖的 Container Manager直接在注册表搜wbsu2003找到wbsu2003/maccmsv10-api-mcp选latest版本。然后映射两个卷config.json挂到/app/config.json建议只读logs目录挂到/app/logsv2 版本新增的方便看日志。端口映射本地8350到容器8000。环境变量加一个MCP_BASE_URL值填http://你的设备IP:8350。如果你习惯命令行用 docker run 也行mkdir -p /volume1/docker/maccmsv10/logs cd /volume1/docker/maccmsv10 docker run -d \ --restart unless-stopped \ --name maccmsv10-api-mcp \ -p 8350:8000 \ -v $(pwd)/config.json:/app/config.json:ro \ -v $(pwd)/logs:/app/logs \ -e MCP_BASE_URLhttp://192.168.0.197:8350 \ wbsu2003/maccmsv10-api-mcp:latest或者用 docker-compose把下面内容存成docker-compose.ymlversion: 3 services: maccmsv10-api-mcp: image: wbsu2003/maccmsv10-api-mcp:latest container_name: maccmsv10-api-mcp restart: unless-stopped ports: - 8350:8000 volumes: - ./config.json:/app/config.json:ro - ./logs:/app/logs environment: MCP_BASE_URL: http://192.168.0.197:8350然后docker-compose up -d启动。启动后浏览器打开http://你的IP:8350能看到运行信息界面就说明服务起来了。这一步做完MCP 服务端就算就绪了。接下来是客户端连接。3. 客户端连接参数与可复制配置片段客户端这边我以 Cherry Studio 为例其他支持 MCP 的客户端逻辑类似。打开 Cherry Studio找到 MCP 服务配置的地方新建一个服务。名称随便填比如maccmsv10类型选SSEURL 填http://你的IP:8350/mcp。注意这里路径是/mcp不是根路径。保存之后如果服务端和网络都没问题你应该能在工具列表里看到三个工具search_movie、get_playback_info、test_all_sources_debug_sources_get。看到这三个说明 MCP 连接成功了。但这时候模型还不能用因为 Cherry Studio 里的模型请求还没走 TaoToken。你需要去模型设置里添加一个自定义模型提供商。Base URL 填https://taotoken.net/apiAPI Key 填你在 TaoToken 控制台创建的那个Model ID 按需选。配置好之后在对话里选中这个模型它就能同时调用 MCP 工具和走 TaoToken 的模型通道了。如果你用的是 Cline 或者 Claude Code 这类工具配置方式略有不同。Cline 的 MCP 配置一般在设置里的 MCP Servers 部分添加一个 SSE 类型的服务URL 同样是http://你的IP:8350/mcp。模型这边Cline 支持自定义 OpenAI 兼容接口Base URL 填https://taotoken.net/apiKey 填 TaoToken 的 KeyModel ID 填你选的模型。Claude Code 的话它本身是通过~/.claude/settings.json或者项目里的.claude/settings.json来配置。如果你要让 Claude Code 走 TaoToken可以在 settings 里配env{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: 你的TaoToken Key } }不过 Claude Code 接 MCP 服务的方式和 Cherry Studio 不太一样它更偏向命令行工具集成。如果你主要是想在对话里搜片看片Cherry Studio 这种图形化客户端会更顺手。这里有个点要注意TaoToken 的 Key 是给模型用的maccmsv10-api-mcp 不需要这个 Key。MCP 服务本身是本地局域网内访问没有鉴权所以别把它暴露到公网。如果你确实需要外网访问建议在前面加一层反向代理并配上认证这个不在本篇范围内。配置完成后你可以先在 Cherry Studio 里发一句简单的「找 我是刑警」测试一下。如果模型正确调用了search_movie并返回了表格说明整条链路通了。如果没反应先检查 MCP 服务是否显示已连接再检查模型是否选中了走 TaoToken 的那个。4. 验证搜索与播放请求的完整链路链路通了之后我们来实际跑一遍搜索和播放。先确认服务端正常浏览器打开http://你的IP:8350应该能看到类似「maccmsv10-api-mcp is running」的信息。然后打开http://你的IP:8350/docs这是 FastAPI 自带的接口文档能看到所有可调用的端点。搜索这块模型会调用search_movie。你在对话里输入「找 我是刑警」模型应该返回一个 Markdown 表格包含来源名称、影片标题、video_id、海报、影片分类、简介这几列。如果表格显示比较乱可以在提示词里加约束比如## 约束 采用 markdown 表格方式展示 ## search_movie search_movie 返回值遵循的 markdown 模版 | 来源名称 | 影片标题 | video_id | 海报 | 影片分类 | 简介 | |---|---|---|---|---|---| | {source_name} | {title} | {video_id} | ![海报]({poster_url}) | {category} | {content} |这样模型每次返回的格式就固定了。实测下来不加约束的话模型有时候会用列表有时候会用段落看着不整齐。搜索到结果后播放需要三个信息来源名称、片名、video_id。比如表格里有一行是「黑木耳 | 我是刑警 | 44314」你就复制这三个值在输入框里拼成「播放 黑木耳 我是刑警 44314」。模型会调用get_playback_info返回一个表格里面有来源名称、名称、网页播放地址。点那个地址就能在浏览器里播放。有时候模型可能会再次调用search_movie而不是直接调get_playback_info这取决于模型的判断。如果你发现它老是重复搜索可以在提示词里明确说「直接调用 get_playback_info不要重新搜索」。还有一个诊断接口test_all_sources_debug_sources_get用来检查各个源是否正常工作。你可以在对话里说「测试所有源」模型会调用这个工具返回每个源的状态、响应时间和 URL。如果某个源一直失败可以考虑从config.json里去掉免得拖慢搜索速度。如果你想直接用 curl 验证服务端也可以curl -X POST http://192.168.0.206:8350/mcp \ -H Content-Type: application/json \ -d {jsonrpc:2.0,method:tools/call,params:{name:search_movie,arguments:{keyword:我是刑警}},id:1}不过 MCP 协议走的是 SSE直接 curl 可能不太方便建议还是通过客户端测试。服务端日志在logs目录下如果请求失败可以去那里看具体报错。播放地址拿到后直接点开就能看。如果播放器加载不出来可能是源本身的问题换个源再试。有些源对某些剧集的支持不完整这是源站的事不是 MCP 的问题。5. 常见报错排查401、local proxy failed、reading choices跑这条链路最容易遇到的几个报错我一个个说。401 Unauthorized这个一般出现在模型调用环节不是 MCP 服务本身。如果你在 Cherry Studio 里发消息模型返回 401说明 TaoToken 的 Key 没填对或者 Key 过期了。去 https://taotoken.net/api-keys 重新生成一个填到客户端里。注意 Base URL 是https://taotoken.net/api不要多加/v1或者少写/api路径不对也会 401。local proxy failed这个报错通常出现在客户端尝试连接 MCP 服务时。原因可能是 MCP 服务没启动或者 URL 填错了。先确认http://你的IP:8350能打开再确认客户端里填的是http://你的IP:8350/mcp。如果服务在另一台机器上检查防火墙有没有放行 8350 端口。群晖的话控制面板里看下防火墙规则。reading choices 相关报错这个一般出现在模型返回结构解析失败的时候。比如模型返回的内容不是标准 JSON客户端解析不了。解决办法是在提示词里加强约束明确要求返回 Markdown 表格不要返回 JSON。如果模型还是乱返回换个模型试试有些小模型对工具调用的支持不太好。MCP 工具列表为空连接显示成功但看不到search_movie这些工具。这种情况先检查config.json格式对不对JSON 有没有语法错误。可以用python -m json.tool config.json验证一下。如果 config 没问题看服务端日志可能是源地址不可达导致初始化失败。先把 sources 里只留一个源跑通了再加。搜索很慢或者超时源太多或者某个源响应慢。用test_all_sources_debug_sources_get测一下每个源的响应时间把超过 5 秒的去掉。另外Cherry Studio 如果支持长时间运行模式可以打开对慢源有一定容忍度。播放地址打不开先确认地址是不是完整的http://开头。有时候模型返回的地址会被截断。如果地址完整但打不开换个源试试或者用浏览器直接访问那个地址看返回什么。有些源需要特定的 Referer 或者 UA这种情况 MCP 服务本身解决不了得看源站策略。排查的时候日志是最有用的。logs目录下会有按日期分的日志文件里面记录了每次请求的入参和返回。遇到问题先看日志比瞎猜快得多。6. 把 TaoToken 作为统一通道的长期用法跑通之后你可能会想这套东西怎么长期用我的建议是把 TaoToken 当成统一的模型通道MCP 服务当成统一的视频检索通道两者分开管理。TaoToken 这边一个 Key 可以走多个模型。你可以在 Cherry Studio 里配好几个模型比如日常对话用便宜的复杂任务用强的切换的时候不用改 Key。如果后面要接 Cline 做编码或者接其他工具也是同一个 Key省得到处复制。Coding Plan 适合长期编码场景如果你有 Agent 类的需求可以去 https://taotoken.net/coding-plan 看看。MCP 服务这边config.json里的源可以定期更新。LibreTV 和 MoonTV 的源列表会变你可以隔一段时间去他们的仓库看看有没有新源。更新完 config 后重启容器就行不用重新配客户端。如果你想让模型更稳定地调用工具提示词里可以把三个工具的返回格式都固定下来。除了前面说的search_movie和get_playback_infotest_all_sources_debug_sources_get也可以加模板## test_all_sources_debug_sources_get 总视频源数量 正常工作视频源 成功率 test_all_sources_debug_sources_get 返回值遵循的 markdown 模版 | 来源名称 | 状态 | 响应时间 | URL | |---|---|---|---|这样每次诊断结果都是统一表格看着清楚。最后说个实际经验源不在多在稳。我一开始配了七八个源搜索一次要等十几秒后来砍到三个基本三秒内出结果。另外mcp_base_url一定要填对如果你后面换了设备 IP记得同步改环境变量和客户端里的 URL不然连接会失败。这套方案跑顺之后你基本就告别了「翻文档找源地址」的日子。想看什么直接跟模型说就行。
延伸阅读

更多相关文章

2026/10/10 21:45:53

部署Claude Code并接入deepseek大模型:TaoToken统一Key配置实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 21:45:53

STM32启动地址之谜:0x08000000背后的复位流程与内存映射

我刚学STM32的时候,调试器上看到PC跑在0x08000000,总习惯把它当成“芯片的某种暗号”。后来带某小型项目时,被A同学问“CPU复位明明从0开始,为什么程序却写在0x08000000”,我才认真把这条线理清楚。它牵扯的不只是“厂…

2026/10/10 21:45:53

3.9 元畅玩 Codex:国内用户平价接入 + 插件落地的完整路径

3.9 元畅玩 Codex:国内用户平价接入 插件落地的完整路径 【免费下载链接】plugins OpenAI Plugins 项目地址: https://gitcode.com/GitHub_Trending/plugins123/plugins 把 Codex 当主力 Agent 使用,正在成为 2026 年开发者圈子里最明显的趋势之…

2026/10/10 22:50:59

机器学习量化策略demo源码分享:从特征工程到回测的完整实现

简介:这是一份面向具备一定Python基础、对炒股与量化投资尚不熟悉的初学者的入门级demo源码,围绕机器学习在A股量化策略中的应用展开。资源以完整项目形式呈现,涵盖数据获取与清洗、特征工程、模型构建与训练、策略回测及风险管理等关键环节&…

2026/10/10 7:31:36

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/9 20:15:56

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/8 6:05:44

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 0:04:53

从逻辑门到计算机:数字电路核心原理与全加器搭建实战

如果你拆过一台旧电脑的主板,盯着那些黑乎乎的小芯片看上一会儿,可能会冒出同一个疑问:这堆引脚密集的元件,到底是怎么“变”出那么复杂的应用的?答案并不在某个神秘的部件里,而是在所有芯片内部都在反复使…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑