Skip to content

Adopt MCP protocol revision 2026-07-28 (SDK bump + header validation) #28

Description

@wiverson

The server currently speaks 2025-11-25, via @modelcontextprotocol/sdk@1.30.0 (LATEST_PROTOCOL_VERSION = "2025-11-25"). That is fully compliant with the revision it implements, and clients negotiate down, so nothing is broken today. This is currency rather than a defect — filed so it does not become one quietly.

What 2026-07-28 changes

Mostly by removal, which is why the upgrade is smaller than it sounds:

  • Sessions removed. No Mcp-Session-Id, no minting or echoing. Already stateless here — a fresh server and transport per request — so this costs nothing.
  • GET stream endpoint removed. GET/DELETE should answer 405. Already the behaviour, and correct on both revisions.
  • Last-Event-ID resumability removed. Not implemented here.

The genuinely new work is header validation:

  • Every POST MUST carry MCP-Protocol-Version, and it must match _meta.io.modelcontextprotocol/protocolVersion in the body.
  • Mcp-Method is REQUIRED on all requests; Mcp-Name on tools/call, resources/read, prompts/get.
  • Mismatched or missing headers MUST be rejected with 400 and JSON-RPC error -32020 (HeaderMismatch), after Base64-decoding any =?base64?…?= sentinel values.
  • An unimplemented method MUST return HTTP 404 with -32601, which distinguishes it from a legacy HTTP+SSE server.
  • Optional: x-mcp-header annotations to mirror tool parameters into Mcp-Param-* headers. Servers MAY use it; clients MUST support it.

Blocked on

The SDK shipping 2026-07-28 support. Most of the above lives in the transport layer, so the bulk should arrive with a version bump rather than hand-written code. Worth re-reading the spec at that point rather than trusting this summary.

When to do it

Not urgent, but it is a dated liability: as clients adopt the revision, a server two behind gets negotiated down or refused. Revisit when the SDK releases support.

References

Found during the client-compatibility research that also produced the Origin validation fix (d93d425).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions