gwyszynski-sa
b0408f2821
mcp: prefer the negotiated protocol version over the request context ( #1163 )
...
setMCPHeaders resolved Mcp-Protocol-Version from the request context
before
c.initializedResult. #1107 established the opposite order and said so in
its
description; the code it replaced also consulted the context last. The
two
branches were transposed by the switch-to-if rewrite in #1115 , whose
subject
was an unrelated nil-pointer check.
The context branch serves the pre-negotiation server/discover probe,
which
sets its own value in Client.Connect. Once a version has been negotiated
it is
the authoritative one for that connection, so initializedResult should
win.
_meta.protocolVersion from the outgoing message stays on top, so #1109
stays
fixed.
The existing table built its request with http.NewRequest, so
protocolVersionFromContext returned "" in every case and the two
orderings
were indistinguishable, which is why the transposition went unnoticed.
Adds a
ctxVersion dimension and three cases pinning the precedence.
Fixes #1162
Co-authored-by: Guglielmo Colombo <guglielmoc@google.com>
2026-08-18 07:42:58 +00:00
..
testdata
mcp: update return meta in DiscoverResult (SEP-2575) ( #1097 )
2026-07-16 16:10:12 +02:00
cache.go
mcp: do not enforce TTL on cached tool ( #1053 )
2026-07-07 13:43:10 +02:00
capabilities_test.go
mcp: add 2026-07-28 to the supported protocol versions ( #1020 )
2026-06-24 12:02:56 +02:00
client.go
mcp: avoid Client.Connect leaks ( #1158 )
2026-08-10 08:52:50 +00:00
client_example_test.go
mcp: block server initiated requests (SEP-2322) ( #1057 )
2026-07-08 15:17:41 +02:00
client_list_test.go
mcp: allow any value for schemas ( #517 )
2025-09-26 11:55:54 -04:00
client_test.go
mcp: export ClientSessionOptions.ProtocolVersion ( #1127 )
2026-08-03 15:29:52 +02:00
cmd.go
mcp: speed up TestCommandTransportDuration
2025-09-12 12:00:29 -04:00
cmd_export_test.go
mcp: speed up TestCommandTransportDuration
2025-09-12 12:00:29 -04:00
cmd_test.go
all: modernize code ( #868 )
2026-03-31 10:58:02 +02:00
conformance_test.go
mcp: add 2026-07-28 to the supported protocol versions ( #1020 )
2026-06-24 12:02:56 +02:00
content.go
mcp: Deprecate roots, sampling and logging (SEP-2577) ( #1017 )
2026-06-23 11:11:08 +02:00
content_nil_test.go
mcp: update return meta in DiscoverResult (SEP-2575) ( #1097 )
2026-07-16 16:10:12 +02:00
content_test.go
mcp: switch icon theme to named string type ( #733 )
2025-12-19 16:44:10 -05:00
elicitation_test.go
mcp: export ClientSessionOptions.ProtocolVersion ( #1127 )
2026-08-03 15:29:52 +02:00
error_test.go
mcp: avoid panicking when a resource handler returns nil ( #1176 )
2026-08-17 10:44:53 +02:00
event.go
mcp: avoid double-copy of payload in writeEvent ( #1106 )
2026-07-24 10:07:06 +02:00
event_test.go
mcp: handle empty chunks in MemoryEventStore ( #862 )
2026-03-27 16:58:03 +01:00
features.go
mcp: minor cleanup of some TODOs ( #332 )
2025-08-20 12:55:19 -04:00
features_test.go
mcp: change tool handler design ( #325 )
2025-08-20 19:36:34 -04:00
logging.go
mcp: keep request log levels scoped to each request ( #1168 )
2026-08-17 14:00:41 +02:00
mcp.go
mcp: fix inaccurate package doc ( #534 )
2025-09-26 14:16:10 -04:00
mcp_example_test.go
mcp: add 2026-07-28 to the supported protocol versions ( #1020 )
2026-06-24 12:02:56 +02:00
mcp_test.go
mcp: resolve deadlock on serverSession.Close() with subscriptionsListen call ( #1166 )
2026-08-17 12:21:13 +00:00
mrtr.go
mcp: bump protocol version from 2026-06-30 to 2026-07-28 ( #1015 )
2026-06-22 09:53:04 +02:00
mrtr_test.go
mcp: export ClientSessionOptions.ProtocolVersion ( #1127 )
2026-08-03 15:29:52 +02:00
prompt.go
mcp: align PromptHandler args with other handlers ( #348 )
2025-08-22 10:44:05 -04:00
protocol.go
mcp: update return meta in DiscoverResult (SEP-2575) ( #1097 )
2026-07-16 16:10:12 +02:00
protocol_test.go
mcp: include resultType on new-protocol responses ( #1060 )
2026-07-13 11:51:19 +00:00
requests.go
mcp: Implement subscriptions/listen rpc (SEP-2575) ( #1007 )
2026-06-22 18:57:36 +02:00
resource.go
mcp: align resource not found error code with sep-2164 ( #931 )
2026-05-05 16:20:02 +02:00
resource_test.go
mcp/Resource: Refactor URI Template Matching with uritemplate Library ( #100 )
2025-07-08 15:52:54 -04:00
sampling_test.go
mcp: export ClientSessionOptions.ProtocolVersion ( #1127 )
2026-08-03 15:29:52 +02:00
schema_cache.go
perf: add schema caching to avoid repeated reflection ( #685 )
2026-01-20 20:16:46 -05:00
schema_cache_test.go
all: modernize code ( #868 )
2026-03-31 10:58:02 +02:00
server.go
mcp: resolve deadlock on serverSession.Close() with subscriptionsListen call ( #1166 )
2026-08-17 12:21:13 +00:00
server_example_test.go
mcp: add 2026-07-28 to the supported protocol versions ( #1020 )
2026-06-24 12:02:56 +02:00
server_test.go
mcp: export ClientSessionOptions.ProtocolVersion ( #1127 )
2026-08-03 15:29:52 +02:00
session.go
mcp: support stateless streamable sessions ( #277 )
2025-08-11 16:43:46 -04:00
shared.go
mcp: update return meta in DiscoverResult (SEP-2575) ( #1097 )
2026-07-16 16:10:12 +02:00
shared_test.go
mcp: update return meta in DiscoverResult (SEP-2575) ( #1097 )
2026-07-16 16:10:12 +02:00
sse.go
mcp: limit SSE discover supportedVersions to SSE-defined revisions ( #1121 )
2026-08-05 15:36:22 +02:00
sse_example_test.go
SSE: Add support for SSE handler options ( #508 )
2025-09-19 13:01:57 -04:00
sse_test.go
mcp: limit SSE discover supportedVersions to SSE-defined revisions ( #1121 )
2026-08-05 15:36:22 +02:00
streamable.go
mcp: prefer the negotiated protocol version over the request context ( #1163 )
2026-08-18 07:42:58 +00:00
streamable_bench_test.go
all: modernize code ( #868 )
2026-03-31 10:58:02 +02:00
streamable_client.go
mcp: do not call DELETE for sessionless & doc adjustments ( #960 )
2026-05-15 21:47:34 +02:00
streamable_client_test.go
mcp: prefer the negotiated protocol version over the request context ( #1163 )
2026-08-18 07:42:58 +00:00
streamable_example_test.go
mcp: add 2026-07-28 to the supported protocol versions ( #1020 )
2026-06-24 12:02:56 +02:00
streamable_headers.go
mcp: fix ListTools panic and null normalization on malformed tools ( #1120 )
2026-07-30 10:06:14 +02:00
streamable_headers_test.go
mcp: fix ListTools panic and null normalization on malformed tools ( #1120 )
2026-07-30 10:06:14 +02:00
streamable_server.go
mcp: simplify stream state management in streamable transport
2025-12-10 13:28:25 -05:00
streamable_test.go
mcp: allow asynchronous cancel notification ( #1151 )
2026-08-07 10:43:17 +02:00
tool.go
mcp: tool.InputSchema and tool.OutputSchema validation (SEP-2106) ( #1009 )
2026-06-16 13:55:47 +02:00
tool_example_test.go
mcp: allow any value for schemas ( #517 )
2025-09-26 11:55:54 -04:00
tool_test.go
mcp: tool.InputSchema and tool.OutputSchema validation (SEP-2106) ( #1009 )
2026-06-16 13:55:47 +02:00
transport.go
mcp: allow asynchronous cancel notification ( #1151 )
2026-08-07 10:43:17 +02:00
transport_example_test.go
mcp: update return meta in DiscoverResult (SEP-2575) ( #1097 )
2026-07-16 16:10:12 +02:00
transport_test.go
fix(jsonrpc2): decode requests when method key is present ( #1000 )
2026-06-16 09:57:18 +02:00
util.go
all: use case-sensitive JSON unmarshaling ( #807 )
2026-02-18 16:38:36 +01:00