googleapis/mcp-toolbox · error

no connections found

Error message

no connections found

What it means

After filtering out Looker's reserved/system connection names (looker, looker__ilooker, etc.), this error is returned when zero user-defined database connections remain. The library throws it because the pulse tool's per-connection health checks have nothing to test. It indicates the Looker instance has no non-reserved connections configured, not an API failure.

Source

Thrown at internal/tools/looker/lookerhealthpulse/lookerhealthpulse.go:233

		"looker__internal__analytics__replica": {},
		"looker__internal__analytics":          {},
		"looker":                               {},
		"looker__ilooker":                      {},
	}

	connections, err := t.SdkClient.AllConnections("", source.LookerApiSettings())
	if err != nil {
		return nil, fmt.Errorf("error fetching connections: %w", err)
	}

	var filteredConnections []v4.DBConnection
	for _, c := range connections {
		if _, reserved := reservedNames[*c.Name]; !reserved {
			filteredConnections = append(filteredConnections, c)
		}
	}
	if len(filteredConnections) == 0 {
		return nil, fmt.Errorf("no connections found")
	}

	var results []map[string]interface{}
	for _, conn := range filteredConnections {
		var errors []string
		// Test connection (simulate test_connection endpoint)
		resp, err := t.SdkClient.TestConnection(*conn.Name, nil, source.LookerApiSettings())
		if err != nil {
			errors = append(errors, "API JSONDecode Error")
		} else {
			for _, r := range resp {
				if *r.Status == "error" {
					errors = append(errors, *r.Message)
				}
			}
		}

		// Run inline query for connection activity

View on GitHub (pinned to 8cc6e09de2)

Solutions

  1. Create and test at least one non-reserved database connection in Looker (Admin > Connections) before running the health pulse
  2. Check Admin > Connections in the Looker UI to confirm connections exist and are not all system/reserved ones
  3. If you expected existing connections to appear, verify the API user has permission to see all connections (restricted connections are still listed, but verify no naming collisions with reserved names)
Defensive patterns

Strategy: validation

Validate before calling

conns, err := sdkClient.AllConnections("", settings)
if err != nil { return err }
user := 0
for _, c := range conns {
	if !reservedNames[*c.Name] { user++ }
}
if user == 0 {
	return errors.New("no user-defined Looker connections configured")
}

Try / catch

if _, err := pulseTool.Invoke(ctx, src, params, token); err != nil && strings.Contains(err.Error(), "no connections found") {
	log.Println("configure at least one non-reserved connection in Looker Admin > Connections")
}

Prevention

When it happens

Trigger: AllConnections succeeds but every returned connection name matches the reservedNames set, or the instance genuinely has no connections, so len(filteredConnections) == 0.

Common situations: Freshly provisioned Looker instance with no database connections yet; all connections deleted; instance where only the built-in looker__ilooker system connection exists; user expected the pulse to cover system connections but they are excluded by design.

Related errors


AI-assisted analysis of googleapis/mcp-toolbox@8cc6e09de2 (2026-09-05). Data as JSON: /api/errors/a1438453068a7515. Report an issue: GitHub.