集成MCP的交互式SQLite RAG服务器
一个将语义搜索与LLM工具集成相结合的全栈RAG(检索增强生成)系统。使用Node.js、React、SQLite向量搜索和FastMCP构建,实现无缝的AI代理集成。
特性
- 文档管理:对具有自动向量嵌入的知识文档进行CRUD操作
- 语义搜索:具有元数据过滤和相似性评分的自然语言搜索
- 矢量存储器:SQLite具有SQLite-vss扩展,用于高效的向量相似性搜索
- MCP集成:FastMCP服务器为Claude、OpenAI和其他LLM框架公开rag_search工具
- 网络界面:用于文档管理和搜索测试的现代React UI
- 健康监测:实时系统运行状况仪表板
- 多数据库支持:存储库模式支持PostgreSQL迁移
快速开始
先决条件
- Node.js 18+ (推荐LTS)
- npm 9+ 或 纱线1.22+
- OpenAI API密钥 (用于嵌入)
安装
- 克隆存储库
git clone https://github.com/your-org/interactive-sqlite-rag-mcp.git
cd interactive-sqlite-rag-mcp- 安装后端依赖项
cd backend
npm install- 安装前端依赖项
cd ../frontend
npm install配置
- 后端环境变量
cd backend
cp .env.example .env
# Edit .env with your OpenAI API key- 前端环境变量 (可选,默认值应适用于开发)
cd ../frontend
cp .env.example .env运行应用程序
- 启动后端服务器
cd backend
npm run dev服务器将于启动http://localhost:3000
- 启动前端(在另一个终端中)
cd frontend
npm run dev前端将从开始http://localhost:5173
- 访问应用程序
- Web界面:http://localhost:5173 - API文件:http://localhost:3000/api/docs(实施时) - MCP服务器:http://localhost:3001(用于LLM集成)
API终点
文件
POST /api/documents-创建具有自动嵌入功能的文档GET /api/documents-列出文档(分页)GET /api/documents/:id-按ID获取文档PUT /api/documents/:id-更新文档DELETE /api/documents/:id-删除文档
搜索
POST /api/search-带过滤器的语义搜索
健康
GET /api/health-系统健康状态
主控程序
GET /mcp/tools-列出可用的MCP工具
MCP集成
该系统公开了一个 rag_search LLM框架工具:
{
"name": "rag_search",
"description": "Search the knowledge base using semantic similarity",
"parameters": {
"query": "string (required)",
"filters": "object (optional)",
"limit": "number (optional, default 10)"
}
}Claude桌面配置
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"rag-server": {
"command": "node",
"args": ["/path/to/interactive-sqlite-rag-mcp/backend/src/mcp/server.js"],
"env": {
"OPENAI_API_KEY": "your-api-key"
}
}
}
}发展
测试
# Backend tests
cd backend
npm test
npm run test:coverage
# Frontend tests
cd frontend
npm test代码检查
# Backend
cd backend
npm run lint
npm run lint:fix
# Frontend
cd frontend
npm run lint
npm run lint:fix数据库
# Run migrations
cd backend
npm run migrate
# Seed with sample data
npm run seed建筑
后端结构
backend/
├── src/
│ ├── models/ # Sequelize models
│ ├── repositories/ # Database abstraction layer
│ │ ├── adapters/ # SQLite/PostgreSQL adapters
│ ├── services/ # Business logic
│ ├── api/ # Express routes & middleware
│ └── mcp/ # FastMCP server
├── tests/ # Test suites
└── migrations/ # Database migrations前端结构
frontend/
├── src/
│ ├── components/ # React components
│ ├── pages/ # Page components
│ ├── services/ # API clients
│ └── lib/ # Utilities
└── tests/ # Component tests演出
- 搜索延迟:对于\<1K文档的查询,p95小于200ms
- 文档创建:\<500ms,包括嵌入生成
- 内存使用:典型工作负载小于512MB
- 并发用户:支持10+个同时搜索请求
贡献
- 遵循项目的 宪法
- 实施前编写测试(TDD)
- 确保最低80%的测试覆盖率
- 通过所有检查
- 更新面向用户的更改文档
许可证
MIT许可证-有关详细信息,请参阅许可证文件。
支持
- 问题:GitHub问题
- 讨论:GitHub讨论
- 文档:请参阅文档/目录
