Skip to main content
Glama
caron14

BigQuery Validator

by caron14

mcp-bigquery

Sichere BigQuery-Erkundung über das Model Context Protocol

MIT License PyPI Version Python Support Downloads

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-bigquery

Schritt 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.json

Schritt 3: Claude-Desktop-Konfiguration

Konfigurieren Sie den Server in der Claude-Desktop-Konfigurationsdatei:

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

  • Windows: %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 Sie MCP_BQ_ENABLE_PREVIEW=true in Ihrer Umgebungskonfiguration festlegen.


Konfiguration

Umgebungsvariablen

Variable

Zweck

Standard

BQ_PROJECT

Ziel-GCP-Projekt-ID

Wird über ADC ermittelt

BQ_LOCATION

Ziel-BigQuery-Region

Nicht festgelegt

SAFE_PRICE_PER_TIB

Preis pro TiB für die Kostenschätzung

5.0

LOG_LEVEL

Ausführlichkeit der Protokollierung (DEBUG, INFO, WARNING, ERROR, CRITICAL)

WARNING

MCP_BQ_ENABLE_PREVIEW

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=true

Vollstä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 credentials
  • Lösung: Authentifizieren Sie sich über die Befehlszeile neu:

    gcloud auth application-default login

Zugriff verweigert

Error: User does not have bigquery.tables.get permission
  • Lösung: Weisen Sie der Zielidentität die Rolle BigQuery Data Viewer zu:

    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 required
  • Lösung: Stellen Sie sicher, dass die Variable BQ_PROJECT in 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 GB

Beispiel 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_result

Projektstatus 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 (bq_preview_table) und Sicherheits-Opt-in-Konfiguration hinzugefügt

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.

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