Skip to content

request-metadata client conformance: populate required request _meta (SEP-2575) #981

Description

@DaleSeo

Part of #977.

Update (2026-07-15): the harness crash originally described here no longer reproduces. With @modelcontextprotocol/conformance@0.2.0-alpha.9 against current main, the scenario runs cleanly and reports real results, so the remaining work is a client feature gap, not a harness investigation.

Latest local run:

[sep-2575-http-client-sends-version-header      ] SUCCESS  Client sends MCP-Protocol-Version header on every POST
[sep-2575-client-populates-meta                 ] FAILURE  Client populates _meta on every request with all three required fields
[sep-2575-http-version-header-matches-meta      ] SKIPPED  MCP-Protocol-Version header matches _meta.protocolVersion
[sep-2575-client-declares-roots-capability      ] SKIPPED
[sep-2575-client-declares-sampling-capability   ] SKIPPED
[sep-2575-client-declares-elicitation-capability] SKIPPED
[sep-2575-client-retry-supported-version        ] WARNING  Client retries with a supported version when first choice is rejected

Passed: 1/2, 1 failed, 1 warnings

Work:

  • Populate io.modelcontextprotocol/protocolVersion, io.modelcontextprotocol/clientInfo, and io.modelcontextprotocol/clientCapabilities in request _meta on every outgoing client request when the negotiated protocol version is 2026-07-28 or newer. The model side landed in feat!: align metadata models with draft schema #993 (RequestMetaObject with typed setters and missing_required_keys); this is the client runtime wiring.
  • The skipped checks (http-version-header-matches-meta, capability declarations) should start executing once _meta is populated; verify they pass.
  • Add the request-metadata scenario to .github/workflows/conformance.yml once green.
  • If the original harness crash (SyntaxError: Unexpected end of JSON input) resurfaces, file it upstream at modelcontextprotocol/conformance.

Repro:

cargo build -p mcp-conformance
npx -y @modelcontextprotocol/conformance@0.2.0-alpha.9 client \
  --command ./target/debug/conformance-client \
  --scenario request-metadata -o results

Metadata

Metadata

Assignees

Labels

2026-07-28P1High: significant functionality gap or spec violationT-bugBug fixes and error corrections

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions