AI seeded comments from robch and then edited by stephentoub (#238)
* AI generated `///` comment updates * Fix compilation issues * Fix incorrect XML comment structure * Update all Client comments * Update all Configuration comments * Update all Messages comments * Update all Transport comments * Update all Types comments * Update all Server comments * Undo some commenting --------- Co-authored-by: Stephen Toub <stoub@microsoft.com>
This commit is contained in:
parent
07300389ee
commit
77871c5aac
1 changed files with 4017 additions and 1066 deletions
|
|
@ -1,4 +1,6 @@
|
|||
using ModelContextProtocol.Protocol.Messages;
|
||||
using ModelContextProtocol.Client;
|
||||
using ModelContextProtocol.Protocol.Messages;
|
||||
using ModelContextProtocol.Server;
|
||||
using ModelContextProtocol.Utils;
|
||||
using ModelContextProtocol.Utils.Json;
|
||||
using System.Text.Json;
|
||||
|
|
@ -7,7 +9,19 @@ using System.Text.Json.Serialization.Metadata;
|
|||
|
||||
namespace ModelContextProtocol;
|
||||
|
||||
/// <summary>Provides extension methods for interacting with an <see cref="IMcpEndpoint"/>.</summary>
|
||||
/// <summary>
|
||||
/// Provides extension methods for interacting with an <see cref="IMcpEndpoint"/>.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// <para>
|
||||
/// This class provides strongly-typed methods for working with the Model Context Protocol (MCP) endpoints,
|
||||
/// simplifying JSON-RPC communication by handling serialization and deserialization of parameters and results.
|
||||
/// </para>
|
||||
/// <para>
|
||||
/// These extension methods are designed to be used with both client (<see cref="IMcpClient"/>) and
|
||||
/// server (<see cref="IMcpServer"/>) implementations of the <see cref="IMcpEndpoint"/> interface.
|
||||
/// </para>
|
||||
/// </remarks>
|
||||
public static class McpEndpointExtensions
|
||||
{
|
||||
/// <summary>
|
||||
|
|
@ -83,11 +97,19 @@ public static class McpEndpointExtensions
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sends a notification to the server with no parameters.
|
||||
/// Sends a parameterless notification to the connected endpoint.
|
||||
/// </summary>
|
||||
/// <param name="client">The client.</param>
|
||||
/// <param name="client">The MCP client or server instance.</param>
|
||||
/// <param name="method">The notification method name.</param>
|
||||
/// <param name="cancellationToken">The <see cref="CancellationToken"/> to monitor for cancellation requests. The default is <see cref="CancellationToken.None"/>.</param>
|
||||
/// <returns>A task that represents the asynchronous send operation.</returns>
|
||||
/// <remarks>
|
||||
/// <para>
|
||||
/// This method sends a notification without any parameters. Notifications are one-way messages
|
||||
/// that don't expect a response. They are commonly used for events, status updates, or to signal
|
||||
/// changes in state.
|
||||
/// </para>
|
||||
/// </remarks>
|
||||
public static Task SendNotificationAsync(this IMcpEndpoint client, string method, CancellationToken cancellationToken = default)
|
||||
{
|
||||
Throw.IfNull(client);
|
||||
|
|
@ -96,13 +118,29 @@ public static class McpEndpointExtensions
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sends a notification to the server with parameters.
|
||||
/// Sends a notification with parameters to the connected endpoint.
|
||||
/// </summary>
|
||||
/// <typeparam name="TParameters">The type of the notification parameters to serialize.</typeparam>
|
||||
/// <param name="endpoint">The MCP client or server instance.</param>
|
||||
/// <param name="method">The JSON-RPC method name to invoke.</param>
|
||||
/// <param name="parameters">Object representing the request parameters.</param>
|
||||
/// <param name="serializerOptions">The options governing request serialization.</param>
|
||||
/// <param name="method">The JSON-RPC method name for the notification.</param>
|
||||
/// <param name="parameters">Object representing the notification parameters.</param>
|
||||
/// <param name="serializerOptions">The options governing parameter serialization. If null, default options are used.</param>
|
||||
/// <param name="cancellationToken">The <see cref="CancellationToken"/> to monitor for cancellation requests. The default is <see cref="CancellationToken.None"/>.</param>
|
||||
/// <returns>A task that represents the asynchronous send operation.</returns>
|
||||
/// <remarks>
|
||||
/// <para>
|
||||
/// This method sends a notification with parameters to the connected endpoint. Notifications are one-way
|
||||
/// messages that don't expect a response, commonly used for events, status updates, or signaling changes.
|
||||
/// </para>
|
||||
/// <para>
|
||||
/// The parameters object is serialized to JSON according to the provided serializer options or the default
|
||||
/// options if none are specified.
|
||||
/// </para>
|
||||
/// <para>
|
||||
/// The Model Context Protocol defines several standard notification methods in <see cref="NotificationMethods"/>,
|
||||
/// but custom methods can also be used for application-specific notifications.
|
||||
/// </para>
|
||||
/// </remarks>
|
||||
public static Task SendNotificationAsync<TParameters>(
|
||||
this IMcpEndpoint endpoint,
|
||||
string method,
|
||||
|
|
@ -140,13 +178,25 @@ public static class McpEndpointExtensions
|
|||
return endpoint.SendMessageAsync(new JsonRpcNotification { Method = method, Params = parametersJson }, cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>Notifies the connected endpoint of progress.</summary>
|
||||
/// <summary>
|
||||
/// Notifies the connected endpoint of progress for a long-running operation.
|
||||
/// </summary>
|
||||
/// <param name="endpoint">The endpoint issuing the notification.</param>
|
||||
/// <param name="progressToken">The <see cref="ProgressToken"/> identifying the operation.</param>
|
||||
/// <param name="progress">The progress update to send.</param>
|
||||
/// <param name="progressToken">The <see cref="ProgressToken"/> identifying the operation for which progress is being reported.</param>
|
||||
/// <param name="progress">The progress update to send, containing information such as percentage complete or status message.</param>
|
||||
/// <param name="cancellationToken">The <see cref="CancellationToken"/> to monitor for cancellation requests. The default is <see cref="CancellationToken.None"/>.</param>
|
||||
/// <returns>A task representing the completion of the operation.</returns>
|
||||
/// <returns>A task representing the completion of the notification operation (not the operation being tracked).</returns>
|
||||
/// <exception cref="ArgumentNullException"><paramref name="endpoint"/> is <see langword="null"/>.</exception>
|
||||
/// <remarks>
|
||||
/// <para>
|
||||
/// This method sends a progress notification to the connected endpoint using the Model Context Protocol's
|
||||
/// standardized progress notification format. Progress updates are identified by a <see cref="ProgressToken"/>
|
||||
/// that allows the recipient to correlate multiple updates with a specific long-running operation.
|
||||
/// </para>
|
||||
/// <para>
|
||||
/// Progress notifications are sent asynchronously and don't block the operation from continuing.
|
||||
/// </para>
|
||||
/// </remarks>
|
||||
public static Task NotifyProgressAsync(
|
||||
this IMcpEndpoint endpoint,
|
||||
ProgressToken progressToken,
|
||||
|
|
|
|||
Loading…
Reference in a new issue