ota2000
4 min read

Google 公式の BigQuery MCP サーバーを試した

Google Cloud から BigQuery のリモート MCP サーバーがプレビュー版で出た。ドキュメントには3月17日以降 BigQuery を有効にすると MCP サーバーも自動で有効になるとあるが、自分の環境では3月23日時点でも手動での有効化が必要だった。

プレビュー版なので本番で使うかは要判断だが、手元で試した。

MCP とは

Model Context Protocol。Anthropic が策定したオープンプロトコルで、AI アプリケーションが外部ツールと連携するための仕組み。Claude Code、Gemini CLI、Cursor などが対応している。

Google Cloud はこの MCP のリモートサーバーを複数のサービスで出し始めた。BigQuery はそのうちの1つ。

使えるツール

BigQuery MCP サーバーが持っているのは5つ。

  • list_dataset_ids — データセット一覧
  • get_dataset_info — データセットの詳細
  • list_table_ids — テーブル一覧
  • get_table_info — テーブルのスキーマやメタデータ
  • execute_sql — SQL の実行

テーブルの探索からクエリ実行まで一通りカバーしている。

セットアップ

有効化は1コマンド。

gcloud beta services mcp enable bigquery.googleapis.com --project=PROJECT_ID

IAM ロールは管理者向けとユーザー向けで分かれている。

  • 管理者(API の有効化時)
    • Service Usage 管理者
  • ユーザー(MCP の利用時)
    • MCP ツールユーザー
    • BigQuery ジョブユーザー
    • BigQuery データ閲覧者

加えて、Google Cloud コンソールで OAuth クライアントを作成する必要がある。「API とサービス」→「認証情報」→「OAuth 2.0 クライアント ID」から、アプリケーションの種類は「ウェブ アプリケーション」を選択する。「承認済みのリダイレクト URI」に https://claude.ai/api/mcp/auth_callback を追加しておく。

claude.ai の設定 → カスタマイズ → コネクタの「コネクタを参照」から「Google Cloud BigQuery」を検索して追加する。OAuth クライアント ID とシークレットを入力し、Google アカウントで認証すれば使える。

この方法で追加すると claude.ai と Claude Code の両方で利用できる。

使ってみて

claude.ai のコネクタとして追加するので、ブラウザ上のチャットからもそのまま使える。「先週の乗車数を出して」と聞けば SQL を組んで実行し、結果を返してくれる。開発者でなくても claude.ai さえ使えればデータの確認や簡単な分析ができる。

Claude Code からも同じコネクタが使えるので、dbt のモデル定義を書いているときに「このテーブルのカラム何だっけ」と聞くと MCP 経由で BigQuery に問い合わせてくれる。Web コンソールを開いてテーブルを探す、という作業を日に何度もやっていたので、これがなくなるだけで体感が違う。

あわせて Model Armor(Google の AI セーフティ機能)も設定した。ドキュメントに記載があったので一緒に入れたが、プロンプトインジェクション対策として有効にしておいたほうがいい。IAM 周りも地味に設定項目が多いので、Terraform で管理するのがおすすめ。

プレビュー版なので仕様が変わる可能性はある。

参考