{
  "title": "MCP Protocol Deprecation Register",
  "schemaVersion": "1.0",
  "researchFreeze": "2026-08-26",
  "protocolRevision": "2026-07-28",
  "freshnessNote": "Current deprecation and removal status requires a publication-time live check.",
  "normalizationNote": "Seven package rows are preserved with snapshots. Current-registry corrections update HTTP+SSE timing, migration and removal-window language, and add the omitted Sampling includeContext values as an eighth editorial supplemental record.",
  "currentRegistry": "https://modelcontextprotocol.io/specification/2026-07-28/deprecated",
  "count": 8,
  "records": [
    {
      "id": "R7-DEP01",
      "feature": "HTTP+SSE transport",
      "firstAvailable": "2024-11-05",
      "recordKind": "deprecation",
      "changeKind": "deprecated",
      "changeRevision": "2025-03-26",
      "deprecatedIn": "2025-03-26",
      "statusAtVerification": "Deprecated, not removed; reclassified under the SEP-2596 transition provisions in 2026.",
      "migrationTarget": "Streamable HTTP",
      "earliestRemoval": "Three months after SEP-2596 reaches Final.",
      "packageSourceIds": [
        "S002",
        "S019",
        "S020"
      ],
      "sourceIds": [
        "S055",
        "S315",
        "S065"
      ],
      "currentStatusRequiresLiveCheck": true,
      "currentRegistryUrl": "https://modelcontextprotocol.io/specification/2026-07-28/deprecated",
      "currentRegistryCorrection": "The current registry dates HTTP+SSE deprecation to 2025-03-26; the package recorded the later 2026 policy reclassification as the deprecation date.",
      "packageSnapshot": {
        "deprecatedIn": "2026-07-28 (replaced as preferred in 2025-03-26)",
        "deprecatedReworkedIn": "",
        "removedIn": "",
        "statusAtVerification": "Deprecated, not removed",
        "migrationTarget": "Streamable HTTP",
        "earliestRemoval": "Subject to feature lifecycle; minimum window unless expedited policy applies"
      }
    },
    {
      "id": "R7-DEP02",
      "feature": "Roots",
      "firstAvailable": "2024-11-05",
      "recordKind": "deprecation",
      "changeKind": "deprecated",
      "changeRevision": "2026-07-28",
      "deprecatedIn": "2026-07-28",
      "statusAtVerification": "Deprecated, still specified during window",
      "migrationTarget": "Pass directories or files via tool parameters, resource URIs, or server configuration.",
      "earliestRemoval": "First revision released on or after 2027-07-28.",
      "packageSourceIds": [
        "S002",
        "S019",
        "S059"
      ],
      "sourceIds": [
        "S055",
        "S315",
        "S325"
      ],
      "currentStatusRequiresLiveCheck": true,
      "currentRegistryUrl": "https://modelcontextprotocol.io/specification/2026-07-28/deprecated",
      "currentRegistryCorrection": "Published the exact migration and earliest-removal language from the current official registry.",
      "packageSnapshot": {
        "deprecatedIn": "2026-07-28",
        "deprecatedReworkedIn": "",
        "removedIn": "",
        "statusAtVerification": "Deprecated, still specified during window",
        "migrationTarget": "Application-defined explicit scope/context mechanisms and newer extension patterns",
        "earliestRemoval": "No earlier than policy window without approved exception"
      }
    },
    {
      "id": "R7-DEP03",
      "feature": "Sampling",
      "firstAvailable": "2024-11-05",
      "recordKind": "deprecation",
      "changeKind": "deprecated",
      "changeRevision": "2026-07-28",
      "deprecatedIn": "2026-07-28",
      "statusAtVerification": "Deprecated, still supported by compatible SDKs",
      "migrationTarget": "Integrate directly with LLM provider APIs.",
      "earliestRemoval": "First revision released on or after 2027-07-28.",
      "packageSourceIds": [
        "S002",
        "S019",
        "S023",
        "S059"
      ],
      "sourceIds": [
        "S055",
        "S315",
        "S317",
        "S325"
      ],
      "currentStatusRequiresLiveCheck": true,
      "currentRegistryUrl": "https://modelcontextprotocol.io/specification/2026-07-28/deprecated",
      "currentRegistryCorrection": "The current official migration path is direct model-provider integration; MRTR handles interaction mechanics but is not a full Sampling replacement.",
      "packageSnapshot": {
        "deprecatedIn": "2026-07-28",
        "deprecatedReworkedIn": "",
        "removedIn": "",
        "statusAtVerification": "Deprecated, still supported by compatible SDKs",
        "migrationTarget": "MRTR/input-required patterns or application-owned model invocation",
        "earliestRemoval": "No earlier than policy window without approved exception"
      }
    },
    {
      "id": "R7-DEP04",
      "feature": "Protocol Logging capability",
      "firstAvailable": "2024-11-05",
      "recordKind": "deprecation",
      "changeKind": "deprecated",
      "changeRevision": "2026-07-28",
      "deprecatedIn": "2026-07-28",
      "statusAtVerification": "Deprecated",
      "migrationTarget": "Log to stderr for stdio transports; use OpenTelemetry for observability.",
      "earliestRemoval": "First revision released on or after 2027-07-28.",
      "packageSourceIds": [
        "S002",
        "S019",
        "S053",
        "S054"
      ],
      "sourceIds": [
        "S055",
        "S315",
        "S253",
        "S168"
      ],
      "currentStatusRequiresLiveCheck": true,
      "currentRegistryUrl": "https://modelcontextprotocol.io/specification/2026-07-28/deprecated",
      "currentRegistryCorrection": "Published the exact migration and earliest-removal language from the current official registry.",
      "packageSnapshot": {
        "deprecatedIn": "2026-07-28",
        "deprecatedReworkedIn": "",
        "removedIn": "",
        "statusAtVerification": "Deprecated",
        "migrationTarget": "Per-request log-level metadata plus ordinary application observability",
        "earliestRemoval": "No earlier than policy window without approved exception"
      }
    },
    {
      "id": "R7-DEP05",
      "feature": "OAuth Dynamic Client Registration",
      "firstAvailable": "2025 authorization era",
      "recordKind": "deprecation",
      "changeKind": "deprecated",
      "changeRevision": "2026-07-28",
      "deprecatedIn": "2026-07-28",
      "statusAtVerification": "Deprecated in current auth guidance",
      "migrationTarget": "Client ID Metadata Documents.",
      "earliestRemoval": "First revision released on or after 2027-07-28.",
      "packageSourceIds": [
        "S002",
        "S010"
      ],
      "sourceIds": [
        "S055",
        "S133"
      ],
      "currentStatusRequiresLiveCheck": true,
      "currentRegistryUrl": "https://modelcontextprotocol.io/specification/2026-07-28/deprecated",
      "currentRegistryCorrection": "Published the exact migration and earliest-removal language from the current official registry.",
      "packageSnapshot": {
        "deprecatedIn": "2026-07-28",
        "deprecatedReworkedIn": "",
        "removedIn": "",
        "statusAtVerification": "Deprecated in current auth guidance",
        "migrationTarget": "Client ID Metadata Documents or pre-registration/managed identification",
        "earliestRemoval": "Policy-controlled"
      }
    },
    {
      "id": "R7-DEP06",
      "feature": "Experimental core Tasks wire model",
      "firstAvailable": "2025-11-25",
      "recordKind": "lifecycle-change",
      "changeKind": "reworked-to-extension",
      "changeRevision": "2026-07-28",
      "statusAtVerification": "Legacy vocabulary retained for interoperability; new work uses extension",
      "migrationTarget": "io.modelcontextprotocol/tasks extension",
      "earliestRemoval": "SDK/version-policy dependent",
      "packageSourceIds": [
        "S024",
        "S049",
        "S054"
      ],
      "sourceIds": [
        "S137",
        "S050",
        "S168"
      ],
      "currentStatusRequiresLiveCheck": true,
      "currentRegistryUrl": "https://modelcontextprotocol.io/specification/2026-07-28/deprecated",
      "packageSnapshot": {
        "deprecatedIn": "",
        "deprecatedReworkedIn": "2026-07-28",
        "removedIn": "",
        "statusAtVerification": "Legacy vocabulary retained for interoperability; new work uses extension",
        "migrationTarget": "io.modelcontextprotocol/tasks extension",
        "earliestRemoval": "SDK/version-policy dependent"
      },
      "editorialCorrection": "Normalized the JSON-only “Deprecated/reworked in” key as a lifecycle rework rather than presenting Tasks as an ordinary deprecation."
    },
    {
      "id": "R7-DEP07",
      "feature": "JSON-RPC batching",
      "firstAvailable": "2025-03-26",
      "recordKind": "lifecycle-change",
      "changeKind": "removed",
      "changeRevision": "2025-06-18",
      "statusAtVerification": "Removed before formal lifecycle policy",
      "migrationTarget": "Individual requests",
      "earliestRemoval": "Already removed",
      "packageSourceIds": [
        "S034",
        "S039",
        "S019"
      ],
      "sourceIds": [
        "S036",
        "S043",
        "S315"
      ],
      "currentStatusRequiresLiveCheck": true,
      "currentRegistryUrl": "https://modelcontextprotocol.io/specification/2026-07-28/deprecated",
      "packageSnapshot": {
        "deprecatedIn": "",
        "deprecatedReworkedIn": "",
        "removedIn": "2025-06-18",
        "statusAtVerification": "Removed before formal lifecycle policy",
        "migrationTarget": "Individual requests",
        "earliestRemoval": "Already removed"
      },
      "editorialCorrection": "Normalized the JSON-only “Removed in” key as a removal lifecycle event rather than presenting batching as an ordinary deprecation."
    },
    {
      "id": "R7-DEP08",
      "feature": "Sampling includeContext values \"thisServer\" and \"allServers\"",
      "firstAvailable": "Sampling-era field; first-available date not supplied by package 7.",
      "recordKind": "deprecation",
      "changeKind": "deprecated",
      "changeRevision": "2025-11-25",
      "deprecatedIn": "2025-11-25",
      "statusAtVerification": "Deprecated, not removed.",
      "migrationTarget": "Omit includeContext or use \"none\".",
      "earliestRemoval": "Follows Sampling: first revision released on or after 2027-07-28.",
      "packageSourceIds": [
        "S002",
        "S019"
      ],
      "sourceIds": [
        "S055",
        "S315"
      ],
      "currentStatusRequiresLiveCheck": true,
      "currentRegistryUrl": "https://modelcontextprotocol.io/specification/2026-07-28/deprecated",
      "currentRegistryCorrection": "Added from the current registry because package 7 omitted these deprecated Sampling values.",
      "packageOmission": true,
      "editorialCorrection": "Added from the current official deprecated-features registry because the package 7 deprecation register omitted these two values."
    }
  ]
}