什麼是 MCP?
最近在 AI 領域中,MCP(Model Context Protocol)非常熱門。隨著 GPT-4、Claude 等大型語言模型(LLM)應用越來越廣,很多人開始遇到一個很實際的問題:模型不知道我們有哪些資料,也不知道該怎麼用。
也就是說,「上下文管理」變得越來越麻煩。
舉例來說,你可能想讓 AI 回答「我們的退款流程是什麼?」這樣的問題。但模型不知道你們內部的作業規則,也沒辦法自己讀你電腦裡的文件或系統,所以你只好把內容複製貼上,變成這樣的提示:
「你是一位熟悉公司政策的助理,請根據以下內容回答問題:…(很長的文字)…」 這樣不只麻煩、容易出錯,還會增加成本,甚至有資料外洩的風險。
MCP 就是為了解決這個問題而誕生的
你可以把 MCP 想成 AI 的「萬用轉接頭」,讓語言模型可以用標準化的方式去「接」各種資料來源,例如:
- 本地的文件或筆記
- 公司內部的 API
- 線上的服務或資料庫
- 甚至是網頁上的內容 以前你可能要針對每一個資料來源各自撰寫整合方式,有了 MCP,只要用符合這個協議的方式接上,它就能自動知道有什麼資料、怎麼使用、怎麼回應。
MCP 提供哪些功能?
- ✅ 上下文模組化管理:可以控制每次模型回答時,該讀哪一份資料、不該讀哪一份。
- ✅ 資料來源和模型分離:不用把所有資料都直接丟給模型,而是由 MCP Server 動態提供。
- ✅ 支援多種資料來源:像本地檔案、API、資料庫、網頁內容、PDF…等都能接入。
- ✅ 支援多種語言模型:不只 OpenAI,還能搭配 Claude、Mistral、LM Studio 等。
MCP 架構怎麼運作?
整個 MCP 的結構大致分成三個角色:
MCP Host
像 Claude Desktop、Cursor 編輯器、VS Code、命令列工具等,這些工具會是使用 MCP 的平台。
MCP Client
它負責管理上下文流程,決定要查哪些資料、去哪裡查、要怎麼整理給模型用。
MCP Server
這是 MCP 的資料來源,可能是一份 JSON 檔、一個資料庫、一個 API,或是你電腦上的文件。Server 會用統一的格式回傳內容給模型使用。
MCP 可以應用在哪些情境?
MCP 的彈性很大,像以下這些場景都很適合:
- 🗂 文件助理:從內部的 Word、PDF、報告中讀資料並提供摘要或重點。
- 📋 表單與規則解讀:讀取你電腦裡的作業規範、流程圖、SOP 等,幫你分析與解釋。
- 🌐 網頁即時互動:讀取目前瀏覽器頁面上的資訊,提供解釋或下一步建議。
⚠️ 使用 MCP 時需要注意的事
雖然 MCP 的協議本身是由 Anthropic 提出的,設計理念也相當完善,不過目前大多數 MCP Server 的實作版本,都是由開發者自行建立並開源分享,缺乏集中式的維護或安全審查機制。
這代表可能會有以下風險:
- 🔧 缺乏長期維護:有些 Server 是實驗性質,可能沒有人持續更新
- 🔓 權限控管鬆散:使用不當可能導致資料外洩
- 💣 惡意程式碼風險:部分開源實作若未經檢查,可能被植入惡意邏輯
✅ 使用建議:
- 儘量使用有開放原始碼的 MCP Server,最好能自行審查
- 優先選擇由可靠團隊或知名社群維護的版本
- 部署在自己可以控管的環境中,不要隨便使用不明來源的 Server
範例:使用 GitHub Copilot 快速串接 Supabase MCP 並建立資料庫專案
你可以依照 Supabase 官方 MCP 文件 的方式設定 MCP,基本流程幾乎相同。
在這個範例中,我是透過 GitHub Copilot 的 Agent 功能來操作,也可以改用其他方式,例如免費的 cline 工具。如果你是在 VS Code 使用 Copilot,記得先做以下幾個設定:
✅ 開始前準備
1.到 VS Code 的 settings.json 中開啟 Copilot agent 功能
2.到 Supabase 網站建立一組 Access Token,並把 token 帶入上面設定中。
當你啟用 GitHub Copilot 並點開 MCP 工具欄時,就能看到目前有哪些 MCP server 可用、也能快速選擇執行對應指令:
再來只需要一個簡單的操作,Copilot 就會幫你:
- 在 Supabase 自動建立一個新專案
- 建立兩個預設的資料表
- 完成 MCP Server 串接設定
- 顯示執行結果,整個過程完全不需要自己寫一行程式碼
結果預覽
啟用專案就會看到類似的畫面
supabase 上也確實建立了新專案以及專案內新增了兩個table
同時,在 Supabase 的後台也可以看到:
✅ 已自動建立一個新的專案
✅ 專案中預設建立了兩個資料表,無需手動設定
參考資料
🔗 https://modelcontextprotocol.io/introduction