到底 MCP 有什么魅力?十分鐘讓 AI 直接操作數據庫!
這幾天老是聽到 MCP 的概念,為了讓自己不那么 out ,昨天下班之后我也是抓緊去看了下這到底是何方神圣。
MCP,全稱 Model Context Protocol,是一個開源協議,目的是為大語言模型(LLM)提供一個標準化的上下文接口。也就是說,為各種應用對接 AI 提供了一個規范,就像 USB 接口一樣。
聽起來有點摸不著頭腦,沒事,看看官方給的 demo 就知道是怎么回事了。這個 demo 做的事情很簡單,就是寫了兩個獲取天氣情況的方法給 AI 用!因為 AI 的訓練是使用已有的數據,所以如果直接問 AI 現在幾點了,那它肯定懵逼,同樣 AI 也不知道明天的天氣會怎么樣,因為訓練它的歷史數據里沒有。那我們讓代碼告訴它,它再告訴我不就完了?沒錯,這個 demo 做的就是這件事。
根據這個 demo ,我們自己也搓一個出來玩玩。平時開發的時候,免不了要造一些測試數據到數據庫,以前都是告訴 AI DDL,讓它生成對應的 insert 語句,然后手動 copy 到控制臺執行。現在我們把這個過程全部交給 AI 來做,甚至把實現這個過程的代碼也可以讓 AI 來寫!
手把手從零實現的步驟(因為官方 demo 是 python 多一點,我這里也直接用 python 了):
1)先把官方的項目初始化命令全執行一遍:
# 安裝 python 的包管理工具,安裝后重開命令行窗口
curl -LsSf https://astral.sh/uv/install.sh | sh
# 創建項目文件夾
uv init gen-data
cd gen-data
# 創建虛擬環境并激活
uv venv
source .venv/bin/activate
ok,前置步驟就這些,接下來就是打開 ide 寫代碼了。
2)給 AI 我們的需求,讓 AI 仿照官方的 demo 給出實現:
(我這里僅給出部分截圖,源碼會放到文末)
圖片
當然了,我寫 prompt 的水平非常有限,一般生成出來的內容是要改吧改吧的。在改代碼以前,先把依賴安裝下:
uv add dotenv aiomysql mcp
3)稍微改了下上面的代碼之后,我又讓 GPT 給我加了一個獲取某表 DDL 的功能,這樣就更省事一點,使用的時候就不用我告訴它了:
圖片
4)這樣功能就完成,接下來就是配置到客戶端里使用。官方推薦的是 Claude for Desktop ,不過我實測下來在國內用起來很不方便,所以更推薦用 Cursor:
圖片
然后在打開的文件里寫入以下內容:
{
"mcpServers": {
"gen-data": {
"command": "uv",
"args": [
"--directory",
"/項目文件夾路徑(gen-data)",
"run",
"功能代碼(main).py"
],
"env": {
"MYSQL_PASSWORD": "數據庫密碼"
}
}
}
}
配置之后記得重啟 Cursor ,否則很可能不生效。
5)來看下效果吧:
圖片
圖片
圖片
整個過程并不難,但還是讓我感受到了一些震撼,AI 的使用成本越來越低了,像我這樣的普通開發者也能很輕易的把 AI 接到常用的工具中,程序員還是要緊跟科技發展的步伐,避免自己被淘汰掉,一起加油吧兄弟們!