mcpField
L
looker-mcp-skill

looker-mcp-skill

github.com/looker-open-sourceデータ・データベース4399 回インストール2 週間前に更新
リポジトリ

looker-mcp-skill について

クライアントやエージェントを Looker の MCP サーバーに接続するための設定・利用ガイドです。マネージド型とスタンドアロン型の構成、OAuth 認証、データクエリ、LookML 開発、診断ツールを説明します。

主な機能

  1. 01マネージド型とスタンドアロン型の構成
  2. 02OAuth とベアラートークン認証
  3. 03データクエリと LookML メタデータの確認
  4. 04ダッシュボードと保存済み Look の作成
  5. 05LookML プロジェクトの編集と検証
  6. 06ヘルスチェックと性能診断

活用シーン

  1. 01IDE や AI エージェントを Looker に接続
  2. 02MCP ツール経由で Looker データを検索
  3. 03LookML プロジェクトの開発と検証
  4. 04インスタンスの状態とクエリ性能の確認

MCP 対応

Looker マネージドサーバーまたは MCP Toolbox が、MCP クライアントにデータクエリ、メタデータ、コンテンツ管理、LookML 開発、Git 操作、診断機能を提供する方法を説明します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/looker-open-source/looker-skills --skill looker-mcp-skill

インストール後、Claude Code で/looker-mcp-skillを入力して読み込まれたか確認します。

詳細

Looker MCP サーバーのスキル

このスキルでは、Looker Model Context Protocol(MCP)サーバーへのアクセス方法、設定方法、使用方法について説明します。AI アシスタント、ローカル IDE(VS Code、Cursor、Claude Desktop、Gemini CLI)、自動エージェントが Looker インスタンスと直接連携し、データのクエリ、セマンティックモデルの確認、LookML プロジェクトの管理、システム診断の実行を行えるようにします。


1. Looker MCP サーバーへのアクセス

Looker では、MCP サーバーに対して主に 2 種類のデプロイ方法がサポートされています。

A. Looker 管理の MCP サーバー(Cloud/GCP Core に推奨)

Looker 管理の MCP サーバーは、Looker インスタンス(Looker Core および Looker Original)に直接組み込まれています。Google Cloud がホストおよび管理するため、別途サーバーインフラストラクチャを実行する必要はありません。

  • エンドポイント:https://<YOUR_LOOKER_INSTANCE_URL>/mcp
  • 有効化:
    1. Admin Panel > Platform > MCP に移動します。
    2. Enable MCP Server を On に切り替えます。
    3. ユーザーとクライアントアプリケーションに適切な API 権限と機能権限があることを確認します。
B. ローカル/スタンドアロン MCP サーバー(MCP Toolbox for Databases)

顧客ホスト型(オンプレミス)インスタンス、カスタム開発環境、スタンドアロン CLI 統合では、MCP Toolbox for Databases(@google/mcp-toolbox)を使用して MCP サーバーをローカルで実行できます。

  • インストール/起動:

    npx @google/mcp-toolbox --prebuilt=looker,looker-dev
    

    または Docker を使用する場合:

    docker run -p 5000:5000 \
      -e LOOKER_BASE_URL="https://your-instance.looker.com" \
      -e LOOKER_CLIENT_ID="<CLIENT_ID>" \
      -e LOOKER_CLIENT_SECRET="<CLIENT_SECRET>" \
      us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:latest --prebuilt=looker,looker-dev --address=0.0.0.0
    
  • 環境変数:

    • LOOKER_BASE_URL:Looker インスタンスのベース URL(例:https://mycompany.looker.com)。
    • LOOKER_CLIENT_ID:Looker API 4.0 のクライアント ID。
    • LOOKER_CLIENT_SECRET:Looker API 4.0 のクライアントシークレット。
    • LOOKER_VERIFY_SSL:自己署名の開発用証明書を使用する場合は false に設定します(デフォルト:true)。
  • Cloud Run へのデプロイ: Google Cloud Run で MCP Toolbox サーバーを実行する方法については、Looker Cloud Run サンプルを参照してください。


2. OAuth 認証の設定

AI アプリケーションやクライアントがユーザーに代わって安全に認証できるようにするには、Looker でクライアントアプリケーションを OAuth クライアントとして登録します。

ステップ 1:OAuth クライアントアプリケーションの登録

API Explorer 拡張機能(推奨)または curl を使用して、OAuth クライアントアプリケーションを登録できます。

オプション A:Looker API Explorer を使用する(推奨)

API Explorer 拡張機能は、Looker のインストールにデフォルトで含まれています。

  1. Looker を開き、Applications > API Explorer に移動します(または https://<YOUR_LOOKER_INSTANCE_URL>/extensions/marketplace_extension_api_explorer::api-explorer/ にアクセスします)。
  2. register_oauth_client_app エンドポイント(POST /oauth_client_apps/{client_guid})を検索します。
  3. <CLIENT_GUID> を入力し、リクエスト本文のパラメーター(client_guid、display_name、redirect_uri、enabled: true)を設定します。
  4. Run Request を実行して、アプリケーションを登録します。
オプション B:curl を使用する

または、Looker の oauth_client_apps エンドポイントに HTTP POST リクエストを送信します。

curl -X POST "https://<YOUR_LOOKER_INSTANCE_URL>/api/4.0/oauth_client_apps/<CLIENT_GUID>" \
  -H "Authorization: Bearer <ADMIN_BEARER_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "client_guid": "<CLIENT_GUID>",
    "display_name": "My AI Assistant Client",
    "redirect_uri": "http://127.0.0.1:7777/oauth/callback",
    "enabled": true
  }'
  • <CLIENT_GUID>:インテグレーション用に生成された一意のクライアント識別子です。注:クライアントアプリケーションの設定(例:IDE または AI クライアントの OAuth 設定)で、OAuth Client ID(clientId)にこの <CLIENT_GUID> を設定してください。
  • redirect_uri:認可コードの送信先となるコールバック URL です。注:redirect_uri は、登録するクライアントまたは IDE アプリケーションによって異なります。
    • Antigravity:https://antigravity.google/oauth-callback
    • Claude Desktop / Claude AI:https://claude.ai/api/mcp/oauth/callback または http://localhost:<PORT>/oauth/callback
    • VS Code / Cloud Code Extension:https://vscode.dev/redirect または http://127.0.0.1:<PORT>/oauth/callback
    • Cursor Desktop:https://cursor.com/mcp/callback
    • 汎用 CLI / ローカルツール:http://127.0.0.1:7777/oauth/callback または http://localhost:8080/callback

設定例:クライアントの OAuth 認証情報とクライアント GUID の設定手順については、Looker OAuth を使用した Claude Desktop の設定を参照してください。

手順 2:OAuth PKCE フロー/ベアラー認証を実行する
  1. ユーザーを認可 URL にリダイレクトする: PKCE コード検証子と SHA-256 チャレンジを生成し、ユーザーを次の URL にリダイレクトします。

    https://<YOUR_LOOKER_INSTANCE_URL>/auth/oauth?client_id=<CLIENT_GUID>&response_type=code&code_challenge=<PKCE_CHALLENGE>&code_challenge_method=S256&redirect_uri=<REDIRECT_URI>
    
  2. 認可コードをアクセストークンとリフレッシュトークンに交換する: PKCE ハンドシェイクを完了するため、code_verifier を含めてトークンエンドポイントに POST リクエストを送信します。

    curl -X POST "https://<YOUR_LOOKER_INSTANCE_URL>/api/4.0/oauth/token" \
      -H "Content-Type: application/x-www-form-urlencoded" \
      -d "grant_type=authorization_code" \
      -d "client_id=<CLIENT_GUID>" \
      -d "redirect_uri=<REDIRECT_URI>" \
      -d "code=<AUTHORIZATION_CODE>" \
      -d "code_verifier=<CODE_VERIFIER>"
    
  3. MCP リクエストを認証する: MCP サーバーに送信するリクエストの HTTP ヘッダーに、取得した access_token を含めます。

    Authorization: Bearer <ACCESS_TOKEN>
    

3. MCP クライアントの接続(IDE/エージェントの設定)

サーバーのエントリをクライアント設定ファイル(例:.mcp.json、Cursor mcp.json、または Gemini CLI の設定ファイル)に追加します。

リモート/管理対象 MCP の設定
ネイティブ OAuth クライアント(例:Claude Desktop)

OAuth フローをネイティブでサポートするクライアントは、サーバー URL を設定すると認可を自動的に処理します。

{
  "mcpServers": {
    "Looker": {
      "httpUrl": "https://<YOUR_LOOKER_INSTANCE_URL>/mcp"
    }
  }
}

注:ネイティブ OAuth クライアントでは、登録済みの <CLIENT_GUID> を Client ID として使用して、クライアントの OAuth 設定を行ってください。詳細については、Claude Desktop の設定を参照してください。

標準 HTTP クライアント/カスタムスクリプト(ヘッダー経由のベアラートークン)

OAuth ログインフローをネイティブで開始しない標準 HTTP MCP クライアントまたはカスタムスクリプトでは、事前に取得した認証トークンを headers フィールドに渡します。

{
  "mcpServers": {
    "Looker": {
      "httpUrl": "https://<YOUR_LOOKER_INSTANCE_URL>/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_OAUTH_ACCESS_TOKEN>"
      }
    }
  }
}
ローカル/スタンドアロン MCP の設定
Stdio モード(npx 経由)
{
  "mcpServers": {
    "Looker": {
      "command": "npx",
      "args": ["-y", "@google/mcp-toolbox", "--prebuilt=looker,looker-dev"],
      "env": {
        "LOOKER_BASE_URL": "https://<YOUR_LOOKER_INSTANCE_URL>",
        "LOOKER_CLIENT_ID": "<YOUR_CLIENT_ID>",
        "LOOKER_CLIENT_SECRET": "<YOUR_CLIENT_SECRET>"
      }
    }
  }
}
HTTP モード(Docker コンテナ経由)

セクション 1.B に記載されているように、Docker 経由でスタンドアロン MCP サーバーを実行している場合は、MCP URL に http://localhost:5000/mcp を指定して MCP クライアントを接続します。

{
  "mcpServers": {
    "Looker": {
      "httpUrl": "http://localhost:5000/mcp"
    }
  }
}

4. MCP で利用できるツール

Looker MCP Server は、6 つの機能領域に分類された45 個のツールを公開しています。

📊 データとクエリの実行
ツール説明
queryLookML モデル、Explore、ディメンション、メジャー、フィルター、並べ替え、上限を使用して構造化クエリを実行します。
query_sql指定されたクエリ定義に対し、Looker がコンパイルした基盤となる SQL クエリを生成します。
query_urlLooker の共有可能なクエリ URL またはスラッグを指定して、クエリを実行するか解決します。
run_lookID で保存済み Look を実行し、データセットの結果を返します。
run_dashboard指定された Dashboard ID の要素クエリを実行します。
🔍 検出とメタデータカタログ
ツール説明
get_modelsインスタンスで利用可能なすべての LookML モデルを一覧表示します。
get_exploresLookML モデル内で定義されている Explore を一覧表示します。
get_dimensionsExplore に定義されているディメンションフィールドを取得します。
get_measuresExplore に定義されているメジャーフィールドを取得します。
get_filtersExplore に定義されているフィルター専用フィールドを取得します。
get_parametersExplore に定義されているパラメーターを取得します。
get_connectionsデータベース接続の設定を一覧表示します。
get_connection_databases接続経由でアクセスできるデータベースを一覧表示します。
get_connection_schemasデータベース接続内のスキーマを一覧表示します。
get_connection_tables接続スキーマ内のデータベーステーブルを一覧表示します。
get_connection_table_columnsデータベーステーブルの列とメタデータを一覧表示します。
🎨 ダッシュボードとコンテンツの作成
ツール説明
get_looks保存済みの Look を検索して取得します。
get_dashboardsユーザー定義のダッシュボードと LookML ダッシュボードを検索して取得します。
make_lookクエリ定義から新しい Look を作成します。
make_dashboard新しいダッシュボードコンテナを作成します。
add_dashboard_elementダッシュボードに可視化要素/データ要素を追加します。
add_dashboard_filterダッシュボードに動的なインタラクティブフィルターを追加します。
generate_embed_urlLooker コンテンツの埋め込みに使用する、署名付き SSO 埋め込み URL を生成します。
🛠️ LookML プロジェクトの開発
ツール説明
dev_modeAPI セッションの開発モードと本番モードを切り替えます。
get_projectsセッションからアクセスできるすべての LookML プロジェクトを一覧表示します。
get_project_directoriesプロジェクトのディレクトリ構造ツリーを取得します。
get_project_filesLookML プロジェクト内のファイルを一覧表示します。
get_project_file指定した LookML ファイルの行の内容を表示します。
create_project_file新しい LookML ファイル(.lkml、.md など)を作成します。
update_project_file既存の LookML ファイルの行の内容を更新します。
delete_project_fileプロジェクトのワークスペースから LookML ファイルを削除します。
create_project_directoryLookML プロジェクト内にサブディレクトリを作成します。
delete_project_directoryプロジェクトのサブディレクトリを削除します。
create_view_from_tableデータベーステーブルから標準的な LookML ビュー定義を自動生成します。
validate_projectLookML バリデーターを実行し、コンパイルエラー/警告を返します。
get_lookml_testsLookML で記述されたデータテストの定義を取得します。
run_lookml_testsLookML データテストを実行し、合格/不合格のステータスを返します。
🌿 Git バージョン管理
ツール説明
get_git_branchLookML プロジェクトのアクティブな Git ブランチの状態を取得します。
list_git_branchesリモートおよびローカルの Git ブランチを一覧表示します。
create_git_branch新しい Git 作業ブランチを作成します。
switch_git_branchプロジェクトセッションのコンテキストを指定した Git ブランチに切り替えます。
delete_git_branch指定した Git ブランチを削除します。
⚙️ 開発者向けユーティリティと診断ツール
ツール説明
health_pulseLooker インスタンスの軽量な稼働状況およびヘルスチェックを実行します。
health_analyzeインスタンスのクエリパフォーマンスを監査し、遅いクエリや PDT のボトルネックを特定します。
health_vacuum利用されていないコンテンツ、未使用の Explore、クリーンアップ候補のオブジェクトを特定します。

5. セキュリティと認可に関するガイドライン

  1. ユーザースコープの適用と OAuth コンテキスト:ユーザーレベルのスコープ適用とアクセス制御(アクセス許可、モデルセット、ユーザーロールなど)は、Looker-Managed MCP Server(OAuth を介してユーザーを認証)を使用する場合、またはスタンドアロンサーバーにユーザー固有の OAuth トークンを設定する場合に適用されます。
  2. 静的 API 認証情報に関する警告:スタンドアロン/ローカル MCP サーバーを静的な環境変数の認証情報(LOOKER_CLIENT_ID および LOOKER_CLIENT_SECRET。共有 Cloud Run サービスとしてのデプロイなど)でデプロイすると、すべてのツールの実行が、その単一の API 認証情報ペアのセキュリティコンテキストで行われます。これにより、個々のユーザーレベルのアクセス制御や行レベルのセキュリティルールが迂回される可能性があります。
  3. 開発モードの分離:プロジェクトファイルを編集するときは、ステージングしてコミットする前に、必ず dev_mode を true に切り替えて、個人用の開発者ワークスペースブランチに編集内容を分離してください。

6. 代替ツール:Looker CLI(looker-cli)

ターミナルでのワークフロー、シェルスクリプト、CI/CD パイプライン向けに、Looker API の操作に使用できるコマンドラインの代替手段として、**Looker CLI(looker-cli)**を利用できます。

  • リポジトリ:Looker CLI の GitHub リポジトリ
  • ユースケース:シェルスクリプト、ターミナルでの対話型コマンド、CI/CD の自動化、開発者のオンボーディングワークフロー(installing-looker-cli および authenticating-looker-cli のスキルを参照)。

コメント