Qdrant MCP Server for RAG

Qdrant MCP Server for RAG

用于 RAG 的 Model Context Protocol (MCP) 服务器实现。

概述

这是一个基于 Qdrant 向量数据库的模型上下文协议(MCP)服务器,专为检索增强生成(RAG)设计。它提供向量搜索功能,可与支持 MCP 的 LLM(如 Claude Desktop)集成。

前提条件

  • Node.js v16+
  • Qdrant 实例(本地或云端)
  • 可选:OpenAI API 密钥(用于生产环境)

基本设置

  1. 克隆并安装:

    git clone [仓库URL]
    cd [仓库目录]
    npm install
    
  2. 配置环境变量 (.env 文件):

    QDRANT_URL=http://localhost:6333
    QDRANT_COLLECTION=documents
    QDRANT_API_KEY=your_api_key_if_needed
    PORT=3000
    
  3. 构建并启动:

    npm run build
    npm start
    

Docker 部署

# 构建镜像
docker build -t mcp/qdrant-server .

# 运行容器
docker run -p 3000:3000 \
  -e QDRANT_URL=http://your-qdrant-instance:6333 \
  -e QDRANT_COLLECTION=documents \
  -e QDRANT_API_KEY=your_api_key_if_needed \
  mcp/qdrant-server

与 Claude Desktop 集成

添加到 claude_desktop_config.json:

{
  "mcpServers": {
    "qdrant-retrieval": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm", 
        "-e", "QDRANT_URL", 
        "-e", "QDRANT_COLLECTION", 
        "-e", "QDRANT_API_KEY", 
        "mcp/qdrant-server"
      ],
      "env": {
        "QDRANT_URL": "http://your-qdrant-instance:6333",
        "QDRANT_COLLECTION": "documents",
        "QDRANT_API_KEY": "your_api_key_if_needed"
      }
    }
  }
}

或NPM方式:

{
  "mcpServers": {
    "qdrant-retrieval": {
      "command": "npx",
      "args": ["-y", "qdrant-mcp-server"],
      "env": {
        "QDRANT_URL": "http://your-qdrant-instance:6333",
        "QDRANT_COLLECTION": "documents",
        "QDRANT_API_KEY": "your_api_key_if_needed"
      }
    }
  }
}

可用工具

  • retrieve_from_qdrant
    • 功能:执行向量相似性搜索
    • 参数:
      • query: 检索查询(字符串)
      • limit: 结果数量(可选,默认3)
      • scoreThreshold: 最小相似度分数(可选,默认0.7)

向量数据库选择

支持两种向量数据库,通过 DATABASE_TYPE 环境变量选择:

Qdrant (默认)

DATABASE_TYPE=qdrant
QDRANT_URL=http://localhost:6333
QDRANT_API_KEY=your_api_key_if_needed
COLLECTION_NAME=your_collection_name

Chroma

DATABASE_TYPE=chroma
CHROMA_URL=http://localhost:8000
COLLECTION_NAME=your_collection_name

启动Chroma服务器:

docker run -p 8000:8000 chromadb/chroma

自定义

  • 修改嵌入模型:更新 embedding-utils.ts 中的 generateEmbedding 函数
  • 调整搜索响应:修改 qdrant-types.tsretrieveFromQdrant 工具

基于 MIT 许可证发布。