cliffhall
7a74b5eba1
fix: forward the negotiated protocol version to the remote backend transport
...
The web client's SDK Client owns the `initialize` handshake, so the
`setProtocolVersion()` call it makes after initialize lands on
RemoteClientTransport — a pass-through to the Node backend, not the real
HTTP transport. The backend's StreamableHTTPClientTransport therefore never
learned the negotiated version and stamped no `Mcp-Protocol-Version` on any
request after initialize, starting with `notifications/initialized`. A
stateful server that requires the header rejects that notification with
HTTP 400.
RemoteClientTransport now records the version and rides it on every
`/api/mcp/send`; the backend applies it to its transport before the send, so
that request and everything the transport issues afterwards (the standalone
SSE GET, the session DELETE) carry the header. The version is validated
against a token pattern on the backend so a client can't push arbitrary
bytes into an upstream header.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0119LaPQ3v4NyBK3ZTdM9j84
2026-08-10 20:44:37 -04:00
..
import
test: raise per-file coverage gate to 90 across all clients ( closes #1271 ) ( #1532 )
2026-06-27 15:26:03 -04:00
node
OAuth: re-key store to (server, issuer) + SEP-837/2350/2352 auth UX ( #1694 )
2026-07-16 16:52:53 -04:00
remote
fix: forward the negotiated protocol version to the remote backend transport
2026-08-10 20:44:37 -04:00
ema-mock-servers.ts
test: cover EMA interactive leg 1 end-to-end ( #1693 ) ( #1765 )
2026-07-24 13:11:51 -04:00
extensions-mimetype.test.ts
Extensions: Connection Info both eras + io.modelcontextprotocol/ui advertisement (Phase 3 of #1633 ) ( #1744 )
2026-07-23 10:11:36 -04:00
inspectorClient-advertised-extensions.test.ts
Extensions: advertised-extensions toggle in Server Settings (Phase 2 of #1633 ) ( #1743 )
2026-07-22 16:23:43 -04:00
inspectorClient-coverage-backfill.test.ts
fix(core): register peer-request handlers before connect ( #1797 ) ( #1798 )
2026-07-27 11:32:23 -04:00
inspectorClient-ema-e2e.test.ts
test: cover EMA interactive leg 1 end-to-end ( #1693 ) ( #1765 )
2026-07-24 13:11:51 -04:00
inspectorClient-excluded-tools.test.ts
Tools: x-mcp-header annotation tooling + -32602 unknown-tool rendering ( #1632 ) ( #1735 )
2026-07-22 11:42:54 -04:00
inspectorClient-modern-era-oauth.test.ts
fix(core): start OAuth on a modern/auto-era connect ( #1805 ) ( #1809 )
2026-07-27 15:06:01 -04:00
inspectorClient-modern-era.test.ts
Logging: per-request log level on modern servers (era fork) ( #1629 ) ( #1724 )
2026-07-19 17:08:22 -04:00
inspectorClient-oauth-direct-mid-session-e2e.test.ts
Auth hardening CI gaps + SDK consolidation: EMA leg 2 / scopes ( #1527 ) ( #1725 )
2026-07-19 22:36:21 -04:00
inspectorClient-oauth-e2e.test.ts
Auth hardening CI gaps + SDK consolidation: EMA leg 2 / scopes ( #1527 ) ( #1725 )
2026-07-19 22:36:21 -04:00
inspectorClient-oauth-fetchFn.test.ts
SDK v2 migration (behavior-neutral, versionNegotiation: 'legacy') ( #1624 )
2026-07-15 10:44:24 -04:00
inspectorClient-oauth-remote-mid-session-e2e.test.ts
Auth hardening CI gaps + SDK consolidation: EMA leg 2 / scopes ( #1527 ) ( #1725 )
2026-07-19 22:36:21 -04:00
inspectorClient-oauth-remote-storage-e2e.test.ts
Auth hardening CI gaps + SDK consolidation: EMA leg 2 / scopes ( #1527 ) ( #1725 )
2026-07-19 22:36:21 -04:00
inspectorClient-oauth.test.ts
Auth hardening CI gaps + SDK consolidation: EMA leg 2 / scopes ( #1527 ) ( #1725 )
2026-07-19 22:36:21 -04:00
inspectorClient-response-rejected.test.ts
fix: surface list-fetch failures instead of swallowing them
2026-08-08 16:48:48 -04:00
inspectorClient-subscriptions-era.test.ts
fix(core): register peer-request handlers before connect ( #1797 ) ( #1798 )
2026-07-27 11:32:23 -04:00
inspectorClient-tasks-era.test.ts
Tasks: io.modelcontextprotocol/tasks extension on modern servers (era fork) ( #1731 )
2026-07-21 19:17:04 -04:00
inspectorClient-xmcpheader-mirroring.test.ts
fix(core): mirror SEP-2243 x-mcp-header args to Mcp-Param-* on tools/call ( #1847 )
2026-07-28 19:19:48 -04:00
inspectorClient.test.ts
fix(core): register peer-request handlers before connect ( #1797 ) ( #1798 )
2026-07-27 11:32:23 -04:00
mcp-app-demo.test.ts
SDK v2 migration (behavior-neutral, versionNegotiation: 'legacy') ( #1624 )
2026-07-15 10:44:24 -04:00
test-server-protected-resource.test.ts
All of the mid-session and step-up auth work
2026-07-02 16:35:31 -07:00