不懂SQL?用MCP+AI,一句話搞定MySQL查詢
近,AI領(lǐng)域最值得關(guān)注的技術(shù)之一莫過于MCP(Model Context Protocol)了。
MCP由Claude的母公司Anthropic在2024年底開源發(fā)布的技術(shù),它充當(dāng)AI大模型與外部數(shù)據(jù)、工具之間的“通用語言”或“萬能插座”。
通過MCP,AI大模型可以與外界溝通,獲取信息并完成具體任務(wù)。
在未來,也許就是依靠主流大模型充當(dāng)大腦,再借助各種MCP工具,來幫我們完成各種工作。
這幾天,我也了解了一些MCP工具,比如爬蟲的、處理文件的、操作瀏覽器的。
也有不少M(fèi)ySQL的MCP工具。
這篇文章,我們就講一下怎樣借助Cline和mysql-mcp-server,來實(shí)現(xiàn)自然語言轉(zhuǎn)SQL,從而獲取到數(shù)據(jù)庫中的結(jié)果。
1.安裝Cline
Cline是一個AI編程插件,這款工具主要可以實(shí)現(xiàn):
- 通過提示詞直接生成代碼;
- 通過提示詞+MCP完成更多的功能。
打開Vscode,在插件市場搜索:Cline,點(diǎn)擊Install。
點(diǎn)擊下方按鈕信任插件:
2.配置Cline
點(diǎn)擊左側(cè)最下方的圖標(biāo),再點(diǎn)擊設(shè)置:
配置DeepSeek的API key:
點(diǎn)擊Let's go!
當(dāng)然,如果沒有DeepSeek官方的API key,也可以使用硅基流動的API key。
API Provider選擇:“OpenAI Compatible”
Base URL填:https://api.siliconflow.cn/
API Key 填:在硅基流動官網(wǎng)申請的API key
Mode ID 填:deepseek-ai/DeepSeek-R1
再點(diǎn)擊Done。
3.安裝mysql-mcp-server
我們在VS Code的窗口把mysql-mcp-server項目下載下來,執(zhí)行:
git clone https://github.com/dpflucas/mysql-mcp-server.git
進(jìn)入到項目文件夾:
cd mysql-mcp-server
安裝依賴并構(gòu)建,執(zhí)行:
npm install
npm run build
再點(diǎn)擊CLINE里的MCP Servers,如下圖這個按鈕:
點(diǎn)擊Installed,再點(diǎn)擊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": []
}
}
}
同時,也要在我們克隆下來的項目里新增.env文件,并配置如下內(nèi)容:
# 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 pool
記得都改成你要連接的MySQL。
4.測試
配置完成后,在Cline聊天框,輸入你的請求,就能返回數(shù)據(jù)庫里的數(shù)據(jù),比如:
返回的結(jié)果是:
我們再來測試具體的SQL,比如新建一張測試表,假如是銷量信息的,并寫入一些測試數(shù)據(jù):
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');
再到Cline詢問:
銷售信息表是product_sales,求出2023-04-22的總銷售額:
就會產(chǎn)生SQL,讓你確認(rèn):
點(diǎn)擊Approve,就能生成結(jié)果。
整個實(shí)現(xiàn)過程,就是:用戶輸入 → VSCode 插件 (Cline) → mysql-mcp-server → MySQL 數(shù)據(jù)庫 → 查詢結(jié)果
5.更多MySQL相關(guān)的MCP工具
可以去MCP工具合集里搜索MySQL關(guān)鍵字,工具集地址:https://smithery.ai
MySQL相關(guān)的MCP還是挺多的:
其他的大家感興趣也可以試試看。