Connect your AI Agents to Looker in minutes

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.

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}
11Open 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}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 }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}FAQs on using Merge's Looker MCP server
FAQs on using Merge's Looker MCP server
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



















