Skip to content

chore(deps): upgrade go-sdk to v1.7.0-pre.1 (new MCP spec)#2787

Draft
SamMorrowDrums wants to merge 3 commits into
mainfrom
sammorrowdrums-upgrade-go-sdk-mcp-spec
Draft

chore(deps): upgrade go-sdk to v1.7.0-pre.1 (new MCP spec)#2787
SamMorrowDrums wants to merge 3 commits into
mainfrom
sammorrowdrums-upgrade-go-sdk-mcp-spec

Conversation

@SamMorrowDrums

@SamMorrowDrums SamMorrowDrums commented Jun 28, 2026

Copy link
Copy Markdown
Collaborator

What

Upgrades github.com/modelcontextprotocol/go-sdk v1.6.1 → v1.7.0-pre.1, the pre-release that implements the new stateless MCP spec:

  • SEP-2575server/discover (stateless, initialize no longer required)
  • SEP-2567 — sessionless (no Mcp-Session-Id)
  • SEP-2322 — Multi Round-Trip Requests (MRTR)

Part of the epic github/copilot-mcp-core#1709 (MCP Spec adoption — MRTR & stateless transport).

Changes

  • go.mod / go.sum: SDK bump + two new indirect deps (golang.org/x/sync, golang.org/x/time) pulled in by the SDK's MRTR/logging code.
  • 113 toolsnaps regenerated. The only source-visible behaviour change: the new SDK drops omitempty from ToolAnnotations.ReadOnlyHint and IdempotentHint, so their documented default (false) is now emitted explicitly instead of omitted. (The SDK offers MCPGODEBUG=hintomitempty=1 to restore the old behaviour; we intentionally adopt the new, explicit serialization.)
  • .github/workflows/mcp-diff.yml: pinned both jobs to the cross-spec-aware mcp-server-diff@3c2d5ea (see below).

No application code changes were needed — the Go API is backward compatible. script/test, go vet, and script/lint are all green; script/generate-docs produced no changes.

Does one binary serve both old and new clients? Yes.

Verified empirically against this build: supportedProtocolVersions spans 2026-07-28 (new, stateless) down to 2024-11-05, the server registers both the legacy initialize handler and the new server/discover handler, and it negotiates per connection. An old client sending initialize with protocolVersion: 2025-06-18 negotiates 2025-06-18 and gets a full tools/list over both stdio and streamable-http; the new stateless path (server/discover + tools/list with no initialize, reserved _meta per request) serves at 2026-07-28. So this server stays backward-compatible with existing clients while serving the newest spec — no routing split / legacy fork required at the OSS layer.

Diff coverage

.github/workflows/mcp-diff.yml (stdio + streamable-http) diffs this branch's server against main across the config matrix. It is pinned to mcp-server-diff@3c2d5ea, which normalizes cross-spec-version churn — _meta protocol plumbing, CacheableResult cache hints, the initialize envelope, and tool-annotation default hints — so the annotation-serialization change above shows up as no diff rather than ~113 spurious idempotentHint/readOnlyHint: false entries. The pin is temporary; it moves to the v3.0.0 tag once that ships.

Co-authored-by: Copilot [email protected]

Copilot AI and others added 3 commits June 28, 2026 12:19
Bumps github.com/modelcontextprotocol/go-sdk v1.6.1 -> v1.7.0-pre.1, the
pre-release that implements the new stateless MCP spec (SEP-2575 server/discover,
SEP-2567 sessionless, MRTR per SEP-2322).

The only source-visible change is tool annotation serialization: the new SDK
drops `omitempty` on ToolAnnotations.ReadOnlyHint and IdempotentHint, so false
values are now emitted explicitly. Regenerated the 113 affected toolsnaps to
match. No behavioural changes; build, vet, test and lint all pass.

Refs: github/copilot-mcp-core#1709

Co-authored-by: Copilot <[email protected]>
Auto-generated by license-check workflow
Pins both the stdio and streamable-http MCP Server Diff jobs to the 3.0
branch of SamMorrowDrums/mcp-server-diff (commit 3c2d5ea), which normalizes
cross-spec-version churn: _meta protocol plumbing, CacheableResult cache
hints, the initialize envelope, and tool-annotation default hints. Without it
the go-sdk v1.6.1 -> v1.7.0-pre.1 bump would surface ~113 spurious
idempotentHint/readOnlyHint:false diffs from the SDK dropping omitempty.

Temporary commit pin; move to the v3.0.0 tag once it ships.

Refs: github/copilot-mcp-core#1709

Co-authored-by: Copilot <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants