BigQuery MCP server
@LucasHild
A Model Context Protocol server that provides access to BigQuery
Overview
What is BigQuery MCP server?
A Model Context Protocol server that provides access to BigQuery, enabling LLMs to inspect database schemas and execute queries. It is intended for developers using AI assistants to interact with BigQuery data.
How to use BigQuery MCP server?
Install via Smithery using npx -y @smithery/cli install mcp-server-bigquery --client claude or configure directly in client configs (Claude Desktop, Claude Code, Cursor). Required configuration: project ID (via --project argument or BIGQUERY_PROJECT env var) and location (via --location or BIGQUERY_LOCATION). Run with uvx mcp-server-bigquery.
Key features of BigQuery MCP server
- Provides three tools:
execute-query,list-tables,describe-table - Configurable via command line arguments or environment variables
- Supports filtering by specific BigQuery datasets
- Can use a service account key file or default credentials
- Optional query timeout setting
Use cases of BigQuery MCP server
- Enabling LLMs to discover BigQuery table schemas
- Running SQL queries against BigQuery from an AI assistant
- Interacting with BigQuery data without leaving the chat interface
FAQ from BigQuery MCP server
What tools does the BigQuery MCP server implement?
It implements three tools: execute-query (executes a SQL query using BigQuery dialect), list-tables (lists all tables in the database), and describe-table (describes the schema of a specific table).
What are the required configuration settings?
The GCP project ID and location are required. They can be provided via command line arguments (--project, --location) or environment variables (BIGQUERY_PROJECT, BIGQUERY_LOCATION).
Can I limit access to specific datasets?
Yes, use the --dataset argument (repeatable) or BIGQUERY_DATASETS environment variable with comma-separated dataset names. If not provided, all datasets in the project are considered.
How do I authenticate with BigQuery?
Either provide a path to a service account key file via --key-file or BIGQUERY_KEY_FILE, or omit it to use default credentials (e.g., from the environment or gcloud).
Is there a query timeout?
An optional --timeout argument (or BIGQUERY_TIMEOUT env var) sets the maximum time in seconds to wait for query completion. If not provided, queries wait indefinitely.