Connect your AI Agents to Looker in minutes

Merge lets you securely connect your agents to Looker and thousands of tools instantly

Available tools

create_alert

Create a Looker alert with comparison type, field, threshold, and optional destinations. Monitors dashboard elements for condition changes.

get_alert

Get a Looker alert by ID. Returns comparison type, threshold, field, and notification settings.

update_alert

Update a Looker alert threshold or enabled status. Use is_disabled to enable or disable.

delete_alert

Delete a Looker alert by ID. This stops all future notifications.

search_alerts

Search Looker alerts with offset pagination. Returns matching alerts.

list_boards

List Looker boards with offset pagination. Returns board titles, descriptions, and metadata.

search_boards

Search Looker boards by title, creator, or favorites. Title filter uses substring matching by default. Include % in your value for custom wildcard matching. Use list_boards for unfiltered listing.

create_board

Create a Looker board with title and description. Boards organize looks and dashboards into collections.

get_board

Get a Looker board by ID. Returns title, description, sections, and items.

update_board

Update a Looker board title or description. Use get_board to verify changes.

delete_board

Delete a Looker board by ID. This action is permanent. Use get_board to verify before deleting.

get_all_board_sections

Get all board sections across all boards. Use get_board to get sections for a specific board.

create_board_section

Create a section within a Looker board. Sections group board items. Use list_boards to find board IDs.

get_board_section

Get a Looker board section by ID. Returns section title, description, and items.

update_board_section

Update a Looker board section title or description. Use get_board_section to verify changes.

delete_board_section

Delete a Looker board section by ID. This action is permanent and removes all items in the section.

get_all_board_items

Get all board items across all sections. Use get_board or get_board_section to get items for a specific board/section.

create_board_item

Add an item to a board section. Link a dashboard, look, or custom URL. Use get_all_board_sections to find section IDs.

get_board_item

Get a Looker board item by ID. Returns linked dashboard/look info and custom fields.

update_board_item

Update a Looker board item. Change linked dashboard/look or custom title/description/URL.

delete_board_item

Delete a Looker board item by ID. This removes the item from its section permanently.

list_connections

List Looker database connections. Requires admin permissions. Returns connection names, dialects, and hosts.

create_connection

Create a Looker database connection. Requires admin permissions. Specify name, dialect, host, port, database, and credentials.

get_connection

Get a Looker database connection by name. Requires admin permissions. Use list_connections to find valid names.

update_connection

Update a Looker database connection host, port, database, or credentials. Requires admin permissions.

delete_connection

Delete a Looker database connection by name. This action is permanent. Requires admin permissions.

list_dashboard_elements

List all elements (tiles) on a Looker dashboard. Returns element titles, types, and query IDs.

create_dashboard_element

Create a dashboard element (tile). Specify dashboard_id, type ('vis', 'text'), and query_id or body_text. Use create_query to get a query ID first.

get_dashboard_element

Get a dashboard element by ID. Returns title, type, query, and display settings.

update_dashboard_element

Update a dashboard element title, text, query, or display settings.

delete_dashboard_element

Delete a dashboard element by ID. This removes the tile from the dashboard.

list_dashboard_filters

List all filters on a Looker dashboard. Returns filter names, types, and default values.

create_dashboard_filter

Create a dashboard filter. Requires dashboard_id, name, title, and type ('date_filter', 'number_filter', 'string_filter', or 'field_filter'). For 'field_filter', also provide model, explore, and dimension.

get_dashboard_filter

Get a dashboard filter by ID. Returns name, type, default value, and configuration.

update_dashboard_filter

Update a dashboard filter name, title, type, default value, or required setting.

delete_dashboard_filter

Delete a dashboard filter by ID. This removes the filter from the dashboard.

list_dashboard_layout_components

List all layout components for a dashboard layout. Returns element positions (row, column, width, height).

get_dashboard_layout_component

Get a dashboard layout component by ID. Returns element ID and position (row, column, width, height).

update_dashboard_layout_component

Update a dashboard layout component position. Set row, column, width, and height to arrange tiles on the dashboard.

list_dashboard_layouts

List all layouts for a Looker dashboard. Returns layout types, active status, and dimensions.

create_dashboard_layout

Create a dashboard layout. Specify dashboard_id, type, and dimensions.

get_dashboard_layout

Get a dashboard layout by ID. Returns type, active status, and dimensions.

update_dashboard_layout

Update a dashboard layout active status or dimensions.

delete_dashboard_layout

Delete a dashboard layout by ID.

list_dashboards

List Looker dashboards with offset pagination. Returns titles, IDs, and metadata. Use offset from page_info for next page.

create_dashboard

Create a Looker dashboard with title, description, and folder. Use list_folders to find valid folder IDs.

get_dashboard

Get a Looker dashboard by ID. Returns title, elements, filters, and metadata. Use list_dashboards or search_dashboards to find valid IDs.

update_dashboard

Update a Looker dashboard title, description, folder, timezone, refresh interval, or visibility. Use get_dashboard to verify changes.

delete_dashboard

Delete a Looker dashboard by ID. This action is permanent. Use get_dashboard to verify before deleting.

copy_dashboard

Copy a Looker dashboard to a different folder. Returns the new dashboard. Use list_folders to find valid folder IDs.

move_dashboard

Move a Looker dashboard to a different folder. Use list_folders to find valid folder IDs.

search_dashboards

Search Looker dashboards by title or folder. Text filters use substring matching by default. Include % in your value for custom wildcard matching. Returns matching dashboards with pagination.

list_folders

List Looker folders with offset pagination. Returns folder names, IDs, and hierarchy. Use offset from page_info for next page.

create_folder

Create a Looker folder with name and parent folder. Use list_folders to find valid parent folder IDs.

get_folder

Get a Looker folder by ID. Returns name, parent, child count, and metadata.

update_folder

Update a Looker folder name. Use get_folder to verify changes.

delete_folder

Delete a Looker folder by ID. This action is permanent. Use get_folder to verify before deleting.

search_folders

Search Looker folders by name or parent. Text filters use substring matching by default. Include % in your value for custom wildcard matching. Returns matching folders with pagination.

get_folder_children

Get child folders of a Looker folder. Returns sub-folders with pagination.

get_folder_looks

Get all looks in a Looker folder. Returns looks with their titles, IDs, and metadata.

get_folder_dashboards

Get all dashboards in a Looker folder. Returns dashboards with their titles, IDs, and metadata.

list_groups

List Looker groups with offset pagination. Requires admin permissions. Returns group names and user counts.

create_group

Create a Looker group with name and optional parent group. Requires admin permissions.

get_group

Get a Looker group by ID. Requires admin permissions. Returns name, user count, and metadata.

update_group

Update a Looker group name or content metadata access. Requires admin permissions. Use get_group to verify changes.

delete_group

Delete a Looker group by ID. This action is permanent. Requires admin permissions.

search_groups

Search Looker groups by name, external group ID, or management flags. Supports sorting and pagination. Requires admin permissions.

search_groups_with_roles

Search Looker groups and include role information in results. Filter by name, external group ID, or management flags. Requires admin permissions.

search_groups_with_hierarchy

Search Looker groups and include parent group hierarchy in results. Filter by name, external group ID, or management flags. Requires admin permissions.

get_groups_in_group

Get all groups that are members of a Looker group. Supports sorting. Requires admin permissions. Use list_groups to find valid group IDs.

add_group_to_group

Add a group as a member of another Looker group. Requires admin permissions. Use list_groups to find valid group IDs.

delete_group_from_group

Remove a member group from a Looker group. This action is permanent. Requires admin permissions.

get_users_in_group

Get all users in a Looker group with pagination. Supports sorting. Requires admin permissions. Use list_groups to find valid group IDs.

add_user_to_group

Add a user to a Looker group. Requires admin permissions. Use list_users to find valid user IDs and list_groups for group IDs.

remove_user_from_group

Remove a user from a Looker group. This action is permanent. Requires admin permissions.

set_user_attribute_group_value

Set the value of a user attribute for a Looker group. Requires admin permissions. Use list_groups and list user attributes to find valid IDs.

delete_user_attribute_group_value

Delete a group-level user attribute value in Looker. This action is permanent. Requires admin permissions.

list_looks

List Looker looks with offset pagination. Returns titles, IDs, and metadata. Use offset from page_info for next page.

create_look

Create a Looker look with title, description, folder, and query. Use list_folders to find valid folder IDs. Use create_query to create a query first.

get_look

Get a Looker look by ID. Returns title, description, query details, and metadata. Use list_looks or search_looks to find valid IDs.

update_look

Update a Looker look title, description, folder, query, visibility, or owner. Use get_look to verify changes.

delete_look

Delete a Looker look by ID. This action is permanent. Use get_look to verify before deleting.

copy_look

Copy a Looker look to a different folder. Returns the new look. Use list_folders to find valid folder IDs.

move_look

Move a Looker look to a different folder. Use list_folders to find valid folder IDs.

run_look

Run a Looker look and return results. Supports json, csv, and other formats. Use list_looks to find valid IDs.

search_looks

Search Looker looks by title, description, or folder. Text filters use substring matching by default. Include % in your value for custom wildcard matching. Returns matching looks with pagination.

import_lookml_dashboard

Import a LookML dashboard into a folder as a user-defined dashboard. The imported dashboard will be linked to the LookML dashboard for syncing.

sync_lookml_dashboard

Sync all linked user-defined dashboards to match a LookML dashboard. Updates elements, filters, and layout to match the LookML definition.

search_lookml_dashboards

Search LookML dashboards in production. Filter by title (supports % wildcards) or folder. Returns dashboard IDs and LookML content.

import_dashboard_from_lookml

Create a dashboard from LookML YAML code. The dashboard is NOT linked to any LookML dashboard. Provide valid LookML YAML and optional folder ID.

get_dashboard_lookml

Get the LookML YAML representation of a user-defined dashboard. Useful for exporting or duplicating dashboards via LookML.

get_dashboard_aggregate_table_lookml

Get aggregate table LookML for each query on a dashboard. Useful for optimizing dashboard performance with persistent derived tables.

list_lookml_models

List available LookML models and their explores. Use model names with create_query or run_inline_query to build queries.

create_lookml_model

Create a LookML model with a name, project, and database connections. Use list_connections to find valid connection names.

get_lookml_model

Get a LookML model by name. Returns explores, project, and label. Use list_lookml_models to find valid names.

update_lookml_model

Update a LookML model's project or database connections. Use list_lookml_models to find valid names.

delete_lookml_model

Delete a LookML model by name. This action is permanent. Use get_lookml_model to verify before deleting.

get_lookml_explore

Get a LookML explore with its dimensions, measures, and relationships. Use get_lookml_model to find valid explore names.

create_query

Create a Looker query with model, view, fields, filters, and sorts. Use list_lookml_models to find valid model names. Returns query ID for use with run_query.

get_query

Get a Looker query definition by ID. Returns model, view, fields, filters, and sorts.

get_query_by_slug

Get a Looker query by its slug identifier (found in Looker URLs). Returns the full query definition.

run_query

Run a saved Looker query and return results. Use create_query first to get an ID. Supports json, csv, and other formats.

run_inline_query

Run an inline Looker query without saving it. Specify model, view, fields, filters, and sorts directly. Use list_lookml_models to find valid model names.

create_query_task

Run a Looker query asynchronously. Returns a task ID to check status with get_query_task and fetch results with get_query_task_results. Use for long-running queries.

get_query_task

Check the status of an async Looker query task. Returns status (pending, running, complete, error). Use create_query_task first to get a task ID.

get_query_task_results

Get results of a completed async Looker query task. Task must have status 'complete'. Use get_query_task to check status first.

get_query_task_multi_results

Get results of multiple completed async Looker query tasks at once. All tasks must be complete. Pass a list of task IDs.

create_merge_query

Create a merge query that combines results from multiple Looker queries. Each source query needs a query_id and optionally merge_fields to define join conditions.

get_merge_query

Get a Looker merge query definition by ID. Returns source queries and merge configuration.

list_running_queries

List all currently running Looker queries. Shows query ID, user, runtime, and status. Useful for monitoring and identifying long-running queries.

kill_query

Terminate a running Looker query by its task ID. Use list_running_queries to find task IDs of queries to kill.

create_sql_query

Create a SQL Runner query with raw SQL. Specify connection_name OR model_name (mutually exclusive). Use list_connections to find valid connection names. Returns a slug for use with run_sql_query.

get_sql_query

Get a SQL Runner query by its slug. Returns the SQL text and connection details.

run_sql_query

Execute a SQL Runner query and return results. Use create_sql_query first to get a slug. Supports json, csv, and other formats.

list_roles

List Looker roles. Requires admin permissions. Returns role names, permission sets, and model sets.

create_role

Create a Looker role with name, permission set, and model set. Requires admin permissions.

get_role

Get a Looker role by ID. Requires admin permissions. Use list_roles to find valid IDs.

update_role

Update a Looker role name, permission set, or model set. Requires admin permissions.

delete_role

Delete a Looker role by ID. This action is permanent. Requires admin permissions.

search_roles

Search Looker roles by name with pagination. Requires admin permissions. Use offset from page_info for next page.

search_roles_with_user_count

Search Looker roles by name, including user count per role. Requires admin permissions. Use offset from page_info for next page.

get_role_users

Get all users assigned to a Looker role. Supports pagination. Use direct_association_only to exclude users assigned via groups.

set_role_users

Set users for a Looker role. Replaces all current user assignments. Requires admin permissions. Use list_users to find valid user IDs.

get_role_groups

Get all groups assigned to a Looker role. Requires admin permissions. Use list_roles to find valid role IDs.

set_role_groups

Set groups for a Looker role. Replaces all current group assignments. Requires admin permissions. Use list_groups to find valid group IDs.

create_permission_set

Create a Looker permission set with name and permissions. Use list_permissions to see available permissions.

list_permission_sets

List all Looker permission sets. Returns names and permissions for each set. Requires admin permissions.

get_permission_set

Get a Looker permission set by ID. Returns permissions in the set. Use list_permission_sets to find valid IDs.

update_permission_set

Update a Looker permission set name or permissions. Requires admin permissions. Use list_permissions to see available permissions.

delete_permission_set

Delete a Looker permission set by ID. This action is permanent. Requires admin permissions.

create_model_set

Create a Looker model set with name and models. Use list_lookml_models to see available models.

list_model_sets

List all Looker model sets. Returns names and models for each set. Requires admin permissions.

get_model_set

Get a Looker model set by ID. Returns models in the set. Use list_model_sets to find valid IDs.

update_model_set

Update a Looker model set name or models. Requires admin permissions. Use list_lookml_models to see available models.

delete_model_set

Delete a Looker model set by ID. This action is permanent. Requires admin permissions.

list_permissions

List all available Looker permissions. Useful to see what permissions exist before creating permission sets.

list_scheduled_plans

List Looker scheduled plans with offset pagination. Returns schedule names, cron expressions, and associated content.

create_scheduled_plan

Create a Looker scheduled plan to deliver look or dashboard results on a schedule. Provide look_id or dashboard_id, cron expression, and destinations.

get_scheduled_plan

Get a Looker scheduled plan by ID. Returns name, schedule, destinations, and status.

update_scheduled_plan

Update a Looker scheduled plan name, cron expression, or enabled status.

delete_scheduled_plan

Delete a Looker scheduled plan by ID. This stops all future deliveries.

list_users

List Looker users with offset pagination. Requires admin permissions. Use offset from page_info for next page.

create_user

Create a Looker user. Requires admin permissions. Optionally assign roles with role_ids. Use list_roles to find valid role IDs.

get_user

Get a Looker user by ID. Returns name, email, roles, and status. Requires admin permissions. Use list_users or search_users to find valid IDs.

update_user

Update a Looker user's name, email, roles, or status. Requires admin permissions. Use get_user to verify changes.

delete_user

Delete a Looker user by ID. This action is permanent. Requires admin permissions.

search_users

Search Looker users by email, first name, last name, disabled status, or group. Text filters use substring matching by default. Include % for custom wildcard matching. Requires admin permissions.

get_current_user

Get the currently authenticated Looker user. Returns your name, email, roles, and permissions.

search_users_names

Search Looker users by name or email pattern. Simpler than search_users for quick lookups. Requires admin permissions.

get_user_roles

Get roles assigned to a Looker user. Requires admin permissions. Use list_users or search_users to find valid user IDs.

set_user_roles

Set roles for a Looker user. Replaces all current roles. Requires admin permissions. Use list_roles to find valid role IDs.

get_user_attribute_values

Get all user attribute values for a Looker user. Returns attribute values with their source (User, Group, or Default).

set_user_attribute_user_value

Set a user attribute value for a Looker user. Overrides group or default values. Use get_user_attribute_values to see current values.

delete_user_attribute_user_value

Remove a user-level attribute value override for a Looker user. The attribute will fall back to group or default value.

send_user_credentials_email_password_reset

Send a password reset email to a Looker user. The user must have email credentials configured.

create_user_credentials_email

Create email credentials for a Looker user. Required before the user can log in with email/password.

get_user_credentials_email

Get email credentials for a Looker user. Returns email address and login status.

delete_user_credentials_email

Delete email credentials for a Looker user. The user will no longer be able to log in with email/password.

validate_credential

Validate Looker credentials by fetching the current user. Returns success status and message.

list_workspaces

List all Looker workspaces (production and dev). Returns workspace IDs and their associated projects.

get_workspace

Get a Looker workspace by ID ('production' or 'dev'). Returns workspace details and associated projects.

get_session

Get the current API session. Returns the active workspace ID ('production' or 'dev') and sudo user if impersonating.

update_session_workspace

Switch the API session workspace to 'production' or 'dev'. Affects which LookML content is used for subsequent API calls.

View all tools by creating a free accountSee more tools

How to set up Merge Agent Handler

In an mcp.json file, add the configuration below, and restart Cursor.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5      "headers": {
6        "Authorization": "Bearer yMt*****"
7      }
8    }
9  }
10}
11
Copy Code

Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.

Make sure Claude is using the Node v20+.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "command": "npx",
5      "args": [
6        "-y",
7        "mcp-remote@latest",
8        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9        "--header",
10        "Authorization: Bearer ${AUTH_TOKEN}"
11      ],
12      "env": {
13        "AUTH_TOKEN": "yMt*****"
14      }
15    }
16  }
17}
Copy Code
Copied!

Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.

Learn more in the official documentation ↗

1{
2    "mcpServers": {
3      "agent-handler": {
4        "command": "npx",
5        "args": [
6          "-y",
7          "mcp-remote@latest",
8          "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9          "--header",
10          "Authorization: Bearer ${AUTH_TOKEN}"
11        ],
12        "env": {
13          "AUTH_TOKEN": "<ah-production-access-key>"
14        }
15      }
16    }
17  }
Copy Code

In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".

You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.

Learn more in the official documentation ↗

1{
2  "inputs": [
3    {
4      "type": "promptString",
5      "id": "agent-handler-auth",
6      "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7      "password": true
8    }
9  ],
10  "servers": {
11    "agent-handler": {
12      "type": "stdio",
13      "command": "npx",
14      "args": [
15        "-y",
16        "mcp-remote@latest",
17        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18        "--header",
19        "Authorization: Bearer ${input:agent-handler-auth}"
20      ]
21    }
22  }
23}
Copy Code

FAQs on using Merge's Looker  MCP server

FAQs on using Merge's Looker  MCP server

Explore other MCP servers built and managed by Merge

peec
Peec AI
pipedrive
Pipedrive
posthog
PostHog
pubmed
PubMed
pylon
Pylon
quartr
Quartr
quickbooks_online
QuickBooks Online
ramp
Ramp
readme
ReadMe
rootly
Rootly
sabre
Sabre
salesforce
Salesforce
sanity
Sanity
sapsf
SAP SuccessFactors
sendgrid
SendGrid
sentry
Sentry
servicenow
ServiceNow
sharepoint
SharePoint
shopify
Shopify
slack
Slack
smartsheet
Smartsheet
snowflake
Snowflake
spotify
Spotify
square
Square

Ready to try it out?

Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now