该项目采用了大量的vibe编码,尚未准备好投入生产使用。可能会发生重大变化。使用风险自负。
______________________________________________________________________
docs mcp rs
 
用Rust实现的文档索引和搜索MCP(模型上下文协议)服务器。它可以抓取、索引文档网站,并通过MCP协议为AI助手提供智能搜索功能。
特性
- 混合搜索 -结合矢量搜索和全文搜索(FTS5)以获得更准确的结果
- 智能刮擦 -支持无头浏览器渲染,以抓取JavaScript渲染的文档网站
- 多版本管理 -支持对同一库的多个版本进行独立索引和管理
- MCP协议 -支持HTTP和stdio传输模式,可由Claude和Cursor等AI工具直接调用
- 网络界面 -内置Web UI,支持中文和英文,便于管理和搜索
- 高性能 -在Rust中实现,内存占用低,速度快
- 多个嵌入模型 -支持具有可配置自定义API端点的OpenAI和Google嵌入模型
安装
从源代码构建
git clone https://github.com/Eslzzyl/docs-mcp-rs.git
cd docs-mcp-rs
cargo build --release编译后的二进制文件位于 target/release/docs-mcp-rs.
快速开始
1.配置环境变量
复制示例配置文件:
cp .env.example .env编辑 .env 文件以配置API密钥:
# OpenAI API configuration
OPENAI_API_KEY=sk-xxxxxxx
OPENAI_API_BASE=https://api.openai.com/v1
# Embedding model (format: provider:model)
DOCS_MCP_EMBEDDING_MODEL=openai:text-embedding-3-small2.启动服务器
HTTP模式(默认):
docs-mcp-rs serve服务器将在以下时间启动 http://localhost:26301.参观 http://localhost:26301 打开Web UI。
stdio模式(用于MCP客户端集成):
docs-mcp-rs serve --stdio3.索引文件
使用CLI抓取文档:
# Index React documentation
docs-mcp-rs scrape react https://react.dev --version 18
# Index Vue documentation with max pages limit
docs-mcp-rs scrape vue https://vuejs.org/guide --version 3 --max-pages 5004.搜索文档
# Search indexed documentation
docs-mcp-rs search react "how to use hooks"
# Search in a specific version
docs-mcp-rs search vue "computed properties" --version 3命令行命令
serve -启动MCP服务器
docs-mcp-rs serve [OPTIONS]
Options:
-p, --port
HTTP server port [default: 26301]
--stdio Run in stdio modescrape -报废和索引文件
docs-mcp-rs scrape
[OPTIONS]
Arguments:
Library name
Starting URL
Options:
-v, --version Version number
-p, --max-pages Maximum pages to scrape [default: 1000]
-d, --max-depth Maximum crawl depth [default: 3]
-c, --concurrency Concurrency number [default: 5]search -搜索文档
docs-mcp-rs search
[OPTIONS]
Arguments:
Library name
Search query
Options:
-v, --version Version number
-l, --limit
Result limit [default: 5]list -列出索引库
docs-mcp-rs listremove -删除索引
docs-mcp-rs remove
[OPTIONS]
Arguments:
Library name
Options:
-v, --version Version number (removes entire library if not specified)MCP工具
此服务器为AI助手提供以下MCP工具:
| 工具名称 | 描述 |
|---|---|
scrape_docs | 报废和索引文档网站 |
search_docs | 搜索索引文档 |
list_libraries | 列出所有索引库 |
remove_library | 删除索引库 |
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
OPENAI_API_KEY | OpenAI API密钥 | - |
OPENAI_API_BASE | OpenAI API基础URL | https://api.openai.com/v1 |
GOOGLE_API_KEY | Google API密钥 | - |
GOOGLE_API_BASE | Google API基础URL | - |
DOCS_MCP_EMBEDDING_MODEL | 嵌入模型(provider:model 格式) | openai:text-embedding-3-small |
DOCS_MCP_EMBEDDING_DELAY_MS | 嵌入请求之间的延迟(毫秒) | 150 |
DOCS_MCP_EMBEDDING_MAX_RPM | 每分钟最大请求数 | 1800 |
DOCS_MCP_EMBEDDING_MAX_TPM | 每分钟最大代币数 | 800000 |
DOCS_MCP_EMBEDDING_MAX_RETRIES | 429个错误的最大重试次数 | 3 |
DOCS_MCP_EMBEDDING_RETRY_BASE_DELAY_MS | 基本重试延迟(毫秒) | 1000 |
技术架构
- Web框架: Axum
- 数据库:SQLite+SQLite-vec(向量扩展)
- MCP协议:rmcp
- 嵌入API:异步openai,reqwest
- HTML解析:刮刀,fast_html2md
- 浏览器自动化:无头_彩色
项目结构
docs-mcp-rs/
├── src/
│ ├── cli/ # Command-line argument parsing
│ ├── core/ # Core configuration and types
│ ├── embed/ # Embedding model integration
│ ├── events/ # Event bus
│ ├── mcp/ # MCP server implementation
│ ├── pipeline/ # Scraping pipeline management
│ ├── scraper/ # Web scraping
│ ├── splitter/ # Document chunking
│ ├── store/ # Data storage
│ └── web/ # Web interface
├── migrations/ # Database migrations
├── public/ # Static assets
└── data/ # Data directory相关项目
- docs-mcp服务器 -原始Types/Node.js实现
许可证
MIT许可证
