Claude Media
BigQuery Claude自然言語分析 — 問い合わせからレポート作成までの手順

BigQuery Claude自然言語分析 — 問い合わせからレポート作成までの手順

GoogleのBigQuery MCPサーバーをClaudeに接続し、SQLを書かずに自然言語でデータを問い合わせてレポートを作る手順を解説します。

BigQueryのデータをClaudeが直接読みに行く仕組み

BigQuery MCPサーバーは、GoogleがBigQuery API側で提供するリモートMCPサーバーです。エンドポイントはhttps://bigquery.googleapis.com/mcpで、BigQuery APIを有効にした時点で自動的に使えるようになります。Claude、Gemini CLI、ChatGPTなど複数のAIアプリから同じエンドポイントに接続できます。

接続すると、Claudeはデータセット一覧の取得やSQL実行、スキーマ確認をツール呼び出しとして行います。自分でSQLを書く必要はありません。「先月の注文データから上位顧客を教えて」のように話しかけるだけで、Claudeがテーブルを探し、クエリを組み立て、結果を要約します。

この記事では、接続に必要なIAM権限の設定から、実際の問い合わせ例、そして安全に運用するための制限事項までをまとめます。前提はGoogle Cloudプロジェクトを1つ持っていることだけです。課金を有効にしなくてもBigQueryサンドボックスの範囲で試せます。

事前準備 — IAMロールを3つ割り当てる

BigQuery MCPサーバーを使うには、対象のGoogle Cloudプロジェクトで次の3つのIAMロールが必要です。管理者に付与を依頼するか、自分がオーナー権限を持つプロジェクトで設定します。

ロール役割できること
MCP Tool User(roles/mcp.toolUser)役割MCPツール呼び出しの許可できることClaudeからのツール呼び出しを受け付ける
BigQuery Job User(roles/bigquery.jobUser)役割クエリジョブの実行できることexecute_sql系ツールでSQLを走らせる
BigQuery Data Viewer(roles/bigquery.dataViewer)役割データの読み取りできることテーブルの中身を参照する

新規プロジェクトではBigQuery APIが自動で有効になっています。既存プロジェクトを使う場合は、Google CloudコンソールでBigQuery APIが有効か先に確認してください。

3つのロールが実際に含む権限はmcp.tools.call(MCPツール呼び出し)・bigquery.jobs.create(クエリジョブの作成)・bigquery.tables.getData(テーブルデータの参照)です。組織の権限管理でカスタムロールを使っている場合は、この3つの権限が含まれているかを確認すれば足ります。

ステップ1: OAuthクライアントを発行してClaudeに接続する

BigQuery MCPサーバーはOAuth 2.0で認証します。Claude.ai・Claude Desktop・Claude Codeのいずれも、Googleの公式手順では自分でOAuthクライアントIDとシークレットを発行してから接続する方式が案内されています。動的クライアント登録に対応していないため、この一手間が必要です。

OAuthクライアントの発行手順
  1. Google Cloudコンソールの「Google Auth Platform」→「クライアント」→「クライアントを作成」を開く
  2. アプリケーションの種類で「ウェブアプリケーション」を選ぶ
  3. 「承認済みのリダイレクトURI」にhttps://claude.ai/api/mcp/auth_callbackを追加する(Claude.ai・Claude Code・Claude Desktopで共通)
  4. 作成後に表示されるクライアントシークレットを保存する(再表示はできないため紛失時は再発行が必要)

クライアントを発行したら、利用するClaudeの形態ごとにカスタムコネクタを登録します。コネクタの種類や追加方法の全体像はClaude Connectorsとはで整理しています。

Claude.ai / Claude Desktopの場合: 設定の「Connectors」からカスタムコネクタを追加し、サーバーURLにhttps://bigquery.googleapis.com/mcp、詳細設定でクライアントIDとシークレットを入力します。

Claude Codeの場合: CLIから直接サーバーを登録できます。

claude mcp add --transport http bigquery https://bigquery.googleapis.com/mcp

登録後、セッション内で/mcpを実行するとブラウザでOAuth認証が始まります。発行したクライアントIDとシークレットの入力を求められた場合はそこで使います。認証が終わるとclaude mcp list✔ Connectedと表示されます。

ステップ2: 自然言語でデータを問い合わせる

接続できたら、Claudeに話しかけるだけでBigQueryのデータへアクセスできます。プロジェクトIDやデータセット名を伝えると、Claudeがテーブル構造を確認してからクエリを組み立てます。

myprojectのデータセット一覧を見せて
sales_dataデータセットのordersテーブルから、直近30日で購入額が多い上位10社を教えて
region列を使ってMCP経由で実行したクエリだけを絞り込んで、goog-mcp-server:trueのタグが付いたジョブを一覧にして

最後の例のように、MCP経由の実行かどうかをgoog-mcp-server:trueというタグで区別できます。監査ログを追うときに使える切り口です。SQLそのものをClaude Codeに書かせるときの注意点はClaude Code SQLと正規表現を安全に書かせる勘所にまとめています。

ステップ3: 予測やレポート作成まで任せる

BigQuery MCPサーバーのexecute_sqlは読み取りに留まらず、BigQueryの予測機能も呼び出せます。時系列データを渡して将来予測をさせたり、会話の続きで指示を出しながらレポートの体裁に整えたりする使い方が中心の想定用途です。

sales.dataset.revenueテーブルで、revenue列を対象にdate列を時間軸として将来の売上を予測して。上位10件の予測値を見せて

会話を続けて「表にまとめて」「先週との差分だけ抜き出して」と依頼すれば、SQLを書き直す代わりに自然言語で修正を重ねられます。Claudeがクエリを再構成して結果を返す流れです。

Googleが公式に挙げている想定用途は、レポート作成だけではありません。BigQueryのデータから得た知見をトリガーにIssueを作成したりメールを起票したりするワークフローの構築、そして専用のエージェント指示文を使った対話型データ分析の構築です。分析結果を人間が読むレポートで終わらせず、後続の業務アクションに直接つなげる設計も想定されています。

ツールが増えすぎたときはToolsetsで絞る

MCPサーバーを複数接続すると、AIエージェントが扱うツールの数が膨らみ、呼び出し精度が落ちることがあります。BigQuery MCPサーバーには、利用可能なツールの一部だけを取り出す「Toolsets」という仕組みがあり、独自のエンドポイントを持つ部分集合として登録できます。分析用途だけに絞ったToolsetを作れば、書き込み系ツールをそもそも見せない構成も可能です。

execute_sqlとexecute_sql_readonlyの使い分け

BigQuery MCPサーバーが提供するツールのうち、書き込みが絡むのはexecute_sqlだけです。分析用途で使うなら、まずexecute_sql_readonlyから始めるのが安全です。

ツールできること向く場面
execute_sql_readonlyできることSELECT文のみ実行。DML・DDLは不可向く場面日常の分析・レポート作成。誤操作のリスクを避けたいとき
execute_sqlできることSELECTに加えDML・DDL・Python UDFも実行可向く場面テーブル作成やデータ加工まで任せたいとき

execute_sqlへの権限を絞りたい場合、Google Cloud側でMCPツールの拒否ポリシーを設定する方法に加え、Claude Code側でもsettings.jsonpermissions.denymcp__bigquery__execute_sqlを指定すれば、そのツール呼び出し自体をブロックできます。分析だけが目的のチームでは、この二重の制限が現実的な落としどころです。データベース系MCPサーバーを読み取り専用から始める設計はMCPからデータベースに接続する方法でも扱っています。

よくあるつまずき

クエリが3分でキャンセルされる: execute_sql系ツールは処理時間を3分に制限しており、超過すると自動でキャンセルされます。集計範囲を絞るか、重いバッチ処理はBigQueryコンソールやbq CLIに切り替えます。

結果が3,000行で切れる: MCP経由のクエリ結果は最大3,000行までです。全件が必要な作業には向きません。集計・上位N件の抽出のような分析用途を前提に設計されたツールだと考えてください。

Google Driveの外部テーブルが読めない: execute_sqlexecute_sql_readonlyはGoogle Drive外部テーブルへのクエリに対応していません。Cloud Storageベースの外部テーブルは対象内です。

IAMロールが1つ欠けて動かない: 「MCP Tool User」だけを付与して「BigQuery Job User」を忘れるケースが目立ちます。3つのロールはどれか1つ欠けても該当機能が動きません。エラーが出たら3ロールを表と照らして確認します。

よくある質問

BigQueryの無料枠だけでも試せますか

BigQueryサンドボックスの範囲であれば、課金を有効にせずに一連の手順を試せます。データ量やクエリ頻度が増えたら課金の有効化を検討してください。

Claude Codeとclaude.aiでできることに差はありますか

接続方式(OAuthとリダイレクトURI)は共通です。ただしclaude.aiやClaude Desktopは会話UIでの利用が中心なのに対し、Claude Codeはリポジトリ内のスクリプトやCIから同じMCPサーバーを呼び出す運用にも向いています。

ツールを絞り込んで安全に使う設定は難しいですか

Toolsetsの登録自体はGoogle Cloud側での設定作業です。分析専用のチームには、execute_sql_readonlyなど読み取り系だけを含むToolsetを渡し、書き込みが必要なメンバーには別のToolsetを渡す、という運用がしやすくなります。

SnowflakeやPostgreSQLのMCPサーバーと同時に使えますか

はい。MCPサーバーはそれぞれ独立した接続として登録するため、複数のデータベース系MCPサーバーを同時に有効化できます。ツールが増えすぎると呼び出し精度が落ちることがあるため、普段使わない接続は無効化しておくと安定します。

まとめ

BigQuery MCPサーバーは、IAMロール3つとOAuthクライアントの発行さえ済ませれば、Claude.ai・Claude Desktop・Claude Codeのどれからでも同じエンドポイントで使えます。分析用途ではexecute_sql_readonlyを基本にし、3分・3,000行という実行制限を前提にクエリの粒度を設計するのが現実的な運用です。予測機能まで自然言語で呼び出せる点は、SQLを都度書く従来の分析フローとの一番の違いです。

この記事を共有:XはてブLinkedIn