## Description This PR adds a new section to the `looker_mcp.md` document that explains how to connect Looker to Antigravity. The new **"Connect with Antigravity"** section provides two methods for connecting: - **MCP Store:** A straightforward method using the built-in MCP Store in Antigravity. - **Custom config:** For connecting to a custom MCP server by adding a configuration to the mcp_config.json file. These changes will help users easily connect Looker to Antigravity. ## PR Checklist > Thank you for opening a Pull Request! Before submitting your PR, there are a > few things you can do to make sure it goes smoothly: - [x] Make sure you reviewed [CONTRIBUTING.md](https://github.com/googleapis/genai-toolbox/blob/main/CONTRIBUTING.md) - [x] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/genai-toolbox/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [x] Ensure the tests and linter pass - [ ] Code coverage does not decrease (if any source code was changed) - [ ] Appropriate docs were updated (if necessary) - [ ] Make sure to add `!` if this involve a breaking change Co-authored-by: Averi Kitsch <akitsch@google.com>
13 KiB
title, type, weight, description
| title | type | weight | description |
|---|---|---|---|
| Looker using MCP | docs | 2 | Connect your IDE to Looker using Toolbox. |
Model Context Protocol (MCP) is an open protocol for connecting Large Language Models (LLMs) to data sources like Postgres. This guide covers how to use MCP Toolbox for Databases to expose your developer assistant tools to a Looker instance:
- Gemini-CLI
- Cursor
- Windsurf (Codium)
- Visual Studio Code (Copilot)
- Cline (VS Code extension)
- Claude desktop
- Claude code
- Antigravity
Set up Looker
-
Get a Looker Client ID and Client Secret. Follow the directions here.
-
Have the base URL of your Looker instance available. It is likely something like
https://looker.example.com. In some cases the API is listening at a different port, and you will need to usehttps://looker.example.com:19999instead.
Connect with Antigravity
You can connect Looker to Antigravity in the following ways:
- Using the MCP Store
- Using a custom configuration
{{< notice note >}} You don't need to download the MCP Toolbox binary to use these methods. {{< /notice >}}
{{< tabpane text=true >}} {{% tab header="MCP Store" lang="en" %}} The most straightforward way to connect to Looker in Antigravity is by using the built-in MCP Store.
- Open Antigravity and open the editor's agent panel.
- Click the "..." icon at the top of the panel and select MCP Servers.
- Locate Looker in the list of available servers and click Install.
- Follow the on-screen prompts to securely link your accounts where applicable.
After you install Looker in the MCP Store, resources and tools from the server are automatically available to the editor.
{{% /tab %}} {{% tab header="Custom config" lang="en" %}} To connect to a custom MCP server, follow these steps:
-
Open Antigravity and navigate to the MCP store using the "..." drop-down at the top of the editor's agent panel.
-
To open the mcp_config.json file, click MCP Servers and then click Manage MCP Servers > View raw config.
-
Add the following configuration, replace the environment variables with your values, and save.
{ "mcpServers": { "looker": { "command": "npx", "args": ["-y", "@toolbox-sdk/server", "--prebuilt", "looker", "--stdio"], "env": { "LOOKER_BASE_URL": "https://looker.example.com", "LOOKER_CLIENT_ID": "your-client-id", "LOOKER_CLIENT_SECRET": "your-client-secret" } } } }
{{% /tab %}} {{< /tabpane >}}
Install MCP Toolbox
-
Download the latest version of Toolbox as a binary. Select the correct binary corresponding to your OS and CPU architecture. You are required to use Toolbox version v0.10.0+:
{{< tabpane persist=header >}} {{< tab header="linux/amd64" lang="bash" >}} curl -O https://storage.googleapis.com/genai-toolbox/v0.24.0/linux/amd64/toolbox {{< /tab >}}
{{< tab header="darwin/arm64" lang="bash" >}} curl -O https://storage.googleapis.com/genai-toolbox/v0.24.0/darwin/arm64/toolbox {{< /tab >}}
{{< tab header="darwin/amd64" lang="bash" >}} curl -O https://storage.googleapis.com/genai-toolbox/v0.24.0/darwin/amd64/toolbox {{< /tab >}}
{{< tab header="windows/amd64" lang="bash" >}} curl -O https://storage.googleapis.com/genai-toolbox/v0.24.0/windows/amd64/toolbox.exe {{< /tab >}} {{< /tabpane >}}
-
Make the binary executable:
chmod +x toolbox -
Verify the installation:
./toolbox --version
Configure your MCP Client
{{< tabpane text=true >}} {{% tab header="Gemini-CLI" lang="en" %}}
-
Install Gemini-CLI.
-
Create a directory
.geminiin your home directory if it doesn't exist. -
Create the file
.gemini/settings.jsonif it doesn't exist. -
Add the following configuration, or add the mcpServers stanza if you already have a
settings.jsonwith content. Replace the path to the toolbox executable and the environment variables with your values, and save:{ "mcpServers": { "looker-toolbox": { "command": "./PATH/TO/toolbox", "args": ["--stdio", "--prebuilt", "looker"], "env": { "LOOKER_BASE_URL": "https://looker.example.com", "LOOKER_CLIENT_ID": "", "LOOKER_CLIENT_SECRET": "", "LOOKER_VERIFY_SSL": "true" } } } } -
Start Gemini-CLI with the
geminicommand and use the command/mcpto see the configured MCP tools. {{% /tab %}}
{{% tab header="Claude code" lang="en" %}}
-
Install Claude Code.
-
Create a
.mcp.jsonfile in your project root if it doesn't exist. -
Add the following configuration, replace the environment variables with your values, and save:
{ "mcpServers": { "looker-toolbox": { "command": "./PATH/TO/toolbox", "args": ["--stdio", "--prebuilt", "looker"], "env": { "LOOKER_BASE_URL": "https://looker.example.com", "LOOKER_CLIENT_ID": "", "LOOKER_CLIENT_SECRET": "", "LOOKER_VERIFY_SSL": "true" } } } } -
Restart Claude Code to apply the new configuration. {{% /tab %}}
{{% tab header="Claude desktop" lang="en" %}}
-
Open Claude desktop and navigate to Settings.
-
Under the Developer tab, tap Edit Config to open the configuration file.
-
Add the following configuration, replace the environment variables with your values, and save:
{ "mcpServers": { "looker-toolbox": { "command": "./PATH/TO/toolbox", "args": ["--stdio", "--prebuilt", "looker"], "env": { "LOOKER_BASE_URL": "https://looker.example.com", "LOOKER_CLIENT_ID": "", "LOOKER_CLIENT_SECRET": "", "LOOKER_VERIFY_SSL": "true" } } } } -
Restart Claude desktop.
-
From the new chat screen, you should see a hammer (MCP) icon appear with the new MCP server available. {{% /tab %}}
{{% tab header="Cline" lang="en" %}}
-
Open the Cline extension in VS Code and tap the MCP Servers icon.
-
Tap Configure MCP Servers to open the configuration file.
-
Add the following configuration, replace the environment variables with your values, and save:
{ "mcpServers": { "looker-toolbox": { "command": "./PATH/TO/toolbox", "args": ["--stdio", "--prebuilt", "looker"], "env": { "LOOKER_BASE_URL": "https://looker.example.com", "LOOKER_CLIENT_ID": "", "LOOKER_CLIENT_SECRET": "", "LOOKER_VERIFY_SSL": "true" } } } } -
You should see a green active status after the server is successfully connected. {{% /tab %}}
{{% tab header="Cursor" lang="en" %}}
-
Create a
.cursordirectory in your project root if it doesn't exist. -
Create a
.cursor/mcp.jsonfile if it doesn't exist and open it. -
Add the following configuration, replace the environment variables with your values, and save:
{ "mcpServers": { "looker-toolbox": { "command": "./PATH/TO/toolbox", "args": ["--stdio", "--prebuilt", "looker"], "env": { "LOOKER_BASE_URL": "https://looker.example.com", "LOOKER_CLIENT_ID": "", "LOOKER_CLIENT_SECRET": "", "LOOKER_VERIFY_SSL": "true" } } } } -
Open Cursor and navigate to Settings > Cursor Settings > MCP. You should see a green active status after the server is successfully connected. {{% /tab %}}
{{% tab header="Visual Studio Code (Copilot)" lang="en" %}}
-
Open VS Code and create a
.vscodedirectory in your project root if it doesn't exist. -
Create a
.vscode/mcp.jsonfile if it doesn't exist and open it. -
Add the following configuration, replace the environment variables with your values, and save:
{ "servers": { "looker-toolbox": { "command": "./PATH/TO/toolbox", "args": ["--stdio", "--prebuilt", "looker"], "env": { "LOOKER_BASE_URL": "https://looker.example.com", "LOOKER_CLIENT_ID": "", "LOOKER_CLIENT_SECRET": "", "LOOKER_VERIFY_SSL": "true" } } } }
{{% /tab %}}
{{% tab header="Windsurf" lang="en" %}}
-
Open Windsurf and navigate to the Cascade assistant.
-
Tap on the hammer (MCP) icon, then Configure to open the configuration file.
-
Add the following configuration, replace the environment variables with your values, and save:
{ "mcpServers": { "looker-toolbox": { "command": "./PATH/TO/toolbox", "args": ["--stdio", "--prebuilt", "looker"], "env": { "LOOKER_BASE_URL": "https://looker.example.com", "LOOKER_CLIENT_ID": "", "LOOKER_CLIENT_SECRET": "", "LOOKER_VERIFY_SSL": "true" } } } }
{{% /tab %}} {{< /tabpane >}}
Use Tools
Your AI tool is now connected to Looker using MCP. Try asking your AI assistant to list models, explores, dimensions, and measures. Run a query, retrieve the SQL for a query, and run a saved Look.
The full tool list is available in the Prebuilt Tools Reference.
The following tools are available to the LLM:
Looker Model and Query Tools
These tools are used to get information about a Looker model and execute queries against that model.
- get_models: list the LookML models in Looker
- get_explores: list the explores in a given model
- get_dimensions: list the dimensions in a given explore
- get_measures: list the measures in a given explore
- get_filters: list the filters in a given explore
- get_parameters: list the parameters in a given explore
- query: Run a query and return the data
- query_sql: Return the SQL generated by Looker for a query
- query_url: Return a link to the query in Looker for further exploration
Looker Content Tools
These tools get saved content (Looks and Dashboards) from a Looker instance and create new saved content.
- get_looks: Return the saved Looks that match a title or description
- run_look: Run a saved Look and return the data
- make_look: Create a saved Look in Looker and return the URL
- get_dashboards: Return the saved dashboards that match a title or description
- run_dashboard: Run the queries associated with a dashboard and return the data
- make_dashboard: Create a saved dashboard in Looker and return the URL
- add_dashboard_element: Add a tile to a dashboard
- add_dashboard_filter: Add a filter to a dashboard
- generate_embed_url: Generate an embed url for content
Looker Instance Health Tools
These tools offer the same health check algorithms that the popular CLI Henry offers.
- health_pulse: Check the health of a Looker intance
- health_analyze: Analyze the usage of a Looker object
- health_vacuum: Find LookML elements that might be unused
LookML Authoring Tools
These tools allow enable the caller to write and modify LookML files as well as get the database schema needed to write LookML effectively.
- dev_mode: Activate dev mode.
- get_projects: Get the list of LookML projects
- get_project_files: Get the list of files in a project
- get_project_file: Get the contents of a file in a project
- create_project_file: Create a file in a project
- update_project_file: Update the contents of a file in a project
- delete_project_file: Delete a file in a project
- get_connections: Get the list of connections
- get_connection_schemas: Get the list of schemas for a connection
- get_connection_databases: Get the list of databases for a connection
- get_connection_tables: Get the list of tables for a connection
- get_connection_table_columns: Get the list of columns for a table in a connection
{{< notice note >}} Prebuilt tools are pre-1.0, so expect some tool changes between versions. LLMs will adapt to the tools available, so this shouldn't affect most users. {{< /notice >}}