Skip to main content
Glama

BigQuery MCP Server

by takuya0206

BigQuery MCP サーバー

Google BigQuery にアクセスするためのモデルコンテキストプロトコル(MCP)サーバー。このサーバーにより、大規模言語モデル(LLM)は BigQuery データセットの構造を理解し、SQL クエリを実行できるようになります。

特徴

認証と接続管理

  • アプリケーションデフォルト認証情報(ADC)またはサービスアカウントキーファイルをサポート
  • 構成可能なプロジェクトIDと場所の設定
  • 起動時の認証検証

ツール

  1. クエリ
    • 読み取り専用(SELECT)BigQuery SQL クエリを実行する
    • 設定可能な最大結果と課金バイト数
    • SELECT以外のクエリを防ぐためのセキュリティチェック
  2. すべてのデータセットの一覧
    • プロジェクト内のすべてのデータセットを一覧表示する
    • データセットIDの配列を返します
  3. データセットを含むすべてのテーブルの一覧
    • 特定のデータセット内のすべてのテーブルとそのスキーマを一覧表示する
    • データセットIDパラメータが必要です
    • テーブルID、スキーマ、時間パーティション情報、および説明を返します
  4. テーブル情報を取得する
    • テーブル スキーマとサンプル データ (最大 20 行) を取得します。
    • パーティションフィルターを使用したパーティションテーブルのサポート
    • フィルターのないパーティションテーブルに対するクエリの警告
  5. ドライランクエリ
    • クエリの有効性をチェックし、実行せずにコストを見積もる
    • 処理サイズと推定コストを返します

セキュリティ機能

  • SELECTクエリのみ許可されます(読み取り専用アクセス)
  • 過剰なコストを防ぐために、クエリ処理のデフォルトの制限は 500 GB です。
  • パーティションテーブルに対するパーティションフィルタの推奨事項
  • 認証資格情報の安全な取り扱い

インストール

ローカルインストール

# Clone the repository git clone https://github.com/yourusername/bigquery-mcp-server.git cd bigquery-mcp-server # Install dependencies bun install # Build the server bun run build # Install command to your own path. cp dist/bigquery-mcp-server /path/to/your_place

Dockerのインストール

Docker コンテナ内でサーバーを実行することもできます。

# Build the Docker image docker build -t bigquery-mcp-server . # Run the container docker run -it --rm \ bigquery-mcp-server \ --project-id=your-project-id

または Docker Compose を使用します:

# Edit docker-compose.yml to set your project ID and other options # Then run: docker-compose up

MCP構成

このサーバーを MCP 対応 LLM で使用するには、MCP 構成に追加します。

{ "mcpServers": { "BigQuery": { "command": "/path/to/dist/bigquery-mcp-server", "args": [ "--project-id", "your-project-id", "--location", "asia-northeast1", "--max-results", "1000", "--max-bytes-billed", "500000000000" ], "env": { "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/service-account-key.json" } } } }

サービス アカウント キー ファイルの代わりにアプリケーションのデフォルト認証情報を使用することもできます。

{ "mcpServers": { "BigQuery": { "command": "/path/to/dist/bigquery-mcp-server", "args": [ "--project-id", "your-project-id", "--location", "asia-northeast1", "--max-results", "1000", "--max-bytes-billed", "500000000000" ] } } }

アプリケーションのデフォルト資格情報の設定

アプリケーションのデフォルト資格情報を使用して認証するには:

  1. Google Cloud SDK をまだインストールしていない場合はインストールします。
    # For macOS brew install --cask google-cloud-sdk # For other platforms, see: https://cloud.google.com/sdk/docs/install
  2. 認証コマンドを実行します。
    gcloud auth application-default login
  3. 指示に従って、BigQuery プロジェクトにアクセスできる Google アカウントでログインします。
  4. 認証情報はローカルマシンに保存され、BigQuery MCP サーバーによって自動的に使用されます。

テスト

テストとデバッグにはインスペクターを使用できます。

npx @modelcontextprotocol/inspector dist/bigquery-mcp-server --project-id={{your_own_project}}

使用法

ヘルパースクリプトの使用

付属のrun-server.shスクリプトを使用すると、一般的な構成でサーバーを簡単に起動できます。

# Make the script executable chmod +x run-server.sh # Run with Application Default Credentials ./run-server.sh --project-id=your-project-id # Run with a service account key file ./run-server.sh \ --project-id=your-project-id \ --location=asia-northeast1 \ --key-file=/path/to/service-account-key.json \ --max-results=1000 \ --max-bytes-billed=500000000000

手動実行

コンパイルされたバイナリを直接実行することもできます。

# Run with Application Default Credentials ./dist/bigquery-mcp-server --project-id=your-project-id # Run with a service account key file ./dist/bigquery-mcp-server \ --project-id=your-project-id \ --location=asia-northeast1 \ --key-file=/path/to/service-account-key.json \ --max-results=1000 \ --max-bytes-billed=500000000000

クライアントの例

サンプルの Node.js クライアントは、 examplesディレクトリに含まれています。

# Make the example executable chmod +x examples/sample-query.js # Edit the example to set your project ID # Then run it cd examples ./sample-query.js

コマンドラインオプション

  • --project-id : Google Cloud プロジェクト ID (必須)
  • --location : BigQuery の場所 (デフォルト: asia-northeast1)
  • --key-file : サービス アカウント キー ファイルへのパス (オプション)
  • --max-results : 返される最大行数(デフォルト: 1000)
  • --max-bytes-billed : 処理する最大バイト数 (デフォルト: 5000000000000、500GB)

必要な権限

サービス アカウントまたはユーザー資格情報には、次のいずれかが必要です。

  • roles/bigquery.user (推奨)

あるいは、これら両方:

  • roles/bigquery.dataViewer (テーブルデータの読み取り用)
  • roles/bigquery.jobUser (クエリ実行用)

使用例

クエリツール

{ "query": "SELECT * FROM `project.dataset.table` LIMIT 10", "maxResults": 100 }

すべてのデータセットの一覧表示ツール

// No parameters required

データセットツールですべてのテーブルを一覧表示する

{ "datasetId": "your_dataset" }

テーブル情報取得ツール

{ "datasetId": "your_dataset", "tableId": "your_table", "partition": "20250101" }

ドライランクエリツール

{ "query": "SELECT * FROM `project.dataset.table` WHERE date = '2025-01-01'" }

エラー処理

サーバーは、次の詳細なエラー メッセージを提供します。

  • 認証失敗
  • 権限の問題
  • 無効なクエリ
  • パーティションフィルターがありません
  • 過剰なデータ処理要求

コード構造

サーバーは次の構造で構成されます。

src/ ├── index.ts # Entry point ├── server.ts # BigQueryMcpServer class ├── types.ts # Type definitions ├── tools/ # Tool implementations │ ├── query.ts # query tool │ ├── list-datasets.ts # list_all_datasets tool │ ├── list-tables.ts # list_all_tables_with_dataset tool │ ├── table-info.ts # get_table_information tool │ └── dry-run.ts # dry_run_query tool └── utils/ # Utility functions ├── args-parser.ts # Command line argument parser └── query-utils.ts # Query validation and response formatting

ライセンス

マサチューセッツ工科大学

Related MCP Servers

  • -
    security
    A
    license
    -
    quality
    A Model Context Protocol server that provides access to BigQuery. This server enables LLMs to inspect database schemas and execute queries.
    Last updated -
    92
    Python
    MIT License
    • Apple
  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that enables LLMs to interact with Salesforce data through SOQL queries, SOSL searches, and various API operations including record management.
    Last updated -
    10
    77
    Python
    MIT License
  • -
    security
    A
    license
    -
    quality
    A Model Context Protocol server that enables LLMs to interact with GraphQL APIs by providing schema introspection and query execution capabilities.
    Last updated -
    733
    1
    MIT License
    • Apple
  • -
    security
    A
    license
    -
    quality
    A Model Context Protocol server that enables LLMs to interact with databases (currently MongoDB) through natural language, supporting operations like querying, inserting, deleting documents, and running aggregation pipelines.
    Last updated -
    TypeScript
    MIT License
    • Apple

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/takuya0206/bigquery-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server