Skip to main content
Glama
main.go2.09 kB
package main import ( "context" "log" "os" "strings" "github.com/tuannvm/mcp-trino/internal/config" "github.com/tuannvm/mcp-trino/internal/mcp" "github.com/tuannvm/mcp-trino/internal/trino" ) // These variables will be set during the build via ldflags var ( // Version is the server version, set by the build process Version = "dev" ) // Context keys are now imported from auth package func main() { log.Println("Starting Trino MCP Server...") // Initialize Trino configuration log.Println("Loading Trino configuration...") trinoConfig, err := config.NewTrinoConfigWithVersion(Version) if err != nil { log.Fatalf("Failed to load configuration: %v", err) } // Initialize Trino client log.Println("Connecting to Trino server...") trinoClient, err := trino.NewClient(trinoConfig) if err != nil { log.Fatalf("Failed to initialize Trino client: %v", err) } defer func() { if err := trinoClient.Close(); err != nil { log.Printf("Error closing Trino client: %v", err) } }() // Test connection by listing catalogs log.Println("Testing Trino connection...") catalogs, err := trinoClient.ListCatalogsWithContext(context.Background()) if err != nil { log.Fatalf("Failed to connect to Trino: %v", err) } log.Printf("Connected to Trino server. Available catalogs: %s", strings.Join(catalogs, ", ")) // Create MCP server log.Println("Initializing MCP server...") server := mcp.NewServer(trinoClient, trinoConfig, Version) // Choose server mode transport := getEnv("MCP_TRANSPORT", "stdio") log.Printf("Starting MCP server with %s transport...", transport) switch transport { case "stdio": if err := server.ServeStdio(); err != nil { log.Fatalf("STDIO server error: %v", err) } case "http": port := getEnv("MCP_PORT", "8080") if err := server.ServeHTTP(port); err != nil { log.Fatalf("HTTP server error: %v", err) } default: log.Fatalf("Unsupported transport: %s", transport) } log.Println("Server shutdown complete") } func getEnv(key, def string) string { if v, ok := os.LookupEnv(key); ok { return v } return def }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tuannvm/mcp-trino'

If you have feedback or need assistance with the MCP directory API, please join our Discord server