BQ Agent Gateway
Provides read-only access to Google BigQuery, enabling listing datasets and tables, describing table schemas, estimating query costs, and running SELECT queries with safety guardrails against expensive or destructive operations.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
BQ Agent Gateway
A read-only MCP server that connects Claude to BigQuery with layered guardrails against dangerous and expensive SQL.
What it blocks
Static AST validation (parsed with sqlglot, not regex):
Anything that isn't a
SELECT(noINSERT/UPDATE/DELETE/MERGE/DDL)SELECT *andtable.*(butCOUNT(*)is fine)CROSS JOINand implicit cartesian products (comma joins with noON)Multiple statements in one call (blocks
SELECT 1; DROP TABLE ...)Queries referencing datasets outside an allowlist
Missing
LIMIT(auto-injected by default) and over-largeLIMITs
BigQuery cost gate:
A dry-run estimates bytes scanned before running; over-threshold queries are rejected
Execution sets
maximum_bytes_billedas a hard server-side cap, so even a mis-estimate can't overspend — BigQuery kills the job insteadRow count and wall-clock timeout are capped
Related MCP server: bigquery-mcp-data-agent
Tools exposed
list_datasets, list_tables, describe_table, estimate_query_cost, run_query.
Setup
pip install -r requirements.txt # or: uv pip install -r requirements.txt
cp .env.example .env # then edit values
# Auth: either set GOOGLE_APPLICATION_CREDENTIALS to a service-account key,
# or run:
gcloud auth application-default loginGive the service account only what it needs:
roles/bigquery.dataViewer + roles/bigquery.jobUser. The dataViewer role
cannot mutate data, so the read-only guarantee is enforced at the IAM layer too,
not just in code.
Run
# stdio (for Claude Desktop)
python server.py
# or HTTP
fastmcp run server.py --transport http --port 8000Register with Claude Desktop
Edit claude_desktop_config.json
(macOS: ~/Library/Application Support/Claude/,
Windows: %APPDATA%\Claude\):
{
"mcpServers": {
"bq-agent-gateway": {
"command": "python",
"args": ["/absolute/path/to/bq-agent-gateway/server.py"],
"env": {
"BQ_PROJECT": "my-gcp-project",
"GOOGLE_APPLICATION_CREDENTIALS": "/absolute/path/to/key.json",
"BQ_ALLOWED_DATASETS": "analytics,prod_reporting",
"BQ_MAX_BYTES_SCANNED_GIB": "5"
}
}
}
}Restart Claude Desktop; the BigQuery tools appear in the tools menu.
Design notes / defense in depth
The guardrails are structured as independent layers so a bypass of one doesn't defeat the rest:
IAM — read-only service account can't write regardless of SQL.
AST validation — shape checks that regex can't do reliably.
Dry-run cost gate — the real budget protection for BigQuery.
maximum_bytes_billed— hard cap enforced by BigQuery itself.Row/time caps — bound the response size and latency.
Toggle any static rule via env vars (see .env.example) without touching code.
This server cannot be deployed
Maintenance
Related MCP Connectors
Query 40 databases from Claude, ChatGPT, or Cursor — on any device. Read-only, encrypted, audited.
GA4, Google Ads and Search Console in Claude. Read-only OAuth, multi-account for agencies.
Hosted BigQuery MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
Query your warehouse or a CSV with Claude/ChatGPT over MCP, governed by table-level ACL + audit.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables natural language exploration and querying of Google BigQuery datasets through four tools: listing datasets, inspecting table schemas, generating SQL queries with LLM assistance, and executing approved queries.1MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to analyze BigQuery datasets through MCP, using tools to inspect datasets and execute read-only SQL queries.-
- FlicenseNot gradedqualityCmaintenanceEnables secure read-only interaction with Google BigQuery through natural language, including listing datasets, listing tables, retrieving metadata, and executing queries with cost controls.-
- FlicenseNot gradedqualityAmaintenanceEnables LLMs to inspect schemas and execute SQL queries against Google Cloud datasets, including listing tables and describing table structures.-