Skip to main content
Glama
caron14

BigQuery Validator

by caron14

mcp-bigquery

Model Context Protocol による安全な BigQuery 探索

MIT License PyPI Version Python Support Downloads

ドキュメント | クイックスタート | 使用例


概要

mcp-bigquery は、AI アシスタント(Claude など)が Google BigQuery と安全に対話できるようにする Model Context Protocol (MCP) サーバーです。

主な特徴

  • 安全な実行: すべての操作はドライラン検証に厳密に制限されています。このサーバーは、データを変更したり実行コストが発生するクエリを実行することはありません。

  • コストの透明性: 実行前にクエリのコストと処理バイト数の見積もりを提供します。

  • 静的解析: クエリの依存関係を分析し、SQL 構文を検証します。

  • スキーマ探索: データセット、テーブル、カラムを閲覧できます。

ビジネス上の価値

問題

mcp-bigquery による解決策

高コストなクエリの意図しない実行

実行前のコスト見積もり

SQL 構文エラーによる開発の遅延

早期の構文エラー検出

スキーマ構造の可視性の欠如

安全なスキーマメタデータの探索

AI による不正なデータ変更のリスク

強制されたドライラン制約


Related MCP server: mcp-bigquery-dryrun

クイックスタート

ステップ 1: インストール

pip でパッケージをインストールします:

pip install mcp-bigquery

ステップ 2: 認証

Google Cloud Platform の認証を設定します:

# For user account authentication
gcloud auth application-default login

# For service account authentication
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json

ステップ 3: Claude Desktop の設定

Claude Desktop の設定ファイルにサーバーを設定します:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

次のエントリを追加します:

{
  "mcpServers": {
    "mcp-bigquery": {
      "command": "mcp-bigquery",
      "env": {
        "BQ_PROJECT": "your-gcp-project-id"
      }
    }
  }
}

ステップ 4: 動作確認

Claude Desktop を再起動し、以下のクエリを実行して設定を確認します:

  • "私の BigQuery プロジェクトで利用可能なデータセットは何ですか?"

  • "SELECT * FROM dataset.table のコストを見積もれますか?"

  • "users テーブルのスキーマを表示してください"


利用可能なツール

SQL 検証と解析

ツール

目的

主なユースケース

bq_validate_sql

SQL 構文のチェック

クエリ実行前の検証

bq_dry_run_sql

コスト見積もりとメタデータの取得

実行前のコスト評価

bq_extract_dependencies

テーブル依存関係のマッピング

系統(リネージ)と依存関係のマッピング

bq_validate_query_syntax

詳細な構文解析

複雑な SQL クエリのデバッグ

スキーマ探索

ツール

目的

主なユースケース

bq_list_datasets

プロジェクト内の全データセットの一覧表示

プロジェクトの初期調査

bq_list_tables

パーティショニングメタデータ付きテーブルの一覧表示

データセット構造の閲覧

bq_describe_table

詳細なスキーマ情報の取得

カラムレベルの検証

bq_get_table_info

包括的なメタデータの取得

テーブル統計の分析

bq_preview_table

テーブルデータのプレビュー(無料)

データスキャンコストなしでサンプルレコードを確認

[!IMPORTANT] bq_preview_table ツールは client.list_rows(API: tabledata.list)を使用してサンプル行を直接取得するため、スキャンされるバイト数はゼロで、実行コストは発生しません。機密情報(PII など)が LLM に意図せず公開されるのを防ぐため、このツールはデフォルトで無効になっています。環境設定で MCP_BQ_ENABLE_PREVIEW=true を設定して明示的にオプトインする必要があります。


設定

環境変数

変数

目的

デフォルト

BQ_PROJECT

対象の GCP プロジェクト ID

ADC で自動決定

BQ_LOCATION

対象の BigQuery リージョン

未設定

SAFE_PRICE_PER_TIB

コスト見積もりに使用する 1 TiB あたりの価格

5.0

LOG_LEVEL

ログの詳細度(DEBUG、INFO、WARNING、ERROR、CRITICAL)

WARNING

MCP_BQ_ENABLE_PREVIEW

bq_preview_table ツールの有効化(true/false)

false

.env ファイルの例

ローカルでのテストや開発環境では、これらの変数を .env ファイルで定義できます:

BQ_PROJECT=your-gcp-project-id
BQ_LOCATION=asia-northeast1
SAFE_PRICE_PER_TIB=5.0
LOG_LEVEL=WARNING
MCP_BQ_ENABLE_PREVIEW=true

Claude Desktop 設定の完全な例

{
  "mcpServers": {
    "mcp-bigquery": {
      "command": "mcp-bigquery",
      "env": {
        "BQ_PROJECT": "my-production-project",
        "BQ_LOCATION": "asia-northeast1",
        "SAFE_PRICE_PER_TIB": "6.0",
        "LOG_LEVEL": "WARNING",
        "MCP_BQ_ENABLE_PREVIEW": "true"
      }
    }
  }
}

トラブルシューティング

マッピングされたエラーとその解決策

認証エラー

Error: Could not automatically determine credentials
  • 解決策: コマンドラインで再認証します:

    gcloud auth application-default login

権限拒否

Error: User does not have bigquery.tables.get permission
  • 解決策: 対象の ID に BigQuery Data Viewer ロールを付与します:

    gcloud projects add-iam-policy-binding YOUR_PROJECT \
      --member="user:your-email@example.com" \
      --role="roles/bigquery.dataViewer"

プロジェクト ID の欠落

Error: Project ID is required
  • 解決策: 設定で BQ_PROJECT 変数が正しく設定されていることを確認します。


使用例

例 1: 実行前にコストを確認する

# Before running an expensive query...
query = "SELECT * FROM `bigquery-public-data.github_repos.commits`"

# First, check the cost
result = bq_dry_run_sql(sql=query)
print(f"Estimated cost: ${result['usdEstimate']}")
print(f"Data processed: {result['totalBytesProcessed'] / 1e9:.2f} GB")

# Output:
# Estimated cost: $12.50
# Data processed: 2500.00 GB

例 2: テーブル構造を理解する

# Check table schema
result = bq_describe_table(
    dataset_id="your_dataset",
    table_id="users"
)

# Output:
# ├── user_id (INTEGER, REQUIRED)
# ├── email (STRING, NULLABLE)
# ├── created_at (TIMESTAMP, REQUIRED)
# └── profile (RECORD, REPEATED)
#     ├── name (STRING)
#     └── age (INTEGER)

例 3: データ依存関係を追跡する

# Understand query dependencies
query = """
WITH user_stats AS (
  SELECT user_id, COUNT(*) as order_count
  FROM orders
  GROUP BY user_id
)
SELECT u.name, s.order_count
FROM users u
JOIN user_stats s ON u.id = s.user_id
"""

result = bq_extract_dependencies(sql=query)

# Output:
# Tables: ['orders', 'users']
# Columns: ['user_id', 'name', 'id']
# Dependency Graph:
#   orders → user_stats → final_result
#   users → final_result

プロジェクトの状態とバージョン履歴

バージョン

リリース日

変更内容の概要

v0.7.1

2026-08-17

mcp 依存関係の制約を調整し、wiki ドキュメントを整理

v0.7.0

2026-06-21

コスト無料のテーブルプレビューツール(bq_preview_table)とセキュリティのオプトイン設定を追加

v0.6.0

2026-06-21

スレッドセーフなキャッシュ、再帰的 AST クエリ、バックオフ再試行、Google API 例外のマッピング

v0.5.0

2026-01-02

フォーマッタの統合、クライアントキャッシュ、ログ制御の統一

v0.4.2

2025-12-08

モジュール式スキーマエクスプローラとクライアント/ログ制御の統一

v0.4.1

2025-01-22

エラーハンドリングとデバッグログの改善

v0.4.0

2025-01-22

スキーマ探索ツールを追加

v0.3.0

2025-01-17

SQL 静的解析エンジンを統合

v0.2.0

2025-01-16

基本的な検証とドライランクエリをサポートする初期リリース


開発と貢献

ローカル開発環境のセットアップ方法と貢献ポリシーについては、CONTRIBUTING.md ガイドを参照してください。

# Clone the repository
git clone https://github.com/caron14/mcp-bigquery.git
cd mcp-bigquery

# Install development dependencies
pip install -e ".[dev]"

# Execute the test suite
pytest tests/

ライセンス

このプロジェクトは MIT ライセンスの下で提供されています。詳細は LICENSE を参照してください。

Install Server
A
license - permissive license
B
quality
A
maintenance

Maintenance

Maintainers
Response time
2moRelease cycle
5Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    A read-only BigQuery MCP server with auto-LIMIT injection, dry-run cost guard, and ADC authentication. Allows safe SQL querying of BigQuery by LLMs without risk of data modification or unexpected costs.
    1
    MIT
  • A
    license
    A
    quality
    F
    maintenance
    Validates BigQuery SQL syntax and performs dry-run analysis without executing queries, providing cost estimates, referenced tables, and schema previews.
    2
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to query and analyze Google BigQuery data, including schema browsing, running queries, and comparing datasets through natural language.
    MIT

View all related MCP servers

Related MCP Connectors

  • Deterministic validation for AI-generated artifacts: JSON Schema, OpenAPI response, SQL syntax.

  • Run SOQL queries to explore and retrieve Salesforce data. Inspect records, fields, and relationshi…

  • Run SOQL queries against your Salesforce org to explore and retrieve data. Quickly iterate on filt…

View all MCP Connectors

Latest Blog Posts

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/caron14/mcp-bigquery'

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