---
# System prepended metadata

title: Model Context Protocol (MCP)

---

# Model Context Protocol (MCP)

## 什麼是MCP？

*   **定義**: 一種由 Anthropic 開發並於 2024 年底推出的開放標準。
*   **目的**: 提供標準化、安全、有效的方式，讓大型語言模型 (LLMs) 如 Claude、ChatGPT 等 AI 應用程式，連接和使用外部資料來源、工具和服務。
*   **比喻**: AI 應用的「萬用轉接頭」或電腦的 USB 介面。
*   **核心價值**: 統一軟體介面，讓不同 AI 模型能與多種外部功能互動，避免為每個服務/模型客製化整合。

## 為什麼需要MCP？

*   **LLM 限制**: 依賴訓練資料，無法存取即時資訊、私有資料或執行特定操作（如發郵件）。
*   **整合痛點**: 整合外部工具/API 複雜且重複，不同應用/服務商介面標準不一。
*   **"M×N 問題"**: M 個 AI 應用和 N 個外部工具，可能需要 M×N 個整合方案。
*   **MCP 的解決方案**: 提供通用協定，簡化為 **"M+N 問題"** (開發 N 個 MCP 伺服器 + M 個 MCP 客戶端)，減少重複開發，提高互操作性。

## MCP的主要架構

採用客戶端-伺服器架構：

1.  **MCP 主機 (MCP Host)**:
    *   需要存取外部工具/資料的 AI 應用程式本身。
    *   範例：Claude Desktop、整合 AI 的 IDE (如 Cursor)、客製化 AI 代理。
2.  **MCP 客戶端 (MCP Client)**:
    *   存在於主機應用中的程式碼。
    *   負責管理與一個或多個 MCP 伺服器的連接 (通常一對一)。
    *   轉發主機請求給伺服器，傳回伺服器回應給主機。
3.  **MCP 伺服器 (MCP Server)**:
    *   獨立運行的程式。
    *   向 AI 系統提供特定外部服務/資料來源的功能。
    *   可連接本地/遠端資料庫、API、檔案系統等。
    *   根據 MCP 協定處理客戶端請求，回傳資訊/結果。

**互動流程簡述**: Host (AI 模型) -> Client -> Server (執行操作) -> Client -> Host (模型利用結果生成回應)。

![image](https://hackmd.io/_uploads/S12PXurA1e.png)

## 基本運作流程

1. **Input**: 使用者輸入查詢（Query），這是整個流程的起點。
2. **Select MCP tool**: LLM 根據使用者的查詢判斷需要使用哪個 MCP 工具。
3. **Return MCP tool**: LLM 將所選定的 MCP 工具資訊返回給 MCP Client。
4. **MCP Tool approval**: 系統請求使用者確認是否允許使用該工具（為了避免濫用或敏感操作）。
5. **Request tool call**: MCP Client 轉發請求給 MCP Server，準備進行工具調用。
6. **Invoke MCP tool**: MCP Server 調用實際的 MCP Tool（通常是一個 API 或功能模組）。
7. **Return output**: 工具執行完畢後將結果返回給 MCP Client。
8. **Send output and query to LLM**: MCP Client 將 MCP tool 的輸出結果連同原始查詢一起傳給 LLM，以利生成最終回應。
9. **Generate**: LLM 根據查詢與工具的輸出產生最終回應，提供給使用者。

![mcp](https://hackmd.io/_uploads/BJvtuLMkee.gif)


## 主要優勢

*   **即時資料存取**: 連接即時數據源，超越訓練資料限制。
*   **個人化與隱私**: 僅在需要時存取特定用戶資訊，最小化資料揭露。
*   **降低幻覺**: 將回應建立在事實性外部資料上，減少不準確資訊。
*   **簡化開發**: 提供標準化互動方式，降低整合複雜度，一次編寫，多處使用。
*   **功能大幅擴展**: 利用外部工具執行更複雜任務 (程式碼分析、財務分析等)。

**與傳統API的主要區別**

| 特性        | MCP                                   | 傳統 API                          |
| :---------- | :------------------------------------ | :-------------------------------- |
| **整合方式**  | 一次整合多個工具                        | 通常需為每個服務單獨整合            |
| **互動性**    | 更即時、有狀態的互動                    | 通常是無狀態的請求-回應模式         |
| **發現能力**  | 支援動態探索可用工具/資源               | 通常需手動查閱文件                |
| **擴充性**    | "即插即用" 特性，易於新增功能           | 擴充可能需更多整合工作            |
| **安全控制**  | 旨在提供跨工具一致的安全控制            | 安全機制可能因 API 而異           |
| **AI 相容性** | 為 AI 設計，支援更動態的互動模式        | 可能更偏向靜態的資料交換            |
| **工具描述**  | 協定內可包含工具自我描述，方便 AI 理解 | 通常需要額外的文件說明            |

## 實際應用場景
* **增強 AI 桌面應用程式功能**:
    * 透過本地 MCP 伺服器，讓 AI 能直接存取使用者電腦上的資源(e.g. Claude 桌面應用程式)。
    * 連接檔案系統伺服器，讓 AI 能回答關於本地檔案的問題 (如：檔案數量)。
    * 整合網路搜尋伺服器 (如 Brave 搜尋)，讓 AI 能查詢最新資訊。
* **整合到開發工具和 IDE 中**:
    * 增強開發工具中 AI 助理的功能，讓開發者在 IDE 內使用 AI。
    * 存取專案相關資料來源 (如：Google Drive)。
    * 執行程式碼相關操作 (如：在 GitHub 創建分支、查詢程式碼)，提供更好的程式碼相關資訊存取。
* **連接 AI 模型與各種外部服務/資料**:
    * 標準化 AI 模型與外部世界的互動，讓 Claude、ChatGPT 等 AI 模型能透過統一協定請求使用這些服務和數據。例如: GitHub, Slack, Google Drive, Gmail, Google 日曆等正在開發 MCP 伺服器。
* **作為構建 AI 代理的基礎架構**:
    * MCP 可作為 AI 代理的基礎，提供檢索、記憶和工具調用能力，使 AI 能夠更智慧、更彈性地處理複雜任務。
    * 支援框架: Firebase Genkit, LangGraph, OpenAI agents sdk 等開始支援 MCP。
* **實現更複雜和實用的任務**:
    * 程式碼分析: 連接版本控制系統。
    * 財務分析: 使用即時市場數據。
    * 圖像/文件分析: 透過專門服務處理。
    * 3D 模型自動化: 整合 Claude AI 與 Blender 等工具。

## 如何開始使用和開發

*   **使用官方 SDK**: Anthropic 和社群提供多語言 SDK (TypeScript, Python, Java, Kotlin, C#, Rust)。
*   **探索現有伺服器**: 尋找符合需求的現成伺服器 (檔案系統, Git, Slack, Brave Search 等)。
*   **開發自訂伺服器**: 使用 SDK 為私有資料/特定工具開發自己的 MCP 伺服器。
*   **使用支援 MCP 的應用**: 嘗試已支援 MCP 的平台 (Claude Desktop, Cursor, Microsoft Copilot Studio)。
*   **參考官方文件/社群**:
    *   官方 GitHub: `modelcontextprotocol` (規範、文件、範例)。
    *   社群資源: `awesome-mcp-servers` 列表等。

## 未來發展與潛在機會

*   **更多產業專用伺服器**: 如醫療、金融、教育等。
*   **MCP-as-a-Service**: 提供託管 MCP 連接的商業服務。
*   **多公司聯盟與標準化**: 共同推動協定治理，可能成為通用 AI 整合標準。
*   **雲端平台廣泛採用**: 主要 AI/雲端服務商增加整合。
*   **更強大的工具與基礎設施**: 開發測試、部署、監控 MCP 伺服器的工具。
*   **新創事業機會**:
    *   開發/銷售熱門服務的 MCP 伺服器。
    *   提供 MCP 相關諮詢/整合服務。
    *   構建基於 MCP 的創新 AI 應用。
    *   可能出現 "MCP 應用商店"。

---
Reference:
https://www.philschmid.de/mcp-introduction
[Model Context Protocol (MCP), clearly explained (why it matters)](https://youtu.be/7j_NE6Pjv-E?si=hSAWOcHcRtE8O2E3)
https://www.bnext.com.tw/article/82706/what-is-mcp