Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Google Looker connector

OAuth 2.0 AnalyticsDatabasesProductivity

Connect to Google Looker or self-hosted Looker Core. Browse dashboards, run Looks, query LookML models, and access BI data programmatically.

Google Looker connector

  1. Terminal window
    npm install @scalekit-sdk/node

    Full SDK reference: Node.js | Python

  2. Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Register your Google Looker credentials with Scalekit so it handles the token lifecycle. You do this once per environment.

    Dashboard setup steps

    Register your Scalekit environment with the Google Looker connector so Scalekit handles the OAuth flow and token lifecycle for you. The connection name you create will be used to identify and invoke the connection programmatically.

    1. Create a Google Looker instance

      Google Looker (Google Cloud core) runs as a managed service in your Google Cloud project. You must create an instance before setting up OAuth credentials.

      • Go to Google Cloud Console and select or create a project.

      • In the navigation menu, go to Looker (or search for “Looker” in the search bar).

      • Click Create Instance and follow the setup wizard. Note your instance hostname — it will look like your-company.cloud.looker.com. You will need this when adding connected accounts in Scalekit.

        Google Cloud Looker instance creation page showing setup steps

    2. Create OAuth credentials in Google Cloud Console

      Google Looker uses Google OAuth 2.0. You need OAuth client credentials from the same Google Cloud project that hosts your Looker instance.

      • In Google Cloud Console, go to APIs & Services > Credentials.

      • Click Create Credentials > OAuth client ID.

      • Select Web application as the application type.

      • Copy the redirect URI from Scalekit (see next step) and paste it under Authorized redirect URIs.

      • Click Create. Copy the Client ID and Client Secret.

    3. Add credentials in Scalekit

      • In Scalekit dashboard, go to AgentKit > Connections > Create Connection. Search for Google Looker and click Create.

        Google Looker connector search in Scalekit dashboard

      • Copy the Redirect URI shown on the configuration page. Go back to Google Cloud Console and add this URI to your OAuth client’s authorized redirect URIs.

      • Return to Scalekit and enter your credentials:

        • Client ID (from Google Cloud Console)
        • Client Secret (from Google Cloud Console)

        Google Looker connection configuration in Scalekit

      • Keep Access Type set to Offline to receive a refresh token for long-lived access.

      • Click Save.

    4. Add a connected account

      Each end-user who connects their Looker instance needs a connected account. The Looker Instance Hostname is required — this is the hostname of the Looker instance the user is accessing (without https://), for example your-company.cloud.looker.com.

      Via the Scalekit dashboard (for testing)

      • Go to Connected Accounts > Add Account.
      • Enter the User ID and Looker Instance Hostname, then click Save.
      • Complete the Google OAuth flow in the popup to authorize access.

      Via the SDK (for production)

      Generate an authorization link and redirect your user to it. After the user authorizes, Scalekit stores the token automatically.

      const { link } = await scalekit.actions.getAuthorizationLink({
      connectionName: 'googlelooker',
      identifier: 'user_123',
      state: { instanceUrl: 'your-company.cloud.looker.com' },
      })
      // Redirect the user to `link` to complete OAuth
  4. quickstart.ts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENV_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'googlelooker'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Google Looker:', link)
    process.stdout.write('Press Enter after authorizing...')
    await new Promise(r => process.stdin.once('data', r))
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'googlelooker_list_dashboards',
    toolInput: {},
    })
    console.log(result)

Connect this agent connector to let your agent:

  • Run look, inline query — Run a saved Look and return the results in the specified format
  • List models, looks, folders — List all available LookML models in the Looker instance
  • Get look results, dashboard — Run a saved Look and return results in the specified format

Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.

googlelooker_get_dashboard # Retrieve the full metadata of a Looker dashboard by its ID, including all tile definitions (charts, tables, text, filters), layout, linked Looks, and underlying queries. 2 params

Retrieve the full metadata of a Looker dashboard by its ID, including all tile definitions (charts, tables, text, filters), layout, linked Looks, and underlying queries.

Name Type Required Description
dashboard_id string required The ID of the Looker dashboard to retrieve
fields string optional Comma-separated list of dashboard fields to include in the response
googlelooker_get_look_results # Run a saved Look and return results in the specified format. Executes the Look's underlying query against the connected database. Use result_format to control the output: json for structured data, csv for tabular export, xlsx for Excel. 14 params

Run a saved Look and return results in the specified format. Executes the Look's underlying query against the connected database. Use result_format to control the output: json for structured data, csv for tabular export, xlsx for Excel.

Name Type Required Description
look_id string required The numeric ID of the Look to fetch results from
result_format string required Desired output format for results. Accepted values: json, json_detail, json_bi, csv, txt, html, md, xlsx, sql, png, jpg
apply_formatting boolean optional Apply model-specified formatting to each result value
apply_vis boolean optional Apply visualization options to results
cache boolean optional Get results from cache if available. Set to false to force a fresh database query.
cache_only boolean optional Retrieve any results from cache even if expired
force_production boolean optional Override development mode settings to force use of production models
generate_drill_links boolean optional Generate drill links for json_detail format
image_height integer optional Render height for image formats (png, jpg)
image_width integer optional Render width for image formats (png, jpg)
limit integer optional Maximum number of rows to return. May override the limit in the saved query.
path_prefix string optional Prefix to use for drill links (URL encoded)
rebuild_pdts boolean optional Rebuild Persistent Derived Tables (PDTs) used in the query
server_table_calcs boolean optional Perform table calculations on query results server-side
googlelooker_list_dashboards # List all dashboards in a Looker instance that the caller has access to. Returns dashboard metadata including ID, title, folder, description, and last updated time. 1 param

List all dashboards in a Looker instance that the caller has access to. Returns dashboard metadata including ID, title, folder, description, and last updated time.

Name Type Required Description
fields string optional Comma-separated list of dashboard fields to include in the response
googlelooker_list_explores # Retrieve a LookML model by name. The response includes an explores array listing all available explores in that model. Use fields=explores to limit the response to just explore metadata. 2 params

Retrieve a LookML model by name. The response includes an explores array listing all available explores in that model. Use fields=explores to limit the response to just explore metadata.

Name Type Required Description
model_name string required The LookML model name to retrieve explores for
fields string optional Comma-separated list of model fields to include in the response
googlelooker_list_folders # List all folders (spaces) in the Looker instance including personal folders. Returns folder ID, name, parent folder, creator, and content counts. Use folder IDs to filter Looks and Dashboards by location. 1 param

List all folders (spaces) in the Looker instance including personal folders. Returns folder ID, name, parent folder, creator, and content counts. Use folder IDs to filter Looks and Dashboards by location.

Name Type Required Description
fields string optional Comma-separated list of folder fields to include in the response
googlelooker_list_looks # List all Looks the caller has access to. Returns Look metadata including ID, title, folder, owner, and last run time. Soft-deleted Looks are excluded. 4 params

List all Looks the caller has access to. Returns Look metadata including ID, title, folder, owner, and last run time. Soft-deleted Looks are excluded.

Name Type Required Description
fields string optional Comma-separated list of Look fields to include in the response
limit integer optional Maximum number of Looks to return
offset integer optional Number of results to skip before returning any
sorts string optional Comma-separated list of fields to sort results by
googlelooker_list_models # List all available LookML models in the Looker instance. Returns each model's name, project, allowed database connections, and explore count. Use this to discover which models and explores are available before running queries. 1 param

List all available LookML models in the Looker instance. Returns each model's name, project, allowed database connections, and explore count. Use this to discover which models and explores are available before running queries.

Name Type Required Description
fields string optional Comma-separated list of model fields to include in the response
googlelooker_run_inline_query # Execute an ad-hoc query against a LookML model and explore without saving it as a Look. Specify fields, filters, sorts, and a row limit. Useful for one-off analysis and agent-driven data exploration. Complex queries may take longer; 120s timeout applied. 7 params

Execute an ad-hoc query against a LookML model and explore without saving it as a Look. Specify fields, filters, sorts, and a row limit. Useful for one-off analysis and agent-driven data exploration. Complex queries may take longer; 120s timeout applied.

Name Type Required Description
fields string required Comma-separated list of LookML field names to include (e.g., orders.count,orders.total_revenue)
model string required The LookML model name to query against
result_format string required Output format for the query results. Accepted values: json, json_detail, json_bi, csv, txt, html, md, xlsx, sql, png, jpg
view string required The explore (view) name within the model to query
filters object optional Filter conditions as a JSON object (field_name: filter_value pairs)
limit integer optional Maximum number of rows to return from the query
sorts string optional Comma-separated list of sort fields with optional direction (e.g., orders.total_revenue desc)
googlelooker_run_look # Run a saved Look and return the results in the specified format. Executes the Look's underlying query against the connected database and returns the current data. 14 params

Run a saved Look and return the results in the specified format. Executes the Look's underlying query against the connected database and returns the current data.

Name Type Required Description
look_id string required The numeric ID of the Look to run
result_format string required Desired output format for results. Accepted values: json, json_detail, csv, txt, html, md, xlsx, sql, png, jpg
apply_formatting boolean optional Apply model-specified formatting to each result value
apply_vis boolean optional Apply visualization options to results
cache boolean optional Get results from cache if available. Set to false to force a fresh database query.
cache_only boolean optional Retrieve any results from cache even if expired
force_production boolean optional Override development mode settings to force use of production models
generate_drill_links boolean optional Generate drill links for json_detail format
image_height integer optional Render height for image formats (png, jpg)
image_width integer optional Render width for image formats (png, jpg)
limit integer optional Maximum number of rows to return. May override the limit in the saved query.
path_prefix string optional Prefix to use for drill links (URL encoded)
rebuild_pdts boolean optional Rebuild Persistent Derived Tables (PDTs) used in the query
server_table_calcs boolean optional Perform table calculations on query results server-side