Upgrade go-sdk to v1.3.0 and adopt ClientOptions pattern#1018
Merged
Conversation
Co-authored-by: lpcox <15877973+lpcox@users.noreply.github.com>
Co-authored-by: lpcox <15877973+lpcox@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Update go-sdk to version v1.3.0
Upgrade go-sdk to v1.3.0 and adopt ClientOptions pattern
Feb 17, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
Upgrades the MCP Go SDK dependency to v1.3.0 and updates client construction to always pass explicit ClientOptions, aligning runtime and test helpers with the SDK’s recommended initialization pattern.
Changes:
- Bumped
github.com/modelcontextprotocol/go-sdkfrom v1.2.0 to v1.3.0 (andjsonschema-goto v0.4.2 indirectly). - Replaced
niloptions with&sdk.ClientOptions{}in MCP client initialization (prod + test utility).
Reviewed changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
go.mod |
Upgrades go-sdk to v1.3.0 and updates indirect jsonschema-go requirement. |
go.sum |
Updates module checksums to match the upgraded dependencies. |
internal/mcp/connection.go |
Uses explicit &sdk.ClientOptions{} in newMCPClient() for SDK client creation. |
internal/testutil/mcptest/validator.go |
Uses explicit &sdk.ClientOptions{} in NewValidatorClient() for test validator client creation. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
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.
Upgrades MCP SDK dependency from v1.2.0 to v1.3.0 for critical bug fixes and performance improvements. Also adopts explicit ClientOptions pattern for future SDK feature compatibility.
Changes
Dependency Upgrades
go-sdk: v1.2.0 → v1.3.0jsonschema-go: v0.3.0 → v0.4.2 (transitive)Code Changes
Replaced nil ClientOptions with explicit struct initialization:
Affected locations:
internal/mcp/connection.go(newMCPClient)internal/testutil/mcptest/validator.go(NewValidatorClient)Impact
v1.3.0 Bug Fixes
v1.3.0 Performance
Code Quality
Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
example.com/tmp/go-build3332987366/b275/launcher.test /tmp/go-build3332987366/b275/launcher.test -test.testlogfile=/tmp/go-build3332987366/b275/testlog.txt -test.paniconexit0 -test.timeout=10m0s -test.v=true go pull.rebase 64/pkg/tool/linu-o(dns block)/tmp/go-build1872984022/b275/launcher.test /tmp/go-build1872984022/b275/launcher.test -test.testlogfile=/tmp/go-build1872984022/b275/testlog.txt -test.paniconexit0 -test.timeout=10m0s -test.v=true o s.noreply.github.com> x_amd64/compile -p internal/runtime/strconv -lang=go1.25 x_amd64/compile go_.�� 64/src/net ache/go/1.25.7/x64/src/crypto/ds-nolocalimports .12/x64/as -p time -lang=go1.25 02.o(dns block)invalid-host-that-does-not-exist-12345.com/tmp/go-build3332987366/b260/config.test /tmp/go-build3332987366/b260/config.test -test.testlogfile=/tmp/go-build3332987366/b260/testlog.txt -test.paniconexit0 -test.timeout=10m0s -test.v=true go user.email 64/pkg/tool/linu-o(dns block)nonexistent.local/tmp/go-build3332987366/b275/launcher.test /tmp/go-build3332987366/b275/launcher.test -test.testlogfile=/tmp/go-build3332987366/b275/testlog.txt -test.paniconexit0 -test.timeout=10m0s -test.v=true go pull.rebase 64/pkg/tool/linu-o(dns block)/tmp/go-build1872984022/b275/launcher.test /tmp/go-build1872984022/b275/launcher.test -test.testlogfile=/tmp/go-build1872984022/b275/testlog.txt -test.paniconexit0 -test.timeout=10m0s -test.v=true o s.noreply.github.com> x_amd64/compile -p internal/runtime/strconv -lang=go1.25 x_amd64/compile go_.�� 64/src/net ache/go/1.25.7/x64/src/crypto/ds-nolocalimports .12/x64/as -p time -lang=go1.25 02.o(dns block)slow.example.com/tmp/go-build3332987366/b275/launcher.test /tmp/go-build3332987366/b275/launcher.test -test.testlogfile=/tmp/go-build3332987366/b275/testlog.txt -test.paniconexit0 -test.timeout=10m0s -test.v=true go pull.rebase 64/pkg/tool/linu-o(dns block)/tmp/go-build1872984022/b275/launcher.test /tmp/go-build1872984022/b275/launcher.test -test.testlogfile=/tmp/go-build1872984022/b275/testlog.txt -test.paniconexit0 -test.timeout=10m0s -test.v=true o s.noreply.github.com> x_amd64/compile -p internal/runtime/strconv -lang=go1.25 x_amd64/compile go_.�� 64/src/net ache/go/1.25.7/x64/src/crypto/ds-nolocalimports .12/x64/as -p time -lang=go1.25 02.o(dns block)this-host-does-not-exist-12345.com/tmp/go-build3332987366/b284/mcp.test /tmp/go-build3332987366/b284/mcp.test -test.testlogfile=/tmp/go-build3332987366/b284/testlog.txt -test.paniconexit0 -test.timeout=10m0s -test.v=true 64/src/runtime/cgo --global ache/go/1.25.7/x64/pkg/tool/linu--64 pull.rebase(dns block)/tmp/go-build1872984022/b284/mcp.test /tmp/go-build1872984022/b284/mcp.test -test.testlogfile=/tmp/go-build1872984022/b284/testlog.txt -test.paniconexit0 -test.timeout=10m0s -test.v=true Y8ao1DxRd s.noreply.github.com> as -I abis -I 2987366/b171/_x005.o go_.�� 64/src/net -trimpath ache/go/1.25.7/x64/pkg/tool/linux_amd64/vet -p crypto/internal/-c -lang=go1.25 02.o(dns block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
This section details on the original issue you should resolve
<issue_title>[go-fan] Go Module Review: go-sdk (v1.3.0 upgrade available)</issue_title>
<issue_description># 🐹 Go Fan Report: modelcontextprotocol/go-sdk
Module Overview
The official Go SDK for Model Context Protocol servers and clients, maintained in collaboration with Google. This is our most critical dependency - it enables awmg to act as an MCP gateway by connecting to backend MCP servers and proxying their capabilities.
Repository: https://github.com/modelcontextprotocol/go-sdk
Current Version: v1.2.0 (released 2025-12-22)
Latest Version: v1.3.0 (released 2026-02-09) ⚡ UPDATE AVAILABLE
Last Updated: 2026-02-16T15:53:09Z (1 day ago!)
Current Usage in gh-aw-mcpg
Scale of Usage
internal/mcp/connection.goaloneNewClient,Client,ClientSession,ImplementationCommandTransport,StreamableClientTransport,SSEClientTransportListTools,CallTool,ListResources,ReadResource,ListPrompts,GetPromptUsage Pattern
Transport Strategy:
CommandTransportfor Docker-based MCP serversStreamableClientTransportfor 2025-03-26 specSSEClientTransportfor 2024-11-05 specResearch Findings
v1.3.0 Release Highlights (2026-02-09)
🚀 Major Enhancements
🐛 Critical Bugfixes
📦 Dependencies
v1.2.0 Features (Our Current Version)
MCP Spec 2025-11-25 Support:
New APIs Available (Not Yet Used):
jsonrpc.ErrorClientCapabilities.RootsV2and RootCapabilitiesCapabilitiesfields inServerOptionsandClientOptionsRecent Activity
Repository was updated yesterday (2026-02-16) with:
Improvement Opportunities
🏃 Quick Wins
1. Upgrade to v1.3.0 (HIGH PRIORITY)
Why: Critical bug fixes + performance improvements
Impact: Fixes HTTP header parsing bug that affects our backends
Risk: Low - stable release, no breaking changes
Effort: 15 minutes
Benefits:
Steps:
2. Use ClientOptions Pattern
Current: Passing
nilfor options everywhereBetter: Use ClientOptions for future-proofing and better control
Locations to fix:
internal/mcp/connection.go:94-97(newMCPClient)internal/testutil/mcptest/validator.go:19-22(NewValidatorClient)Example refactor:
Benefit: Better control over capabilities, prepares for future SDK enhancements
Effort: 30 minutes
✨ Feature Opportunities
1. Leverage Schema Caching (v1.3.0)
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.