Claude Media
Claude CodeにBigQueryプラグインを入れて接続・分析する

Claude CodeにBigQueryプラグインを入れて接続・分析する

bigquery-data-analyticsプラグインの導入、9つのツール、AI関数を扱う同梱スキルを説明します。課金と読み取り専用を絞る環境変数も扱います。

Claude CodeでBigQueryのデータを自然言語で扱うなら、Google LLCが公開している bigquery-data-analytics プラグインを入れます。導入コマンドは1行です。入れたあとに決めることは、課金の歯止め、書き込みの禁止、予測をどの経路で走らせるかの3つです。

このプラグインは、MCP Toolboxの bigquery プリビルドサーバーをClaude Code用に包み、AI関数のためのスキルを1つ同梱したものです。リポジトリのREADMEには、現在ベータ版(v1.0より前)で、初の安定版までに破壊的変更が入る可能性があると書かれています。claude.comのマーケットプレイスには、導入数も表示されています。

MCPサーバーを自分で登録して接続する手順は、Claude BigQuery連携の手順とBigQueryをClaudeで自然言語のまま分析する方法にあります。ここでは、プラグインで入れた場合に何が付いてくるかを扱います。

動かすために先に揃えるもの

要件はREADMEの前提節にあります。Claude Codeのバージョンから順に確かめます。

前提

導入前に揃える要件

  • Claude Code v2.1.94 以降

    READMEが示す下限です。claude --version で確かめます。

  • Node.js

    MCPサーバーは npx で起動します。npx がPATHになければ起動できません。

  • BigQuery APIを有効にしたGoogle Cloudプロジェクト

    クエリを投げる先のプロジェクトです。

  • Application Default Credentials

    実行する環境にADCが必要です。

  • BigQuery ユーザー (roles/bigquery.user)

    READMEの基本の必須ロールです。AI関数を使う場合は追加のロールが要ります。

手元の端末なら、ADCの用意は次のコマンドで済みます。

claude --version
node --version
gcloud auth application-default login

AI関数(後述のスキル)まで使う場合の追加条件は3つです。Vertex AI APIを有効にすること、roles/bigquery.connectionUser と roles/aiplatform.user を付けること、そしてBigQuery側にCloud Resource Connectionを作っておくことです。最後の1つはREADMEではなく、同梱の BIGQUERY.md に書かれています。

接続情報は2つだけ

接続設定は BIGQUERY_PROJECT(プロジェクトID)と BIGQUERY_LOCATION(データセットのロケーション)の2つです。ロケーションは省略できます。接続情報が2項目だけなので、入口は軽い部類です。

READMEは、インストール前に端末の環境変数を設定する手順を示しています。

export BIGQUERY_PROJECT="my-gcp-project"
export BIGQUERY_LOCATION="asia-northeast1"

一方でClaude Code向けのマニフェスト(.claude-plugin/plugin.json)は、MCPサーバーの env を ${user_config.bigquery_project} のように、プラグインの設定項目(userConfig)から取る書き方です。設定項目は2つとも sensitive: false で、パスワードのような秘密情報を入れる項目はありません。ADCが認証を担うため、設定画面に秘密を入れる場面がない構成です。

どちらの値が優先されるかは、READMEにもマニフェストにも書かれていません。つながらないときは、片方だけを疑わず、設定画面と環境変数の両方にプロジェクトIDが入っているかを見るのが早道です。

プラグインを入れて有効にする

導入はClaude Codeのセッション内で行います。

手順

導入から有効化まで

  1. 1

    環境変数を設定した端末で claude を起動する

    上の export を済ませた同じシェルで claude を実行します。

  2. 2

    プラグインを入れる

    /plugin install bigquery-data-analytics@claude-plugins-official を実行します。

  3. 3

    有効になったかを確かめる

    /plugin list で一覧に出ているかを見ます。導入直後で反映されていなければ /reload-plugins を実行します。

シェルから入れるなら、セッションを開かずに済みます。セットアップスクリプトに組み込むときの形です。

claude plugin install bigquery-data-analytics@claude-plugins-official

マニフェストによると、プラグインが起動するMCPサーバーは npx -y @toolbox-sdk/server@1.10.0 --prebuilt bigquery --stdio の1つです。Toolboxのバージョンはマニフェストで固定されています。

導入後の棚卸しと負荷の測り方は、プラグインのコンテキスト消費を測る方法と導入済みプラグインの棚卸しが参考になります。

9つのツールは2つのグループに分かれる

MCP Toolboxのプリビルド設定には、9つのツールが定義されています。グループは data と analytics の2つで、search_catalog だけが両方に入っています。

グループ含まれるツール設定ファイル上の説明
data含まれるツールexecute_sql / list_dataset_ids / list_table_ids / get_dataset_info / get_table_info / search_catalog設定ファイル上の説明大規模なデータ探索とデータセット管理。メタデータの探索とSQL実行
analytics含まれるツールanalyze_contribution / ask_data_insights / forecast / search_catalog設定ファイル上の説明高度な分析と予測。「なぜ」変わったかの調査と時系列予測

役割は、ツールごとの説明文が短く示しています。analyze_contribution は多次元データで主要指標の変化への寄与を分析し、ask_data_insights は指定したテーブルの内容について分析や複雑な質問に答え、forecast は時系列データを予測します。

READMEの使用例は、データを探す依頼と、分析する依頼の2系統です。

  • 「PyPIのダウンロードに関するテーブルを探して」
  • 「bigquery-public-data.pypi.file_downloads で今月のダウンロード上位10パッケージを出して」
  • 「同じテーブルで、urllib3 の2025年後半4か月のダウンロードを予測して」

最初の1回は、公開データセットで通し確認をするのが安全です。自分の課金プロジェクトから bigquery-public-data を引くことになるので、スキャン量は小さめのテーブルで確かめます。

同梱スキルは予測と異常検知をSQLで回す

プラグインに入っているスキルは、skills/bigquery-ai-ml の1つだけです。READMEの「Generating Skills Instead」節には、以前はツール由来のスキルが同梱されていたとあり、手で書かれたスキルはこの1つが残っています。

このスキルの指示は、はっきりしています。予測や異常検知のような機能では、専用ツールより execute_sql() で標準SQLのAI関数を呼ぶ方を優先する、というものです。つまり forecast ツールがあるのに、スキルが読み込まれた文脈ではSQLの AI.FORECAST が先に選ばれる設計です。

スキルが案内するAI関数は11個あります。

関数用途
AI.FORECAST用途学習済みTimesFMモデルによる時系列予測
AI.DETECT_ANOMALIES用途TimesFMによる時系列の逸脱の検出
AI.CLASSIFY用途非構造データを定義済みラベルに分類
AI.GENERATE / _BOOL / _DOUBLE / _INT用途文章生成と、真偽値・小数・整数の生成
AI.IF用途自然言語の条件を真偽で評価
AI.SCORE用途意味的な関連度で並べ替え(ORDER BYと併用)
AI.SIMILARITY用途2つの入力のコサイン類似度
AI.SEARCH用途埋め込みを自動生成する意味検索

スキル本体に関数の構文は書かれていません。関数ごとに references/ 配下の参照ファイルがあり、SQLを作る前に必ず読むよう、スキルが指示しています。ファイル名を推測せず、表にある正確なパスだけを使うことも念押しされています。

予測を頼む場合、Claudeが読むはずの参照ファイルには、次の形の構文が載っています。

SELECT *
FROM AI.FORECAST(
  TABLE `project.dataset.table`,
  data_col => 'DATA_COL',
  timestamp_col => 'TIMESTAMP_COL',
  horizon => 30
)

これは参照ファイルの構文を縮めた例です。horizon や id_cols、confidence_level などは任意の引数です。実際に走るSQLは、依頼文とテーブルの列から変わります。

落とし穴

AI関数の権限は関数ごとの内訳が書かれていない

READMEは「BigQuery AI/MLスキルを使うなら」と前置きして、Vertex AI APIとBigQuery接続ロールをまとめて条件にしています。どの関数にどの権限が要るかの内訳は、READMEにもスキルにも記載がありません。権限エラーが出たら、まず roles/bigquery.connectionUser と roles/aiplatform.user が付いているかを確かめます。同梱の BIGQUERY.md は、この2つのロールの付与先をBigQuery接続に紐づくサービスアカウントとしています。READMEは付与先を書いていないので、ユーザー側とサービスアカウント側の両方を見ます。

課金と書き込みを絞る環境変数

プラグインのマニフェストが渡す環境変数は2つだけですが、Toolboxのプリビルド設定は、もっと多くの変数を読みます。誤操作や課金を抑えるときに見る項目を挙げます。

環境変数設定ファイル上の既定値見る点
BIGQUERY_READONLY設定ファイル上の既定値空見る点読み取り専用にする用途の設定
BIGQUERY_WRITE_MODE設定ファイル上の既定値空見る点書き込みの扱いを切り替える設定
BIGQUERY_MAX_QUERY_RESULT_ROWS設定ファイル上の既定値50見る点返す行数の上限
BIGQUERY_MAXIMUM_BYTES_BILLED設定ファイル上の既定値0見る点課金バイト数の上限
BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT設定ファイル上の既定値空見る点サービスアカウントへのなりすまし

設定ファイルには項目名と既定値があるだけで、各値の意味や、プラグイン経由の端末の環境変数がサーバーまで渡るかは説明されていません。使う前に、検証用のプロジェクトで値を入れ、結果が変わるかを確かめてください。たとえば BIGQUERY_READONLY を設定した端末で INSERT を頼み、拒否されるかを見る、という確認です。

環境変数に頼らない歯止めもあります。1つ目はIAMで、読み取りだけなら roles/bigquery.user に絞り、データの作成・更新に必要な roles/bigquery.dataEditor を渡さない構成です。この2つのロールは、同梱の BIGQUERY.md が権限エラー時の案内として挙げています。ただし BIGQUERY.md はGemini CLI向けの文脈ファイルで、Claude Code用のマニフェスト(plugin.json)からは参照されていません。ロールの目安として使えます。

2つ目はClaude Code側の権限です。プラグインが提供するサーバーのツール名は mcp__plugin_<プラグイン名>_<サーバー名>__* の形で書きます。この場合はプラグイン名が bigquery-data-analytics、サーバー名が bigquery です。

{
  "permissions": {
    "ask": ["mcp__plugin_bigquery-data-analytics_bigquery__*"]
  }
}

これは記法に当てはめた例です。execute_sql は任意のSQLを走らせるので、毎回確認つきにする価値が大きいツールです。個別のツール名で許可と拒否を分けるなら、/permissions で実際のツール名を確かめてから足します。

CLAUDE.mdに書く規約の例

接続できたら、BigQueryを触るときのルールを CLAUDE.md に置いておくと、依頼のたびに言わずに済みます。

## BigQuery の操作ルール
- 対象は analytics_prod プロジェクトの reporting データセットのみ
- クエリの実行前に、パーティション列で絞り込んだ SQL を提示する
- SELECT 以外の SQL は実行せず、文の提案にとどめる
- 予測や異常検知は AI.FORECAST / AI.DETECT_ANOMALIES を使う

規約はClaudeへの依頼文であり、強制力はありません。強制したい部分は、前の節の permissions とIAMのロールで受け持ちます。ログ分析の具体例は、GA4とBigQueryで作る週次レポートで通しの流れを見られます。

つながらないときの確かめ順

READMEのトラブルシューティング節は、Gemini CLIの表示を前提に書かれています。デバッグの案内は gemini --debug で、バイナリの ENOENT もGeminiの拡張機能フォルダを指すパスです。Claude Codeでは該当しない項目があります。

流用できるのは、認証の文言と接続切断の文言です。

切り分け

つながらないときの確かめ順

  1. Q/mcp にこのプラグインのサーバーが出ていますか?
    答えが出ていない

    /plugin list で有効かを見ます。無効なら有効にして /reload-plugins を実行します。

    答えがはい
  2. Q`spawn npx ENOENT` のようなエラーが出ていませんか?
    答えが出ていない

    Node.jsがないか、npx がPATHにありません。Node.jsを入れます。

    答えがはい
  3. Q`could not find default credentials` が出ていませんか?
    答えが出ていない

    ADCが見つかっていません。gcloud auth application-default login を済ませ、Claude Codeを起動し直します。

    答えがはい

`Connection closed` が出る場合

READMEは、設定が環境変数で渡っていない状態として説明しています。プロジェクトIDが、設定画面と端末の環境変数の両方に入っているかを見直します。

兄弟プラグインとの違い

Google Cloudのデータ系では、同じ作りのプラグインが複数あります。接続先ごとに設定項目が変わる点が、いちばんの違いです。

AlloyDBプラグインは接続情報が8項目で、管理系のツールセットまで持ちます。Cloud SQL for PostgreSQLプラグインは接続情報が7項目で、うち必須は4つです。BigQueryはプロジェクトIDだけで済み、そのぶんデータセットやテーブルの指定は、依頼の文面かSQLの側で行います。

まとめ

導入は /plugin install bigquery-data-analytics@claude-plugins-official の1行で終わり、設定はプロジェクトIDだけです。

差が出るのは導入後です。execute_sql は毎回確認つきにし、読み取り専用ならIAMのロールも絞ります。予測と異常検知はスキルが案内するSQLの関数経由になるため、AI関数まで使うなら、Cloud Resource ConnectionとVertex AIの権限を先に整えておきます。ベータ版なので、まずは検証用のプロジェクトで使い始めるのが無理のない順序です。

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