feat(mcp): adopt the 2026-07-28 protocol on the server (go-sdk v1.6.1 -> v1.7.0) #387

Closed
opened 2026-08-17 04:06:19 +00:00 by hexajon · 0 comments
Owner

Context

The current published MCP spec is 2026-07-28. madtea's server speaks 2025-11-25 today, one revision behind.

Verified:

  • Server dependency is github.com/modelcontextprotocol/go-sdk v1.6.1 (go.mod). v1.6.1 caps its latest protocol at 2025-11-25 (mcp/shared.go: latestProtocolVersion = protocolVersion20251125).
  • go-sdk v1.7.0 implements 2026-07-28 (mcp/shared.go:50-51: latestProtocolVersion = protocolVersion20260728 = "2026-07-28"; supported list at :59-63).
  • v1.7.0 negotiates DOWN to 2025-11-25 for any client that does not request 2026-07-28 (mcp/shared.go:72-78, return protocolVersion20251125). Current clients keep working.

Goal

Bump the server to go-sdk v1.7.0 so madtea serve advertises 2026-07-28 as its latest protocol, while still negotiating down for older clients.

Scope

  • Bump github.com/modelcontextprotocol/go-sdk v1.6.1 -> v1.7.0 in go.mod; go mod tidy.
  • Reconcile server code to v1.7.0 API changes. v1.7.0 adds 2026-07-28-specific mechanisms (an _meta-based field path, and it deprecates the old resumability mechanism - visible in the go-sdk v1.7.0 mcp source).
  • Refresh the MCP spec 2025-06-18 doc comment at internal/mcp/tool_meta.go:24 if the underlying semantics changed.
  • Full gate green plus mcp-conformance green.

Acceptance criteria

  • go.mod requires go-sdk v1.7.0 or newer; go mod tidy clean.
  • madtea serve advertises 2026-07-28 on initialize to a client that requests it.
  • A client that only speaks 2025-11-25 still negotiates 2025-11-25 and works - no interop break.
  • ./scripts/gate.sh green; mcp-conformance green.

Out of scope (blocked on upstream)

The conformance harness cannot validate 2026-07-28 yet: the TypeScript SDK it uses (@modelcontextprotocol/sdk) does not implement 2026-07-28 in any published release (latest 1.30.0 still caps at 2025-11-25). The harness stays at 2025-11-25 until the TS SDK ships the new spec. That harness bump is separate work, blocked until upstream releases it.

Related to the MCP spec-surface epic #10 (feature adoption at 2025-11-25). Kept standalone because that epic is a different axis - this is the protocol-version move, not a feature in its matrix.

## Context The current published MCP spec is `2026-07-28`. madtea's server speaks `2025-11-25` today, one revision behind. Verified: - Server dependency is `github.com/modelcontextprotocol/go-sdk v1.6.1` (go.mod). v1.6.1 caps its latest protocol at `2025-11-25` (`mcp/shared.go`: `latestProtocolVersion = protocolVersion20251125`). - go-sdk `v1.7.0` implements `2026-07-28` (`mcp/shared.go:50-51`: `latestProtocolVersion = protocolVersion20260728 = "2026-07-28"`; supported list at `:59-63`). - v1.7.0 negotiates DOWN to `2025-11-25` for any client that does not request `2026-07-28` (`mcp/shared.go:72-78`, `return protocolVersion20251125`). Current clients keep working. ## Goal Bump the server to go-sdk `v1.7.0` so `madtea serve` advertises `2026-07-28` as its latest protocol, while still negotiating down for older clients. ## Scope - Bump `github.com/modelcontextprotocol/go-sdk` `v1.6.1 -> v1.7.0` in go.mod; `go mod tidy`. - Reconcile server code to v1.7.0 API changes. v1.7.0 adds `2026-07-28`-specific mechanisms (an `_meta`-based field path, and it deprecates the old resumability mechanism - visible in the go-sdk v1.7.0 `mcp` source). - Refresh the `MCP spec 2025-06-18` doc comment at `internal/mcp/tool_meta.go:24` if the underlying semantics changed. - Full gate green plus mcp-conformance green. ## Acceptance criteria - go.mod requires go-sdk `v1.7.0` or newer; `go mod tidy` clean. - `madtea serve` advertises `2026-07-28` on initialize to a client that requests it. - A client that only speaks `2025-11-25` still negotiates `2025-11-25` and works - no interop break. - `./scripts/gate.sh` green; mcp-conformance green. ## Out of scope (blocked on upstream) The conformance harness cannot validate `2026-07-28` yet: the TypeScript SDK it uses (`@modelcontextprotocol/sdk`) does not implement `2026-07-28` in any published release (latest `1.30.0` still caps at `2025-11-25`). The harness stays at `2025-11-25` until the TS SDK ships the new spec. That harness bump is separate work, blocked until upstream releases it. ## Related Related to the MCP spec-surface epic #10 (feature adoption at `2025-11-25`). Kept standalone because that epic is a different axis - this is the protocol-version move, not a feature in its matrix.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sixfold-space/madtea#387
No description provided.