MCP文档生成器
AI编码助手的智能文档抓取、矢量化和语义搜索。
概述
MCP文档生成器是一个模型上下文协议(MCP)服务器,它提供:
- 智能网页抓取:LLM引导的爬虫,智能地决定索引哪些文档页面
- 语义矢量化:Gemini text-embedding-004用于跨文档的语义搜索
- 动态本体:自动从文档中提取概念和关系
- 知识图谱:基于Neo4j的存储,具有完整的图遍历功能
- 混合搜索:结合向量相似度和全文搜索以获得最佳结果
特性
智能爬行
- LLM驱动的链接评估决定了要遵循哪些页面
- 遵守速率限制,避免文档服务器不堪重负
- 可配置的深度(从根URL开始1-5跳)
- 使用trafilatura进行智能内容提取
语义搜索
- 768维矢量的Gemini文本嵌入-004
- Neo4j矢量索引用于快速相似性搜索
- 使用Lucene进行全文搜索
- 结合两种方法的混合搜索
动态本体
- 自动概念提取(API、模式、实体)
- 关系推理(使用、扩展、要求等)
- 块到概念链接
- 概念共现分析
MCP集成
- 6个用于完整文档管理的工具
- 图形探索资源
- 常见任务的工作流提示
快速开始
1.先决条件
- Python 3.11+
- Docker(适用于Neo4j)
- LiteLLM网关或Gemini API密钥
2.安装
您可以安装 doc-builder-mcp 全球使用 pipx (推荐)或在本地虚拟环境中。
选项1:单线安装(推荐)
# Install the package
pipx install doc-builder-mcp
# Run the interactive Setup Wizard
doc-mcp-setup向导将:
- 检查Docker和Neo4j。
- 问你的 LiteLLM/Gemini证书.
- 配置 LLM模式 (LiteLLM vs Gemini Direct)。
- 生成安全
.env文件。
❓ Don't have pipx? Click here to install it
macOS:
brew install pipx
pipx ensurepath窗户:
winget install pipx
pipx ensurepathLinux(Debian/Ubuntu):
sudo apt install pipx
pipx ensurepath*安装pipx后重新启动终端。*
替代方案:标准Pip
如果你不想使用pipx:
pip install doc-builder-mcp
doc-mcp-setup选项2:手动开发设置
如果你想贡献或修改代码:
git clone https://github.com/Hexecu/mcp-doc-builder.git
cd mcp-doc-builder
make full-setup3.设置
运行交互式安装向导:
doc-mcp-setup或手动配置:
cp ../.env.example ../.env
# Edit .env with your configuration4.启动Neo4j
使用docker或使用提供的Makefile以本机方式启动Neo4j数据库:
make neo4j-up*这使用了 docker-compose.yml 启动Neo4j实例。*
5.运行服务器
# STDIO mode (for IDE integration)
make server-stdio
# HTTP mode (for API access)
make server配置
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
NEO4J_URI | Neo4j连接URI | bolt://localhost:7688 |
NEO4J_USERNAME | Neo4j用户名 | neo4j |
NEO4J_PASSWORD | Neo4j密码 | - |
LLM_MODE | litellm, gemini_direct,或 both | litellm |
LITELLM_BASE_URL | LiteLLM网关URL | - |
LITELLM_API_KEY | LiteLLM API密钥 | - |
LITELLM_MODEL | 型号名称 | gemini-2.5-flash |
CRAWLER_MAX_DEPTH | 最大爬行深度 | 2 |
CRAWLER_RATE_LIMIT | 请求之间的秒数 | 1.0 |
CRAWLER_MAX_PAGES | 每个源的最大页数 | 500 |
MCP工具
doc_ingest
摄取并索引文档网站。
{
"url": "https://nextjs.org/docs",
"name": "Next.js Docs",
"max_depth": 2
}doc_search
搜索索引文档。
{
"query": "how to use React hooks",
"limit": 10,
"search_mode": "hybrid"
}doc_context
获取一个主题的全面背景。
{
"topic": "authentication in Next.js",
"include_related": true
}doc_来源
列出所有索引文档源。
doc_refresh
刷新/重新索引文档源。
{
"source_id": "source_abc123",
"force": false
}医学博士
探索提取的概念和关系。
{
"source_id": "source_abc123",
"concept": "useState"
}IDE集成
您可以将此MCP服务器与任何兼容的AI编码助手一起使用。
反重力(谷歌Deepmind)
- 打开“反重力设置”或找到您的配置文件。
- 添加MCP服务器配置:
{
"mcpServers": {
"doc-builder": {
"command": "doc-mcp",
"args": [],
"env": {
"NEO4J_URI": "bolt://localhost:7688",
"NEO4J_PASSWORD": "your-password",
"LITELLM_API_KEY": "your-key"
}
}
}
}推荐的反重力自定义规则
为了最大限度地利用 doc-builder,将此特定规则添加到您的反重力全局配置文件或项目指南中(例如 .gemini/rules.md 或全局设置):
文档策略规则: “每当您遇到一个新的、未知的或最近更新的库、框架或API,而您的基础培训没有完全涵盖时,您必须主动使用doc_ingestMCP工具,用于抓取和索引其官方文档。在为不熟悉的工具编写复杂的实现代码之前,请务必查询doc_search或doc_context了解最佳实践和最新语法。"
光标
Cursor原生支持MCP。要添加服务器,请执行以下操作:
- 打开 光标设置 (Cmd/Ctrl+Shift+J)> 特性 > 主控程序.
- 点击 +添加新的MCP服务器.
- 将类型设置为
command. - 将名称设置为
doc-builder. - 将命令设置为
doc-mcp(假设您通过安装pipx). - 添加必要的环境变量(
NEO4J_PASSWORD,LITELLM_API_KEY等等)直接在光标UI环境部分中。
VS代码(含Claude Dev/Roo代码)
如果您在VS Code中使用Claude Dev、Roo Code或类似的MCP客户端:
- 打开MCP配置文件(通常位于
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json在Mac上)。 - 添加服务器条目:
{
"mcpServers": {
"doc-builder": {
"command": "doc-mcp",
"args": [],
"env": {
"NEO4J_URI": "bolt://localhost:7688",
"NEO4J_PASSWORD": "your-password",
"LITELLM_API_KEY": "your-key"
}
}
}
}建筑
mcp-doc-builder/
├── docker-compose.yml # Neo4j container
├── .env.example # Configuration template
└── server/
├── pyproject.toml # Python package
└── src/doc_builder/
├── main.py # MCP server entry
├── config.py # Settings
├── cli/ # Setup wizard & status
├── crawler/ # Web scraping
│ ├── spider.py # Async crawler
│ ├── parser.py # HTML parsing
│ └── agent.py # LLM link evaluation
├── vector/ # Vectorization
│ ├── embedder.py # Gemini embeddings
│ ├── chunker.py # Smart chunking
│ └── indexer.py # Neo4j vector index
├── ontology/ # Knowledge extraction
│ ├── extractor.py # Concept extraction
│ ├── metatag.py # Metatag processing
│ └── linker.py # Relationship building
├── kg/ # Neo4j graph
│ ├── neo4j.py # Async client
│ ├── repo.py # Query repository
│ └── schema.cypher # Database schema
├── llm/ # LLM integration
│ ├── client.py # LiteLLM wrapper
│ └── prompts/ # Prompt templates
├── mcp/ # MCP protocol
│ ├── tools.py # Tool definitions
│ ├── resources.py # Resource handlers
│ └── prompts.py # Workflow prompts
└── security/ # Auth & validation图形架构
节点(Doc\*前缀为命名空间分隔)
- DocSource:文档根(URL、名称、状态)
- DocPage:包含元数据的单个页面
- DocChunk:带有嵌入的矢量化内容块
- DocConcept:提取的概念(API、模式、实体)
- Docmetatag:页面元标签(og:*推特:*等等)
- DocCrawlJob:爬网作业跟踪
关系
(DocSource)-[:CONTAINS]->(DocPage)(DocPage)-[:LINKS_TO]->(DocPage)(DocPage)-[:HAS_CHUNK]->(DocChunk)(DocChunk)-[:MENTIONS]->(DocConcept)(DocConcept)-[:RELATES_TO]->(DocConcept)
命令行命令
# Interactive setup
doc-mcp-setup
# Health check
doc-mcp-status --doctor
# Run server
doc-mcp发展
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Type checking
mypy src/
# Linting
ruff check src/许可证
麻省理工学院
