Deprecated Features - ChristianPresley/zig-sdk GitHub Wiki

Deprecated Features

Revision 2026-07-28 keeps some features of older revisions in a deprecated state1. The SDK provides them behind explicit options. All options are off by default, except dynamic client registration in OAuthClient. The specification plans their removal not before 2027-07-28. A later SDK release then removes the options.

Applies to: MCP 2026-07-28, zig-sdk 0.1.0. The checks of sampling requests, the rate limit of log messages and dynamic client registration in AuthorizationServer: zig-sdk 0.2.0. RequestOptions.log_level: zig-sdk 0.4.0.

Server options

Feature Option Effect when on
Sampling through multi round-trip requests Server.Options.mrtr.sampling A handler can ask for sampling/createMessage.
Sampling with tools Server.Options.mrtr.sampling_tools The sampling request can carry tools.
Roots Server.Options.mrtr.roots A handler can ask for roots/list.
Logging Server.Options.capabilities.logging ctx.log sends notifications/message on a request stream when the request set a logLevel.
Dynamic client registration AuthorizationServer.Options.dynamic_registration The authorization server has a registration endpoint and names it in its metadata.

The rate limit limits.rate_limits.log_messages applies to the log messages. The server drops the messages of a caller over the limit and later sends one summary with the count.

The specification keeps the multi round-trip request itself: elicitation stays. The client answers the deprecated input kinds only when it declared them in Client.Options.capabilities and gave the hooks sample and list_roots.

The deprecated features also include the includeContext values thisServer and allServers of a sampling request1. The server sends them only when the client declared the capability sampling.context. Else the request gets -32021. Omit the field or use none.

Before the server sends a sampling request, it checks the tool result rules of the messages2. The client does the same check before it calls the hook sample. See Server Guide and Client Guide.

Client options

Feature Option Effect when on
Log level Client.Options.log_level Every request asks for log messages at this level and above.
Log level of one request RequestOptions.log_level The request asks for log messages at this level and above. It replaces Client.Options.log_level for the request.
Dynamic client registration OAuthClient.Options.registration The default value .dynamic registers the client at the registration endpoint of the authorization server. With .client_metadata_url, the client registers itself only when the authorization server does not support client ID metadata documents. With .pre_registered, the client never registers itself.

What the SDK never provides

  • The initialize handshake. A server answers it with -32601 and a message that names the supported revision.
  • Sessions, the Mcp-Session-Id header and stream resumption with Last-Event-ID.
  • Server-initiated requests. Everything a server needs from a client travels in an InputRequiredResult.
  • The error codes -32002 and -32042.
  • The HTTP+SSE transport of revision 2024-11-051. Use Streamable HTTP.

References

  1. MCP-DEPRECATED-2026-07-28: The deprecated features registry of revision 2026-07-28.
  2. MCP-SAMPLING-2026-07-28: Sampling, the rules for tool uses and tool results.
⚠️ **GitHub.com Fallback** ⚠️