AnyDocsMCP
删除任何文档站点并将其注入到AI编码代理的上下文中。
使用 帆板运动, 光标, 克劳德代码,以及 反重力(朱尔斯/双子座).
为什么这有效
直接嵌入的8KB压缩文档索引 AGENTS.md 实现了a 100%通过率,而技能最高达到79%。被动上下文优于主动检索,因为没有决策点——代理不需要决定“我应该查找这个吗?”信息已经存在了。AnyDocsMCP将此模式应用于 任何 文档网站,而不仅仅是Next.js。scraper生成一个紧凑的管道分隔索引,大小约为500字节,将代理指向它可以按需读取的单个文档文件。这将使代理从预训练导向的推理转变为检索导向的推理。
运作原理
You AnyDocs MCP Your Project
│ │ │
│ "scrape react docs" │ │
├──────────────────────────────>│ │
│ CLI command to run │ │
││ 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/ │- 刮擦 --MCP服务器返回CLI命令。你运行它来抓取文档网站。
- 商店 --报废文档全局存储在
%APPDATA%/AnyDocsMCP/v2/(跨项目共享)。 - 注入 --文档会被复制到您的项目中,并添加一个紧凑的索引(约500字节)作为IDE的永远在线规则。
- 使用 --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// | .windsurf/rules/docs-.md | trigger: always_on |
| 光标 | .cursor/docs// | .cursor/rules/docs-.mdc | alwaysApply: true |
| 克劳德代码 | .docs// | CLAUDE.md | `` 标记 |
| 反重力 | .agent/docs// | .agent/rules/docs-.md | 始终打开 |
刮板管道
刮板采用7级LLM辅助管道:
- 引擎选择 --cURL与Selenium(通过链接计数启发式自动检测SPA)
- URL发现 --网站地图+BFS快速示例(使用Selenium作为SPA)
- LLM分析 --作用域规则+带重试循环的CSS选择器
- 样本爬行 --5页用于选择器优化
- LLM精炼 --根据实际输出改进修剪选择器
- 完全爬网 --所有经过质量检查+跨页数据删除的页面
- 索引生成 --紧凑型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代理的上下文中。仅从可信来源抓取文档。在生产中使用前审查内容。
许可证
麻省理工学院——见 许可证
