Model Context Protocol(MCP)是一種開放協定,在傳統應用中,LLM 往往只能依賴單一的輸入與輸出,缺乏直接與外部工具或資料溝通的能力,使得在提供回應時,無法即時去整合新的資訊或直接操作特定的服務。MCP的出現建立了一個標準化的橋樑,讓LLM能夠透過一個統一的方式,安全的存取不同的工具或資料。將模型與外部的關係定義為“Client”與"Server",LLM所在的應用為Client,而外部服務或資料來源則是Server,之間的溝通都必須透過 MCP 所定義的協定來進行,確保格式的一致。
在 MCP 的架構中有三個核心元件:hosts、clients 與 servers。Host 可以理解成容器或平台,它負責承載協定的運行環境,確保不同元件之間的互動遵循統一的規範。接著是 Client,也就是我們常見的LLM或應用,它是發出需求的一方,例如查詢資料、存取或呼叫某個外部服務。最後則是 Server,它是需求的回應者,通常代表外部的工具、資料庫或服務。舉例來說,當一個 AI 助手想要檢索使用者的行事曆,它會先透過 Client 發出請求,Host 會確保這個請求符合 MCP 的標準,然後再由 Server 回應所需的資訊。MCP 建立了一個責任分工模式。Client 專注於提出需求與理解,Server 專注於處理請求與回應資料,而 Host 則維持整個系統的穩定與規範。
STDIO 傳輸:在STDIO的模式下 MCP Server 會在本地的機器上運行,形成封閉的通訊方式,僅能用於本地存取。當應用需要啟動 MCP Server 時,會透過預設的指令來啟動並維護 MCP Server 的環境與執行狀態。
SSE 傳輸:在SSE的模式下 MCP Server 可以運行在本地與遠端的機器上,提供了更大的彈性,可以在不同的 Client 間共享與使用。 Client 需要外部 MCP Server 上 /sse 端點來建立連接。
參考資料:
https://modelcontextprotocol.io/docs/getting-started/intro
https://medium.com/@simon3458/mcp-intro-2025-41c85e3d56fd