Add 2025-11-25 as supported version (#1130)

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
This commit is contained in:
Copilot 2026-01-15 09:59:42 -05:00 • committed by GitHub
commit 774411b22c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
14 changed files with 28 additions and 28 deletions

View file

@ -5,7 +5,7 @@
POST {{HostAddress}}/ POST {{HostAddress}}/
Accept: application/json, text/event-stream Accept: application/json, text/event-stream
Content-Type: application/json Content-Type: application/json
MCP-Protocol-Version: 2025-06-18 MCP-Protocol-Version: 2025-11-25
{ {
"jsonrpc": "2.0", "jsonrpc": "2.0",
@ -34,7 +34,7 @@ Content-Type: application/json
"capabilities": { "capabilities": {
"elicitation": {} "elicitation": {}
}, },
"protocolVersion": "2025-06-18" "protocolVersion": "2025-11-25"
} }
} }
@ -46,7 +46,7 @@ POST {{HostAddress}}/
Accept: application/json, text/event-stream Accept: application/json, text/event-stream
Content-Type: application/json Content-Type: application/json
Mcp-Session-Id: {{SessionId}} Mcp-Session-Id: {{SessionId}}
MCP-Protocol-Version: 2025-06-18 MCP-Protocol-Version: 2025-11-25
{ {
"jsonrpc": "2.0", "jsonrpc": "2.0",

View file

@ -3,7 +3,7 @@
POST {{HostAddress}}/ POST {{HostAddress}}/
Accept: application/json, text/event-stream Accept: application/json, text/event-stream
Content-Type: application/json Content-Type: application/json
MCP-Protocol-Version: 2025-06-18 MCP-Protocol-Version: 2025-11-25
{ {
"jsonrpc": "2.0", "jsonrpc": "2.0",

View file

@ -9,7 +9,7 @@ uid: logging
MCP servers can expose log messages to clients through the [Logging utility]. 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. 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 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] 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 Servers built with the C# SDK always declare the logging capability. Doing so does not obligate the server
to send log messages&mdash;only allows it. Note that stateless MCP servers might not be capable of sending log to send log messages&mdash;only allows it. Note that stateless MCP servers might not be capable of sending log

View file

@ -14,7 +14,7 @@ Content-Type: application/json
"version": "0.1.0" "version": "0.1.0"
}, },
"capabilities": {}, "capabilities": {},
"protocolVersion": "2025-06-18" "protocolVersion": "2025-11-25"
} }
} }
@ -27,7 +27,7 @@ Content-Type: application/json
POST {{HostAddress}}/ POST {{HostAddress}}/
Accept: application/json, text/event-stream Accept: application/json, text/event-stream
Content-Type: application/json Content-Type: application/json
MCP-Protocol-Version: 2025-06-18 MCP-Protocol-Version: 2025-11-25
Mcp-Session-Id: {{SessionId}} Mcp-Session-Id: {{SessionId}}
{ {

View file

@ -9,7 +9,7 @@ uid: progress
The Model Context Protocol (MCP) supports [progress tracking] for long-running operations through notification messages. 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. 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. 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.

View file

@ -3,7 +3,7 @@
POST {{HostAddress}}/ POST {{HostAddress}}/
Accept: application/json, text/event-stream Accept: application/json, text/event-stream
Content-Type: application/json Content-Type: application/json
MCP-Protocol-Version: 2025-06-18 MCP-Protocol-Version: 2025-11-25
{ {
"jsonrpc": "2.0", "jsonrpc": "2.0",

View file

@ -14,7 +14,7 @@ Content-Type: application/json
"version": "0.1.0" "version": "0.1.0"
}, },
"capabilities": {}, "capabilities": {},
"protocolVersion": "2025-06-18" "protocolVersion": "2025-11-25"
} }
} }
@ -25,7 +25,7 @@ Content-Type: application/json
POST {{HostAddress}}/ POST {{HostAddress}}/
Accept: application/json, text/event-stream Accept: application/json, text/event-stream
Content-Type: application/json Content-Type: application/json
MCP-Protocol-Version: 2025-06-18 MCP-Protocol-Version: 2025-11-25
Mcp-Session-Id: {{SessionId}} Mcp-Session-Id: {{SessionId}}
{ {
@ -41,7 +41,7 @@ Mcp-Session-Id: {{SessionId}}
POST {{HostAddress}}/ POST {{HostAddress}}/
Accept: application/json, text/event-stream Accept: application/json, text/event-stream
Content-Type: application/json Content-Type: application/json
MCP-Protocol-Version: 2025-06-18 MCP-Protocol-Version: 2025-11-25
Mcp-Session-Id: {{SessionId}} Mcp-Session-Id: {{SessionId}}
{ {
@ -58,7 +58,7 @@ Mcp-Session-Id: {{SessionId}}
POST {{HostAddress}}/ POST {{HostAddress}}/
Accept: application/json, text/event-stream Accept: application/json, text/event-stream
Content-Type: application/json Content-Type: application/json
MCP-Protocol-Version: 2025-06-18 MCP-Protocol-Version: 2025-11-25
Mcp-Session-Id: {{SessionId}} Mcp-Session-Id: {{SessionId}}
{ {
@ -73,5 +73,5 @@ Mcp-Session-Id: {{SessionId}}
### ###
DELETE {{HostAddress}}/ DELETE {{HostAddress}}/
MCP-Protocol-Version: 2025-06-18 MCP-Protocol-Version: 2025-11-25
Mcp-Session-Id: {{SessionId}} Mcp-Session-Id: {{SessionId}}

View file

@ -6,10 +6,10 @@ namespace ModelContextProtocol.AspNetCore;
/// <summary> /// <summary>
/// Represents configuration options for <see cref="M:McpEndpointRouteBuilderExtensions.MapMcp"/>, /// Represents configuration options for <see cref="M:McpEndpointRouteBuilderExtensions.MapMcp"/>,
/// which implements the Streaming HTTP transport for the Model Context Protocol. /// which implements the Streaming HTTP transport for the Model Context Protocol.
/// See the protocol specification for details on the Streamable HTTP transport. <see href="https://modelcontextprotocol.io/specification/2025-06-18/basic/transports#streamable-http"/> /// See the protocol specification for details on the Streamable HTTP transport. <see href="https://modelcontextprotocol.io/specification/2025-11-25/basic/transports#streamable-http"/>
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// For details on the Streamable HTTP transport, see the <see href="https://modelcontextprotocol.io/specification/2025-06-18/basic/transports#streamable-http">protocol specification</see>. /// For details on the Streamable HTTP transport, see the <see href="https://modelcontextprotocol.io/specification/2025-11-25/basic/transports#streamable-http">protocol specification</see>.
/// </remarks> /// </remarks>
public class HttpServerTransportOptions public class HttpServerTransportOptions
{ {

View file

@ -21,7 +21,7 @@ public static class McpEndpointRouteBuilderExtensions
/// <returns>Returns a builder for configuring additional endpoint conventions like authorization policies.</returns> /// <returns>Returns a builder for configuring additional endpoint conventions like authorization policies.</returns>
/// <exception cref="InvalidOperationException">The required MCP services have not been registered. Ensure <see cref="HttpMcpServerBuilderExtensions.WithHttpTransport"/> has been called during application startup.</exception> /// <exception cref="InvalidOperationException">The required MCP services have not been registered. Ensure <see cref="HttpMcpServerBuilderExtensions.WithHttpTransport"/> has been called during application startup.</exception>
/// <remarks> /// <remarks>
/// For details about the Streamable HTTP transport, see the <see href="https://modelcontextprotocol.io/specification/2025-06-18/basic/transports#streamable-http">2025-06-18 protocol specification</see>. /// For details about the Streamable HTTP transport, see the <see href="https://modelcontextprotocol.io/specification/2025-11-25/basic/transports#streamable-http">2025-11-25 protocol specification</see>.
/// 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 <see href="https://modelcontextprotocol.io/specification/2024-11-05/basic/transports#http-with-sse">2024-11-05 protocol specification</see>. /// 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 <see href="https://modelcontextprotocol.io/specification/2024-11-05/basic/transports#http-with-sse">2024-11-05 protocol specification</see>.
/// </remarks> /// </remarks>
public static IEndpointConventionBuilder MapMcp(this IEndpointRouteBuilder endpoints, [StringSyntax("Route")] string pattern = "") public static IEndpointConventionBuilder MapMcp(this IEndpointRouteBuilder endpoints, [StringSyntax("Route")] string pattern = "")

View file

@ -44,7 +44,7 @@ public sealed class HttpClientTransportOptions
/// When set to <see cref="HttpTransportMode.AutoDetect"/> (the default), the client will first attempt to use /// When set to <see cref="HttpTransportMode.AutoDetect"/> (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 and automatically fall back to SSE transport if the server doesn't support it.
/// </remarks> /// </remarks>
/// <seealso href="https://modelcontextprotocol.io/specification/2025-06-18/basic/transports#streamable-http">Streamable HTTP transport specification</seealso>. /// <seealso href="https://modelcontextprotocol.io/specification/2025-11-25/basic/transports#streamable-http">Streamable HTTP transport specification</seealso>.
/// <seealso href="https://modelcontextprotocol.io/specification/2024-11-05/basic/transports#http-with-sse">HTTP with SSE transport specification</seealso>. /// <seealso href="https://modelcontextprotocol.io/specification/2024-11-05/basic/transports#http-with-sse">HTTP with SSE transport specification</seealso>.
public HttpTransportMode TransportMode { get; set; } = HttpTransportMode.AutoDetect; public HttpTransportMode TransportMode { get; set; } = HttpTransportMode.AutoDetect;

View file

@ -178,10 +178,10 @@ public class MapMcpStreamableHttpTests(ITestOutputHelper outputHelper) : MapMcpT
await using var mcpClient = await ConnectAsync(clientOptions: new() 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.ListToolsAsync(cancellationToken: TestContext.Current.CancellationToken);
await mcpClient.DisposeAsync(); 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 // 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. // initialized notification and the tools/list call at a minimum.
Assert.True(protocolVersionHeaderValues.Count > 1); 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] [Fact]

View file

@ -217,7 +217,7 @@ public class StreamableHttpClientConformanceTests(ITestOutputHelper outputHelper
{ {
const string sessionId = "resume-session-123"; const string sessionId = "resume-session-123";
const string resumeInstructions = "Use cached instructions"; const string resumeInstructions = "Use cached instructions";
const string resumeProtocolVersion = "2025-06-18"; const string resumeProtocolVersion = "2025-11-25";
var resumeServer = await StartResumeServerAsync(sessionId); var resumeServer = await StartResumeServerAsync(sessionId);
await using var transport = new HttpClientTransport(new() await using var transport = new HttpClientTransport(new()

View file

@ -26,7 +26,7 @@ Content-Type: application/json
"version": "0.1.0" "version": "0.1.0"
}, },
"capabilities": {}, "capabilities": {},
"protocolVersion": "2025-06-18" "protocolVersion": "2025-11-25"
} }
} }
@ -37,7 +37,7 @@ Content-Type: application/json
POST {{HostAddress}}/ POST {{HostAddress}}/
Accept: application/json, text/event-stream Accept: application/json, text/event-stream
Content-Type: application/json Content-Type: application/json
MCP-Protocol-Version: 2025-06-18 MCP-Protocol-Version: 2025-11-25
Mcp-Session-Id: {{SessionId}} Mcp-Session-Id: {{SessionId}}
{ {
@ -51,7 +51,7 @@ Mcp-Session-Id: {{SessionId}}
POST {{HostAddress}}/ POST {{HostAddress}}/
Accept: application/json, text/event-stream Accept: application/json, text/event-stream
Content-Type: application/json Content-Type: application/json
MCP-Protocol-Version: 2025-06-18 MCP-Protocol-Version: 2025-11-25
Mcp-Session-Id: {{SessionId}} Mcp-Session-Id: {{SessionId}}
{ {
@ -65,7 +65,7 @@ Mcp-Session-Id: {{SessionId}}
POST {{HostAddress}}/ POST {{HostAddress}}/
Accept: application/json, text/event-stream Accept: application/json, text/event-stream
Content-Type: application/json Content-Type: application/json
MCP-Protocol-Version: 2025-06-18 MCP-Protocol-Version: 2025-11-25
Mcp-Session-Id: {{SessionId}} Mcp-Session-Id: {{SessionId}}
{ {

View file

@ -585,7 +585,7 @@ public class McpClientTests : ClientServerTestBase
[Theory] [Theory]
[InlineData(null)] [InlineData(null)]
[InlineData("2025-03-26")] [InlineData("2025-06-18")]
public async Task ReturnsNegotiatedProtocolVersion(string? protocolVersion) public async Task ReturnsNegotiatedProtocolVersion(string? protocolVersion)
{ {
await using McpClient client = await CreateMcpClientForServer(new() { ProtocolVersion = protocolVersion }); await using McpClient client = await CreateMcpClientForServer(new() { ProtocolVersion = protocolVersion });