客戶端概念
理解 MCP 客戶端概念
MCP 客戶端由主機應用程式實例化,用於與特定的 MCP 伺服器通訊。主機應用程式(如 Claude.ai 或 IDE)管理整體使用者體驗並協調多個客戶端。每個客戶端處理與一個伺服器的直接通訊。
理解這個區別很重要:主機是使用者互動的應用程式,而客戶端是啟用伺服器連線的協定層級元件。
核心客戶端特性
除了使用伺服器提供的內容外,客戶端還可以向伺服器提供多種特性。這些客戶端特性允許伺服器作者建立更豐富的互動。例如,客戶端可以允許 MCP 伺服器透過請求向使用者請求額外資訊。客戶端可以提供以下能力:
採樣
採樣允許伺服器透過客戶端請求語言模型完成,在維持安全性和使用者控制的同時啟用代理行為。
概述
採樣使伺服器能夠執行依賴 AI 的任務,而無需直接整合或支付 AI 模型費用。相反,伺服器可以請求已經具有 AI 模型存取權限的客戶端代表它們處理這些任務。這種方法讓客戶端完全控制使用者權限和安全措施。由於採樣請求發生在其他操作的內容中——如工具分析資料——並作為單獨的模型呼叫處理,它們在不同內容之間保持清晰的界限,允許更有效地使用內容視窗。
採樣流程:
此流程通過多個人工回饋檢查點確保安全性。使用者審核並可以修改初始請求和生成的回應,然後再回傳給伺服器。
請求參數範例:
{
messages: [
{
role: "user",
content: "分析這些航班選項並推薦最佳選擇:\n" +
"[47 個航班,包含價格、時間、航空公司和轉機]\n" +
"使用者偏好:早晨出發,最多 1 次轉機"
}
],
modelPreferences: {
hints: [{
name: "claude-3-5-sonnet" // 建議的模型
}],
costPriority: 0.3, // 較不關心 API 成本
speedPriority: 0.2, // 可以等待徹底分析
intelligencePriority: 0.9 // 需要複雜的權衡評估
},
systemPrompt: "你是一位旅遊專家,幫助使用者根據他們的偏好找到最佳航班",
maxTokens: 1500
}