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
- 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.
- Open the connection's page. Under Sign-in for each person, copy the redirect URI.
- In Google Cloud console ▸ APIs & Services ▸ Credentials, create an OAuth client ID of type Web application, with that redirect URI.
- 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.
- 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
| Symptom | Cause and fix |
|---|---|
| Signing in with Google isn't set up for the connection yet | The admin has not saved an OAuth client under Sign-in for each person on the connection's page. |
| Google rejects the redirect URI | The OAuth client's redirect URI must be the one shown on the connection's page, exactly. |
| Everyone has to sign in again | The OAuth client was replaced. A different client ends everyone's sign-ins. |
| An answer is refused for access | Your Google account has no BigQuery access to a table the question needs. |
| A question about a masked column's total is refused | A Nexatron masking rule covers that column, and aggregates over masked columns are always refused. |
Related
- BigQuery on nexatron.io: what the connector covers
- Connect Claude: add Nexatron from Claude's connector directory
- Connect ChatGPT: add Nexatron as a custom connector
- Connect Microsoft 365 Copilot: a declarative agent or a Copilot Studio tool
- MCP reference: tools, OAuth scopes and errors