重點速覽
MCP(Model Context Protocol,模型上下文協定)是一個開放標準,規定 AI 應用程式怎麼連接外部的資料、工具和工作流程,官方把它比喻成 AI 應用程式的 USB-C 連接埠。AI 應用程式透過它連上一個或多個「MCP 伺服器」,伺服器提供可以呼叫的工具、可以讀取的資料和預先寫好的提示範本。MCP 本身不是模型,也不保證安全:接上的每個伺服器都可能讀取資料、執行程式,所以只接你信任的來源。
MCP 是什麼?簡單說,MCP(Model Context Protocol,模型上下文協定)是一個開放標準,規定 AI 應用程式要怎麼連接外部系統,例如你電腦上的檔案、公司的資料庫、搜尋引擎或議題追蹤系統。官方文件把它比喻成 AI 應用程式的 USB-C 連接埠:USB-C 讓各種裝置用同一種方式連接,MCP 讓 AI 應用程式用同一種方式接上各種資料與工具。這篇用白話解釋它解決什麼問題、由哪些角色組成,以及接上之前一定要想清楚的安全問題。
MCP 解決什麼問題?
大語言模型本身只能處理放進上下文視窗的內容。想讓它查資料庫、讀議題、建立行事曆活動,就要讓它能使用外部工具,這叫工具呼叫(Tool calling):模型決定要用哪個工具、填什麼參數,再由應用程式實際執行。如果還不熟這個概念,先看 AI 代理是什麼?和聊天機器人的差別。
問題在於,沒有共同標準時,每個 AI 應用程式都要替每個外部系統各寫一套整合。MCP 把「怎麼連接」標準化:資料或工具的提供者寫一次 MCP 伺服器,支援 MCP 的應用程式都能接上。官方文件列出的好處,對開發者是減少整合的時間與複雜度,對使用者則是 AI 應用程式能存取更多資料、在必要時替你採取行動。
Claude Code 的官方文件給了一個很實用的判斷點:當你發現自己一直把另一個工具裡的資料(例如議題追蹤系統或監控面板)複製貼上到對話裡,就是該接 MCP 伺服器的時候;接上之後,AI 可以直接讀取並操作那個系統,而不是只看你貼上的內容。
MCP 的三個角色:主機、用戶端、伺服器
MCP 採用用戶端-伺服器架構,有三個角色:
- MCP 主機(MCP Host):你直接使用的 AI 應用程式,例如 Claude Code 這類 AI 代理工具,負責協調一個或多個 MCP 用戶端。
- MCP 用戶端(MCP Client):主機裡負責和某一個伺服器保持連線的元件。主機每連上一個伺服器,就建立一個對應的用戶端。
- MCP 伺服器(MCP Server):提供資料或工具給 AI 應用程式的程式,例如檔案系統伺服器、資料庫伺服器、行事曆伺服器。
要注意「伺服器」這個詞不代表它一定在遠方的機房。官方文件說明,MCP 伺服器指的是提供內容的程式,不管它在哪裡執行:
- 本機伺服器:在你自己的電腦上執行,通常使用 stdio 傳輸方式。stdio(標準輸入輸出)是程式之間透過標準輸入和標準輸出交換資料的方式,主機會直接把伺服器當成子程式啟動。
- 遠端伺服器:在服務商的平台上執行,使用 Streamable HTTP 傳輸方式透過網路連線,可以使用 API 金鑰等方式驗證身分,官方建議用 OAuth(一種讓你授權應用程式存取帳號、又不必交出密碼的標準)取得驗證用的權杖。
伺服器能提供的三種功能
MCP 伺服器透過三種基本功能(官方稱為 primitives)提供能力:
- 工具(Tools):AI 應用程式可以呼叫來執行動作的函式,例如搜尋航班、寄送訊息、修改檔案、查詢資料庫。
- 資源(Resources):提供背景資訊的資料來源,例如檔案內容、資料庫結構、API 文件,是唯讀的。
- 提示(Prompts):預先寫好的指示範本,引導模型搭配特定的工具與資源完成某類工作,例如「規劃旅行」「摘要我的會議」。
三者最大的差別,是由誰決定什麼時候使用:
| 功能 | 用途 | 例子 | 由誰決定使用 |
|---|---|---|---|
| 工具 | 執行動作,可能改變外部系統 | 搜尋航班、寄信、寫入資料庫 | 模型(依你的需求自己判斷) |
| 資源 | 提供唯讀的背景資料 | 讀取文件、行事曆、資料庫結構 | 應用程式(由它決定放哪些進上下文) |
| 提示 | 預先寫好的工作範本 | 規劃旅行、草擬郵件 | 使用者(要你明確選用才會觸發) |
工具是由模型自己決定呼叫的,所以風險最高。官方文件列出應用程式可以提供的控制方式,包括:讓你決定哪些工具可以使用、每次執行前跳出確認、事先核准某些安全的動作,以及記錄每一次工具執行與結果。這正是人工把關的概念。
MCP 不是什麼
幾個常見的誤解:
- 不是模型:MCP 只規定 AI 應用程式和外部系統怎麼交換內容,官方文件明確說明,它不規定應用程式怎麼使用模型、怎麼處理拿到的內容。換模型不代表要換 MCP 伺服器。
- 不是取代工具呼叫:模型還是透過工具呼叫來使用 MCP 提供的工具;MCP 統一的是工具「怎麼接上來」。
- 不是有人替你把關的應用程式商店:套件平台和伺服器清單幾乎什麼都能上架。MCP 官方文件提醒,上架不等於背書;Anthropic 也說明,它會依上架標準審查收錄在自家目錄的連接器,但不會替任何 MCP 伺服器做安全稽核或代為管理。
- 不是沙箱:本機伺服器就是一般的程式。MCP 官方文件特別強調,stdio 傳輸方式不是沙箱,協定本身不會限制伺服器能做什麼。
接上 MCP 伺服器之前:五個安全原則
MCP 讓 AI 代理能做的事變多,能出錯的地方也跟著變多。以下整理自 MCP 官方的本機伺服器安全建議與 Claude Code 的安全文件,觀念和 讓 AI 代理安全操作電腦 一致。
一、知道本機伺服器能碰到什麼
MCP 官方文件說明,在本機執行 MCP 伺服器,等於從網路下載程式碼,用你的使用者帳號執行。這個程式會繼承你的環境變數(裡面可能有金鑰),能讀取你的帳號能讀的所有檔案,也能連到任何網路位址。這些都不受 MCP 協定管控,而是取決於你怎麼執行它。
二、能用遠端版本就不要裝在本機
官方的建議很直接:伺服器需要讀你的專案檔案、操作本機工具或硬體時,才有理由在本機執行;如果它只是轉接某個網路服務,就優先用遠端版本,這樣不會在你的電腦上執行任何程式碼。
三、安裝前先查來源
- 確認發布者:能不能對應到原始碼和真實的維護者或組織?
- 確認套件名稱完全正確,避免名稱相似的仿冒套件。
- 固定版本,不要永遠安裝最新版,並養成有安全公告時主動更新的習慣。
不確定時,官方建議只安裝你看得到原始碼、知道是誰發布的伺服器。Claude Code 的文件也建議,使用自己寫的伺服器,或來自你信任的提供者的伺服器。
四、把工具說明也當成不可信的內容
伺服器會把工具的名稱與說明傳給 AI 應用程式,而模型會把這些說明當成指示來讀。這代表一個惡意的伺服器,可以把指示藏在工具說明裡,這就是提示詞注入的一種。另外,Claude Code 的文件也提醒,會抓取外部內容的伺服器,可能讓你暴露在提示詞注入的風險下。
所以接上之後,先看一遍它提供的工具清單與說明;如果說明裡有和工具本身工作無關的指示,就移除這個伺服器。官方文件也指出,所有伺服器共用同一個模型上下文,一個惡意的伺服器可能影響代理怎麼使用其他伺服器的工具,所以伺服器數量越少越好。
五、最小權限與隔離
依最小權限原則,只給伺服器完成工作需要的東西:
- 檔案:只開放單一專案資料夾,能唯讀就唯讀,不要開放整個家目錄。
- 金鑰:每個伺服器用自己的金鑰,權限範圍越小越好,不要把同一把權限很大的金鑰給好幾個伺服器共用。金鑰怎麼保管,請看 API Key 是什麼,以及怎麼安全保管。
- 隔離:要執行第三方的本機伺服器,官方建議放在容器或虛擬機器這類隔離環境裡,只掛載它需要的資料夾。設定檔裡的允許清單只能約束守規矩的伺服器,真正能限制住它的是沙箱這類隔離環境。
我需要 MCP 嗎?判斷方法
下面是本站整理的判斷方法,不是官方標準:
| 你的狀況 | 建議 |
|---|---|
| 常把另一個系統的資料複製貼上給 AI | 適合接 MCP 伺服器,讓 AI 直接讀取 |
| 只是偶爾問問題、整理文字 | 不需要,直接對話就好 |
| 想讓 AI 替你寫入、寄送、刪除東西 | 可以接,但對這些工具保留人工確認 |
| 找到的伺服器來源不明、看不到原始碼 | 先不要接,找官方或可查證的替代品 |
| 伺服器只是轉接某個網路服務 | 優先用遠端版本,不要裝在本機 |
| 要處理機密資料或公司資料 | 先確認公司規定,並在隔離環境中執行 |
決定要接之後,把你想讓 AI 用這個伺服器完成什麼寫清楚,效果會好很多,寫法可以參考 AI 代理任務說明怎麼寫。
接著看什麼
- 本機伺服器常需要 Python 或 Node.js 才能執行:為什麼 AI 教學都要先裝 Python 和 Node.js
- 想在實際工具裡接上 MCP 伺服器:看 Claude Code 安裝教學,再依官方文件加入伺服器
- 代理的權限與隔離怎麼設:讓 AI 代理安全操作電腦
- 名詞不熟:到 名詞小辭典 查,例如 MCP、MCP 伺服器、工具呼叫、提示詞注入。
常見問題
MCP 是一種 AI 模型嗎?
不是。MCP 是一套溝通規格,只規定 AI 應用程式和外部系統之間怎麼交換資訊。官方文件明確說明,它不規定 AI 應用程式怎麼使用模型、怎麼處理拿到的內容。
MCP 和工具呼叫(Tool calling)有什麼不同?
工具呼叫是模型的能力:模型決定要用哪個工具、填什麼參數。MCP 則是讓工具「怎麼被接上來」有統一的規格,同一個 MCP 伺服器可以被不同的 AI 應用程式使用,不用每個應用程式各自寫一套整合。
一定要會寫程式才能用 MCP 嗎?
使用現成的伺服器通常不需要寫程式,在支援 MCP 的應用程式裡加入設定就能用,具體做法請看各工具的文件,例如 Claude Code 的教學。不過很多在本機執行的伺服器需要 Python 或 Node.js 這類執行環境,最好先了解它們是什麼。
本機的 MCP 伺服器和遠端的 MCP 伺服器差在哪?
本機伺服器是在你電腦上執行的程式,通常透過標準輸入輸出和 AI 應用程式溝通,能碰到你的帳號能碰到的檔案和環境變數。遠端伺服器在服務商的機器上執行,透過網路連線,不會在你的電腦上執行程式碼,但你的資料會送到對方那裡。
MCP 伺服器安全嗎?
不能一概而論,要看是誰做的、你怎麼執行它。MCP 官方文件提醒,本機伺服器就是一般的程式,可以讀取你的帳號能讀的檔案、繼承環境變數裡的金鑰,也能連到任何網路位址;Anthropic 也說明它不會替 MCP 伺服器做安全稽核。只接你信任的來源,並限制它能碰的範圍。
接越多 MCP 伺服器越好嗎?
不是。每個伺服器都會增加可能出錯或被利用的地方,官方文件也指出,所有伺服器共用同一個模型上下文,一個惡意伺服器可能影響代理怎麼使用其他伺服器的工具。只接真的會用到的,不用的就移除。
留言
用 GitHub 帳號登入就能留言,留言會公開顯示在 GitHub Discussions。留言前請先看社群規則。