用于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-mcpMCP客户端配置
{
"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
