RAG检索服务器

一个通用的检索增强生成(RAG)模型上下文协议(MCP)服务器,支持可插拔的嵌入提供商和向量存储。

  • by MaryamZi
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 MaryamZi/rag-retrieval-mcp

使用说明

用于RAG检索的MCP服务器

一种通用的检索增强生成(RAG)模型上下文协议(MCP)服务器,具有可插入的嵌入提供者和向量存储。

为什么是这个服务器?

供应商MCP服务器通常只支持其(自己的)集成嵌入模型。如果你的索引使用外部嵌入(例如OpenAI),这些服务器就无法查询它。这个服务器填补了这个空白——它将你的查询嵌入到你选择的提供者中,然后搜索任何支持的向量存储。

目前支持

嵌入提供者:

  • OpenAI(text-embedding-3-small, text-embedding-3-large, text-embedding-ada-002等等)

矢量存储:

  • 松果
  • pgvector(PostgreSQL)

工具

retrieve

搜索知识库并返回相关内容。

参数:

  • query (string,必填)--查找相关内容的搜索查询。

退货 一个JSON结果数组,每个结果都有 text, score,以及 metadata 领域。

安装并运行

直接与 uvx (无需安装):

uvx rag-retrieval-mcp[all]

或者用pip安装:

pip install rag-retrieval-mcp[all]
rag-retrieval-mcp

MCP客户端配置

{
  "mcpServers": {
    "rag-retrieval": {
      "command": "uvx",
      "args": ["rag-retrieval-mcp[all]"],
      "env": {
        "OPENAI_API_KEY": "your-openai-api-key",
        "PINECONE_API_KEY": "your-pinecone-api-key",
        "PINECONE_HOST": "your-pinecone-index-host-url"
      }
    }
  }
}

环境变量

变量 必填 默认 描述
RAG_EMBEDDING_PROVIDER 没有 openai 嵌入要使用的提供程序
RAG_VECTOR_STORE 没有 pinecone 要使用的矢量存储
RAG_TOP_K 没有 5 要返回的结果数
OPENAI_API_KEY 是(如果使用OpenAI) OpenAI API密钥
OPENAI_EMBEDDING_MODEL 没有 text-embedding-3-small OpenAI嵌入模型
PINECONE_API_KEY 是(如果使用Pinecone) Pinecone API键
PINECONE_HOST 是(如果使用松果) 松果索引主机URL
PINECONE_TEXT_FIELD 没有 text 包含文本的元数据字段
PGVECTOR_CONNECTION_STRING 是(如果使用pgvector) PostgreSQL连接字符串
PGVECTOR_TABLE 没有 embeddings 包含向量的表名
PGVECTOR_TEXT_COLUMN 没有 text 包含文本内容的列
PGVECTOR_EMBEDDING_COLUMN 没有 embedding 包含嵌入向量的列

添加新提供商

实施 EmbeddingProvider 或 VectorStore 抽象基类并将其注册到 server.py的工厂功能。看 src/rag_retrieval_mcp/embedding_providers/base.py 和 src/rag_retrieval_mcp/vector_stores/base.py 对于接口。

许可证

Apache许可证2.0