Skip to content

Releases: jumodada/Drissionpage-MCP-Server

v0.8.0

Choose a tag to compare

@jumodada jumodada released this 03 Aug 03:18
f494100

DrissionPage MCP 0.7.2 to 0.8.0 Changelog

English

Highlights

  • 0.7.2 - Core cleanup: Removed form, challenge, batch-action, and
    convenience workflow tools. Reusable procedures moved to clients or optional
    external Skills.
  • 0.7.3 - Browser reliability: Improved repeated native input and added
    verified cross-origin iframe and closed Shadow DOM support.
  • 0.7.4-0.7.5 - Browser state: Added Cookie mutation, request headers,
    user-agent control, cache clearing, and URL blocking.
  • 0.7.6 - Better targeting: Added structured selector/accessibility targets,
    accessibility snapshots, dialog observation, and element state inspection.
  • 0.7.7 - Browser-owned capabilities: Added permission controls, PDF/MHTML
    export, file-chooser upload, and isolated HTTP authentication.
  • 0.7.8-0.7.9 - Compatibility and stability: Pinned the MCP SDK to 1.x,
    expanded doctor diagnostics, hardened public errors and JSON responses, and
    improved dialog, network wait, screenshot, timeout, and drag behavior.
  • 0.8.0 - Contract stabilization: Added coordinate and keyboard download
    triggers, safer per-tab download cleanup and replay, redacted keyboard
    results, opt-in Web Storage values, improved browser error classification,
    and required mypy checks in CI.

中文

主要变化

  • 0.7.2 - 核心精简: 移除表单、验证挑战、批量动作和便利流程工具,
    可复用流程改由客户端或外部可选 Skills 组合。
  • 0.7.3 - 浏览器可靠性: 改善重复原生输入,并验证跨源 iframe 和
    closed Shadow DOM 支持。
  • 0.7.4-0.7.5 - 浏览器状态: 新增 Cookie 修改、请求 header、user-agent、
    cache 清理和 URL 屏蔽。
  • 0.7.6 - 更强的定位能力: 新增结构化 selector/accessibility target、
    accessibility 快照、dialog 观察和元素状态查询。
  • 0.7.7 - 浏览器所有能力: 新增权限控制、PDF/MHTML 导出、
    文件选择器上传和隔离 HTTP 认证。
  • 0.7.8-0.7.9 - 兼容与稳定: 锁定 MCP SDK 1.x,扩展 doctor 诊断,
    加固公开错误和 JSON 输出,并改善 dialog、网络等待、截图、timeout 和拖拽。
  • 0.8.0 - 合同稳定: 新增坐标/键盘下载触发,加固按 tab 的下载
    清理与 replay,键盘结果默认脱敏,Web Storage value 改为显式选择返回,
    改善浏览器错误分类,并在 CI 中强制 mypy。

v0.7.2

Choose a tag to compare

@jumodada jumodada released this 22 Jul 02:57

新增

  • 新增 page_dialog_respond,用于处理 alert、confirm 和 prompt 原生对话框:
    • 使用 DrissionPage 原生能力探测;
    • Prompt 内容不会出现在公开结果或历史记录中;
    • 返回与操作关联的 ActionReceipt
  • 新增 element_click_and_download,用于原子执行元素点击并等待对应下载:
    • 支持操作键重放保护,避免重复点击和重复下载;
    • 校验文件大小和 SHA-256;
    • 返回安全相对路径、ArtifactRefActionReceipt
    • 下载文件限制在 DP_MCP_DOWNLOAD_ROOT 下。
  • page_pointer_drag 新增最多 6 个有序 waypoints,支持画布路径、地图拖动、
    框选和可视化编辑器连接。
  • element_click 新增左键、右键、中键以及单击、双击语义。

变更

  • 公开工具数量从 58 个调整为 53 个。
  • 指针执行模型简化为两个确定性 profile:
    • direct:默认值,一步移动到精确目标;
    • natural:固定 24 步的缓动三次贝塞尔轨迹;
    • 所有移动和拖动都会精确到达最终目标;
    • 拖动失败后仍会尝试释放鼠标按键。
  • 移除随机抖动、随机反应时间、overshoot、precise profile 和显式合成
    起始坐标,使指针行为可复现、更容易测试。
  • 普通工具调用围绕共享浏览器上下文串行执行;page_dialog_respond 可以并发
    响应阻塞中的原生对话框。
  • cleanup() 会等待正在执行的工具调用结束,并阻止清理期间创建或使用新的
    浏览器上下文,减少资源释放竞争。
  • 未知工具和无效参数会在浏览器初始化之前被拒绝。
  • 保存截图时,公开结果只返回相对于 DP_MCP_SCREENSHOT_ROOT 的规范化路径。
  • MCP 引导面收敛为 0 个 MCP Prompt 和 1 个静态
    drissionpage://skills/catalog Resource。
  • Action Receipt 和 Artifact 状态仅保留在下载、原生对话框等需要严格关联
    时序和副作用的能力中。
  • 可复用表单和视觉工作流迁移至 Python 分发包之外的可选 Skills。

修复

  • 修复 Linux headless Chromium 下重复输入文本时清空失败的问题,改用
    DrissionPage 跨平台清空路径后再执行真实输入。
  • 修复原生对话框触发操作与响应操作之间可能发生的并发阻塞。
  • 修复工具执行与服务器 cleanup 并发时的上下文释放竞争。
  • 修复下载取消过程中可能遗留的异步任务和文件描述符状态。

安全性

  • 下载策略拒绝会在点击、操作声明和文件分配之前执行。
  • 下载文件使用稳定、禁止跟随符号链接的文件描述符进行哈希验证,降低路径
    替换竞争风险。
  • 公开 URL 会移除凭据、查询参数、fragment、本地路径和不安全协议。
  • 截图、上传和下载结果仅公开安全相对路径。
  • 对不确定的下载或对话框结果不会自动重试,避免重复外部副作用。

移除和兼容性变化

0.7.2 相比 0.6.1 移除以下 7 个公开工具,不提供兼容别名或占位工具:

已移除工具 推荐组合方式
form_inspect page_snapshotelement_find_allelement_find 和属性、文本读取
form_fill_preview 显式组合 element_typeelement_selectelement_check 和状态读取
page_detect_challenges page_observepage_snapshot、聚焦元素读取和可选 Skill 分类
page_click_xy_batch 逐次调用 element_clickpage_click_xy,每次操作后重新观察和验证
page_wait_challenge_result wait_until 加 URL、文本、属性或 property 后置条件
browser_open_and_snapshot page_navigate 后显式调用 page_snapshotpage_observe
browser_extract_links 使用有界的 element_find_all 完成链接发现

0.7.0 中曾加入、但最终未保留在 0.7.2 公开注册表中的 form_fill
form_submit,同样需要通过原子输入、激活、等待和状态读取工具组合实现。

运行兼容性

  • Python:>=3.10
  • DrissionPage:>=4.1.1.4,<5
  • MCP Python SDK:>=1.0.0
  • 不支持 DrissionPage 5.x。

v0.6.1

Choose a tag to compare

@jumodada jumodada released this 14 Jul 03:30

Full Changelog: 0.5.4...0.6.1

v0.5.4

Choose a tag to compare

@jumodada jumodada released this 03 Jul 05:48

Full Changelog: 0.5.0...0.5.4

  • 默认不再添加 --no-sandbox
  • DP_NO_SANDBOX=1 仍会添加
  • DP_NO_SANDBOX=0/false/no/off 不添加
  • doctor 会提示 sandbox 被关闭
  • README 不再在普通配置示例里建议关闭 sandbox
  • 0.5.4 版本元数据一致性检查