server/discover 允许客户端在发送任何其他请求之前,查询服务器支持的协议版本、能力和身份信息。服务器 MUST 实现它。
请求
除标准_meta 外,请求不携带正文参数:
响应
服务器会回复其支持的协议版本、能力和身份信息。此操作支持缓存。响应字段
何时调用
客户端调用server/discover 是可选的;客户端可以直接内联调用任意 RPC,并在服务器不支持所请求版本时处理
UnsupportedProtocolVersionError。不过,server/discover 在两种场景中很有用:
- 前置版本选择。 客户端在发送任何其他请求前获知服务器支持的版本,从而避免一次往返错误。
- stdio 向后兼容探测。 在 stdio 上,没有可驱动回退的逐请求 HTTP 状态码。同时支持现代服务器(逐请求
_meta)和旧版服务器(initialize握手)的客户端 SHOULD 先发送server/discover;回退规则见 stdio:向后兼容。