项目简介

mcp-server-qdrant 是一个基于 Model Context Protocol (MCP) 的服务器实现,专注于利用 Qdrant 向量数据库为大型语言模型 (LLM) 应用提供高效的上下文信息管理和检索服务。它允许 LLM 客户端通过标准化的 MCP 协议,存储文本信息及其元数据到 Qdrant,并进行快速的语义搜索,从而增强 LLM 应用的记忆和知识检索能力。

主要功能点

  • 文本信息存储与管理: 能够将文本信息连同可选的 JSON 元数据存储到 Qdrant 向量数据库中,构建可扩展的知识库。
  • 语义搜索: 支持基于内容的语义搜索,能够根据用户查询在知识库中找到相关信息,即使查询与存储的文本不完全匹配也能有效检索。
  • FastEmbed 集成: 内置 FastEmbed 文本嵌入模型,能够快速高效地将文本转换为向量表示,提升语义搜索的性能。
  • 工具化操作: 提供 'qdrant-store' 和 'qdrant-find' 两个工具,分别用于存储信息和检索信息,方便 LLM 客户端调用。
  • 灵活配置: 支持通过环境变量进行配置,包括 Qdrant 连接信息、集合名称、嵌入模型等,方便部署和定制。
  • Docker 支持: 提供 Docker 镜像和 Docker Compose 配置,方便快速部署和容器化管理。

安装步骤

使用 pip 安装

pip install mcp-server-qdrant

从源代码安装

git clone https://github.com/Jimmy974/mcp-server-qdrant.git
cd mcp-server-qdrant
make setup

服务器配置

MCP客户端需要配置以下信息以连接到 mcp-server-qdrant 服务器:

{
  "serverName": "qdrant",
  "command": "mcp-server-qdrant",
  "args": ["--transport", "stdio"]
}

配置参数说明:

  • 'serverName': 服务器名称,可以自定义,例如 "qdrant"。
  • 'command': 启动 MCP 服务器的命令,这里是 'mcp-server-qdrant',这是在安装时通过 'setup.py' 中的 'entry_points' 配置的。
  • 'args': 传递给启动命令的参数,'["--transport", "stdio"]' 指定使用 'stdio' 作为传输协议。 mcp-server-qdrant 还支持 'sse' 传输协议。

环境变量配置:

mcp-server-qdrant 服务器依赖以下环境变量进行配置。你可以创建 '.env' 文件并根据需要修改:

# Qdrant 配置
QDRANT_URL=http://localhost:6333  # Qdrant 服务器 URL
QDRANT_API_KEY=your-api-key      # Qdrant API 密钥 (如果需要)

# 集合名称
COLLECTION_NAME=memories         # Qdrant 集合名称,用于存储数据

# 嵌入模型配置
EMBEDDING_PROVIDER=fastembed      # 嵌入提供器,默认为 fastembed
EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2 # 嵌入模型名称,默认为 all-MiniLM-L6-v2

在运行服务器之前,请确保已配置好 Qdrant 服务器并设置了正确的环境变量。

基本使用方法

  1. 启动服务器: 根据安装方式,选择以下命令之一启动 mcp-server-qdrant 服务器。

    • 本地运行: 'python -m mcp_server_qdrant.main --transport stdio' 或 'make run'
    • Docker 运行: 'docker-compose up'
  2. MCP 客户端调用: 使用 MCP 客户端 (例如 Cursor 编辑器) 连接到 mcp-server-qdrant 服务器。客户端可以通过 JSON-RPC 协议调用服务器提供的工具。

    • qdrant-store 工具: 用于存储信息到 Qdrant 数据库。

      {
        "method": "tool/qdrant-store",
        "params": {
          "information": "需要存储的文本信息",
          "metadata": { "key": "value" }  // 可选的 JSON 元数据
        }
      }
    • qdrant-find 工具: 用于在 Qdrant 数据库中进行语义搜索。

      {
        "method": "tool/qdrant-find",
        "params": {
          "query": "搜索查询语句",
          "limit": 10,                     // 可选,返回结果数量限制,默认为 10
          "score_threshold": 0.7,            // 可选,相似度阈值,默认为 0.7
          "filter_metadata": { "key": "value" } // 可选,元数据过滤器
        }
      }

    服务器会返回 JSON-RPC 响应,包含工具执行结果。对于 'qdrant-find' 工具,返回的结果会包含从 Qdrant 检索到的相关信息。

通过以上步骤,你可以使用 mcp-server-qdrant 快速搭建一个基于 Qdrant 向量数据库的 MCP 服务器,为 LLM 应用提供强大的上下文记忆和检索能力。

信息

分类

数据库与文件