MCP + 数据库,一种比 RAG 检索效果更好的新方式!

在今天这一期,我们将一起学习一种基于 MCP 提高大模型检索外部知识精度的新思路,实测比 RAG 效果要好很多。

目前市面上讲 MCP 的教程比较多,但大多数都是一些概念性的讲解,最近我对 MCP 的体验也比较多,我也切实体验到了 MCP 确实是一项很有意义的技术标准,能帮助我们解决很多之前难以解决的问题,所以在今天的教程里,我从这样一个实际的案例出发来跟大家聊一聊 MCP,整体的学习路径如下:

图片

在开始学习之前,我们先了解一下,RAG 技术目前的局限性。

一、背景:RAG 的局限性

RAG,即检索增强生成(Retrieval-Augmented Generation),是目前大模型领域的一个热门方向。它将信息检索技术与生成式模型相结合,解决大模型在知识准确性、上下文理解以及对最新信息的利用等方面的难题。

但是很多小伙伴可能对 RAG 有点误解,觉得我们只要将一些额外的知识通过 RAG 导入,模型就能完美的掌握并且回答这些知识相关的问题。但事实和想象还是有差距的,大家在实际尝试后可能会发现,RAG 的精准度似乎没有那么好。

RAG 本身技术原理的角度出发,目前存在着以下问题:

  • 检索精度不足:首先,RAG 最核心的就是先将知识转换成 “向量“ ,导入 “向量数据库“,然后在将用户输入的信息也转换成 “向量” ,然后再去向量数据库匹配出相似的 “向量“,最后再由大模型去总结检索到的内容。

图片

从这个过程中我们看出,大模型仅仅起到了总结的作用,而检索到信息的精准度大部分情况下取决于向量的相似度匹配,检索结果可能包含无关内容(低精确率)或遗漏关键信息(低召回率)。

  • 生成内容不完整:由于 RAG 处理的是文档的切片,而切片的局部性注定了它无法看到整篇文档的信息,因此在回答诸如“列举XXX”“总结XXX”等问题时,一般回答是不完整的。
  • 缺乏大局观:RAG 无法判断需要多少个切片才能回答问题,也无法判断文档间的联系。例如,在法律条文中,新的解释可能覆盖旧的解释,但 RAG 无法判断哪个是最新的。
  • 多轮检索能力弱:RAG 缺乏执行多轮、多查询检索的能力,而这对推理任务来说是必不可少的。

尽管近期也有些新出现的技术,如 GraphRAG、KAG 等能够在一定程度上解决这些问题,但都还不成熟,目前的 RAG 技术还远远达不到我们预期想要的效果。

下面,我们将介绍一个新的方案,通过 MCP + 数据库来提高结构化数据的检索精准度,基本上能够实现 text to SQL 的效果,实测的检索效果也要比 RAG 好很多,例如我们有这样一份学生列表的信息:

图片

我们用一个稍微复杂一点问题(身高 180-190cm 之间的女生有哪些?)来测试:

图片

二、理论:了解 MCP 的基础知识

在开始学习 MCP 之前,有一个绕不开的话题,就是 Function Call,我们先来回顾一下。

2.1 Function Call

以前的 AI 大模型就像一个知识丰富但被困在屋子里的人,只能依靠自己已有的知识回答问题,无法直接获取实时数据或与外部系统交互,比如不能直接访问数据库里的最新信息,也不能使用一些外部工具来完成特定任务。

Function CallOPEN AI2023 年推出的一个非常重要的概念:

https://openai.com/index/function-calling-and-other-api-updates/https://openai.com/index/function-calling-and-other-api-updates/

Function Call(函数调用) 本质上就是提供了大模型与外部系统交互的能力,类似于给大模型安装一个 “外挂工具箱”。当大模型遇到自己无法直接回答的问题时,它会主动调用预设的函数(如查询天气、计算数据、访问数据库等),获取实时或精准信息后再生成回答。

比如,我们在 Coze 这种零代码 Agent 搭建平台上看到的插件,其实都是基于 Function Call 的思路来封装的:

https://www.coze.cn/store/pluginhttps://www.coze.cn/store/plugin

这个能力确实是挺好的,给了大模型更多的可能性,但是它有一个比较大的缺点,就是实现成本太高了。

MCP 出现之前,开发者想实现 Function Call 的成本是比较高的,首先得需要模型本身能够稳定支持 Function Call 的调用,比如我们在 Coze 中选择某些模型时提示,选择的模型不支持插件的调用,其实就是不支持 Function Call 的调用:

图片

在之前的数据集教程 [想微调特定领域的 DeepSeek,数据集究竟要怎么搞?]中,我们也提到了,在标准的 sharegpt 风格的数据集中就提供了专门用于 Function Call 训练的特殊字段。

[
  {
    "conversations": [
      {
        "from": "human",
        "value": "人类指令"
      },
      {
        "from": "function_call",
        "value": "工具参数"
      },
      {
        "from": "observation",
        "value": "工具结果"
      },
      {
        "from": "gpt",
        "value": "模型回答"
      }
    ],
    "system": "系统提示词(选填)",
    "tools": "工具描述(选填)"
  }
]

这也就意味着模型本身需要进行过专门的 Function Call 调用微调才能稳定支持这种能力。

另外还有一个比较大的问题,OPEN AI 最开始提出这项技术的时候,并没有想让它成为一项标准,所以虽然后续很多模型也支持了 Function Call 的调用,但是各自实现的方式都不太一样。

这也就意味着,如果我们要发开一个 Function Call 工具,需要对不同的模型进行适配,比如参数格式、触发逻辑、返回结构等等,这个成本是非常高的。

图片

这也大大提高了 AI Agent 的开发门槛,所以在以前我们大部分情况下只能通过 Dify、Coze 这些平台来构建 Agent

核心特点

  • 模型专属:不同模型(GPT/Claude/DeepSeek)的调用规则不同
  • 即时触发:模型解析用户意图后直接调用工具
  • 简单直接:适合单一功能调用(如"查北京温度"→调用天气API)

痛点

  • 协议碎片化:需为每个模型单独开发适配层
  • 功能扩展难:新增工具需重新训练模型或调整接口

类比

  • 不同品牌手机的充电接口(Lightning/USB-C),设备间无法通用

2.2 MCP

MCP(Model Context Protocol,模型上下文协议)是一种由 Anthropic 公司(也就是开发 Claude 模型的公司)推出的一个开放标准协议,目的就是为了解决 AI 模型与外部数据源、工具交互的难题。

图片

通过 Function Call ,每次要让模型连接新的数据源或使用新工具,开发者都得专门编写大量代码来进行对接,既麻烦又容易出错。而 MCP 的出现就是为了解决这些问题,它就像是一个 “通用插头” 或者 “USB 接口”,制定了统一的规范,不管是连接数据库、第三方 API,还是本地文件等各种外部资源,都可以通过这个 “通用接口” 来完成,让 AI 模型与外部工具或数据源之间的交互更加标准化、可复用。

最开始推出的时候,只有 Claude 客户端支持,大家也没把它当回事,但是后续由于 CursorCursorClaude 的关系大家都懂) 的支持,各种插件和工具也开始陆续提供支持;再加上最近 AI Agent 被 Manus 这个 “概念” 工具给炒的非常火热,让 MCP 逐步开始走进大众视野,直到最近,OPEN AI 也宣布对 MCP 提供了支持:

图片

这让我真正的感觉到,MCP 真的做到了,它已经成为 AI 工具调用的 “行业标准”。

MCP Host,比如 Claude Desktop、Cursor 这些工具,在内部实现了 MCP Client,然后 MCP Client 通过标准的 MCP 协议和 MCP Server 进行交互,由各种三方开发者提供的 MCP Server 负责实现各种和三方资源交互的逻辑,比如访问数据库、浏览器、本地文件,最终再通过 标准的 MCP 协议返回给 MCP Client,最终在 MCP Host 上展示。

图片

开发者按照 MCP 协议进行开发,无需为每个模型与不同资源的对接重复编写适配代码,可以大大节省开发工作量,另外已经开发出的 MCP Server,因为协议是通用的,能够直接开放出来给大家使用,这也大幅减少了开发者的重复劳动。

比如,你如果想开发一个同样逻辑的插件,你不需要在 Coze 写一遍,再去 Dify 写一遍,如果它们都支持了 MCP,那就可以直接使用同一个插件逻辑。

核心特点

  • 协议标准化:统一工具调用格式(请求/响应/错误处理)
  • 生态兼容性:一次开发即可对接所有兼容MCP的模型
  • 动态扩展:新增工具无需修改模型代码,即插即用

核心价值,解决三大问题

  • 数据孤岛 → 打通本地/云端数据源
  • 重复开发 → 工具开发者只需适配MCP协议
  • 生态割裂 → 形成统一工具市场

类比

  • USB-C 接口:手机/电脑/外设通过统一标准互联

2.3 MCP 对比 Function Call

在这里插入图片描述

注:调用方式这里反了。

三、尝试:学会 MCP 的基本使用

从上面 MCP 的架构图中我们可以看到,想要使用 MCP 技术,首先就是得找到一个支持 MCP 协议的客户端,然后就是找到符合我们需求到 MCP 服务器,然后在 MCP 客户端里调用这些服务。

3.1 MCP 客户端(Host)

在 MCP 官方文档中,我们看到已经支持了 MCP 协议的一些客户端/工具列表:

在这里插入图片描述

从表格里,我们可以看到,MCP 对支持的客户端划分了五大能力,这里我们先简单了解即可:

  • Tools:服务器暴露可执行功能,供 LLM 调用以与外部系统交互。
  • Resources:服务器暴露数据和内容,供客户端读取并作为 LLM 上下文。
  • Prompts:服务器定义可复用的提示模板,引导 LLM 交互。
  • Sampling:让服务器借助客户端向 LLM 发起完成请求,实现复杂的智能行为。
  • Roots:客户端给服务器指定的一些地址,用来告诉服务器该关注哪些资源和去哪里找这些资源。

目前最常用,并且被支持最广泛的就是 Tools 工具调用。

对于上面这些已经支持 MCP 的工具,其实整体划分一下就是这么几类:

  • AI 聊天工具:如 5ire、LibreChat、Cherry Studio
  • AI 编码工具:如 Cursor、Windsurf、Cline
  • AI 开发框架:如 Genkit、GenAIScript、BeeAI

在这里插入图片描述

3.2 MCP Server

MCP Server 的官方描述:一个轻量级程序,每个程序都通过标准化模型上下文协议公开特定功能。

简单理解,就是通过标准化协议与客户端交互,能够让模型调用特定的数据源或工具功能。常见的 MCP Server 有:

  • 文件和数据访问类:让大模型能够操作、访问本地文件或数据库,如 File System MCP Server;
  • Web 自动化类:让大模型能够操作浏览器,如 Pupteer MCP Server;
  • 三方工具集成类:让大模型能够调用三方平台暴露的 API,如 高德地图 MCP Server;

下面是一些可以查找到你需要的 MCP Server 的途径:

第一个是官方的 MCP Server 集合 Github 仓库(https://github.com/modelcontextprotocol/servers),里面包含了作为官方参考示例的 MCP Server、被官方集成的 MCP Server 以及一些社区开发的第三方 MCP Server

在这里插入图片描述

另外一个是 MCP.so(https://mcp.so/):一个三方的 MCP Server 聚合平台,目前收录了 5000+ MCP Server:

在这里插入图片描述

其提供了非常友好的展示方式,每个 MCP Server 都有具体的配置示例:

在这里插入图片描述

  • MCP Market(https://mcpmarket.cn/),访问速度不错,可以按工具类型筛选:

在这里插入图片描述

3.3 在 Cherry Studio 中尝试 MCP

我们先来尝试一个最简单的 MCP 接入示例,这里我们选择 Cherry Studio

Cherry Studio 对于小白用户还是比较友好的,可以让你在客户端一键完成必备环境(这些环境是什么意思我们后面会讲)的安装:

在这里插入图片描述

在很多其他工具中,需要用户手动在自己的电脑上安装这些环境,比如 Windsurf

在这里插入图片描述

所以对小白用户,我建议先使用 Cherry Studio 上手尝试。

打开 Cherry Studio 客户端,我们到「设置 - MCP 服务器」把上面提示的两个环境完成安装:

在这里插入图片描述

然后,我们在搜索框搜索 @modelcontextprotocol/server-filesystem,这里我们接入一个简单的文件系统 MCP:

在这里插入图片描述

点击 + ,它会帮我们默认创建好一些 MCP Server 的配置,这里我们要补充一个参数,你允许让它访问的文件夹路径,比如 ~/Desktop

在这里插入图片描述

然后我们点击保存,如果服务器的绿灯亮起,说明配置成功:

在这里插入图片描述

下面,我们到聊天区域选择一个模型, 注意这里一定要选择带扳手🔧图标的模型,只有这种工具才支持 MCP(因为 Cherry Studio 其实本质上还是基于 Function Call 实现的 MCP,所以只有部分模型支持)

在这里插入图片描述

然后我们发现下面工具箱多了 MCP 的开关,我们把它打开:

在这里插入图片描述

然后我们尝试让他访问我桌面上有哪些文件:

在这里插入图片描述

调用成功,这就是一个最简单的 MCP 调用示例了。

但是,因为 Cherry Studio 是刚刚支持的 MCP,在实际测试中,我发现体验并不是那么好,支持调用的模型种类比较少,而且在调用过程中不是很稳定。所以在后续的实战章节,我们使用 VsCode + Cline 来调用 MCP

不过这里用什么工具大家不用太纠结,目前 MCP 的发展势头非常迅猛,从最开始只有 Claude 支持,到现在已经有几十个工具提供了支持,后续生态一定是会更加繁荣,各种工具也会越来越成熟,所以大家核心是掌握使用的思路。

四、实战:使用 MCP 调用数据库

首先,为了方便给大家进行演示,我们先来构造一个简单的数据库案例。

4.1 Mongodb

这里我们选择的数据库是 MongoDB:一款流行的开源的文档型数据库。MongoDB 使用文档型数据模型,数据以 JSON 格式存储。

在这里插入图片描述

为什么选择 MongoDB 而不是 sqlite 之类的关系型数据库呢,主要还是因为在关系型数据库中,表结构是固定的,若要添加新字段或修改表结构,往往需要进行复杂的迁移操作。而 MongoDB 的文档型数据模型,允许在同一个集合中存储不同结构的文档,应用程序可以根据需要灵活地添加或修改字段,无需事先定义严格的表结构,这对于我们想构建一个持续补充的结构化知识库的场景,是非常友好的。

大家可以直接在官方文档下载安装 MongoDB Community Server(MongoDB 的免费开源版本):

在这里插入图片描述

安装完成后,其会默认监听我们本地的 27017 端口:

在这里插入图片描述

然后,为了可视化查看数据,我们还需要安装 MongoDB Compass (MongoDB 提供的本地 GUI 可视化工具)

在这里插入图片描述

安装完成后,我们通过 MongoDB Compass 客户端链接到本地的 MongoDB Server

在这里插入图片描述

随后,大家就可以通过客户端将自己的数据导入 MongoDB 数据库,在后面的例子中,我们将使用一个学生信息的数据来进行演示,假定我们的数据是这样的:

在这里插入图片描述

如果你不知道怎么导入 MongoDB ,可以借助 AI 来帮你编写导入脚本,然后根据 AI 提示进行导入即可:

提示词:帮我编写一个脚本,可以将当前表格中的数据导入我本地的 MongoDB 数据库,数据库的名称为 studentManagement

在这里插入图片描述

然后根据 AI 提示运行脚本进行导入即可,成功导入后的效果:

在这里插入图片描述

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

<think>好的,用户想了解“MCP +cursor”的相关信息。首先,我需要确定MCP在这里具体指的是什么。因为MCP是一个常见的缩写,可能有多种含义。常见的解释包括: 1. **Multi-Classification Problem(多分类问题)**:在机器学习中,处理多类别分类的任务。 2. **Minimum Contradiction Principle(最小矛盾原则)**:在逻辑或优化问题中使用的原则。 3. **Microsoft Certified Professional(微软认证专家)**:IT认证的一种。 4. **Media Control Protocol(媒体控制协议)**:网络协议中的一种。 5. **Multivariate Copula Process(多变量连接过程)**:统计学中的概念。 6. **Mission Critical Platform(关键任务平台)**:在IT基础设施中的术语。 而“cursor”通常指光标,或者在数据库中的游标。结合用户提到的“+cursor”,可能需要考虑技术或编程相关的上下文。例如: - 如果是数据库领域,可能涉及游标操作与某种MCP技术结合。 - 在编程工具中,可能有名为MCP的库或框架与光标处理相关。 接下来,我需要进一步分析可能性。由于用户未提供更多上下文,可能需要假设常见的组合。例如,在软件开发中,MCP可能指“Mod Coder Pack”(用于Minecraft模组开发),而cursor可能指代码编辑中的光标操作,但不太常见。 另一种可能是“Multi-Cursor Programming”,即多光标编程功能,常见于现代代码编辑器(如VS Code、Sublime Text),允许同时编辑多个位置。但MCP在这里可能指特定的工具或插件。 另外,检查是否有拼写错误,比如“MCP”是否为“MVC”(模型-视图-控制器)的笔误,但结合cursor可能不太相关。 考虑到用户可能遇到的是编程或工具相关的术语,可能需要进一步询问上下文。但根据现有信息,最可能的解释是: **MCP(Mod Coder Pack) + Cursor**:在Minecraft模组开发中,MCP用于反混淆代码,而cursor可能指代码编辑中的光标操作,或是某个特定工具中的功能。 或者,**Multi-Cursor Plugin**:某些编辑器支持多光标编辑,可能某个插件命名为MCP。 由于信息不足,无法确定准确含义。建议用户提供更多上下文,如领域、应用场景或全称,以便更准确地解答。</think>关于“MCP + cursor”的解析及可能方向: 1️⃣ **可能含义分析** - **MCP** 常见解释: - **Mod Coder Pack**:Minecraft模组开发工具包,用于反混淆代码。 - **Multi-Classification Problem**:机器学习中的多分类任务。 - **Media Control Protocol**:流媒体传输控制协议。 - **Microsoft Certified Professional**:微软技术认证。 - **Cursor** 常见关联: - 代码编辑器中的光标操作(如多光标编辑)。 - 数据库中的游标(数据遍历机制)。 2️⃣ **技术领域推测** - **若涉及编程开发**: - 可能指使用MCP工具进行代码反混淆时,结合编辑器多光标功能批量修改代码。 - 示例:在VS Code中通过`Alt+Click`添加多个光标,快速修改反混淆后的变量名。 - **若涉及数据库**: - 可能指通过MCP协议控制媒体流时,使用游标遍历数据记录。 3️⃣ **建议行动步骤** - **确认上下文**: - 提供更多使用场景(如游戏开发、数据库、机器学习等)。 - 检查是否缩写拼写完整(如是否应为“MVC”或“MCC”)。 - **工具验证**: - 若指Mod Coder Pack,可查阅官方文档是否提及光标相关功能。 - 搜索“MCP cursor plugin”验证是否存在相关插件。 4️⃣ **扩展参考** - 多光标编辑技巧(通用): ```text VS Code: Alt+Click 添加光标 Sublime Text: Ctrl+Click 或 Ctrl+D 选中相同词 ``` - 数据库游标操作示例(SQL): ```sql DECLARE cur CURSOR FOR SELECT * FROM table; OPEN cur; FETCH NEXT FROM cur; ``` 如需更精准解答,请补充具体应用场景或完整术语。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值