internal/mcp: NewClient takes Transport

Pass the client Transport to NewClient instead of Connect.
Combine the ConnectionOptions with the ClientOptions.

Change-Id: I3acd6cf6d5bf46666742f2a73e2acaef2057ea77
Reviewed-on: https://go-review.googlesource.com/c/tools/+/670215
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Robert Findley <rfindley@google.com>
This commit is contained in:
Jonathan Amsterdam 2025-05-03 06:54:00 -04:00
commit f8098af1c5

View file

@ -49,8 +49,8 @@ func TestCmdTransport(t *testing.T) {
cmd := exec.Command(exe)
cmd.Env = append(os.Environ(), runAsServer+"=true")
client := mcp.NewClient("client", "v0.0.1", nil)
if err := client.Connect(ctx, mcp.NewCommandTransport(cmd), nil); err != nil {
client := mcp.NewClient("client", "v0.0.1", mcp.NewCommandTransport(cmd), nil)
if err := client.Start(ctx); err != nil {
log.Fatal(err)
}
got, err := client.CallTool(ctx, "greet", map[string]any{"name": "user"})