Skip to main content

Connect BigQuery to Claude, ChatGPT and Copilot

Google BigQuery is Google Cloud's serverless data warehouse, where teams keep marketing, product analytics, GA4 exports and finance data. Nexatron reads it through the BigQuery API, and each person signs in with their own Google account.

Nexatron's hosted MCP server is listed in Claude's connector directory. ChatGPT and Microsoft 365 Copilot add the same server as a custom MCP connector. Connect BigQuery to your Nexatron workspace once, then ask from whichever assistant you use.

What you can ask​

  • How many new customers signed up each week over the last six weeks?
  • How many purchase events did GA4 record by traffic source last month?
  • What is cost per acquisition by campaign over the last 30 days, using the Ads transfer?
  • Which regions grew revenue fastest quarter over quarter?
  • What share of first-time buyers came back within 90 days, by acquisition month?
  • Which queries processed the most bytes in the analytics project last week?

Questions read tables and views in your datasets, including partitioned and clustered tables, GA4 and Google Ads export tables (nested event parameters can be unnested), and INFORMATION_SCHEMA.JOBS where the person may read it. Questions can span several projects where the person's account has access, and the answer names the fully qualified tables it read.

Prerequisites​

  • A Nexatron workspace admin to add the connection.
  • A Google Cloud project and dataset, and a setup service account with BigQuery read access to the dataset.
  • Rights in Google Cloud console to create an OAuth client ID.
  • A Google account for each person who asks questions, with BigQuery access to the datasets they should query.

Admin setup​

  1. In Nexatron, go to Knowledge ▸ Sources ▸ New connection and choose BigQuery. Enter the project ID and the dataset, and paste the setup service account's JSON key (Google Cloud console ▸ IAM & Admin ▸ Service Accounts ▸ Keys). This service account is the connection's setup role: it reads metadata only, for setup, and never answers anyone's question.
  2. Open the connection's page. Under Sign-in for each person, copy the redirect URI.
  3. In Google Cloud console ▸ APIs & Services ▸ Credentials, create an OAuth client ID of type Web application, with that redirect URI.
  4. Paste the client ID and client secret into Nexatron and select Save client. The secret is stored encrypted and never shown again. Replacing the client later ends everyone's sign-ins.
  5. Choose who can use the connection.

Each query is one standard SQL job, labelled source: nexatron, and capped at 10 GiB billed by default.

How each person signs in​

Each person opens Knowledge ▸ Sources ▸ Your sign-ins and signs in with Google. It opens Google's own sign-in page, and Nexatron never sees their password. Their questions then run as their own Google identity, so the jobs are billed and logged as that person's under your BigQuery pricing.

First question to try​

After you add Nexatron in Claude, ChatGPT or Copilot, ask:

How many new customers signed up each week over the last six weeks?

Every answer shows the SQL it ran.

Permissions and masking​

Questions run as the person's Google identity, so BigQuery IAM roles, authorized views, row access policies and policy tags apply to every query.

Nexatron's own rules under Settings ▸ Workspace ▸ Access (Access) apply on top: row rules limit rows and column masking hides a column's values. They narrow what BigQuery allows and never widen it. A question that would total, average or count a masked column is refused in words, and an answer that ran under rules says so in its evidence.

Troubleshooting​

SymptomCause and fix
Signing in with Google isn't set up for the connection yetThe admin has not saved an OAuth client under Sign-in for each person on the connection's page.
Google rejects the redirect URIThe OAuth client's redirect URI must be the one shown on the connection's page, exactly.
Everyone has to sign in againThe OAuth client was replaced. A different client ends everyone's sign-ins.
An answer is refused for accessYour Google account has no BigQuery access to a table the question needs.
A question about a masked column's total is refusedA Nexatron masking rule covers that column, and aggregates over masked columns are always refused.