RAG 和 MCP 经常一起出现,但它们解决的是两个不同问题:

1
2
MCP:AI 应用怎样连接一个系统并调用其能力
RAG:系统怎样从大量知识中找到证据并交给模型回答

“通过 MCP 进入 Google Drive”不会自动建立向量知识库;“已经有 RAG”也不意味着其他 AI 客户端能以统一方式调用它。

场景一:实时搜索外部文档

假设 AI 应用已经连接一个文档系统的 MCP Server,Server 提供搜索和读取工具。工具名称由具体实现决定,这里用伪名称表示:

1
2
search_files(query)
read_file(file_id)

用户问“北京出差住宿标准是多少”,处理流程可以是:

1
2
3
4
5
AI 应用通过 MCP 调用 search_files
→ 文档系统返回候选文件
→ 再调用 read_file 读取少量候选
→ 将相关内容、标题和来源加入 Context
→ 模型根据证据回答

这已经符合“检索、增强、生成”的基本思路,但检索能力取决于外部系统。它可能主要依赖文件名、全文关键词和元数据,不一定使用可控的 Embedding、切片和重排序。

适合:

  • 文件数量不大,查询频率不高。
  • 关键词和文件名比较明确。
  • 希望每次直接读取外部系统中的最新内容。
  • 不想额外维护同步索引。

场景二:同步到独立 RAG 索引

当文件多、查询频繁或需要更强语义搜索时,可以建立自己的检索索引:

1
2
3
4
5
6
外部文档系统
→ MCP 或原生 API 拉取有权限的文件
→ 解析、清洗和切片
→ 生成 Embedding
→ 写入关键词与向量索引
→ 保存来源、版本和权限元数据

查询时:

1
2
3
4
5
用户问题
→ 搜索独立索引
→ 权限过滤和重排序
→ 返回相关片段
→ 模型生成带引用答案

优点是检索策略可控、查询快、可以做混合搜索;代价是要处理同步延迟、删除传播、版本冲突和权限映射。

把自建 RAG 暴露成 MCP Tool

如果已经有内部接口:

1
2
3
4
5
6
7
POST /knowledge/search
Content-Type: application/json

{
"query": "北京住宿报销标准",
"limit": 5
}

可以增加一个薄的 MCP Server,把业务接口注册为工具:

1
2
3
4
5
6
Codex / 其他 AI Host
→ MCP tools/call
→ search_knowledge_base
→ MCP Server 校验身份与参数
→ 调用内部检索接口
→ 返回片段、来源和文档 ID

工具的输入可以设计为:

1
2
3
4
5
{
"query": "北京住宿报销标准",
"limit": 5,
"effectiveAt": "2025-03-18"
}

返回值应包含足够的可验证信息:

1
2
3
4
5
6
7
8
9
10
11
{
"results": [
{
"text": "一线城市住宿标准为每人每天 800 元",
"documentId": "travel-policy-2025",
"title": "差旅报销制度",
"section": "3.2 住宿",
"sourceUrl": "https://kb.example.com/docs/travel-policy-2025"
}
]
}

第一版只提供 search_knowledge_base 也可以。确实需要读取全文时,再增加 get_document Tool 或文档 Resource。没有必要为了“看起来完整”同时实现所有 MCP 能力。

同一个 MCP Server 能否服务不同模型

MCP Server 面向的是实现 MCP Client 的 AI 应用,不是某一个模型参数本身:

1
2
3
模型 A → AI Host A ┐
模型 B → AI Host B ├→ 同一个知识库 MCP Server
模型 C → AI Host C ┘

不同 Host 的配置、认证方式、工具选择能力和最终回答可能不同,但 Server 的工具契约可以复用。前提是各 Host 支持所需协议版本、传输方式和认证机制。

谁负责什么

组件 主要职责
AI Host 管理模型、Context、用户确认和最终体验
MCP Client 与 Server 建立连接并发送协议请求
MCP Server 暴露搜索工具、校验权限、调用检索服务
RAG 服务 文档处理、索引、召回、过滤和重排序
文档系统 保存原始文件、版本和业务权限
生成模型 阅读返回证据并组织答案

生产落地时的关键问题

权限

不要让 MCP Server 接受客户端随意传入的 tenantId 就视为可信。租户和用户身份应来自可靠认证,并在检索阶段做服务端权限过滤。

新鲜度

记录文档版本、同步时间和删除状态。对高时效资料,可以采用事件同步、定时增量同步,或在回答前回源确认。

引用

搜索结果应保留文档标题、章节、页码或原文链接。模型生成的“引用文字”不能替代真实来源定位。

写操作

知识搜索通常可以设计为只读。创建、修改和删除文档应使用独立工具,并配置更严格权限、确认与审计。

可观测性

一次调用应能追踪:用户问题、所选工具、检索条件、候选证据、模型输入、答案、耗时、错误和费用,同时对敏感内容做脱敏。

一句话记忆

1
2
MCP 负责把 AI 接到知识库服务,RAG 负责在服务内部找到证据;
把 RAG 包装成 MCP Tool,可以让多个支持 MCP 的 AI 应用复用同一套知识能力。

站内搜索

没有找到内容!