Skip to main content
Glama
caron14

BigQuery Validator

by caron14

mcp-bigquery

Exploración segura de BigQuery a través de Model Context Protocol

MIT License PyPI Version Python Support Downloads

Documentación | Inicio rápido | Ejemplos


Resumen

mcp-bigquery es un servidor de Model Context Protocol (MCP) que permite a los asistentes de IA (como Claude) interactuar de forma segura con Google BigQuery.

Características principales

  • Ejecución segura: Todas las operaciones están estrictamente limitadas a la verificación de dry-run. El servidor nunca ejecuta consultas que muten datos o incurran en costos de ejecución.

  • Transparencia de costos: Proporciona estimaciones de costos de consulta y bytes procesados antes de la ejecución.

  • Análisis estático: Analiza las dependencias de las consultas y valida la sintaxis SQL.

  • Exploración de esquemas: Navega por conjuntos de datos, tablas y columnas.

Valor para el negocio

Problema

Solución con mcp-bigquery

Ejecución no intencional de consultas costosas

Estimación de costos antes de la ejecución

Desarrollo retrasado debido a errores de sintaxis SQL

Detección temprana de errores de sintaxis

Falta de visibilidad de las estructuras de esquema

Descubrimiento seguro de metadatos de esquema

Riesgo de mutación no autorizada de datos por IA

Restricciones de dry-run aplicadas


Related MCP server: mcp-bigquery-dryrun

Inicio rápido

Paso 1: Instalación

Instale el paquete mediante pip:

pip install mcp-bigquery

Paso 2: Autenticación

Configure la autenticación de Google Cloud Platform:

# For user account authentication
gcloud auth application-default login

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

Paso 3: Configuración de Claude Desktop

Configure el servidor en el archivo de configuración de Claude Desktop:

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

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

Añada la siguiente entrada:

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

Paso 4: Verificación

Reinicie Claude Desktop y ejecute las siguientes consultas para verificar la configuración:

  • "¿Qué conjuntos de datos están disponibles en mi proyecto de BigQuery?"

  • "¿Puedes estimar el costo de: SELECT * FROM dataset.table"

  • "Muéstrame el esquema de la tabla users"


Herramientas disponibles

Validación y análisis de SQL

Herramienta

Propósito

Caso de uso principal

bq_validate_sql

Comprobar la sintaxis SQL

Verificación antes de la ejecución de consultas

bq_dry_run_sql

Obtener estimaciones de costos y metadatos

Evaluación de costos antes de la ejecución

bq_extract_dependencies

Mapear dependencias de tablas

Mapeo de linaje y dependencias

bq_validate_query_syntax

Análisis detallado de sintaxis

Depuración de consultas SQL complejas

Descubrimiento de esquemas

Herramienta

Propósito

Caso de uso principal

bq_list_datasets

Listar todos los conjuntos de datos en el proyecto

Descubrimiento inicial del proyecto

bq_list_tables

Listar tablas con metadatos de particionamiento

Exploración de la estructura del conjunto de datos

bq_describe_table

Obtener detalles del esquema

Verificación a nivel de columna

bq_get_table_info

Recuperar metadatos completos

Análisis de estadísticas de tablas

bq_preview_table

Vista previa de datos de tabla (sin costo)

Comprobación de registros de muestra sin costos de escaneo de datos

[!IMPORTANTE] La herramienta bq_preview_table utiliza client.list_rows (API: tabledata.list) para recuperar filas de muestra directamente, lo que resulta en cero bytes escaneados y sin costos de ejecución. Para evitar la exposición no intencional de información sensible (como PII) al LLM, esta herramienta está deshabilitada por defecto. Debe optar explícitamente configurando MCP_BQ_ENABLE_PREVIEW=true en su configuración de entorno.


Configuración

Variables de entorno

Variable

Propósito

Valor predeterminado

BQ_PROJECT

ID del proyecto de GCP objetivo

Determinado mediante ADC

BQ_LOCATION

Región de BigQuery objetivo

No establecido

SAFE_PRICE_PER_TIB

Precio por TiB para la estimación de costos

5.0

LOG_LEVEL

Verbosidad del registro (DEBUG, INFO, WARNING, ERROR, CRITICAL)

WARNING

MCP_BQ_ENABLE_PREVIEW

Habilitar la herramienta bq_preview_table (true/false)

false

Ejemplo de archivo .env

Para entornos de prueba locales o de desarrollo, puede definir estas variables en un archivo .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

Ejemplo completo de configuración de 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"
      }
    }
  }
}

Solución de problemas

Errores mapeados y soluciones

Error de autenticación

Error: Could not automatically determine credentials
  • Solución: Vuelva a autenticarse usando la línea de comandos:

    gcloud auth application-default login

Permiso denegado

Error: User does not have bigquery.tables.get permission
  • Solución: Otorgue el rol BigQuery Data Viewer a la identidad objetivo:

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

Falta el ID del proyecto

Error: Project ID is required
  • Solución: Asegúrese de que la variable BQ_PROJECT esté configurada correctamente en su configuración.


Ejemplos de uso

Ejemplo 1: Verificar costos antes de ejecutar

# 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

Ejemplo 2: Comprender la estructura de la tabla

# 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)

Ejemplo 3: Rastrear dependencias de datos

# 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

Estado del proyecto e historial de versiones

Versión

Fecha de lanzamiento

Resumen de cambios

v0.7.1

2026-08-17

Restricciones de dependencia de mcp refinadas y documentación wiki simplificada

v0.7.0

2026-06-21

Se añadió la herramienta de vista previa de tabla sin costo (bq_preview_table) y configuración de opt-in de seguridad

v0.6.0

2026-06-21

Caché segura para subprocesos, consultas AST recursivas, reintentos con backoff y mapeo de excepciones de Google API

v0.5.0

2026-01-02

Formateadores consolidados, caché de cliente y controles de registro unificados

v0.4.2

2025-12-08

Explorador de esquemas modular y controles unificados de cliente/registro

v0.4.1

2025-01-22

Mejoras en el manejo de errores y registro de depuración

v0.4.0

2025-01-22

Se añadieron herramientas de descubrimiento de esquemas

v0.3.0

2025-01-17

Motor de análisis estático SQL integrado

v0.2.0

2025-01-16

Versión inicial que admite consultas básicas de validación y dry-run


Desarrollo y contribución

Para obtener instrucciones sobre la configuración de desarrollo local y las políticas de contribución, consulte la guía 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/

Licencia

Este proyecto está licenciado bajo la Licencia MIT. Consulte LICENSE para obtener más detalles.

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