MCP Specification · 2026-07-28 · zh-TW
伺服器探索
Discovery
以 server/discover 在其他 RPC 前查詢支援版本、capabilities、伺服器身分與使用提示。
server/discover 讓 client 在其他 request 前查詢 server 支援的 protocol versions、capabilities 與 identity。Server MUST(必須)實作。
請求(Request)
除了標準 _meta 外沒有額外 parameters:
{
"jsonrpc": "2.0",
"id": "discover-1",
"method": "server/discover",
"params": {
"_meta": {
"io.modelcontextprotocol/protocolVersion": "2026-07-28",
"io.modelcontextprotocol/clientCapabilities": {}
}
}
}
回應(Response)
Server 回傳支援版本、capabilities、identity 與選用 instructions;此 operation 支援 caching。
{
"jsonrpc": "2.0",
"id": "discover-1",
"result": {
"resultType": "complete",
"supportedVersions": ["2026-07-28"],
"capabilities": {"tools": {}, "resources": {}},
"_meta": {
"io.modelcontextprotocol/serverInfo": {
"name": "ExampleServer",
"version": "1.0.0"
}
},
"ttlMs": 3600000,
"cacheScope": "public"
}
}
何時呼叫(When to Call)
Client 是否主動呼叫 server/discover 是選用的,也可以直接送 RPC 並處理 UnsupportedProtocolVersionError。Discovery 很適合一次取得 server identity / capabilities / versions。
在 stdio 上,同時支援 Modern per-request metadata 與 Legacy initialize handshake 的 client SHOULD(應該)先送 server/discover 作為 era probe,再依 stdio 的 backward-compatibility 規則決定是否 fallback。
DiscoverResult
supportedVersions:server 支援的 protocol versions;client 應從中選擇後續請求使用的版本。capabilities:tools、resources、prompts 等支援功能。serverInfo:server software 的 name / version;server SHOULD(應該)提供。instructions:給 LLM 的選用自然語言指引。
serverInfo 是自我宣告資訊
它適合 display、logging 與 debugging;client SHOULD NOT(不應)依它改變 protocol behavior,也 SHOULD NOT(不應)把它當成安全性判斷依據。