internal/mcp: update protocol versions

Update protocol versions to reflect that 2025-03-26 is supported, and
add server logic to negotiate the supported version with the client.

Update the client to set the protocol version, fixing what was probably
a spec violation.

+tests

Change-Id: I564b591b3daf018dd54f5c7e5d8f2d2b1e4ff502
Reviewed-on: https://go-review.googlesource.com/c/tools/+/682516
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Sam Thanawalla <samthanawalla@google.com>
This commit is contained in:
Rob Findley 2025-06-18 04:42:52 +00:00 • committed by Robert Findley
commit 5ae2a9f222

View file

@ -2,7 +2,7 @@
// Use of this source code is governed by an MIT-style
// license that can be found in the LICENSE file.
//go:build go1.24 && goexperiment.synctest
//go:build (go1.24 && goexperiment.synctest) || go1.25
package mcp
@ -85,7 +85,7 @@ func TestServerConformance(t *testing.T) {
// By comparison, gopls has a complicated framework based on progress
// reporting and careful accounting to detect when all 'expected' work
// on the server is complete.
synctest.Run(func() { runServerTest(t, test) })
runSyncTest(t, func(t *testing.T) { runServerTest(t, test) })
// TODO: in 1.25, use the following instead:
// synctest.Test(t, func(t *testing.T) {