2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Google Cloud の Data Agent Kit を Claude Code から使ってみた

2
Posted at

1. はじめに

Google Cloud の Data Agent Kit の公式ブログ1に、次の一文があります。

Data Agent Kit is available today in preview.

対応環境として VS Code や Google 自身の CLI と並んで Claude Code が挙がっています。BigQuery などのデータ作業をエージェントから行うためのキットが、Google 製品でない Claude Code に「対応した」と言うときの実体を確かめるため、普段使っている Claude Code に実際に導入し、キットなしの素の状態と比べて何が変わるかを検証しました。

なお Data Agent Kit の初出は 2026 年 4 月の Agentic Data Cloud 発表群2で、執筆時点でも Preview です。私が知ったきっかけは Google Cloud Next Tokyo '26 の基調講演でしたが、Next Tokyo で発表された新機能ではありません。

1.1. 結論(先出し)

  • Claude Code 対応の実体は skills のみ。MCP サーバーは登録されず、/mcp には何も表示されない。10本の Node.js スクリプトが MCP Toolbox を 1回ずつ起動して BigQuery を呼ぶ構造である
  • Windows の Claude Code と WSL 側の gcloud という構成でも、環境変数 GOOGLE_APPLICATION_CREDENTIALS に WSL 側の認証情報(ADC)ファイルのパスを設定するだけで認証に成功した
  • データの場所を指定しない聞き方では、キットを入れてもスキルは使われなかった。キットあり・なしのどちらも BigQuery を使わず、元データ(米国社会保障局の公開ファイル)を取得して答えた
  • 「BigQuery の一般公開データセットを使って」と指定すると差が出た。キットありは事前に固定した期待値と全 10行一致する回答を返し、キットなしは実質同一の SQL を書けたのに実行手段がなく答えを出せなかった。差を分けたのは SQL の知識ではなく、クエリを実行する手段と Google Cloud への認証である

1.2. 検証ゴール

# 検証項目 確認できれば OK の条件
1 Claude Code(Windows)から Data Agent Kit のツールが使える状態になるか。gcloud / ADC が WSL 側にある構成でも認証できるか スキルのスクリプトが Windows 側で実行でき、BigQuery から結果が返る
2 自然言語の依頼だけで、公開データセットの探索からクエリ実行、結果取得までを完了できるか 依頼文にテーブル名や SQL を書かずに、事前に固定した期待値と一致する集計値が返る
3 対照(キットなし)と比べて、ツール選択・手数・出力に差が出るか 同一の依頼文を両条件で実行し、完了の可否・ツール呼び出し・生成 SQL を並べて差分を示せる

2. 検証環境

項目 内容
マシン Windows 11 Pro(gcloud CLI と ADC は WSL Ubuntu 側、bq 2.1.32)
Claude Code 2.1.208
実験セッションの実行モデル claude-opus-5(--output-format jsonmodelUsage で実測。キットあり・なしとも同一)
Node.js(Windows 側) v24.12.0
Data Agent Kit マーケットプレイス v0.1.7 / bigquery プラグイン v0.2.1
MCP Toolbox 1.1.0(プラグインが固定。npm の最新は執筆時点で 1.10.0)
対象データ BigQuery 一般公開データセット bigquery-public-data.usa_names.usa_1910_current

比較実験では、メインで使っている Claude Code の個人設定(自作スキル・他プラグイン・MCP サーバー)が混ざると「キットの効果」を測れなくなるため、ヘッドレスモード(claude -p)を次のフラグで起動して条件をそろえました。

claude -p "<依頼文>" \
  --setting-sources project --strict-mcp-config \
  --max-turns 30 \
  --allowedTools "Bash,Skill,Read,Glob,Grep" \
  --disallowedTools "WebSearch,WebFetch" \
  --output-format json
  • --setting-sources project でユーザー設定(個人スキル・他プラグイン)を読み込まない設定にし、--strict-mcp-config で MCP サーバーをすべて使わない構成にする。キットありの条件だけ、これに --plugin-dir <bigquery プラグインのパス> を足す。両条件の差分はこの 1 フラグだけで、認証とプロジェクト指定の環境変数(5 章)も両条件で同一である
  • Web 検索・取得ツールは両条件とも無効にし、データアクセス手段の比較に絞る
  • 実験のたびに空の作業フォルダを新しく用意し、そこで新規セッションを起動して、最初のメッセージとして依頼文だけを送る(プロジェクト用の CLAUDE.md や過去の作業ファイルを読み込ませないため)

なおこの方法でもユーザーの CLAUDE.md(好みの指示ファイル)は読み込まれる形跡がありました。両条件で同一なので比較には影響しませんが、個人設定を完全には切り離せていない点は付記しておきます。

3. Data Agent Kit とは何か

Data Agent Kit は、BigQuery などのデータ基盤を AI エージェントから扱うためのスキル・ツール群です。公式ブログ1では VS Code / Claude Code / Codex / Gemini CLI / Antigravity CLI が対応環境として挙がっています(Gemini CLI はその後 2026 年 6 月に個人向け提供を終了し、Antigravity CLI へ統合されています3)。

Claude Code 向けの配布は GitHub のプラグインマーケットプレイス GoogleCloudPlatform/data-agent-kit4 で、bigquery のほか alloydb / spanner / bigtable / cloud-sql 系 / looker / dataproc など 16 プラグインが並び、Oracle 系の oracledb も含まれています。今回はこのうち bigquery プラグイン(v0.2.1)だけを導入します。

各プラグインの実体は gemini-cli-extensions オーガニゼーションのリポジトリです。つまり元は Gemini CLI(現在は Antigravity CLI に統合)向けの拡張で、Claude Code へは同じ中身をプラグイン形式で配布している、という関係になります。

4. 導入手順とハマりどころ

4.1. マーケットプレイス追加は 2回失敗する(Windows の場合)

まず owner/repo の短縮形で追加すると、SSH でのクローンを試みます。GitHub の SSH 鍵を設定していない環境ではここで失敗しました。

claude plugin marketplace add GoogleCloudPlatform/data-agent-kit
# git@github.com: Permission denied (publickey).

エラーの提案に従って HTTPS の URL を明示すると、今度は別の理由で失敗します。

claude plugin marketplace add https://github.com/GoogleCloudPlatform/data-agent-kit
# error: unable to create file cassandra-bigtable-migration-tools/... : Filename too long

このマーケットプレイスは 16 プラグインを git submodule で束ねており、その 1つ(Bigtable 系)に Java の深いディレクトリが含まれます。Windows のパス長制限(260文字)に当たって checkout が失敗していました。ここで表示されるエラー分類は「HTTPS authentication failed. Please ensure your credential helper is configured」で、認証の問題に見えます。実際の原因はエラー本文の Filename too long のほうでした。

Git for Windows でよく知られた次の設定で解決します。

git config --global core.longpaths true

これでマーケットプレイス追加は成功します。ところが続くプラグイン導入も SSH クローンで失敗しました。マーケットプレイス定義の中でプラグインの取得元が owner/repo 形式で書かれており、今度はこちらの URL を HTTPS に書き換える手段がありません。git の URL 書き換え設定で対処しました。

git config --global url."https://github.com/".insteadOf "git@github.com:"
claude plugin install bigquery@data-agent-kit
# Successfully installed plugin: bigquery@data-agent-kit (scope: user)

この設定は GitHub への SSH アクセスを一律 HTTPS に変えるため、SSH 運用のリポジトリがある方は影響を確認してから設定してください(私の環境はリモートがすべて HTTPS で SSH 鍵も未設定のため、影響なしと判断しました)。

4.2. プロジェクト ID の設定

プラグインは設定値を 2つ持ちます(実質必須の bigquery_project と任意の bigquery_location)。対話セッションなら /plugin configure、CLI からは install コマンドの --config で渡せます。

claude plugin install bigquery@data-agent-kit --config bigquery_project=<PROJECT_ID>

設定はユーザーの settings.json に保存され、実行時に CLAUDE_PLUGIN_OPTION_ 接頭辞の環境変数としてスキルのスクリプトへ渡ります。なお claude plugin configure というサブコマンドは存在しませんでした(インストール時のメッセージには出てくるのですが、unknown command になります)。また 6 章の比較実験ではユーザー設定を読み込まない起動にするため、この値は環境変数 BIGQUERY_PROJECT で直接渡しています(5 章)。

4.3. 実体は skills のみ。MCP サーバーは登録されない

インストールされた実体を確認すると、プラグイン定義(plugin.json)にあるのは skills(スキル)と設定値の宣言だけで、MCP サーバーの定義がありません(MCP = Model Context Protocol。エージェントに外部ツールをつなぐ規格です)。/mcp を開いても何も増えていません。

中身はスキル 3種と、スキルから呼ぶ Node.js スクリプト計 10本です(search_catalog は 2つのスキルに同梱されており、10本は重複を含む数です)。

スキル スクリプト(= 実行できる操作)
bigquery-data execute_sql / get_dataset_info / get_table_info / list_dataset_ids / list_table_ids / search_catalog
bigquery-analytics analyze_contribution / ask_data_insights / forecast / search_catalog
bigquery-ai-ml (スクリプトなし。AI.GENERATE など SQL の AI 関数 11種の解説文書のみ)

スクリプトの中を見ると、次のように MCP Toolbox5 を毎回起動しています。

const npxArgs = ["--yes", "@toolbox-sdk/server@1.1.0", "--log-level", "error",
  "--prebuilt", "bigquery", "invoke", toolName, ...];
const child = spawn(command, npxArgs, { ... });

MCP Toolbox はデータベース向け MCP サーバーの OSS 実装ですが、ここでは常駐サーバーとしてではなく、invoke サブコマンドで ツール 1回分だけ実行して終了する使い方をしています。エージェントが「execute_sql を使おう」と判断するたびに、npx が Toolbox を起動してクエリを 1本実行し、結果を返して終わる。MCP プロトコルでの接続は存在しません。

バージョンにも注意が必要です。スクリプトは Toolbox を 1.1.0 に固定しており、npm の最新(執筆時点 1.10.0)とは別物です。手元で Toolbox を最新版に更新しても、プラグイン経由の実行には反映されません。

5. 認証: WSL 側の ADC を環境変数 1つで使う

私の環境は gcloud CLI と ADC(Application Default Credentials。アプリケーションが使う Google Cloud の認証情報)が WSL Ubuntu 側にあり、Claude Code は Windows 側で動きます。4 章のとおりスクリプトは npx で Windows 側に Toolbox を起動するため、Windows のプロセスから WSL 内の認証ファイルが見えるかが問題になります。

事前には Windows 版 gcloud の導入や WSL 内での Claude Code 起動も代替経路として用意していましたが、結論は環境変数 1つでした。WSL のファイルは Windows から UNC パスで見えるので、それを ADC の場所として設定するだけです。

# WSL 側 ADC ファイルの Windows から見えるパスを確認
wsl -- bash -lc "wslpath -w ~/.config/gcloud/application_default_credentials.json"
# → \\wsl.localhost\Ubuntu\home\<ユーザー名>\.config\gcloud\application_default_credentials.json

$env:GOOGLE_APPLICATION_CREDENTIALS = '\\wsl.localhost\Ubuntu\home\<ユーザー名>\.config\gcloud\application_default_credentials.json'
$env:BIGQUERY_PROJECT = '<PROJECT_ID>'

この状態でスキルのスクリプトを直接実行して確認します。

node "<プラグインのパス>\skills\bigquery-data\scripts\execute_sql.js" '{"sql": "SELECT 1 AS ok"}'
# [ { "ok": 1 } ]

Windows 側の Toolbox が UNC パス経由で WSL 内の ADC を読み、BigQuery でのクエリ実行に成功しました。ADC 自体は事前に WSL 側で gcloud auth application-default login を済ませてあります。

6. 実験: 同じ依頼文をキットあり・なしで試す

6.1. 実験の設計

「キットで何が変わるか」を測るため、次の設計にしました。

  • 依頼文と期待値を実行前に固定する。期待値は bq CLI で自分で先に取得し、AI の回答がそれと一致するかで判定する
  • 対象は一般公開データセットの usa_names.usa_1910_current(米国の赤ちゃんの名前統計)。静的で期待値が変わらず、集計の解釈が分かれにくいテーブルとして選んだ
  • 依頼文は 2通り用意する。聞き方①はデータの場所を指定しない文、聞き方②は文頭に「BigQuery の一般公開データセットを使って、」だけを足した文。それぞれをキットあり・なしの 2 条件で実行する(計 4 実行、各 1回)
  • 判定は「回答に含まれる名前・順位・件数が期待値と一致するか」と「どのツールが呼ばれたか」。後者はセッションの transcript(ツール呼び出しの生ログ)で裏取りする

聞き方①の依頼文はこれです。テーブル名・SQL・製品名は入れていません。

アメリカで 2020 年から 2021 年に生まれた赤ちゃんの名前について、一般公開されているデータを使って、男女別に最も多かった名前の上位 5 件を件数つきで調べてください。

期待値はこの SQL で先に固定しました(男女それぞれ上位 5件、計 10行)。

SELECT gender, name, SUM(number) AS total
FROM `bigquery-public-data.usa_names.usa_1910_current`
WHERE year BETWEEN 2020 AND 2021
GROUP BY gender, name
QUALIFY ROW_NUMBER() OVER (PARTITION BY gender ORDER BY total DESC) <= 5
ORDER BY gender, total DESC

設計段階でつまずいた点が 1つあります。当初は「2020 年から 2023 年」で依頼文を作ったのですが、期待値取得の事前確認で、このテーブルの実データが 2021 年で止まっていると分かりました(bq show の最終更新日時は 2025 年 5 月で、メタデータの更新日時は、データがいつまで入っているかを保証しません)。データに無い年を聞くと、エージェントが別のデータソースを選ぶきっかけになります。比較の条件がそろわなくなるため、実験開始前に「2020 年から 2021 年」へ修正しました。

6.2. 聞き方①(データの場所を指定しない): キットは使われない

まずキットありの条件です。結果は、BigQuery は使われませんでした。transcript のツール呼び出し列を見ると、エージェントは 2回目のツール呼び出しで BigQuery 系のツールを検索したものの(キットはツールとして登録されるわけではないので見つからず)、方針を切り替えて米国社会保障局(SSA)が配布している元データの zip を curl でダウンロードし、Python で集計して答えました。

キットなしの条件もほぼ同じ動きです。こちらは ssa.gov への直接アクセスが 403 で拒否され、Internet Archive のスナップショット経由で同じファイルを取得していました。回答の値は両条件で同一です。

キットあり キットなし
BigQuery の使用 なし なし
データの取得元 SSA 公式 zip を直接取得 同じファイルを Internet Archive 経由で取得
ツール呼び出し回数 17回 20回
期待値との一致 名前・順位は一致。件数はわずかに違う(取得元が全国版ファイルのため) 同左

つまりこの聞き方では、キットを入れても入れなくても結果は変わりません。エージェントにとって「一般公開されているデータ」の最短経路は BigQuery ではなく元データの配布ファイルだった、ということです。スキル一覧に登録されていても、依頼文がデータウェアハウスを指していなければ選ばれませんでした。

6.3. 聞き方②(BigQuery を指定): 差は「実行できるか」に出る

文頭に「BigQuery の一般公開データセットを使って、」を足しただけの依頼文で、両条件を実行し直します。

キットあり条件は結果の取得まで完了しました。 スキル bigquery-data を起動し、get_table_info でテーブルのスキーマを確認してから execute_sql で集計を実行。さらに「このテーブルは何年まで入っているか」を確認するクエリまで自発的に実行した上で、期待値と全 10行一致する回答を返しました。ツール呼び出し 6回、実行時間 75 秒です。

順位 男の子 件数 女の子 件数
1 Liam 40,049 Olivia 35,369
2 Noah 37,103 Emma 31,089
3 Oliver 28,850 Charlotte 26,350
4 Elijah 25,844 Ava 25,919
5 James 24,710 Amelia 25,719

次の画面は、同じ依頼を対話セッションで再現したときのものです(パス中のユーザー名はマスクしています。返った値は上の表と同一でした)。依頼文の直後にスキル bigquery-data が読み込まれ、get_table_infoexecute_sql のスクリプトが Bash 経由で実行されていく様子が分かります。

スキル起動から execute_sql 実行までの画面

キットなし条件は結果を出せませんでした。 bq コマンド、gcloud、Python の BigQuery ライブラリを順に探してどれも無いことを確認すると、BigQuery でクエリを実行する手段がこの環境に無いことを報告し、実行すべき SQL とセットアップ手順を提示して終了しました。ツール呼び出しは環境探索の 5回だけです。

このとき提示された SQL を見ます。

SELECT
  gender,
  name,
  SUM(number) AS births
FROM `bigquery-public-data.usa_names.usa_1910_current`
WHERE year BETWEEN 2020 AND 2021
GROUP BY gender, name
QUALIFY ROW_NUMBER() OVER (PARTITION BY gender ORDER BY SUM(number) DESC) <= 5
ORDER BY gender, births DESC;

私が期待値取得に使った SQL と実質同一です。テーブル名 bigquery-public-data.usa_names.usa_1910_current も列名も、モデルは最初から知識として持っていました。

6.4. ツール呼び出しの対比と費用

聞き方②の呼び出し列を並べるとこうなります(transcript から抽出)。

手順 キットあり キットなし
1 Skill ツールで bigquery-data を起動 bq / gcloud / python を探す(PowerShell。拒否)
2〜3 get_table_info(PowerShell。拒否) 同様の探索を 2回(PowerShell。拒否)
4 get_table_info(Bash で成功) which で再確認(Bash)
5 execute_sql(本集計) Cloud SDK の標準インストール先とライブラリを確認して断念
6 execute_sql(収録年の確認)

PowerShell ツールは --allowedTools に含めていないため、両条件とも呼び出しは拒否され、どちらのエージェントも Bash で再試行しています。

費用面では、期待値の取得やキットありの実行クエリをすべて合わせて BigQuery のスキャン量は合計約 0.66 GB でした。無料枠(月 1 TB)の 0.1% 未満で、実費はかかっていません。get_table_info のようなメタデータ取得はスキャン 0 バイトです。

7. 考察

キットあり・なしの差は、SQL を書く能力ではなく「実行と認証」に出ました(いずれも各条件 1 回の実行に基づく観測です)。キットなしの条件は、期待値取得に使ったものと実質同一の SQL を知識から書けたのに、実行手段がなく結果を出せませんでした。キットのスキルが実際に補ったのは、Toolbox の起動(npx による実行ランタイム)と ADC の受け渡しです。逆に言うと、bq CLI が最初から入っている環境では差は小さくなると考えられます。キットの価値は、実行環境が整っていないクライアントに BigQuery への実行経路を配布物として届ける点にあると考えられます。

スキルは入れただけでは使われませんでした。聞き方①では、キットありの条件でもスキルは起動されず、エージェントは元データの取得を選びました。今回の各条件 1 実行の範囲での観測ですが、聞き方②では文頭に BigQuery を足しただけでスキル起動に変わりました。依頼内容がスキルの説明文(データウェアハウスの探索や大規模 SQL 向け、とある)に合うかどうかが、起動を左右したと考えられます。キットを導入したら、依頼文でもデータ基盤の側を指す必要があります。

個人環境のまま実験すると、別の要因が結果を決めます。最初、普段の Claude Code 環境(自作スキル・別プラグイン・MCP サーバー入り)のまま聞き方①を実行したところ、導入済みの委譲系プラグインが動きました。別の AI CLI へ Web 調査が委譲され、ブラウザ操作の MCP まで使った回答が返ってきました。キットの検証としては何も測れていません。本記事の比較をクリーン環境(2 章)で取り直したのはこのためです。エージェントの動作を検証するときは、測りたい変数以外を環境から取り除く準備が必要です。

Preview / beta である点は使う側の前提になります。Data Agent Kit は Preview1、bigquery プラグインも v1.0 未満の beta6 で、破壊的変更がありえます。実際、事前調査した 8 月上旬から今回の導入までの間に、マーケットプレイスは v0.1.6 から v0.1.7 に上がっていました(bigquery プラグインは 0.2.1 のまま)。

元の拡張形式(現在は Antigravity CLI が対応)では、聞き方①でも結果が変わる可能性があります。拡張定義には、コンテキストへ常時読み込まれる文書(BIGQUERY.md)の指定があります。スキルの説明文だけが手がかりの Claude Code 版と違い、依頼文が中立でも BigQuery へ誘導されやすいのではと考えられます(未検証。本記事の範囲外です)。

8. まとめ

Data Agent Kit の bigquery プラグインを Claude Code に導入し、キットなしとの比較まで確かめました。

  • 実体は MCP サーバーではなく skills で、Node スクリプトが MCP Toolbox 1.1.0 を 1回ずつ起動する構造だった
  • 導入では git の設定 2つ(core.longpaths と SSH から HTTPS への書き換え)が必要で、エラー表示が認証問題に見える点に注意。Windows と WSL をまたぐ認証は GOOGLE_APPLICATION_CREDENTIALS に UNC パスを設定するだけで解決できた
  • BigQuery を指定した依頼では、キットありだけがクエリ実行までを完了し、事前に固定した期待値と全 10行一致した。差を分けたのは実行手段と認証である
  • 依頼文がデータ基盤を指さなければスキルは使われない。導入とセットで、依頼文でも BigQuery を指定する必要がある

BigQuery を日常的に触る人が Claude Code で作業を完結させたい場合、専用のセットアップ(bq CLI の導入や自前 MCP サーバーの構築)なしに、プラグイン 1つでクエリ実行までできました。Preview 段階なので、バージョン固定の挙動や導入手順は変わる前提で、更新のたびに動作を確認して使うことになりそうです。

参考

  1. Data Agent Kit brings data skills and tools to your IDE or CLI(Google Cloud Blog の発表記事、2026-05-20。Preview 提供の宣言と対応環境の一覧はここに載っている) 2 3

  2. What's New in the Agentic Data Cloud(Google Cloud Blog、2026-04。Data Agent Kit の初出を含む発表群のまとめ)

  3. An important update: Transitioning Gemini CLI to Antigravity CLI(Google Developers Blog、2026-05。Gemini CLI の提供終了と Antigravity CLI への移行の告知)

  4. GoogleCloudPlatform/data-agent-kit(GitHub。Claude Code 向けプラグインマーケットプレイスの本体)

  5. googleapis/mcp-toolbox(GitHub。MCP Toolbox for Databases の本体リポジトリ)

  6. gemini-cli-extensions/bigquery-data-analytics(GitHub。bigquery プラグインの実体で、README に beta の記載がある)

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?