BigQuery Validator
mcp-bigquery
Model Context Protocol による安全な BigQuery 探索
概要
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.jsonWindows:
%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を設定して明示的にオプトインする必要があります。
設定
環境変数
変数 | 目的 | デフォルト |
| 対象の GCP プロジェクト ID | ADC で自動決定 |
| 対象の BigQuery リージョン | 未設定 |
| コスト見積もりに使用する 1 TiB あたりの価格 | 5.0 |
| ログの詳細度(DEBUG、INFO、WARNING、ERROR、CRITICAL) | WARNING |
| 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=trueClaude 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 | コスト無料のテーブルプレビューツール( |
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 を参照してください。
Maintenance
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
- AlicenseNot gradedqualityBmaintenanceA 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.1MIT
- AlicenseAqualityFmaintenanceValidates BigQuery SQL syntax and performs dry-run analysis without executing queries, providing cost estimates, referenced tables, and schema previews.2Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables LLMs to explore BigQuery datasets and tables, run safe read-only queries, and optionally perform vector search using BigQuery embeddings.9MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to query and analyze Google BigQuery data, including schema browsing, running queries, and comparing datasets through natural language.MIT
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…
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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