From 4385805c8cc855f1fad9304807b74787b4c1def7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 15 Dec 2025 16:17:00 +0000 Subject: [PATCH 1/4] Initial plan From 11e43eb95f3d7572e31516c460ed201c1743471c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 15 Dec 2025 16:47:23 +0000 Subject: [PATCH 2/4] Add missing exception documentation to McpSession, McpClient, and McpServer public APIs Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com> --- .../Client/McpClient.Methods.cs | 30 +++++++++++++++++++ .../Client/McpClientPrompt.cs | 1 + .../Client/McpClientResource.cs | 1 + .../Client/McpClientResourceTemplate.cs | 1 + .../McpSession.Methods.cs | 3 ++ src/ModelContextProtocol.Core/McpSession.cs | 2 ++ .../Server/McpServer.Methods.cs | 5 ++++ 7 files changed, 43 insertions(+) diff --git a/src/ModelContextProtocol.Core/Client/McpClient.Methods.cs b/src/ModelContextProtocol.Core/Client/McpClient.Methods.cs index d7da8989b..d12f65c8d 100644 --- a/src/ModelContextProtocol.Core/Client/McpClient.Methods.cs +++ b/src/ModelContextProtocol.Core/Client/McpClient.Methods.cs @@ -22,6 +22,7 @@ public abstract partial class McpClient : McpSession /// An that's connected to the specified server. /// is . /// An error occurred while connecting to the server over HTTP. + /// The server returned an error response during initialization. /// /// /// When using an HTTP-based transport (such as ), this method may throw @@ -139,6 +140,7 @@ public ValueTask PingAsync( /// Optional request options including metadata, serialization settings, and progress tracking. /// The to monitor for cancellation requests. The default is . /// A list of all available tools as instances. + /// The request failed or the server returned an error response. public async ValueTask> ListToolsAsync( RequestOptions? options = null, CancellationToken cancellationToken = default) @@ -168,6 +170,7 @@ public async ValueTask> ListToolsAsync( /// The to monitor for cancellation requests. The default is . /// The result of the request as provided by the server. /// is . + /// The request failed or the server returned an error response. /// /// The overload retrieves all tools by automatically handling pagination. /// This overload works with the lower-level and , returning the raw result from the server. @@ -193,6 +196,7 @@ public ValueTask ListToolsAsync( /// Optional request options including metadata, serialization settings, and progress tracking. /// The to monitor for cancellation requests. The default is . /// A list of all available prompts as instances. + /// The request failed or the server returned an error response. public async ValueTask> ListPromptsAsync( RequestOptions? options = null, CancellationToken cancellationToken = default) @@ -222,6 +226,7 @@ public async ValueTask> ListPromptsAsync( /// The to monitor for cancellation requests. The default is . /// The result of the request as provided by the server. /// is . + /// The request failed or the server returned an error response. /// /// The overload retrieves all prompts by automatically handling pagination. /// This overload works with the lower-level and , returning the raw result from the server. @@ -251,6 +256,7 @@ public ValueTask ListPromptsAsync( /// A task containing the prompt's result with content and messages. /// is . /// is empty or composed entirely of whitespace. + /// The request failed or the server returned an error response. public ValueTask GetPromptAsync( string name, IReadOnlyDictionary? arguments = null, @@ -279,6 +285,7 @@ public ValueTask GetPromptAsync( /// The to monitor for cancellation requests. The default is . /// The result of the request as provided by the server. /// is . + /// The request failed or the server returned an error response. public ValueTask GetPromptAsync( GetPromptRequestParams requestParams, CancellationToken cancellationToken = default) @@ -299,6 +306,7 @@ public ValueTask GetPromptAsync( /// Optional request options including metadata, serialization settings, and progress tracking. /// The to monitor for cancellation requests. The default is . /// A list of all available resource templates as instances. + /// The request failed or the server returned an error response. public async ValueTask> ListResourceTemplatesAsync( RequestOptions? options = null, CancellationToken cancellationToken = default) @@ -328,6 +336,7 @@ public async ValueTask> ListResourceTemplatesAs /// The to monitor for cancellation requests. The default is . /// The result of the request as provided by the server. /// is . + /// The request failed or the server returned an error response. /// /// The overload retrieves all resource templates by automatically handling pagination. /// This overload works with the lower-level and , returning the raw result from the server. @@ -353,6 +362,7 @@ public ValueTask ListResourceTemplatesAsync( /// Optional request options including metadata, serialization settings, and progress tracking. /// The to monitor for cancellation requests. The default is . /// A list of all available resources as instances. + /// The request failed or the server returned an error response. public async ValueTask> ListResourcesAsync( RequestOptions? options = null, CancellationToken cancellationToken = default) @@ -382,6 +392,7 @@ public async ValueTask> ListResourcesAsync( /// The to monitor for cancellation requests. The default is . /// The result of the request as provided by the server. /// is . + /// The request failed or the server returned an error response. /// /// The overload retrieves all resources by automatically handling pagination. /// This overload works with the lower-level and , returning the raw result from the server. @@ -408,6 +419,7 @@ public ValueTask ListResourcesAsync( /// Optional request options including metadata, serialization settings, and progress tracking. /// The to monitor for cancellation requests. The default is . /// is . + /// The request failed or the server returned an error response. public ValueTask ReadResourceAsync( Uri uri, RequestOptions? options = null, CancellationToken cancellationToken = default) { @@ -424,6 +436,7 @@ public ValueTask ReadResourceAsync( /// The to monitor for cancellation requests. The default is . /// is . /// is empty or composed entirely of whitespace. + /// The request failed or the server returned an error response. public ValueTask ReadResourceAsync( string uri, RequestOptions? options = null, CancellationToken cancellationToken = default) { @@ -445,6 +458,7 @@ public ValueTask ReadResourceAsync( /// The to monitor for cancellation requests. The default is . /// or is . /// is empty or composed entirely of whitespace. + /// The request failed or the server returned an error response. public ValueTask ReadResourceAsync( string uriTemplate, IReadOnlyDictionary arguments, RequestOptions? options = null, CancellationToken cancellationToken = default) { @@ -467,6 +481,7 @@ public ValueTask ReadResourceAsync( /// The to monitor for cancellation requests. The default is . /// The result of the request. /// is . + /// The request failed or the server returned an error response. public ValueTask ReadResourceAsync( ReadResourceRequestParams requestParams, CancellationToken cancellationToken = default) @@ -492,6 +507,7 @@ public ValueTask ReadResourceAsync( /// A containing completion suggestions. /// or is . /// is empty or composed entirely of whitespace. + /// The request failed or the server returned an error response. public ValueTask CompleteAsync( Reference reference, string argumentName, string argumentValue, RequestOptions? options = null, CancellationToken cancellationToken = default) @@ -516,6 +532,7 @@ public ValueTask CompleteAsync( /// The to monitor for cancellation requests. The default is . /// The result of the request. /// is . + /// The request failed or the server returned an error response. public ValueTask CompleteAsync( CompleteRequestParams requestParams, CancellationToken cancellationToken = default) @@ -538,6 +555,7 @@ public ValueTask CompleteAsync( /// The to monitor for cancellation requests. The default is . /// A task that represents the asynchronous operation. /// is . + /// The request failed or the server returned an error response. public Task SubscribeToResourceAsync(Uri uri, RequestOptions? options = null, CancellationToken cancellationToken = default) { Throw.IfNull(uri); @@ -554,6 +572,7 @@ public Task SubscribeToResourceAsync(Uri uri, RequestOptions? options = null, Ca /// A task that represents the asynchronous operation. /// is . /// is empty or composed entirely of whitespace. + /// The request failed or the server returned an error response. public Task SubscribeToResourceAsync(string uri, RequestOptions? options = null, CancellationToken cancellationToken = default) { Throw.IfNullOrWhiteSpace(uri); @@ -574,6 +593,7 @@ public Task SubscribeToResourceAsync(string uri, RequestOptions? options = null, /// The to monitor for cancellation requests. The default is . /// The result of the request. /// is . + /// The request failed or the server returned an error response. /// /// /// This method subscribes to resource update notifications but does not register a handler. @@ -612,6 +632,7 @@ public Task SubscribeToResourceAsync( /// and removes the notification handler. /// /// or is . + /// The request failed or the server returned an error response. /// /// /// This method provides a convenient way to subscribe to resource updates and handle notifications in a single call. @@ -647,6 +668,7 @@ public Task SubscribeToResourceAsync( /// /// or is . /// is empty or composed entirely of whitespace. + /// The request failed or the server returned an error response. /// /// /// This method provides a convenient way to subscribe to resource updates and handle notifications in a single call. @@ -742,6 +764,7 @@ public async ValueTask DisposeAsync() /// The to monitor for cancellation requests. The default is . /// A task that represents the asynchronous operation. /// is . + /// The request failed or the server returned an error response. public Task UnsubscribeFromResourceAsync(Uri uri, RequestOptions? options = null, CancellationToken cancellationToken = default) { Throw.IfNull(uri); @@ -758,6 +781,7 @@ public Task UnsubscribeFromResourceAsync(Uri uri, RequestOptions? options = null /// A task that represents the asynchronous operation. /// is . /// is empty or composed entirely of whitespace. + /// The request failed or the server returned an error response. public Task UnsubscribeFromResourceAsync(string uri, RequestOptions? options = null, CancellationToken cancellationToken = default) { Throw.IfNullOrWhiteSpace(uri); @@ -778,6 +802,7 @@ public Task UnsubscribeFromResourceAsync(string uri, RequestOptions? options = n /// The to monitor for cancellation requests. The default is . /// The result of the request. /// is . + /// The request failed or the server returned an error response. public Task UnsubscribeFromResourceAsync( UnsubscribeRequestParams requestParams, CancellationToken cancellationToken = default) @@ -802,6 +827,7 @@ public Task UnsubscribeFromResourceAsync( /// The to monitor for cancellation requests. The default is . /// The from the tool execution. /// is . + /// The request failed or the server returned an error response. public ValueTask CallToolAsync( string toolName, IReadOnlyDictionary? arguments = null, @@ -871,6 +897,7 @@ async ValueTask SendRequestWithProgressAsync( /// The to monitor for cancellation requests. The default is . /// The result of the request. /// is . + /// The request failed or the server returned an error response. public ValueTask CallToolAsync( CallToolRequestParams requestParams, CancellationToken cancellationToken = default) @@ -892,6 +919,7 @@ public ValueTask CallToolAsync( /// Optional request options including metadata, serialization settings, and progress tracking. /// The to monitor for cancellation requests. The default is . /// A task representing the asynchronous operation. + /// The request failed or the server returned an error response. public Task SetLoggingLevelAsync(LogLevel level, RequestOptions? options = null, CancellationToken cancellationToken = default) => SetLoggingLevelAsync(McpServerImpl.ToLoggingLevel(level), options, cancellationToken); @@ -902,6 +930,7 @@ public Task SetLoggingLevelAsync(LogLevel level, RequestOptions? options = null, /// Optional request options including metadata, serialization settings, and progress tracking. /// The to monitor for cancellation requests. The default is . /// A task representing the asynchronous operation. + /// The request failed or the server returned an error response. public Task SetLoggingLevelAsync(LoggingLevel level, RequestOptions? options = null, CancellationToken cancellationToken = default) { return SetLoggingLevelAsync( @@ -920,6 +949,7 @@ public Task SetLoggingLevelAsync(LoggingLevel level, RequestOptions? options = n /// The to monitor for cancellation requests. The default is . /// The result of the request. /// is . + /// The request failed or the server returned an error response. public Task SetLoggingLevelAsync( SetLevelRequestParams requestParams, CancellationToken cancellationToken = default) diff --git a/src/ModelContextProtocol.Core/Client/McpClientPrompt.cs b/src/ModelContextProtocol.Core/Client/McpClientPrompt.cs index 448f53737..7ba91c3d3 100644 --- a/src/ModelContextProtocol.Core/Client/McpClientPrompt.cs +++ b/src/ModelContextProtocol.Core/Client/McpClientPrompt.cs @@ -77,6 +77,7 @@ public McpClientPrompt(McpClient client, Prompt prompt) /// The serialization options governing argument serialization. /// The to monitor for cancellation requests. The default is . /// A containing the prompt's result with content and messages. + /// The request failed or the server returned an error response. /// /// /// This method sends a request to the MCP server to execute this prompt with the provided arguments. diff --git a/src/ModelContextProtocol.Core/Client/McpClientResource.cs b/src/ModelContextProtocol.Core/Client/McpClientResource.cs index c8c4c75d6..a74cc2302 100644 --- a/src/ModelContextProtocol.Core/Client/McpClientResource.cs +++ b/src/ModelContextProtocol.Core/Client/McpClientResource.cs @@ -76,6 +76,7 @@ public McpClientResource(McpClient client, Resource resource) /// /// The to monitor for cancellation requests. The default is . /// A containing the resource's result with content and messages. + /// The request failed or the server returned an error response. /// /// /// This is a convenience method that internally calls . diff --git a/src/ModelContextProtocol.Core/Client/McpClientResourceTemplate.cs b/src/ModelContextProtocol.Core/Client/McpClientResourceTemplate.cs index c9eb1fb7c..b0214da42 100644 --- a/src/ModelContextProtocol.Core/Client/McpClientResourceTemplate.cs +++ b/src/ModelContextProtocol.Core/Client/McpClientResourceTemplate.cs @@ -80,6 +80,7 @@ public McpClientResourceTemplate(McpClient client, ResourceTemplate resourceTemp /// /// The to monitor for cancellation requests. The default is . /// A containing the resource template's result with content and messages. + /// The request failed or the server returned an error response. public ValueTask ReadAsync( IReadOnlyDictionary arguments, CancellationToken cancellationToken = default) => diff --git a/src/ModelContextProtocol.Core/McpSession.Methods.cs b/src/ModelContextProtocol.Core/McpSession.Methods.cs index 3bba48b17..b52aadbc8 100644 --- a/src/ModelContextProtocol.Core/McpSession.Methods.cs +++ b/src/ModelContextProtocol.Core/McpSession.Methods.cs @@ -18,6 +18,9 @@ public abstract partial class McpSession : IAsyncDisposable /// The options governing request serialization. /// The to monitor for cancellation requests. The default is . /// A task that represents the asynchronous operation. The task result contains the deserialized result. + /// is . + /// is empty or composed entirely of whitespace. + /// The request failed or the server returned an error response. public ValueTask SendRequestAsync( string method, TParameters parameters, diff --git a/src/ModelContextProtocol.Core/McpSession.cs b/src/ModelContextProtocol.Core/McpSession.cs index b0469aec0..63d218f4e 100644 --- a/src/ModelContextProtocol.Core/McpSession.cs +++ b/src/ModelContextProtocol.Core/McpSession.cs @@ -86,6 +86,8 @@ public abstract partial class McpSession : IAsyncDisposable /// The notification method. /// The handler to be invoked. /// An that will remove the registered handler when disposed. + /// or is . + /// is empty or composed entirely of whitespace. public abstract IAsyncDisposable RegisterNotificationHandler(string method, Func handler); /// diff --git a/src/ModelContextProtocol.Core/Server/McpServer.Methods.cs b/src/ModelContextProtocol.Core/Server/McpServer.Methods.cs index cd052d0ee..7caabf686 100644 --- a/src/ModelContextProtocol.Core/Server/McpServer.Methods.cs +++ b/src/ModelContextProtocol.Core/Server/McpServer.Methods.cs @@ -52,6 +52,7 @@ public static McpServer Create( /// A task containing the sampling result from the client. /// is . /// The client does not support sampling. + /// The request failed or the client returned an error response. public ValueTask SampleAsync( CreateMessageRequestParams requestParams, CancellationToken cancellationToken = default) @@ -76,6 +77,7 @@ public ValueTask SampleAsync( /// A task containing the chat response from the model. /// is . /// The client does not support sampling. + /// The request failed or the client returned an error response. public async Task SampleAsync( IEnumerable messages, ChatOptions? chatOptions = default, CancellationToken cancellationToken = default) { @@ -222,6 +224,7 @@ public ILoggerProvider AsClientLoggerProvider() => /// A task containing the list of roots exposed by the client. /// is . /// The client does not support roots. + /// The request failed or the client returned an error response. public ValueTask RequestRootsAsync( ListRootsRequestParams requestParams, CancellationToken cancellationToken = default) @@ -245,6 +248,7 @@ public ValueTask RequestRootsAsync( /// A task containing the elicitation result. /// is . /// The client does not support elicitation. + /// The request failed or the client returned an error response. public ValueTask ElicitAsync( ElicitRequestParams requestParams, CancellationToken cancellationToken = default) @@ -272,6 +276,7 @@ public ValueTask ElicitAsync( /// is . /// is empty or composed entirely of whitespace. /// The client does not support elicitation. + /// The request failed or the client returned an error response. /// /// Elicitation uses a constrained subset of JSON Schema and only supports strings, numbers/integers, booleans and string enums. /// Unsupported member types are ignored when constructing the schema. From 28aaeab45b631a18386196fe8809364af04269cd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 15 Dec 2025 16:59:12 +0000 Subject: [PATCH 3/4] Add exception docs to HttpClientTransportOptions, StdioClientTransportOptions, ElicitRequestParams, Tool, and McpEndpointRouteBuilderExtensions Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com> --- .../McpEndpointRouteBuilderExtensions.cs | 1 + .../Client/HttpClientTransportOptions.cs | 2 ++ .../Client/StdioClientTransportOptions.cs | 1 + src/ModelContextProtocol.Core/Protocol/ElicitRequestParams.cs | 1 + src/ModelContextProtocol.Core/Protocol/Tool.cs | 2 ++ 5 files changed, 7 insertions(+) diff --git a/src/ModelContextProtocol.AspNetCore/McpEndpointRouteBuilderExtensions.cs b/src/ModelContextProtocol.AspNetCore/McpEndpointRouteBuilderExtensions.cs index 7c05ac102..8c78d7516 100644 --- a/src/ModelContextProtocol.AspNetCore/McpEndpointRouteBuilderExtensions.cs +++ b/src/ModelContextProtocol.AspNetCore/McpEndpointRouteBuilderExtensions.cs @@ -19,6 +19,7 @@ public static class McpEndpointRouteBuilderExtensions /// The web application to attach MCP HTTP endpoints. /// The route pattern prefix to map to. /// 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. /// 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. diff --git a/src/ModelContextProtocol.Core/Client/HttpClientTransportOptions.cs b/src/ModelContextProtocol.Core/Client/HttpClientTransportOptions.cs index 624a14aa1..2e7f97f6b 100644 --- a/src/ModelContextProtocol.Core/Client/HttpClientTransportOptions.cs +++ b/src/ModelContextProtocol.Core/Client/HttpClientTransportOptions.cs @@ -10,6 +10,8 @@ public sealed class HttpClientTransportOptions /// /// Gets or sets the base address of the server for SSE connections. /// + /// is . + /// is not an absolute URI, or does not use the HTTP or HTTPS scheme. public required Uri Endpoint { get; diff --git a/src/ModelContextProtocol.Core/Client/StdioClientTransportOptions.cs b/src/ModelContextProtocol.Core/Client/StdioClientTransportOptions.cs index 94425ebe7..676019e74 100644 --- a/src/ModelContextProtocol.Core/Client/StdioClientTransportOptions.cs +++ b/src/ModelContextProtocol.Core/Client/StdioClientTransportOptions.cs @@ -8,6 +8,7 @@ public sealed class StdioClientTransportOptions /// /// Gets or sets the command to execute to start the server process. /// + /// is , empty, or composed entirely of whitespace. public required string Command { get; diff --git a/src/ModelContextProtocol.Core/Protocol/ElicitRequestParams.cs b/src/ModelContextProtocol.Core/Protocol/ElicitRequestParams.cs index 8f222caa0..fe22ed177 100644 --- a/src/ModelContextProtocol.Core/Protocol/ElicitRequestParams.cs +++ b/src/ModelContextProtocol.Core/Protocol/ElicitRequestParams.cs @@ -20,6 +20,7 @@ public sealed class ElicitRequestParams : RequestParams /// url: Client navigates user to a URL for out-of-band interaction. Sensitive data is not exposed to the client. /// /// + /// is not "form" or "url". [JsonPropertyName("mode")] [field: MaybeNull] public string Mode diff --git a/src/ModelContextProtocol.Core/Protocol/Tool.cs b/src/ModelContextProtocol.Core/Protocol/Tool.cs index 30b1242b5..ecc217c2e 100644 --- a/src/ModelContextProtocol.Core/Protocol/Tool.cs +++ b/src/ModelContextProtocol.Core/Protocol/Tool.cs @@ -39,6 +39,7 @@ public sealed class Tool : IBaseMetadata /// /// Gets or sets a JSON Schema object defining the expected parameters for the tool. /// + /// is not a valid MCP tool JSON schema. /// /// /// The schema must be a valid JSON Schema object with the "type" property set to "object". @@ -73,6 +74,7 @@ public JsonElement InputSchema /// /// Gets or sets a JSON Schema object defining the expected structured outputs for the tool. /// + /// is not a valid MCP tool JSON schema. /// /// /// The schema must be a valid JSON Schema object with the "type" property set to "object". From cea1f2a0021e1fc3906f543fff1218ec19bfb016 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 15 Dec 2025 17:09:41 +0000 Subject: [PATCH 4/4] Fix code review feedback - remove paramref from property setter exception docs Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com> --- .../Client/HttpClientTransportOptions.cs | 4 ++-- .../Client/StdioClientTransportOptions.cs | 2 +- src/ModelContextProtocol.Core/Protocol/ElicitRequestParams.cs | 2 +- src/ModelContextProtocol.Core/Protocol/Tool.cs | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/ModelContextProtocol.Core/Client/HttpClientTransportOptions.cs b/src/ModelContextProtocol.Core/Client/HttpClientTransportOptions.cs index 2e7f97f6b..43b6ef30d 100644 --- a/src/ModelContextProtocol.Core/Client/HttpClientTransportOptions.cs +++ b/src/ModelContextProtocol.Core/Client/HttpClientTransportOptions.cs @@ -10,8 +10,8 @@ public sealed class HttpClientTransportOptions /// /// Gets or sets the base address of the server for SSE connections. /// - /// is . - /// is not an absolute URI, or does not use the HTTP or HTTPS scheme. + /// The value is . + /// The value is not an absolute URI, or does not use the HTTP or HTTPS scheme. public required Uri Endpoint { get; diff --git a/src/ModelContextProtocol.Core/Client/StdioClientTransportOptions.cs b/src/ModelContextProtocol.Core/Client/StdioClientTransportOptions.cs index 676019e74..2d6df08b4 100644 --- a/src/ModelContextProtocol.Core/Client/StdioClientTransportOptions.cs +++ b/src/ModelContextProtocol.Core/Client/StdioClientTransportOptions.cs @@ -8,7 +8,7 @@ public sealed class StdioClientTransportOptions /// /// Gets or sets the command to execute to start the server process. /// - /// is , empty, or composed entirely of whitespace. + /// The value is , empty, or composed entirely of whitespace. public required string Command { get; diff --git a/src/ModelContextProtocol.Core/Protocol/ElicitRequestParams.cs b/src/ModelContextProtocol.Core/Protocol/ElicitRequestParams.cs index fe22ed177..80a71cbeb 100644 --- a/src/ModelContextProtocol.Core/Protocol/ElicitRequestParams.cs +++ b/src/ModelContextProtocol.Core/Protocol/ElicitRequestParams.cs @@ -20,7 +20,7 @@ public sealed class ElicitRequestParams : RequestParams /// url: Client navigates user to a URL for out-of-band interaction. Sensitive data is not exposed to the client. /// /// - /// is not "form" or "url". + /// The value is not "form" or "url". [JsonPropertyName("mode")] [field: MaybeNull] public string Mode diff --git a/src/ModelContextProtocol.Core/Protocol/Tool.cs b/src/ModelContextProtocol.Core/Protocol/Tool.cs index ecc217c2e..dd38eb3f0 100644 --- a/src/ModelContextProtocol.Core/Protocol/Tool.cs +++ b/src/ModelContextProtocol.Core/Protocol/Tool.cs @@ -39,7 +39,7 @@ public sealed class Tool : IBaseMetadata /// /// Gets or sets a JSON Schema object defining the expected parameters for the tool. /// - /// is not a valid MCP tool JSON schema. + /// The value is not a valid MCP tool JSON schema. /// /// /// The schema must be a valid JSON Schema object with the "type" property set to "object". @@ -74,7 +74,7 @@ public JsonElement InputSchema /// /// Gets or sets a JSON Schema object defining the expected structured outputs for the tool. /// - /// is not a valid MCP tool JSON schema. + /// The value is not a valid MCP tool JSON schema. /// /// /// The schema must be a valid JSON Schema object with the "type" property set to "object".