Skip to main content
Glama
grafana

Grafana

Official
by grafana
testcontext_test.go1.74 kB
//go:build integration package tools import ( "context" "fmt" "net/url" "os" "github.com/go-openapi/strfmt" "github.com/grafana/grafana-openapi-client-go/client" mcpgrafana "github.com/grafana/mcp-grafana" ) // newTestContext creates a new context with the Grafana URL and service account token // from the environment variables GRAFANA_URL and GRAFANA_SERVICE_ACCOUNT_TOKEN (or deprecated GRAFANA_API_KEY). func newTestContext() context.Context { cfg := client.DefaultTransportConfig() cfg.Host = "localhost:3000" cfg.Schemes = []string{"http"} // Extract transport config from env vars, and set it on the context. if u, ok := os.LookupEnv("GRAFANA_URL"); ok { url, err := url.Parse(u) if err != nil { panic(fmt.Errorf("invalid %s: %w", "GRAFANA_URL", err)) } cfg.Host = url.Host // The Grafana client will always prefer HTTPS even if the URL is HTTP, // so we need to limit the schemes to HTTP if the URL is HTTP. if url.Scheme == "http" { cfg.Schemes = []string{"http"} } } // Check for the new service account token environment variable first if apiKey := os.Getenv("GRAFANA_SERVICE_ACCOUNT_TOKEN"); apiKey != "" { cfg.APIKey = apiKey } else if apiKey := os.Getenv("GRAFANA_API_KEY"); apiKey != "" { // Fall back to the deprecated API key environment variable cfg.APIKey = apiKey } else { cfg.BasicAuth = url.UserPassword("admin", "admin") } client := client.NewHTTPClientWithConfig(strfmt.Default, cfg) grafanaCfg := mcpgrafana.GrafanaConfig{ Debug: true, URL: "http://localhost:3000", APIKey: cfg.APIKey, BasicAuth: cfg.BasicAuth, } ctx := mcpgrafana.WithGrafanaConfig(context.Background(), grafanaCfg) return mcpgrafana.WithGrafanaClient(ctx, client) }

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/grafana/mcp-grafana'

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