Repository navigation
Releases: Mina-kk/yuedu-MCP
Releases · Mina-kk/yuedu-MCP
Release list
v1.1.003
yuedu-MCP v1.1.003(versionCode 182)
- 图文验证码(image_code)闭环:书源 JS
java.getVerificationCode(imageUrl)真实实现——挂起当前调用、把验证码图拉回验证中心弹「看图输字符」会话、用户答案自动回写继续跑;MCPbrowser_verify新增imageUrl参数可直接发起 image_code 会话;image_code 不采 Cookie,验证中心按kind区分渲染(图片+输入框 / 内嵌 WebView)。 java.getStringList(...)返回真正的 JSArray(.length/.map/下标可用),与官方阅读一致。- 抓包魔数嗅探:
application/octet-stream等无明确 MIME 的响应按 PNG/JPEG/GIF/WebP/WOFF/WOFF2/zip 等魔数自动归类,字体/封面图正确落盘为二进制资源而非文本乱码。 - 任务上下文 LRU 兜底:满 16 个任务时自动回收最久未用的空闲任务,不再顶掉正在被引用的。
- 数据脱敏:HTTP/抓包导出对
Authorization/Cookie/Set-Cookie/api-key/token等凭据打***。
完整变更见提交 5962d9e。
v1.0.141
v1.0.130
v1.0.128
v1.0.128(versionCode 148)
重要变更
- MCP 鉴权统一为 MCP 规范标准头
Authorization: Bearer <令牌>:不再接受自定义X-Studio-Token。按旧格式配置过的客户端会收到 401,请到 App「MCP → 连接」页重新复制接入信息(1.0.128)
新增
- MCP 页重构为三个页签:连接(服务开关 / 接入信息 / 健康检查)、设置(端口、令牌、书源类型、外观)、前置条件,不再是一条超长页面(1.0.128)
- 「接入信息」卡按客户端界面形态给出逐格填法,每一项均可一键复制(1.0.128):
- 客户端有 Token / Bearer Token 输入框 → 只粘贴令牌本身,不要加
Bearer前缀 - 客户端只有「自定义请求头:名称 + 值」两个框 → 名称填
Authorization,值填Bearer <令牌>(名称填成Bearer是常见错误,会 401) - 配置文件类客户端(Claude Code / Cline / Cherry Studio 等)→ 在「配置文件客户端(高级)」折叠卡整段复制标准
mcpServersJSON
- 客户端有 Token / Bearer Token 输入框 → 只粘贴令牌本身,不要加
修复
- 此前生成的客户端配置使用自定义请求头,只认标准 Bearer 的表单式客户端(如 DeepSeek++ 工具箱)无法直接接入(1.0.128)
其他
- README 连接章节重写;全量单元测试 180 项通过(含「旧自定义头必须 401」与「生成配置必须是标准 Bearer」防回归用例);发布合约校验通过
v1.0.126
v1.0.126(versionCode 146)
自 v1.0.122 以来的累积更新:
修复
- 任务上下文存储初始化顺序缺陷:升级后存量快照会导致上下文工具全部 NPE;恢复逻辑加固,单个损坏快照不再拖垮整个存储(1.0.123)
- 规则链路全程保留元素对象:CSS/XPath 子规则在列表元素自身上求值,裸
@attr(如chapterUrl: "@href")可取到当前节点属性(此前会被重解析成文档根节点而取空)(1.0.124) - 多段落
@text按官方语义 join 全部段落,不再只取第一段(1.0.124) - 跨上下文引用报错指明归属 contextId,附显式传参指引(1.0.125)
新增
- 书源类型新增「自动」(-1):不写入 bookSourceType、不干预抓取,适合图文漫画混合等类型不确定的站点(1.0.124)
eval_js与书源 JS 段注入官方同名对象cookie/cache/source(方法名对齐官方 js-api;cache 为进程内实现)(1.0.125)set_cookie默认merge=true按 Cookie 名合并,不再整串覆盖该域登录态(1.0.125)- 操作日志 / HTTP 日志支持按天导出文本并经系统分享,便于贴给 AI 排查(1.0.125)
- 知识库新增 Web JS 逆向专题四篇:方法论总纲 / 入门 SOP(反爬六分类、定位归因、坑清单)/ 进阶对抗(AST 反混淆、反调试、补环境、TLS 指纹)/ 书源迁移(1.0.125)
check_source搜索链路自动探测:书源含 searchUrl 而未传 searchKey 时用关键词「我」兜底探测并在 warnings 标注,防止「自检全过但真机搜索零结果」(1.0.126)validate_source补 exploreUrl ↔ ruleExplore.bookList 联动校验(1.0.126)
移除
- 删除遗留技能 dandan-tamer:其内容来自旧项目,所引用的工具与文件在本 App 均不存在,且与正式技能触发词重叠,会误导 AI 调用(1.0.126)
其他
fetch_page大结果 preview 标注previewIsRawString,防止对硬截断片段做 JSON 解析(1.0.124)- 全量单元测试 175 项通过;发布合约校验通过
阅读书源 MCP v1.0.122
阅读书源 MCP v1.0.122(versionCode 142)
语料命中(省 token)
- 内置 4256 个现成书源、696 个模板族(按内容规则签名聚类,同族 = 同 CMS 结构)
- 新工具
match_sources/get_corpus_source/get_corpus_shard:做源前先查语料,同域直接取底本最小修改,同族参考代表样例改写,通常比抓页探索省一个数量级调用
验证中心重构
- 验证码 / Cloudflare / WAF 场景不再返回裸错误,改为结构化 JSON(
verification_required/webview_mode_enabled),按status行动即可 browser_verify新增waitSec(0..120)阻塞等待:用户在验证中心完成后自动取证并返回evidence(响应码 / 最终 URL / 命中的验证特征)- 新增每域验证模式
auto / always / webview(get_domain_modes/set_domain_mode):一搜一验、URL 次次不同的站点设always,不依赖缓存 Cookie fetch_page接入 WebView 抓取通道:被 JS 盾拦截的站点自动切换 WebView 抓取并原地重试,验证完成改为轮询判定,Cloudflare 原地验证(无跳转)也能正确识别完成
并行多书源修复
- 每条 MCP 连接拥有独立默认上下文;多任务显式
contextId全程隔离,互不串数据 - 调试缓存改为按调用传入(移除全局缓存与互斥锁),多个书源可同时
debug_source而不互相等待 - 「导入至阅读」改为多槽位:最多 4 个书源同时排队待导入,新导入不再顶掉尚未被阅读拉取的端点
- 上下文上限 8 → 16;上下文快照持久化,进程重启后恢复(条目标记 stale,刷新后使用)
上下文协议 v2 与 token 优化
- POST 搜索也入缓存(method+URL+body 做键,5 分钟内复用快照);仅 MCP 令牌 / UA / 书源类型变更才使旧引用失效
fetch_page支持responseMode=reference(只存快照不回正文)与maxChars- 大结果超 12000 字符自动转
resultId分段读取;debug_source输出按上限截断并带全量计数
其他
- 修复:底栏验证中心跳转会污染标签栈,导致某个底部标签点击后被带去验证中心
- 技能包全面修订:新增「语料命中」「验证中心 playbook」参考文档,所有说明与实际工具行为对齐
- 知识库新增「图文验证码」专题文档
阅读书源 MCP v1.0.119
阅读书源 MCP 1.0.119
Added
- 底栏新增「验证中心」:位于「技能」与「日志」之间。此前验证入口只有系统通知和 MCP 页顶部横幅,通知被划掉就进不去;现在底栏随时可进
Changed
- 底栏顺序调整为 MCP / 书源 / 技能 / 验证中心 / 日志
- 验证中心升级为顶级页面,不再显示返回箭头(系统返回键仍可回到上一页)
- 验证中心底部留出悬浮底栏高度,「刷新 / 清 Cookie / 关闭 / 已完成验证」不再被遮挡
- 空态文案改为引导底栏入口;
get_app_info的ui字段同步真实底栏顺序
版本
- versionName
1.0.119/ versionCode139 - minSdk 26(Android 8.0+),targetSdk 36
阅读书源 MCP v1.0.118
阅读书源 MCP 1.0.118
Added
- 任务上下文:新增
create_context/get_context/update_context/clear_context/list_contexts,重连后可恢复进度与引用目录(只返回摘要,不返回正文) - 网页与结果引用:
fetch_page首次返回预览与pageId,同任务 GET/HEAD 五分钟内复用;read_page支持分段读取与字面搜索;大结果转resultId用read_result分段读取;analyze_html/inspect_rule/eval_js可直接使用pageId,免去重复传 HTML - 会话可观测字段:
app_status新增sessionTotal/sessionClosed/sessionReaped/reapScans/reapIdleSeconds/maxLifetimeSeconds
Changed
- 活跃会话口径:
clientCount只统计最近 60 秒内发生过真实工具调用的会话(客户端保活与心跳流量不计入);通知栏与 MCP 页同步显示「N 个活跃会话 · 累计 M」 - 上下文容量:全局最多 8 个任务,达到上限时自动回收最久未使用且已闲置的上下文;保存引用失败时
boundedResult降级为内联并给出提示,不再让工具直接报错
Fixed
- 会话不再长期占用:
McpSessions自持登记会话,闲置超过 5 分钟主动关闭释放,客户端再请求会收到 404 并自动重新握手;单会话关闭设 3 秒超时、扫描在独立线程运行,SDK 卡死不再拖停回收器 - 保活流量不再续命:活跃度只由真实工具调用刷新,客户端底层 SSE / 心跳请求不再让会话永不释放(此前空闲阈值实际无法达成,只能等硬上限)
- 会话门禁:按传输层
Mcp-Session-Id识别会话,仅对已确认回收的会话返回 404,新会话首个请求不再被误拒 - 崩溃隔离:仅主线程未捕获异常终止进程,后台线程异常只落盘崩溃日志,书源脚本报错不再带走整个 MCP 服务
- 规则元素预览:修复规则以
@text/@href/@html结尾时inspect_rule返回「元素预览不可用:Index: 1, Size: 1」的越界 - 缓存状态:
fetch_page命中缓存时不再误报truncated=true,新增bodyOmitted区分引用省略与真实截断 - HTTP 日志:过滤本地回环与局域网私网请求,避免非书源流量污染日志
版本
- versionName
1.0.118/ versionCode138 - minSdk 26(Android 8.0+),targetSdk 36
阅读书源 MCP v1.0.111
阅读书源 MCP 1.0.111
Added
- 书源格式化 JSON 详情:书源页支持点击查看制作成功书源的详情,采用 2 空格缩进格式化展示与等宽字体,支持文本自由选中文本与长按复制
- 书源一键复制:在每个书源版本操作栏中,于「导入至阅读」左侧新增「复制源」按钮,一键将完整 JSON 写入系统剪贴板并提供原地状态反馈
- HTTP 日志按天分页:HTTP 日志采用与操作日志完全一致的吸顶日期切换栏(一天一页),支持左右切天与居中弹窗快速跳选
Fixed
- 网络流量净化:过滤并丢弃本地回环(127.0.0.0/8、localhost)与局域网私网 IP 请求,避免非书源探测流量污染日志
- 修复 UI 契约测试用例对组件层级与文案的断言冲突
阅读书源 MCP v1.0.110
阅读书源 MCP 1.0.110
Added
- 应用内外观切换:浅色 / 跟随系统 / 深色(iOS 风格分段控件,主页状态卡下方)
- 主题选择持久化,重启保持
Fixed
- 深色模式下玻璃容器默认黑字不可见:下发 LocalContentColor
- 深色玻璃顶栏/底栏改为黑色半透明,与纯黑页面融合
- 分段控件深色下轨道与滑块分层可见