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:
Rob Chambers 2025-04-09 22:30:44 -07:00 • committed by GitHub
commit 77871c5aac
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,37 +1,59 @@

using ModelContextProtocol.Protocol.Types;
namespace ModelContextProtocol.Server;
/// <summary>
/// Configuration options for the MCP server. This is passed to the client during the initialization sequence, letting it know about the server's capabilities and
/// protocol version.
/// <see href="https://spec.modelcontextprotocol.io/specification/2024-11-05/basic/lifecycle/">See the protocol specification for details on capability negotiation</see>
/// Provides configuration options for the MCP server.
/// </summary>
public class McpServerOptions
{
/// <summary>
/// Information about this server implementation.
/// Gets or sets information about this server implementation, including its name and version.
/// </summary>
/// <remarks>
/// This information is sent to the client during initialization to identify the server.
/// It's displayed in client logs and can be used for debugging and compatibility checks.
/// </remarks>
public Implementation? ServerInfo { get; set; }
/// <summary>
/// Server capabilities to advertise to the server.
/// Gets or sets server capabilities to advertise to the client.
/// </summary>
/// <remarks>
/// These determine which features will be available when a client connects.
/// Capabilities can include "tools", "prompts", "resources", "logging", and other
/// protocol-specific functionality.
/// </remarks>
public ServerCapabilities? Capabilities { get; set; }
/// <summary>
/// Protocol version to request from the server.
/// Gets or sets the protocol version supported by this server, using a date-based versioning scheme.
/// </summary>
/// <remarks>
/// The protocol version defines which features and message formats this server supports.
/// This uses a date-based versioning scheme in the format "YYYY-MM-DD".
/// </remarks>
public string ProtocolVersion { get; set; } = "2024-11-05";
/// <summary>
/// Timeout for initialization sequence.
/// Gets or sets a timeout used for the client-server initialization handshake sequence.
/// </summary>
/// <remarks>
/// This timeout determines how long the server will wait for client responses during
/// the initialization protocol handshake. If the client doesn't respond within this timeframe,
/// the initialization process will be aborted.
/// </remarks>
public TimeSpan InitializationTimeout { get; set; } = TimeSpan.FromSeconds(60);
/// <summary>
/// Optional server instructions to send to clients
/// Gets or sets optional server instructions to send to clients.
/// </summary>
public string ServerInstructions { get; set; } = string.Empty;
/// <remarks>
/// These instructions are sent to clients during the initialization handshake and provide
/// guidance on how to effectively use the server's capabilities. They can include details
/// about available tools, expected input formats, limitations, or other helpful information.
/// Client applications typically use these instructions as system messages for LLM interactions
/// to provide context about available functionality.
/// </remarks>
public string? ServerInstructions { get; set; }
}