Technical Blog テクニカルブログ
  1. HOME
  2. テクニカルブログ
  3. 「売上分析してダッシュボードを作って」が実現する!Looker MCPツールボックス徹底解説

「売上分析してダッシュボードを作って」が実現する!Looker MCPツールボックス徹底解説

投稿者:杉山

目次

  1. はじめに
  2. MCPツールボックスとGemini CLIの接続手順
  3. 実践!AIアシスタントと対話しながら売上分析
  4. さいごに

1.はじめに

こんにちは、杉山です。
最近、AIが外部のデータやツールと連携する技術が注目されていますが、その中で「MCP(Model Context Protocol)」というプロトコルをご存知でしょうか?MCPは、AI(特に大規模言語モデル LLM)が、外部のデータやツールと安全に連携するための「仲介役」のような役割をします。

Googleの公式ブログでは、MCPを「ユニバーサル翻訳機」と表現しており、AIモデルに以下のことを可能にさせます。

  • ツールを動的に検出して使用する
    • ハードコードされた統合ではなく、AI エージェントは利用可能な機能をリアルタイムで識別して操作できます。
  • 関連性のある最新のコンテキストにアクセス
    • AI モデルは、ライブで検証済みの情報をソースから直接取得できるため、ハルシネーションが大幅に減少し、応答の精度が向上します。
  • 安全で管理されたデータ アクセスの確保
    • MCP はホストを介したセキュリティモデルを提供し、AI エージェントがアクセスできるデータとその方法をきめ細かく制御できます。

今回このMCPをご紹介する理由は、Lookerでも「MCPツールボックス」という機能が公開されたからです。これにより、Lookerの活用方法がさらに広がりました。本記事では、MCPツールボックスのセットアップ方法から、実際の分析・ダッシュボード作成までを分かりやすくご紹介します!

2.MCPツールボックスとGemini CLIの接続手順

本記事では、Google CloudのCloud Shell上でGemini CLIを使い、Lookerと接続する方法をご紹介します。公式ドキュメントにはClaude Codeなど他の環境で構成する方法も記載されていますので、ぜひご自身の使い慣れた環境でお試しください。

ステップ1:MCPツールボックスをインストールする

Cloud Shellを起動し、以下のコマンドを実行してツールボックスをインストールします。
Point: ブログ執筆時点の最新版はv0.14.0です。最新版についてはこちらからご確認ください。

# Cloud Shellで実行
curl -O https://storage.googleapis.com/genai-toolbox/v0.14.0/linux/amd64/toolbox

実行後、以下が表示されると成功です。

ダウンロード後、バイナリを実行可能にするため、以下のコマンドを実行します。

chmod +x toolbox

ステップ2:settings.json ファイルの作成

次に、Gemini CLIの設定ファイルを作成します。Cloud Shellを利用している場合、Gemini CLIはデフォルトで利用可能なため、設定ファイルを作成するだけでOKです。

まず、以下のコマンドで設定ファイルを作成します。
Point: .geminiは隠しフォルダのため、通常のlsコマンドでは表示されません。直接パスを指定してファイルを作成するのが確実です。

vi ~/.gemini/settings.json

settings.jsonには、以下の内容を貼り付けてください。

{
  "mcpServers": {
    "looker-toolbox": {
      "command": "xxx/toolbox",
      "args": [
        "--stdio",
        "--prebuilt",
        "looker"
      ],
      "env": {
        "LOOKER_BASE_URL": "https://xxx.looker.com:19999",
        "LOOKER_CLIENT_ID": "xxx",
        "LOOKER_CLIENT_SECRET": "xxx",
        "LOOKER_VERIFY_SSL": "true"
      }
    }
  },
  "selectedAuthType": "cloud-shell"
}

貼り付け後、2箇所を修正します。

  • commandのPATHを修正
    手順に記載されているデフォルトのPATHだと、検証時に後続の接続でエラーが発生したため、toolboxファイルの絶対パスに変更しました。以下のコマンドでパスを取得し、“xxx/toolbox”の部分を絶対パスに書き換えてください。
# toolboxを配置したディレクトリに移動
cd [toolboxを配置したディレクトリ]
# pwdコマンドで絶対パスを表示
pwd
  • env内のLooker情報を修正
    LOOKER_BASE_URLLOOKER_CLIENT_IDLOOKER_CLIENT_SECRETを、ご自身のLooker環境の情報に書き換えます。
    Point: LOOKER_BASE_URLの末尾にはポート番号 :19999 の追記をおすすめします。

ステップ3:Gemini-CLIの起と接続確認

Cloud Shellで以下のコマンドを実行し、Gemini CLIを起動します。

npx https://github.com/google-gemini/gemini-cli

起動後、プロンプトで /mcp コマンドを実行し、以下のようにlooker-toolboxが表示されれば接続成功です!

3.実践!AIアシスタントと対話しながら売上分析

接続ができたので、早速AIに分析を依頼してみましょう。
今回のシナリオは、「複数事業を展開する企業の経営担当者として、ドラッグストア事業の売上を分析し、ダッシュボードを作成する」です。

分析~ダッシュボード作成まで

まずは、シンプルにドラッグストア事業の今年度の売上についてGemini CLI上で質問してみます。

Drugstoreの売上を分析したいです。今年度の売上について教えてください

すると、AIはLookerに接続されている全てのデータモデルを確認し、最適なExplore(分析データセット)を探し出してくれます。

必要な項目を抽出し、集計までしてくれましたがここで問題が…

AIがDrugstoreを商品の「カテゴリ」だと誤認してしまいました。これは、LookMLを以下のように定義していたことが原因かと思われます。

explore: t_sales {
  label: "販売分析"
  description: "販売分析用のデータエクスプローラー"
  join: m_customer  {
    type: left_outer
    relationship: many_to_one
    sql_on: ${t_sales.customerid} = ${m_customer.customerid} ;;
  }
  join: m_product  {
    type: left_outer
    relationship: many_to_one
    sql_on: ${t_sales.productid} = ${m_product.productid} ;;
  }

descriptionの説明を『Drugstoreの販売分析用のデータエクスプローラー』など適切な説明を記述しておくことで、ハルシネーションを防ぎ、AIの精度をさらに向上することが可能です。

気を取り直して、会話の中で補足指示を出してみます。

このデータすべてがDrugstoreでの売上データを指しています

この指示で、AIは正しくデータを集計し、さらに分析を深めるための次のアクションを提案してくれました。実際のLookerで集計してみた結果はこちらです。

提案に従い、「店舗別売上」や「売上構成比」などを分析させた後、Looker内のデータだけでなく、一般的な視点も踏まえた傾向分析を依頼してみました。

ソースが不明なのでどこまでを活用するかはユーザー次第ですが、ある種のインサイトを得るには良さそうです◎

最終的に、ここまでの分析結果をダッシュボードにまとめるよう指示します。

ありがとうございます。これまで分析した結果をまとめたダッシュボードを作成したいです。

「ダッシュボードの作成が完了しました」という回答とリンクが送られてきて、クリックすると、指示通りのダッシュボードがLooker上に自動で作成されていました。

Vizを特に指定せずとも、構成比であれば『円グラフ』など、それぞれ最適な形で作成されとても便利な機能です!ちなみに作成後にVizなどを変えたい場合は、以下のように手動の作業が発生するため、あらかじめ表現方法をプロンプトに追加しておきましょう◎

5.さいごに

LookerのMCPツールボックスが公開されたことにより、AIに分析や可視化を依頼するという、新しいデータ活用の形が見えてきました。今後はGoogleのAgentspaceをはじめ、様々なAIエージェントとの連携が進み、Lookerの可能性はますます広がっていきそうで楽しみです。

次回は、また別のツールとの連携などもご紹介できればと思いますので、ご期待ください!

ページのトップへ