MCP 与 RAG 结合:Tool 即知识的边界

RAG 的局限:知识是"静态快照"(索引时定了,之后不变)。MCP 的强项:能力是"动态接入"(随时调用)。把两者结合——把知识变成工具,让 LLM “查询即检索”——是知识型 Agent 的新架构。

一、RAG 的天花板

传 问 统 题 离 : 1 2 3 4 R 线 . . . . A 建 G 索 知 检 知 权 : 引 识 索 识 限 更 粒 被 难 → 新 度 " 做 要 固 摊 ( 查 重 定 平 索 询 建 ( " 引 时 索 只 ( 是 检 引 能 丢 全 索 ( 按 失 局 招 了 的 → 聘 c 结 , 数 h 构 过 拼 据 u 化 滤 上 每 n 关 在 下 时 k 系 检 文 每 : 索 刻 检 候 后 → 在 索 选 ) 变 , 人 L ) 不 → L 能 经 M " 历 动 → 回 态 项 答 聚 目 合 ) " )

核心问题:RAG 把知识变成了"静态切片",而业务知识是动态、结构化、有权限的。

二、MCP 给出的答案:查询即检索

把 L R " L A 检 M → → G 知 索 识 " 需 工 L 变 本 要 具 L 体 → 身 候 内 M : 变 选 部 M 成 人 : 拿 C 工 信 E 到 P 具 息 S 的 : 时 是 T 检 " o → 索 结 o 构 l 调 + 化 用 结 → 权 果 s 限 " L e 过 , L a 滤 不 M r 是 c + " 按 h 文 需 _ 结 档 查 r 构 切 询 e 化 片 s 返 " u 回 m e ( q u e r y ) 工 具

变化:

传 M 统 C P R - A R G A : G 知 : 识 知 在 识 上 在 下 工 文 具 里 里 ( ( 塞 查 进 出 去 来 ) )

优势:

✅ ✅ ✅ ✅ 实 结 权 精 时 构 限 准 : 化 : : 工 : 工 L 具 返 具 L 查 回 层 M 询 过 的 J 滤 自 是 S ( 己 实 O 比 决 时 N 索 定 数 , 引 " 据 保 后 查 , 留 过 什 不 关 滤 么 是 系 安 、 快 ( 全 查 照 候 ) 几 选 次 人 " → ( 技 按 能 需 → 检 项 索 目 ) )

三、架构模式

┌ │ │ │ │ └ ─ ─ L M L ├ ├ └ C M ─ ─ ─ P ├ ├ └ ─ ─ ─ 判 调 基 S 断 用 于 e 数 聚 关 需 对 工 r 据 合 联 要 应 具 v 查 工 工 什 结 e 询 具 具 么 M 果 r 工 ( ( 知 C 组 ( 具 按 候 识 P 织 知 ( 维 选 回 识 s 度 人 T 答 型 e 统 o ) a 计 → o r : l c 技 投 ( h 能 递 携 _ 分 带 r 布 → 查 e 、 询 s 薪 面 意 u 资 试 图 m 分 记 ) e 布 录 ) ) / g e t _ d e t a i l )

模式 A:查询工具(替代 RAG 检索)

1
2
3
4
5
@mcp.tool()
def search_resume(query: str, limit: int = 10):
    """按技能/经历/职位关键词检索候选人,返回结构化结果"""
    hits = es.search(query, size=limit, filters=perm_filter())
    return [normalize(h) for h in hits]    # 结构化,不是 chunk

模式 B:聚合工具(RAG 做不到的)

1
2
3
4
@mcp.tool()
def skill_distribution(city: str):
    """统计某城市候选人技能分布(招聘分析场景)"""
    return es.aggregate(terms="skills", filter={"city": city})

RAG 拿不到"聚合结果"(chunk 检索只有文档);MCP 工具可以返回任何计算产物。

模式 C:混合(RAG 兜底 + 工具优先)

L L M 1 2 3 . . . 需 要 优 工 都 知 先 具 查 识 查 没 不 : 工 有 到 具 的 ( → 结 → 构 明 化 传 确 、 统 说 实 " 时 R 不 、 A 知 有 G 道 权 " 限 检 ) 索 ( 文 档 库 )

四、什么时候用哪种

知识类型 方案
静态文档(手册、论文) 传统 RAG(索引成本低)
实时业务数据(简历、订单) MCP 工具查询
结构化统计(聚合分析) MCP 工具
混合知识库 混合(工具优先 + RAG 兜底)

判断标准:

数 数 数 以 据 据 据 上 " " " 都 会 结 有 是 变 构 权 " 化 限 N 吗 " " O ? 吗 吗 → ? ? → → → 会 传 变 是 有 统 : : : 工 工 工 R 具 具 具 A 查 返 层 G 询 回 过 ( 结 滤 足 实 构 够 时 化 ) 结 果

五、最佳东方实践

场 方 景 案 : 对 R M 招 比 A C 聘 : G ❌ ❌ ❌ P ✅ ✅ 平 台 方 简 简 权 方 实 意 案 历 历 限 案 时 图 A : 是 实 : : 、 响 g 简 结 时 简 s 结 应 e 历 构 更 历 e 构 准 n 文 化 新 是 a 化 确 t 档 的 , 敏 r 、 率 ( 索 感 c 带 提 需 → 技 引 数 h 权 升 要 能 滞 据 _ 限 " 切 / 后 , r 5 候 片 经 检 e 0 选 历 索 s % 人 → / 后 u + 画 薪 过 m ( 像 向 资 滤 e 上 " 量 分 风 线 知 索 开 险 工 数 识 引 ) 高 具 据 , ) → 切 → 片 检 会 实 索 切 时 碎 查 → 询 拼 + 上 下 权 文 限 过 滤 + 结 构 化 返 回

六、避坑清单

✅ ✅ ✅ ✅ ✅ 工 工 权 查 结 具 具 限 询 果 返 描 必 频 裁 回 述 须 率 剪 " 写 在 控 ( 结 清 工 制 一 构 " 具 ( 次 化 查 层 L 返 结 什 ( L 回 果 么 不 M " 、 是 T ( 返 上 可 o 别 回 层 能 p 返 什 过 反 回 么 滤 复 N 原 " ) 查 始 ( + 文 L → 档 L 关 , M 工 键 L 具 字 L 才 级 段 M 能 限 , 选 流 别 消 对 全 费 ) + 量 不 ) 了 缓 ) 存 )

七、MCP-RAG 的局限

❌ ❌ ❌ → 不 增 工 最 适 加 具 佳 合 返 实 " L 回 践 语 L 质 : 义 M 量 工 模 依 具 糊 推 赖 查 检 理 上 询 索 负 游 ( " 担 ( 精 ( ( E 确 工 每 S ) 具 次 + 是 要 质 精 " 量 向 确 想 差 量 查 " , 检 询 调 工 索 , 哪 具 ( 模 个 结 模 糊 工 果 糊 场 具 也 ) 景 ) 差 双 用 ) 通 向 道 量 )

总结

MCP 与 RAG 结合的核心认知:

  1. RAG 的局限是"静态切片",MCP 的答案是"动态查询"
  2. 查询即检索:知识变成工具,实时、结构化、带权限
  3. 工具优先 + RAG 兜底:精确查工具、模糊查向量
  4. 判断标准:数据会变/结构化/有权限 → 用工具;静态文档 → 用 RAG

2026 年知识型 Agent 的方向:不是"塞更多知识",是"给模型更好的查询能力"。 MCP 把知识的边界从"上下文"扩展到了"整个系统"。