使用说明

项目简介

本项目 'Qdrant 记忆上下文服务器' 是一个基于 Model Context Protocol (MCP) 构建的后端服务,它利用 Qdrant 向量数据库作为记忆存储,并提供工具让 LLM 应用能够存储和检索信息,从而为 LLM 应用提供上下文支持。

主要功能点

  • 记忆存储 (qdrant-store): 允许 LLM 应用将文本信息及其关联的元数据存储到 Qdrant 向量数据库中,作为长期记忆。
  • 记忆检索 (qdrant-find): 允许 LLM 应用根据查询语句在 Qdrant 数据库中检索相关的信息,并返回检索结果,为 LLM 提供上下文信息。
  • 可配置的嵌入模型: 支持 FastEmbed 嵌入模型,可以将文本信息转换为向量表示,以便在 Qdrant 中进行高效的语义搜索。
  • 灵活的部署方式: 支持通过 Stdio 或 SSE 传输协议与 MCP 客户端通信。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/LeenaKI/qdrant_mcp_server.git
    cd qdrant_mcp_server
  2. 安装依赖:
    pip install .

服务器配置

MCP 客户端需要配置以下 JSON 信息以连接到 'Qdrant 记忆上下文服务器':

{
  "server_name": "qdrant-mcp-server",  // 服务器名称,可自定义
  "command": "mcp-server-qdrant",     // 启动服务器的命令 (需要确保 mcp-server-qdrant 命令在环境变量 PATH 中,或者使用可执行文件的完整路径)
  "args": ["--transport", "stdio"]   // 启动参数,这里使用 stdio 传输协议,也可以选择 "sse"
}

参数说明:

  • 'server_name': 服务器的名称,用于在 MCP 客户端中标识该服务器。可以自定义设置。
  • 'command': 启动 'Qdrant 记忆上下文服务器' 的命令。安装项目后,会在 Python 的 scripts 目录生成 'mcp-server-qdrant' 可执行文件。请确保该命令可以被 MCP 客户端执行,可能需要将其所在目录添加到系统的 PATH 环境变量中,或者直接使用可执行文件的完整路径。
  • 'args': 传递给 'command' 的命令行参数。
    • '--transport': 指定 MCP 服务器使用的传输协议,可选值包括 'stdio' 和 'sse'。'stdio' 适用于标准输入输出流,'sse' 适用于 Server-Sent Events。根据 MCP 客户端的支持情况和实际部署环境选择合适的传输协议。默认为 'stdio'。

环境变量配置:

'Qdrant 记忆上下文服务器' 依赖以下环境变量进行配置:

  • 'QDRANT_URL' (必须): Qdrant 服务器的 URL 地址。例如 'http://localhost:6333'。如果使用本地 Qdrant,可以设置为 ':memory:' (内存模式) 或指定本地存储路径。
  • 'COLLECTION_NAME' (必须): Qdrant 中用于存储记忆的 Collection 名称。
  • 'QDRANT_API_KEY' (可选): 连接 Qdrant 服务器的 API 密钥,如果 Qdrant 服务器需要身份验证则需要配置。
  • 'QDRANT_LOCAL_PATH' (可选): 如果使用本地 Qdrant 模式,指定本地存储路径。
  • 'EMBEDDING_MODEL' (可选): 指定 FastEmbed 使用的嵌入模型名称,默认为 'sentence-transformers/all-MiniLM-L6-v2'。
  • 'TOOL_STORE_DESCRIPTION' (可选): 'qdrant-store' 工具的描述信息,用于 LLM 理解工具用途。
  • 'TOOL_FIND_DESCRIPTION' (可选): 'qdrant-find' 工具的描述信息,用于 LLM 理解工具用途。

在运行服务器之前,请确保已配置上述必要的环境变量,例如可以通过 '.env' 文件或直接在运行环境中设置。

基本使用方法

  1. 启动 MCP 服务器: 在配置好环境变量后,通过 MCP 客户端配置中指定的 'command' 和 'args' 启动 'Qdrant 记忆上下文服务器'。
  2. 在 MCP 客户端中使用工具:
    • qdrant-store 工具: 用于存储信息。在 LLM 应用中,当需要记住某些信息时,可以调用 'qdrant-store' 工具,并提供 'information' (要存储的文本信息) 和可选的 'metadata' (JSON 格式的元数据)。
    • qdrant-find 工具: 用于检索信息。在 LLM 应用中,当需要查询记忆或获取上下文信息时,可以调用 'qdrant-find' 工具,并提供 'query' (查询语句)。服务器会返回在 Qdrant 中检索到的相关信息。

示例 (MCP 客户端调用):

假设 MCP 客户端已经连接到 'Qdrant 记忆上下文服务器',以下是一些工具调用的示例 (具体调用方式取决于 MCP 客户端的实现):

  • 存储信息:

    {
      "action": "call_tool",
      "tool_name": "qdrant-store",
      "parameters": {
        "information": "我的家乡是北京。",
        "metadata": {"source": "user_profile", "topic": "hometown"}
      }
    }
  • 检索信息:

    {
      "action": "call_tool",
      "tool_name": "qdrant-find",
      "parameters": {
        "query": "我的家乡"
      }
    }

通过上述步骤,LLM 应用可以利用 'Qdrant 记忆上下文服务器' 提供的工具,实现记忆存储和检索功能,从而增强 LLM 的上下文理解和长期记忆能力。

信息

分类

数据库与文件