Skip to content

Connectors · Observability & analytics

Looker MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Looker and the rest of your systems. It gives your agent 488 Looker actions (240 reads, 178 writes and 70 that wait for a confirmation) and holds the Looker credential itself, so the agent never does. It paces Looker's limits and records every call.

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

claude mcp add --transport http actionlake https://connect.actionlake.com/mcp
the first call
do {  action: "google_looker.all_users",  intent: "check which Looker account is connected"}# Get All Users · read · 1 upstream call
  • 488actionsin one signed file
  • 240readlook, never change
  • 178writecreate and update
  • 70wait for a yesdestructive, confirmed first

Set up

Connect Looker in three steps.

  1. 01

    Add actionlake to Claude.

    Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.

    https://connect.actionlake.com/mcp
  2. 02

    Connect Looker.

    Session login. actionlake opens the session and renews it when it expires. actionlake stores what you paste write-only, sealed under your tenant's key.

    • client_idLooker API key client ID (Admin > Users > Edit user > API keys)
    • client_secretLooker API key client secret, shown once when the API key is created
    • hostWhere your Looker lives: your host
    account { op: "connections.requirements", service: "google_looker" }
    # free: exactly what to paste, and what is found for you
  3. 03

    Make the first call. Check before a write.

    Ask in plain words; Claude picks the action. Before anything changes, check validates the call and prices it, for free.

    do    { action: "google_looker.all_users" }# get all users · read · 1 upstream callcheck { action: "google_looker.create_user", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent

Looker at a glance

Sign-in
Session login. actionlake opens the session and renews it when it expires.
You provide
client_idclient_secret
Setup fields
host
Limits we pace to
300 calls a minute, per connection
API covered
Looker API 4.0 (4.0.26.20, OpenAPI from github.com/looker-open-source/sdk-codegen), at your Looker instance's API base URL, which you enter when connecting (path /api/4.0)
Built from
Looker's documentation, read 23 October 2026OpenAPI spec (GitHub)cloud.google.com
Service file
Version 1.0.0, signed (Ed25519)
Cached reads
212 of 240 reads, for up to 5 minutes; a write clears what it affects
Shared entities
2, so ask can line Looker up with your other systems
Data
Processed and stored in Sydney, Australia. No US region yet

Capabilities

What an AI agent can do in Looker.

488 actions in 36 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

  • 240readlook, never change
  • 178writecreate and update
  • 70destructivewait for a confirmation
  1. Auth

    51

    16 read · 25 write · 10 destructive

    Create Acquire cookieless embed session · Add Support Access Allowlist Users · Get All OAuth Client Apps · Get All User Login Lockouts

  2. Users

    50

    22 read · 13 write · 15 destructive

    Get All Users · Create User · Get User by Id · Update User

  3. Projects

    43

    20 read · 19 write · 4 destructive

    Get All Git Branches · Get All Git Connection Tests · Get All LookML Tests · Get All Project Files

  4. Dashboards

    38

    16 read · 18 write · 4 destructive

    Get All Dashboards · Copy Dashboard · Create Dashboard · Create DashboardElement

  5. Connections

    30

    12 read · 12 write · 6 destructive

    Get All Connections · Get All Dialect Infos · Get All External OAuth Applications · Get All SSH Servers

  6. Config

    27

    16 read · 11 write · 0 destructive

    Get All Legacy Features · Get All Locales · Get All Timezones · Deliver digest email contents

  7. Roles

    24

    13 read · 6 write · 5 destructive

    Get All Roles · Create Role · Get Role · Update Role

  8. Conversational analytics

    21

    8 read · 9 write · 4 destructive

    Get All Conversation Messages · Chat · Create Agent · Create Conversation

28 more areas · 204 actions
  • Queries 17
  • Boards 16
  • Groups 16
  • Content 15
  • Themes 13
  • Folders 12
  • Integrations 12
  • Scheduled plans 12
  • Alerts 11
  • Color collections 10
  • Looks 10
  • Metadata 9
  • Artifacts 8
  • User attributes 7
  • Lookml models 6
  • Derived tables 5
  • Render tasks 5
  • Datagroups 3
  • Self service 3
  • SQL interface queries 3
  • Data actions 2
  • Session 2
  • Workspaces 2
  • API auth 1
  • Data uploads 1
  • Homepage 1
  • Key driver analysis 1
  • Reports 1

Top actions

The Looker API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 22 of Looker's 22 action names are shared with at least one other connector, so an agent learns them once.

ActionWhat it doesEffectSame name in
google_looker.all_usersGet All UsersGet All Users.readidentity.user.list474 connectors
google_looker.all_groupsGet All GroupsGet All Groups.readidentity.group.list262 connectors
google_looker.create_userCreate UserCreate User.writeidentity.user.create262 connectors
google_looker.create_groupCreate GroupCreate Group.writeidentity.group.create205 connectors
google_looker.delete_userDelete UserDelete User.destructiveidentity.user.delete253 connectors
google_looker.all_rolesGet All RolesGet All Roles.readidentity.role.list184 connectors
google_looker.meGet Current UserGet Current User.readidentity.current_user.get307 connectors
google_looker.create_roleCreate RoleCreate Role.writeidentity.role.create105 connectors
google_looker.all_group_usersGet All Users in GroupGet All Users in Group.readidentity.group_member.list103 connectors
google_looker.create_service_accountCreate Service AccountCreate Service Account.writeidentity.service_account.create32 connectors
google_looker.add_group_userAdd a User to GroupAdd a User to Group.writeidentity.group_member.add72 connectors
google_looker.run_lookRun LookRun Look.readthis connector

Try it

Prompts to paste into Claude.

Each one names the Looker actions it will call, so you know what it reads and what it changes before you send it.

  1. Readread

    Who has access in Looker? List every user and their role.

    callsgoogle_looker.all_users

  2. Writewrite

    Create User in Looker. Show me exactly what you will send before you save it.

    callsgoogle_looker.create_user

Governance for Looker

Destructive actions wait for a yes.

70 Looker actions are destructive. The first 10:

  • Delete Usergoogle_looker.delete_user
  • Delete Groupgoogle_looker.delete_group
  • Delete Rolegoogle_looker.delete_role
  • Remove a User from Groupgoogle_looker.delete_group_user
  • Kill Running Querygoogle_looker.kill_query
  • Delete Lookgoogle_looker.delete_look
  • Delete an alertgoogle_looker.delete_alert
  • Delete Foldergoogle_looker.delete_folder
  • Update Role Usersgoogle_looker.set_role_users
  • Set User Rolesgoogle_looker.set_user_roles

A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

dogoogle_looker.delete_userconfirm_policy: human

Delete User?

intent: the user asked me to delete User

run suspended · waiting for a named person · key google-looker-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
account {  op: "keys.create", name: "google-looker-agent",  allowed_actions: ["google_looker.*"], cap_calls: 2000,  confirm_policy: "human_for_writes",  approval_rules: [    { match: "google_looker.delete_user", approver: "[email protected]" },    { match: "google_looker.delete_group", approver: "[email protected]" },    { match: "google_looker.delete_role", approver: "[email protected]" }  ]}
Illustrative. Scoped to Looker only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

What Looker costs on actionlake.

Every Looker action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Looker refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

  • 1upstream call per actionall 488 Looker actions
  • 488actions pageeach page of a long list is one call
  • 212reads can be cacheda cache hit costs nothing
  • 100,000calls a month, freepaid plans from US$49 a month for 250,000

See pricing

Action index

Every Looker action.

488 actions by area: the id your agent calls, what it does, and its effect.

Auth51
  • google_looker.acquire_embed_cookieless_sessionCreate Acquire cookieless embed sessionwrite
  • google_looker.add_support_access_allowlist_entriesAdd Support Access Allowlist Userswrite
  • google_looker.all_oauth_client_appsGet All OAuth Client Appsread
  • google_looker.all_user_login_lockoutsGet All User Login Lockoutsread
  • google_looker.activate_app_userActivate OAuth App Userwrite
  • google_looker.create_embed_secretCreate Embed Secretwrite
  • and 45 more in this area
Users50
  • google_looker.all_usersGet All Usersread
  • google_looker.create_userCreate Userwrite
  • google_looker.update_userUpdate Userwrite
  • google_looker.userGet User by Idread
  • google_looker.all_user_credentials_api3sGet All API Credentialsread
  • google_looker.all_user_credentials_embedsGet All Embedding Credentialsread
  • and 44 more in this area
Projects43
  • google_looker.all_git_branchesGet All Git Branchesread
  • google_looker.all_git_connection_testsGet All Git Connection Testsread
  • google_looker.all_lookml_testsGet All LookML Testsread
  • google_looker.all_project_filesGet All Project Filesread
  • google_looker.all_projectsGet All Projectsread
  • google_looker.async_deploy_ref_to_productionAsynchronously Deploy Remote Branch or Ref to Productionwrite
  • and 37 more in this area
Dashboards38
  • google_looker.all_dashboardsGet All Dashboardsread
  • google_looker.copy_dashboardCopy Dashboardwrite
  • google_looker.create_dashboardCreate Dashboardwrite
  • google_looker.create_dashboard_elementCreate DashboardElementwrite
  • google_looker.create_dashboard_filterCreate Dashboard Filterwrite
  • google_looker.create_dashboard_filter_stateCreate Dashboard Filter Statewrite
  • and 32 more in this area
Connections30
  • google_looker.all_connectionsGet All Connectionsread
  • google_looker.all_dialect_infosGet All Dialect Infosread
  • google_looker.all_external_oauth_applicationsGet All External OAuth Applicationsread
  • google_looker.all_ssh_serversGet All SSH Serversread
  • google_looker.all_ssh_tunnelsGet All SSH Tunnelsread
  • google_looker.all_user_db_connectionsGet All User DB Connectionsread
  • and 24 more in this area
Config27
  • google_looker.all_legacy_featuresGet All Legacy Featuresread
  • google_looker.all_localesGet All Localesread
  • google_looker.all_timezonesGet All Timezonesread
  • google_looker.create_digest_email_sendDeliver digest email contentswrite
  • google_looker.api_specGet an API specificationread
  • google_looker.cloud_storage_configurationGet Cloud Storageread
  • and 21 more in this area
Roles24
  • google_looker.all_rolesGet All Rolesread
  • google_looker.create_roleCreate Rolewrite
  • google_looker.roleGet Roleread
  • google_looker.update_roleUpdate Rolewrite
  • google_looker.all_model_setsGet All Model Setsread
  • google_looker.all_permission_setsGet All Permission Setsread
  • and 18 more in this area
Conversational analytics21
  • google_looker.all_conversation_messagesGet All Conversation Messagesread
  • google_looker.conversational_analytics_chatChatwrite
  • google_looker.create_agentCreate Agentwrite
  • google_looker.create_conversationCreate Conversationwrite
  • google_looker.agent_lookmlGet LookML of a UDD Agentread
  • google_looker.create_conversation_messageCreate Conversation Messagewrite
  • and 15 more in this area
Queries17
  • google_looker.all_running_queriesGet All Running Queriesread
  • google_looker.create_merge_queryCreate Merge Querywrite
  • google_looker.create_queryCreate Querywrite
  • google_looker.create_query_taskRun Query Asyncwrite
  • google_looker.create_sql_queryCreate SQL Runner Querywrite
  • google_looker.kill_queryKill Running Querydestructive
  • and 11 more in this area
Boards16
  • google_looker.all_board_itemsGet All Board Itemsread
  • google_looker.all_board_sectionsGet All Board sectionsread
  • google_looker.all_boardsGet All Boardsread
  • google_looker.create_boardCreate Boardwrite
  • google_looker.boardGet Boardread
  • google_looker.board_itemGet Board Itemread
  • and 10 more in this area
Groups16
  • google_looker.all_groupsGet All Groupsread
  • google_looker.create_groupCreate Groupwrite
  • google_looker.groupGet Groupread
  • google_looker.update_groupUpdate Groupwrite
  • google_looker.add_group_groupAdd a Group to Groupwrite
  • google_looker.add_group_userAdd a User to Groupwrite
  • and 10 more in this area
Content15
  • google_looker.all_content_metadata_accessesGet All Content Metadata Accessesread
  • google_looker.all_content_metadatasGet All Content Metadatasread
  • google_looker.content_summarySearch Content Summariesread
  • google_looker.create_content_favoriteCreate Favorite Contentwrite
  • google_looker.content_favoriteGet Favorite Contentread
  • google_looker.content_metadataGet Content Metadataread
  • and 9 more in this area
Themes13
  • google_looker.active_themesGet Active Themesread
  • google_looker.all_themesGet All Themesread
  • google_looker.create_themeCreate Themewrite
  • google_looker.search_themesSearch Themesread
  • google_looker.default_themeGet Default Themeread
  • google_looker.default_theme_by_typeGet Default Theme (with type)read
  • and 7 more in this area
Folders12
  • google_looker.all_foldersGet All Foldersread
  • google_looker.create_folderCreate Folderwrite
  • google_looker.folder_ancestorsGet Folder Ancestorsread
  • google_looker.folder_childrenGet Folder Childrenread
  • google_looker.delete_folderDelete Folderdestructive
  • google_looker.folderGet Folderread
  • and 6 more in this area
Integrations12
  • google_looker.all_integration_hubsGet All Integration Hubsread
  • google_looker.all_integrationsGet All Integrationsread
  • google_looker.create_integration_hubCreate Integration Hubwrite
  • google_looker.fetch_integration_formFetch Remote Integration Formread
  • google_looker.accept_integration_hub_legal_agreementAccept Integration Hub Legal Agreementwrite
  • google_looker.delete_integration_hubDelete Integration Hubdestructive
  • and 6 more in this area
Scheduled plans12
  • google_looker.all_scheduled_plansGet All Scheduled Plansread
  • google_looker.create_scheduled_planCreate Scheduled Planwrite
  • google_looker.scheduled_plan_run_onceRun Scheduled Plan Oncewrite
  • google_looker.scheduled_plan_run_once_by_idRun Scheduled Plan Once by Idwrite
  • google_looker.delete_scheduled_planDelete Scheduled Plandestructive
  • google_looker.scheduled_planGet Scheduled Planread
  • and 6 more in this area
Alerts11
  • google_looker.alert_notificationsAlert Notificationsread
  • google_looker.create_alertCreate an alertwrite
  • google_looker.enqueue_alertEnqueue an alertwrite
  • google_looker.search_alertsSearch Alertsread
  • google_looker.delete_alertDelete an alertdestructive
  • google_looker.follow_alertFollow an alertwrite
  • and 5 more in this area
Color collections10
  • google_looker.all_color_collectionsGet all Color Collectionsread
  • google_looker.color_collections_customGet all Custom Color Collectionsread
  • google_looker.color_collections_standardGet all Standard Color Collectionsread
  • google_looker.create_color_collectionCreate ColorCollectionwrite
  • google_looker.color_collectionGet Color Collection by IDread
  • google_looker.color_collections_activeGet Active Color Collectionsread
  • and 4 more in this area
Looks10
  • google_looker.all_looksGet All Looksread
  • google_looker.copy_lookCopy Lookwrite
  • google_looker.create_lookCreate Lookwrite
  • google_looker.run_lookRun Lookread
  • google_looker.delete_lookDelete Lookdestructive
  • google_looker.lookGet Lookread
  • and 4 more in this area
Metadata9
  • google_looker.connection_columnsGet columns for a connectionread
  • google_looker.connection_cost_estimateEstimate costs for a connectionread
  • google_looker.connection_databasesList accessible databases to this connectionread
  • google_looker.connection_schemasGet schemas for a connectionread
  • google_looker.connection_featuresMetadata features supported by this connectionread
  • google_looker.connection_search_columnsSearch a connection for columnsread
  • and 3 more in this area
Artifacts8
  • google_looker.artifactGet one or more artifactsread
  • google_looker.artifact_namespacesGet namespaces and countsread
  • google_looker.artifact_usageArtifact store usageread
  • google_looker.search_artifactsSearch artifactsread
  • google_looker.artifact_valueGet an artifact valueread
  • google_looker.delete_artifactDelete one or more artifactsdestructive
  • and 2 more in this area
User attributes7
  • google_looker.all_user_attribute_group_valuesGet User Attribute Group Valuesread
  • google_looker.all_user_attributesGet All User Attributesread
  • google_looker.create_user_attributeCreate User Attributewrite
  • google_looker.set_user_attribute_group_valuesSet User Attribute Group Valueswrite
  • google_looker.delete_user_attributeDelete User Attributedestructive
  • google_looker.update_user_attributeUpdate User Attributewrite
  • and 1 more in this area
Lookml models6
  • google_looker.all_lookml_modelsGet All LookML Modelsread
  • google_looker.create_lookml_modelCreate LookML Modelwrite
  • google_looker.lookml_modelGet LookML Modelread
  • google_looker.lookml_model_exploreGet LookML Model Exploreread
  • google_looker.delete_lookml_modelDelete LookML Modeldestructive
  • google_looker.update_lookml_modelUpdate LookML Modelwrite
Derived tables5
  • google_looker.check_pdt_buildCheck status of a PDT materializationread
  • google_looker.graph_derived_tables_for_modelGet Derived Table graph for modelread
  • google_looker.graph_derived_tables_for_viewGet subgraph of derived table and dependenciesread
  • google_looker.start_pdt_buildStart a PDT materializationread
  • google_looker.stop_pdt_buildStop a PDT materializationread
Render tasks5
  • google_looker.create_dashboard_element_render_taskCreate Dashboard Element Render Taskwrite
  • google_looker.create_dashboard_render_taskCreate Dashboard Render Taskwrite
  • google_looker.create_look_render_taskCreate Look Render Taskwrite
  • google_looker.create_query_render_taskCreate Query Render Taskwrite
  • google_looker.render_taskGet Render Taskread
Datagroups3
  • google_looker.all_datagroupsGet All Datagroupsread
  • google_looker.datagroupGet Datagroupread
  • google_looker.update_datagroupUpdate Datagroupwrite
Self service3
  • google_looker.get_self_service_model_allowed_connectionsGet self service allowed connectionsread
  • google_looker.get_self_service_model_lookmlGet Self Service LookMLread
  • google_looker.update_self_service_explore_certificationUpdate certification for a Self Service Explorewrite
SQL interface queries3
  • google_looker.create_sql_interface_queryCreate SQL Interface Querywrite
  • google_looker.run_sql_interface_queryRun SQL Interface Queryread
  • google_looker.sql_interface_metadataGet SQL Interface Query Metadataread
Data actions2
  • google_looker.fetch_remote_data_action_formFetch Remote Data Action Formread
  • google_looker.perform_data_actionSend a Data Actionwrite
Session2
  • google_looker.sessionGet Authread
  • google_looker.update_sessionUpdate Authwrite
Workspaces2
  • google_looker.all_workspacesGet All Workspacesread
  • google_looker.workspaceGet Workspaceread
API auth1
  • google_looker.login_userLogin userwrite
Data uploads1
  • google_looker.upload_dataUpload self serve model datawrite
Homepage1
  • google_looker.all_primary_homepage_sectionsGet All Primary homepage sectionsread
Key driver analysis1
  • google_looker.run_key_driver_analysisAnalyze Key Driversread
Reports1
  • google_looker.search_reportsSearch Reportsread

This index shows a sample of each area. All 488 actions, with their inputs and prices, are in the catalogue, which a free sandbox key can search.

Questions

The Looker MCP server, answered.

Is there a Looker MCP server for Claude?

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 488 Looker actions across auth, users, projects and dashboards, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Looker.

What do I need to connect Looker?

Looker API key client ID (Admin > Users > Edit user > API keys) and Looker API key client secret, shown once when the API key is created. Plus your host. The free call account { op: "connections.requirements", service: "google_looker" } lists exactly what to paste.

Can an AI agent delete or change things in Looker?

Only if its key allows it, and only with an explicit confirmation. 70 Looker actions are destructive, including delete User, delete Group and delete Role. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

Will an AI agent use up my Looker API limit?

actionlake paces every call to the limits in the Looker service file: 300 calls a minute per connection. Repeated reads are answered from cache (212 Looker actions can be), which never reaches Looker.

What does a Looker action cost?

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (488 Looker actions page). Cache hits, searches, dry runs and calls Looker refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

Which Looker API does it cover?

The Looker API 4.0 (4.0.26.20, OpenAPI from github.com/looker-open-source/sdk-codegen) at your Looker instance's API base URL, which you enter when connecting (path /api/4.0). It is built from Looker's documentation as read on 23 October 2026. 488 actions in 36 areas, each one in the signed service file (version 1.0.0).

Does actionlake keep my Looker data, and where?

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Looker credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

Which AI clients can use it?

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

Give your agent Looker today.

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.