version
Protocol-version registry and comparison helpers.
Date-string protocol revisions happen to sort lexicographically, but versions are an enumerated set, not an ordered scalar: future identifiers are not guaranteed to be date-shaped, and unrecognized peer strings must compare conservatively instead of accidentally (e.g. "zzz" > "2025-11-25"). All ordering questions go through KNOWN_PROTOCOL_VERSIONS.
KNOWN_PROTOCOL_VERSIONS
module-attribute
KNOWN_PROTOCOL_VERSIONS: Final[tuple[str, ...]] = (
"2024-11-05",
"2025-03-26",
"2025-06-18",
"2025-11-25",
)
Every released protocol revision, oldest to newest.
SUPPORTED_PROTOCOL_VERSIONS
module-attribute
SUPPORTED_PROTOCOL_VERSIONS: list[str] = [
"2024-11-05",
"2025-03-26",
"2025-06-18",
LATEST_PROTOCOL_VERSION,
]
Protocol revisions this SDK can negotiate.
is_version_at_least
Return True if version is a known revision at least as new as minimum.
Unknown version strings return False (treat unrecognized peers
conservatively). minimum must be a member of KNOWN_PROTOCOL_VERSIONS;
passing anything else is programmer error and raises ValueError.
Source code in src/mcp/shared/version.py
26 27 28 29 30 31 32 33 34 35 36 37 | |