conformance/src/scenarios/server
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Paul Carleton 17f1f93cc0
feat: support "draft" as a first-class spec version target (#255)
* feat: support "draft" as a first-class spec version target

- Add LATEST_SPEC_VERSION and DATED_SPEC_VERSIONS constants so the next
  spec release is a one-line change in types.ts.
- Accept "draft" as a valid protocolVersion in the initialize check and
  mock-server response.
- --spec-version draft now selects latest-dated scenarios plus draft-tagged
  ones, so SEP authors can run the full suite against an SDK tracking the
  in-progress spec without retagging core scenarios.
- Forward --spec-version to the client process via
  MCP_CONFORMANCE_SPEC_VERSION so SDK examples can pick the matching
  protocolVersion.

Closes #253

* review: collapse SpecVersion to wire strings; dedup NEGOTIABLE_PROTOCOL_VERSIONS; split out 'extension'

Addresses review feedback from @felixweinberger and @mikekistler:

- SpecVersion is now always a wire protocolVersion string
  (DatedSpecVersion | typeof DRAFT_PROTOCOL_VERSION). The separate
  'draft' tag literal is gone from the type system; 'draft' survives
  only as a CLI input alias in resolveSpecVersion. Removes the
  tag-vs-wire confusion and the specVersionToProtocolVersion mapping.
- NEGOTIABLE_PROTOCOL_VERSIONS in types.ts is the single source for
  what the mock server accepts on initialize (was duplicated in
  checks/client.ts and scenarios/client/initialize.ts).
- 'extension' moved out of SpecVersion into a separate ScenarioSpecTag
  type. --spec-version extension is no longer valid; extension scenarios
  remain reachable via --suite extensions.
- Draft-tagged scenarios now use the DRAFT_PROTOCOL_VERSION constant
  so a draft revision bump is a one-line change in types.ts.
2026-04-30 11:37:32 +01:00
..
all-scenarios.test.ts fix: add shell:true for Windows compatibility in all-scenarios.test (#82) 2026-01-05 11:53:42 +00:00
client-helper.ts adjust prettier to use more defaults (#8) 2025-11-04 15:34:27 +00:00
dns-rebinding.ts feat: add specVersion classification to conformance scenarios (#147) 2026-02-13 18:08:15 +00:00
elicitation-defaults.ts feat: add specVersion classification to conformance scenarios (#147) 2026-02-13 18:08:15 +00:00
elicitation-enums.ts feat: add specVersion classification to conformance scenarios (#147) 2026-02-13 18:08:15 +00:00
json-schema-2020-12.ts feat: add specVersion classification to conformance scenarios (#147) 2026-02-13 18:08:15 +00:00
lifecycle.test.ts feat: Session ID ASCII validation check (#206) 2026-04-13 17:39:39 +01:00
lifecycle.ts feat: Session ID ASCII validation check (#206) 2026-04-13 17:39:39 +01:00
negative.test.ts test: add server-side negative test harness (#249) 2026-04-24 12:09:12 +01:00
prompts.ts feat: add specVersion classification to conformance scenarios (#147) 2026-02-13 18:08:15 +00:00
resources.ts feat: support "draft" as a first-class spec version target (#255) 2026-04-30 11:37:32 +01:00
sep-2164.yaml feat: add conformance scenario for SEP-2164 resource-not-found error code (#200) 2026-04-24 11:42:51 +01:00
sse-multiple-streams.ts feat: add specVersion classification to conformance scenarios (#147) 2026-02-13 18:08:15 +00:00
sse-polling.ts feat: add specVersion classification to conformance scenarios (#147) 2026-02-13 18:08:15 +00:00
tools.test.ts feat: Tool name format checks (SEP-986) (#240) 2026-04-24 11:57:36 +01:00
tools.ts feat: Tool name format checks (SEP-986) (#240) 2026-04-24 11:57:36 +01:00
utils.ts feat: add specVersion classification to conformance scenarios (#147) 2026-02-13 18:08:15 +00:00