Read-only BigQuery tools for plain-language data questions, with a cost gate on every query
Connect Runs on your machine
claude mcp add data-platform-mcp -e BQ_MCP_ENVIRONMENTS=<BQ_MCP_ENVIRONMENTS> -e BQ_MCP_DEFAULT_ENVIRONMENT=<BQ_MCP_DEFAULT_ENVIRONMENT> -e BQ_MCP_CONFIG=<BQ_MCP_CONFIG> -e BQ_IMPERSONATE_SERVICE_ACCOUNT=<BQ_IMPERSONATE_SERVICE_ACCOUNT> -e BQ_PROJECT=<BQ_PROJECT> -e BQ_LOCATION=<BQ_LOCATION> -e BQ_CODE_ASSET_LOCATION=<BQ_CODE_ASSET_LOCATION> -e BQ_DATASET_ALLOWLIST=<BQ_DATASET_ALLOWLIST> -e BQ_WARN_BYTES=<BQ_WARN_BYTES> -e BQ_MAX_BYTES_BILLED=<BQ_MAX_BYTES_BILLED> -e BQ_MCP_AUDIT_LOG=<BQ_MCP_AUDIT_LOG> -- uvx data-platform-mcp==0.4.0
{
"mcpServers": {
"data-platform-mcp": {
"command": "uvx",
"args": [
"data-platform-mcp==0.4.0"
],
"env": {
"BQ_MCP_ENVIRONMENTS": "<BQ_MCP_ENVIRONMENTS>",
"BQ_MCP_DEFAULT_ENVIRONMENT": "<BQ_MCP_DEFAULT_ENVIRONMENT>",
"BQ_MCP_CONFIG": "<BQ_MCP_CONFIG>",
"BQ_IMPERSONATE_SERVICE_ACCOUNT": "<BQ_IMPERSONATE_SERVICE_ACCOUNT>",
"BQ_PROJECT": "<BQ_PROJECT>",
"BQ_LOCATION": "<BQ_LOCATION>",
"BQ_CODE_ASSET_LOCATION": "<BQ_CODE_ASSET_LOCATION>",
"BQ_DATASET_ALLOWLIST": "<BQ_DATASET_ALLOWLIST>",
"BQ_WARN_BYTES": "<BQ_WARN_BYTES>",
"BQ_MAX_BYTES_BILLED": "<BQ_MAX_BYTES_BILLED>",
"BQ_MCP_AUDIT_LOG": "<BQ_MCP_AUDIT_LOG>"
}
}
}
}
{
"mcpServers": {
"data-platform-mcp": {
"command": "uvx",
"args": [
"data-platform-mcp==0.4.0"
],
"env": {
"BQ_MCP_ENVIRONMENTS": "<BQ_MCP_ENVIRONMENTS>",
"BQ_MCP_DEFAULT_ENVIRONMENT": "<BQ_MCP_DEFAULT_ENVIRONMENT>",
"BQ_MCP_CONFIG": "<BQ_MCP_CONFIG>",
"BQ_IMPERSONATE_SERVICE_ACCOUNT": "<BQ_IMPERSONATE_SERVICE_ACCOUNT>",
"BQ_PROJECT": "<BQ_PROJECT>",
"BQ_LOCATION": "<BQ_LOCATION>",
"BQ_CODE_ASSET_LOCATION": "<BQ_CODE_ASSET_LOCATION>",
"BQ_DATASET_ALLOWLIST": "<BQ_DATASET_ALLOWLIST>",
"BQ_WARN_BYTES": "<BQ_WARN_BYTES>",
"BQ_MAX_BYTES_BILLED": "<BQ_MAX_BYTES_BILLED>",
"BQ_MCP_AUDIT_LOG": "<BQ_MCP_AUDIT_LOG>"
}
}
}
}
{
"servers": {
"data-platform-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"data-platform-mcp==0.4.0"
],
"env": {
"BQ_MCP_ENVIRONMENTS": "<BQ_MCP_ENVIRONMENTS>",
"BQ_MCP_DEFAULT_ENVIRONMENT": "<BQ_MCP_DEFAULT_ENVIRONMENT>",
"BQ_MCP_CONFIG": "<BQ_MCP_CONFIG>",
"BQ_IMPERSONATE_SERVICE_ACCOUNT": "<BQ_IMPERSONATE_SERVICE_ACCOUNT>",
"BQ_PROJECT": "<BQ_PROJECT>",
"BQ_LOCATION": "<BQ_LOCATION>",
"BQ_CODE_ASSET_LOCATION": "<BQ_CODE_ASSET_LOCATION>",
"BQ_DATASET_ALLOWLIST": "<BQ_DATASET_ALLOWLIST>",
"BQ_WARN_BYTES": "<BQ_WARN_BYTES>",
"BQ_MAX_BYTES_BILLED": "<BQ_MAX_BYTES_BILLED>",
"BQ_MCP_AUDIT_LOG": "<BQ_MCP_AUDIT_LOG>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
BQ_MCP_ENVIRONMENTSOptional | JSON map of environment name to BigQuery settings (project, location, impersonate, dataset_allowlist, byte caps). Omit when using a config file at ~/.config/data-platform-mcp/config.toml. |
BQ_MCP_DEFAULT_ENVIRONMENTOptional | Environment used when a tool call omits the environment argument. |
BQ_MCP_CONFIGOptional | Path to a TOML config file, overriding ~/.config/data-platform-mcp/config.toml. |
BQ_IMPERSONATE_SERVICE_ACCOUNTOptional | Read-only service account to impersonate, making read-only a property of the identity rather than of this code. Create it with `data-platform-mcp setup`. |
BQ_PROJECTOptional | GCP project whose BigQuery datasets are queried. Falls back to the project associated with Application Default Credentials. |
BQ_LOCATIONOptional | BigQuery location for jobs and datasets. Defaults to US. |
BQ_CODE_ASSET_LOCATIONOptional | Region holding BigQuery Studio notebooks and saved queries. Separate from BQ_LOCATION and usually different: code assets are regional and Dataform rejects multi-regions, so datasets in US typically pair with code assets in a region like us-central1. A wrong region returns an empty list rather than… |
BQ_DATASET_ALLOWLISTOptional | Comma-separated dataset IDs the server may read. Empty means all datasets. |
BQ_WARN_BYTESOptional | Scan size above which a query is returned for user confirmation instead of run. Defaults to 1 GiB. |
BQ_MAX_BYTES_BILLEDOptional | Hard per-query scan cap; a query estimated above this never runs. Defaults to 5 GiB. |
BQ_MCP_AUDIT_LOGOptional | Path for the JSONL tool-call audit log, or 'off' to disable it. SQL text is never recorded, only a hash and a length. |
Details
| Package | [email protected] (PYPI, stdio) |
| First published | 22 Sep 2026 |
| Last updated | 22 Sep 2026 |
| Registry name | io.github.deBilla/data-platform-mcp |
More databases servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
