diff --git a/docs/concepts/elicitation/samples/server/Elicitation.http b/docs/concepts/elicitation/samples/server/Elicitation.http index 04dcdb3..ba41db8 100644 --- a/docs/concepts/elicitation/samples/server/Elicitation.http +++ b/docs/concepts/elicitation/samples/server/Elicitation.http @@ -5,7 +5,7 @@ POST {{HostAddress}}/ Accept: application/json, text/event-stream Content-Type: application/json -MCP-Protocol-Version: 2025-06-18 +MCP-Protocol-Version: 2025-11-25 { "jsonrpc": "2.0", @@ -34,7 +34,7 @@ Content-Type: application/json "capabilities": { "elicitation": {} }, - "protocolVersion": "2025-06-18" + "protocolVersion": "2025-11-25" } } @@ -46,7 +46,7 @@ POST {{HostAddress}}/ Accept: application/json, text/event-stream Content-Type: application/json Mcp-Session-Id: {{SessionId}} -MCP-Protocol-Version: 2025-06-18 +MCP-Protocol-Version: 2025-11-25 { "jsonrpc": "2.0", diff --git a/docs/concepts/httpcontext/samples/HttpContext.http b/docs/concepts/httpcontext/samples/HttpContext.http index 838457e..715b87a 100644 --- a/docs/concepts/httpcontext/samples/HttpContext.http +++ b/docs/concepts/httpcontext/samples/HttpContext.http @@ -3,7 +3,7 @@ POST {{HostAddress}}/ Accept: application/json, text/event-stream Content-Type: application/json -MCP-Protocol-Version: 2025-06-18 +MCP-Protocol-Version: 2025-11-25 { "jsonrpc": "2.0", diff --git a/docs/concepts/logging/logging.md b/docs/concepts/logging/logging.md index fa5b6ed..5a74af0 100644 --- a/docs/concepts/logging/logging.md +++ b/docs/concepts/logging/logging.md @@ -9,7 +9,7 @@ uid: logging MCP servers can expose log messages to clients through the [Logging utility]. -[Logging utility]: https://modelcontextprotocol.io/specification/2025-06-18/server/utilities/logging +[Logging utility]: https://modelcontextprotocol.io/specification/2025-11-25/server/utilities/logging This document describes how to implement logging in MCP servers and how clients can consume log messages. @@ -43,7 +43,7 @@ dropped when sending messages to the client. MCP servers that implement the Logging utility must declare this in the capabilities sent in the [Initialization] phase at the beginning of the MCP session. -[Initialization]: https://modelcontextprotocol.io/specification/2025-06-18/basic/lifecycle#initialization +[Initialization]: https://modelcontextprotocol.io/specification/2025-11-25/basic/lifecycle#initialization Servers built with the C# SDK always declare the logging capability. Doing so does not obligate the server to send log messages—only allows it. Note that stateless MCP servers might not be capable of sending log diff --git a/docs/concepts/logging/samples/server/Logging.http b/docs/concepts/logging/samples/server/Logging.http index 3f0f028..6059cac 100644 --- a/docs/concepts/logging/samples/server/Logging.http +++ b/docs/concepts/logging/samples/server/Logging.http @@ -14,7 +14,7 @@ Content-Type: application/json "version": "0.1.0" }, "capabilities": {}, - "protocolVersion": "2025-06-18" + "protocolVersion": "2025-11-25" } } @@ -27,7 +27,7 @@ Content-Type: application/json POST {{HostAddress}}/ Accept: application/json, text/event-stream Content-Type: application/json -MCP-Protocol-Version: 2025-06-18 +MCP-Protocol-Version: 2025-11-25 Mcp-Session-Id: {{SessionId}} { diff --git a/docs/concepts/progress/progress.md b/docs/concepts/progress/progress.md index c941550..abb4ee6 100644 --- a/docs/concepts/progress/progress.md +++ b/docs/concepts/progress/progress.md @@ -9,7 +9,7 @@ uid: progress The Model Context Protocol (MCP) supports [progress tracking] for long-running operations through notification messages. -[progress tracking]: https://modelcontextprotocol.io/specification/2025-06-18/basic/utilities/progress +[progress tracking]: https://modelcontextprotocol.io/specification/2025-11-25/basic/utilities/progress Typically progress tracking is supported by server tools that perform operations that take a significant amount of time to complete, such as image generation or complex calculations. However, progress tracking is defined in the MCP specification as a general feature that can be implemented for any request that's handled by either a server or a client. diff --git a/docs/concepts/progress/samples/server/Progress.http b/docs/concepts/progress/samples/server/Progress.http index 3b40db8..053c2ec 100644 --- a/docs/concepts/progress/samples/server/Progress.http +++ b/docs/concepts/progress/samples/server/Progress.http @@ -3,7 +3,7 @@ POST {{HostAddress}}/ Accept: application/json, text/event-stream Content-Type: application/json -MCP-Protocol-Version: 2025-06-18 +MCP-Protocol-Version: 2025-11-25 { "jsonrpc": "2.0", diff --git a/samples/EverythingServer/EverythingServer.http b/samples/EverythingServer/EverythingServer.http index 4903f94..433a8a9 100644 --- a/samples/EverythingServer/EverythingServer.http +++ b/samples/EverythingServer/EverythingServer.http @@ -14,7 +14,7 @@ Content-Type: application/json "version": "0.1.0" }, "capabilities": {}, - "protocolVersion": "2025-06-18" + "protocolVersion": "2025-11-25" } } @@ -25,7 +25,7 @@ Content-Type: application/json POST {{HostAddress}}/ Accept: application/json, text/event-stream Content-Type: application/json -MCP-Protocol-Version: 2025-06-18 +MCP-Protocol-Version: 2025-11-25 Mcp-Session-Id: {{SessionId}} { @@ -41,7 +41,7 @@ Mcp-Session-Id: {{SessionId}} POST {{HostAddress}}/ Accept: application/json, text/event-stream Content-Type: application/json -MCP-Protocol-Version: 2025-06-18 +MCP-Protocol-Version: 2025-11-25 Mcp-Session-Id: {{SessionId}} { @@ -58,7 +58,7 @@ Mcp-Session-Id: {{SessionId}} POST {{HostAddress}}/ Accept: application/json, text/event-stream Content-Type: application/json -MCP-Protocol-Version: 2025-06-18 +MCP-Protocol-Version: 2025-11-25 Mcp-Session-Id: {{SessionId}} { @@ -73,5 +73,5 @@ Mcp-Session-Id: {{SessionId}} ### DELETE {{HostAddress}}/ -MCP-Protocol-Version: 2025-06-18 +MCP-Protocol-Version: 2025-11-25 Mcp-Session-Id: {{SessionId}} diff --git a/src/ModelContextProtocol.AspNetCore/HttpServerTransportOptions.cs b/src/ModelContextProtocol.AspNetCore/HttpServerTransportOptions.cs index 1ede12e..b1391e7 100644 --- a/src/ModelContextProtocol.AspNetCore/HttpServerTransportOptions.cs +++ b/src/ModelContextProtocol.AspNetCore/HttpServerTransportOptions.cs @@ -6,10 +6,10 @@ namespace ModelContextProtocol.AspNetCore; /// /// Represents configuration options for , /// which implements the Streaming HTTP transport for the Model Context Protocol. -/// See the protocol specification for details on the Streamable HTTP transport. +/// See the protocol specification for details on the Streamable HTTP transport. /// /// -/// For details on the Streamable HTTP transport, see the protocol specification. +/// For details on the Streamable HTTP transport, see the protocol specification. /// public class HttpServerTransportOptions { diff --git a/src/ModelContextProtocol.AspNetCore/McpEndpointRouteBuilderExtensions.cs b/src/ModelContextProtocol.AspNetCore/McpEndpointRouteBuilderExtensions.cs index ad87f7a..80f3436 100644 --- a/src/ModelContextProtocol.AspNetCore/McpEndpointRouteBuilderExtensions.cs +++ b/src/ModelContextProtocol.AspNetCore/McpEndpointRouteBuilderExtensions.cs @@ -21,7 +21,7 @@ public static class McpEndpointRouteBuilderExtensions /// Returns a builder for configuring additional endpoint conventions like authorization policies. /// The required MCP services have not been registered. Ensure has been called during application startup. /// - /// For details about the Streamable HTTP transport, see the 2025-06-18 protocol specification. + /// For details about the Streamable HTTP transport, see the 2025-11-25 protocol specification. /// This method also maps legacy SSE endpoints for backward compatibility at the path "/sse" and "/message". For details about the HTTP with SSE transport, see the 2024-11-05 protocol specification. /// public static IEndpointConventionBuilder MapMcp(this IEndpointRouteBuilder endpoints, [StringSyntax("Route")] string pattern = "") diff --git a/src/ModelContextProtocol.Core/Client/HttpClientTransportOptions.cs b/src/ModelContextProtocol.Core/Client/HttpClientTransportOptions.cs index 0a8776a..73eaae7 100644 --- a/src/ModelContextProtocol.Core/Client/HttpClientTransportOptions.cs +++ b/src/ModelContextProtocol.Core/Client/HttpClientTransportOptions.cs @@ -44,7 +44,7 @@ public sealed class HttpClientTransportOptions /// When set to (the default), the client will first attempt to use /// Streamable HTTP transport and automatically fall back to SSE transport if the server doesn't support it. /// - /// Streamable HTTP transport specification. + /// Streamable HTTP transport specification. /// HTTP with SSE transport specification. public HttpTransportMode TransportMode { get; set; } = HttpTransportMode.AutoDetect; diff --git a/tests/ModelContextProtocol.AspNetCore.Tests/MapMcpStreamableHttpTests.cs b/tests/ModelContextProtocol.AspNetCore.Tests/MapMcpStreamableHttpTests.cs index 9e48dd4..0629ae3 100644 --- a/tests/ModelContextProtocol.AspNetCore.Tests/MapMcpStreamableHttpTests.cs +++ b/tests/ModelContextProtocol.AspNetCore.Tests/MapMcpStreamableHttpTests.cs @@ -178,10 +178,10 @@ public class MapMcpStreamableHttpTests(ITestOutputHelper outputHelper) : MapMcpT await using var mcpClient = await ConnectAsync(clientOptions: new() { - ProtocolVersion = "2025-03-26", + ProtocolVersion = "2025-06-18", }); - Assert.Equal("2025-03-26", mcpClient.NegotiatedProtocolVersion); + Assert.Equal("2025-06-18", mcpClient.NegotiatedProtocolVersion); await mcpClient.ListToolsAsync(cancellationToken: TestContext.Current.CancellationToken); await mcpClient.DisposeAsync(); @@ -190,7 +190,7 @@ public class MapMcpStreamableHttpTests(ITestOutputHelper outputHelper) : MapMcpT // Stateless mode due to the lack of an Mcp-Session-Id, but the header should be included in the // initialized notification and the tools/list call at a minimum. Assert.True(protocolVersionHeaderValues.Count > 1); - Assert.All(protocolVersionHeaderValues, v => Assert.Equal("2025-03-26", v)); + Assert.All(protocolVersionHeaderValues, v => Assert.Equal("2025-06-18", v)); } [Fact] diff --git a/tests/ModelContextProtocol.AspNetCore.Tests/StreamableHttpClientConformanceTests.cs b/tests/ModelContextProtocol.AspNetCore.Tests/StreamableHttpClientConformanceTests.cs index 366b9f4..e4ee2a1 100644 --- a/tests/ModelContextProtocol.AspNetCore.Tests/StreamableHttpClientConformanceTests.cs +++ b/tests/ModelContextProtocol.AspNetCore.Tests/StreamableHttpClientConformanceTests.cs @@ -217,7 +217,7 @@ public class StreamableHttpClientConformanceTests(ITestOutputHelper outputHelper { const string sessionId = "resume-session-123"; const string resumeInstructions = "Use cached instructions"; - const string resumeProtocolVersion = "2025-06-18"; + const string resumeProtocolVersion = "2025-11-25"; var resumeServer = await StartResumeServerAsync(sessionId); await using var transport = new HttpClientTransport(new() diff --git a/tests/ModelContextProtocol.ConformanceServer/ModelContextProtocol.ConformanceServer.http b/tests/ModelContextProtocol.ConformanceServer/ModelContextProtocol.ConformanceServer.http index 27173de..00317fc 100644 --- a/tests/ModelContextProtocol.ConformanceServer/ModelContextProtocol.ConformanceServer.http +++ b/tests/ModelContextProtocol.ConformanceServer/ModelContextProtocol.ConformanceServer.http @@ -26,7 +26,7 @@ Content-Type: application/json "version": "0.1.0" }, "capabilities": {}, - "protocolVersion": "2025-06-18" + "protocolVersion": "2025-11-25" } } @@ -37,7 +37,7 @@ Content-Type: application/json POST {{HostAddress}}/ Accept: application/json, text/event-stream Content-Type: application/json -MCP-Protocol-Version: 2025-06-18 +MCP-Protocol-Version: 2025-11-25 Mcp-Session-Id: {{SessionId}} { @@ -51,7 +51,7 @@ Mcp-Session-Id: {{SessionId}} POST {{HostAddress}}/ Accept: application/json, text/event-stream Content-Type: application/json -MCP-Protocol-Version: 2025-06-18 +MCP-Protocol-Version: 2025-11-25 Mcp-Session-Id: {{SessionId}} { @@ -65,7 +65,7 @@ Mcp-Session-Id: {{SessionId}} POST {{HostAddress}}/ Accept: application/json, text/event-stream Content-Type: application/json -MCP-Protocol-Version: 2025-06-18 +MCP-Protocol-Version: 2025-11-25 Mcp-Session-Id: {{SessionId}} { diff --git a/tests/ModelContextProtocol.Tests/Client/McpClientTests.cs b/tests/ModelContextProtocol.Tests/Client/McpClientTests.cs index 09231a8..a465b47 100644 --- a/tests/ModelContextProtocol.Tests/Client/McpClientTests.cs +++ b/tests/ModelContextProtocol.Tests/Client/McpClientTests.cs @@ -585,7 +585,7 @@ public class McpClientTests : ClientServerTestBase [Theory] [InlineData(null)] - [InlineData("2025-03-26")] + [InlineData("2025-06-18")] public async Task ReturnsNegotiatedProtocolVersion(string? protocolVersion) { await using McpClient client = await CreateMcpClientForServer(new() { ProtocolVersion = protocolVersion });