To create an MCP server, use mcpgo.NewServer with a name, version, and optional configuration options like mcpgo.WithLogging() and mcpgo.WithToolCapabilities(true). Once the server is configured, you can add tools using server.AddTools(tool) and start the server using a transport implementation like mcpgo.NewStdioServer(server). For a stdio server, call stdioServer.Listen(ctx, os.Stdin, os.Stdout).
// Create a server
server := mcpgo.NewServer(
"my-server",
"1.0.0",
mcpgo.WithLogging(),
mcpgo.WithToolCapabilities(true),
)
// ... define and add tools ...
// Create and run a stdio server
stdioServer, err := mcpgo.NewStdioServer(server)
if err != nil {
log.Fatalf("Failed to create stdio server: %v", err)
}
err = stdioServer.Listen(context.Background(), os.Stdin, os.Stdout)
if err != nil {
log.Fatalf("Server error: %v", err)
}