# 模型上下文協議(Model Context Protocol, MCP) ## 前言 如今的 AI 模型(如 Claude、GPT-4)雖然強大,卻無法直接存取訓練後的即時資訊或外部工具。想要讓 AI 助手查天氣、分析文件、操作行事曆,卻往往因為沒連上外部服務而「撲空」──回答錯誤或乾脆說「我不知道」。 模型上下文協議(Model Context Protocol, MCP)正是為了打破這個限制而誕生,它像一條安全、標準化的「資訊高速公路」,讓 AI 可以隨時調用外部資源,回應更精準、更有用。 ## MCP 是什麼? - **來源**:Anthropic 於 2024 年底推出並開源,目標在於建立一套「AI 與工具溝通的通用標準」。 - **定位**:類似 USB-C 插頭,AI 不用為每個工具寫不同程式,只要符合 MCP 規範,就能「即插即用」。 ## MCP 架構大剖析 1. **AI 應用(Host)** - 如聊天機器人、IDE 外掛、手機 App 等,發出「我要做什麼」的請求。 2. **MCP 客戶端(Client)** - 把請求轉成 MCP 規定的格式(JSON)。 - 加密/驗證,確保通訊安全。 - 跟 Server 來回收發。 3. **MCP 伺服器(Server)** - 包裝實際服務 API,例如: - 天氣服務:`get_forecast(lat, lng)` - 日曆系統:`schedule_event(date, time, duration, attendees)` - 程式碼分析:`analyze_code(file_path, rules)` ### 完整流程 1. Host 問 Client:「你有哪些工具可用?」 2. Client 向各個 Server 詢問「你的能力清單是?」 3. Client 把所有工具回報給 Host,由 Host 選擇要用哪一個。 4. Host 送參數給 Client,Client 再呼叫對應的 Server,Server 執行並回傳結果,Client 將結果轉給 Host。 ## MCP 的五大核心優勢 1. **實時資料整合** - AI 可隨時呼叫最新天氣、股價、新聞或企業內部資料庫,不受訓練截止日限制。 2. **模組化擴展** - 每個服務寫一次 MCP 對接程式,所有 AI 應用都能重用,未來新增工具時只要符合協議即可無痛接入。 3. **降低幻覺(Hallucination)** - 回答有外部事實支撐,不再靠模型「猜」;有疑問時還能回去動態驗證。 4. **強化安全與隱私** - MCP 規範內建權限控制,只有授權的服務能存取特定資料,所有請求可追溯、可審計。 5. **簡化開發維護** - 開發者一次學 MCP 規範,即可串接多個工具,後續維護集中在 MCP 對接層,核心 Agent 代碼不用動。 ## 三大實戰範例 ### 範例 1:台北午後天氣速報 1. 用戶:「請告訴我台北今天下午 2 點到 5 點的天氣如何。」 2. Host 要求 Client 列出支援的 Server。 3. Client 向 Weather Server 詢問「你能提供哪些功能?」 4. Weather Server 回傳 `get_forecast(lat: float, lng: float)`。 5. Host 呼叫並傳入 `25.0330, 121.5654`。 6. Server 拉最新氣象 API,回傳: > 14:00–17:00:氣溫約 30°C,風速 5 m/s,可能有陣雨 7. Host 把結果告訴用戶。 ### 範例 2:自動排程小幫手 1. 用戶:「幫我在 2025-06-19 上午 10:00 到 11:00,於台北101安排會議,並邀請小明、小華。」 2. Host 呼叫 `schedule_event(date, time, location, attendees)`。 3. Calendar Server 使用 Google Calendar API 建立活動並回傳連結。 4. Host 回覆:「已在 6/19 10:00–11:00 預定,連結:…」。 ### 範例 3:安全程式碼掃描 1. 用戶:「檢查我專案裡 utils.py 的安全漏洞。」 2. Host 呼叫 `analyze_code(file_path=/path/utils.py, ruleset=security)`。 3. Code Analysis Server 執行 OWASP 規則掃描,回傳: - 第 42 行:`eval()` 可能導致注入。 - 第 88 行:缺少輸入 sanitize。 4. Host 建議:「第 42 行用 `ast.literal_eval()`,第 88 行補上 sanitize。」 ## 與其他整合方案比較 | 方案 | 對接方式 | Capability Discovery | 擴充便利度 | 安全/隱私 | AI 相容性 | 維護成本 | |--------------------------|-------------------------|-------------------------|--------------------|--------------------|----------------------|-------------------| | **MCP** | 動態 Capability Discovery | 支援 | 高(即插即用) | OAuth、ACL、審計日誌 | 專為 AI 設計,支援狀態化 | 低(集中管理對接程式) | | **傳統 API 整合** | 獨立接入 | 不支援 | 低(需額外開發) | 視各 API 而定 | 無狀態 REST | 高(多份對接程式) | | **OpenAI Function Calling** | 靜態 JSON Schema | 不支援 | 中(需更新 schema) | 基本權限控制 | 部分支援對話式互動 | 中(維護 schema) | ## 未來展望 - **行業專屬 MCP Server**:醫療、金融、製造業等場景定制化實作。 - **MCP 平台化**:第三方提供 MCP Gateway as a Service。 - **生態聯盟**:期待 AI 平台大廠(OpenAI、Google、Microsoft)納入 MCP 支援,形成跨生態標準。 ## 結語 MCP 為 AI Agent 打通了與外部資源的高速通道,實現即時、可追溯且安全的資訊交換。對開發者來說,它大幅簡化了工具整合;對使用者而言,則提供了更精準、更可靠的 AI 助手體驗。隨著更多服務加入 MCP 生態,未來的 AI 應用必將更智慧、更具場景感知。