DocMCP 是一个用于对大型语言模型(LLMs)的最新文档进行索引的系统,它支持通过 PostgreSQL 和 pgVector 集成到 AI IDE 中,旨在提供高效的文档存储、处理和检索功能。
使用以下命令安装项目所需的依赖:
npm install
运行以下命令启动 DocMCP 系统:
node src/main.ts
DocMCP 提供以下核心功能:
文档输入
add_documentation
MCP 工具提供一个 URL。网络爬取(CrawlerService)
robots.txt
规则。文档处理(DocumentProcessorService)
分块与嵌入生成(ChunkService)
作业完成(JobService)
查询与检索
query_documentation
MCP 工具发送查询。使用以下命令安装项目所需的依赖:
npm install
运行以下命令启动 DocMCP 系统:
node src/main.ts
export class CrawlerService {
async crawlUrl(url: string): Promise<Document> {
// 实现爬虫逻辑
}
}
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 提供了一个高效且灵活的文档管理解决方案,适用于需要大规模文档处理和检索的场景。通过结合网络爬取、文档处理和向量嵌入技术,系统能够满足多种应用场景的需求。