Looker 管理的 MCP 服务器

Looker 管理的 MCP 服务器是一种内置集成,可将 Model Context Protocol (MCP) 服务器直接嵌入到 Looker 平台中。借助该扩展程序,AI 智能体(例如 Gemini CLI、Claude Desktop、Cursor 和 Copilot)可以安全地连接到 Looker 实例,并与商家数据和 LookML 模型进行交互。

通过托管服务器,Looker 可让您无需部署和维护自己的中间件基础设施,从而提供即插即用、安全且受监管的网关,让您能够获取可信的业务洞见。

Looker 管理的 MCP 服务器目前处于预览版阶段,适用于 Looker (Google Cloud Core) 和 Looker(原始版本)实例。此预览版不支持客户托管(本地)实例。

如果您使用的是客户托管的实例,或者您更喜欢自行管理基础架构,则可以使用独立的 MCP Toolbox for Databases 进行连接。MCP Toolbox 是一款开源 MCP 服务器,您可以在本地计算机或自己的服务器上运行该服务器,以充当 AI 智能体与 Looker 实例之间的桥梁。如需了解详情,请参阅将 Looker 与 MCP、Gemini CLI 和其他代理搭配使用文档页面。

准备工作

如需使用 Looker 管理的 MCP 服务器,您必须满足以下要求:

实例要求

  • 您必须使用 Looker (Google Cloud Core) 或 Looker(原始版本)实例。
  • 实例必须由 Looker 托管。

所需权限

  • 如需管理工具访问权限,您必须拥有 Admin Looker 角色。
  • 如需使用 API Explorer 将 AI 智能体注册为 OAuth 客户端,您必须拥有 Admin Looker 角色。
  • 如需将 AI 智能体连接到 Looker 管理的 MCP 服务器,您需要在 OAuth 连接过程中使用标准 Looker 登录凭据进行身份验证。AI 智能体必须先由 Looker 管理员注册为 OAuth 客户端。连接后,AI 智能体将继承经过身份验证的用户的 Looker 角色和访问权限。

设置受管理的 MCP 服务器

配置工具访问权限以设置受管理的 MCP 服务器。

配置工具设置

默认情况下,所有工具都已针对受管理的 MCP 服务器停用。Looker 管理员必须明确启用允许 AI 智能体使用的工具。如需了解启用工具的步骤,请参阅管理员设置 - Model Context Protocol (MCP) 文档页面。

配置 CORS 设置

如果 MCP 客户端直接在 Web 浏览器中运行,并希望使用 CORS 与 Looker 管理的 MCP 服务器通信,Looker 管理员必须在管理面板中将该客户端网站的网域添加到嵌入式网域许可名单。

通过 OAuth 注册 AI 智能体

在预览版发布期间,Looker 管理员必须手动注册 AI 智能体,才能将该智能体连接到受管理的 MCP 服务器。

  1. 打开 Looker API Explorer。

    • 如果您的 Looker 实例已安装 API 探索器,您可以使用以下网址格式访问它:

      LOOKER_INSTANCE_URL/extensions/marketplace_extension_api_explorer::api-explorer/
      
    • 如果您的 Looker 实例没有 API Explorer,您可以从 Looker Marketplace 安装它。如需了解相关信息,请参阅使用 API Explorer 页面。

    • 如果您使用的是采用专用服务访问通道的 Looker (Google Cloud Core) 私密连接实例,则不支持 Looker Marketplace 和 API Explorer。如需注册 AI 智能体,您必须直接调用 oauth_client_apps API 端点。如果您使用此方法,则可以跳过以下 API 浏览器步骤,直接前往配置 MCP 客户端部分。

      展开此部分,查看可与 oauth_client_apps 端点搭配使用的 curl 命令示例,以注册代理。

      curl -X POST "https://LOOKER_INSTANCE_URL/api/4.0/oauth_client_apps/CLIENT_GUID" \
      -H "Authorization: token ACCESS_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
        "redirect_uri": "REDIRECT_URI",
        "display_name": "CLIENT_NAME",
        "description": "OAuth client to access MCP server using CLIENT_NAME",
        "enabled": true
      }'
      
  2. 在 Auth 方法下,找到 Register OAuth App API 端点。您还可以在搜索字段中搜索“oauth 应用”。

  3. 在 Register OAuth App 页面上,点击 Run It 按钮。

  4. 在运行对话框的请求标签页中,在相应字段中输入以下信息:

    • 对于 CLIENT_GUID 字段,请完成以下步骤:

      • 如果代理指定了特定客户端 ID,请使用该客户端 ID。
      • 如果代理未指定特定客户 ID,请使用任何全局唯一 ID。
      • 请准备好将 ID 分发给任何想要使用该代理的 LookML 开发者。
    • 对于 redirect_uri,URI 因 AI 智能体应用而异。您可以参阅代理的 OAuth 身份验证文档,了解其特定的重定向网址。格式可能类似于以下示例之一:

      Gemini CLI

      http://localhost:7777/oauth/callback
      

      Gemini Code Assist

      http://localhost:7777/oauth/callback
      

      我们建议将 Gemini CLI 与 Gemini Code Assist 搭配使用,在这种情况下,它们会共享相同的本地回调服务器和端口配置。

      Gemini Enterprise

      https://vertexaisearch.cloud.google.com/oauth-redirect
      

      Claude Code

      Claude Code 使用随机可用的端口进行 OAuth 回调,但您应使用 --callback-port 8080 标志(或 mcp.json 中的 callbackPort 设置)修复此问题,以匹配您注册的 URI。

      http://localhost:8080/callback
      

      VS Code

      对于 VS Code,请使用以下 URI。

      http://127.0.0.1:33418/
      

      云托管应用

      对于云托管的应用,它可能看起来像一个安全的 HTTPS 网址:

      https://AI_AGENT_URL/oauth2callback
      

      本地应用

      对于在本地运行的应用,它应是具有静态端口的 localhost 网址:

      http://localhost:7777/oauth/callback
      
    • 按照注册 OAuth 客户端应用文档中的说明完成 display_name 和 description。

  5. 选中我了解此 API 端点会更改数据对应的复选框。

  6. 点击运行。

  7. 您可以使用 API 浏览器中的 Get OAuth Client App 方法验证是否已成功设置身份验证,只需按照以下步骤操作即可:

    • 在 API Explorer 的搜索字段中,输入 Get OAuth Client App。
    • 点击运行。
    • 在 CLIENT_GUID 字段中,输入您在注册 OAuth 时使用的值:

      CLIENT_GUID
      

    如果您已成功设置 OAuth,响应标签页将返回您注册应用时输入的值。

  8. (可选)您可以使用 API 探索器中的 Activate App User 方法提前激活 OAuth 应用用户,具体步骤如下:

    • 在 API 探索器的搜索字段中,输入 Activate App User。
    • 点击运行。
    • 在 CLIENT_GUID 字段中,输入您在注册 OAuth 应用时使用的值:

      CLIENT_GUID
      
    • 在 user_id 字段中,输入用户的 Looker user ID。

    • 点击运行。

配置 MCP 客户端

注册 AI 智能体后,您可以将其作为 MCP 客户端连接到受管理的 MCP 端点。请参阅代理的文档以完成客户端设置。

  • 服务器网址: LOOKER_INSTANCE_URL/mcp
  • 身份验证:OAuth 2.1

配置示例 (mcp.json)

本部分介绍了如何配置各种开发者工具,以便使用 Looker 管理的 MCP 服务器连接到 Looker 实例。MCP 服务器位于 IDE 和 Looker 之间,为 AI 工具提供安全高效的控制平面。选择特定工具的标签页,以查看配置说明。

Gemini CLI

将 Gemini CLI 配置为直接连接到 Looker 管理的 MCP 服务器。

  1. 安装 Gemini CLI。
  2. 使用以下命令添加远程 MCP 服务器,并将 LOOKER_INSTANCE_URL 替换为您的 Looker 实例网址:
    gemini mcp add --transport http looker LOOKER_INSTANCE_URL/mcp
    

    或者,您也可以手动配置此功能,方法是将以下配置添加到 settings.json 文件(位于 ~/.gemini/settings.json 或项目目录中):

    {
      "mcpServers": {
        "looker": {
          "httpUrl": "LOOKER_INSTANCE_URL/mcp",
          "oauth": {
            "clientId": "CLIENT_GUID"
          }
        }
      }
    }
    
  3. 以互动模式启动 Gemini CLI:
    gemini
    
    当系统提示您进行连接时,CLI 会启动 OAuth 授权流程,以便安全地向您的 Looker 实例进行身份验证。

Gemini Code Assist

我们建议您将 Gemini Code Assist 配置为使用 Gemini CLI。此方法无需手动配置 MCP 服务器。

  1. 确保您已安装并配置 Gemini CLI 和 Looker 管理的 MCP 服务器。
  2. 配置 Gemini Code Assist 以使用 Gemini CLI。
  3. 直接在 Gemini Code Assist 对话中使用自然语言开始与 Looker 实例互动。

Gemini Enterprise

将 Gemini Enterprise 配置为连接到 Looker 管理的 MCP 服务器,作为自定义 MCP 服务器数据存储区。

  1. 按照官方文档中的说明,在 Gemini Enterprise 中创建自定义 MCP 服务器数据存储区。
  2. 对于数据存储区配置,请使用以下值,将 LOOKER_INSTANCE_URL 替换为您的 Looker 实例网址,并将 CLIENT_GUID 替换为您在 OAuth 应用注册期间使用的确切字符串:
    {
      "instance_uri": "LOOKER_INSTANCE_URL/mcp",
      "auth_uri": "LOOKER_INSTANCE_URL/auth",
      "auth_uri_params": "&response_type=code&code_challenge_method=S256",
      "token_uri": "LOOKER_INSTANCE_URL/api/token",
      "client_id": "CLIENT_GUID",
      "client_secret": "none",
      "scopes": "cors_api",
      "pkce_support_enabled": "true"
    }
    

    PKCE 不需要 OAuth 客户端密钥,但 Gemini Enterprise 要求在 client_secret 字段中提供值。您可以输入 none,如示例配置所示。

  3. 请通过 OAuth 进行身份验证以继续操作。
  4. 设置 MCP 服务器说明,以帮助 Gemini 了解何时调用该服务器。例如:
    Looker Agent with API access to various aspects of Looker. Primarily used to fetch data and run dashboards from Looker.
    
  5. 定义 MCP 服务器代理指令。例如:
    Use this server exclusively to interact with the Looker instance for monitoring health, checking status, and retrieving data.
    Invoke the Looker MCP server for the following request categories:
      - Instance Health Checks: Auditing connection status, uptime, performance metrics, or system errors.
      - Analytics Queries & Data Retrieval: Fetching live business metrics from Explores, Looks, or Dashboards.
    Strict Constraints:
      - No Local Estimation: Do not guess. Always fetch real-time data via MCP tools.
      - Fallback Behavior: Inform the user of connectivity failures immediately.
    
  6. 前往您刚刚创建的自定义 MCP 数据存储区中的操作标签页,然后启用您希望 Gemini Enterprise 使用的工具。
  7. 前往 Gemini Enterprise,点击连接器图标,然后授权 MCP 服务器,完成设置。

Claude Code

  1. 安装 Claude Code。
  2. 在项目根目录中创建 .mcp.json 目录(如果尚不存在)。
  3. 添加以下配置,将 LOOKER_INSTANCE_URL 替换为 Looker 实例的网址,将 CLIENT_GUID 替换为您的 OAuth 客户端 GUID,然后保存。

      {
        "mcpServers": {
          "looker": {
            "type": "http",
            "url": "LOOKER_INSTANCE_URL/mcp",
            "oauth": {
              "clientId": "CLIENT_GUID",
              "callbackPort": 8080
            }
          }
        }
      }
  

Claude Desktop

  1. 在 Claude Desktop 中,前往设置,然后选择连接器。
  2. 选择添加自定义连接器,然后输入名称(例如 Looker)。
  3. 对于网址,请输入 Looker 实例的网址,并附加 /mcp 路径(例如 https://looker.example.com/mcp)。
  4. 在高级设置下,输入您在注册 OAuth 应用期间为 CLIENT_GUID 使用的确切字符串。将 OAuth 客户端密钥留空。
  5. 选择添加以保存连接器。当系统提示您进行连接时,Claude 桌面应用会通过您的浏览器安全地启动 PKCE 授权流程。
  1. 重启 Claude Desktop。

Cline

  1. 在 IDE 中打开 Cline 扩展程序,然后点击 MCP 服务器图标。
  2. 点击配置 MCP 服务器以打开配置文件。
  3. 添加以下配置,将 LOOKER_INSTANCE_URL 替换为您的 Looker 网址,然后保存。

      {
        "mcpServers": {
          "looker": {
            "type": "http",
            "url": "LOOKER_INSTANCE_URL/mcp"
          }
        }
      }
  

服务器成功连接后,系统会显示绿色的活跃状态。

光标

  1. 在项目根目录中创建 .cursor 目录(如果尚不存在)。
  2. 创建 .cursor/mcp.json 文件(如果尚不存在)并打开该文件。
  3. 添加以下配置,将 LOOKER_INSTANCE_URL 替换为您的 Looker 网址,然后保存。
      {
        "mcpServers": {
          "looker": {
            "url": "LOOKER_INSTANCE_URL/mcp",
            auth: {
              "CLIENT_ID": "CLIENT_GUID"
            }
          }
        }
      }
  
  1. 打开 Cursor,然后依次前往设置 > Cursor 设置 > MCP。服务器连接时,系统会显示绿色的活跃状态。

Visual Studio Code (Copilot)

  1. 打开 VS Code,并在项目根目录中创建 .vscode 目录(如果尚不存在)。
  2. 创建 .vscode/mcp.json 文件(如果尚不存在)并打开该文件。
  3. 添加以下配置,将 LOOKER_INSTANCE_URL 替换为 Looker 实例的网址,然后保存。
      {
        "servers": {
          "looker": {
            "type": "http",
            "url": "LOOKER_INSTANCE_URL/mcp"
          }
        }
      }
  

Windsurf

  1. 打开 Windsurf 并前往 Cascade 助理。
  2. 点击 MCP 图标,然后点击配置以打开配置文件。
  3. 添加以下配置,将 LOOKER_INSTANCE_URL 替换为 Looker 实例的网址,然后保存。
      {
        "mcpServers": {
          "looker": {
            "type": "http",
            "url": "LOOKER_INSTANCE_URL/mcp"
          }
        }
      }
  

使用客户端进行身份验证

使用 mcp.json 设置配置 MCP 客户端后,当您首次尝试通过该客户端与 Looker 互动时,系统会启动 OAuth 2.1 身份验证流程。这通常涉及客户端打开一个浏览器窗口,您必须使用标准凭据登录 Looker 实例,并授予应用代表您访问 Looker 的权限。

此登录流程是交互式身份验证步骤,可让 MCP 客户端获取访问令牌以用于日后的请求。

如需了解详情,请参阅客户的文档。

关联后,客户端将沿用您的 Looker 角色和内容访问权限。客户端还可以访问 Looker 管理员为 MCP 服务器启用的 AI 工具。如需查看所有可能的工具的列表,请参阅使用 AI 工具文档。

安全和治理

托管式 MCP 服务器旨在沿用 Looker 现有的安全和治理框架。

  • 权限边界:服务器会强制执行严格的用户级权限。AI 智能体无法访问经过身份验证的用户无权查看的数据或模型。
  • VPC Service Controls:对于使用 VPC Service Controls 的 Looker (Google Cloud Core) 实例,受管 MCP 端点会遵守现有的 VPC Service Controls 边界,无需额外的政策或配置。
  • 客户管理的加密密钥 (CMEK):对于使用 CMEK 的 Looker (Google Cloud Core) 实例,受管 MCP 服务器符合 CMEK 标准,无需额外的政策或配置。
  • IP 允许列表:对于在 Looker (Google Cloud Core) 或 Looker (original) 中使用 IP 允许列表的实例,受管 MCP 端点会遵循现有的 IP 允许列表规则,而无需进行任何其他配置。

审核日志记录

AI 智能体执行的每项操作都会记录在 Looker 系统活动和 Cloud Audit Logs 中。

系统活动

Looker 管理的 MCP 服务器活动会在“历史记录”和“事件属性”探索中进行跟踪。使用“系统活动”Explore 监控 Looker 使用情况 文档页面提供了以下示例查询:

Cloud Audit Logs

Looker (Google Cloud Core) 实例还会通过 Cloud Audit Logs 跟踪 Looker 管理的 MCP 服务器活动。Looker (Google Cloud Core) 审核日志记录文档页面提供了示例查询。

限制

  • 精细范围:托管式 MCP 服务器尚不支持 OAuth 范围。访问权限控制依赖于全局工具许可名单和用户的基本权限。
  • 动态注册:预览版不支持动态客户端注册。
  • 客户端刷新:对工具许可名单所做的更改不会自动推送到已连接的客户端。用户必须在更改工具列表后等待 30 秒,然后重新连接客户端以刷新工具清单。如需了解如何重新连接到 MCP 服务器,请参阅客户端的文档。
  • 服务器容量:在预览阶段,受管理的 MCP 服务器配置了固定容量,以便我们收集性能数据。在高峰使用时段,您可能会偶尔遇到超时问题。这是预期行为。

价格和配额

Looker 管理的 MCP 服务器可免费使用。不过,AI 智能体发出的工具调用会消耗实例的标准管理和基于查询的 API 配额。智能体活动频繁可能会影响可用的 API 配额。