Grok can query BigQuery through a custom connector, and there are two routes. Google's managed BigQuery MCP server works if you can create an OAuth client in Google Cloud. Contextflo works when a team wants to ask BigQuery questions from Grok without each person setting up credentials.
Most people using Grok are not in the BigQuery console all day. They want to type a question into the chat app they already use and get a number back. Both routes below do that. They differ in who sets up what.
Option 1: BigQuery's own MCP server in Grok
Google runs a managed remote MCP server for BigQuery:
https://bigquery.googleapis.com/mcp
It signs in with OAuth against IAM. Its tools are list_dataset_ids, get_dataset_info, list_table_ids, get_table_info, execute_sql_readonly and execute_sql. Results are capped at 3,000 rows and queries time out after 3 minutes.
Two things to sort out first:
- Create an OAuth client. The server does not support automatic client registration. In Google Cloud Console, create an OAuth client ID and keep the client ID and secret.
- Limit the identity.
execute_sqlcan write. Sign in as an identity that only has BigQuery Data Viewer and BigQuery Job User.
Then in Grok:
- Open grok.com/connectors.
- Choose New Connector, then Custom.
- Enter the MCP server URL above.
- Complete the sign-in.
Because the server needs a pre-created OAuth client, check that the sign-in step in Grok can use your client ID and secret before you commit to this route. Grok connectors only reach servers on the public internet, and Google's endpoint is public, so reachability is not the issue.
Community stdio servers for BigQuery exist, such as pvoo/bigquery-mcp (uvx bigquery-mcp --project YOUR_PROJECT --location US). Those run on your own machine. Grok cannot run a local server, so they do not work as Grok connectors.
Option 2: Contextflo
Contextflo connects to BigQuery once and gives Grok one URL.
On the BigQuery side:
- Create a service account.
- Give it BigQuery Data Viewer (dataset level is the better choice) and BigQuery Job User.
- Create a JSON key.
In Contextflo: go to Data Sources, then Add data source, and pick BigQuery. Enter the Project ID, the Location (it must match your dataset's region) and the service account JSON. Pick the tables to expose and invite your team.
In Grok: add a custom connector at grok.com/connectors with this URL:
https://mcp.contextflo.com/mcp
Each person signs in with their own Contextflo account. Contextflo only runs SELECT, and the service account should be read-only underneath anyway.
Which one to use
| Google's BigQuery MCP | Contextflo | |
|---|---|---|
| Setup | OAuth client in Google Cloud Console | Service account, then one URL |
| Who signs in | Each person needs a Google identity with BigQuery access | Each person signs in to Contextflo |
| Shared definitions | None | Team saves corrections and definitions |
| Access control | IAM | Per-person table access |
| Audit trail | Job history shows SQL, not who asked | Prompts and the SQL that ran, per person |
Just you, and you already have BigQuery access in Google Cloud: use option 1. Your team asks too: use Contextflo. If you also use Claude, the same two routes are in connecting Claude to BigQuery.
You do the modeling, we do the rest. Connect BigQuery free.
FAQ
Can Grok connect to BigQuery? Yes, through a custom connector. Grok connectors reach MCP servers on the public internet, and Google runs a managed remote BigQuery MCP server at https://bigquery.googleapis.com/mcp. Contextflo is the other route, at https://mcp.contextflo.com/mcp.
Do I need to create an OAuth client for the BigQuery MCP server? Yes. Google's BigQuery MCP server does not support automatic client registration, so you create an OAuth client ID in Google Cloud Console and use its client ID and secret. Contextflo supports automatic client registration, so there is no OAuth client to create.
Can Grok write to BigQuery through the Google MCP server? It can if the signed-in identity is allowed to. The server has an execute_sql tool that can write, next to execute_sql_readonly. Sign in with an identity that only has BigQuery Data Viewer and BigQuery Job User.
Does Grok's BigQuery connection keep a record of who asked what? BigQuery job history shows the SQL that ran. With a shared service account it does not show which person asked. Contextflo keeps an audit trail of prompts and the SQL that ran, per person.
See it on your own data.
Connect your warehouse and your team can ask Claude about it the same day, without waiting on a data team. Want a walkthrough first? Grab 20 minutes.
Book a 20-minute callSee how teams use Contextflo
Related posts
Keep reading

Conversational analytics: 5 ways to set it up, compared
7 min read

How to connect Claude to BigQuery? What works and what doesn't in 2026
8 min read

How to connect Claude to Postgres without giving it write access
9 min read

How to build a BI dashboard with Claude that your team can actually trust
8 min read

How to give Claude read-only access to your database (it isn't always the default)
7 min read

You connected your warehouse to Claude, now what?
5 min read

ClickHouse MCP: how to connect ClickHouse to Claude, Cursor or Codex
6 min read

Run ClickHouse queries from Codex with MCP
6 min read

Databricks in Codex: Genie One MCP or Contextflo
5 min read

