README
🚀 DocMCP 文档
DocMCP 是一个用于对大型语言模型(LLMs)的最新文档进行索引的系统,它支持通过 PostgreSQL 和 pgVector 集成到 AI IDE 中,旨在提供高效的文档存储、处理和检索功能。
🚀 快速开始
安装依赖
使用以下命令安装项目所需的依赖:
npm install
启动应用
运行以下命令启动 DocMCP 系统:
node src/main.ts
✨ 主要特性
DocMCP 提供以下核心功能:
-
文档输入
- 用户通过
add_documentationMCP 工具提供一个 URL。 - 系统创建一个状态为“待处理”的作业记录。
- 作业被分配标签以便分类和过滤。
- 用户通过
-
网络爬取(CrawlerService)
- 爬虫遵守
robots.txt规则。 - 按指定的最大深度跟踪链接。
- 捕获 HTML 内容和元数据。
- 创建与父作业关联的文档记录。
- 爬虫遵守
-
文档处理(DocumentProcessorService)
- 清理 HTML 并转换为结构化 Markdown。
- 提取元数据(包信息、版本、文档类型)。
- 建立文档之间的父子关系。
- 更新作业进度。
-
分块与嵌入生成(ChunkService)
- 将文档分割为语义块以提高检索效率。
- 使用 AWS Bedrock 生成向量嵌入。
- 将嵌入存储在 PostgreSQL 中,使用 pgVector 扩展。
- 保留分块元数据和文档引用。
-
作业完成(JobService)
- 更新作业状态为“已完成”。
- 计算并存储文档统计信息。
- 提供文档查询功能。
-
查询与检索
- 用户通过
query_documentationMCP 工具发送查询。 - 系统将查询转换为向量嵌入。
- 执行相似性搜索以找到相关块。
- 返回格式化结果,包括来源信息。
- 支持按标签、状态和元数据进行过滤。
- 用户通过
📦 安装指南
安装依赖
使用以下命令安装项目所需的依赖:
npm install
启动应用
运行以下命令启动 DocMCP 系统:
node src/main.ts
💻 使用示例
基础用法
网络爬取服务(crawler.service.ts)
export class CrawlerService {
async crawlUrl(url: string): Promise<Document> {
// 实现爬虫逻辑
}
}
文档处理服务(document-processor.service.ts)
export class DocumentProcessorService {
async processDocument(document: Document): Promise<ProcessedDocument> {
// 实现文档处理逻辑
}
}
📚 详细文档
项目结构
docmcp/
├── prisma/ # 数据库模式和迁移
│ └── schema.prisma # Prisma 模型定义和数据库配置
├── src/
│ ├── config/ # 应用程序配置
│ │ └── database.ts # 数据库连接设置
│ ├── generated/ # 生成代码(Prisma 客户端)
│ ├── services/ # 核心服务模块
│ │ ├── crawler.service.ts # 网站爬取功能
│ │ ├── document.service.ts # 文档管理
│ │ ├── document-processor.service.ts # 文档处理和转换
│ │ ├── job.service.ts # 异步作业管理
│ │ ├── chunk.service.ts # 文档分块和向量操作
│ │ └── mcp-tools/ # MCP 集成工具
│ │ ├── add-documentation.tool.ts # 添加新文档的工具
│ │ ├── get-job-status.tool.ts # 检查作业状态
│ │ ├── list-documentation.tool.ts # 列出可用文档
│ │ ├── query-documentation.tool.ts # 查询文档
│ │ ├── sample.tool.ts # 示例工具实现
│ │ └── index.ts # 工具注册和导出
│ ├── types/ # TypeScript 类型定义
│ │ └── mcp.ts # MCP 工具接口定义
│ ├── utils/ # 工具函数
│ │ ├── logger.ts # 日志实用工具
│ │ └── others.ts # 其他功能
│ └── main.ts # 应用程序入口点
├── package.json # 依赖管理文件
└── README.md # 项目说明文档
🔚 总结
DocMCP 提供了一个高效且灵活的文档管理解决方案,适用于需要大规模文档处理和检索的场景。通过结合网络爬取、文档处理和向量嵌入技术,系统能够满足多种应用场景的需求。
Scan to contact