Rename MinVersionForStandardHeaders to DraftProtocolVersion (#1603)

This commit is contained in:
Stephen Halter 2026-06-02 12:49:31 -07:00 • committed by GitHub
commit 711e5bb3b7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -10,14 +10,27 @@ namespace ModelContextProtocol.Protocol;
internal static class McpHttpHeaders internal static class McpHttpHeaders
{ {
/// <summary> /// <summary>
/// The minimum protocol version that requires standard MCP request headers. /// The draft MCP protocol version string used to gate behaviors that are only enabled
/// for clients negotiating the in-progress draft specification.
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// Servers enforce missing <c>Mcp-Method</c> and <c>Mcp-Name</c> headers as errors only when /// Behaviors currently gated on this version include:
/// the client's <c>MCP-Protocol-Version</c> header indicates this version or later. /// <list type="bullet">
/// Clients using older versions are not required to send these headers. /// <item><description>
/// Requiring the standard MCP request headers (<c>Mcp-Method</c> and <c>Mcp-Name</c>)
/// on Streamable HTTP POST requests; servers treat missing headers as errors only when
/// the client's <c>MCP-Protocol-Version</c> header matches this value.
/// </description></item>
/// <item><description>
/// Reporting unresolvable resource URIs from <c>resources/read</c> with the standard
/// JSON-RPC <see cref="McpErrorCode.InvalidParams"/> (-32602) code rather than the
/// legacy <see cref="McpErrorCode.ResourceNotFound"/> (-32002) code.
/// </description></item>
/// </list>
/// The associated helpers perform exact ordinal matches against this single value rather
/// than any ordered comparison.
/// </remarks> /// </remarks>
public static readonly string MinVersionForStandardHeaders = "DRAFT-2026-v1"; public const string DraftProtocolVersion = "DRAFT-2026-v1";
/// <summary>The session identifier header.</summary> /// <summary>The session identifier header.</summary>
public const string SessionId = "Mcp-Session-Id"; public const string SessionId = "Mcp-Session-Id";
@ -67,7 +80,7 @@ internal static class McpHttpHeaders
/// </summary> /// </summary>
private static readonly HashSet<string> s_versionsWithStandardHeaders = new(StringComparer.Ordinal) private static readonly HashSet<string> s_versionsWithStandardHeaders = new(StringComparer.Ordinal)
{ {
MinVersionForStandardHeaders, DraftProtocolVersion,
}; };
/// <summary> /// <summary>
@ -82,5 +95,5 @@ internal static class McpHttpHeaders
/// rather than the legacy <see cref="McpErrorCode.ResourceNotFound"/> (-32002). /// rather than the legacy <see cref="McpErrorCode.ResourceNotFound"/> (-32002).
/// </summary> /// </summary>
internal static bool UseInvalidParamsForMissingResource(string? protocolVersion) internal static bool UseInvalidParamsForMissingResource(string? protocolVersion)
=> string.Equals(protocolVersion, MinVersionForStandardHeaders, StringComparison.Ordinal); => string.Equals(protocolVersion, DraftProtocolVersion, StringComparison.Ordinal);
} }