Skip to main content
Glama
avaazquezz

Qdrant RAG Build

by avaazquezz

Qdrant RAG Build

通过对话构建完整 RAG 管道的 Qdrant MCP 服务器。

非官方、社区构建 —— 与 Qdrant 无关联,也不代表 Qdrant 官方立场。

官方 Qdrant MCP 服务器只暴露 2 个工具(qdrant-storeqdrant-find)。Qdrant RAG Build 则在 6 个命名空间中暴露了 33 个工具 —— 完全通过 MCP 对话管理一个生产级 RAG 系统 —— 外加一个 对话式设置向导,让用户在一次次对话中即可从零开始,得到一个可用且配置良好的 RAG 集合,无需编写任何代码。

电梯推销语:"将你的 AI 接入 Qdrant,让生产级 RAG 在一段对话中运行起来。" 而不是又一个 Qdrant 包装 —— RAG-in-a-box via MCP

包名:qdrant-rag-build-mcp · 许可证:Apache-2.0 · 状态:规划已完成,开发尚未开始。


目录

  1. 愿景与市场空白

  2. 已锁定的决策

  3. 架构

  4. 工具目录

  5. 对话式向导

  6. 摄取管道

  7. 精英检索

  8. 质量与评估

  9. GitHub 权威

  10. 开发阶段

  11. 继承的经验教训与风险

  12. 名称、许可证与第一步


Related MCP server: RAG Knowledge Base MCP Server

1. 愿景与市场空白

论点: 如今,通过 MCP 把 LLM 连接到 Qdrant,你得到的只是一个玩具级的语义记忆。没有集合管理,没有文件摄取,没有混合搜索,没有重排,没有引用,没有引导式配置。所有这些能力本身已存在于量身定制的企业级 RAG 系统中 —— 但还没有人把它打包成一个只需一句命令即可安装的 MCP 服务器。

能力

官方 Qdrant MCP

Qdrant RAG Build

工具集

2 个(qdrant-storeqdrant-find

33 个,分布于 6 个命名空间

集合管理

仅隐式自动创建

支持预置、别名、快照、payload 索引创建

文件摄取

不支持 —— 仅支持原始文本

PDF、DOCX、XLSX、PPTX、MD、HTML、CSV、TXT、URL、目录

分块

语义

按格式、结构化分块,并提供可配置的预置方案

检索

简单稠密检索

稠密 + 稀疏混合检索,含 RRF 融合、过滤器、重排、去重、多查询

检索引用

不支持

稳定的引用契约(文档、页码/章节、分数)

引导式配置

不支持 —— 仅环境变量

对话式向导自动配置一切

客户端

stdio(仅本地或 Codio)

stdio + 远程 HTTP —— CLAUDE Code、Claude Desktop、claude.ai(网页);ChatGPT 留到 v2

2. 已锁定的决策

范围。 完整的检索能力 + Qdrant 管理 + 高质量获取常见格式的文件内容(PDF、DOCX、Excel、PPTX、MD、HTML、CSV、网址)。干净、对 RAG 更友好的内容,是项目的签名特色。

目标客户端。 v1 是整个 Claude 全家桶:Claude Lark、Claude CODE、Claude Web Desktop(网页)。其中 Code 和 Desktop 走 stdio,本地运行,基本是一键安装(见 §3)。claude.ai 按照协议要求必须走远程 HTTP(浏览器无法拉起本地进程)—— 不过这只是量级较小的增加,并不是一种新的工作类别:官方 SDK 已经支持 streamable HTTP,而 v1 只需要一个 bearer token,不需要完整版 OAuth 2.1(见 §3),外加一份通公开 HTTPS 地址的部署指南。ChatGPT 不入 v1。 和 claude.ai 不同,ChatGPT 需要开启 Developer Mode(要接受一个明确披露风险的应用清单),并且只提供付费版,完全没有免费层级的门槛 —— 这和各种"把 Claude 放首位"的立场不一致,所以推迟到 v2 再说。

项目目标。 一个出色的开源工具:既是作品集的门面,也是 GitHub 权威引擎。文档质量、CI 质量、开发体验质量都不是可选项,就是产品本身。

**不做的事情(v1)。**不处理电子邮件、不. ,不做重 OCR、不做命名实体识别/实体提取、不在服务端生成 LLM 内容(客户端本身就是 LLM),也不做定制的 UI。

3. 架构

一个 Python 二进制文件,三个清晰的层次。MCP 服务器只有一个轻薄的壳;所有逻辑都放在一个与 MCP 无关的、可测试的内核当中(这也会为将来提供 CLI 或任意 SDK 而不必动任何东西)。

flowchart LR
    subgraph Clients
      CC[Claude Code / Desktop<br/>stdio]
      WEB[claude.ai<br/>HTTPS + bearer token]
    end
    subgraph QRB["Qdrant RAG Build"]
      T[Transport<br/>stdio · streamable HTTP]
      F[MCP facade<br/>33 tools · validation]
      CORE[RAG core<br/>ingestion · retrieval · wizard]
      EMB[Embeddings<br/>local fastembed · external APIs]
    end
    Q[(Qdrant<br/>local · cloud)]
    CC --> T
    WEB --> T
    T --> F --> CORE
    CORE --> EMB
    CORE --> Q

技术选型

| 领域 | 决策 | 原因 |

---------------------

-----------------------------------------------------------------------------------------------------------------------------------------------nan

语言

Python 3.12 + uv

RAG 生态成熟;团队在该领域角色;uvx qdrant-rag-build-mcp 一条命令全搞定

MCP 框架

官方 MCP SDK,MCPServermcp>=2.1.0

同一套代码同时支持 stdio(Code、Desktop)和 streamable HTTP(claude.ai);由 MCP 项目维护。SDK 2.0.0(2026-07-28)把 FastMCP 改名/迁移为 MCPServer —— 本项目直接使用新命名,不存在历史遗留兼容需求(见 ADR 0001)

稠密向量模型

两个本地档位 via fastembed —— paraphrase-multilingual-MiniLM-L12-v2(快速,0.22 GB)和multilingual-e5-large(高质量,2.24 GB)—— 另外支持 OpenAI / Cohere / Ollama,通过配置开启

这两款模型 现在 就已被 fastembed 原生支持,零额外依赖,支持多语言。原始的备选项 bge-m3 目前并不能用:修它的 fastembed PR #602 从 2026 年 2 月一直没进展,被架构争论卡住,到 2026 年 8 月仍然没有 ETA。等它真正落地后可以再考虑。

稀疏向量

BM25 / miniCOIL(通过 fastembed)

不需要额外基础设施就能做混合检索;用 Qdrant Query API 原生地做融合

得分重排(rerank)

本地跨编码器模型(fastembed);Cohere Rerank 和 /v1/rerank(llama.cpp)作为额外可选

不能假设运行时"已经有什么重排模型" —— 这是在生产里付过学费的教训(§11)

解析:文件解析

PyMuPDF、python-docx、openpyxl、python-pptx、trafilatura

速度快,不需要系统级二进制,任何地方都能 pip 安装

配置

版本可管理的 YAML 配置文件(~/.qdrant-rag-build/profiles/*.yaml

向导会把设置写进 profile;用户可以编辑、做版本管理,并与他们共享

发行方式

PyPI(uvx/uv)+ Claude Desktop 的 .mcpb 安装包 + Docker 镜像(与 claude.ai 部署路径) + docker-compose 本地跑 Qdrant `

真正的三条上线路径 —— claude mcp add 给 Code、.mcpb 一键装给 Desktop、tunnel 或常开主机给 claude.ai ——外加一个 compose 文件方便本地跑 Qdrant 本身

GXPID(为什么向导是状态机,而不是 MCP elicitation)。 MCP 客户端对"引导式需求获取(elicitation)"的支持参差不齐,哪怕在 Claude 家族内部、不同 SDK 版本之间也是如此。一个纯粹由普通工具驱动的状态机,可以在所有环境上行为一致,不要求特定客户端配合,也不会在前一个客户端上换个 v2 的新客户端需要通过不同的 elicit 才能兼容 —— 和传输协议无关,所以 v1 就锁死这个方案。

v1 鉴权方案。 完整的 MCP 版 OAuth 2.1(授权服务器、PKCE、Dynamic Client Registration / Client ID Metadata Documents、issuer 校验、refresh token)是标准级别、需要好几周的工作量,v1 时间不充足 —— 而且 claude.ai 自己的连接器面板还把 OAuth 视为高级可选字段,不是必填。**v1 对 HTTP 路径采用"每个 profile 一个静态 bearer token"**的方案:token 由向导生成、存进 profile 的 YAML 文件,请求方式为 Authorization: Bearer <token>。至于 stdio(Code、Desktop)完全不需要鉴权 —— 它们只是本地进进程,不对网络开放网络。完整的 OAuth 2.1 作为 v2 的功能列入文档,等 ChatGPT 进入范围时再重新考虑(它的生态对 OAuth 的依赖更大)。

部署模型:一个人,一个服务器

MCP 并不是抽象地将服务器“连接到 AI”——它连接的是承载模型的客户端应用(Claude Desktop、Claude Code、claude.ai)。客户端才是维持连接存活、把可用工具列表交给模型、拦截模型的工具调用决策并针对服务器执行这些调用的一方。对最终用户来说,这看起来就是“我在和 Claude 对话,而它在管理我的 Qdrant”——这是一个合理的简化——但真正与服务器相连的是客户端,而不是模型。

v1 范围内没有共享/多租户服务器。每个用户运行自己的服务器,同一个本地进程同时服务全部三个 v1 客户端:

  • Claude Code / Claude Desktop: 服务器在用户自己的机器上以本地 stdio 子进程形式运行,由客户端根据其配置启动。真实文件系统访问,且限定在允许列表目录内——这是标准 MCP stdio 行为,不需要这个项目额外做任何事情。

  • claude.ai: 同一个本地进程,通过隧道(cloudflared)以 HTTPS 方式暴露到外部,或部署在一个运行相同 Docker 镜像的小型常驻主机上($5 VPS、Fly.io、Railway)——不是独立的云部署,也不是共享服务器。当运行在用户自己的隧道机器上时,文件系统访问与本地场景完全相同,只是到达它的传输方式不同。claude.ai 所有套餐均可用,包括 Free(一个 connector)。

  • **结果:**只要用户自己的服务器(如果是 claude.ai,还需要隧道)在运行,ingest_directory / ingest_file 在三个客户端上的行为就完全一致。任何地方都不需要文件上传机制——服务器在结构设计上始终拥有直接磁盘访问权限。

  • 一次性安装:

    • **Claude Desktop:**把一个 .mcpb 文件拖入 Settings → Extensions。完全不需要终端。

    • Claude Code:claude mcp add qdrant-rag-build -- uvx qdrant-rag-build-mcp。一行即可。

    • **claude.ai:**Settings → Connectors → Add,粘贴服务器的 HTTPS URL 和 bearer token。需要让服务器(如果使用笔记本电脑方案,还需要隧道)先运行起来——这和任何远程 MCP connector 一样,是协议上的必须要求,不是这个项目自己的选择。

    • 之后,向导会让配置 RAG 变成纯对话式流程——创建 collection、选择 embedding、摄入文档、执行搜索——在三个平台中任何一个上都无需更多技术步骤。

v2:ChatGPT(暂未有意支持)

ChatGPT 需要与 claude.ai 相同类型的远程 HTTP 形态,技术上新东西不多。它被排除在 v1 之外,是 ChatGPT 自身特有的摩擦:Developer Mode 必须显式启用(并提示关于运行第三方代码的警告),而自定义 connectors 均要求 付费套餐(Plus/Pro/Business/Enterprise/Edu)——完全没有 ChatGPT 免费通道,这与 claude.ai 免费层也附带 connectors 不同。这些都不符合“优先支持 Claude”的目标。v2 会加入 ChatGPT 专属 connector 指南,并且如果实际变得重要,会重新评估完整 OAuth 2.1(ChatGPT 的生态比 claude.ai 更倾向使用 OAuth 2.1)。

4. 工具目录

整个项目的核心。六个命名空间、可预测的名称、面向 LLM 写的描述(何时用某个工具,而不只是它能做什么)。每个破坏性工具都要求显式确认,同时还有一个全局 read-only 模式。

Collections

Tool

作用

collection_create

通过预设(dense、hybrid、multi-tenant)创建集合;默认正确配置命名向量和 sparse 向量

collection_list

列出全部集合

collection_info

集合详情:schema、大小、索引配置、优化状态

collection_delete

deletion 需两步确认(参数中必须给出准确的名称)

alias_set

用于零停机重新索引的别名(blue/green 模式)

payload_index_create

为向导或用户声明的过滤器创建 payload 索引

snapshot_create

备份集合

snapshot_restore

恢复集合

Ingestion

Tool

功能

ingest_text

直接传入文本和元数据——官方 MCP 的“语义记忆”用例,但实现得更正确

ingest_file

单个文件(PDF、DOCX、XLSX、PPTX、MD、HTML、CSV、TXT);返回摄入质量报告

ingest_directory

递归批量摄入,支持 glob 和排除规则;创建带可查询进度的任务

ingest_url

网页 → 正文清洗(trafilatura),去除所有噪声

job_status

任务进度:已完成/失败/跳过文件,并汇总比对计数器

document_list

按源文档维度查看文书

document_delete

删除/重新摄入单个文档,且不影响其他文档

Tool

功能描述

search

稠密语义搜索,支持可选的 payload 过滤

search_hybrid

dense + sparse + 原生 RRF 融合(Query API with prefetch)——推荐默认方案

search_rerank

对 top-N 的结果做 hybrid + cross-encoder 重排;极致精确度

search_multi_query

让客户端 LLM 生成若干改写并最终融合为一个排序

find_similar

获取与给定点相似的所有点对应的数据点

recommend

基于正例/反例的推荐(原生 Qdrant API)

RAG context

搜索

说明

get_context

核心工具:search + 去重 + MMR + token 配额 → 返回带有编号的上下文块,供客户端 LLM 直接作答

expand_context

获取结果的上一/下一个相邻 chunk(同一文档内),用于保持上下文连续

get_document

获取某条引用的完整源文档(或者其中的页面/段落范围)

Wizard

工具

作用

setup_start

启动设置会话;返回第一个问题、选项和建议

setup_answer

记录答案、校验答案(Qdrant 能连通吗?API key 可用吗?)、返回下一个问题

setup_apply

执行既定的配置方案:collection + indexes + profile + 冒烟测试;返回最终报告

profile_list

列出已保存的 profile

profile_use

启用某个已保存的 profile(demo、work、project X……)

Admin

工具

说明

health

Qdrant 连通性、embedding 模型已加载、版本、当前传输方式

stats

点数、文档数、磁盘占用、按来源/类型的分布

estimate

摄前估算:预期 chunk 数、存储占用、embedding API 成本(如适用)

config_get

当前活动的 profile 的有效配置(secrets 已隐藏)

5. 对话式向导

我们的差异化所在。服务器上有一个状态机:每次工具调用都会返回下一个问题、可选项以及一条有依据的推荐说明;客户端的 LLM 再把问题以自然语言转达给用户,并将其回答传回服务端。不需要提示语,也不依赖任何特定客户端——对话本身就是交互界面。

stateDiagram-v2
    direction LR
    [*] --> Discover
    Discover --> Validate : setup_answer
    Validate --> Discover : next question
    Validate --> Summary : all answered
    Summary --> Apply : user confirms
    Apply --> SmokeTest
    SmokeTest --> [*] : report + saved profile

问题脚本(固定顺序,每一步都给出推荐)

#

问题

它决定了什么

1

你要往 RAG 里放什么内容? 个人文档 / 团队知识库 / 技术文档 / 笔记)

拆分为块的预设和 payload schema

2

你的 Qdrant 在哪里?(本地 docker / Qdrant Cloud / 还没有)

连接与接入方式;如果选“还没有”,则给出单条 Docker 命令并重新校验

3

用本地 embeddings 还是 API?(local fast / local quality / OpenAI / Cohere / Ollama)

dense 模型供应方与速度/质量档位;如果适用,立即验证 API key

4

语料用哪种语言?

确认多语言模型的选择及 sparse analyzer

5

是否需要混合搜索?(推荐:是)

在 collection schema 中加入 sparse vector

6

是否需要重排?(local / API / no)

cross-encoder 及其时延成本,并诚实说明

7

你将来会用哪些过滤器?(日期、作者、类型、文件夹……)

默认创建好的 payload 索引

8

collection 名称和 profile 名称

命名及 profile 文件

向导成功的标准。 一个从未接触过 Qdrant 的用户,在不到 10 分钟的对话之后得到以下结果:一个 schema 整洁的 collection,可用的 embeddings,一个已保存的 profile,一条示例文档已完成摄入,以及一次能返回带引用结果的测试搜索。冒烟测试生成的最终报告就是证明——假如把那段对话录下来,就是 README 的封面。

6. 摄入管道

质量的特征是:干净、对 RAG 最优的内容,无论哪种格式,且每次摄入都附带质量报告。绝不只是把解析器吐出的内容“原样倒进去”。

格式

解析器

质量处理

PDF

PyMuPDF

修正阅读顺序;检测并移除重复页眉/页脚;表格转换为 Markdown;在接受页面之前先做文本质量预检(有效字符比例)

DOCX

python-docx

标题层级以元数据面包屑形式保留;结构化列表与表格

XLSX

openpyxl

按工作表处理;自动检测数据区域;行与其表头一起序列化("Product: X · Price: Y")——绝不会输出原始 CSV

PPTX

python-pptx

按幻灯片处理:标题 + 正文 + 演讲者备注

MD / HTML

native / trafilatura

按标题切块;网页只保留主内容(无导航、Cookie、页脚)

CSV / TXT

stdlib

CSV 按带表头的行输出;TXT 按段落切分,并带 token 窗口

横切规则

  • 结构优先,token 其次。 先按文档结构(章节、工作表、幻灯片)切分,只有当一个单元超出 token 预算时,才按 token 进一步细分(并有 overlap)。每个块都携带面包屑("手册 > 第3章 > 安装")。

  • 基于规范化内容哈希去重,在块级别执行,并结合每个文档的幂等性:重新摄取文件只会更新它,而不会产生重复。

  • 最小化的、带版本控制的引用契约。 引用载荷(document、page/section、date、source、date)是一个封闭字段集。内部流水线元数据绝不会进入 LLM 的上下文——这个项目曾两次因为这个问题付出代价:元数据膨胀导致真正的源被截断(§11)。

  • 始终报告摄取结果。 已创建的块数、因质量问题被丢弃且写明原因的页面、检测到的重复项。透明本身就是质量的一部分。

  • 文本净化(代理字符、控制字符、错误编码)发生在嵌入之前——这是从真实 PST 文件中得到的惨痛教训。

7. Elite retrieval(高级检索)

  • 默认混合检索: 稠密向量(multilingual embeddings)+ 稀疏向量(BM25/miniCOIL),通过 Qdrant Query API(prefetch + fusion)原生实现 RRF 融合——不需要额外基础设施。

  • 可选重排 使用 cross-encoder 从 top-50 → top-N。可通过 fastembed 纯本机运行,也可以通过 API 运行(Cohere 或 llama.cpp 的 /v1/rerank)。

  • MMR 调优多样性, 直接复用 Qdrant 已返回的向量(with_vectors=true)。检索过程中绝不再嵌入(embedding),—此前同样的错误曾在前代项目中引发真实的生产 OOM。

  • 一门 DataFrame?

  • **支持文本过滤字段:**date —— 完整的日期范围,lte 中包含 end-of-day —— 再加上 source、type、author,都基于 wizard 创建的索引之上。

  • get_context 为旗舰工具: 编排 hybrid → rerank → MMR → token 预算 → 带编号的格式化引用块,如 [1][2]。硬保证是:只有真正被包含进 context 的内容才会被引用 —— 绝不出现虚构来源。

  • 生成永远在客户端。 服务端从不调用 LLM:它只把最好的 context 提供给用户,用户自己的模型(Claude、GPT)写作回答。这使服务端保持低成本、低消耗,也避免了强制依赖第三方 API key。

8. 质量与评估

  • 仓库中的 golden corpus: 15–20 个不同类型的文档(含表格的 PDF、真实电子表格、一个有噪声的网页)以及 ~50 个带注释相关 chunk 的问题。

  • CI 中的检索性指标: recall@k、MRR、nDCG(基于 golden corpus),并设置阈值,若有回归会直接使构建失败。Dense 与 Hybrid 与 Hybrid+rerank 的比较会提到文档中——数字本身就是项目的卖点。

  • 分层测试: 核心层的单元测试(无 Qdrant 依赖)、基于 testcontainers 在容器中针对 Qdrant 的集成测试,以及使用 SDK 测试客户端对 MCP 协议进行完整 e2e 测试。每个格式还有专门的 torture 文件(扫描 PDF、合并单元格 Excel、垃圾 HTML)。

  • 发布时验证兼容性矩阵: Claude Code、Claude Desktop 以及 claude.ai,并在文档中用截图说明。ChatGPT 将在 v2 中加入该矩阵。

9. GitHub 阵地

就作品集而言,仓库就是产品,这和代码本身一样重要。发布清单:

  • 一份能转化用户的 README。 用 vhs/asciinema 录一个真实对话中 wizard 完成 RAG 构建的过程,3 行 uvx quickstart、徽章(CI、coverage、PyPI、license)、与官方 MCP 对比表,以及公开的 benchmark 结果。

  • 一个着陆页。 一个独立的、打磨过的静态页面,与 README 和文档站区分开来,包含 hero 区、对比官方 mapping MCP 的对比表、wizard 演示录像,以及三大 v1 客户端的安装 CTA,还有 F5 的 benchmark 数据。这就是 launch 帖子和社交分享链接所要指向的位置。

  • 文档。 使用 mkdocs-material:每类客户端一份指南(Claude Code、Claude Desktop、claude.ai——并包含 bearer-token connector 的完整流程)、cookbook("RAG over your own docs"、"team memory")完全列出全部 33 个工具的参考、公开的 ADR。

  • 可持续推动工程。 CI 中包含 ruff + mypy strict + pytest + coverage,自动 semver 版本发布(release-please)、CHANGELOG、issue/PR templates、CONTRIBUTING、Code of Conduct,并启用 GitHub Discussions。

  • 分发与启动。 PyPI 包的 .mcpb bundle(用于 Claude Desktop)+ Docker 镜像 + compose stack(含 Qdrant)。已列入官方 MCP registry、Smithery、Glama、PulseMCP 以及 awesome-mcp-servers。启动时发布:一篇技术文章 + Show HN + r/LocalLLaMA + X,并用该 wizard 演示作为引子。

10. 开发阶段

平时项目节奏(晚间/周末)。每个阶段都以可展示的成果结束——绝不会同时有两个阶段并列。

阶段

进度

工期

完成定义

F0

规范手册与写骨架

~1.5 周

Repo +、软件包结构。全部 33 个工具的 JSON schemas 流程先冻结并 review(即使实现仍在后续阶段,也先设计全部 33 个)。为§3 的决策写 ADR。uvx qdrant-rag-build-mcp 能启动,health 可从 Claude Code(stdio)和 claude.ai(HTTP over tunnel)响应。

F1

Qdrant 核心

~2周

完整的 collections 命名空间、ingest_text、dense search、config(配置)profile、只读模式。Claude Code e2e 演示:创建 collection、收藏短文、搜索这些短文。已经包含官方的 MCP 超集。

F2

专业化注入

~3周

全部 8 种格式及其质量处理、结构化 chunk、去重、带进度的进程、导入报告。一个包含 100 个真实文档的混合目录能够干净导入,并有准确报告(可对账 counters),且重复导入可幂等。

F3

Elite(高级检索)

~2周

Hybrid (RRF)、rerank、MMR、filters、以及带 citation contract 的 get_context。对 golden corpus 的评测显示,hybrid+rerank 明显优于 ollama dense;引用中零遗漏的来源。

F4

智能导览 wizard

~2周

状态机、每个答案的实时校验、带 smoke test 的 setup_apply、多 profile。外部测试者仅通过对话就能在 10 分钟内建立自己的 RAG,且不查看任何文档。完成后在这里录 demo。

F5

质量与可观测性

~1.5周

CI 中带阈值的 eval 套件、stats/estimate、snapshot、验证过的客户端兼容性矩阵。CI 全绿,eval 均阻塞,benchmark 已发布到文档中。

F6 发布 ~2.5周 完整 docs、结构良好的 landingpage、README 中带该工具的 demo、PyPI + clue desktop MCP bundle + Docker image,列入 MCP registry,发布 blog。可在全部 3 个 v1 环境中一键安装(或拖拽安装);≥4 个 registry 收录;提交 Show HN。

合计:~14.5 周(约 3.5 个月) 在一个合理的业余项目速度上,而且每两周都有可演示的里程碑,保持势头。

11. 已沉淀的经验教训与风险

这个一家独没有说出的优势:它从真实的、处理过 TB 级数据的 enterprise RAG 系统中继承了很多已经"付过学费"的教训。每一条都已经从第一天起写进设计,而不是后来再打补丁。

11. Similarities with inherited 痛苦 (No separate section title)

付过学费教训

Qdrant RAG Build 怎么从架构上内建

检索时的 MMR 会重新对文本 embedding,结果在生产环境中直接 OOM

MMR 始终复用 Qdrant 返回的向量,代码路径中禁止二次 embedding

内部 schema metadata 把上下文 payload 支撑得巨大,逐渐截断了真正的内容(谨慎两次,原因不同)

封闭、带版本的 citation contract;pipeline 内部 metadata 一概不进 LLM context

继承开发卡在某些 swapped 模块上,互相 fallback,难以被定位

rerank 明确设置成可验证 provider;health 实际上检查所配置的 reranker 是否返回结果

同一进程内 threads + fork 混用一切 导致真实 causing 中途卡死

摄入并发通过单模型 + async worker process 完成;_ fork 与 ThreadPoolExecutor 绝不混用

因为 subprocess 悄悄退出,job 在 40% 时标记为 "completed"

只有计数核对过(expected = processed + valid failures)时,job 才标为 completed

OCR 会挂住 45 秒,最后整篇文档仍被丢弃

任何昂贵操作之前先做便宜的质量检查;全分批给每个任务时间预算

NER 品质逐渐沦进了无限的领域特定改哪里补哪里的情形

v1 明确不会做 NER —— 这是有意决策,不是遗漏

正在评估的风险

风险

缓解措施

范围蔓延 —— 想要重建整个企业级 RAG 的诱惑

§2 中的“超出范围”清单具有契约性;任何新增都要求移除其他内容,或为 v2 提供正当理由

对 claude.ai 的远程部署摩擦(隧道或常驻主机比本地 stdio 多了一个活动部件)

本地 stdio(Code、Desktop)保持顺畅路径且完全不需要这些;claude.ai 的配置只是一页有引导的文档,且它是 v1 唯一需要的远程客户端 — 与 ChatGPT 不同,没有 Developer-Mode/付费计划复杂度

排除 ChatGPT 将会把 v1 受众缩窄到 Claude 生态系统

是刻意的取舍,而非疏漏:claude.ai 已在包括 Free 在内的所有套餐中覆盖了“远程、免安装”受众;ChatGPT 的 Developer-Mode 加付费计划门槛会增加实际摩擦,却不会显著扩大 v1 的覆盖面 — 核心方案验证后重新评估

fastembed PR #602(bge-m3 支持)无限期保持阻塞

v1 不依赖它 — 原生使用 multilingual-e5-large;如果该 PR 完成,则作为 v2 升级项重新评估,并可直接为其做贡献

MCP 开协议或 Qdrant Query API 变更

始终使用最新官方 SDK;每个发布版本的兼容性矩阵;薄门面 = 变更影响面小

33 个工具占满客户上下文

针对工具选择的紧凑性优化描述;按用途划分工具组(例如,日常使用中隐藏管理员工具) ############

因为缺时间而抛弃(每个副项目的头号风险)

以结束演示收尾的 ≤3 周阶段;F1 如果已经算“官方 MCP 但更好”,其余全部延后也足以发布

12. 命名、许可与第一步

名称: 名称:Qdrant RAG Build(包名 qdrant-rag-build-mcp)—— 选择这个名字是为了贴近这个仓库自身的工作名称,而不是虚构一个品牌。命名并非两轮更早的过程:Quiver 是因为与那个无关的“Quiver Quantitative” MCP 命名空间冲突而落选(bolshchikov/quiver-mcppipeworx-io/mcp-quiverjsconiers/quiver-quant-mcp);Vectorsmith 经过验证是干净可用的,但它被一个明确的偏好所取代:那就是要让名字在仓库上具备辨识度。这意味着要接受当初计划已经指出的权衡——一个带“qdrant”前缀的名字可能会被误认为 Qdrant 官方项目——而缓解方法就是在 README 的标语和文档站点中直白地写清楚“非官方、社区构建”。字面量 qdrant-rag-mcp 已经是一个活跃的、不相关的项目(ancoleman/qdrant-rag-mcp),因此有意回避了它;qdrant-rag-build / qdrant-mcp-rag-build 已经在 PyPI 和 GitHub 上确认无冲突(2026 年 8 月)。

许可协议: Apache-2.0 — 与 Qdrant 相同,带有专利授权,并且是那些会看你个人简介的企业会期望看到的许可证。

第一个具体步骤: F0 会在服务器代码第一行之前,就先为全部 33 个工具编写 JSON schemas。§4 中的目录就是规格;先冻结它可以避免中途重新设计,并从第一周就开始产生一份可发布的文档。


参考资料: qdrant/mcp-server-qdrant(官方服务器,2 个工具) · fastembed PR #602(bge-m3 支持,开放中) · MCP Bundles (.mcpb) toolkit · 使用远程 MCP 的自定义连接器(claude.ai) · v2 阅读: ChatGPT Developer ModeMCP 与 OpenAI 中的连接器

计划 v1.3 · 锁定于 2026-08-24 · v1 覆盖完整的 Claude 家族(Code、Desktop、claude.ai — stdio + bearer-token HTTP);ChatGPT 则因人阻碍,明确延后至 v2 的发布会受到自身 Developer-Mode/付费计划的阻碍,而不是与 claude.ai 共享的技术制约。撰写时参考了 IA_EmailsContext 企业 RAG 项目所得到的经验教训。

A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables RAG (Retrieval-Augmented Generation) capabilities with document processing, vector storage, and intelligent Q\&A using OpenAI embeddings and semantic search.
  • A
    license
    Not graded
    quality
    C
    maintenance
    Automated RAG pipeline optimization and serving. It interviews users, builds and evaluates candidate configurations on their data, and registers the best ones as a fleet queryable via MCP.
    MIT

View all related MCP servers

Related MCP Connectors

  • Search your knowledge bases from any AI assistant using hybrid RAG.

  • A personal RAG database you build from chat, so AI creates work that sounds like you.

  • Long-term memory for AI assistants. Hybrid retrieval, query expansion, auto-topics.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/avaazquezz/RAG-Build'

If you have feedback or need assistance with the MCP directory API, please join our Discord server