Skip to content

[Server][Client][Docs] SEP-2577: Mark Roots/Sampling/Logging @deprecated, emit notices, document migration #365

@chr-hertel

Description

@chr-hertel

Implements SEP-2577 for the MCP Spec 2026-07-28 release.

Tracked by umbrella #339.

Spec summary

Three core features are formally deprecated: Roots (server→client list/subscribe), Sampling (server→client LLM completion), and Logging (server→client log notifications). No wire-level changes — advisory only. All three remain fully functional for at least 12 months past this spec version (~through 2027-07).

PHP SDK changes

  • Implementations stay. SDK MUST continue supporting all three: SetLogLevelHandler, sampling Fiber suspend/resume in Server/Protocol.php, roots in src/Client/Handler/.
  • Annotate @deprecated on public API surfaces:
    • Server::builder() paths related to logging
    • Sampling-related types in Schema/
    • Client listRoots/rootsListChanged handlers
    • Use the format from SEP-2596: @deprecated Since spec 2026-07-28; will be removed no earlier than 2027-07-28
  • Emit runtime deprecation notices (E_USER_DEPRECATED and/or PSR-3 notice) when these capabilities are advertised in InitializeHandler initialize result, or at server-builder time when registered.
  • Docs: Add deprecation banners in docs/server-client-communication.md and docs/mcp-elements.md pointing to alternatives (stderr / OpenTelemetry for logging; tool parameters for roots).
  • Consider opt-out: disableDeprecatedFeatures() builder flag.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    2026-07-28All issues and PRs related to the spec release 2026-07-28ClientIssues & PRs related to the Client componentP1Significant bug affecting many users, highly requested featureServerIssues & PRs related to the Server componentdocumentationImprovements or additions to documentationenhancementRequest for a new feature that's not currently supportedimproves spec complianceImproves consistency with other SDKs such as TyepScript

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions