Skip to content

chore(server): accept DRAFT-2026-v1 in initialize negotiation#474

Merged
panyam merged 1 commit into
mainfrom
chore/accept-draft-protocol-version
May 26, 2026
Merged

chore(server): accept DRAFT-2026-v1 in initialize negotiation#474
panyam merged 1 commit into
mainfrom
chore/accept-draft-protocol-version

Conversation

@panyam
Copy link
Copy Markdown
Owner

@panyam panyam commented May 26, 2026

What changes

Adds "DRAFT-2026-v1" to mcpkit's supportedProtocolVersions list so the server accepts the in-flight 2026 protocol revision in the initialize handshake. One-line addition (newest-first) plus a doc comment explaining why the draft string lives next to the dated releases.

Why

The tasks-v2 / MRTR conformance fork at panyam/mcpconformance feat/tasks-mrtr-extension (upstream PR 262) is moving off the SDK Client for draft-tagged scenarios. The SDK pins protocolVersion: "2025-11-25" in the initialize body, which prevents strict draft-only servers (e.g. Randgalt's at modelcontextprotocol/conformance#262) from handshaking. The conformance fix introduces an initRawSession helper that sends DRAFT-2026-v1 directly.

Without this PR mcpkit's tasks-v2 fixture (examples/tasks-v2) is the next strict-draft server — every tasks scenario fails on bootstrap with MCP error -32602: unsupported protocol version: DRAFT-2026-v1.

Reviewer's guide

Read in this order:

  1. server/dispatch.go lines 17-26 — the one-line list addition plus the rationale comment.

Skim or skip: nothing else touched.

Risk

  • Additive. Servers that previously rejected DRAFT-2026-v1 now accept it. No version that previously worked is rejected.
  • No client-side change. Existing mcpkit clients keep sending 2025-11-25 until/unless they're updated.
  • Verified via the tasks-v2 conformance suite (against the migrated fork): 9/9 scenarios pass. With this change reverted, 8/9 fail on bootstrap (only tasks-status-notifications, which doesn't open a session, survives).

Out of scope

  • No client-side protocol-version bump. mcpkit's client/ still negotiates released versions only.
  • No additions to the spec-version literals in tests/examples. The 4-element supportedProtocolVersions list is the single source of truth.

Adds the in-flight 2026 protocol revision to supportedProtocolVersions so
draft-aware conformance suites can complete the initialize handshake.

The tasks-v2 / MRTR conformance fork (panyam/mcpconformance
feat/tasks-mrtr-extension) sends the draft version in the initialize body
once it migrates off the SDK Client (which pins LATEST_PROTOCOL_VERSION).
Without this, every tasks scenario fails on bootstrap with
"unsupported protocol version: DRAFT-2026-v1".
@panyam panyam merged commit 5e31134 into main May 26, 2026
3 checks passed
@panyam panyam deleted the chore/accept-draft-protocol-version branch May 26, 2026 21:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant