deps: bump github.com/modelcontextprotocol/go-sdk from 1.7.0 to 1.8.0 in the go-dependencies group
Bumps the go-dependencies group with 1 update: github.com/modelcontextprotocol/go-sdk.
Updates github.com/modelcontextprotocol/go-sdk from 1.7.0 to 1.8.0
Release notes
Sourced from github.com/modelcontextprotocol/go-sdk's releases.
v1.8.0
This release is equivalent to v1.8.0-pre.2. Thank you to those who tested the pre-release.
In this release we introduce several fixes and improvements on top of v1.7.0. It adds no new protocol revision: the supported set is unchanged, and
2026-07-28remains the newest version the SDK negotiates.The bulk of the work is hardening the transports against resource exhaustion, closing session leaks, deadlocks and teardown hangs found by users running the new protocol at scale, and giving servers explicit control over which protocol versions they advertise.
Two behavior changes are guarded by new
MCPGODEBUGflags; see the section below.Hardening against resource exhaustion
Every decoding path that buffers incoming input is now bounded. JSON payloads are rejected past 1000 levels of nesting, before the parser recurses. Both SSE readers cap the bytes buffered for a single event via
MaxEventSizeonSSEClientTransportandStreamableClientTransport, and the stdio transport caps a single JSON-RPC frame viaStdioTransport.MaxLineLength.On the OAuth side, dynamic client registration responses are bounded to 1 MB, and the discovery code now validates metadata documents rather than trusting them.
- internal/json: json nesting depth check by
@yarolegovich(#1200)- mcp: add an sse event size cap by
@yarolegovich(#1205)- mcp: add a max request body size of the old transport by
@yarolegovich(#1224)- oauthex: bound dcr read to 1mb by
@yarolegovich(#1206)- oauthex: oauth discovery checks by
@yarolegovich(#1220)Restricting the protocol versions a server supports
ServerOptions.SupportedProtocolVersionslets a server narrow the set of versions it advertises and negotiates. The list can only narrow, never widen; naming a version the SDK does not implement panics at construction. Relatedly, a stateful streamable handler receiving a2026-07-28request now returns that same JSON-RPC error instead of a plain-text 400, so the client can renegotiate down instead of losing the connection.
- mcp: allow restricting the protocol versions a server supports by
@guglielmo-san(#1199)- mcp: return json-rpc error on stateful server serving protocolVersion20260728 requests by
@guglielmo-san(#1143)- mcp: limit SSE discover supportedVersions to SSE-defined revisions by
@arimu1(#1121)- mcp: prefer the negotiated protocol version over the request context by
@gwyszynski-sa(#1163)- mcp: export ClientSessionOptions.ProtocolVersion by
@arimu1(#1127)Per-request cache control
ServerOptions.SetCacheableis a new hook that decides thettlMsandcacheScopefields of every result carrying them:server/discover, the four list methods, andresources/read. It runs once per result, after the handler returns, with the values that handler produced, so it can set a policy globally while still letting an individual handler override it. Anything left unset falls back to the protocol default ofpublic.
- mcp: allow per request Cacheable customization by
@guglielmo-san(#1203)Behavior changes guarded by MCPGODEBUG
Two new escape-hatch flags restore the previous behavior of the changes above. Both will be removed in v1.9.0.
plaintextstatefulrejection=1— restore the plain-texthttp.Error400 body a statefulStreamableHTTPHandlerpreviously returned for a request carrying per-request metadata. The default is now a JSON-RPC-32022 CodeUnsupportedProtocolVersionerror with anUnsupportedProtocolVersionDatapayload advertising the legacy versions the server supports. Introduced by #1143.blockingcancelnotify=1— restore the previous behavior where a cancelled call waits synchronously fornotifications/cancelledto be delivered (up to 5s) before returning, joining any delivery error into the caller's error. The default now retires the call immediately and sends the notification asynchronously. Introduced by #1151.Options below were removed, according to plan:
seterroroverwriteenableoriginverificationdisablecontenttypecheck
... (truncated)
Commits
3f3b699refactor: remove legacy MCPGODEBUG compatibility for new protocol release (#1...830f0b7mcp: update conformance tests (#1231)12cbafeoauthex: oauth discovery checks (#1220)3632967mcp: add an sse event size cap (#1205)0d3036fmcp: allow per request Cacheable customization (#1203)cb0de64mcp: add a max request body size of the old transport (#1224)2fdabdemcp: do not check metatada on notifications (#1215)59185e6build(deps): bump ossf/scorecard-action from 2.4.3 to 2.4.4 (#1217)a6764cfbuild(deps): bump golang/govulncheck-action from 1.0.4 to 1.1.0 (#1218)8227246fix: only subscribe when server advertises capability (#1221)- Additional commits viewable in compare view
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore <dependency name> major versionwill close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)@dependabot ignore <dependency name> minor versionwill close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)@dependabot ignore <dependency name>will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)@dependabot unignore <dependency name>will remove all of the ignore conditions of the specified dependency@dependabot unignore <dependency name> <ignore condition>will remove the ignore condition of the specified dependency and ignore conditions
Summary by cubic
Bumps github.com/modelcontextprotocol/go-sdk from v1.7.0 to v1.8.0. The update hardens transports against resource exhaustion and adds server options for protocol version restriction and per-request cache control; no new protocol revision is introduced.
Migration
- Two behavior changes are guarded by new
MCPGODEBUGflags; both flags will be removed in v1.9.0. - Three
MCPGODEBUGoptions were removed:seterroroverwrite,enableoriginverification, anddisablecontenttypecheck.