Skip to content

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(不應)把它當成安全性判斷依據。