internal/mcp: clean up handling of content

Add support for all content types, and formalize the conversion of
content to and from the wire format (as a discriminated union).

Change-Id: I93678ce98c02176a524d2c82425fb1267ad68bf0
Reviewed-on: https://go-review.googlesource.com/c/tools/+/669135
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Jonathan Amsterdam <jba@google.com>
Auto-Submit: Robert Findley <rfindley@google.com>
This commit is contained in:
Rob Findley 2025-04-30 14:49:52 +00:00 • committed by Gopher Robot
commit bf608eeeae

View file

@ -40,11 +40,11 @@ func ExampleServer() {
log.Fatal(err)
}
content, err := serverConnection.CallTool(ctx, "greet", map[string]any{"name": "user"})
res, err := serverConnection.CallTool(ctx, "greet", map[string]any{"name": "user"})
if err != nil {
log.Fatal(err)
}
fmt.Println(content[0].(mcp.TextContent).Text)
fmt.Println(res.Content[0].Text)
serverConnection.Close()
clientConnection.Wait()