BigQuery Validator
mcp-bigquery
Exploración segura de BigQuery a través de Model Context Protocol
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-bigqueryPaso 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.jsonPaso 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.jsonWindows:
%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 configurandoMCP_BQ_ENABLE_PREVIEW=trueen su configuración de entorno.
Configuración
Variables de entorno
Variable | Propósito | Valor predeterminado |
| ID del proyecto de GCP objetivo | Determinado mediante ADC |
| Región de BigQuery objetivo | No establecido |
| Precio por TiB para la estimación de costos | 5.0 |
| Verbosidad del registro (DEBUG, INFO, WARNING, ERROR, CRITICAL) | WARNING |
| 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=trueEjemplo 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 credentialsSolució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 permissionSolución: Otorgue el rol
BigQuery Data Viewera 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 requiredSolución: Asegúrese de que la variable
BQ_PROJECTesté 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 GBEjemplo 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_resultEstado 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 ( |
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.
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