ServicesAboutNotesContact Get in touch →
EN FR
Note

BigQuery Remote MCP Server Setup

Google's managed BigQuery MCP endpoint — enabling the service, configuring Claude Desktop and Claude Code, and why token expiration limits its usefulness.

Planted
mcpbigquerygcpai

The BigQuery Remote MCP Server is Google’s managed option for connecting AI assistants to BigQuery. It runs on Google’s infrastructure — no servers or binaries to manage. Enable it, configure an MCP client, and queries run through natural language.

Trade-off: the Remote Server offers five tools and requires manual token management with Claude Code. For anything beyond basic exploration in Claude Desktop, the self-hosted Toolbox is the practical choice.

What It Provides

The Remote Server exposes BigQuery through a single endpoint: https://bigquery.googleapis.com/mcp. Five tools come built in:

  • list_dataset_ids — discover datasets in your project
  • get_dataset_info — metadata about a specific dataset
  • list_table_ids — list tables in a dataset
  • get_table_info — schema and metadata for a specific table
  • execute_sql — run arbitrary SQL queries

These cover the basics of exploration: the AI assistant can discover your datasets, examine table schemas, and run SQL. There are no advanced tools for forecasting, catalog search, or parameterized queries — those come with the Toolbox.

Enabling the Service

Enable the MCP service for your Google Cloud project:

Terminal window
gcloud beta services mcp enable bigquery.googleapis.com \
--project=PROJECT_ID

Replace PROJECT_ID with your actual project ID.

Required IAM Roles

The user or service account needs two roles:

  • roles/bigquery.user — to run queries and list datasets
  • roles/bigquery.dataViewer — to read table data

For production with a service account:

Terminal window
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:SA_EMAIL" \
--role="roles/bigquery.user"
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:SA_EMAIL" \
--role="roles/bigquery.dataViewer"

The BigQuery IAM Patterns note covers the deeper reasoning behind these role choices — particularly why bigquery.user (which bundles job execution with dataset listing) is used here instead of the more granular bigquery.jobUser.

Claude Desktop Configuration

Add the Remote Server to your Claude Desktop config at ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
"mcpServers": {
"bigquery-remote": {
"url": "https://bigquery.googleapis.com/mcp",
"env": {
"GOOGLE_CLOUD_PROJECT": "your-project-id"
}
}
}
}

Claude Desktop handles OAuth automatically with this configuration — no token management or expiration handling required.

Claude Code Configuration (With Caveats)

Claude Code requires manual token management for the Remote Server. The configuration differs from Claude Desktop. Add to your .mcp.json:

{
"mcpServers": {
"bigquery": {
"type": "http",
"url": "https://bigquery.googleapis.com/mcp",
"headers": {
"Authorization": "Bearer <ACCESS_TOKEN>",
"x-goog-user-project": "your-project-id"
}
}
}
}

Get your access token:

Terminal window
gcloud auth print-access-token

The token expires in about an hour. When it does, a new token must be retrieved, the configuration updated, and Claude Code restarted. There is no automatic refresh. For regular use, this is impractical.

The Toolbox addresses this by using Application Default Credentials, which handle refresh automatically.

When the Remote Server Makes Sense

The Remote Server is appropriate when all of the following apply:

  • Using Claude Desktop (not Claude Code)
  • Only basic BigQuery exploration is needed — listing datasets, checking schemas, running ad-hoc queries
  • Custom parameterized queries and multi-database support are not required
  • No infrastructure to manage

If any condition does not apply, use the Toolbox. See Choosing Between BigQuery MCP Options for the full decision framework.