Cursor+MCP实现用嘴操纵数据库,太丝滑了!

1- Cursor+MCP 实现用嘴操纵数据库,太丝滑了

cover_image

这些天,我满脑子里都是 MCP,看了数十篇文章和论文,研究了各种案例后,我忍不住想给大家做下分享。

先说结论,通过 MCP,我让 Cursor 直接操作起了我本地的数据库。无论是数据查询,还是数据的增删改,他都无所不能。

大模型从此真正成了我私人的数据助手

image

说实话,像 DeepSeek 啊、豆包啊或者 claude 之类的大模型再牛逼,当你问他,我本地数据库里面有多少条数据,他就会显得有些爱莫能助。

因为他的训练集不可能会包含你的隐私数据。
但这导致了大模型在个人或企业隐私数据的瓶颈。
以前,很多人直接搞个本地的大模型,然后将隐私数据投喂给大模型,来训练私有化大模型。这是常见的做法,先不说私有化部署的成本,光是微调训练的过程就不是普通人能搞定的。

但现在有了 MCP,很多东西都可以重新再衡量了。

1.1- MCP 是什么?

image

▼ 图片来源机器学习与数学公众号

MCP,全称为 Model Context Protocol,是一种由 Anthropic 公司建立并开源的模型上下文协议。简单来说,它允许大模型(比如 DeepSeek、豆包等)方便地调用外部工具和资源,类似计算机上的 USB-C 接口,简化了 AI 模型与数据、工具和服务之间的交互。
MCP 被定位为 AI 智能体与外部工具、数据交互的开放标准协议,目标是成为 AI 生态的通用语言。它让大模型不再局限于静态知识库,而是能像人类一样调用搜索引擎、访问本地文件、连接 API 服务,甚至操作第三方软件。
目前 MCP 支持 STDIO 模式(本地运行)和 SSE 模式(远程服务)2 种模式。使用方式也很简单,在 Cursor、Cherry Studio 等客户端中可以直接配置使用。

image

1.2- 在 Cursor 中配置 MCP

这里以 Cursor 为例,介绍 MCP 的配置过程。

更多使用方式可查阅我的 AI 开源知识库:AI 开源知识库

1.2.1- 配置高德地图 MCP Server

首先进入 Cursor 的 Settings:

image

mcpServers 部分添加高德地图的配置 JSON:

{
  "mcpServers": {
    "amap-maps": {
      "command": "npx",
      "args": [
        "-y",
        "@amap/amap-maps-mcp-server"
      ],
      "env": {
        "AMAP_MAPS_API_KEY": "这里填写你在高德申请的API key"
      }
    }
  }
}

image

配置完成后,在 Cursor Settings 中确认 MCP Server 状态灯显示为绿色(Enabled)。

image

使用时,选择 Agent 模式,模型选择支持工具调用的模型(如 claude-3.7-sonnet)。现在就可以直接在 Cursor 中查询天气或进行行程规划,Cursor 会自动调用配置好的 MCP Server。

image

image

image

高德的 MCP Server 提供了多种工具,可以探索更多功能。

image

1.2.2- 配置本地数据库 MCP Server

对于访问本地或远程数据库,也有对应的 MCP Server 可用。这里以 Ian Borla 的 mcp-server-mysql 为例进行配置。在 Cursor Settings 的 mcpServers 部分添加如下 JSON 配置:

{
  "mcpServers": {
    "MySQL": {
      "disabled": false,
      "timeout": 60,
      "command": "npx",
      "args": [
        "mcprunner",
        "MYSQL_HOST=127.0.0.1",
        "MYSQL_PORT=3306",
        "MYSQL_USER=root",
        "MYSQL_PASS=123456",
        "MYSQL_DB=pmhub-project",
        "ALLOW_INSERT_OPERATION=true",
        "ALLOW_UPDATE_OPERATION=true",
        "ALLOW_DELETE_OPERATION=false",
        "--",
        "npx",
        "-y",
        "@benborla29/mcp-server-mysql"
      ]
    }
  }
}

配置参数说明:

  • disabled: 是否禁用,false 表示启用。
  • timeout: 超时时间(秒)。
  • command, args: 运行 MCP Server 的命令和参数。
  • MYSQL_HOST, MYSQL_PORT, MYSQL_USER, MYSQL_PASS, MYSQL_DB: 数据库连接信息。
  • ALLOW_INSERT_OPERATION, ALLOW_UPDATE_OPERATION, ALLOW_DELETE_OPERATION: 允许或禁用特定的数据库操作,出于安全考虑可以关闭不需要的操作。

image

1.3- 数据库操作案例

配置好 MySQL MCP Server 后,就可以通过自然语言 " 用嘴 " 操作数据库了,无需编程经验。以下是一些示例:

  1. 查询表数据量

    • Prompt: 查询 pmhub-project 数据库中某一个表(例如:user 表)有多少条数据?
    • 结果:Cursor 调用 MCP Server 执行查询,并返回结果。
      image
  2. 查询数据库所有表

    • Prompt: 帮我查下 pmhub-project 这个数据库中一共有几张表,分别是哪些表有哪些作用,用个表格帮我汇总下。
    • 结果:Cursor 查询数据库元信息,列出所有表及其说明,并生成表格。
      image
  3. 创建新表

    • Prompt: 帮我创建一个学生表,要求有 id、姓名、年龄、性别字段。
    • 结果:由于 MCP Server 权限限制,可能无法直接创建表(此示例中失败,原作者已提 issue)。
      image
    • (注:为顺利进行后续实验,此处可能需要在数据库客户端手动创建学生表。)
  4. 添加记录

    • Prompt: 帮我在学生表中添加一条记录,张三,10 岁,男。
    • 结果:MCP Server 执行 INSERT 语句,成功添加记录。
      image
    • 数据库验证:记录已成功插入。
      image
  5. 修改记录

    • Prompt: 刚才这一条数据不对,张三今年 16 岁了,帮我改下。
    • 结果:MCP Server 执行 UPDATE 语句,成功修改记录,并自动更新了 updated_time 字段(如果表结构包含)。
      image
  6. 多表联查

    • (注:假设已创建课程表 course 并与学生表关联,并插入了几条测试数据)
    • Prompt: 帮我查一下张三一共修了多少课程,一共会耗时多长时间?
    • 结果:Cursor 自动生成并执行联查 SQL 语句,统计并返回结果。
      image
    • 通过 MCP,在 Cursor 中操作数据库变得极其简单。

1.4- MCP 的更多潜力

这还只是 MCP 应用的冰山一角。目前已有很多 MCP Server 被开发出来,覆盖各种工具和服务。随着 AI 生态的发展,未来会有更多智能体基于 MCP 构建。

image

GitHub、高德、百度地图、apifox 等许多应用也支持接入 MCP。

image

大模型本身是一个工具,当工具能够调用其他工具时,所能实现的功能将变得更加强大和有趣。