本项目实现了一个带有MCP服务器的检索增强生成(RAG)系统,该系统允许Claude访问并查询大型PDF文件中的信息。它使用Chroma作为向量数据库。
npm install
python3 -m pip install chromadb
.env文件以配置环境变量:
OPENAI_API_KEY=your_openai_api_key
PORT=3000 # MCP服务器的端口
将您的PDF文件放置在data/pdfs目录下:
data/
pdfs/
your-file1.pdf
your-file2.pdf
启动Chroma数据库服务器:
./start-chroma.sh
或者手动启动:
python3 -m chromadb.cli.cli run --path ./data/chroma_db
这将在http://localhost:8000启动一个Chroma服务器。
在新的终端中处理PDF文件并创建向量存储:
npm run ingest
这将:
在另一个终端中启动服务器:
npm run dev
MCP服务器将在:http://localhost:3000/api/mcp/query可用。
您可以使用Claude或REST客户端查询系统:
POST http://localhost:3000/api/mcp/query
Content-Type: application/json
{
"query": "文档中关于...的内容是什么",
"topK": 5 # 可选,返回的结果数量
}
要通过MCP与Claude一起使用此系统:
src/
index.ts - 主服务器文件ingest.ts - 处理PDF文件的脚本services/
documentProcessor.ts - PDF处理和Chroma数据库操作mmpService.ts - 供Claude使用的MCP服务routes/
mcpRoutes.ts - MCP的API路由utils/
env.ts - 环境变量工具data/
pdfs/ - 存放PDF文件的目录chroma_db/ - 存放Chroma向量数据库的目录start-chroma.sh - 启动Chroma服务器的脚本MIT </中文翻译>