MCP 是什麼?Model Context Protocol 運作方式與安全風險
MCP(Model Context Protocol)是讓 AI 應用連接外部工具與資料的開源標準。本文用白話說明架構、三種能力、最新規格變動,以及使用前的安全檢查。
作者:Foxyko 最後更新:2026 年 11 月 1 日。內容已對照 MCP 官方文件與 2026-07-28 版規格(截至 2026 年 11 月 1 日);協定仍在演進,請以官方文件為準。
本文重點
- MCP 把每個 AI 應用各自寫整合的 M × N 問題,變成伺服器與用戶端各實作一次的 M + N。
- 架構分成主機(AI 應用)、用戶端與伺服器;伺服器可提供工具、資源與提示範本三種能力。
- 最新穩定版規格為 2026-07-28:協定改為無狀態,並棄用 Roots、Sampling 與 Logging 等功能。
- MCP 只管連接方式,不管權限安全;接上能寫入的伺服器,就是真的給了寫入權。
- 使用前先從唯讀與最小權限開始,並在寄信、寫入、刪除等動作前加入人工確認。
MCP 是什麼?它解決什麼問題?
MCP 是讓 AI 應用連接外部系統的開源標準,這些系統包括本機檔案、資料庫、搜尋引擎與專用工作流程。它要解決的是重複整合的問題:如果有 M 個 AI 應用、N 個外部系統,沒有共通標準時最壞要寫 M × N 份整合。
有了 MCP,外部系統只要實作一次 MCP 伺服器,AI 應用只要實作一次 MCP 用戶端,兩邊就能互通,整合數量變成 M + N。官方文件用 USB-C 來比喻:它提供一個標準化的方式,把 AI 應用接到外部系統。
MCP 的架構怎麼運作?主機、用戶端與伺服器的分工
MCP 採用用戶端對伺服器的架構,有三個角色:主機是 AI 應用本身,用戶端是主機為每個伺服器建立的連線元件,伺服器則是提供資料或工具的程式。主機會為每一個伺服器各建立一個專屬的用戶端。
本機伺服器與遠端伺服器有什麼不同?
「本機」或「遠端」指的是伺服器跑在哪裡,與協定無關。本機伺服器通常用標準輸入輸出(stdio)在同一台機器上通訊,只服務一個用戶端;遠端伺服器則用 Streamable HTTP,可同時服務許多用戶端。
| 傳輸方式 | 通訊方式 | 常見用途 |
|---|---|---|
| stdio | 同一台機器上的程序之間,透過標準輸入輸出通訊 | 本機檔案系統、本機工具 |
| Streamable HTTP | 用戶端以 HTTP POST 傳送訊息,可搭配串流;支援 bearer token、API key 等驗證,官方建議用 OAuth 取得權杖 | 雲端服務提供的遠端伺服器 |
MCP 伺服器能提供哪三種能力?工具、資源與提示範本
一個 MCP 伺服器可以提供三種核心能力:工具是可執行的動作,資源是可讀取的資料,提示範本是可重複使用的互動樣板。區分這三者在權限設計上很重要,因為讀取資料和執行動作的風險不同。
| 類型 | 是什麼 | 例子 |
|---|---|---|
| Tools(工具) | AI 應用可以呼叫的函式 | 檔案操作、API 呼叫、資料庫查詢 |
| Resources(資源) | 提供給 AI 的背景資料 | 檔案內容、資料庫紀錄、API 回應 |
| Prompts(提示範本) | 可重複使用的互動樣板 | 系統提示詞、少樣本範例 |
以資料庫為例,官方文件描述的組合是:用工具查詢資料庫、用資源提供資料表結構、用提示範本放入使用範例。用戶端會先送出 tools/list 查出有哪些工具,再用 tools/call 呼叫,所以工具清單可以動態變化。
MCP 最新規格 2026-07-28 改了什麼?
2026-07-28 版是目前標示為最新的穩定版,最大變動是讓協定變成無狀態:移除初始化握手,每個請求都帶著協定版本與用戶端能力。對一般使用者影響不大,但自行開發伺服器的人需要對照更新日誌調整。
有哪些主要變動?
- 無狀態與探索:移除 initialize 握手與 Mcp-Session-Id;伺服器必須實作 server/discover,用來公告支援的版本與能力(見官方更新日誌)。
- 訂閱機制:以 subscriptions/listen 取代原本的訂閱方式,用戶端選擇要接收哪些變更通知。
- 長時間任務:tasks 從核心協定移到官方擴充(io.modelcontextprotocol/tasks)。
- 棄用清單:Roots、Sampling、Logging 被標為棄用;HTTP+SSE 傳輸與動態用戶端註冊(RFC 7591)也被列入棄用,後者建議改用 Client ID Metadata Documents。
一般使用者怎麼安全地開始用 MCP?
最穩妥的做法是先從唯讀的官方或可信來源開始,確認有用後再逐步增加權限。下面是我們建議的步驟,屬於一般性的安全做法,並非 MCP 規格本身的要求。
先決定要解決什麼任務
想清楚 AI 需要讀什麼、做什麼。沒有明確任務就不要接上任何東西,連接越少,風險越小。
選擇可信的伺服器
優先使用服務提供者官方維護的伺服器。第三方或本機伺服器要先確認維護者、原始碼是否公開,以及它要求哪些權限。
從唯讀和最小權限開始
能只讀就不要給寫入,能限定資料夾或資料表就不要給整個帳號。可參考本站的 AI Agent 最小權限五個原則。
先用不重要的資料測試
用測試資料夾或測試帳號確認 AI 的行為符合預期,再接上真實資料。
在有後果的動作前加入人工確認
寄出郵件、寫入資料庫、刪除檔案這類不易復原的動作,保留由你按下確認的步驟。
使用 MCP 有哪些安全風險?
MCP 讓連接變簡單,也讓不小心開放過多權限變簡單。主要風險有三個:權限過大、來源不可信,以及 AI 讀到的內容夾帶惡意指令。後者稱為間接提示詞注入,詳見AI Agent 的提示詞注入,權限設計則見AI Agent 權限怎麼設。
- 權限是真的權限:接上能寫入資料庫的伺服器,就等於授予 AI 寫入權。請給最小必要權限,不要為了省事用管理員帳號。
- 來源要可信:在本機執行別人寫的伺服器,等於在你的環境裡跑別人的程式。
- 讀到的內容只是資料:網頁、檔案與郵件裡可能藏著針對 AI 的指令,MCP 擴大了 AI 能讀到的範圍,也就擴大了這類攻擊面。
什麼時候不需要 MCP?有哪些替代做法?
如果你只是偶爾請 AI 處理一份文件,直接上傳檔案或貼上內容就夠了,不需要 MCP。需要 AI 持續存取同一批外部資料,或要讓它操作外部系統時,MCP 才有明顯價值。開發者若只需要呼叫單一服務,直接串接該服務的 API 也可能更單純。
相關文章與資料來源
常見問題
- MCP 會取代 API 嗎?
- 不會。MCP 是架在既有服務之上的一層標準,用來描述有哪些工具、資料與提示範本可用,以及怎麼呼叫。伺服器背後通常仍在呼叫原本的 API。它取代的是每個 AI 應用各自寫一份整合的做法,而不是 API 本身。
- MCP 和一般的 AI 外掛或連接器有什麼不同?
- 連接器是產品層的功能,MCP 是底層的通訊標準。同一個 MCP 伺服器可以被不同的 AI 應用重複使用,不必為每個應用重寫。你在 AI 工具裡看到的連接設定,底層可能就是 MCP,但實際做法仍以各產品說明為準。
- 我不是工程師,需要懂 MCP 嗎?
- 不需要懂協定細節,但要知道它代表什麼:只要你把 AI 接上雲端硬碟、資料庫或內部系統,就是在授權它讀取甚至修改資料。知道這件事,你就能判斷哪些權限該開、哪些動作必須先經過你確認。
- 安裝第三方 MCP 伺服器安全嗎?
- 要看來源。本機執行的 MCP 伺服器是一段在你電腦上跑的程式,可能被授予檔案或網路存取權。安裝前先確認維護者、原始碼是否公開、要求哪些權限,並從最小權限與唯讀開始測試,而不是一次全開。
- MCP 規格改版後,我現有的伺服器會壞掉嗎?
- 不一定。官方規格採用功能生命週期政策,被標記為棄用的功能至少保留十二個月的過渡期。但 2026-07-28 版有移除連線握手等較大的變動,自行開發的人應對照官方更新日誌檢查,使用現成產品則通常由廠商處理升級。
延伸閱讀
AI Agent 是什麼?定義、運作方式與實際用途完整指南
AI Agent 是能自己決定步驟、呼叫工具並依結果調整做法的 AI 系統。這篇整理定義、與聊天機器人和工作流程的差別、運作方式與適用情境。
AI Agent 權限怎麼設?給 agent 最小權限的五個原則
AI Agent 權限要怎麼設?用最小權限五步驟:獨立身分、只給任務需要的範圍、短期憑證、高風險動作由人批准、留下紀錄,附檢查提示詞。
AI Agent 的提示詞注入是什麼?委派任務前要懂的風險與防護
AI Agent 會讀網頁、檔案與信件,這些內容可能夾帶惡意指令。這篇說明提示詞注入的原理,以及一般使用者可做的七項防護。