Transport
- Every request is a separate
POST. - Do not mint or require
Mcp-Session-Idfor modern requests. - Validate every present HTTP
Originagainst an explicit allowlist. - Require the matching
MCP-Protocol-VersionandMcp-Methodheaders. - Require
Mcp-Namefor named requests such astools/call. - Require protocol version, client info, and client capabilities in
params._meta.
Discovery and result shape
Implementserver/discover and advertise 2026-07-28 plus the tools capability. Completed results return:
resultType: "complete";_meta.io.modelcontextprotocol/serverInfo;- deterministic
ttlMsandcacheScopewhere required.
Feedback binding
The server registersreport_product_feedback and decorates product-tool results with:
mcp. The later report enriches that
same interaction.
2025 compatibility
A server may accept the2025-11-25 initialize handshake as a stateless compatibility fallback. Modern requests
must never depend on that fallback or introduce transport-session state.