pub enum Feature {
Show 39 variants
Tools,
ToolsListChanged,
ToolAnnotations,
ToolStructuredOutput,
ToolResourceLinks,
ToolAnnotationsLastModified,
ToolResourceLinkIcons,
ToolAudioContent,
ToolResultType,
Resources,
ResourcesListChanged,
ResourcesSubscribe,
Prompts,
PromptsListChanged,
Completions,
Roots,
RootsListChanged,
Sampling,
SamplingContext,
SamplingTools,
Elicitation,
ElicitationForm,
ElicitationUrl,
Logging,
JsonRpcBatching,
StreamableHttp,
LegacySse,
McpProtocolVersionHeader,
MetaExtensions,
StatelessLifecycle,
ServerDiscover,
SubscriptionsListen,
StandardRoutingHeaders,
ResponseCaching,
MultiRoundTripRequests,
Ping,
Tasks,
Extensions,
Experimental,
}Expand description
A protocol behaviour a session may have.
Variants§
Tools
tools/list and tools/call. Every revision, every transport.
ToolsListChanged
tools.list_changed, gated on the server advertising it.
ToolAnnotations
Tool annotations — read-only, destructive, and so on. 2025-03-26.
ToolStructuredOutput
structuredContent on a tool result. 2025-06-18.
ToolResourceLinks
Resource links in a tool call result. 2025-06-18.
ToolAnnotationsLastModified
annotations.lastModified on a content block. 2025-06-18.
Separate from ToolAnnotations because the two gate different
revisions: annotations as a field exist in 2024-11-05, untyped, while
lastModified first appears in the typed form at 2025-06-18. A value
carrying only audience or priority needs the older feature alone.
ToolResourceLinkIcons
icons on a resource link. 2025-11-25, SEP-973.
https://github.com/modelcontextprotocol/modelcontextprotocol/issues/973
ToolAudioContent
Audio content blocks. 2025-03-26.
ToolResultType
resultType on tool results. 2026-07-28, required rather than
optional there.
Resources
resources/list, resources/read, resources/templates/list. Every
revision.
ResourcesListChanged
resources.list_changed.
ResourcesSubscribe
Server-to-client resource change notifications. The capability survives
2026-07-28 even though the methods behind it are replaced.
Prompts
prompts/list and prompts/get. Every revision.
PromptsListChanged
prompts.list_changed.
Completions
completion/complete. 2025-03-26.
Roots
roots/list. Deprecated 2026-07-28 but still defined.
RootsListChanged
notifications/roots/list_changed. Removed in 2026-07-28.
Sampling
sampling/createMessage. Deprecated 2026-07-28 but still defined.
SamplingContext
Sampling with includeContext. 2025-11-25.
SamplingTools
Sampling with tools and toolChoice. 2025-11-25, SEP-1577.
Elicitation
elicitation/create. 2025-06-18.
ElicitationForm
Form-mode elicitation with the SEP-1330 schema shapes. 2025-11-25.
ElicitationUrl
URL-mode elicitation. 2025-11-25, SEP-1036. The completion
notification behind it is removed in 2026-07-28; the capability is
not.
Logging
logging/setLevel and notifications/message. Deprecated 2026-07-28,
which also removes the method and moves log level into _meta.
JsonRpcBatching
JSON-RPC batching. Added 2025-03-26, removed 2025-06-18.
StreamableHttp
The Streamable HTTP transport. 2025-03-26.
LegacySse
The legacy HTTP+SSE transport. 2024-11-05 only; replaced in
2025-03-26, reclassified as Deprecated in 2026-07-28.
McpProtocolVersionHeader
The MCP-Protocol-Version header on subsequent HTTP requests.
2025-06-18.
MetaExtensions
_meta on interface types. 2025-06-18.
StatelessLifecycle
The stateless lifecycle: no initialize handshake, version and
capabilities in _meta on every request. 2026-07-28, SEP-2575.
ServerDiscover
server/discover. 2026-07-28, SEP-2575.
SubscriptionsListen
subscriptions/listen, replacing the HTTP GET endpoint and
resources/subscribe. 2026-07-28, SEP-2575.
StandardRoutingHeaders
Mcp-Method and Mcp-Name routing headers. 2026-07-28, SEP-2243.
ResponseCaching
ttlMs and cacheScope on cacheable results. 2026-07-28, SEP-2549.
MultiRoundTripRequests
The multi-round-trip request pattern, which is what the removal of
notifications/elicitation/complete is predicated on. 2026-07-28.
Ping
ping. Removed in 2026-07-28, SEP-2575.
Tasks
The tasks capability, core-protocol only. Added 2025-11-25 (SEP-1686),
removed from the core in 2026-07-28 when it moves to the
io.modelcontextprotocol/tasks extension (SEP-2663).
Extensions
The extensions capability bag. 2026-07-28, SEP-2575.
Experimental
The experimental capability bag. Every revision.