Add Extensions support to ClientCapabilities and ServerCapabilities (#1317)
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:
parent
79b2dbeb20
commit
c2aa6a5123
2 changed files with 164 additions and 3 deletions
|
|
@ -93,4 +93,31 @@ public sealed class ClientCapabilities
|
|||
[JsonInclude]
|
||||
[JsonPropertyName("tasks")]
|
||||
internal McpTasksCapability? TasksCore { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets optional MCP extensions that the client supports.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// <para>
|
||||
/// Keys are extension identifiers in reverse domain notation with an extension name
|
||||
/// (e.g., <c>"io.modelcontextprotocol/oauth-client-credentials"</c>), and values are
|
||||
/// per-extension settings objects. An empty object indicates support with no additional settings.
|
||||
/// </para>
|
||||
/// <para>
|
||||
/// Extensions provide a framework for extending the Model Context Protocol while maintaining
|
||||
/// interoperability. Clients advertise extension support via this field during the initialization handshake.
|
||||
/// </para>
|
||||
/// </remarks>
|
||||
[Experimental(Experimentals.Extensions_DiagnosticId, UrlFormat = Experimentals.Extensions_Url)]
|
||||
[JsonIgnore]
|
||||
public IDictionary<string, object>? Extensions
|
||||
{
|
||||
get => ExtensionsCore;
|
||||
set => ExtensionsCore = value;
|
||||
}
|
||||
|
||||
// See ExperimentalInternalPropertyTests.cs before modifying this property.
|
||||
[JsonInclude]
|
||||
[JsonPropertyName("extensions")]
|
||||
internal IDictionary<string, object>? ExtensionsCore { get; set; }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -92,4 +92,31 @@ public sealed class ServerCapabilities
|
|||
[JsonInclude]
|
||||
[JsonPropertyName("tasks")]
|
||||
internal McpTasksCapability? TasksCore { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets optional MCP extensions that the server supports.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// <para>
|
||||
/// Keys are extension identifiers in reverse domain notation with an extension name
|
||||
/// (e.g., <c>"io.modelcontextprotocol/apps"</c>), and values are per-extension settings
|
||||
/// objects. An empty object indicates support with no additional settings.
|
||||
/// </para>
|
||||
/// <para>
|
||||
/// Extensions provide a framework for extending the Model Context Protocol while maintaining
|
||||
/// interoperability. Servers advertise extension support via this field during the initialization handshake.
|
||||
/// </para>
|
||||
/// </remarks>
|
||||
[Experimental(Experimentals.Extensions_DiagnosticId, UrlFormat = Experimentals.Extensions_Url)]
|
||||
[JsonIgnore]
|
||||
public IDictionary<string, object>? Extensions
|
||||
{
|
||||
get => ExtensionsCore;
|
||||
set => ExtensionsCore = value;
|
||||
}
|
||||
|
||||
// See ExperimentalInternalPropertyTests.cs before modifying this property.
|
||||
[JsonInclude]
|
||||
[JsonPropertyName("extensions")]
|
||||
internal IDictionary<string, object>? ExtensionsCore { get; set; }
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue