协作RAG MCP服务器
一种模型上下文协议(MCP)服务器,提供具有多租户支持的检索增强生成(RAG)功能。
特性
- 多租户RAG:支持多个独立租户
- 文档上传:通过文件路径或base64编码上传文档
- 矢量搜索:使用OpenAI嵌入和FAISS进行相似性搜索
- 多种格式:支持PDF、DOCX和纯文本文件
- MCP集成:适用于兼容MCP的客户端,如Claude Desktop
设置
- 安装依赖项:
pip install -r requirements.txt- 在中设置OpenAI API密钥
.env:
OPENAI_API_KEY=your_api_key_here用法
与Cline整合
要将此MCP服务器与Cline一起使用:
- 克隆或下载此存储库 到您的本地计算机
- 安装依赖项 如上文所示
- 配置Cline 要使用此MCP服务器,请将其添加到MCP配置中:
选项1:使用mcp.json(推荐)
复制提供的 mcp.json 将文件添加到Cline配置目录,或将此服务器添加到现有的MCP配置中:
{
"mcpServers": {
"collaborative-rag": {
"command": "python",
"args": ["server.py"],
"cwd": "/path/to/collaborative-rag-mcp-server",
"env": {
"OPENAI_API_KEY": "your_api_key_here"
}
}
}
}选项2:直接临床配置
在Cline的设置中,添加此MCP服务器:
- 服务器名称:
collaborative-rag - 命令:
python - 参数:
["server.py"] - 工作目录:
/path/to/collaborative-rag-mcp-server - 环境变量:
OPENAI_API_KEY=your_api_key_here
- 重新启动Cline 加载新的MCP服务器
- 使用工具 在您的Cline对话中:
- create_tenant -为文档隔离创建新租户 - upload_document -上传文档(PDF、DOCX、TXT) - query -询问有关上传文档的问题 - list_documents -列出租户的文档
作为独立的MCP服务器
为其他MCP客户端运行服务器:
python server.py直接使用Python
看 demo.py 完整示例:
from server import create_tenant, upload_document, query
from server import CreateTenantParams, UploadParams, QueryParams
import base64, json
# 1. Create tenant
res = create_tenant(CreateTenantParams(name="my-tenant"))
tenant_name = json.loads(res.content[0].text)["tenant_name"]
# 2. Upload document
with open("document.txt", "rb") as f:
b64 = base64.b64encode(f.read()).decode()
upload_document(UploadParams(
tenant_id=tenant_name,
filename="document.txt",
mime_type="text/plain",
base64=b64
))
# 3. Query
result = query(QueryParams(
tenant_id=tenant_name,
question="What is this document about?",
top_k=5
))
answer = json.loads(result.content[0].text)
print(answer["answer"])演示
运行演示以查看系统运行情况:
python demo.py这将:
- 创建租户
- 上传包含3个事实的文档
- 就每个事实提问
- 显示人工智能生成的答案
可用工具
create_tenant:创建新租户upload_document:上传和处理文件query:询问有关上传文档的问题list_documents:列出租户的文档
可用资源
rag://{tenant_id}/documents:租户的文件列表rag://{tenant_id}/doc/{document_id}:特定文件的大块
建筑
- 数据库:存储租户、文档、块和矢量元数据
- 费斯:用于快速相似性搜索的内存向量索引
- OpenAI:嵌入和聊天完成
- FastMCP:MCP服务器框架
