Skip to content

Split draft-spec scenarios into their own suite#317

Merged
pcarleton merged 2 commits into
mainfrom
paulc/draft-suite-split
May 26, 2026
Merged

Split draft-spec scenarios into their own suite#317
pcarleton merged 2 commits into
mainfrom
paulc/draft-suite-split

Conversation

@pcarleton
Copy link
Copy Markdown
Member

What

Commit 1 — draft suite split

  • Adds --suite draft to the server command: every scenario whose source.introducedIn is the draft protocol version (currently 19 scenarios: SEP-2575 stateless, SEP-2549 caching, SEP-2243 header validation, SEP-2322 input-required-result, SEP-2164).
  • The client command's draft suite is now derived from source.introducedIn instead of the hand-maintained auth-only list, so the non-auth draft scenarios (SEP-2243/2575/2322/2106) are included alongside the auth ones (17 scenarios).
  • Draft scenarios are removed from the default active server suite until the draft is published as a dated release; they remain selectable via --suite draft and --suite all.
  • all-scenarios.test.ts still exercises the draft scenarios against the everything-server (active + non-pending draft), so self-test coverage is unchanged.
  • Adds suite-membership tests, README documentation, and excludes local tooling workspaces (.claude/, .sdk-under-test/) from vitest/prettier so stray local checkouts can't pollute runs.

Commit 2 — spec reference URL fixes (fixes #313)

  • SEP-986 now points at the Tool Names section of the published 2025-11-25 tools page (the old SEP/SEP-986.md path no longer exists in the spec repo).
  • SEP-990 now points at enterprise-managed-authorization.mdx, the actual filename in ext-auth.
  • Both replacement URLs verified to return HTTP 200.

Relationship to --spec-version

--spec-version remains the cumulative filter ("run everything that applies to the spec revision I target"); --suite draft selects only the draft delta. They compose: --suite all --spec-version draft is roughly the previous behavior.

Behavior change: the server command's default active suite no longer includes draft scenarios, so server --url … --spec-version draft without --suite no longer runs them — use --suite draft (just the delta) or --suite all --spec-version draft (everything applicable to a draft implementation). Draft scenarios also stop counting toward tier-check, which keys off active.

Test plan

  • npm test — full suite green
  • New spec-version.test.ts cases assert every draft-introduced scenario is selected by its draft suite and that none remain in active
  • node dist/index.js server --suite draft --url … runs the 19 draft scenarios; client --suite draft the 17 client-side ones

pcarleton added 2 commits May 26, 2026 11:34
- add --suite draft to the server command, selecting scenarios whose
  source.introducedIn is the draft protocol version
- exclude draft scenarios from the default active suite until the draft
  spec is published as a dated release
- derive the client command's draft suite from source.introducedIn so the
  non-auth draft scenarios (SEP-2243/2575/2322/2106) are included alongside
  the auth ones
- keep everything-server self-test coverage for draft scenarios in
  all-scenarios.test.ts (active + non-pending draft)
- document available suites in the README and add suite-membership tests
- SEP-986: SEP/SEP-986.md no longer exists in the spec repo; point at the
  Tool Names section of the published 2025-11-25 tools page instead
- SEP-990: the ext-auth spec file is enterprise-managed-authorization.mdx,
  not enterprise-oauth.mdx

Fixes #313
@pkg-pr-new
Copy link
Copy Markdown

pkg-pr-new Bot commented May 26, 2026

Open in StackBlitz

npx https://pkg.pr.new/@modelcontextprotocol/conformance@317

commit: a6b1cc1

@pcarleton pcarleton merged commit e2e65e5 into main May 26, 2026
5 of 9 checks passed
@pcarleton pcarleton deleted the paulc/draft-suite-split branch May 26, 2026 17:00
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.

docs: two specReferences[].url strings return 404

1 participant