Integrations

Google BigQuery

Connect Google BigQuery to explore datasets and tables, run SQL and check its cost first, load and change data, and manage scheduled queries.

You end up pasting the OAuth Client ID and Client Secret of a Web application client you create in the Google Cloud console, then picking the Google Cloud project where BigQuery queries run and are billed.

Setup time
10 min
Auth
OAuth authorization
API base URL
https://bigquery.googleapis.com/bigquery/v2
Rate limits
Each user can make up to 100 requests per second to any one BigQuery API method and up to 300 concurrent requests, and 10 projects.list calls per second. On-demand projects can process up to 200 TiB of queries a day, and a jobs.query response is capped at 20 MB.

Before you begin

  • A Google account that can use BigQuery: a role that can run jobs, such as BigQuery Job User or BigQuery User, on the project queries will run in, and BigQuery Data Viewer or higher on the datasets you want read
  • A Google Cloud project you own for the OAuth client, with Owner or Editor so you can enable APIs and create OAuth clients
  • Billing on the project queries run in, or the BigQuery sandbox. The sandbox gives 1 TiB of queries a month and 10 GiB of storage, but no DML, no streaming inserts and no Data Transfer Service, so scheduled queries need billing
  • The PopMCP callback URL, copied from the Google BigQuery connect form before you start
  • Personal gmail.com accounts can only use the External audience. Internal needs a Google Workspace organisation

Get your credentials

Check the BigQuery APIs are enabled

Pick the project in the top bar and open APIs & Services → Library. Search for BigQuery API: Google turns it on automatically in new projects, so click Enable only if an older project shows it off. If the AI should work with scheduled queries and transfers, open BigQuery Data Transfer API and click Enable as well.

Open this screen →

console.cloud.google.com/apis/library/bigquerydatatransfer.googleapis.com
Search (/) for resources, docs, products, and moreacme-analytics
APIs & Services / Library / BigQuery Data Transfer API

BigQuery Data Transfer API

Schedule queries or transfer external data from SaaS applications to Google BigQuery on a regular basis.

EnableTry this API
Details
Service name
bigquerydatatransfer.googleapis.com
Project
acme-analytics
Status
Not enabled

The BigQuery API itself (bigquery.googleapis.com) is enabled automatically in new projects.

Fill in the Google Auth Platform branding

Open Google Auth Platform → Branding. If it says Google Auth platform not configured yet, click Get Started. Enter an App name and a User support email, choose External under Audience unless every user sits in your Workspace organisation, add an Email address under Contact Information, agree to the user data policy, then click Continue and Create.

Open this screen →

console.cloud.google.com/auth/branding
Search (/) for resources, docs, products, and moreacme-analytics
Google Auth Platform / Branding

Branding

Google Auth platform not configured yet
App Information
App name
PopMCP BigQuery
User support email
you@example.com
Next

The wizard then asks for Audience, Contact Information and the user data policy before Create.

Publish the app

Open Google Auth Platform → Audience. If Publishing status reads Testing, click Publish app and confirm. Publishing needs no review from Google; it only means the consent screen will show a one-time unverified-app warning.

Open this screen →

console.cloud.google.com/auth/audience
Search (/) for resources, docs, products, and moreacme-analytics
Google Auth Platform / Audience

Audience

Choose who can authorize this app to access their account data.

While publishing status is Testing, refresh tokens for test users expire 7 days after consent.
Publishing status
User type
External
Publishing status
Testing
Publish app
Test usersAdded
ops@acme.comMar 4, 2026

Once published this reads In production and the test-user list no longer applies.

Create a Web application OAuth client

Open Google Auth Platform → Clients and click Create client. Set Application type to Web application, name it PopMCP BigQuery, click Add URI under Authorized redirect URIs, paste the callback URL from the PopMCP connect form exactly as shown, and click Create. If you already made a client here for another PopMCP Google connector, the same one works.

Open this screen →

console.cloud.google.com/auth/clients/create
Search (/) for resources, docs, products, and moreacme-analytics
Google Auth Platform / Clients / Create client

Create OAuth client ID

A client ID identifies a single app to Google's OAuth servers.

Create OAuth client ID
Application type
Web application
Name
PopMCP BigQuery
Authorized JavaScript origins
Authorized redirect URIs
https://app.popmcp.com/api/providers/google/callback
CreateCancel

Leave Authorized JavaScript origins empty. Google matches the redirect URI character for character.

Copy the Client ID and Client Secret

Copy the Client ID and Client secret from the OAuth client created dialog before you close it. If the dialog is already gone, open the client from Clients and click Add secret to mint a new one.

Open this screen →

console.cloud.google.com/auth/clients
Search (/) for resources, docs, products, and moreacme-analytics
Google Auth Platform / Clients

Clients

NameTypeClient IDCreation date
PopMCP BigQueryWeb applicationWeb8836****-q2w5Mar 4, 2026
OAuth client created
Client ID
8836****-q2w5.apps.googleusercontent.com
Client secret
GOCSPX-****e81c
Download JSONOK

After this dialog closes the console shows only the last four characters of the secret.

Paste the values into PopMCP, authorize, and pick the project

On PopMCP's Google BigQuery connect form, paste the values into OAuth Client ID and OAuth Client Secret. Under Extra permissions, tick Query Google Sheets and Drive tables only if a table reads from a Sheet or Drive file, and Create and edit scheduled queries and transfers only if the AI should create or change them. Click Authorize with Google, click Advanced on the Google hasn't verified this app screen and continue, leave every box ticked, then choose the project to run queries in.

Connect in PopMCP

Open your workspace, choose Google BigQuery in the marketplace, and fill in the connect dialog:

FieldWhat to enter
OAuth Client IDtextGoogle Cloud Console → Google Auth Platform → Clients → Create client → Web application, with the callback URL above under Authorized redirect URIs. If you already made a client for another Google connector here, the same one works. The BigQuery API is on by default in new projects. To manage scheduled queries, also enable the BigQuery Data Transfer API (APIs & Services → Library).
OAuth Client SecretsecretShown once, in the popup right after you create the client. If you closed that popup, open the client and add a new secret. Stored encrypted here, used server-side only. IMPORTANT: in Google Auth Platform → Audience, if the status says "Testing", click "Publish app" first. Testing-mode apps get a refresh token that Google expires after exactly 7 days, so the connection would work for a week and then stop. Publishing does not require Google's review. It only adds a one-time "Google hasn't verified this app" screen, where you click Advanced and continue.Encrypted with AES-256-GCM on save and never shown again.
Extra permissionschecklistLeave both off unless you need them. Without them the connection asks Google for BigQuery access only.
Callback URL
https://app.popmcp.com/api/providers/google/callback

PopMCP verifies the credential against Google BigQuery immediately. On success the connection flips to Verified and its MCP tools are provisioned.

Permissions to request

PopMCP asks Google BigQuery for exactly the permissions you tick in the connect form. Unticked permissions leave their tools listed but failing, so keep the defaults unless you have a reason to narrow them.

Google BigQuery grants exactly what you tick. 0 of 2 are on by default.

Other

  • driveQuery Google Sheets and Drive tablesTick this if any of your BigQuery tables read from a Google Sheet or a Drive file. Queries on those tables fail without it. Adds Google Drive to the consent screen, where you must leave both boxes ticked.
  • cloudCreate and edit scheduled queries and transfersTick this if you want your assistant to create or change scheduled queries and data transfers. Google only allows that with its broad Google Cloud permission, so the consent screen will ask for access to your Google Cloud data instead of BigQuery alone. Viewing, running and deleting them works without it.

Verify it worked

After consent PopMCP lists the projects the Google account holds a role on. Pick one and the connector shows Connected with the project's name and id. PopMCP checks it by listing the project's datasets and dry-running SELECT 1, so nothing is billed. Ask the AI to list your datasets and their names come back.

Troubleshooting

Error 400: redirect_uri_mismatch

Why: The Authorized redirect URI on the client does not exactly match the callback URL PopMCP sends, usually a trailing slash or http instead of https.

Fix: Open the client under Google Auth Platform → Clients and paste the callback URL straight from the PopMCP connect form. Changes can take a few minutes to take effect.

The connection works for about a week, then stops with invalid_grant

Why: The app is still in Testing on the Audience page, so Google expired the refresh token 7 days after consent. PopMCP reports it as Google's 7 day Testing-mode expiry.

Fix: Go to Google Auth Platform → Audience, click Publish app, then reconnect Google BigQuery in PopMCP.

Access Denied: Project PROJECT_ID: User does not have bigquery.jobs.create permission in project PROJECT_ID

Why: The Google account can see data but has no role that runs jobs in the project you picked, so every query fails.

Fix: Grant the account BigQuery Job User (or BigQuery User) on that project in IAM & Admin → IAM, or reconnect and pick a project where it can run jobs. Tables elsewhere stay readable by their full project.dataset.table name.

The project you want is missing from the picker

Why: The picker only lists projects where the account holds a project-level role. A dataset shared with you directly does not make its project appear.

Fix: Pick a project you can run jobs in, then query the shared tables by their full project.dataset.table name.

Access Denied: BigQuery BigQuery: Permission denied while getting Drive credentials

Why: The table reads from a Google Sheet or Drive file, and the connection was made without the Drive permission, or the Google account cannot open that file.

Fix: Disconnect, then connect again with Query Google Sheets and Drive tables ticked and both boxes left ticked on the consent screen. Make sure the file is shared with that Google account.

Query exceeded limit for bytes billed: 107374182400

Why: PopMCP sends a 100 GiB maximumBytesBilled with every query by default, and BigQuery refused this one before running it, at no charge.

Fix: Run dry_run_query to see the size, select fewer columns or filter on a partition, or pass a higher maximumBytesBilled when you really mean to scan that much.

Creating a scheduled query fails with "needs the Google Cloud permission, which this connection was not given"

Why: Google only accepts its broad Google Cloud permission for creating or editing transfer configs, and Create and edit scheduled queries and transfers was not ticked when you connected.

Fix: Disconnect Google BigQuery in PopMCP and connect again with that option ticked. Check the BigQuery Data Transfer API is enabled and the project has billing.

Reference

On this page