文档爬取与注入工具

AnyDocsMCP 是一个文档爬取与注入工具,能够从任何文档站点爬取内容并注入到AI编程代理的上下文中,支持多种IDE。

  • by jusedit
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 jusedit/any-docs-mcp

使用说明

AnyDocsMCP

删除任何文档站点并将其注入到AI编码代理的上下文中。

使用 帆板运动, 光标, 克劳德代码,以及 反重力(朱尔斯/双子座).

着陆页 | MCP服务器文档 | 刮刀文档

为什么这有效

受启发于 @gaojude/next-agents-md Vercel对 检索导向推理:

直接嵌入的8KB压缩文档索引 AGENTS.md 实现了a 100%通过率,而技能最高达到79%。被动上下文优于主动检索,因为没有决策点——代理不需要决定“我应该查找这个吗?”信息已经存在了。

AnyDocsMCP将此模式应用于 任何 文档网站,而不仅仅是Next.js。scraper生成一个紧凑的管道分隔索引,大小约为500字节,将代理指向它可以按需读取的单个文档文件。这将使代理从预训练导向的推理转变为检索导向的推理。

运作原理

  You                          AnyDocs MCP                    Your Project
   │                               │                              │
   │  "scrape react docs"          │                              │
   ├──────────────────────────────>│                              │
   │  CLI command to run           │                              │
   │<──────────────────────────────┤                              │
   │                               │                              │
   │  (run scrape command)         │                              │
   ├──────────────────────────────>│  stored in AppData           │
   │                               ├─────────────────>            │
   │  "add react-docs to project"  │                              │
   ├──────────────────────────────>│  copy docs + inject index    │
   │                               ├─────────────────────────────>│
   │                               │                              │
   │  AI agent now has persistent  │  .windsurf/rules/            │
   │  access to react docs         │  .windsurf/docs/react-docs/  │
  1. 刮擦 --MCP服务器返回CLI命令。你运行它来抓取文档网站。
  2. 商店 --报废文档全局存储在 %APPDATA%/AnyDocsMCP/v2/ (跨项目共享)。
  3. 注入 --文档会被复制到您的项目中,并添加一个紧凑的索引(约500字节)作为IDE的永远在线规则。
  4. 使用 --AI代理在每次对话中都能看到索引,并按需读取单个文档文件。

快速开始

先决条件

  • Python 3.10+(用于scraper)
  • Node.js 18+(用于MCP服务器)
  • OpenRouter API密钥 (用于LLM动力刮削)
  • Chrome/Chromium(可选,适用于SPA网站)

安装

git clone https://github.com/jusedit/any-docs-mcp.git
cd any-docs-mcp

# Scraper
cd scraper && pip install -r requirements.txt

# MCP Server
cd ../mcp-server && npm install && npm run build

配置IDE

添加到IDE的MCP配置中:

{
  "mcpServers": {
    "anydocs": {
      "command": "node",
      "args": ["/path/to/any-docs-mcp/mcp-server/dist/index.js"],
      "env": {
        "OPENROUTER_API_KEY": "sk-or-...",
        "ANYDOCS_IDE": "windsurf"
      }
    }
  }
}

集 ANYDOCS_IDE 到您的IDE: windsurf (默认), cursor, claude,或 antigravity.

看 MCP服务器自述文件 查看完整的IDE配置示例。

用法

配置后,AI代理有6个可用工具:

工具 说明
scrape_docs 返回CLI命令以抓取文档站点
list_docs 列出全局存储中的所有文档集
remove_docs 从全局存储中删除文档集
add_docs_to_project 将文档复制到项目中+将索引作为IDE规则注入
remove_docs_from_project 从项目中删除文档+规则
list_project_docs 列出当前添加到此项目的文档

IDE支持

IDE 文档路径 规则路径 格式
帆板运动 .windsurf/docs/<name>/ .windsurf/rules/docs-<name>.md trigger: always_on
光标 .cursor/docs/<name>/ .cursor/rules/docs-<name>.mdc alwaysApply: true
克劳德代码 .docs/<name>/ CLAUDE.md <!-- ANYDOCS --> 标记
反重力 .agent/docs/<name>/ .agent/rules/docs-<name>.md 始终打开

刮板管道

刮板采用7级LLM辅助管道:

  1. 引擎选择 --cURL与Selenium(通过链接计数启发式自动检测SPA)
  2. URL发现 --网站地图+BFS快速示例(使用Selenium作为SPA)
  3. LLM分析 --作用域规则+带重试循环的CSS选择器
  4. 样本爬行 --5页用于选择器优化
  5. LLM精炼 --根据实际输出改进修剪选择器
  6. 完全爬网 --所有经过质量检查+跨页数据删除的页面
  7. 索引生成 --紧凑型AGENTS.md(约500字节,无LLM)

项目结构

any-docs-mcp/
  scraper/                 # Python scraping engine
    cli.py                 # CLI entry point
    pipeline.py            # 7-step orchestrator
    engine_selector.py     # cURL vs Selenium decision
    discovery.py           # URL discovery (sitemap + BFS)
    llm_analyzer.py        # LLM-powered scope + selector analysis
    crawler.py             # Parallel page fetcher + HTML-to-MD
    content_cleaner.py     # UI artifact removal
    dedup.py               # Cross-page deduplication
    grouper.py             # AGENTS.md index generator
    tests/                 # Unit tests (53 tests)
    requirements.txt
  mcp-server/              # TypeScript MCP server
    src/
      index.ts             # MCP tools + handlers
      storage.ts           # AppData docs management
      ide-adapter.ts       # IDE-specific adapters
    package.json
  docs/                    # GitHub Pages landing page
  .env.example             # Environment variable template
  LICENSE                  # MIT

环境变量

变量 必填 默认 描述
OPENROUTER_API_KEY 是* -- 用于LLM驱动的抓取的API密钥
ANYDOCS_IDE 没有 windsurf 目标IDE
ANYDOCS_STORAGE_ROOT 没有 %APPDATA%/AnyDocsMCP/v2/ 覆盖存储路径
ANYDOCS_SCRAPER_PATH 否 自动检测 覆盖刮板路径

安全

使用风险自负。 废弃的内容被注入到AI代理的上下文中。仅从可信来源抓取文档。在生产中使用前审查内容。

许可证

麻省理工学院——见 许可证