MCP+数据库,一种比 RAG检索效果更好的新方式!
1.pdf在线链接
</div>
MCP + 数据库,一种比 RAG 检索效果更好的新方式!
作者:Conardi.i | code秘密花园
一、背景:RAG 的局限性
RAG(检索增强生成)通过结合信息检索和生成模型解决大模型的知识准确性问题,但存在以下问题:
- 检索精度不足:依赖向量相似度匹配,易包含无关内容或遗漏关键信息。
- 生成内容不完整:文档分块导致无法获取全局信息,回答“列举/总结类”问题不完整。
- 缺乏多轮检索能力:无法执行复杂查询或判断文档间关联。
二、理论:了解 MCP 的基础知识
2.1 Function Call
- 功能:大模型调用外部工具(如查询天气、数据库)的接口。
- 缺点:
- 实现成本高,需模型支持特定调用规则。
- 协议碎片化,不同模型适配方式不同(类似不同品牌手机的充电接口)。
2.2 Model Context Protocol (MCP)
- 定义:Anthropic 推出的开放协议,统一AI模型与外部数据源/工具的交互标准。
- 核心价值:
- 协议标准化(基于 JSON-RPC 2.0)。
- 工具热插拔,无需修改模型代码。
- 解决数据孤岛、重复开发、生态割裂问题。
2.3 MCP vs Function Call
对比维度 | Function Call | MCP |
---|---|---|
协议标准 | 私有协议 | 开放协议 |
扩展成本 | 高(需调整模型) | 低(即插即用) |
适用场景 | 简单任务(单次调用) | 复杂流程(多工具协同) |
三、尝试:MCP 的基本使用
3.1 MCP 客户端(Host)
支持工具示例:
- AI聊天工具:Claude Desktop、LibreChat
- AI编程工具:Cursor、Cline
- 开发框架:Genkit、BeeAI
3.2 MCP Server
- 类型:
- 文件访问类(如 File System MCP Server)。
- Web自动化类(如 Puppeteer MCP Server)。
- 三方工具集成类(如高德地图 MCP Server)。
- 资源获取:通过官方仓库(GitHub)或社区市场(MCP Market)。
3.3 在 Cherry Studio 中尝试 MCP
- 安装环境:配置文件系统访问权限(如路径
/Users/bytedance/Desktop/project/dev/mcp-server-demo
)。 - 启用支持MCP的模型(带扳手图标)。
- 示例指令:
mcp-server-demo 下有哪些文件? 生成鲁迅简介的md文档并保存到该目录。
四、实战:使用 MCP 调用数据库
4.1 MongoDB 配置
- 安装:下载 MongoDB Community Server 和可视化工具 Compass。
- 导入数据:通过Python脚本将学生信息表导入
studentManagement
数据库。import pandas as pd from pymongo import MongoClient client = MongoClient('mongodb://localhost:27017/') db = client['studentManagement'] data = pd.read_csv("学生信息.csv") db.students.insert_many(data.to_dict('records'))
4.2 VSCode + Cline 配置
- 安装Cline插件:在VSCode插件市场搜索并安装。
- 配置MCP Server:手动添加
mcp-mongo-server
配置:{ "mongodb": { "command": "npx", "args": ["mcp-mongo-server", "mongodb://localhost:27017/studentManagement"] } }
4.3 查询示例
- 简单查询:
目前共有多少名学生? → 返回结果:32名
- 复杂查询:
身高>180cm、姓李的男同学 → 返回结果:3名
- 模糊查询:
期末考试比平时成绩好的学生 → 模型通过聚合管道分析成绩表并返回结果。
4.4 通过 Prompt 优化
添加全局提示词描述数据库表结构(如学生表、成绩表字段及关联关系),提升模型查询准确性。
五、对比与局限性
4.5 对比知识库(RAG vs MCP)
- RAG缺点:
- 依赖文本匹配,无法执行结构化查询(如“张老师的联系方式”)。
- 回答模糊或无法完成复杂分析。
- MCP优势:直接执行数据库查询,结果精准。
4.6 局限性
- 数据量限制:避免单次查询过大导致Token消耗剧增。
- Token消耗:MCP依赖系统提示词,Token用量显著增加。
全套教程资源:《人人都能学会的 AI 教程》合集
代码与配置示例:GitHub仓库
评论
数据库加载中