/ 目录 / 演练场 / Qdrant
● 官方 qdrant 🔑 需要你的密钥

Qdrant

作者 qdrant · qdrant/mcp-server-qdrant

给 Claude 长期向量内存——用极简、固执的 Qdrant 支撑的 MCP 存储、回忆和语义搜索文本。

官方 Qdrant MCP 将任何 Qdrant 实例(云端或自托管)变成一个简单的语义内存库,只需两个工具:qdrant-storeqdrant-find。完美用于为 agent 赋予长期内存、构建个人知识库或原型化 RAG,无需编写嵌入胶水代码。

为什么要用

核心特性

实时演示

实际使用效果

qdrant.replay ▶ 就绪
0/0

安装

选择你的客户端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "qdrant": {
      "command": "uvx",
      "args": [
        "mcp-server-qdrant"
      ]
    }
  }
}

打开 Claude Desktop → Settings → Developer → Edit Config。保存后重启应用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "qdrant": {
      "command": "uvx",
      "args": [
        "mcp-server-qdrant"
      ]
    }
  }
}

Cursor 使用与 Claude Desktop 相同的 mcpServers 格式。项目级配置优先于全局。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "qdrant": {
      "command": "uvx",
      "args": [
        "mcp-server-qdrant"
      ]
    }
  }
}

点击 Cline 侧栏中的 MCP Servers 图标,然后选 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "qdrant": {
      "command": "uvx",
      "args": [
        "mcp-server-qdrant"
      ]
    }
  }
}

格式与 Claude Desktop 相同。重启 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "qdrant",
      "command": "uvx",
      "args": [
        "mcp-server-qdrant"
      ]
    }
  ]
}

Continue 使用服务器对象数组,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "qdrant": {
      "command": {
        "path": "uvx",
        "args": [
          "mcp-server-qdrant"
        ]
      }
    }
  }
}

加入 context_servers。Zed 保存后热重载。

claude mcp add qdrant -- uvx mcp-server-qdrant

一行命令搞定。用 claude mcp list 验证,claude mcp remove 卸载。

使用场景

实战用法: Qdrant

让 Claude agent 跨会话持久记忆

👤 构建个人助手或内部 copilot 的开发者 ⏱ ~15 min beginner

何时使用: 你想让 Claude 记住用户偏好、过往决策或进行中的项目,即便聊天结束后也能回忆。

前置条件
  • 运行 Qdrant(本地 Docker 或云端) — docker run -p 6333:6333 qdrant/qdrant OR a Qdrant Cloud cluster URL + API key
  • 设置 COLLECTION_NAME 环境变量 — 任意字符串,例如 claude_memory
步骤
  1. 教它存储重要信息
    每当我告诉你某个项目的重要信息时(截止日期、利益相关者、决策),用 qdrant-store 存储它,元数据为 {project, category}。✓ 已复制
    → Claude 开始对持久化信息回应'stored'
  2. 验证回忆有效
    你还记得项目'atlas'的什么?用 qdrant-find 查询类似'project atlas decisions'这样的内容。✓ 已复制
    → 返回相关的之前的信息并带有评分
  3. 整理和遗忘
    搜索所有关于项目'atlas'超过 90 天的或标记为过时的内容,并删除这些记录。✓ 已复制
    → 已删除项的列表及确认

结果: 一个真正记得你上周告诉它的事的助手——按项目作用域、可修剪。

注意事项
  • 存储每条信息会导致库臃肿并降低回忆质量 — 只存储明确的信息/决策,不存储闲聊。将'存储还是不存储'的决策作为系统 prompt 的一部分。
  • 切换嵌入模型后集合使用了错误的向量大小 — Qdrant 拒绝不匹配的向量——改变 EMBEDDING_MODEL 时删除并重建集合
搭配使用: filesystem · notion

在文档文件夹上构建轻量级 RAG

👤 想要 RAG 但不用框架的开发者 ⏱ ~30 min intermediate

何时使用: 你有 50-5000 个 Markdown 文件,想让 Claude 回答针对它们的问题并带有引用。

前置条件
  • 磁盘上的 Markdown 文档 — 任意 .md 文件文件夹
步骤
  1. 分块并存储文档
    读取 /docs 下的每个 .md 文件。以标题边界分割成约 500 token 的块。对每个块调用 qdrant-store,传递文本和元数据 {source_path, heading}。✓ 已复制
    → 存储了 N 个块,每个部分一个
  2. 用用户问题查询
    用户问:'我如何轮换 API key?'使用 qdrant-find 获取前 5 个最相关的块。在回答中引用 source_path。✓ 已复制
    → 回答中包含内联 [source_path] 引用
  3. 测量检索质量
    对于这 10 个评估问题 [列表],期望的源路径中有哪些出现在前 5 检索结果中?报告 recall@5。✓ 已复制
    → 一个你可以迭代改进的检索质量评分

结果: 一个可工作的 RAG 循环,你可以调整块大小和 k 直到质量满意。

注意事项
  • 过大的块稀释嵌入并杀死回忆能力 — 将块保持在约 1000 token 以下;先按标题分割,然后按 token 计数作为降级方案
  • 更新文档不会删除旧块——答案变得陈旧 — 使用确定性的 point id(source_path+heading 的哈希),使 upserts 替换而非重复
搭配使用: filesystem · firecrawl

语义去重杂乱的工单、线索或常见问题列表

👤 有近似重复数据 CSV 的运维团队 ⏱ ~25 min intermediate

何时使用: 精确匹配去重会遗漏'重置密码'vs'我如何修改密码'这样的情况——你需要语义相似性。

步骤
  1. 用行 id 作为元数据存储每个项目
    读取 rows.csv。对每行调用 qdrant-store,传递 information=<text> 和元数据 {row_id: <id>}。✓ 已复制
    → 存储了 N 个点
  2. 按相似度聚类
    对每行查询 qdrant-find 获取评分 > 0.85 的前 5 个邻居。输出互相接近的行 id 组。✓ 已复制
    → 打印重复组
  3. 选择规范项并标记其余为重复
    对每组选择最长/信息最多的行作为规范。输出 CSV {row_id, canonical_id}。✓ 已复制
    → 去重映射为源系统做好准备

结果: 一个有信度评分的去重映射 CSV,应用前可供人类审阅。

注意事项
  • 相似度阈值是领域特定的——0.85 可能太宽松或太严格 — 先手工标记 20 对,然后选择最能分离重复和非重复的阈值
搭配使用: postgres · filesystem

可搜索的会议记录内存

👤 被 Notion/Obsidian 笔记淹没的管理者/IC ⏱ ~20 min beginner

何时使用: 你每周记笔记但找不到某个具体决策的记录。

前置条件
  • 会议记录文件夹 — 任意文本或 markdown 文件
步骤
  1. 索引现有笔记
    遍历 /meetings/**/*.md。对每个调用 qdrant-store,存储内容并带元数据 {date, attendees, project}。✓ 已复制
    → 所有笔记已索引并带有日期
  2. 回忆决策
    找到所有讨论'企业级定价'的笔记。给我每个的日期和 2 行总结。✓ 已复制
    → 匹配会议的排序列表
  3. 保持最新
    添加今天的笔记 <粘贴>,然后告诉我哪些过去的笔记最可能与今天的决策冲突或更新。✓ 已复制
    → 通过语义邻居进行矛盾检查

结果: 对你的笔记的语义索引,你可以每周持续更新。

注意事项
  • 在一个集合中混合个人和工作笔记会泄露作用域 — 使用单独的集合或在每个查询上强制执行 scope 元数据过滤器
搭配使用: filesystem · notion

组合

与其他 MCP 搭配,撬动十倍杠杆

qdrant + filesystem

索引本地文档文件夹然后回答带有引用的问题

将 /docs 下的每个 .md 索引到 Qdrant 中,然后回答:'我们的认证流程如何工作?'并引用原始文件路径。✓ 已复制
qdrant + firecrawl

爬取网站并构建可搜索的知识库

用 Firecrawl 爬取 docs.mycompany.com,将每个页面存储在 Qdrant 集合 company_docs 中。✓ 已复制
qdrant + postgres

对关系数据库中非结构化列进行语义搜索

SELECT id, body FROM support_tickets created in the last 30 days,将每个 body 嵌入 Qdrant 并带元数据 {ticket_id},然后让我按含义搜索。✓ 已复制

工具

此 MCP 暴露的能力

工具输入参数何时调用成本
qdrant-store information: str, metadata?: object 持久化一个信息、块或笔记用于后续语义回忆 free (local embedding)
qdrant-find query: str, limit?: int 检索语义相似的记录以回答问题或去重 free

成本与限制

运行它的成本

API 配额
自托管:无限制。Qdrant Cloud:取决于集群大小。
每次调用 Token 数
Store:每次调用约 100 token 开销。Find:约 200 token + 结果负载。
费用
自托管免费。Qdrant Cloud 免费层:1GB 集群。付费从约 $25/月开始。
提示
开发时先用本地 Docker;只在需要持久化和多设备访问时升级到 Cloud。

安全

权限、密钥、影响范围

凭据存储: QDRANT_URL 和可选的 QDRANT_API_KEY 在环境变量中
数据出站: 自托管情况下:无。Qdrant Cloud 情况下:所有向量和元数据发送到你的集群区域。

故障排查

常见错误与修复

集合不存在/未找到

服务器仅在设置 COLLECTION_NAME 时在首次存储时创建集合。验证环境变量并重启 MCP。

验证: curl $QDRANT_URL/collections
向量维度不匹配

你改变了 EMBEDDING_MODEL 而没有删除旧集合。删除它并重新开始(或使用新的 COLLECTION_NAME)。

验证: curl $QDRANT_URL/collections/<name>
localhost:6333 连接被拒绝

Qdrant 容器未运行。执行 docker run -p 6333:6333 qdrant/qdrant 后重试。

验证: curl localhost:6333/healthz
搜索返回无关结果

块可能太大或嵌入模型太弱。试试 FastEmbed 的 bge-small-en-v1.5 和块大小 ≤500 token。

替代方案

Qdrant 对比其他方案

替代方案何时用它替代权衡
Chroma MCP你更喜欢有零基础设施的嵌入式向量数据库对于重负载不如 Qdrant 生产级
Pinecone MCP你已在使用 Pinecone 并想要仅托管从第一天起付费;更主观
Memory MCP你想要超简单的键值内存,不需要语义无嵌入——仅精确回忆

更多

资源

📖 阅读 GitHub 上的官方 README

🐙 查看未解决的 issue

🔍 浏览全部 400+ MCP 服务器和 Skills