iT邦幫忙

2026 iThome 鐵人賽

DAY 10
0
AI Engineering

30 天探索 MCP:從基礎概念到實作系列 第 10 篇

SQLite MCP:讓 AI 開始查詢資料庫

  • 分享至 

  • xImage
  •  

上一篇我們做了 File System MCP,讓 MCP Server 可以讀取檔案。

這次來做一個不太一樣的東西:資料庫。

今天會使用 SQLite 建立一個簡單的學生資料庫,再透過 MCP Tool 查詢裡面的資料。


建立 SQLite 資料庫

首先在mcp-learning內新增一個資料夾day10,接下來在資料夾建立一個 database.py,這樣建是因為我想保留前幾天我們做過的成果,今天的內容就放在這個day10資料夾裡。接著建立一個 students 資料表,裡面有學生的姓名、系所和成績,以下是我這次建立的程式碼

https://ithelp.ithome.com.tw/upload/images/20260922/201787695Y6BBhRCex.png

在終端機執行python database.py,成功後資料夾裡就會出現students.db,這就是我們今天要使用的 SQLite 資料庫。


建立 SQLite MCP

接著建立 server.py,這次先做兩個 Tool:

  • get_students:取得所有學生資料
  • get_students_by_department:依照系所查詢學生

因為篇幅有限,這裡我也只放部分程式碼

https://ithelp.ithome.com.tw/upload/images/20260922/20178769zWC07N3dwk.png

這裡的 get_students() 會執行 SELECT * FROM students,把資料表裡的學生全部查詢出來, get_students_by_department() 則會根據我們輸入的系所進行查詢。

而在 get_students_by_department 中,我們使用了 ? 佔位符進行參數化查詢,避免使用 f-string 直接拼接字串,可以降低惡意 SQL 注入的風險,讓 MCP Tool 在調用資料庫時更加安全!


使用 MCP Inspector 測試

接著我們在終端機輸入mcp dev server.py啟動 MCP Inspector,打開 Inspector 後,可以看到我們剛剛建立的兩個 Tool:

https://ithelp.ithome.com.tw/upload/images/20260922/20178769nZw4lz1P8X.png

先執行 get_students

https://ithelp.ithome.com.tw/upload/images/20260922/20178769YBBvlxTmvt.png

可以看到它把我們之前存進資料庫的資料都查詢出來。

接著測試 get_students_by_department,我這裡輸入CS

https://ithelp.ithome.com.tw/upload/images/20260922/20178769BvOwSVcpRF.png

可以看到這次只出現了第一、三筆資料,代表它成功依照系所篩選出符合條件的資料,這樣就成功透過 MCP Tool 查詢 SQLite 資料庫了。


總結

今天我們把 MCP Server 和 SQLite 串了起來

前面的 File System MCP 是處理檔案,而這次則是透過 SQL 查詢資料表,雖然目前只是很簡單的學生資料,但可以看到 MCP Tool 不只能讀取檔案,也可以把資料庫的功能包裝起來,讓 MCP Client 可以使用。


上一篇
AI 可以讀我的所有檔案嗎?聊聊 MCP 權限問題
下一篇
把 REST API 變成 MCP Tool
系列文
30 天探索 MCP:從基礎概念到實作 共 17 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言