You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Accept modern envelope without the optional clientInfo key (spec PR #3002)
Spec PR #3002 made io.modelcontextprotocol/clientInfo optional
(SHOULD-include): the required per-request envelope is now the
protocolVersion + clientCapabilities pair.
- classify_inbound_request rung 1 demands the pair and reads absent
clientInfo as None; a missing required key rejects -32602 with a
message naming the key(s), per basic/index.mdx.
- Era evidence on the stdio dual-era loop is now presence of the
reserved protocolVersion _meta key alone: the io.modelcontextprotocol/
prefix is spec-reserved, so legacy traffic never mints it, and a
half-built envelope (version without capabilities) routes modern to
get the classifier's named rejection instead of the legacy path's
generic one. Failed classification still locks no era.
- The regenerated surface types (previous commit) already carry the
optional clientInfo on RequestMetaObject.
- Connection records client_capabilities as its own fact so capability
checks (check_capability, sampling tools validation, extension and
apps gates) work for pair-only requests; the client_params setter
keeps the two in lockstep on the handshake path. ServerSession
exposes client_capabilities and all capability consumers read it.
- The Mcp-Param schema-resolving tools/list walk omits the clientInfo
key from its synthetic envelope when the caller sent none.
0 commit comments