Skip to content

MCP 2026-07-28 RC — fleet migration tracking #31

Description

@asachs01

Why

MCP Release Candidate 2026-07-28 (final release Jul 28 2026; prior 2025-11-25; ~10-week SDK validation window) is a major, mostly-breaking update. Highlights: stateless core (Mcp-Session-Id removed), initialize/initialized handshake removed (protocol version + clientInfo + capabilities now in _meta on every request), new server/discover, routable Mcp-Method/Mcp-Name headers, InputRequiredResult replacing SSE server-push, -32002-32602, Tasks-as-extension, full JSON Schema 2020-12, and 6 OAuth/OIDC hardening SEPs.
Ref: https://blog.modelcontextprotocol.io/posts/2026-07-28-release-candidate/

Phase 0 — stateless per-request transport (DONE as PRs; also fixes a live multi-client bug)

A fleet sweep (54 *-mcp repos) found 6 using a single shared Server+StreamableHTTPServerTransport reused across requests. Behind the gateway this means only the first user since container start gets tools; everyone else sees 0 until a restart. This is both a current prod bug AND RC step 1 (the RC removes sessions). All 6 fixed via per-request stateless transport + crash-hardening; PRs open, verified, awaiting merge:

45 repos already per-request (OK). 3 N/A (stdio-only / external-proxy): afkbot-mcp, brain-mcp, sentinelone-mcp.

Related follow-ups surfaced during Phase 0

  • pax8-mcp toolchain PR — fix pre-existing red build/lint (@types/node@26, typescript@6, eslint@10 missing flat config)
  • pax8-mcpstate.currentDomain is module-global shared across clients (multi-tenant concurrency bug, pre-existing)
  • action1-mcp — pre-existing critical Dependabot alert on main (unrelated to transport fix)

Phase 1 — spec compliance (after Tier-1 SDK ships RC support)

Per HTTP server:

  • Remove initialize/initialized handshake; read protocol version + clientInfo + capabilities from _meta per request
  • Implement server/discover
  • Validate routable Mcp-Method / Mcp-Name headers; send MCP-Protocol-Version: 2026-07-28
  • InputRequiredResult instead of SSE for server→client requests
  • -32002-32602 for missing resources
  • Full JSON Schema 2020-12 in tool input/output schemas
  • ttlMs / cacheScope on list/resource results
  • W3C Trace Context in _meta (traceparent/tracestate/baggage) where structured logging is used

Phase 2 — gateway + auth

  • mcp-gateway: session removal, routable-header routing, protocol version
  • OAuth/OIDC hardening: SEP-2468 (iss/RFC9207), SEP-837 (application_type DCR), SEP-2352 (cred binding/migration), SEP-2207 (refresh), SEP-2350/2351 (scope + .well-known)

Deprecations to plan away from (annotation-only; functional >=1yr)

  • roots -> tool params / resource URIs / server config
  • sampling -> direct LLM provider APIs
  • logging -> stderr (stdio) / OpenTelemetry

Reference: mcp-streamable-http-multi-client-init skill; superops/hudu/rocketcyber/autotask as per-request templates. Continuity: cases/mcp-2026-07-28-release-candidate.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status
    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions