Model Context Protocol(MCP)作为新一代 AI 服务交互协议,带来了强大的会话管理能力和工具集成机制,今天先来探讨下 Cursor + MCP 来操作数据库。
一、Function Calling
现在有很多 AI 模型,无论是国外的 ChatGP 还是国内的 DeepSeek、通义千问、文心一言,用户可以提出各种问题,这些模型可以返回稿质量的回答。这些 AI 模型虽然虽然非常的强大,但是不具备自己感知外部世界的能力。
通俗的讲就是目前主流的大模型是基于静态数据进行的训练,数据具有时效性。那如何让大模型能自己获取最新的数据呢?为了满足 AI 模型的扩展性需求,OpenAI 公司于2023年提出了 Function Calling 技术。它允许 AI 模型在对话过程识别用户的特定需求,并调用特定的外部函数或工具来获取更准确的信息或执行特定的任务。这就极大的提高了 AI 的扩展性,可以获取实时数据,而不仅仅是基于静态数据了。
以前流行的各种智能体(Agent),就是基于 Function calling 技术实现的。AI 模型借助 Function Calling 技术,可以随时获取最新的信息,也可以随时访问和控制外部资源。这项技术虽然很强大,但是它却存在一些瑕疵。
Function Calling 没有统一的规范,同一个 Agent 往往需要访问数据库、网络、文件、应用、服务等等不同的资源。不同的开发者所开发的 Function Calling 彼此并不兼容,这使得开发成本非常高,无法复用,重复造轮子。
在 2024 年末,AI 模型 Anthropic 公司 提出了一项开源协议,MCP 协议(Model Context Protocol:模型上下文协议)。这套协议通过客户端-服务器架构与 JSON-RPC 2.0 等标准通信协议,实现了大模型与外部数据源、工具的无缝集成。
二、MCP 协议
MCP 协议(Model Context Protocol:模型上下文协议)是一种标准化的人工智能交互协议,用于规范 AI 模型与运行环境之间的上下文信息(如对话历史、用户状态、环境参数等)的存储、传递和更新机制,确保模型在多轮交互中保持持续的语境理解能力。
MCP 协议中设计了两个核心角色:一个是 MCP Client,一个是 MCP server。
MCP Client:用户或 AI 模型的请求发起方,负责格式化任务指令,并发送给 MCP Server。
MCP Server:协议的中枢,负责路由请求、管理上下文、调用工具,并返回执行结果。
通常 MCP Client 并不是独立运行的,而是嵌入在 AI 模型相关的工具当如,比如 IDE 等。协作关系图如下:
现在很多 AI 工具已经集成了 MCP Client,其中包括知名的 AI 编程工具 Cursor、Cline 等。至于 MCP Server,目前全球的开发者已经研发出了海量的 MCP Server,它们有各自的应用领域。这些 MCP Server 的功能非常丰富,有的可以读写数据库、有的可以爬取网页数据、有的可以整理本地文件等等,应有尽有。
许多人把自己开发的 MCP Server 上传到了包括 Github 在内的技术社区,大家可以找到自己需要的 MCP Server 使用。
https://github.com/modelcontextprotocol/servers
三、Cursor + MCP 实现数据库操作
虽然像 DeepSeek、豆包等大模型非常强大,但是你问他我数据库中有多少张表,有多少数据时,它显然是回答不上来的。因为它的训练数据集不包含你的隐私数据,这也导致了大模型在个人或企业隐私数据的瓶颈。
下面来看一个例子,如何使用 MCP 协议来操作本地数据库,以 Cursor为例。
第一步先下载 Cursor,Cursor 的下载地址为:Cursor - The AI Code Editor 。下载自己需要的即可。然后按照步骤进行安装即可,
第二步配置 MCP,这里以配置数据库为例。
第三步添加 MCP Server
{
"mcpServers": {
"MySQL": {
"disabled": false,
"timeout": 60,
"command": "npx",
"args": [
"mcprunner",
"MYSQL_HOST=127.0.0.1", # 数据库地址
"MYSQL_PORT=3306", # 数据库端口
"MYSQL_USER=root", # 数据库用户名
"MYSQL_PASS=1234567", # 数据库密码
"MYSQL_DB=database", # 配置的数据库
"ALLOW_INSERT_OPERATION=true",
"ALLOW_UPDATE_OPERATION=true",
"ALLOW_DELETE_OPERATION=false",
"--",
"npx",
"-y",
"@benborla29/mcp-server-mysql"
]
}
}
}
配置好后就可以直接操作数据库了,可以生成非常复杂的SQL语句,即使你不是程序员,只要描述的够清楚,就能获取到正确的输出。比如以下操作:
统计表的数量,可以粗略的进行表的分类,如果你的描述够清晰,统计的分类就会更准确。
是不是感觉很强大,一些简单的数据统计工作,其实你自己也可以做了。甚至一些比较复杂的子查询、多表联查都可以做到。
四、总结
MCP 提出的本质是为了解决 AI 模型与环境动态适配的瓶颈问题。随着大模型应用场景的复杂化,需要协议级的标准化方案来解决一下问题:
- 模型静态知识 vs 动态环境信息
- 有限计算资源 vs 无限上下文需求
- 数据隐私要求 vs 个性化服务需求
当前该协议仍在演进中,未来可能与神经符号系统(Neural-Symbolic Systems)结合,实现更高层次的语境理解能力。