[AIAgent-MCP]MCP Client 全景:Elicitation、Roots 与 Sampling 一次讲透
本文预览:
- MCP Client 到底是什么
- Elicitation/ Roots/ Sampling 三大核心分别做什么
是什么
由AI应用程序Host中创建管理,与 MCP Server 连接的协议级组件,一个 HostAI应用程序可以包含多个 MCP Client。
核心能力与作用
MCPCliet除了可以从MCPServer获取上下文信息外,还可以向服务器提供多种功能。
MCPCliet的这些功能使MCPServer开发者能够构建更丰富的交互体验。
Elicitation
简单说就是按需向用户补充信息
该能力的作用为:让 MCPServer在流程中向用户**寻求信息补充, **从而创建更动态、响应更迅速的工作流程。
当MCPServer 执行 Client 请求的工作流程时, 如果发现 Client 提供的信息不足以MCPServer完成当前工作流程,MCPServer会发起一个 结构化 的请求,让用户手动去填写必要的信息以来完成任务流程,防止 MCPServer在信息不充足的情况下导致任务失败。
这样Client与Server有了更灵活的交互方式,Server能够适应用户需求,而不是遵循僵化的模式。
交互路径如下**: **

最佳实践
**原则: **设计清晰、符合语境,尊重用户自主权:
请求呈现: 向用户展示本次请求的**具体目的和数据结构**;Client以清晰的上下文信息展示请求,包括请求的Server端信息、本次信息用途、信息使用方式。用户响应选择: 用户可以选择同意或者拒绝补充提供信息; 用户可以通过清晰可以的界面控件(文本框、下拉菜单、复选框)同意提供所需信息,并且Client会根据请求的具体结构进行信息验证保障数据信息的准确性;也可以选择不提供信息并附上解释、或者取消整个操作。隐私保护: 请求过程中不建议包含**密码、密钥**等隐私数据请求,同时Client会对此类请求给出警告,让用户谨慎选择。
Roots
定义服务器操作的文件系统边界, 告诉用户(Client)可以关注的资源文件范围,但是在服务器端具体的文件权限还是需要服务器本身的操作系统通过文件权限或沙箱机制来实施。
Roots是客户端向服务器传达文件系统访问边界的一种机制。由文件 URI 组成,指示服务器可以操作的目录,帮助服务器了解可用文件和文件夹的范围。虽然Roots指定了操作范围,但它们并不强制执行安全限制。实际的安全措施必须在操作系统层面通过文件权限或沙箱机制来实施。
Roots** 结构:**
{
"uri": "file:///Users/agent/travel-planning",
"name": "Travel Planning Workspace"
}
使用方式
默认情况下Roots由应用程序根据用户操作自动管理,但也提供手动管理选项
- 自动检测: 用户打开对应的资源文件时,客户端会向服务器自动发送相关资源
Roots请求,帮助服务端了解哪些资源属于当前用户使用的场景 - **手动配置: **通过配置指定根目录, 告诉服务器可以的资源范围。如
/travel-templates
Sampling
Server** 借助 Client 完成 LLM 调用**
本质是:Server 自己不直接接大模型,而是请求 Client 代为完成模型推理。
这样,模型访问权、权限策略、速率限制、敏感信息处理等,仍由 **Client **一侧掌控。
Sampling 请求可以包含消息内容、模型偏好、system prompt、token 上限等。
{
messages: [
{
role: "user",
content: "分析这些航班选项,并推荐最佳选择:\n" +
"[47 条航班信息,包括价格、时间、航空公司和中途停留情况]\n" +
"用户偏好:早上出发,最多 1 次中途停留"
}
],
modelPreferences: {
hints: [{
name: "claude-sonnet-4-20250514" // Suggested model
}],
costPriority: 0.3, // Less concerned about API cost
speedPriority: 0.2, // Can wait for thorough analysis
intelligencePriority: 0.9 // Need complex trade-off evaluation
},
systemPrompt: "您是一位旅行专家,致力于根据用户的偏好为他们推荐最优质的航班。",
maxTokens: 1500
}
它通常带有 人机交互(human-in-the-loop)的设计:用户可以审批、拒绝、修改请求,也可以在响应返回 Server 前先查看结果。
大致交互流程

以上即为对MCP Client 的核心原理的初步了解,下一步进行更深入实战~~~
我是小C,每天学一点 Agent 也拆一点 Agent;尽量把原理弄懂,框架每天都在迭代,不只看用法,更看实现思路。框架会变,原理不变。后续继续分享Agent相关知识笔记~
#MCP #AIAgent #大模型应用 #AI工程化 #技术学习笔记
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)