1# Baseline of MCP conformance checks that plain-mcp does not pass.
2#
3# Two entry forms, and the difference matters:
4#
5# - `scenario` — a wildcard. Exempts every check in the scenario,
6# and only goes stale once the whole scenario passes.
7# Right for a feature we haven't built: naming its
8# checks one by one just restates the scenario in
9# more words.
10# - `scenario:check-id` — exempts that check alone, so a *different* check in
11# the same scenario failing still counts as a
12# regression. Right for a scenario that partly
13# passes. None currently do.
14#
15# The CLI rejects mixing the two forms for one scenario, so a scenario is
16# either wholly exempt or listed check by check.
17#
18# Exit-code semantics (--expected-failures):
19# fail + expected -> exit 0
20# fail + unexpected -> exit 1 (regression)
21# pass + expected -> exit 1 (stale baseline)
22# pass + unexpected -> exit 0 (normal pass)
23
24server:
25 # SEP-2243 `x-mcp-header` / `Mcp-Param-*`: a schema can mark an input as
26 # travelling in its own HTTP header, and the server validates it there.
27 # Deferred, and inert until there's a tool-side API to declare it — the
28 # server half alone would be a validator with nothing to validate. Optional
29 # for servers, so this is a feature gap, not a violation.
30 - http-custom-header-server-validation
31
32 # Completions — not implemented.
33 - completion-complete
34
35 # Progress notifications on tools/call — not implemented.
36 - tools-call-with-progress
37
38 # SEP-2322 mid-request input (MRTR): a tool pauses, asks the client for
39 # elicitation / sampling / roots, and resumes from carried state. Not
40 # implemented — it's the stateless protocol's replacement for the old
41 # server-to-client stream, and a sizable feature in its own right.
42 - input-required-result-basic-elicitation
43 - input-required-result-basic-sampling
44 - input-required-result-basic-list-roots
45 - input-required-result-request-state
46 - input-required-result-multiple-input-requests
47 - input-required-result-multi-round
48 - input-required-result-missing-input-response
49 - input-required-result-non-tool-request
50 - input-required-result-result-type
51 - input-required-result-tampered-state
52 - input-required-result-capability-check
53 - input-required-result-validate-input