はじめに
先日、BigQuery remote MCP serverがリリースされました。
そこで、以前からフェデレーションクエリ作成においてAI補助をつけたいという思いがあり、活用できるか検証しようと思いました。
BigQuery in Geminiなどもあるではないかという話なのですが様々な都合により私のユースケースが少しニッチなため採用できませんでした。
- クエリデータはCloud SQL for MySQLのデータを利用
- データソースやクエリ結果はBigQueryへ保存しない
- BigQueryで利用できるSQLである必要
- 最終的にはクエリ結果をCSV出力を行う
また強いていうなら下記も満たせるとなお良しという思惑もあります。
- BigQueryのコンソールを触らせたくない/触れない 人にも利用してもらえる
準備
まず対応ツールで実施可能か確認します。
次のツールで LLM を使用できます。
- analyze_contribution: 貢献度分析(主要因分析)を実行します。
- ask_data_insights: データ分析の実行、分析情報の取得、BigQuery テーブルの内容に関する複雑な質問への回答を行います。
- execute_sql: SQL ステートメントを実行します。
- forecast: 時系列データを予測します。
- get_dataset_info: データセットのメタデータを取得します。
- get_table_info: テーブルのメタデータを取得します。
- list_dataset_ids: データセットを一覧表示します。
- list_table_ids: テーブルを一覧表示します。
- search_catalog: 自然言語を使用してテーブルを検索します。
公式ドキュメントを確認すると上記の記載がありました。
こちらの「execute_sql」によってフェデレーションクエリのEXTERNAL_QUERY関数が利用できるのであればできそうです!
GoogleCloud側の作業はBigQueryとCloudSQLを繋ぐだけです。
※BigQueryとCloudSQLは立ち上がっている前提となります。
BigQueryのコンソールへ行き、接続を押下して外部データソースとの接続を作成します。
ここでいう外部データソースはCloudSQLです。
次にこちらのドキュメントを参考にGeminiCLIでMCPサーバーを利用できるようにします。
下記のコマンドでBigQueryのMCPサーバーを有効化します。
gcloud beta services mcp enable bigquery.googleapis.com --project=PROJECT_ID
geminiCLIを起動し/mcpオプションを利用して、BigQuery remote MCP serverが有効化されているか確認します。

検証
では、実際にフェデレーションクエリを実行できるか確認します。
プロンプトは下記となります。
接続IDは、先ほどBigQueryのコンソールから作成した接続の接続情報から確認できます。
BigqueryMCPを経由してフェデレーションクエリでsnsデータベースの各ユーザーの投稿数といいね数を取得してCSVを作成してください。
下記が接続情報となります。
リージョン:東京リージョン
接続ID:projects/プロジェクト名/locations/リージョン名/connections/接続名
プロジェクトID:myproject
execute_sqlツールを利用して、EXTERNAL_QUERYを実行しデータが取れているようです!

作成されたCSVはこのようになっており、要望通りのデータの取得はできていました。

またBigQuery remote MCP serverを利用しましたが、同じくGoogleが公開しているMCP toolbox databaseでも同様に接続して結果をクエリできます。
こちらはCursorにて利用したものですが、下記のようにCSVが作成されました。

プロジェクトで有効化できるならリモートの方が良いですが、難しい場合はtoolboxでも良いと思います。
またtoolboxだと他のDBへも接続できるためそこの利便性はあるのかなと思います。
さいごに
かなりニッチなユースケースをきっかけに検証しましたが、かなり手軽に手元の慣れ親しんだLLM搭載アプリのUIから自然言語で呼び出せるのはかなり良い体験でした。
実際の運用データをクエリするとなると、膨大なデータをクエリされる可能性もあるため、かなり料金面は心配にはなるのでそこはしっかりガードレールなり準備した方が良いかと思いました。
今回はBigQuery remote MCP serverでしたが、今後のGoogleCloudサービスに対するMCPの展開も待っているようなので、楽しみです!
