You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
SEP-1932 DPoP fixtures fail auth/dpop-server-validation at the CLI's default spec version #566
The CLI runs auth/dpop-server-validation at DRAFT_PROTOCOL_VERSION (2026-07-28) by default, so the positive probe is a stateless server/discover request with a per-request _meta envelope.
examples/servers/typescript/sep-1932-compliant-server.ts and sep-1932-broken-server.ts are built on the pinned @modelcontextprotocol/sdk 1.29 StreamableHTTPServerTransport, which only speaks the initialize/session lifecycle. It answers the probe with HTTP 400:
AcceptsValidProof fails before any DPoP check runs. 23 more checks fail as not testable and ReportsDpopErrorCode warns. Only AdvertisesDpop and PrmDpop pass: 2/26.
Reproduce
At the head of the #529 stack (834e234), from the conformance checkout:
The same command with --spec-version 2025-11-25 --force passes 27/27 (28/28 with DPOP_REQUIRE_NONCE=1).
Why the tests miss it
src/scenarios/server/auth/dpop.test.ts builds its context with testContext(url(...)), and testContext defaults specVersion to LATEST_SPEC_VERSION (2025-11-25). The tests always send initialize and never take the server/discover path the CLI takes by default.
Options
Move the DPoP fixtures (and the examples package) to the TS SDK 2.x packages, which speak the stateless wire, and add test cases at DRAFT_PROTOCOL_VERSION. This is the direction @nbarbettini suggested.
Stopgap without an SDK bump: give the fixtures a minimal stateless dispatcher, the way everything-server.ts already does on SDK 1.29. A PR with this is linked below.
Independently of either: when the positive probe is refused with a non-401 JSON-RPC error, have AcceptsValidProof say once that the server does not support the requested protocol version, instead of 24 not-testable rows. The linked PR has this as a separate commit.
The same 1.29-versus-draft gap likely affects any other example fixture a draft-only scenario targets.
Activity
figitaki commentedon Oct 17, 2026
Stopgap PR with options 2 and 3 as separate commits, against the #529 stack branch: nbarbettini#1