## Summary `unionCapabilities` merges `Experimental` map entries from inner variant servers but skips the `Extensions` field entirely. This means any extension registered via `ServerCapabilities.AddExtension()` on an inner server (e.g. `io.modelcontextprotocol/skills`) is silently dropped from the front proxy's `InitializeResult`. - Add the same first-wins merge logic for `Extensions` that already exists for `Experimental` - Bump `go-sdk` to v1.4.1 which introduced the `Extensions` field on `ServerCapabilities` - Add unit test for `unionCapabilities` extensions merging - Add integration test verifying extensions survive the variant path end-to-end ## Test plan - [x] `TestUnionCapabilities_MergesExtensions` — verifies first-wins merge semantics for extensions - [x] `TestIntegration_ExtensionsAdvertised` — verifies extensions registered on inner servers appear in the client's `InitializeResult` - [x] All existing tests pass (27/27) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
22 lines
628 B
Modula-2
22 lines
628 B
Modula-2
module github.com/modelcontextprotocol/experimental-ext-variants/go/sdk
|
|
|
|
go 1.24.0
|
|
|
|
toolchain go1.24.3
|
|
|
|
require (
|
|
github.com/modelcontextprotocol/go-sdk v1.4.0
|
|
github.com/stretchr/testify v1.11.1
|
|
)
|
|
|
|
require (
|
|
github.com/davecgh/go-spew v1.1.1 // indirect
|
|
github.com/google/jsonschema-go v0.4.2 // indirect
|
|
github.com/pmezard/go-difflib v1.0.0 // indirect
|
|
github.com/segmentio/asm v1.1.3 // indirect
|
|
github.com/segmentio/encoding v0.5.4 // indirect
|
|
github.com/yosida95/uritemplate/v3 v3.0.2 // indirect
|
|
golang.org/x/oauth2 v0.34.0 // indirect
|
|
golang.org/x/sys v0.40.0 // indirect
|
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
|
)
|