-
Notifications
You must be signed in to change notification settings - Fork 298
Closed
Closed
Copy link
Labels
cookieIssue Monster Loves Cookies!Issue Monster Loves Cookies!dependenciesPull requests that update a dependency filePull requests that update a dependency filego
Description
Summary
Update github.com/modelcontextprotocol/go-sdk dependency from v1.3.1 to v1.4.0
Current State
- Package: github.com/modelcontextprotocol/go-sdk
- Current Version: v1.3.1
- Proposed Version: v1.4.0
- Update Type: Minor version update with behavior changes
Why Separate Issue
- Two intentional behavior changes that may require testing:
- DNS rebinding protection: Requests to localhost with non-localhost
Hostheader are now rejected by default - JSON escaping change: HTML escaping in JSON marshaling is now disabled by default
- DNS rebinding protection: Requests to localhost with non-localhost
- New features added (Sampling with Tools, experimental client-side OAuth)
- Full MCP 2025-11-25 specification implementation completed
Safety Assessment
- DNS rebinding protection (new default behavior): Any MCP server running on localhost that receives requests with non-localhost
Hostheaders will now return errors. This could affect local development setups or proxy configurations. - JSON escaping change: If downstream systems expected HTML-escaped JSON (e.g.,
\u003cfor<), they will now receive unescaped output. Review all MCP message consumers. - Both behaviors can be temporarily disabled via
MCPGODEBUGenvironment variable (will be removed in v1.6.0) - Security fix for case-sensitive JSON unmarshaling was cherry-picked into v1.3.1 (already included in current version)
Changes
- feat: implement sampling with tools (
CreateMessageWithTools) - feat: add automatic DNS rebinding protection for localhost servers (
MCPGODEBUG=disablelocalhostprotection=1to disable) - feat: update JSON marshaling to not HTML-escape messages (
MCPGODEBUG=jsonescaping=1to restore old behavior) - feat: add Extensions field to capabilities (SEP-2133)
- feat: experimental client-side OAuth support (build tag
mcp_go_client_oauth) - fix: validation only for accept action
- fix: allow SSE messages with empty data
- fix: Content-Length header parsing to be case-insensitive
- fix: multi-select enum elicitation
- fix: return 400 instead of 500 when body read fails in stateless mode
Links
- v1.4.0 Release
- Package Repository
- [Go Package]((pkg.go.dev/redacted)
Recommended Action
go get github.com/modelcontextprotocol/go-sdk@v1.4.0
go mod tidyTesting Notes
- Run all tests:
make test - Test MCP server functionality:
gh aw mcp listandgh aw mcp inspect - Verify MCP tool execution in workflows still works correctly
- Check localhost MCP server connections are not broken by DNS rebinding protection
- Review any code that parses MCP JSON messages for HTML-escape sensitivity
- Test with
DEBUG=workflow:* gh aw compileto check for any MCP-related compilation issues
Generated by Dependabot Dependency Checker
- expires on Mar 4, 2026, 9:25 AM UTC
Reactions are currently unavailable
Metadata
Metadata
Labels
cookieIssue Monster Loves Cookies!Issue Monster Loves Cookies!dependenciesPull requests that update a dependency filePull requests that update a dependency filego