blob: 8b79cf1c219c7bb199550696dfe31cbaa6eb14f5 [file] [log] [blame]
package main
import (
"bufio"
"context"
"flag"
"os"
"go.skia.org/infra/go/sklog"
"go.skia.org/infra/mcp/client/go/mcpClient"
)
func main() {
server := flag.String("server", "", "URL to the SSE MCP server")
flag.Parse()
sklog.Infof("Starting MCP client")
ctx := context.Background()
if *server == "" {
sklog.Fatalf("Server param is required.")
}
hadesClient, err := mcpClient.NewMCPClient(ctx, *server)
if err != nil {
sklog.Fatal(err)
}
chatMgr, err := mcpClient.NewChatManager(ctx, hadesClient)
if err != nil {
sklog.Fatal(err)
}
chat, err := chatMgr.StartChat(ctx)
if err != nil {
sklog.Fatal(err)
}
sklog.Info("Enter prompt: ")
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
msg := scanner.Text()
res, err := chatMgr.SendChatMessage(ctx, chat, msg)
if err != nil {
sklog.Fatal(err)
}
sklog.Infof("Received response: %s", res)
sklog.Info("Enter prompt: ")
}
}