Describe the bug
The current spec indicates that the version should be negotiated in the initial initialize request: https://modelcontextprotocol.io/specification/2025-03-26/basic/lifecycle#version-negotiation
However, Session Management specifies that a Session-Id header MAY be returned: https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#session-management
The Tool protocol doesn't convey any information about which version was previously negotiated. The server doesn't have a way to know which version was previously negotiated.
Separately, the auth part of the spec mentions a "MCP-Protocol-Version" that SHOULD be included: https://modelcontextprotocol.io/specification/2025-03-26/basic/authorization#2-3-1-server-metadata-discovery-headers
To Reproduce
N/A
Expected behavior
The negotiated version in the "MCP-Protocol-Version" should be changed to MUST, and should be mentioned in the "version negotiation" part of the spec.
Logs
N/A
Additional context
N/A