关于 doc-scraper
doc-scraper 是用 Go 编写的文档爬虫,可将技术文档整理为本地 Markdown 语料。它通过 MCP 向编码 Agent 提供离线搜索、阅读和变更跟踪能力。
主要功能
- 01并发且可恢复的文档爬取
- 02识别 30 多种文档生成器
- 03生成 Markdown 页面及索引文件
- 04离线 BM25 搜索和页面读取
- 05增量爬取、监视模式与差异比较
适用场景
- 01无网络时搜索技术文档
- 02从本地语料阅读文档
- 03跟踪多次爬取间的文档变更
MCP 相关
MCP 服务提供搜索和读取已存文档、检查新鲜度及比较爬取结果的工具。编码 Agent 可通过 stdio 连接。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
LLM 文档抓取工具(doc-scraper)
使用 Go 编写的可配置、并发且可续传的网络爬虫。专为抓取技术文档网站而设计,可提取核心内容,将其整洁地转换为适合大模型摄取的 Markdown 格式,并将结果保存在本地。

doc-scraper 可将文档网站抓取为整洁的 Markdown,并通过 MCP 提供给编码 Agent。Agent 可以离线搜索和阅读你选择的文档,而不必依赖训练数据猜测或实时网络搜索。将任意文档页面交给 doc-scraper add,它就会检测框架(支持 30 多种文档生成器,包括 Docusaurus、Starlight、Sphinx、VitePress、Material for MkDocs 和 mdBook),验证内容选择器,并为你起草配置。
文档:https://sriram-pr.github.io/doc-scraper/
功能
- 为 Agent 提供离线搜索: 对存储的语料库进行 BM25 全文搜索(
search_docs)和页面读取(read_page),无需网络访问 - 框架检测: 可识别 30 多种文档生成器,并验证各自的选择器;支持 Readability 回退;如果页面仅由 JavaScript 渲染,则会报告而不会抓取空内容
- 整洁的输出: 每个页面均生成带 frontmatter 的 GitHub 风格 Markdown,并生成
pages.jsonl、llms.txt和llms-full.txt - 礼貌且可续传: 支持 robots.txt 和站点地图、按主机设置速率限制、失败后退避重试、续传抓取,以及分阶段输出,确保不会覆盖上一次成功的副本
- 保持内容最新: 支持增量重新抓取、监视模式和抓取历史(
get_freshness、diff_crawl) - 同时抓取多个网站: 并行抓取,并共享限制
安装
从 Releases 页面下载发行版二进制文件(Linux、macOS、Windows;amd64 和 arm64),或:
go install github.com/Sriram-PR/doc-scraper/v2/cmd/doc-scraper@latest
docker run --rm --user "$(id -u):$(id -g)" -v "$PWD":/data ghcr.io/sriram-pr/doc-scraper:latest crawl -site rust_cli_book
Claude Desktop 用户也可以从最新发行版安装 doc-scraper.mcpb。详情:安装。
快速开始
doc-scraper add -site rust_cli_book https://rust-cli.github.io/book/index.html # detect, preview, confirm
doc-scraper crawl -site rust_cli_book # Markdown lands in ./crawled_docs/rust_cli_book/
doc-scraper search -site rust_cli_book "error handling"
然后将其交给 Claude Code:
claude mcp add --transport stdio doc-scraper -- /path/to/doc-scraper mcp-server -config /path/to/config.yaml
有关作用域和首个提示词,请参阅 Claude Code 设置。
文档
- 入门:安装、快速开始、添加网站
- 与 Agent 配合使用(MCP):Claude Code、Claude Desktop、任意 stdio 客户端,以及 13 个工具
- 文档框架:了解检测机制,并查看 Docusaurus、Starlight、Sphinx、VitePress、Material for MkDocs 和 mdBook 的指南
- 配置和 CLI 参考
- 检测基准测试
贡献
欢迎贡献。开始之前,请阅读 CONTRIBUTING.md:其中介绍了环境设置、CI 强制执行的测试规则、如何认领问题,以及 AI 辅助贡献政策。标记为 good first issue 的问题是很好的入门选择。
请按照 SECURITY.md 中的说明,私下报告安全问题。所有参与者都必须遵守行为准则。
隐私政策
doc-scraper 不会收集任何信息:没有遥测、分析或账户。所有输出和状态都保留在你的计算机上,它只会发起你明确要求的爬取和获取操作所需的网络请求。完整政策:PRIVACY.md。
许可证
本项目采用 Apache-2.0 License 许可。
致谢
- GoQuery,用于 HTML 解析
- html-to-markdown,用于转换
- BadgerDB,用于状态持久化
- mcp-go,用于 MCP 服务实现
- go-readability,用于内容提取回退方案
- modernc.org/sqlite,用于纯 Go 爬取历史索引
- robotstxt,用于解析
robots.txt - yaml.v3,用于配置解析
- google/uuid,用于爬取任务 ID
- x/sync,用于限制并发的加权信号量
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。