BigQuery Validator
mcp-bigquery
Sichere BigQuery-Erkundung über das Model Context Protocol
Dokumentation | Schnellstart | Beispiele
Überblick
mcp-bigquery ist ein Server für das Model Context Protocol (MCP), der es KI-Assistenten (wie Claude) ermöglicht, sicher mit Google BigQuery zu interagieren.
Hauptfunktionen
Sichere Ausführung: Alle Vorgänge sind strikt auf Dry-Run-Überprüfungen beschränkt. Der Server führt niemals Abfragen aus, die Daten verändern oder Ausführungskosten verursachen.
Kostentransparenz: Liefert Schätzungen zu Abfragekosten und verarbeiteten Bytes vor der Ausführung.
Statische Analyse: Analysiert Abfrageabhängigkeiten und validiert die SQL-Syntax.
Schemaerkundung: Durchsucht Datasets, Tabellen und Spalten.
Geschäftlicher Nutzen
Problem | Lösung mit mcp-bigquery |
Unbeabsichtigte Ausführung teurer Abfragen | Kostenschätzung vor der Ausführung |
Verzögerte Entwicklung durch SQL-Syntaxfehler | Früherkennung von Syntaxfehlern |
Fehlende Transparenz über Schemastrukturen | Sichere Ermittlung von Schemametadaten |
Risiko unbefugter Datenänderungen durch KI | Erzwungene Dry-Run-Einschränkungen |
Related MCP server: mcp-bigquery-dryrun
Schnellstart
Schritt 1: Installation
Installieren Sie das Paket über pip:
pip install mcp-bigquerySchritt 2: Authentifizierung
Richten Sie die Google-Cloud-Plattform-Authentifizierung ein:
# For user account authentication
gcloud auth application-default login
# For service account authentication
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.jsonSchritt 3: Claude-Desktop-Konfiguration
Konfigurieren Sie den Server in der Claude-Desktop-Konfigurationsdatei:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Fügen Sie den folgenden Eintrag hinzu:
{
"mcpServers": {
"mcp-bigquery": {
"command": "mcp-bigquery",
"env": {
"BQ_PROJECT": "your-gcp-project-id"
}
}
}
}Schritt 4: Überprüfung
Starten Sie Claude Desktop neu und führen Sie die folgenden Abfragen aus, um die Einrichtung zu überprüfen:
„Welche Datasets sind in meinem BigQuery-Projekt verfügbar?“
„Können Sie die Kosten schätzen für: SELECT * FROM dataset.table“
„Zeigen Sie mir das Schema für die Tabelle users an“
Verfügbare Tools
SQL-Validierung und -Analyse
Tool | Zweck | Hauptanwendungsfall |
bq_validate_sql | SQL-Syntax prüfen | Überprüfung vor der Abfrageausführung |
bq_dry_run_sql | Kostenschätzungen und Metadaten abrufen | Kostenbewertung vor der Ausführung |
bq_extract_dependencies | Tabellenabhängigkeiten abbilden | Linien- und Abhängigkeitszuordnung |
bq_validate_query_syntax | Detaillierte Syntaxanalyse | Debuggen komplexer SQL-Abfragen |
Schemaerkennung
Tool | Zweck | Hauptanwendungsfall |
bq_list_datasets | Alle Datasets im Projekt auflisten | Erste Projekterkundung |
bq_list_tables | Tabellen mit Partitionsmetadaten auflisten | Durchsuchen der Dataset-Struktur |
bq_describe_table | Detaillierte Schemainformationen abrufen | Überprüfung auf Spaltenebene |
bq_get_table_info | Umfassende Metadaten abrufen | Analyse der Tabellenstatistiken |
bq_preview_table | Tabellendaten in der Vorschau anzeigen (kostenlos) | Beispielsätze ohne Daten-Scan-Kosten prüfen |
[!IMPORTANT] Das Tool bq_preview_table verwendet
client.list_rows(API:tabledata.list), um Beispielzeilen direkt abzurufen, was zu null gescannten Bytes und keinen Ausführungskosten führt. Um eine unbeabsichtigte Offenlegung vertraulicher Informationen (z. B. personenbezogener Daten) gegenüber dem LLM zu verhindern, ist dieses Tool standardmäßig deaktiviert. Sie müssen es explizit aktivieren, indem SieMCP_BQ_ENABLE_PREVIEW=truein Ihrer Umgebungskonfiguration festlegen.
Konfiguration
Umgebungsvariablen
Variable | Zweck | Standard |
| Ziel-GCP-Projekt-ID | Wird über ADC ermittelt |
| Ziel-BigQuery-Region | Nicht festgelegt |
| Preis pro TiB für die Kostenschätzung | 5.0 |
| Ausführlichkeit der Protokollierung (DEBUG, INFO, WARNING, ERROR, CRITICAL) | WARNING |
| Aktiviert das Tool bq_preview_table (true/false) | false |
Beispiel-.env-Datei
Für lokale Tests oder Entwicklungsumgebungen können Sie diese Variablen in einer .env-Datei definieren:
BQ_PROJECT=your-gcp-project-id
BQ_LOCATION=asia-northeast1
SAFE_PRICE_PER_TIB=5.0
LOG_LEVEL=WARNING
MCP_BQ_ENABLE_PREVIEW=trueVollständiges Konfigurationsbeispiel für 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"
}
}
}
}Fehlerbehebung
Zugeordnete Fehler und Lösungen
Authentifizierungsfehler
Error: Could not automatically determine credentialsLösung: Authentifizieren Sie sich über die Befehlszeile neu:
gcloud auth application-default login
Zugriff verweigert
Error: User does not have bigquery.tables.get permissionLösung: Weisen Sie der Zielidentität die Rolle
BigQuery Data Viewerzu:gcloud projects add-iam-policy-binding YOUR_PROJECT \ --member="user:your-email@example.com" \ --role="roles/bigquery.dataViewer"
Projekt-ID fehlt
Error: Project ID is requiredLösung: Stellen Sie sicher, dass die Variable
BQ_PROJECTin Ihrer Konfiguration korrekt festgelegt ist.
Anwendungsbeispiele
Beispiel 1: Kosten vor der Ausführung prüfen
# 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 GBBeispiel 2: Tabellenstruktur verstehen
# 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)Beispiel 3: Datenabhängigkeiten nachverfolgen
# 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_resultProjektstatus und Versionsverlauf
Version | Veröffentlichungsdatum | Zusammenfassung der Änderungen |
v0.7.1 | 2026-08-17 | Verfeinerte mcp-Abhängigkeitsbeschränkungen und optimierte Wiki-Dokumentation |
v0.7.0 | 2026-06-21 | Kostenloses Tabellenvorschau-Tool ( |
v0.6.0 | 2026-06-21 | Thread-sicherer Cache, rekursive AST-Abfragen, Backoff-Wiederholungen und Google-API-Ausnahmebehandlung |
v0.5.0 | 2026-01-02 | Konsolidierte Formatierer, Client-Cache und einheitliche Protokollierungssteuerung |
v0.4.2 | 2025-12-08 | Modulares Schema-Explorer- und einheitliche Client-/Protokollierungssteuerung |
v0.4.1 | 2025-01-22 | Verbesserungen bei der Fehlerbehandlung und beim Debug-Logging |
v0.4.0 | 2025-01-22 | Tools zur Schemaerkennung hinzugefügt |
v0.3.0 | 2025-01-17 | Integrierte statische SQL-Analyse-Engine |
v0.2.0 | 2025-01-16 | Erste Version mit Unterstützung für Basisvalidierung und Dry-Run-Abfragen |
Entwicklung und Mitwirkung
Anweisungen zur lokalen Entwicklungseinrichtung und zu den Richtlinien für Mitwirkende finden Sie im CONTRIBUTING.md-Leitfaden.
# 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/Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert. Weitere Informationen finden Sie in der LICENSE-Datei.
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