by LucasHild
Provides LLMs with the ability to inspect BigQuery schemas and execute SQL queries via the Model Context Protocol.
Enables language models to list tables, describe table schemas, and run SQL queries against a Google BigQuery project using a standardized MCP tool interface.
npx -y @smithery/cli install mcp-server-bigquery --client claude) or by cloning the repository and using Python's uv.BIGQUERY_PROJECT, BIGQUERY_LOCATION, BIGQUERY_DATASETS, BIGQUERY_KEY_FILE).uv run mcp-server-bigquery --project <PROJECT_ID> --location <LOCATION>). The server communicates over stdio, allowing Claude Desktop or any MCP‑compatible client to invoke the tools.--key-file or BIGQUERY_KEY_FILE.--dataset flag multiple times or set BIGQUERY_DATASETS as a comma‑separated list.uv package manager (or any compatible environment that can run the entry‑point mcp-server-bigquery).npx @modelcontextprotocol/inspector uv --directory <repo> run mcp-server-bigquery and follow the generated URL.uv build you can publish using uv publish.A Model Context Protocol server that provides access to BigQuery. This server enables LLMs to inspect database schemas and execute queries.
The server implements one tool:
execute-query: Executes a SQL query using BigQuery dialectlist-tables: Lists all tables in the BigQuery databasedescribe-table: Describes the schema of a specific tableThe server can be configured either with command line arguments or environment variables.
| Argument | Environment Variable | Required | Description |
|---|---|---|---|
--project |
BIGQUERY_PROJECT |
Yes | The GCP project ID. |
--location |
BIGQUERY_LOCATION |
Yes | The GCP location (e.g. europe-west9). |
--dataset |
BIGQUERY_DATASETS |
No | Only take specific BigQuery datasets into consideration. Several datasets can be specified by repeating the argument (e.g. --dataset my_dataset_1 --dataset my_dataset_2) or by joining them with a comma in the environment variable (e.g. BIGQUERY_DATASETS=my_dataset_1,my_dataset_2). If not provided, all datasets in the project will be considered. |
--key-file |
BIGQUERY_KEY_FILE |
No | Path to a service account key file for BigQuery. If not provided, the server will use the default credentials. |
To install BigQuery Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install mcp-server-bigquery --client claude
On MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
Development/Unpublished Servers Configuration
"mcpServers": {
"bigquery": {
"command": "uv",
"args": [
"--directory",
"{{PATH_TO_REPO}}",
"run",
"mcp-server-bigquery",
"--project",
"{{GCP_PROJECT_ID}}",
"--location",
"{{GCP_LOCATION}}"
]
}
}
Published Servers Configuration
"mcpServers": {
"bigquery": {
"command": "uvx",
"args": [
"mcp-server-bigquery",
"--project",
"{{GCP_PROJECT_ID}}",
"--location",
"{{GCP_LOCATION}}"
]
}
}
Replace {{PATH_TO_REPO}}, {{GCP_PROJECT_ID}}, and {{GCP_LOCATION}} with the appropriate values.
To prepare the package for distribution:
Increase the version number in pyproject.toml
Sync dependencies and update lockfile:
uv sync
uv build
This will create source and wheel distributions in the dist/ directory.
uv publish
Note: You'll need to set PyPI credentials via environment variables or command flags:
--token or UV_PUBLISH_TOKEN--username/UV_PUBLISH_USERNAME and --password/UV_PUBLISH_PASSWORDSince MCP servers run over stdio, debugging can be challenging. For the best debugging experience, we strongly recommend using the MCP Inspector.
You can launch the MCP Inspector via npm with this command:
npx @modelcontextprotocol/inspector uv --directory {{PATH_TO_REPO}} run mcp-server-bigquery
Upon launching, the Inspector will display a URL that you can access in your browser to begin debugging.
Please log in to share your review and rating for this MCP.
{
"mcpServers": {
"bigquery": {
"command": "uv",
"args": [
"run",
"mcp-server-bigquery",
"--project",
"{{GCP_PROJECT_ID}}",
"--location",
"{{GCP_LOCATION}}"
],
"env": {}
}
}
}claude mcp add bigquery uv run mcp-server-bigquery --project {{GCP_PROJECT_ID}} --location {{GCP_LOCATION}}Explore related MCPs that share similar capabilities and solve comparable challenges
by googleapis
An MCP server that streamlines database tool development by handling connection pooling, authentication, observability, and secure access, allowing agents to interact with databases via natural language.
by bytebase
Provides a universal gateway that lets MCP‑compatible clients explore and query MySQL, PostgreSQL, SQL Server, MariaDB, and SQLite databases through a single standardized interface.
by designcomputer
Enables secure interaction with MySQL databases via the Model Context Protocol, allowing AI applications to list tables, read contents, and execute queries safely.
by benborla
Provides read‑only access to MySQL databases for large language models, allowing schema inspection and safe execution of SQL queries.
by neo4j-contrib
Enables natural‑language interaction with Neo4j databases, allowing large language models to query, modify, and manage graph data through multiple transport modes.
by mongodb-js
Provides a Model Context Protocol server that enables interaction with MongoDB databases and MongoDB Atlas clusters through a unified API.
by ClickHouse
Enables AI assistants to run read‑only ClickHouse queries, list databases and tables, and execute embedded chDB queries through an MCP interface.
by neondatabase
Interact with Neon Postgres databases using natural language commands through the Model Context Protocol, enabling conversational database creation, migration, and query execution.
by motherduckdb
Enables SQL analytics on DuckDB and MotherDuck databases via a Model Context Protocol server, allowing AI assistants and IDEs to query data directly.