From looker-skills
Creates a Looker-to-BigQuery connection using Application Default Credentials, with IAM pre-flight checks and role grants. Execute only after authenticating Looker CLI.
How this skill is triggered — by the user, by Claude, or both
Slash command
/looker-skills:connecting-looker-to-bigqueryThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Creates a database connection in Looker to Google BigQuery. This instruction
Creates a database connection in Looker to Google BigQuery. This instruction uses Application Default Credentials (ADC), which is the recommended and most secure method for Looker Core instances running in Google Cloud, as it avoids managing service account keys.
installing-looker-cli
and authenticating-looker-cli skills).Identify the following parameters from Step 1 (Discovery):
Verify that the Looker Core service account has the necessary IAM roles on the target GCP project (BigQuery Data Viewer, BigQuery Job User, and Service Usage Consumer):
[!IMPORTANT] When running queries through the BigQuery connection from the Looker instance, Google Cloud requires the Looker service account to have permission to compute/use resources within the project where BigQuery is billed. Without the
roles/serviceusage.serviceUsageConsumerrole (which containsserviceusage.services.use), Looker cannot authenticate or dispatch query jobs to BigQuery, resulting in a400 Bad Requesterror.
./skills/onboarding-preflight-check/scripts/preflight_check.sh \
--mode iam \
--looker-project {looker_gcp_project_id} \
--bq-project {bigquery_gcp_project_id}
project_number=$(gcloud projects describe {looker_gcp_project_id} --format="value(projectNumber)")
Then run the following commands to grant the required roles to the Looker service account:
gcloud projects add-iam-policy-binding {bigquery_gcp_project_id} \
--member="serviceAccount:service-${project_number}@gcp-sa-looker.iam.gserviceaccount.com" \
--role="roles/bigquery.dataViewer"
gcloud projects add-iam-policy-binding {bigquery_gcp_project_id} \
--member="serviceAccount:service-${project_number}@gcp-sa-looker.iam.gserviceaccount.com" \
--role="roles/bigquery.jobUser"
gcloud projects add-iam-policy-binding {bigquery_gcp_project_id} \
--member="serviceAccount:service-${project_number}@gcp-sa-looker.iam.gserviceaccount.com" \
--role="roles/serviceusage.serviceUsageConsumer"
To avoid CLI parsing errors with complex arguments, write the connection
specifications directly to ./connection_config.json in your workspace.
[!IMPORTANT] For the BigQuery JDBC driver: -
hostmust be set to your GCP Project ID (which supports hyphens). -databaseandschemamust both be set to your Dataset ID (which is strictly alphanumeric/underscores only). Settingdatabaseto a project ID with hyphens will cause immediate query execution failures.
{
"name": "{connection_name}",
"dialect_name": "bigquery_standard_sql",
"uses_application_default_credentials": true,
"host": "{gcp_project_id}",
"database": "{dataset_name}",
"schema": "{dataset_name}"
}
Execute the connection import CLI command, pointing to your payload file:
looker-cli connection import ./connection_config.json
Retrieve the connection details to ensure it was created correctly:
looker-cli connection cat {connection_name}
npx claudepluginhub looker-open-source/looker-skillsOrchestrates the end-to-end Looker developer onboarding journey: pre-flight, discovery, CLI, auth, connection, project, model, and dashboard creation. Start here for a new Looker setup.
Guides BigQuery engineering with bq CLI for queries, table ops, data load/export; GoogleSQL syntax, functions, window funcs; partitioning, clustering, optimization.
Creates and troubleshoots AWS Glue connections to JDBC databases (Oracle, SQL Server, PostgreSQL, MySQL, RDS), Redshift, Snowflake, and BigQuery. Registers credentials, configures VPC, discovers existing connections, and tests.