Repository navigation
v0.1.0 — Initial public release
First public release of the BigQuery Read-Only MCP Server — a self-hosted MCP server for Google BigQuery with hard table allowlists, per-query scan ceilings, and built-in rate limiting.
What's included
- Read-only MCP server exposing two tools:
get_table_schemaandquery_assessments - Multi-dataset and multi-table support via comma-separated env vars (positional pairing)
- Hard scan ceiling enforced via BigQuery dry-run before every query
- Result-row cap, SQL length cap, request body size cap
- Token-bucket rate limiter with separate concurrency semaphores for queries vs. metadata
- LRU + TTL dry-run cache, TTL schema cache
- Admin endpoint for schema cache invalidation, behind a separate key
- Dockerfile and Cloud Run deployment guide
Getting started
See the README for full setup. In short: enable the required GCP APIs, create a least-privilege service account, store API keys in Secret Manager, and deploy with gcloud run deploy.
Security
This is a security-sensitive tool. Report vulnerabilities privately via GitHub security advisories. See SECURITY.md for details.
Known limitations
- Single region per deployment (Cloud Run constraint)
- No prompt-injection scanning (put a model security gateway in front if needed)
- No column-level masking (use BigQuery authorized views)
- Schema cache is per-instance
Compatibility
Tested with Claude Desktop, Cursor, Claude Code, and the OpenAI Responses API. Should work with any client speaking streamable-HTTP MCP.
Full Changelog: https://github.com/hugonissar/BigQuery-Read-Only-MCP-Server/commits/v0.1.0