不懂SQL?用MCP+AI,一句话搞定MySQL查询

近,AI领域最值得关注的技术之一莫过于MCP(Model Context Protocol)了。

MCP由Claude的母公司Anthropic在2024年底开源发布的技术,它充当AI大模型与外部数据、工具之间的“通用语言”或“万能插座”。

通过MCP,AI大模型可以与外界沟通,获取信息并完成具体任务。

在未来,也许就是依靠主流大模型充当大脑,再借助各种MCP工具,来帮我们完成各种工作。

这几天,我也了解了一些MCP工具,比如爬虫的、处理文件的、操作浏览器的。

也有不少MySQL的MCP工具。

这篇文章,我们就讲一下怎样借助Cline和mysql-mcp-server,来实现自然语言转SQL,从而获取到数据库中的结果。

1.安装Cline

Cline是一个AI编程插件,这款工具主要可以实现:

通过提示词直接生成代码;通过提示词+MCP完成更多的功能。

打开Vscode,在插件市场搜索:Cline,点击Install。

点击下方按钮信任插件:

2.配置Cline

点击左侧最下方的图标,再点击设置:

配置DeepSeek的API key:

点击Lets go!

当然,如果没有DeepSeek官方的API key,也可以使用硅基流动的API key。

API Provider选择:“OpenAI Compatible”

Base URL填:https://api.siliconflow.cn/

API Key 填:在硅基流动官网申请的API key

Mode ID 填:deepseek-ai/DeepSeek-R1

再点击Done。

3.安装mysql-mcp-server

我们在VS Code的窗口把mysql-mcp-server项目下载下来,执行:

复制
git clone https://github.com/dpflucas/mysql-mcp-server.git1.

进入到项目文件夹:

复制
cd mysql-mcp-server1.

安装依赖并构建,执行:

复制
npm install npm run build1.2.

再点击CLINE里的MCP Servers,如下图这个按钮:

点击Installed,再点击Configure MCP Servers

就可以看到有个配置文件cline_mcp_settings.json

可以使用推荐的配置(见:https://github.com/dpflucas/mysql-mcp-server):

复制
{ "mcpServers": { "mysql": { "command": "node", "args": ["D:\\mcp\\mysql-mcp-server\\build\\index.js"], "env": { "MYSQL_HOST": "your-mysql-host", "MYSQL_PORT": "3306", "MYSQL_USER": "your-mysql-user", "MYSQL_PASSWORD": "your-mysql-password", "MYSQL_DATABASE": "your-default-database" }, "disabled": false, "autoApprove": [] } } }1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.

同时,也要在我们克隆下来的项目里新增.env文件,并配置如下内容:

复制
# Connection parameters MYSQL_HOST=localhost MYSQL_PORT=3306 MYSQL_USER=your-mysql-user MYSQL_PASSWORD=your-mysql-password MYSQL_DATABASE=your-default-database # Advanced connection pool parameters MYSQL_CONNECTION_LIMIT=10 # Maximum number of connections in the pool (default: 10) MYSQL_QUEUE_LIMIT=0 # Maximum number of connection requests to queue (default: 0, unlimited) MYSQL_CONNECT_TIMEOUT=10000 # Connection timeout in milliseconds (default: 10000) MYSQL_IDLE_TIMEOUT=60000 # How long a connection can be idle before being released (in milliseconds) MYSQL_MAX_IDLE=10 # Maximum number of idle connections to keep in the pool1.2.3.4.5.6.7.8.9.10.11.12.

记得都改成你要连接的MySQL。

4.测试

配置完成后,在Cline聊天框,输入你的请求,就能返回数据库里的数据,比如:

返回的结果是:

我们再来测试具体的SQL,比如新建一张测试表,假如是销量信息的,并写入一些测试数据:

复制
CREATE TABLE product_sales ( id int auto_increment PRIMARY KEY comment 主键, product_name varchar(255) comment 商品名, price DECIMAL(10,2) comment 商品单价, quantity int comment 销售量, sale_date date comment 销售日期, key idx_product_name(product_name) ); INSERT INTO product_sales (product_name, price, quantity, sale_date) VALUES (iPhone 12, 8999, 10, 2023-04-21), (iPad Pro, 7999, 5, 2023-04-21), (MacBook Pro, 14999, 3, 2023-04-22), (AirPods Pro, 2199, 20, 2023-04-22), (Apple Watch Series 7, 3299, 8, 2023-04-22), (iPhone 11, 5999, 15, 2023-04-23), (iPad Air, 4699, 7, 2023-04-23), (MacBook Air, 9999, 4, 2023-04-24), (AirPods 2, 1299, 25, 2023-04-24), (Apple Watch SE, 2599, 12, 2023-04-25);1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.

再到Cline询问:

销售信息表是product_sales,求出2023-04-22的总销售额:

就会产生SQL,让你确认:

点击Approve,就能生成结果。

整个实现过程,就是:用户输入 → VSCode 插件 (Cline) → mysql-mcp-server → MySQL 数据库 → 查询结果

5.更多MySQL相关的MCP工具

可以去MCP工具合集里搜索MySQL关键字,工具集地址:https://smithery.ai

MySQL相关的MCP还是挺多的:

其他的大家感兴趣也可以试试看。

阅读剩余
THE END