fix: update the draft wire version to 2026-07-28#331
Merged
Conversation
Refreshes the vendored schema copies via npm run sync-schema. The draft schema now declares LATEST_PROTOCOL_VERSION = "2026-07-28" (previously the DRAFT-2026-v1 placeholder) and picks up the latest draft doc-comment and type updates. The dated schemas are unchanged.
The spec repo's draft schema now declares LATEST_PROTOCOL_VERSION = "2026-07-28", but the harness still asserted the old DRAFT-2026-v1 placeholder, so an SDK that sends the version the draft spec actually declares cannot pass the draft suite. - bump DRAFT_PROTOCOL_VERSION in src/types.ts to 2026-07-28 - update the hard-coded literals in tests, example servers, and README - add src/types.test.ts pinning DRAFT_PROTOCOL_VERSION to the vendored draft schema's LATEST_PROTOCOL_VERSION so the two cannot drift, and asserting the draft identifier stays distinct from the dated versions
commit: |
maxisbey
approved these changes
Jun 8, 2026
maxisbey
approved these changes
Jun 8, 2026
pcarleton
approved these changes
Jun 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Aligns the harness's draft wire
protocolVersionwith what the spec's draftschema actually declares:
2026-07-28instead of the oldDRAFT-2026-v1placeholder.
Motivation and Context
The spec repo pinned the draft protocol version to the RC date in
modelcontextprotocol/modelcontextprotocol#2791:
schema/draft/schema.tsnowdeclares
LATEST_PROTOCOL_VERSION = "2026-07-28". The harness'sDRAFT_PROTOCOL_VERSION(src/types.ts) is documented as mirroring thatconstant ("bump when that constant changes"), but still carried the
placeholder. As a result, an SDK that implements the draft spec and sends the
version the draft schema declares cannot pass the draft suite — the mock
server refuses to negotiate it, and scenario checks that assert the version
string fail. #315 already anticipated swapping the placeholder for "the real
value when available"; this PR does that swap.
Two commits:
chore: sync spec-types to modelcontextprotocol@0168c57f— refreshes thevendored schemas via
npm run sync-schema(onlydraft.tsandSOURCEchange; the dated schemas are identical).
fix: update the draft wire version to 2026-07-28— bumpsDRAFT_PROTOCOL_VERSION, updates the hard-coded literals in tests, theexample servers, and the README, and adds
src/types.test.tspinningDRAFT_PROTOCOL_VERSIONto the vendored draft schema'sLATEST_PROTOCOL_VERSIONso the two can no longer drift silently (plus aguard that the draft identifier stays distinct from the dated versions).
How Has This Been Tested?
npm test: 270 passed (270), 26 test files — includes the newsrc/types.test.tsinvariant testsnpm run check(tsgo typecheck + eslint + prettier): cleannpm run build: cleanBreaking Changes
For anyone already running the draft suite against
DRAFT-2026-v1: theaccepted wire version is now
2026-07-28, and--spec-version DRAFT-2026-v1no longer resolves. The
draftalias is unaffected and remains therecommended way to target the draft suite. Dated-version behavior
(2025-03-26 / 2025-06-18 / 2025-11-25) is unchanged.
Types of changes
Checklist
Additional context
2026-07-28looks like a dated release identifier but is still the draft: itis the RC date the spec pinned in advance (see
modelcontextprotocol/modelcontextprotocol#2791). The harness keeps treating it
as the draft version — distinct from
DATED_SPEC_VERSIONS, selected by thedraftalias and suite — so nothing about scenario applicability or versionordering changes, only the wire string.