ClaudeとBigQueryをMCPサーバーで接続してみる

ClaudeとBigQueryをMCPサーバーで接続してみる

Clock Icon2025.03.25

MCPは、Anthropicが作ったLLM(大規模言語モデル)と外部データソースやツールとの連携を容易にするためのプロトコルです。MCPサーバーを介して、LLMは様々なデータソースにアクセスし、必要な情報を取得したり、外部ツールを呼び出して特定のタスクを実行したりできます。

MCPイントロダクション

スクリーンショット 2025-03-25 14.28.23

  • MCPホスト:MCPを介してデータにアクセスしたいClaude Desktop、IDE、AIツールなどのプログラム
  • MCPクライアント:サーバーとの1:1接続を維持するプロトコルクライアント
  • MCPサーバー:標準化されたモデルコンテキストプロトコルを通じて特定の機能を公開する軽量プログラム
  • ローカルデータソース:MCPサーバーが安全にアクセスできるコンピューターのファイル、データベース、およびサービス
  • リモートサービス:MCPサーバーが接続できるインターネット(APIなど)を介して利用可能な外部システム

Anthropic社が開発したLLMのClaudeと、ローカルデータソースとしてBigQueryの接続を試しいきたいと思います。

ドキュメントを見ると自身で実装することもできますが、今回は実装はしません。

LLMを使って自然言語でBigqueryのデータを取り扱いできるのかどうかを試します。

Claude Desktopのインストール

MCPをサポートするアプリケーションで手頃なのがClaude Desktopです。

ダウンロードページからダウンロードします。

※ ClaudeのWebアプリケーションは現在MCPをサポートしていません。MCP機能は、デスクトップアプリケーションでのみ使用できます

Bigqueryに接続するMCPサーバー

awesome-mcp-servers ※1 に載っている

ergut/mcp-bigquery-server

  • Google BigQuery統合のためのサーバー実装で、直接的なBigQueryデータベースアクセスとクエリ機能を提供

を使って接続していくようにしてみます。

前提条件

  • Node.js 14 以上
  • BigQuery が有効になっている Google Cloudプロジェクト
  • Google Cloud CLIがインストールされているか、サービスアカウントのキーファイル
  • Claude Desktop

今回はサービスアカウントのキーファイルを利用したマニュアルセットアップを行います。

githubのページにはクイックセットアップの方法もあるので、そちらを使う場合は参照してください。

BigQueryのパーミッション

このMCPサーバーを使うため、以下の権限が必要です。

  • roles/bigquery.user (recommended)
    OR both:
  • roles/bigquery.dataViewer
  • roles/bigquery.jobUser

スクリーンショット 2025-03-25 15.11.07

サービスアカウントのロールを割り当てる画面で設定します。

サービスアカウントのキーファイル

スクリーンショット 2025-03-25 15.13.11

サービスアカウントの鍵のページから追加します。

キーのタイプはJSONにしておきます。

作成後はダウンロードします。

Claude Desktop(MCPクライアント)の設定

Claude Desktopの設定からclaude_desktop_config.jsonに追加

スクリーンショット 2025-03-25 15.19.51

Claude Desktopの設定画面にある開発者のタブを開き、構成を編集ボタンを押します。

claude_desktop_config.jsonというファイルが保存されているフォルダが開くので、そこにある対象ファイルをエディタで開きます。

そしてMCPサーバーの設定を保存します。

{
  "mcpServers": {
    "bigquery": {
      "command": "npx",
      "args": [
        "-y",
        "@ergut/mcp-bigquery-server",
        "--project-id",
        "your-project-id",
        "--location",
        "us-central1",
        "--key-file",
        "/path/to/service-account-key.json"
      ]
    }
  }
}
  • project-id: Google Cloudのproject ID
  • location: BigQueryのロケーション。デフォルトは 'us-central1' です。
  • key-file: ダウンロードしたサービスアカウントキーJSONファイルへのパス

アプリの再起動からの接続確認

設定を保存後、Claude Desktopアプリを再起動します。

スクリーンショット 2025-03-25 15.36.07

設定画面でrunningとなっていればMCPサーバーとの接続設定はOKです。

スクリーンショット 2025-03-25 15.40.51

チャット欄からも利用可能なMCPサーバーを確認できました。

チャット経由でBigQueryに接続してみる

接続しているBigQueryのプロジェクトは何? と聞いてみると、初回は以下のように接続するかどうか聞かれます。

スクリーンショット 2025-03-25 15.34.51

許可をするとLLMがMCPサーバーを介して質問内容を実行してくれました。

スクリーンショット 2025-03-25 15.45.25

クエリを実行してくれます。

スクリーンショット 2025-03-25 15.47.56

SalesforceのデータをBigQueryに同期しているのですが、ユーザー数を聞いてみました。

スクリーンショット 2025-03-25 15.48.48

ざっくりとした質問でも、トライアンドエラーを繰り返して実行してくれますね。

テーブルやカラム名の指定をするとそこから情報を取得してくれるようになります。

スクリーンショット 2025-03-25 15.58.15

2024年のキャンペーンメンバーの数を月別グラフにして

といったようなことも行なってくれました。

スクリーンショット 2025-03-25 15.59.26


MCPサーバーを介してClaudeとBigQueryを接続し、チャット経由でデータを扱ってみました。

BigQueryだけでなく、その他いろいろなデータソースにもこの共通プロトコルにより接続できるようになるので、ローカルな情報を組み合わせて分析したり、売上予測,レポーティング,FAQ作成なんかも捗る可能性ありますね。

参考

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.