MCP Elicitation 让服务器在交互过程中向用户要信息,而不是让客户端把一切都直接透传给服务器。
它解决什么问题
服务器经常需要额外输入才能继续(例如确认参数、补充上下文、完成授权)。Elicitation 把这类请求标准化,同时让客户端保有对用户交互与数据分享的控制权。
两种模式(关键区别)
- 表单模式(Form mode):服务器请求用户提供结构化数据,可选带 JSON Schema 校验响应。适合普通信息收集。
- URL 模式(URL mode):服务器把用户引导到外部 URL,用于敏感交互——即那些不应经过 MCP 客户端的内容。
硬性安全规则
服务器不得用表单模式索取密码、API 密钥、访问令牌、支付凭据等敏感信息;必须对这类交互使用 URL 模式。规范对「敏感信息」的定义是需要授权访问或交易的秘密与凭据;姓名、邮箱、用户名等一般联系或档案信息不属于绝对禁止范围,是否用表单模式索取由服务器决定,并受用户审查能力约束。
与 Roots、Sampling 的关系
三者同属 MCP 客户端特性,都让服务器能在自身功能内部嵌套客户端交互,都属于「服务器借客户端能力」这一设计模式。