Class ServerCapabilities
- Namespace
- ModelContextProtocol.Protocol
- Assembly
- ModelContextProtocol.Core.dll
Represents the capabilities that a server supports.
public sealed class ServerCapabilities
- Inheritance
-
ServerCapabilities
- Inherited Members
Remarks
Server capabilities define the features and functionality available when clients connect. These capabilities are advertised to clients during the initialize handshake.
See the schema for details.
Properties
Completions
Gets or sets a server's completions capability for supporting argument auto-completion suggestions.
[JsonPropertyName("completions")]
public CompletionsCapability? Completions { get; set; }
Property Value
Experimental
Gets or sets experimental, non-standard capabilities that the server supports.
[JsonPropertyName("experimental")]
public IDictionary<string, object>? Experimental { get; set; }
Property Value
Remarks
The Experimental dictionary allows servers to advertise support for features that are not yet standardized in the Model Context Protocol specification. This extension mechanism enables future protocol enhancements while maintaining backward compatibility.
Values in this dictionary are implementation-specific and should be coordinated between client and server implementations. Clients should not assume the presence of any experimental capability without checking for it first.
Extensions
Gets or sets optional MCP extensions that the server supports.
[JsonPropertyName("extensions")]
public IDictionary<string, object>? Extensions { get; set; }
Property Value
Remarks
Keys are extension identifiers in reverse domain notation with an extension name
(e.g., "io.modelcontextprotocol/apps"), and values are per-extension settings
objects. An empty object indicates support with no additional settings.
Extensions provide a framework for extending the Model Context Protocol while maintaining interoperability. Servers advertise extension support via this field during the initialization handshake.
Logging
Gets or sets a server's logging capability for sending log messages to the client.
[JsonPropertyName("logging")]
[Obsolete("The Logging feature is deprecated as of specification version 2026-07-28 and may be removed in a future version. See SEP-2577 for more information.", DiagnosticId = "MCP9005", UrlFormat = "https://github.com/modelcontextprotocol/csharp-sdk/blob/main/docs/list-of-diagnostics.md#obsolete-apis")]
public LoggingCapability? Logging { get; set; }
Property Value
Prompts
Gets or sets a server's prompts capability for serving predefined prompt templates that clients can discover and use.
[JsonPropertyName("prompts")]
public PromptsCapability? Prompts { get; set; }
Property Value
Resources
Gets or sets a server's resources capability for serving predefined resources that clients can discover and use.
[JsonPropertyName("resources")]
public ResourcesCapability? Resources { get; set; }
Property Value
Tools
Gets or sets a server's tools capability for listing tools that a client is able to invoke.
[JsonPropertyName("tools")]
public ToolsCapability? Tools { get; set; }