AIエージェントとBigQueryを接続すると何ができるか
Claude CodeやCodex CLIのようなAIエージェントをBigQueryに接続すると、日本語の質問だけで広告データを分析できるようになります。「先月の媒体別のCPAを出して」と入力すれば、エージェントがSQLを書き、実行し、結果を日本語で要約して返します。SQLを書く役割をAIに任せ、人間は問いを立てることと結果の妥当性判断に集中する分担です。
この構成が活きるのは、複数媒体の広告データをBigQueryに集約している場合です。Google広告、Meta広告、Yahoo!広告のデータが1か所にあれば、媒体をまたいだ質問に一度で答えられます。管理画面を行き来して数字を転記する業務が、対話で完結するようになります。
筆者もAIエージェント経由でBigQueryの広告データを日常的に分析しています。定型レポートはスケジュールクエリで自動化しつつ、「なぜ先週CPAが上がったのか」のような探索的な深掘りはエージェントとの対話で行う、という使い分けが実務では有効でした。
まだ広告データをBigQueryに集約していない場合は、先にBigQueryで広告データを集約する方法をご覧ください。
MCPとは何か
MCP(Model Context Protocol)は、AIエージェントと外部ツールをつなぐための共通規格です。2024年11月にAnthropicが公開し、その後OpenAIやGoogleのエージェント製品も対応しました。MCPに対応したツールであれば、どのエージェントからも同じ仕組みで接続できます。
BigQueryをMCP経由で公開する窓口となるのが、Google製のオープンソース「MCP Toolbox for Databases」です。この記事では、Toolboxの事前構成済み設定(prebuilt)を使い、最短の手順でBigQueryを接続します。SQLを1行も書かずにセットアップが完了する構成です。
なお、この記事で扱うのは「エージェントにBigQueryを分析させる」接続です。生成AIの広告運用への活用全般は生成AIを広告運用に活かすで整理しています。
前提条件を確認する
セットアップの前に、次の4点が揃っているかを確認してください。
| 前提条件 | 確認方法 | 未対応の場合 |
|---|---|---|
| BigQueryに広告データがある | コンソールでデータセットを確認 | 広告データの集約方法を参照 |
| gcloud CLIが使える | gcloud --version | gcloud CLIのセットアップを参照 |
| BigQueryの閲覧・実行権限がある | コンソールでクエリを1本実行 | 管理者にIAMロールの付与を依頼 |
| AIエージェントを導入済み | claude --version など | 各公式ドキュメントの手順で導入 |
必要なIAMロールは、公式ドキュメントでは roles/bigquery.user(クエリ実行)と roles/bigquery.dataViewer(データ閲覧)が案内されています。書き込み系のロールは、この用途では付与しないことを推奨します。理由は後述の安全設定のセクションで説明します。
認証はApplication Default Credentials(ADC)を使います。未設定の場合は、次のコマンドを実行してブラウザでログインしてください。
gcloud auth application-default login
MCP Toolboxをセットアップする
セットアップの全体像は次の4ステップです。
Toolboxのインストール
MCP Toolboxは実行ファイル1つで動作します。OSごとのダウンロード方法は次のとおりです。バージョンは執筆時点の最新であるv1.7.0を例にしています。導入時はリリースページで最新バージョンを確認してください。
Windowsの場合(PowerShell):
curl.exe -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v1.7.0/windows/amd64/toolbox.exe"
Macの場合(Homebrew):
brew install mcp-toolbox
インストール後、バージョンが表示されれば準備完了です。
toolbox --version
補足 MCP Toolboxは以前「genai-toolbox」という名前で公開されていました。GitHubリポジトリ名は
googleapis/mcp-toolboxに変更されています。古い解説記事では旧名で紹介されていることがあるため、参照時は注意してください。
prebuilt設定で使えるツール
Toolboxを --prebuilt bigquery オプション付きで起動すると、BigQuery用のツール一式が自動で登録されます。設定ファイルを書く必要はありません。エージェントから利用できる主なツールは次のとおりです。
| ツール名 | できること |
|---|---|
execute_sql | SQLの実行 |
list_dataset_ids / list_table_ids | データセット・テーブルの一覧取得 |
get_dataset_info / get_table_info | スキーマなどのメタデータ取得 |
search_catalog | 自然言語でのテーブル検索 |
ask_data_insights | 自然言語でのデータ質問応答 |
forecast | 時系列予測 |
analyze_contribution | 変化の寄与度分析 |
実務で中心になるのは execute_sql とメタデータ取得系です。エージェントはまずテーブル構造を調べ、それを踏まえてSQLを組み立てる、という手順を自律的に踏みます。人間がスキーマを説明しなくても分析が始められるのは、この仕組みのおかげです。
各AIエージェントに登録する
Toolboxを各エージェントにMCPサーバーとして登録します。3ツールの概要を比較したうえで、それぞれの手順を説明します。
| Claude Code | Codex CLI | Gemini CLI | |
|---|---|---|---|
| 提供元 | Anthropic | OpenAI | |
| 登録方法 | claude mcp add | codex mcp add | 設定ファイル or gemini mcp add |
| 登録確認 | claude mcp list | codex mcp list | gemini mcp list |
| 利用条件 | Claude Pro以上 or API課金 | ChatGPT Plus以上を推奨 or API課金 | 無料枠あり(個人Googleアカウント) |
以下のコマンド例では、Toolboxのパスを /path/to/toolbox と表記しています。Windowsの場合は C:\tools\toolbox.exe のような実際の配置場所に読み替えてください。your-project-id はBigQueryのプロジェクトIDに置き換えます。
Claude Codeへの登録
claude mcp add bigquery --env BIGQUERY_PROJECT=your-project-id -- /path/to/toolbox --prebuilt bigquery --stdio
-- の前がClaude Code側のオプション、後ろがToolboxの起動コマンドという構造です。登録スコープは既定で現在のプロジェクトのみに適用されます。どのフォルダからでも使いたい場合は --scope user を付けてください。
登録できたかは一覧コマンドで確認します。
claude mcp list
チームで設定を共有したい場合は、プロジェクト直下の .mcp.json に次の内容を置く方法もあります。この形式はGoogle Cloudの公式ドキュメントでも案内されています。
{
"mcpServers": {
"bigquery": {
"command": "/path/to/toolbox",
"args": ["--prebuilt", "bigquery", "--stdio"],
"env": {
"BIGQUERY_PROJECT": "your-project-id"
}
}
}
}
Codex CLIへの登録
codex mcp add bigquery --env BIGQUERY_PROJECT=your-project-id -- /path/to/toolbox --prebuilt bigquery --stdio
設定は ~/.codex/config.toml に書き込まれます。設定ファイルを直接編集する方法もありますが、記法の誤りを避けるためコマンド経由での登録をおすすめします。確認は次のコマンドです。
codex mcp list
Gemini CLIへの登録
Gemini CLIは ~/.gemini/settings.json に次の設定を追記します。
{
"mcpServers": {
"bigquery": {
"command": "/path/to/toolbox",
"args": ["--prebuilt", "bigquery", "--stdio"],
"env": {
"BIGQUERY_PROJECT": "your-project-id"
}
}
}
}
登録状態と接続状況は一覧コマンドで確認できます。
gemini mcp list
Gemini CLIは個人のGoogleアカウントで1日1,000リクエストまでの無料枠があります。まず費用をかけずに試したい場合の選択肢として有力です。
日本語で広告データを分析する
登録が済んだら、エージェントを起動して日本語で質問するだけです。初回はエージェントがMCPツールの使用許可を求めてくるので、内容を確認して承認します。広告運用の実務でよく使う質問の例を挙げます。
| 分析の目的 | 質問の例 |
|---|---|
| 定例の集計 | 「先月の媒体別の費用・CV・CPAをまとめて」 |
| 異変の検知 | 「直近7日で費用が前週比20%以上増えたキャンペーンは?」 |
| 媒体横断の比較 | 「Google広告とMeta広告をキャンペーン単位でCPA順に並べて」 |
| 傾向の把握 | 「直近28日のCVを曜日×時間帯で集計して傾向を教えて」 |
| 深掘り | 「先週CPAが悪化した原因をデータから考察して」 |
うまく使うためのポイントは3つあります。第一に、期間・媒体・指標の定義を質問に含めることです。「最近の調子は?」より「直近28日のCPA推移は?」のほうが、意図どおりのSQLになります。
第二に、最初の数回は生成されたSQLに目を通すことです。特にコンバージョン列の選び方や重複排除の扱いは、テーブル設計によって正解が変わります。一度正しいクエリ方針を対話で確立すれば、以降はその文脈を引き継いで安定します。
第三に、返ってきた数値を管理画面と突き合わせて検証することです。AIが生成するSQLは誤ることがあり、それらしい集計結果でも定義がずれている場合があります。重要な報告に使う数値は、必ず別の手段で確認してください。この検証プロセスを一度通しておくと、日常の分析は安心して任せられるようになります。
SQLそのものを学びたい場合はBigQueryで広告データを分析するSQL実践が役立ちます。エージェントが書いたSQLを読み解く力は、結果の検証にも直結します。
安全に運用するための設定
エージェントにデータベースへの接続を渡す以上、誤操作と情報の扱いへの備えは必須です。導入時に次のチェックリストを確認してください。
| 項目 | 対応方法 |
|---|---|
| 書き込みを防ぐ(IAM) | 接続に使うアカウントへ書き込み系ロールを付与しない |
| 書き込みを防ぐ(Toolbox側) | tools.yaml の writeMode: "blocked" でSELECT以外を拒否 |
| 参照範囲を絞る | 分析用データセットのみに権限を付与する |
| クエリ費用の上限 | Toolboxの maximumBytesBilled で1クエリの課金上限を設定 |
| データの外部送信 | 社内・クライアントのAI利用ポリシーを事前に確認する |
最も確実なのはIAMでの制御です。閲覧と実行の権限だけを持つ状態であれば、エージェントがどんなSQLを生成しても、データの書き換えはBigQuery側で拒否されます。prebuilt設定の execute_sql は既定で更新系のSQLも実行できるため、この一手間を省かないでください。
Toolbox側でも、設定ファイル(tools.yaml)でカスタム構成にすれば writeMode: "blocked" という制御が用意されています。公式ドキュメントに記載のある機能ですが、導入時には削除系のSQLが実際に拒否されることをテスト用データセットで確認しておくと安心です。
費用面では、エージェントが試行錯誤の過程で複数のクエリを実行する点に注意が必要です。オンデマンド課金ではスキャンしたデータ量に応じて費用が発生します。日付パーティションのあるテーブルでは「期間を絞ってクエリする」ことを質問文やエージェントへの指示に含めると、スキャン量を抑えられます。
また、エージェントはクエリ結果をLLMに送信して解釈します。クライアントのデータを扱う場合は、この送信が契約やポリシー上問題ないかを必ず事前に確認してください。判断に迷う場合は、集計済みで個人情報を含まないビューだけを参照させる構成が安全です。
マネージド版「BigQuery MCPサーバー」という選択肢
ここまで紹介した自己ホスト型のToolboxとは別に、Googleはマネージド型の「BigQuery MCPサーバー」の提供を始めています。自分でToolboxを起動する代わりに、Googleがホストするエンドポイント(https://bigquery.googleapis.com/mcp)へ直接接続する方式です。
| MCP Toolbox(自己ホスト型) | BigQuery MCPサーバー(マネージド型) | |
|---|---|---|
| 導入 | 実行ファイルを配置して起動 | BigQuery APIの有効化のみ |
| 認証 | ADC | OAuth 2.0 + IAM |
| 読み取り専用の手段 | IAM / writeMode 設定 | execute_sql_readonly ツール |
| 制限 | 設定次第 | クエリ3分・結果3,000行の上限あり |
| 追加料金 | なし(BigQueryクエリ料金のみ) | なし(BigQueryクエリ料金のみ) |
マネージド型はセットアップの手間が小さく、読み取り専用のツールが最初から分かれている点が魅力です。一方で提供が始まって間もない機能のため、エージェント側の対応状況や接続手順は変化しています。採用する場合は公式ドキュメントで最新の状況を確認してください。
現時点では、3つのエージェントで同じ手順が使え、動作の情報も蓄積されている自己ホスト型から始めるのが手堅い選択だと考えています。マネージド型は運用が安定してからの移行先として押さえておけば十分です。
まとめ
AIエージェントとBigQueryのMCP接続について、セットアップから安全な運用までを整理しました。
| ステップ | 内容 |
|---|---|
| 前提 | 広告データのBigQuery集約、gcloud CLI、ADC認証 |
| 導入 | MCP Toolboxを配置し --prebuilt bigquery で起動 |
| 登録 | claude mcp add / codex mcp add / settings.json |
| 活用 | 期間・指標を明示した日本語の質問で分析 |
| 安全 | 読み取り専用の権限、費用上限、ポリシー確認 |
この構成の価値は、分析の入口が「SQLを書ける人」から「問いを立てられる人」に広がることです。一方で、結果の妥当性を判断する広告指標の理解は、これまで以上に重要になります。まずは読み取り専用の権限で接続し、管理画面との突き合わせで精度を確かめるところから始めてみてください。