理解 MCP 客户端概念
findBestFlight
的工具,该工具使用采样来分析可用航班并推荐最佳选择。当用户询问“帮我预订下个月去巴塞罗那的最佳航班”时,该工具需要 AI 协助来评估复杂的权衡因素。 该工具查询航空公司 API 并收集了 47 个航班选项。然后,它请求 AI 协助来分析这些选项:“分析这些航班选项并推荐最佳选择:[47 个航班,包含价格、时间、航空公司和中转信息] 用户偏好:早上出发,最多 1 次中转。” 客户端询问用户:“允许采样请求吗?” 获得批准后,AI 会评估各种权衡因素——例如更便宜的红眼航班与更方便的早班机。该工具利用此分析结果向用户呈现前三个推荐。includeContext
参数决定采样请求中可以包含多少对话上下文。 隔离:默认情况下,采样请求与主对话上下文隔离。服务器无法访问用户对话。 安全考虑:客户端和服务器在采样期间都必须妥善处理敏感数据。客户端应实施速率限制并验证所有消息内容。人工审核设计确保了由服务器发起的 AI 交互在未经用户明确同意的情况下,无法危及安全或访问敏感数据。file://
URI 方案。它们帮助服务器理解项目边界、工作区组织和可访问的目录。随着用户处理不同的项目或文件夹,根列表可以动态更新,当边界发生变化时,服务器会通过 roots/list_changed
收到通知。 需要注意的是,虽然根为服务器提供了操作位置的指导,但客户端始终完全控制文件访问。根仅仅是传达预期的边界——实际的文件访问总是由客户端的安全策略来调节。file:///Users/agent/travel-planning
- 包含所有旅行文件的主工作区file:///Users/agent/travel-templates
- 可重用的行程模板和资源file:///Users/agent/client-documents
- 客户护照和旅行证件file:///Users/agent/archive/2023-trips
,客户端会通过 roots/list_changed
更新根列表。/travel-templates
,同时排除包含财务记录的目录。