BigQuery Validator
mcp-bigquery
Безопасное исследование BigQuery через Model Context Protocol
Документация | Быстрый старт | Примеры
Обзор
mcp-bigquery — это сервер Model Context Protocol (MCP), который позволяет ИИ-ассистентам (таким как Claude) безопасно взаимодействовать с Google BigQuery.
Ключевые возможности
Безопасное выполнение: Все операции строго ограничены проверкой dry-run. Сервер никогда не выполняет запросы, которые изменяют данные или влекут затраты на выполнение.
Прозрачность затрат: Предоставляет оценку стоимости запросов и объёма обрабатываемых данных до выполнения.
Статический анализ: Анализирует зависимости запросов и проверяет синтаксис SQL.
Исследование схемы: Просмотр наборов данных, таблиц и столбцов.
Бизнес-ценность
Проблема | Решение с mcp-bigquery |
Непреднамеренное выполнение дорогостоящих запросов | Оценка стоимости до выполнения |
Задержки разработки из-за синтаксических ошибок SQL | Раннее обнаружение синтаксических ошибок |
Отсутствие видимости структуры схемы | Безопасное обнаружение метаданных схемы |
Риск несанкционированного изменения данных ИИ | Принудительные ограничения dry-run |
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 | Предпросмотр данных таблицы (бесплатно) | Просмотр примеров записей без затрат на сканирование |
[!ВАЖНО] Инструмент bq_preview_table использует
client.list_rows(API:tabledata.list) для прямого получения строк, что обеспечивает нулевое сканирование байт и отсутствие затрат на выполнение. Чтобы предотвратить непреднамеренную утечку конфиденциальной информации (например, ПДн) в LLM, этот инструмент по умолчанию отключён. Вы должны явно включить его, установивMCP_BQ_ENABLE_PREVIEW=trueв конфигурации окружения.
Конфигурация
Переменные окружения
Переменная | Назначение | По умолчанию |
| Целевой идентификатор проекта GCP | Определяется через ADC |
| Целевой регион BigQuery | Не задано |
| Цена за ТиБ для оценки стоимости | 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=trueПолный пример конфигурации 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"
}
}
}
}Устранение неполадок
Сопоставленные ошибки и их решения
Ошибка аутентификации
Error: Could not automatically determine credentialsРешение: Повторно пройдите аутентификацию с помощью командной строки:
gcloud auth application-default login
Отказано в доступе
Error: User does not have bigquery.tables.get permissionРешение: Предоставьте роль
BigQuery Data Viewerцелевой учётной записи:gcloud projects add-iam-policy-binding YOUR_PROJECT \ --member="user:your-email@example.com" \ --role="roles/bigquery.dataViewer"
Отсутствует идентификатор проекта
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 и оптимизирована вики-документация |
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 | Первоначальный выпуск с поддержкой базовой проверки и dry-run-запросов |
Разработка и вклад
Инструкции по настройке локальной разработки и политике вклада см. в руководстве 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