Skip to content

research: track MCP 2026-07-28 spec's breaking stateless redesign and rmcp's migration path #166

Description

@bug-ops

Description

The Model Context Protocol project has a release candidate for spec version 2026-07-28, described as "the largest revision of the protocol since launch." mcp-execution's entire pipeline depends on rmcp (the official Rust SDK) for the client handshake and tool discovery — Introspector::discover_server() (crates/mcp-introspector/src/lib.rs) is explicitly flagged as a critical path in .claude/rules/continuous-improvement.md. This is a forward-looking tracking item, not an immediate action: no code, dependency, or config change is needed today.

Key breaking changes in the 2026-07-28 RC (cross-verified across 3+ independent sources)

  • initialize/initialized handshake removed entirely — protocol version, client identity, and capabilities move to per-request _meta fields.
  • Mcp-Session-Id header eliminated (SEP-2567) — protocol goes fully stateless; no sticky routing / shared session store needed.
  • tools/list and resource-read responses gain ttlMs and cacheScope metadata (SEP-2549) — clients get an authoritative cache-freshness signal, replacing reliance on long-lived SSE streams for list-changed notifications.
  • Tool schemas gain full JSON Schema 2020-12 support (oneOf/anyOf/allOf, conditionals, $ref).
  • Tasks extension graduates from experimental to core (tasks/get/tasks/update/tasks/cancel replace held-open SSE for long-running calls).
  • Missing-resource error code changes from -32002 to standard JSON-RPC -32602.

Timeline

  • RC locked: 2026-05-21
  • Final spec publishes: 2026-07-28 (~3 weeks out)
  • 10-week SDK validation window follows; rmcp (Tier 1 SDK) expected to ship support within it (roughly by early October 2026)

Why this matters here

  1. When rmcp adds 2026-07-28 support it will very likely require a major version bump (precedent: rmcp 1.x -> 2.x for a smaller spec alignment, see chore: update rmcp 2.1.0 -> 2.2.0 and transitive patch/minor bumps #162) — this project's dependency monitoring should watch for it rather than be surprised by it.
  2. The new ttlMs/cacheScope fields on tools/list are a potential opportunistic enhancement to the introspector's ServerInfo/ToolInfo caching layer once upstream servers advertise them — could inform staleness detection instead of relying purely on manual generate re-runs.
  3. No current MCP servers this project talks to speak 2026-07-28 yet, and rmcp 2.2.0 (latest as of this cycle) has not announced support — so this is pure awareness/tracking for now.

Expected outcome

A documented tracking plan for reassessing discover_server() compatibility once rmcp ships 2026-07-28 support, plus an opportunistic evaluation of the ttlMs/cacheScope caching enhancement at that time.

Spec

.local/specs/002-mcp-2026-07-28-spec-stateless-migration/spec.md

Sources

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium — degraded UX or incorrect non-destructive behaviorcrate: mcp-introspectorChanges to mcp-introspector crate (MCP server analysis)enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions