server/discover 允许客户端在发送任何其他请求之前,查询服务器支持的协议版本、
能力和标识。服务器 必须 实现它。
请求
除标准_meta 外,请求不携带任何主体参数:
响应
服务器会返回其支持的协议版本、能力和 标识。此操作支持 缓存。何时调用
对于客户端来说,调用server/discover 是可选的——客户端可以内联发起任何
RPC,并在服务器不支持请求的版本时处理
UnsupportedProtocolVersionError。
不过,server/discover
在以下两种场景中很有用:
- 展示服务器信息。 虽然客户端不需要调用
server/discover就能使用服务器,但它是一次性获取 服务器标识、能力和支持版本的便捷方式。例如,客户端可以根据 单个server/discover响应展示服务器支持的能力,而不必分别通过tools/list、prompts/list和resources/list请求进行探测。 - stdio 向后兼容探测。 在 stdio 中,没有按请求划分的
HTTP 状态码可用于驱动回退。支持现代(按请求
_meta)和旧版(initialize握手)服务器的客户端 SHOULD 先发送server/discover;有关回退规则,请参见 stdio: 向后兼容。
数据类型
DiscoverResult
发现结果包括:supportedVersions:服务器支持的协议版本。客户端应 为后续请求选择其中之一。capabilities:服务器支持的能力(tools、resources、prompts 等)serverInfo:服务器软件的名称和版本instructions:可选的自然语言指导,供 LLM 了解如何有效使用 此服务器