用AI編程,怎么讓AI自動了解你的數(shù)據(jù)庫?
在用AI編程時,除了要給AI描述你的需求外,經常還需要把你項目的數(shù)據(jù)庫的表結構告知給AI才行,否則AI再強大也沒法正確寫出你想要的數(shù)據(jù)Model和Dao層的代碼--應了那句六字箴言“臣妾辦不到啊”。
剛開始用AI寫代碼的時候,我都是把項目數(shù)據(jù)庫的表結構放到項目里一個單獨的.sql 文件中,每次需要開發(fā)哪個模塊的需求時就把對應的表結構用快捷鍵加到跟AI的對話上下文中,或者更懶一點直接告訴AI去sql文件自己找來看。
這幾個月AI編程的工具也是越來越強大,每次開始任務前會先給你列個計劃,等符合你預期了再開始干活。那怎么讓AI自己去查看或者操作你的數(shù)據(jù)庫呢?這就需要把你項目的數(shù)據(jù)庫通過MCP告訴它了,通過MCP AI能知道項目表的數(shù)據(jù)結構,甚至是在你的授權下進行CRUD。
想讓AI 能通過 MCP 訪問和操作數(shù)據(jù)庫,就需要先把你項目的數(shù)據(jù)庫做成一個MCP Server,這里我只推薦搞開發(fā)/測試環(huán)境的數(shù)據(jù)庫哦,線上環(huán)境的數(shù)據(jù)庫還是別讓AI直接操作了吧,畢竟程序和人有一個能跑就行......
MCP 工具安裝
數(shù)據(jù)庫的MCP Server 并不需要你寫代碼開發(fā),直接安裝使用Google開源的 MCP Toolbox for Databases 即可,里面提供了各個類型的數(shù)據(jù)庫工具,這里我演示一下怎么把MySQL的數(shù)據(jù)庫做成MCP。
首先我們需要在電腦上先安裝這個工具:
curl -O https://storage.googleapis.com/genai-toolbox/v0.19.1/darwin/arm64/toolbox安裝完后,把它的權限修改為可執(zhí)行
chmod +x toolbox執(zhí)行下面的命令驗證是否安裝設置成功
./toolbox --version在Cursor 中配置MCP
接下來我們在Cursor 中配置項目數(shù)據(jù)庫的MCP,其他AI編程工具的配置大同小異,我們先看Cursor中怎么配置。
在你的項目中需要創(chuàng)建一個.cursor 目錄,在其中創(chuàng)建mcp.json 文件,輸入下面的配置:
{
"mcpServers": {
"mysql": {
"command": "./PATH/TO/toolbox",
"args": ["--prebuilt", "mysql", "--stdio"],
"env": {
"MYSQL_HOST": "",
"MYSQL_PORT": "",
"MYSQL_DATABASE": "",
"MYSQL_USER": "",
"MYSQL_PASSWORD": ""
}
}
}
}在配置中輸入你項目的數(shù)據(jù)庫信息,一般生產環(huán)境的數(shù)據(jù)庫從你本地電腦也沒法連吧(能連也不能配成生產的),所以這里應該寫項目測試/開發(fā)環(huán)境數(shù)據(jù)庫的信息。
然后我們打開Cursor的MCP配置,路徑:Settings > Cursor Settings > MCP

能看到這個綠色的狀態(tài)就證明Cursor 連接項目的 MCP 成功了。其他工具配置數(shù)據(jù)庫 MCP的方式官方文檔里都有說明。

文檔鏈接:https://googleapis.github.io/genai-toolbox/how-to/connect-ide/mysql_mcp/#configure-your-mcp-client
使用數(shù)據(jù)庫 MCP
配置好了之后證明使用呢,我們先來看看 MCP 里提供了哪些工具和對應的功能,MCP的協(xié)議里Server會告知MCP Client 自己有什么工具,那么Cursor就是一個內嵌MCP Client 的Host,所以我們直接問AI好了。

具體文字我就不列了,大家直接看圖吧,上面常用的有l(wèi)ist_tables 和 execute_sql 這兩個工具,當然AI調用他們時還需要加上前綴 "mcp_mysql_" 即AI要執(zhí)行一個SQL查詢調用 "mcp_mysql_execute_sql" 這個工具。
這里我們沒有必要記這些工具名,只需要給AI下達任務時告知它要做的操作。
比如我說“請使用MCP Mysql工具往 aa庫.bb 表中插入一條測試數(shù)據(jù),插入數(shù)據(jù)時需要哪些信息你可以自己掃描表的結構”
那么AI就會先執(zhí)行 Show Create Table 來查看表的結構

接下來會執(zhí)行數(shù)據(jù)插入,目前Cursor默認在執(zhí)行數(shù)據(jù)庫查詢的時候不需要你授權,但是在執(zhí)行Insert的時候會讓你審核SQL點擊授權后再執(zhí)行。

這一點我覺的在讓AI自己寫程序測試另一個AI寫的代碼是否符合需求時還是挺有用的,不然除了打字告訴AI去哪里查看建表語句外,生成的一些Mock數(shù)據(jù)還要AI輸出后自己粘貼到數(shù)據(jù)庫工具里去手動執(zhí)行,體驗嘛,肯定是自己動手越少體驗越好。
總結
這兩個月AI編程能力進步地很快,生態(tài)發(fā)展的也猛,今天難得有空寫點字兒,分享一下一個小工具的使用。最后再提醒一句,不要把生產庫的信息配置到MCP里,也不要把這里用到的mcp.json 提交到代碼倉庫里,免得泄漏隱私信息。


































