使用说明
带MCP服务器的PDF RAG系统
该项目实现了一个带有MCP服务器的检索增强生成(RAG)系统,允许Claude访问和查询大型PDF文件中的信息。它使用Chroma作为矢量数据库。
先决条件
- Node.js(v14或更高版本)
- npm(v6或更高版本)
- 安装ChromaDB的Python 3.9+
- OpenAI API密钥(用于嵌入)
设置
- 克隆存储库
- 安装依赖项:
npm install - 安装Python依赖项:
python3 -m pip install chromadb - 通过编辑来配置环境变量
.env文件:OPENAI_API_KEY=your_openai_api_key PORT=3000 # Port for the MCP server
用法
1.添加PDF文件
将您的PDF文件放在 data/pdfs 目录:
data/
pdfs/
your-file1.pdf
your-file2.pdf
2.启动Chroma服务器
启动Chroma数据库服务器:
./start-chroma.sh
或手动:
python3 -m chromadb.cli.cli run --path ./data/chroma_db
这将在以下位置启动Chroma服务器http://localhost:8000.
3.摄取PDF
在新终端中,处理PDF并创建矢量存储:
npm run ingest
这将:
- 从PDF中提取文本
- 将文本分割成块
- 创建嵌入
- 将矢量存储在Chroma数据库中
4.启动MCP服务器
在另一个终端中,启动服务器:
npm run dev
MCP服务器将在以下地点提供:http://localhost:3000/api/mcp/query
5.查询MCP服务器
您可以使用Claude或REST客户端查询系统:
POST http://localhost:3000/api/mcp/query
Content-Type: application/json
{
"query": "What does the document say about...",
"topK": 5 # Optional, number of results to return
}
克劳德集成
通过MCP与Claude一起使用:
- 配置Claude以使用MCP端点
- 确保Claude可以访问此服务器
- 现在,Claude可以通过RAG系统查询您的PDF内容
项目结构
src/index.ts-主服务器文件ingest.ts-处理PDF的脚本services/documentProcessor.ts-PDF处理和Chroma数据库操作mcpService.ts-克劳德的MCP服务
routes/mcpRoutes.ts-MCP的API路线
utils/env.ts-环境变量实用程序
data/pdfs/-PDF文件目录chroma_db/-Chroma矢量数据库目录
start-chroma.sh-启动Chroma服务器的脚本
许可证
麻省理工学院