关于 DocPull
DocPull 是一个开源工具,可将不断变化的公开网页来源同步为带引用、可复现的上下文包,供 AI Agent、RAG 流程和 MCP 客户端使用。它适合需要追踪来源版本与变更的场景,本地运行,无需账户或付费 API。
主要功能
- 01同步公开来源并生成基于哈希的差异
- 02带引用和源位置的段落检索,支持 token 预算
- 03通过锁文件记录来源版本以便复现上下文
- 04导出为上下文包、向量导入或数据工作流格式
- 05CLI、Python SDK、TypeScript SDK 与 MCP 服务
适用场景
- 01检测文档、政策页面等来源的内容变化
- 02为 AI 回答保留可追溯的引用依据
- 03在 Claude Code 等客户端中查询本地锁定的文档上下文
MCP 相关
DocPull 提供 Python stdio 形式的 MCP 服务,通过 docpull mcp 启动,向本地 Agent 客户端暴露来源相关工具,例如查询已锁定的上下文。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
DocPull
活跃的开源项目 · MIT License
DocPull 可将不断变化的公开网页来源转化为带引文、可复现的上下文,供 AI Agent 和检索流水线使用。当应用需要了解自己使用了哪些来源、这些来源是否发生变化,以及如何在之后重建相同的上下文时,就可以使用它。
安装并同步第一个来源
pip install docpull
docpull init stripe-docs
docpull add https://docs.stripe.com
docpull sync
docpull query "retry policy" --max-tokens 4000
docpull diff
docpull export context-pack --target cursor
项目会将声明的来源存储在 docpull.yaml 中,并将解析后的输入存储在
.docpull/context.lock.json 中。后续同步会生成基于哈希的差异,同时保留
来源 URL、内容哈希、运行 ID、引文和导出元数据。
docpull query 会从已锁定的归档中检索去重段落,并支持版本筛选、响应预算
和精确的来源片段。通过 Python SDK 和 MCP 也可以执行相同的查询。预算语义
和跨项目查询请参阅查询已锁定的上下文。

此流程不需要账户或付费 API。直接获取、发现、提取、索引、包分析和差异比较 均在本地运行。
为什么使用 DocPull
- 复现 Agent 上下文。 稳定 ID、哈希、清单和锁定文件会显示哪些来源版本生成了某个答案或产物。
- 检测来源变更。 同步并比较文档、产品页面、政策、信息流、代码库、软件包、标准和本地文档。
- 让证据可供检查。 Markdown、NDJSON、SQLite、引文和溯源附属文件无需托管服务也能保持可读。
- 选择下游使用方式。 为 Agent 客户端、向量导入、数据工作流或带版本的上下文包发布导出上下文。
- 明确选择高成本路径。 浏览器和云端渲染需要明确选择,也可以通过零美元预算将其阻止。
工作原理
declared sources → local acquisition → versioned evidence → diff and validation → export
DocPull 的 v3 包契约将原始提取内容、面向 Agent 的上下文和评测级证据分开。 请验证下游系统所需的级别:
docpull pack prepare packs/docs --eval-grade
docpull pack validate packs/docs --level eval
docpull ci --prepare
docpull ci 会检查时效性、引文覆盖率、包质量、权利元数据和其他已配置的
门槛。它会写入 context-ci.report.json 和 CONTEXT_CI.md,并在硬性门槛未通过时
以非零状态码退出。
支持的使用方式
| 使用方式 | 用途 | 从这里开始 |
|---|---|---|
| CLI | 获取、同步、比较、验证和导出 | docs/cli-recipes.md |
| Python SDK | 在 Python 应用中集成内容获取 | docs/surface-contract.md |
| MCP 服务 | 为本地 Agent 客户端提供来源工具 | MCP 服务 |
| TypeScript SDK | 从 Node 或 Bun 读取本地包并调用 CLI | sdk/js/README.md |
| Agent 插件 | 在 Agent 客户端中安装受支持的 MCP 工作流 | plugin/README.md |
常见来源类型包括静态网站和服务端渲染网站、OpenAPI 文档、信息流、论文、公开 GitHub 代码库、npm 和 PyPI 软件包、标准、数据集、文字记录、Wikimedia 页面、 产品和政策页面,以及本地 PDF 或办公文件。完整的使用方式请参阅上下文包工作流。
MCP 服务
pip install 'docpull[mcp]'
docpull mcp
Claude Code 可以注册相同的本地服务:
claude mcp add --transport stdio docpull -- docpull mcp
Python stdio 服务是受支持的 MCP 服务。
限制与安全边界
DocPull 是证据获取引擎,而不是托管式竞争情报产品。它负责抓取、显式渲染适配器、版本管理、引用、哈希、验证、重放和导出。下游产品负责调度、人工审核、获批声明、法律结论、账户和通知。
默认路径不处理复杂的交互式浏览器工作流、CAPTCHA、隐蔽抓取或私有仪表板。JavaScript 渲染需要显式启用。经过身份验证的来源需要通过环境变量引用;DocPull 不会在项目产物中持久化凭据值。
安全默认设置包括仅通过 HTTPS 抓取、遵守 robots.txt、防止 SSRF 和 DNS 重绑定、重定向防护、XXE 防护以及路径遍历检查。扩展获取行为前,请阅读网页来源边界、安全态势和证据引擎决策。
文档与证据
- CLI 示例 — 常用命令和高级工作流。
- 上下文依赖项 — 项目和锁文件模型。
- Context Pack Contract v3 — 产物级别和兼容性。
- 公开契约 — 架构和版本管理规则。
- 替代方案 — 浏览器自动化与托管式提取的权衡。
- JavaScript SDK 和加载器 — TypeScript 客户端以及 LangChain/LlamaIndex 加载器。
- 依赖项安全 — 锁定的依赖项集和可选解析器支持。
- 评估实验室 — 可复现的方法、结果和声明边界。
- 更新日志 — 发布历史。
Raintree 开源系统
DocPull 负责证据获取和可复现的 Agent 上下文。它可以独立使用;同系列项目不代表必须集成或共享发布周期。
| 项目 | 职责 |
|---|---|
| Raintree Standards | 定义受治理的要求和证据。 |
| Trellis | 强制执行共享的 JavaScript 和 TypeScript 代码策略。 |
| HIG Doctor | 审核界面源代码并提供 HIG 指导。 |
| PolicyStrata | 测试跨层策略行为。 |
请参阅 Raintree 开源项目组合,了解当前生命周期和分发链接。
Raintree 还打造了 BetterOff,将家庭的支出、投资、资产、债务和净资产记录在同一份最新记录中。
项目政策
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。