伺服器概念
理解 MCP 伺服器概念
MCP 伺服器是通過標準化協定介面向 AI 應用程式暴露特定能力的程式。每個伺服器為特定領域提供專注的功能。
常見的範例包括用於文件管理的檔案系統伺服器、用於訊息處理的電子郵件伺服器、用於行程規劃的旅遊伺服器,以及用於資料查詢的資料庫伺服器。每個伺服器都為 AI 應用程式帶來特定領域的能力。
核心構建區塊
伺服器通過三個構建區塊提供功能:
構建區塊 | 目的 | 控制方 | 實際範例 |
---|---|---|---|
工具 | 用於 AI 動作 | 模型控制 | 搜尋航班、發送訊息、建立行事曆事件 |
資源 | 用於內容資料 | 應用程式控制 | 文件、行事曆、電子郵件、天氣資料 |
提示 | 用於互動範本 | 使用者控制 | "規劃假期"、"總結我的會議"、"起草電子郵件" |
工具 - AI 動作
工具使 AI 模型能夠通過伺服器實作的函式執行動作。每個工具定義一個具有型別化輸入和輸出的特定操作。模型根據內容請求工具執行。
概述
工具是 LLM 可以呼叫的模式定義介面。MCP 使用 JSON Schema 進行驗證。每個工具執行單一操作,具有清楚定義的輸入和輸出。最重要的是,工具執行需要明確的使用者批准,確保使用者保持對模型採取的動作的控制。
協定操作:
方法 | 目的 | 回傳 |
---|---|---|
tools/list | 探索可用工具 | 帶有模式的工具定義陣列 |
tools/call | 執行特定工具 | 工具執行結果 |
範例工具定義:
{
name: "searchFlights",
description: "搜尋可用航班",
inputSchema: {
type: "object",
properties: {
origin: { type: "string", description: "出發城市" },
destination: { type: "string", description: "到達城市" },
date: { type: "string", format: "date", description: "旅行日期" }
},
required: ["origin", "destination", "date"]
}
}
範例:採取動作
工具使 AI 應用程式能夠代表使用者執行動作。在旅行規劃場景中,AI 應用程式可能使用多個工具來幫助預訂假期。
首先,它使用以下方式搜尋航班:
searchFlights(origin: "NYC", destination: "Barcelona", date: "2024-06-15")
searchFlights
查詢多家航空公司並回傳結構化的航班選項。選擇航班後,它使用以下方式建立行事曆事件:
createCalendarEvent(title: "Barcelona Trip", startDate: "2024-06-15", endDate: "2024-06-22")
來標記旅行日期。最後,它使用以下方式發送不在辦公室通知:
sendEmail(to: "team@work.com", subject: "Out of Office", body: "...")
來通知同事關於缺勤。
每個工具執行都需要明確的使用者批准,確保對採取的動作有完全控制。
使用者互動模型
工具是模型控制的,意味著 AI 模型可以自動探索和呼叫它們。然而,MCP 通過幾種機制強調人工監督。應用程式應該在 UI 中清楚顯示可用工具,並在工具被考慮或使用時提供視覺指示器。在任何工具執行之前,必須向使用者展示清楚的批准對話方塊,確切說明工具將要做什麼。
為了信任和安全,應用程式通常強制手動批准,讓人類有能力拒絕工具呼叫。應用程式通常通過批准對話方塊、預先批准某些安全操作的權限設定,以及顯示所有工具執行及其結果的活動記錄來實作這一點。
資源 - 內容資料
資源提供對主機應用程式可以檢索並作為內容提供給 AI 模型的資訊的結構化存取。