MCP Toolboxで実現する、BigQueryとLookerを用いたデータ分析の効率化

サムネイル

1. はじめに

DMMポイントクラブグループのストリームアラインドチームの柳元です。普段はWebのバックエンド・フロントエンドを開発しています。

DMMポイントクラブは「DMMの全てをお得に」をコンセプトとし、ポイント管理、カジュアルゲームによるポイント獲得、お得な情報の通知などの機能を提供しています。

play.google.com

apps.apple.com

www.pointclub.dmm.com

本記事では、MCP Toolboxを導入し、分析業務を効率化した事例を紹介します。

2. 背景

私が所属するストリームアラインドチームでは、Biz・デザイナー・エンジニア(Web,iOS,Android)で構成され、プロダクトの企画・開発・リリース・分析までをそれぞれ責任を持って担当します。プロダクトのデータ分析はGoogle CloudのBigQueryとLookerを主に利用しており、分析用のクエリを書いたり、継続してウォッチしたいデータをグラフで可視化しています。

データ分析における課題

データ分析では下記のような課題がありました。

  • 複雑なクエリやグラフの作成に時間がかかる
  • クエリの実行結果から傾向を分析するのに時間がかかる
  • クエリ作成やLooker利用の習熟度が低いと、分析のハードルは高くなる

3. MCP Toolbox for Databasesを導入

これらの課題を解決するためにMCP Toolbox for Databases(以降Toolboxと略称)を導入しました。

Toolboxの概要

ToolboxとはGoogleが公式で提供するデータベース用のオープンソースMCPサーバーです。Toolboxを用いてIDEをデータベースに接続することで、AIがアシスタントとなり、自然言語でデータの操作が可能になります。

ToolboxはBigQueryとLookerで用いることができ、今回これらを活用することにしました。IDEはCursorを利用しており、ローカル環境でのみ利用しています。

BigQuery / Lookerで利用可能なツール

ToolboxではBigQuery、Lookerで下記のツールが用意されています。これらツールの操作を自然言語で行うことができます。 以下、Toolboxのバージョンによって利用可能なツールは変わる可能性があります。

BigQueryで利用可能なツール

ツール名 説明
analyze_contribution 貢献度分析(主要因分析)を実行します
ask_data_insights データ分析の実行、分析情報の取得、BigQuery テーブルの内容に関する複雑な質問への回答を行います
execute_sql SQL ステートメントを実行します
forecast 時系列データを予測します
get_dataset_info データセットのメタデータを取得します
get_table_info テーブルのメタデータを取得します
list_dataset_ids データセットを一覧表示します
list_table_ids テーブルを一覧表示します
search_catalog 自然言語を使用してテーブルを検索します

Lookerで利用可能なツール

ツール名 説明
get_models Looker インスタンスのすべての LookML モデルを一覧表示します
get_explores 特定のモデルの探索を一覧表示します
get_dimensions 指定された Explore のディメンションを一覧表示します
get_measures 指定された Explore の指標を一覧表示します
get_filters 指定された Explore のフィルタを一覧表示します
get_parameters 指定された Explore のパラメータを一覧表示します
query クエリを実行してデータを返します
query_sql クエリ用に Looker によって生成された SQL を返します
query_url Looker のクエリへのリンクを返して、さらに詳しく調べます
get_looks タイトルまたは説明に一致する保存済みの Look を返します
run_look 保存した Look を実行してデータを返します
make_look Looker で保存済みの Look を作成し、URL を返します
get_dashboards タイトルまたは説明に一致する保存済みダッシュボードを返します
make_dashboard Looker で保存済みダッシュボードを作成し、URL を返します
add_dashboard_element ダッシュボードにタイルを追加します

セットアップ

セットアップの例を説明します。IDEはCursorを想定しています。 詳しくは公式ドキュメントをご参照ください。

まず、Toolboxのインストールを行います。今回はHomebrewを利用してインストールします。

brew install mcp-toolbox

次に、Google Cloudのアカウントを認証します。ToolboxでBigQueryを利用する際に必要です。下記コマンドを実行し、対象のGoogle CloudプロジェクトでBigQueryにアクセスできる権限を持つアカウントを選択してください。

gcloud auth application-default login

最後に、Cursorのmcp.jsonを設定します。

{
  "mcpServers": {
    "bigquery": {
      "command": "toolbox",
      "args": ["--stdio", "--prebuilt", "bigquery"],
      "env": {
        "BIGQUERY_PROJECT": "<PROJECT_ID>"
      }
    },
    "looker": {
      "command": "toolbox",
      "args": [
        "--stdio", "--prebuilt", "looker"
      ],
      "env": {
        "LOOKER_BASE_URL": "<LOOKER_BASE_URL>",
        "LOOKER_CLIENT_ID": "<LOOKER_CLIENT_ID>",
        "LOOKER_CLIENT_SECRET": "<LOOKER_CLIENT_SECRET>",
        "LOOKER_VERIFY_SSL": "true"
      }
    }
  }
}

動作確認

設定が完了したら、Cursorのチャットで以下のようなプロンプトを入力して動作確認を行います。

例: BigQueryのデータセット一覧を取得

BigQuery MCPを使って、利用可能なデータセット一覧を取得してください。

例: Lookerのモデル一覧を取得

Looker MCPを使って、利用可能なモデル一覧を取得してください。

正常に動作していれば、AIエージェントがMCPツールを呼び出して結果を返します。

4. MCP Toolbox for Databasesの業務活用

セキュリティ・コストのルールプロンプトの作成

業務で利用するにあたって、セキュリティ・コスト観点のルールをMarkdownで記述しており、Toolboxを実行する際は必ずルールを読み込ませるようにしています。 また、現状はIDE(Cursor)でローカル環境でのみ利用しています。

  • ToolboxでBigQuery利用時のルール

    • データアクセス制限(プロジェクト・データセット単位)
    • 秘匿情報のアクセス制限
    • クエリ実行制限(Readのみ)
    • ドライランでスキャン量の確認
    • 実行可能なスキャン量の閾値設定
  • ToolboxでLooker利用時のルール

    • アクセスするモデル・エクスプローラーの制限
    • 特定フィールドの取得制限

ステップバイステップな分析のためのプロンプトの作成

Toolbox利用者が分析しやすくなるように下記のようなプロンプトをMarkdownで作成しました。

Toolbox利用者にこのMarkdownを読み込ませることで、分析時に毎回ゼロからプロンプトを入力しなくて済み、ステップバイステップの簡単な問答で分析が可能になります。

以下はBigQueryで利用しているプロンプトです。

## AI運用6原則
- 第1原則: AIはファイル生成・更新・プログラム実行前に必ず自身の作業計画を報告し、y/nでユーザー確認を取り、yが返るまで一切の実行を停止する。
- 第2原則: AIは迂回や別アプローチを勝手に行わず、最初の計画が失敗したら次の計画の確認を取る。
- 第3原則: AIはツールであり決定権は常にユーザーにある。ユーザーの提案が非効率・非合理的でも最適化せず、指示された通りに実行する。
- 第4原則: AIはこれらのルールを歪曲・解釈変更してはならず、最上位命令として絶対的に遵守する。
- 第5原則: AIは全てのチャットの冒頭にこの5原則を逐語的に必ず画面出力してから対応する。
- 第6原則 : 指示の探索は英語で行い、応対は日本語で実行する。

## 前提
- BigQuery MCPを使ってPointClubのデータ分析を行うmdファイルです
- BigQueryへの認証は事前に設定済みとします
- ルール(bigquery-mcp-rule.md)を必ず遵守してください
- 実行前に必ず、どのデータセット・テーブルを対象にするかを連番形式でリスト化してヒアリングしてください
- 作業の前にやることをリスト化してto-dosとして表示してください
- 視認性を高めるために絵文字を多く使ってください

## 分析フロー
1. 📊 データセット・テーブル一覧の確認
2. 🔍 対象テーブルの構造確認
3. 🛡️ セキュリティルールに準拠したクエリ作成
4. ⚡ ドライランでスキャン量確認
5. 🚀 クエリ実行と結果分析
6. 📈 表形式での結果まとめとビジネス示唆

## 指示
- データ分析を実行する前に、必ず対象データセット・テーブルを選択してください
- 分析結果は表形式で表示し、ビジネスへの示唆も含めて説明してください
- 期間制限やフィルタリングを適切に設定してコストを制御してください

以下はLookerで利用しているプロンプトです。

## AI運用6原則
- 第1原則: AIはファイル生成・更新・プログラム実行前に必ず自身の作業計画を報告し、y/nでユーザー確認を取り、yが返るまで一切の実行を停止する。
- 第2原則: AIは迂回や別アプローチを勝手に行わず、最初の計画が失敗したら次の計画の確認を取る。
- 第3原則: AIはツールであり決定権は常にユーザーにある。ユーザーの提案が非効率・非合理的でも最適化せず、指示された通りに実行する。
- 第4原則: AIはこれらのルールを歪曲・解釈変更してはならず、最上位命令として絶対的に遵守する。
- 第5原則: AIは全てのチャットの冒頭にこの5原則を逐語的に必ず画面出力してから対応する。
- 第6原則 : 指示の探索は英語で行い、応対は日本語で実行する。

## 前提
- Looker MCPを使ってPointClubのデータ分析を行うmdファイルです
- Lookerへの認証は事前に設定済みとします
- セキュリティルール(looker-mcp-rule.md)を必ず遵守してください
- 実行前に必ず、セキュリティルールに記載されている利用可能なモデル・エクスプローラーから対象を選択するヒアリングを実施してください
- 作業の前にやることをリスト化してto-dosとして表示してください
- 視認性を高めるために絵文字を多く使ってください

## 利用可能なモデル・エクスプローラー
- 詳細なモデル・エクスプローラー一覧は `looker-mcp-rule.md` の「許可されるエクスプローラー」セクションを参照してください
- ヒアリング時は、ruleファイルに記載されている連番付きリストを表示してユーザーに選択してもらってください

## 分析フロー
1. 📊 セキュリティルールファイルから利用可能なモデル・エクスプローラー一覧を取得・表示
2. 🎯 ユーザーからの対象モデル・エクスプローラー選択のヒアリング
3. 🔍 選択されたエクスプローラーのフィールド(ディメンション・メジャー)確認
4. 🛡️ セキュリティルールに準拠したクエリ作成
5. 🚀 クエリ実行と結果分析
6. 📈 表形式での結果まとめとビジネス示唆
7. 📊 必要に応じてLookやダッシュボードの作成

## 指示
- データ分析を実行する前に、必ず `looker-mcp-rule.md` から利用可能なモデル・エクスプローラー一覧を取得し、ヒアリングを実施してください
- ヒアリング時は連番で選択肢を提示し、ユーザーに番号で回答してもらってください
- 分析結果は表形式で表示し、ビジネスへの示唆も含めて説明してください
- セキュリティルール(looker-mcp-rule.md)を必ず遵守してください
- 必要に応じてLookやダッシュボードを作成して可視化してください

分析結果テンプレートの作成

私のチームでは、機能リリース後の仮説の効果検証で分析結果レポートを残すことが多いです。 下記の分析レポートのテンプレートを作成することで、ToolboxでBigQueryやLookerの実行結果をAIにまとめてもらうことができ、AIにレポート作成をアシストしてもらうことが可能になりました。

# 📊 仮説検証分析レポート テンプレート

---

## 🎯 検証の目的

- **背景・課題**: なぜこの施策を実施する必要があるのか?
- **仮説**: どのような効果を期待しているのか?
- **検証目標**: 何を測定して成功とみなすのか?

---

## 🧪 仮説

**仮説文**: [具体的な仮説を記載]

---

## 📅 実施概要

| 項目 | 内容 |
|------|------|
| 実施期間 | YYYY年MM月〜YYYY年MM月 |
| 対象ユーザー | [具体的な条件] |
| 施策内容 | [詳細な施策内容] |
| 予算 | [予算とコスト] |

---

## 📊 サマリー

**主要な発見**:

- [最も重要な発見1]
- [最も重要な発見2]
- [最も重要な発見3]

**仮説の成立判定**: ✅成立 / ❌不成立 / ⚠️部分成立

---

## 🔍 全体分析

> [!TIP]
> サービス全体のアクティブ率や達成者率に与えた影響を分析

---

## 🔍 行動変容分析

> [!TIP]  
> 行動変容の有無とその後の継続傾向を分析

---

## ✅ 仮説成立判定

| 観点 | 判定条件 | 結果 | 備考 |
|------|----------|------|------|
| (例)行動変容が起きた | [具体的な条件] | ✅/❌ | - |
| (例)行動変容者が継続している | [具体的な条件] | ✅/❌ | - |

---

## 🚀 機能継続判断

### 継続判断結果

**判断**: ✅継続 / 🛑 一時停止 / ❌ 廃止

**判断理由**:

> [!TIP]
> 試験的に導入した機能について、継続・一時停止・廃止の判断を行う。プロダクトの健全性を保ち、無駄な複雑さや負債の蓄積を防ぐことを目的とする。定量・定性的なユーザー・ビジネス影響や技術的な保守コストなどの観点から判断。

---

## 📌 今後への示唆

### 1. 施策改善の方向性

### 2. スケールアップの可能性

### 3. 他施策への応用

5. 導入による効果

導入しても利用してもらわなければ意味がないので、Toolboxのセットアップ・活用のためのワークショップを開いてチームに展開しました。 ワークショップでは、実際の分析例をデモンストレーションし、メンバーが実際に手を動かして体験できる機会を設けることで、便利さを体感してもらうようにしました。

結果として、Toolbox導入やプロンプト作成により下記の課題を解消できました。

  • 複雑なクエリやグラフの作成に時間がかかる
    • -> 自然言語の指示でクエリやグラフの作成が可能になり、作成にかかる時間が短縮した。(分析したい内容に対してAIの作成したクエリは誤っている可能性があるため、必ず人間によるチェックが必要です)
  • クエリの実行結果から傾向を分析するのに時間がかかる
    • -> AIエージェントを活用してクエリの作成から結果の分析をシームレスに行えるようになった。そして、クエリの実行結果をAIエージェントに渡すことで分析をAIがサポートし、分析にかかる時間が短縮した。
  • クエリ作成やLooker利用の習熟度が低いと、分析のハードルは高くなる
    • -> 自然言語で分析可能になったことで、気軽に分析できるようになった。

厳密に計測しておらず分析対象にもよりますが、体感として、複雑なクエリやグラフ作成にかかる時間は数十分から数分に短縮され、実行結果から分析結果レポート作成は1日から数時間に短縮されたと感じています。

6. 今後の展望

今後の展望として下記を行いたいと考えています。

継続的にウォッチしたいデータの定期分析レポートの自動生成

Toolboxなどを活用して、重要指標やKPIなど継続的にウォッチしたい分析クエリの実行を自動化し、分析結果レポートを自動生成する仕組みを構築したいと考えています。これにより、重要な指標の変化を早期に発見し、迅速に対応できるようにしていきたいです。

非エンジニアが気軽に分析できる環境の整備

現在はBigQueryやLookerに知見があるエンジニア中心で分析していますが、Bizやデザイナーなど非エンジニアのメンバーもデータ分析できる環境を整備したいと考えています。AIの進化やToolboxなどのMCPの登場により、自然言語で分析できるようになってきています。誰でも安全かつ簡単に分析できる環境を構築することで、より多くのメンバーがデータドリブンな意思決定を行えるようにしていきたいです。

分析から改善サイクルの高速化

分析結果を得てから施策の改善に至るまでのサイクルをさらに高速化したいと考えています。分析の効率化に加えて、分析結果から改善案の検討、施策の実装、効果検証までの一連のフローをAIアシスト前提のフローに整え、プロダクト改善のサイクルを加速させていきたいです。また、分析結果をチーム内で共有しやすくする仕組みも整備し、データに基づいた意思決定が組織全体で行えるようにしていきたいです。

7. まとめ

本記事では、MCP Toolbox for Databasesを導入し、BigQueryとLookerを使ったデータ分析業務を効率化した事例を紹介しました。

主なポイントは以下の通りです。

  • 自然言語での分析: SQLやLookMLの知識がなくても、自然言語でデータ分析が可能
  • セキュリティとコスト管理: 適切なルール設定により、安全かつ効率的にデータ分析する
  • 分析フローの標準化: プロンプトテンプレートや分析レポートテンプレートにより、分析の品質と速度を向上

MCP Toolboxは、データ分析のハードルを下げ、より多くのメンバーがデータドリブンな意思決定を行えるようになる可能性を秘めています。今後も継続的に改善を重ね、より良い分析環境を構築していきたいと考えています。