Drive the http-standard-headers scenario in the conformance client - #514
Merged
koic merged 1 commit intoAug 15, 2026
Merged
Conversation
## Motivation and Context
The 2026-07-28 requirement set scores `http-standard-headers` (SEP-2243) on the client leg,
but `conformance/client.rb` had no case for it: the scenario hit the unknown-scenario abort,
the client exited 1, and every `Mcp-Method` / `Mcp-Name` check reported SKIPPED
("Client did not send a ... request"), failing the scenario in tier-check.
The 2026-08-14 tier audit flagged this as the only scored conformance failure (client leg 49/50).
The transport already sends the standard headers on the modern path; what was missing is
a driver that exercises each request kind the harness observes. The new case issues `tools/list`,
`tools/call` (the `test_headers` fixture tool), `resources/list`, `resources/read`
(the first listed resource URI), `prompts/list`, and `prompts/get` (the first listed prompt),
letting the harness see the `Mcp-Method` header on every POST and the `Mcp-Name` header on
the three name-carrying requests. The `initialize` / `notifications/initialized` rows stay SKIPPED
by design: the 2026-07-28 wire is stateless, so those requests are never sent.
## How Has This Been Tested?
`conformance client --scenario http-standard-headers --spec-version 2026-07-28` passes 9/9 checks,
and the full `--requirements 2026-07-28` client leg exits 0 with every scored scenario passing
(435 checks; the only failures are the baselined not-scored DPoP/WIF extensions). RuboCop is clean.
## Breaking Changes
None. The change only adds a scenario driver to the conformance client fixture; library code is untouched.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation and Context
The 2026-07-28 requirement set scores
http-standard-headers(SEP-2243) on the client leg, butconformance/client.rbhad no case for it: the scenario hit the unknown-scenario abort, the client exited 1, and everyMcp-Method/Mcp-Namecheck reported SKIPPED ("Client did not send a ... request"), failing the scenario in tier-check. The 2026-08-14 tier audit flagged this as the only scored conformance failure (client leg 49/50).The transport already sends the standard headers on the modern path; what was missing is a driver that exercises each request kind the harness observes. The new case issues
tools/list,tools/call(thetest_headersfixture tool),resources/list,resources/read(the first listed resource URI),prompts/list, andprompts/get(the first listed prompt), letting the harness see theMcp-Methodheader on every POST and theMcp-Nameheader on the three name-carrying requests. Theinitialize/notifications/initializedrows stay SKIPPED by design: the 2026-07-28 wire is stateless, so those requests are never sent.How Has This Been Tested?
conformance client --scenario http-standard-headers --spec-version 2026-07-28passes 9/9 checks, and the full--requirements 2026-07-28client leg exits 0 with every scored scenario passing (435 checks; the only failures are the baselined not-scored DPoP/WIF extensions). RuboCop is clean.Breaking Changes
None. The change only adds a scenario driver to the conformance client fixture; library code is untouched.
Types of changes
Checklist