BigQuery用MCPサーバーでClaude CodeからBigQueryを操作する
以前から自分で使っている自作のBigQuery用MCPを宣伝します。Claude CodeなどのAIコーディングツールに、BigQueryのSQLを書かせることができるMCPです。
GitHubリポジトリは以下
bq_mcp_serverとは
bq_mcp_serverは、BigQueryのSQLクエリを作成・実行するためのMCPサーバーです。主な機能は以下の通りです。
- テーブル定義のローカルキャッシュ: BigQueryのテーブルスキーマ情報をローカルにキャッシュし、高速に参照できる。
- クエリ実行制限: デフォルトで1GiB のスキャン容量制限を設定し、高額な課金を防止する。
- メタデータ検索: データセット、テーブル、カラムの検索機能を提供する。
- クエリ実行: SQLクエリの実行と結果のCSVまたはJSONL形式での出力が可能。
AIが勝手にテーブル定義などを調べてSQLを書いてくれるため、手作業でのスキーマ確認やSQLの試行錯誤を省略できます。
インストールと設定
前提条件
GCPの認証情報が必要です。以下のいずれかの方法で認証を設定してください。
# Application Default Credentials(推奨)
# 設定済みの場合は不要です
gcloud auth application-default login
または、サービスアカウントキーを使用する場合は、--gcp-service-account-key-path
オプションでキーファイルのパスを指定できます。
Claude Codeでの設定
Claude Codeを使用している場合、以下のコマンドで簡単にインストールできます。ただし、事前にuv
のインストールが必要です。
claude mcp add bq_mcp_server -- uvx --from git+https://github.com/takada-at/bq_mcp_server bq_mcp_server --project-ids <your project ids>
それ以外のツールでは、MCP設定に以下を追加してください。
{
"mcpServers": {
"bq_mcp_server": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/takada-at/bq_mcp_server",
"bq_mcp_server",
"--project-ids",
"<your project ids>"
]
}
}
}
BigQueryパブリックデータを使った実用例
実際の使用例として、BigQueryのパブリックデータセットを使用したデモを紹介します。
デモ環境のセットアップ
BigQueryのパブリックデータにアクセスする場合は、以下のコマンドでインストールします。
claude mcp add bq_mcp_server --\
uvx --from git+https://github.com/takada-at/bq_mcp_server bq_mcp_server\
--project-ids bigquery-public-data\
--dataset-filters 'bigquery-public-data.samples'\
--query-execution-project-id <your project id>
パブリックデータにアクセスする場合でも、クエリの実行には少額の課金が発生するので注意してください。
実際の操作例
インストール後、Claude Codeを立ち上げ、/mcp
で正常起動を確認します。
以下のように表示されていれば問題ありません。
bq_mcp_server ✔ connected
Claude Codeでの使用例
> MCPでBigQueryのテーブル一覧を確認して
⏺ BigQueryのMCPサーバーを使ってテーブル一覧を確認します。まずはデータセットを取得してから、各データセットのテ
ーブルを確認しましょう。
(...)
BigQueryのMCPサーバーで利用可能なデータセットとテーブルを確認しました。
利用可能なデータセット:
- bigquery-public-data.samples (USリージョン)
テーブル一覧:
1. github_nested - GitHubイベントデータ(ネストした構造)
2. github_timeline - GitHubイベントデータ(フラット構造)
3. gsod - 世界気象データ(Global Summary of the Day)
4. natality - 出生データ
5. shakespeare - シェイクスピア作品の単語データ
6. trigrams - n-gramデータ
7. wikipedia - Wikipedia編集データ
これらのテーブルはBigQueryの学習用サンプルデータセットです。各テーブルには詳細なスキーマ情報が含まれており、
さまざまなクエリの練習に使用できます。
> shakespeareにはどんなデータが入ってる?
⏺ Shakespeareテーブルのデータを確認してみましょう。
(...)
⏺ Shakespeareテーブルには以下のデータが含まれています:
データ構造:
- word - 単語(空白区切りで抽出)
- word_count - その単語の出現回数
- corpus - 作品名
- corpus_date - 作品の出版年
含まれる作品(抜粋):
- sonnets (0年 - 年代不明)
- various (0年 - 年代不明)
- 1kinghenryvi, 2kinghenryvi, 3kinghenryvi (1590年)
- comedyoferrors, kingrichardiii (1592年)
- tamingoftheshrew, titusandronicus (1593年)
- loveslabourslost (1594年)
データの特徴:
- 最も頻出する単語は "the"(ハムレットで995回)
- 作品ごとの統計例:
- ハムレット:ユニーク単語数4,441、総単語数23,272
- コリオラナス:ユニーク単語数4,683、総単語数27,165
このデータセットは、シェイクスピア作品の単語頻度分析、作品間の語彙比較、言語学的分析などに使用できます。
> 作品別のワード数を集計してみて
(...)
⏺ シェイクスピア全43作品のワード数集計が完了しました。結果をshakespeare_word_stats.csvに保存しました。
主な発見:
- 最長作品: ハムレット(32,446語)
- 最短作品: 恋人の嘆き(2,586語)
- ユニーク単語数最多: ハムレット(5,318語)
- 平均使用頻度最高: リチャード三世、お気に召すまま(6.8回)
作品カテゴリー別の特徴:
- 四大悲劇(ハムレット、リア王、オセロ、マクベス)は上位に位置
- 歴史劇(ヘンリー系、リチャード系)も総単語数が多い
- ソネット集は17,805語で中規模
- 詩作品(ヴィーナスとアドニス、ルクレースの凌辱)は下位
アンインストール方法
以下のコマンドで簡単にアンインストールできます。
claude mcp remove bq_mcp_server
まとめ
BigQuery用MCPbq_mcp_server
を紹介しました。AIにSQLを作成してもらうためのツールです。
BigQueryを頻繁に使用する方は、ぜひ一度試してみてください。細かな設定方法は、GitHubリポジトリで確認できます。
Discussion