图片
想让AI 能通过 MCP 访问和操作数据库,就需要先把你项目的数据库做成一个MCP Server,这里我只推荐搞开发/测试环境的数据库哦,线上环境的数据库还是别让AI直接操作了吧,毕竟程序和人有一个能跑就行……

在用AI编程时,除了要给AI描述你的需求外,经常还需要把你项目的数据库的表结构告知给AI才行,否则AI再强大也没法正确写出你想要的数据Model和Dao层的代码–应了那句六字箴言“臣妾办不到啊”。

刚开始用AI写代码的时候,我都是把项目数据库的表结构放到项目里一个单独的.sql 文件中,每次需要开发哪个模块的需求时就把对应的表结构用快捷键加到跟AI的对话上下文中,或者更懒一点直接告诉AI去sql文件自己找来看。

这几个月AI编程的工具也是越来越强大,每次开始任务前会先给你列个计划,等符合你预期了再开始干活。那怎么让AI自己去查看或者操作你的数据库呢?这就需要把你项目的数据库通过MCP告诉它了,通过MCP AI能知道项目表的数据结构,甚至是在你的授权下进行CRUD。

想让AI 能通过 MCP 访问和操作数据库,就需要先把你项目的数据库做成一个MCP Server,这里我只推荐搞开发/测试环境的数据库哦,线上环境的数据库还是别让AI直接操作了吧,毕竟程序和人有一个能跑就行……

MCP 工具安装

数据库的MCP Server 并不需要你写代码开发,直接安装使用Google开源的 MCP Toolbox for Databases 即可,里面提供了各个类型的数据库工具,这里我演示一下怎么把MySQL的数据库做成MCP。

首先我们需要在电脑上先安装这个工具:

curl -O https://storage.googleapis.com/genai-toolbox/v0.19.1/darwin/arm64/toolbox
  • 1.

安装完后,把它的权限修改为可执行

chmod +x toolbox
  • 1.

执行下面的命令验证是否安装设置成功

./toolbox --version
  • 1.

在Cursor 中配置MCP

接下来我们在Cursor 中配置项目数据库的MCP,其他AI编程工具的配置大同小异,我们先看Cursor中怎么配置。

在你的项目中需要创建一个.cursor 目录,在其中创建mcp.json 文件,输入下面的配置:

{
  "mcpServers": {
    "mysql": {
      "command": "./PATH/TO/toolbox",
      "args": ["--prebuilt", "mysql", "--stdio"],
      "env": {
        "MYSQL_HOST": "", 
        "MYSQL_PORT": "",
        "MYSQL_DATABASE": "",
        "MYSQL_USER": "",
        "MYSQL_PASSWORD": ""
      }
    }
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

在配置中输入你项目的数据库信息,一般生产环境的数据库从你本地电脑也没法连吧(能连也不能配成生产的),所以这里应该写项目测试/开发环境数据库的信息。

然后我们打开Cursor的MCP配置,路径:Settings > Cursor Settings > MCP

图片

能看到这个绿色的状态就证明Cursor 连接项目的 MCP 成功了。其他工具配置数据库 MCP的方式官方文档里都有说明。

图片

文档链接:https://googleapis.github.io/genai-toolbox/how-to/connect-ide/mysql_mcp/#configure-your-mcp-client

使用数据库 MCP

配置好了之后证明使用呢,我们先来看看 MCP 里提供了哪些工具和对应的功能,MCP的协议里Server会告知MCP Client 自己有什么工具,那么Cursor就是一个内嵌MCP Client 的Host,所以我们直接问AI好了。

图片

具体文字我就不列了,大家直接看图吧,上面常用的有list_tables 和 execute_sql 这两个工具,当然AI调用他们时还需要加上前缀 “mcp_mysql_” 即AI要执行一个SQL查询调用 “mcp_mysql_execute_sql” 这个工具。

这里我们没有必要记这些工具名,只需要给AI下达任务时告知它要做的操作。

比如我说“请使用MCP Mysql工具往 aa库.bb 表中插入一条测试数据,插入数据时需要哪些信息你可以自己扫描表的结构”

那么AI就会先执行 Show Create Table 来查看表的结构

图片

接下来会执行数据插入,目前Cursor默认在执行数据库查询的时候不需要你授权,但是在执行Insert的时候会让你审核SQL点击授权后再执行。

图片

这一点我觉的在让AI自己写程序测试另一个AI写的代码是否符合需求时还是挺有用的,不然除了打字告诉AI去哪里查看建表语句外,生成的一些Mock数据还要AI输出后自己粘贴到数据库工具里去手动执行,体验嘛,肯定是自己动手越少体验越好。

总结

这两个月AI编程能力进步地很快,生态发展的也猛,今天难得有空写点字儿,分享一下一个小工具的使用。最后再提醒一句,不要把生产库的信息配置到MCP里,也不要把这里用到的mcp.json 提交到代码仓库里,免得泄漏隐私信息。

文章来自:51CTO

Loading

作者 yinhua

发表回复