跳到主要內容
Foxyko
AI Agent

MCP 是什麼?Model Context Protocol 運作方式與安全風險

MCP(Model Context Protocol)是讓 AI 應用連接外部工具與資料的開源標準。本文用白話說明架構、三種能力、最新規格變動,以及使用前的安全檢查。

Foxyko4 分鐘

作者: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 規格本身的要求。

  1. 先決定要解決什麼任務

    想清楚 AI 需要讀什麼、做什麼。沒有明確任務就不要接上任何東西,連接越少,風險越小。

  2. 選擇可信的伺服器

    優先使用服務提供者官方維護的伺服器。第三方或本機伺服器要先確認維護者、原始碼是否公開,以及它要求哪些權限。

  3. 從唯讀和最小權限開始

    能只讀就不要給寫入,能限定資料夾或資料表就不要給整個帳號。可參考本站的 AI Agent 最小權限五個原則。

  4. 先用不重要的資料測試

    用測試資料夾或測試帳號確認 AI 的行為符合預期,再接上真實資料。

  5. 在有後果的動作前加入人工確認

    寄出郵件、寫入資料庫、刪除檔案這類不易復原的動作,保留由你按下確認的步驟。

使用 MCP 有哪些安全風險?

MCP 讓連接變簡單,也讓不小心開放過多權限變簡單。主要風險有三個:權限過大、來源不可信,以及 AI 讀到的內容夾帶惡意指令。後者稱為間接提示詞注入,詳見AI Agent 的提示詞注入,權限設計則見AI Agent 權限怎麼設。

  • 權限是真的權限:接上能寫入資料庫的伺服器,就等於授予 AI 寫入權。請給最小必要權限,不要為了省事用管理員帳號。
  • 來源要可信:在本機執行別人寫的伺服器,等於在你的環境裡跑別人的程式。
  • 讀到的內容只是資料:網頁、檔案與郵件裡可能藏著針對 AI 的指令,MCP 擴大了 AI 能讀到的範圍,也就擴大了這類攻擊面。

什麼時候不需要 MCP?有哪些替代做法?

如果你只是偶爾請 AI 處理一份文件,直接上傳檔案或貼上內容就夠了,不需要 MCP。需要 AI 持續存取同一批外部資料,或要讓它操作外部系統時,MCP 才有明顯價值。開發者若只需要呼叫單一服務,直接串接該服務的 API 也可能更單純。

相關文章與資料來源

延伸閱讀:AI Agent 完整指南、AI Agent 能幫你做什麼、MCP 術語定義。

常見問題

MCP 會取代 API 嗎?
不會。MCP 是架在既有服務之上的一層標準,用來描述有哪些工具、資料與提示範本可用,以及怎麼呼叫。伺服器背後通常仍在呼叫原本的 API。它取代的是每個 AI 應用各自寫一份整合的做法,而不是 API 本身。
MCP 和一般的 AI 外掛或連接器有什麼不同?
連接器是產品層的功能,MCP 是底層的通訊標準。同一個 MCP 伺服器可以被不同的 AI 應用重複使用,不必為每個應用重寫。你在 AI 工具裡看到的連接設定,底層可能就是 MCP,但實際做法仍以各產品說明為準。
我不是工程師,需要懂 MCP 嗎?
不需要懂協定細節,但要知道它代表什麼:只要你把 AI 接上雲端硬碟、資料庫或內部系統,就是在授權它讀取甚至修改資料。知道這件事,你就能判斷哪些權限該開、哪些動作必須先經過你確認。
安裝第三方 MCP 伺服器安全嗎?
要看來源。本機執行的 MCP 伺服器是一段在你電腦上跑的程式,可能被授予檔案或網路存取權。安裝前先確認維護者、原始碼是否公開、要求哪些權限,並從最小權限與唯讀開始測試,而不是一次全開。
MCP 規格改版後,我現有的伺服器會壞掉嗎?
不一定。官方規格採用功能生命週期政策,被標記為棄用的功能至少保留十二個月的過渡期。但 2026-07-28 版有移除連線握手等較大的變動,自行開發的人應對照官方更新日誌檢查,使用現成產品則通常由廠商處理升級。