项目简介

lkr CLI 是一个用于与 Looker 平台交互的命令行工具。除了提供多种 Looker 相关的 CLI 命令外,它还内置了一个符合 Model Context Protocol (MCP) 标准的服务器,旨在为支持 MCP 的 LLM 客户端(如某些集成开发环境中的 AI 助手)提供 Looker 相关的上下文信息和功能。

主要功能点

  • Looker 命令行交互: 提供方便的命令与 Looker 实例进行认证、管理和交互。
  • 内置 MCP 服务器: 作为一个后台进程运行,通过 JSON-RPC 协议与 LLM 客户端通信。
  • 提供 Looker 上下文: 允许 LLM 客户端访问 Looker 实例的数据库连接、schemas、表和列信息,作为理解 LookML 项目或生成查询的上下文。
  • 支持工具调用: 注册 Looker 相关的“工具”,使 LLM 能够执行特定操作,例如运行 Looker Spectacles 验证查询来检查 LookML 更改。
  • 多种认证方式: 支持 Looker OAuth2 (PKCE) 和 API Key 认证方式。

安装步骤

该项目推荐使用 'uv' 或 'pip' 进行安装。也可以使用提供的 Docker 镜像运行。

  1. 使用 uv 安装 (推荐):
    • 首先安装 'uv' (具体步骤请参考 'uv' 官方文档)。
    • 运行命令 'uv run --with lkr-dev-cli lkr --help' 即可开始使用,'uv' 会自动处理环境和依赖。
  2. 使用 pip 安装:
    • 确保你的 Python 环境已安装 'pip'。
    • 运行命令 'pip install lkr-dev-cli'。
    • 安装完成后,可以直接使用 'lkr <command>' 命令。
  3. 使用 Docker:
    • 确保已安装 Docker。
    • 可以直接运行 Docker 镜像来执行命令,例如 'docker run -it --rm us-central1-docker.pkg.dev/lkr-dev-production/lkr-cli/cli:latest lkr --help'。

服务器配置

lkr CLI 内置的 MCP 服务器需要通过支持 MCP 的 LLM 客户端进行配置和启动。客户端通常需要提供以下信息来启动 lkr MCP 服务器进程:

  • 服务器名称 (server name): 用于在客户端中标识该 MCP 服务器的唯一名称,例如 '"lkr-mcp"'。
  • 启动命令 (command): 用于启动服务器进程的可执行文件路径。如果使用 'uv',命令通常是 '"uv"';如果使用 Docker,命令是 '"docker"'。
  • 命令行参数 (args): 传递给启动命令的参数列表。
    • 使用 'uv' 时,参数通常包括 'run'、'--with lkr-dev-cli' (指定依赖)、'lkr' (主命令)、'mcp' (子命令)、'run' (启动 MCP 服务器)。
    • 使用 Docker 时,参数通常包括 'run'、'--rm' (退出后移除容器)、'-it' (交互式终端)、'us-central1-docker.pkg.dev/lkr-dev-production/lkr-cli/cli:latest' (镜像名称)、'lkr' (容器内主命令)、'mcp' (容器内子命令)、'run' (容器内启动 MCP 服务器)。

这些配置信息会以 JSON 格式保存在客户端的配置文件中(例如 'mcp.json'),具体格式由客户端定义。

基本使用方法

  1. Looker 认证: 在启动 MCP 服务器之前,需要先通过 lkr CLI 完成与 Looker 实例的认证。使用命令 'lkr auth login' 按照提示完成 OAuth2 认证,或设置环境变量提供 API Key 信息。'lkr auth whoami' 可以检查当前认证状态。
  2. 启动 MCP 服务器: 通常由支持 MCP 的 LLM 客户端根据其配置文件自动启动。客户端会执行类似 'uv run --with lkr-dev-cli lkr mcp run' 或相应的 Docker 命令。
  3. LLM 客户端集成: 在支持 MCP 的 LLM 客户端配置中添加 lkr MCP 服务器的启动信息。配置完成后,LLM 客户端即可通过 MCP 协议与 lkr 服务器通信,利用其提供的 Looker 上下文和工具。

注意: lkr CLI 也包含一个 'observability embed' 命令,它会启动一个独立的 FastAPI 服务器用于 Looker 嵌入式性能监控,但这与内置的 MCP 服务器是不同的功能。MCP 服务器的核心入口是 'lkr mcp run' 命令。

信息

分类

AI与计算