Categorieën bekijken

Hoe verbind je BigQuery met Claude/Cursor via MCP (BigQuery MCP-serverconfiguratie)?

Leestijd: 30 minuten

MCP-SERVER GROTE QUERY

Query BigQuery met Claude of Cursor via MCP.

Verbind Google BigQuery — uw GCP-project, uw datasets, uw serviceaccount — met Claude of Cursor met één MCP-sleutel. Schema Intelligence ondersteunt GoogleSQL-idiomen (STRUCT, ARRAY, _PARTITIONTIME, backtick-gekwalificeerd `project.dataset.table`) zodat de AI bij de eerste poging geldige BigQuery SQL-query's schrijft.

Geen firewall-gaten Eén sleutel, elke connector Live data, geen cachevertraging Neem je eigen AI-tool mee.

Query Streams is een veilig, realtime data-integratieplatform dat elke database en SaaS API in uw account integreert in Claude, Cursor, ChatGPT en Grok — via één enkele MCP-sleutel en zonder dat er firewallwijzigingen nodig zijn. Deze handleiding beschrijft specifiek hoe u de BigQuery MCP-connector configureert, zodat uw AI-tool vragen in begrijpelijke taal kan beantwoorden over gebeurtenissen, gebruikers, sessies, attributies, conversietrechters en alle andere BigQuery-gegevens — zoals gepartitioneerde scans, STRUCT/ARRAY-traversal, GoogleSQL-vensterfuncties en ad-hoc rapportage — zonder dat u CSV-exports uit de BigQuery Console hoeft te kopiëren en plakken. bq CLI, of Looker Studio. Meer informatie vindt u op QueryStreams.com en gratis aanmelden om te beginnen met het stellen van echte BigQuery-vragen aan je AI-tool.

Wat Query Streams MCP je biedt voor BigQuery

Andere "BigQuery MCP"-servers in het open-source-landschap verbinden de AI-tool rechtstreeks met een sleutelbestand van een BigQuery-serviceaccount. Dat werkt, maar het plaatst een JSON-referentie met een lange levensduur in de configuratie van uw AI-client, beperkt de AI-tool tot slechts dat ene GCP-project en biedt geen auditlogboek van wat de AI daadwerkelijk heeft opgevraagd. De Query Streams MCP-server voor BigQuery lost een breder probleem op: één sleutel, elke connector, een volledig auditlogboek en de AI-tool bewaart nooit uw serviceaccountreferenties.

Geen inkomende firewall-gaten

De netwerkagent opent één enkele versleutelde uitgaande cloudverbinding naar Query Streams. Uw AI-client maakt verbinding met de cloud, nooit met uw GCP-project. Geen langdurige service-account JSON in uw AI-clientconfiguratie, geen IP-whitelist op BigQuery, geen VPN, geen extra IAM-bindingen op de BigQuery API.

Eén sleutel, elke connector

Dezelfde MCP-sleutel heeft toegang tot elke database en SaaS-API waarmee uw account is verbonden. Voeg morgen een Stripe- of PostgreSQL-connector toe en de AI-tool herkent deze direct naast uw BigQuery-datasets zonder dat u de sleutel opnieuw hoeft in te voeren.

Schema-intelligentie ingebouwd

De AI ziet door AI samengestelde beschrijvingen, semantische typen, enum-waardelijsten, STRUCT/ARRAY-annotaties en ontdekte foreign keys voor elke BigQuery-kolom – niet alleen de kale gegevens. INFORMATIE_SCHEMA Het genereert in één keer accurate GoogleSQL-resultaten, zelfs op oudere BigQuery-datasets met cryptische kolomnamen en diep geneste recordvelden.

Alleen-lezen is verplicht bij de agent.

Zelfs een hallucinerende LLM kan geen VERWIJDEREN, UPDATE, of TRUNCATE via Query Streams MCP. De netwerkagent weigert alles wat niet SELECT, MET, of UITLEGGEN voordat BigQuery de SQL-query überhaupt te zien krijgt, zelfs als uw serviceaccount schrijfrechten had.

Per-toets snelheidslimieten

Standaard 60 aanvragen per minuut en 10 uitvoeringsoproepen per minuut, configureerbaar per sleutel. Een oncontroleerbare lus van AI-tooloproepen verbruikt een token, niet uw BigQuery-slotreservering of uw maandelijkse factuur voor on-demand gescande bytes.

Hoe het werkt zonder firewallpoorten te openen

De Query Streams Network Agent wordt eenmalig geïnstalleerd op elke machine die de BigQuery API kan bereiken (laptop, on-premise server of een kleine GCE VM in uw GCP-project) en maakt één uitgaande TLS-verbinding met de cloud aan. Er wordt nooit inkomend verkeer blootgesteld en de AI-tool krijgt nooit uw serviceaccount-sleutelbestand of GCP-project-ID te zien. Hoe werkt een verbinding die alleen uitgaand verkeer toelaat? →

AI-client

Cursor, Claude,
ChatGPT, Grok

QS MCP-server

Streambare HTTP
X-MCP-sleutel authenticatie

Netwerk Agent

Op uw netwerk
Cloud-verbinding uit

BigQuery (GCP-project/dataset)

Serviceaccount
in bewaring bij de agent

Geen inkomende poort nodig — de agent belt uit, nooit andersom.

De MCP-toets die je aan Cursor of Claude geeft, is beperkt (lezen / analyseren / uitvoeren), op elk moment herroepbaar en met een limiet per sleutel. De AI-tool roept deze MCP-tools aan om zijn werk te doen:

querystreams-mcp · toolcatalogus
qs_list_organizationslezen
Retourneert de organisatie die is gekoppeld aan de aanroepende sleutel.
qs_list_agentslezen
Geeft een overzicht van netwerkagenten en hun online status.
qs_list_connectorslezen
Geeft een overzicht van data-connectoren (één item per databaseserver of API).
qs_get_connector_schemalezen
Retourneert de BigQuery-datasets, -tabellen en -kolommen (inclusief STRUCT/ARRAY-velden) die de AI kan bevragen, met Schema Intelligence-verrijking indien beschikbaar.
qs_profiel_tabelanalyseren
Voorbeeldwaarden, verdelingen, enumeratiedetectie, semantische typen — op aanvraag.
qs_list_saved_querieslezen
Voorgebouwde, geparameteriseerde SQL-sjablonen die het team vertrouwt. De AI voert ze uit zonder ooit de SQL-code te zien.
qs_run_saved_queryuitvoeren
Voert een opgeslagen query uit door patroon_sleutel met optionele parameteroverrides.
qs_run_queryuitvoeren
Voert een SELECT-query uit op een connector. Een alleen-lezen validator wordt uitgevoerd op de agent, voordat BigQuery de SQL-query te zien krijgt.

Waarom Schema Intelligence Query Streams MCP anders maakt

De meeste "MCP for BigQuery"-servers in het open-source landschap bieden uw AI-tool dezelfde functionaliteit. INFORMATIE_SCHEMA BigQuery geeft een vreemde in handen. Kolomnamen. GoogleSQL-typen. Misschien een clustering-sleutel. De LLM moet maar raden wat er aan de hand is. event_name = 'click_4' betekent, wat omhoog_attr_4 winkels, of dat gebeurtenissen.gebeurtenisparameters is een enkele STRUCT of een herhaalde ARRAY<STRUCT> dat nodig heeft UNNEST() traversering. Daarom geeft de eerste SQL-query die de meeste LLM's uitvoeren op een kaal BigQuery-schema ofwel een foutmelding (doordat backticks voor project-ID's met koppeltekens worden vergeten) of scant de hele 5 TB. evenementen tafel omdat er geen _PARTITIONTIME Er werd een filter toegepast — niet omdat het LLM-model slecht is, maar omdat het niet over de benodigde gegevens beschikt om correct te zijn.

Query Streams MCP retourneert hetzelfde schema, verrijkt met wat wij noemen Schema-intelligentie (SI) — Door AI samengestelde metadata die wordt gegenereerd door profileringsquery's uit te voeren op uw gegevens. werkelijke BigQuery-gegevens voordat de AI-client erom vraagt. Wanneer SI is ingeschakeld voor een connector en dataset, worden alle schema-tools die de AI aanroept (qs_get_connector_schema, qs_get_table_schema, qs_profiel_tabel, qs_get_relationships) retourneert het kale schema plus zes lagen van zorgvuldig geselecteerde kennis. De LLM stopt met gissen en voorkomt dat terabytes per ongeluk worden gescand.

Om dit concreet te maken, volgt hier wat de AI-client terugkrijgt van een enkele opdracht. qs_get_table_schema een oproep doen naar een typisch BigQuery-webanalysedatawarehouse (evenementen, gebruikers, sessies, toeschrijvingen, experimenten, conversie_gebeurtenissen) — eerst zonder schema-intelligentie, daarna mét.

Zonder schema-intelligentie data_source: vastgelegd_schema
// Wat de LLM ziet == TABEL: `analytics.events` == – event_name STRING NOT NULL – gebruikers-ID SNAAR – sessie_id SNAAR – event_timestamp TIJDSTEMPEL NIET NULL – event_params ARRAY<STRUCT> – gebruikerseigenschappen ARRAY<STRUCT> - winst VLOTTER64 Gepartitioneerd op: _PARTITIONTIME (DAY) == TABEL: `analytics.users` == – gebruikers_pseudo_id SNAAR – acquisitie_bron SNAAR – first_seen TIJDSTEMPEL == TABEL: `analytics.sessions` == – sessie_id SNAAR – gebruikers-ID SNAAR – duur_sec INT64 == TABEL: `analytics.attributions` == – gebruikers-ID SNAAR – kanaal SNAAR – touch_ts TIJDSTEMPEL Externe sleutels: (geen opgegeven — BQ heeft geen FK-beperkingen) si_aanbeveling: staat: “niet_uitvoeren” Wat je mist voor dit gesprek: – STRUCT/ARRAY-veldschema's (event_params-sleutels) – Analyse van overlappingen in user_id's tussen tabellen – Voorbeeldwaarden per kolom + enum-detectie – Tabel- en kolombeschrijvingen – Hints voor partitionering/clustering “Alleen typen, geen semantische context”
Met schema-intelligentie data_source: schema_intelligence
// Wat de LLM ziet == TABEL: `analytics.events` [FEIT, domein:productanalyse] == “Gebruikersgebeurtenissenstroom; één rij per klik/weergave/aankoop. Indeling per dag.” – event_name SNAAR status_code (enum) paginaweergave (61%) | klik (22%) | toevoegen aan winkelwagen (9%) | aankoop (5%) | aanmelden (3%) – gebruikers-ID SNAAR identificator (hoge cardinaliteit) FK -> users.user_pseudo_id (97% overlap, conf 0.96) – _PARTITIONTIME TIJDSTEMPEL datum (partitie pseudo-kolom) FILTER HIEROP om de scankosten te beperken – event_params ARRAY<STRUCT> struct_array (UNNEST vereist) Sleutels: page_url, value, item_id, source – gebruikerseigenschappen ARRAY<STRUCT> struct_array (UNNEST vereist) Sleutels: plan_tier, signup_cohort - winst VLOTTER64 valuta_usd Bereik: 0,00 – 4.820,00 · gemiddelde 41,30 == TABEL: `analytics.users` [DIM, domein:klanten] == – gebruikers_pseudo_id SNAAR identificator (hoge cardinaliteit) – acquisitie_bron SNAAR kanaal (enum) biologisch (41%) | cpc (28%) | direct (16%) | verwijzing (10%) | e-mail (5%) == TABEL: `analytics.sessions` [FEIT, domein:productanalyse] == – duur_sec INT64 duur_seconden

De zes lagen die Schema Intelligence toevoegt

Elke laag behandelt een type vraag waar de LLM anders naar zou gissen. De optionele SI-profileringsstap wordt uitgevoerd op uw BigQuery-gegevens zonder uw schema te wijzigen, waarbij gebruik wordt gemaakt van partition-pruning hints zodat de scanomvang beperkt blijft. Wat Schema Intelligence toevoegt en hoe het actueel blijft →

Door AI samengestelde beschrijvingen

Een duidelijke, in begrijpelijke taal geformuleerde beschrijving van het doel van elk project, elke dataset, tabel en kolom — eenmalig gegenereerd en automatisch bijgewerkt wanneer uw schema wijzigt. Betrouwbaarheidsscore; beschrijvingen van gebruikers hebben altijd de voorkeur.

gebeurtenissen: “Gebruikersgebeurtenisstroom; één rij
per klik / weergave / aankoop.”

Tabelclassificaties

Elke tabel is getagd met FACT (gebeurtenisstromen, sessies), DIM (gebruikers, dimensies) of LOOKUP (kleine code-mappings), plus een bedrijfsdomein — productanalyse, marketing, financiën, ondersteuning en meer.

gebeurtenissen [FACT, domein:product_analytics]
gebruikers [DIM, domein:klanten]

Semantische typen per kolom

Achttien gegevenstypen: currency_usd, email, date, status_code, percentage, ranking_position, identifier, url, struct_array, partition_column en meer. De AI genereert dialectcorrecte GoogleSQL-query's die geschikt zijn voor elk type, inclusief partitiefilters en UNNEST-patronen.

omzet: valuta_usd
_PARTITIONTIME: partitiekolom

Voorbeeldwaarden uit echte gegevens

Willekeurige rijen werden aan het LLM getoond, waardoor het patronen herkent die geen enkel schema kan weergeven: STRUCT-sleutelnamen binnen ARRAY-kolommen, gecodeerde waarden, afkortingsstijlen en de daadwerkelijke structuur van uw geneste velden.

event_params sleutels: page_url, waarde,
item_id, bron, campagne

Enum-detectie met distributies

Kolommen met een lage cardinaliteit (50 of minder unieke waarden, maximaal 5% van de rijen uniek) worden gekoppeld aan hun volledige waardelijst met rijtellingen. De AI raadt nooit hoofdletters of spelling bij gebeurtenistypen of kanalen.

verwervingsbron: organisch (41%)
| cpc (28%) | direct (16%) | …

Impliciete ontdekking van vreemde sleutels

Analyse van overlappingen in tabelgegevens vindt koppelingen die BigQuery niet als DDL-beperkingen kan afdwingen (BigQuery heeft geen foreign keys). De gegevens worden opgeslagen met betrouwbaarheidsscores en geretourneerd door qs_get_relationships.

events.user_id -> users.user_pseudo_id
(97% overlap, conf 0,96)

Dezelfde prompt, andere SQL-query

Het bewijs zit in de SQL-query's die de AI-tool daadwerkelijk genereert. Dezelfde cursorsessie, hetzelfde Claude-model, dezelfde prompt. “Welke gebruikersgroep is het meest betrokken, op basis van de acquisitiebron, en wat is hun conversieratio?” Zonder schema-intelligentie moet de LLM gokken. Met schema-intelligentie schrijft de LLM in één keer geldige GoogleSQL en past het automatisch het partitiefilter toe, zodat de scan binnen de perken blijft.

Zonder schema-intelligentie
— LLM's eerste poging tegen een kaal schema: SELECT acquisitie_bron, TELL(DISTINCT gebruikers-ID) AS gebruikers VAN analytics-prod.web.events WAAR event_params.value > 0 GROEP DOOR verwervingsbron SYNTAXFOUT: “analytics-prod” bevat een koppelteken. moet een backtick-gekwalificeerde `analytics-prod…` zijn acquisition_source is gekoppeld aan gebruikers, niet aan gebeurtenissen. event_params is ARRAY<STRUCT> — vereist UNNEST geen _PARTITIONTIME-filter — scant 5 TB ($25) geen berekening van de wisselkoers geen interactiefilter — telt elke bezoeker
Met schema-intelligentie
— LLM's eerste poging met SI ingeschakeld: SELECT u.acquisitie_bron, TELL(DISTINCT e.user_id) AS betrokken_gebruikers, SAFE_DIVIDE( COUNTIF(e.event_name = 'aankoop'), TELL(DISTINCT e.user_id) ) AS conversiepercentage VAN `analytics-prod.web.events` e JOIN `analytics-prod.web.users` u OP e.user_id = u.user_pseudo_id WAAR e._PARTITIONTIME >= TIJDSTEMPEL_ONDER( HUIDIGE_TIJDSTEMPEL(), INTERVAL 30 DAG) GROEP DOOR u.acquisitie_bron ORDER BY conversiepercentage DESC 5 rijen. Direct goed, scan = 6 GB. Backticks toegepast voor project met koppelteken _PARTITIONTIME beperkte scan tot de laatste 30 dagen FK discovery routed user_id -> user_pseudo_id enum op event_name leverde 'aankoop' op GoogleSQL TIMESTAMP_SUB / SAFE_DIVIDE gebruikt
Wil je Schema Intelligence niet uitvoeren? MCP werkt nog steeds — schema-tools retourneren kale metadata (typen, primaire sleutels, formele externe sleutels, indexen) en elke verslechterde respons bevat een si_aanbeveling Een blok dat de AI vertelt wat er ontbreekt, inclusief een optie om SI tijdens een gesprek in te schakelen met één telefoontje. qs_request_si_analysis. Hoe Schema Intelligence werkt en hoe lang het duurt →

Authenticeer Query Streams MCP voor uw GCP-project en datasets.

BigQuery is zelf een cloudplatform; er bestaat geen "BigQuery op RDS"-implementatie. De vraag over cloudhosting voor BigQuery is in plaats daarvan: Hoe verkrijgt de netwerkagent authenticatie bij uw GCP-project en hoe kunt u de toegang beperken tot specifieke datasets? Drie patronen die 95% van de implementaties dekken:

Service-account authenticatie AANBEVOLEN

Productiegeschikt, met minimale privileges en beperkt tot de dataset.

Maak een serviceaccount met een beperkt bereik aan in uw GCP-project (bijvoorbeeld [email protected]), en verleen het dan. rollen/bigquery.dataViewer op de specifieke datasets die u wilt weergeven (NIET projectbreed) plus rollen/bigquery.jobUser Het project moet querytaken kunnen uitvoeren. Download het JSON-sleutelbestand, registreer het bij de geheime opslag van de agent, en de agent gebruikt het om de BigQuery Query API en Storage Read API aan te roepen.

Waarom op datasetniveau in plaats van projectbreed: een projectniveau dataViewer Door de binding worden alle datasets zichtbaar, inclusief datasets die u mogelijk niet aan het LLM wilt tonen (PII-kluizen, financiële grootboeken). Binding per dataset houdt de impact van een beveiligingslek beperkt. De agent beschikt nooit over de inloggegevens van de projecteigenaar, alleen over het serviceaccount waarvoor de opdracht is bedoeld.

OAuth-gebruikersdelegatie

Voor ontwikkel- en interactief gebruik; de agent voert query's uit zoals u dat doet.

Voor ontwikkelworkflows waarbij je wilt dat elke BigQuery-query wordt uitgevoerd als jouw De agent ondersteunt OAuth-gebruikersdelegatie dankzij Google Identity (waardoor uw beveiliging op rijniveau, kolommaskering en auditlogboeken per gebruiker worden overgenomen): u meldt zich eenmalig aan met uw Google-account, de agent slaat een vernieuwingstoken op en elke keer dat u zich aanmeldt, wordt de agent automatisch vernieuwd. qs_run_query Het gesprek wordt aan uw account toegewezen in INFORMATIE_SCHEMA.TAKEN_PER_GEBRUIKER.

OAuth is ideaal voor een ontwikkelomgeving voor één persoon of wanneer je wilt dat je naam bij elke taak in het BigQuery-auditlogboek verschijnt. Voor team-/productie-implementaties is het serviceaccount-patroon aan te raden. — OAuth-vernieuwingstokens worden ingetrokken wanneer mensen vertrekken, en je wilt niet dat je AI-client begint te falen omdat iemand zijn wachtwoord heeft gewijzigd.

Patroon voor meerdere projecten

Elk project is een eigen verbindingsstuk; LLM selecteert op naam.

De meeste GCP-productieomgevingen scheiden deze van elkaar. productanalyse, staging-analyse, en data-team-sandbox in afzonderlijke projecten met afzonderlijke serviceaccounts en IAM-bindingen. Registreer elk project als een eigen Query Streams-connector met een eigen serviceaccount binnen het opgegeven bereik en geef de connectors een duidelijke naam.productanalyse, staging-analyse, zandbak), en de LLM kiest de juiste op basis van de vraag:

"Laat me de inkomsten uit productie zien" routes naar productanalyse; "Controleer eerst of mijn nieuwe query klopt in de sandbox." routes naar zandbakDe gebruiker hoeft de project-ID nooit te weten; de agent toont duidelijke, leesbare connectornamen. qs_list_connectors.

Voor datasets met meerdere regio's, regionale datasets of datasets met twee regio's geldt hetzelfde patroon: de BigQuery API regelt de routering naar regio's op de achtergrond. beveiliging op rijniveau en maskering op kolomniveau (BigQuery's IAM-gebaseerde RLS) vindt alle handhaving plaats op GCP-niveau — de agent verstuurt eenvoudigweg query's en krijgt terug wat uw serviceaccount mag zien.

De cloudverbinding is er één per agent, niet één per connector. De agent die verbinding maakt met Query Streams is identiek, ongeacht hoeveel GCP-projecten of datasets u verbindt — of u nu 1 BigQuery-project of 12 hebt geregistreerd, de agent onderhoudt exact één uitgaande versleutelde cloudverbinding en multiplexeert alle connectoren daaroverheen. Voeg morgen een Cloud SQL- of Stripe-connector toe en dezelfde cloudverbinding transporteert het nieuwe verkeer; er verandert niets aan de firewallzijde.
Nova AI

Is MCP niet jouw ding? Probeer dan Nova AI eens.

Sla de JSON-configuratie volledig over: Nova AI is geïntegreerd in het Query Streams-webportaal. en stelt dezelfde vragen in begrijpelijke taal over uw BigQuery-datasets — dezelfde agent, dezelfde alleen-lezen-beperking, dezelfde Schema Intelligence die GoogleSQL aandrijft, geen MCP-componenten nodig.

Maak kennis met Nova AI

Vereisten

Voordat je begint, zorg ervoor dat je het volgende hebt:

  1. Een gratis Query Streams-account bij mijn.querystreams.nl.
  2. De Query Streams Network Agent is geïnstalleerd op een machine die de BigQuery API kan bereiken (een kleine GCE VM in hetzelfde GCP-project is het meest voorkomende voorbeeld) — zie Download de Query Streams Agent..
  3. Een BigQuery-connector geconfigureerd voor de agent — zie de bestaande connector instellen Handleidingen voor de authenticatiestroom van het serviceaccount. De agent bewaart het sleutelbestand van het serviceaccount (of het OAuth-vernieuwingstoken); de AI-tool heeft hier nooit toegang toe.
  4. Elke AI-client die MCP ondersteunt. In deze handleiding laten we Cursor, Claude Desktop, ChatGPT en Grok zien; als je Windsurf, Zed, Continue, Cline, VS Code Copilot, Codex of Goose gebruikt, is het configuratieblok in principe hetzelfde.
  5. Vijf minuten.
Je hoeft de agent maar één keer in te stellen. Dezelfde agent die de Excel- en Google Sheets-add-ons van Query Streams, de webgebaseerde Query Builder en Nova AI aandrijft, wordt ook gebruikt voor MCP. Het toevoegen van MCP aan een bestaand Query Streams-account is slechts een kwestie van het genereren van een sleutel; de agent en de BigQuery-connector zijn al actief.
1

Genereer een MCP-sleutel

Van de /mcp Ga naar de pagina Query Streams en genereer een sleutel met de gewenste scopes.

2

Sleep het naar je AI-client.

Eén JSON-fragment voor Cursor, Claude, ChatGPT of Grok. Dezelfde sleutel overal.

3

Stel een vraag

"Wat waren onze 10 beste klanten op basis van hun levenslange waarde?" — de AI roept de juiste tools aan en u krijgt het antwoord.

Stap 1: Genereer een MCP-sleutel in Query Streams

Meld u aan bij Query Streams en open de MCP-pagina (of meld u eerst aan bij mijn.querystreams.nl en klik MCP (in de linkernavigatie). Klik Sleutel genererenGeef de sleutel een herkenbare naam (iets zoals cursor-laptop of claude-desktop), en kies de bereiken die je aan deze sleutel wilt toevoegen:

  • lezen — De AI kan connectoren doorzoeken en schema's lezen. Dat is voor al het andere nodig.
  • analyseren — De AI kan tabellen profileren en relaties ontdekken (voorbeeldwaarden, verdelingen, semantische typen). Optioneel, maar sterk aanbevolen voor BigQuery-werk, waar inzicht in de structuur/array-vorm en pseudo-kolommen van partities van belang is wanneer de LLM query's genereert die binnen een partitie-gesnoeide scan moeten blijven.
  • uitvoeren — De AI kan daadwerkelijk SQL-query's uitvoeren. Zonder dit kan de AI alleen schema-metadata lezen.

Voor een typische workflow zoals "Laat Claude mijn BigQuery-gegevens analyseren" zijn alle drie de scopes geschikt. Voor een sleutel die je aan een teamlid of een minder vertrouwde klant geeft, laat je deze scope weg. uitvoeren en laat ze alleen browsen. Je kunt elke sleutel op elk moment vanaf dezelfde pagina intrekken; de AI-client zal dit zien. MCP_KEY_REVOKED Bij de volgende oproep stopt het direct met werken. Er is geen vertraging in de signaaloverdracht.

Kopieer de sleutel nu — Query Streams toont deze eenmalig en slaat vervolgens alleen een hash op. Als u de sleutel kwijtraakt, genereer dan een nieuwe. De sleutel ziet er als volgt uit: qsmcp_ gevolgd door 48 willekeurige tekens, en dat is wat uw AI-client verzendt in de X-MCP-sleutel verzoekheader.

Stap 2: Voeg Query Streams MCP toe aan uw AI-client

De configuratie heeft dezelfde vorm voor elke MCP-compatibele client: een MCP-serververmelding die verwijst naar https://mcp.querystreams.com met uw sleutel in de X-MCP-sleutel Koptekst. Kies hieronder uw klant.

Cursor
Cursor ~/.cursor/mcp.json
// Bewerk ~/.cursor/mcp.json
{
  "mcpServers": {
    "querystreams": {
      "url": "https://mcp.querystreams.com",
      "kopteksten": {
        "X-MCP-sleutel": "qsmcp_PLAK_HIER_SLEUTEL_"
      }
    }
  }
}
Claude Desktop
Claude Desktop claude_desktop_config.json
// Instellingen → Ontwikkelaar → Configuratie bewerken
{
  "mcpServers": {
    "querystreams": {
      "url": "https://mcp.querystreams.com",
      "kopteksten": {
        "X-MCP-sleutel": "qsmcp_PLAK_HIER_SLEUTEL_"
      }
    }
  }
}
ChatGPT
ChatGPT Apps en connectoren
// Instellingen → Apps en connectors → MCP toevoegen
Server-URL  https://mcp.querystreams.com
Auth-header X-MCP-sleutel
Kopwaarde qsmcp_PLAK_HIER_SLEUTEL_

// Vereist een betaald ChatGPT-abonnement
// (Plus / Pro / Team / Enterprise).
Grok
Grok Externe MCP-tools
// Grok → Instellingen → Hulpmiddelen
{
  "mcp_servers": [{
    "naam": "querystreams",
    "url": "https://mcp.querystreams.com",
    "auth_header": "X-MCP-sleutel",
    "auth_value": "qsmcp_..."
  }]
}

Start uw AI-client opnieuw op. Bij de volgende opstart zal deze de acht hierboven vermelde Query Streams MCP-tools detecteren en in het toolpalet weergeven. In Cursor en Claude Desktop kunt u dit controleren door te typen “lijstconnectoren” — de AI zou moeten bellen qs_list_connectors en retourneer uw BigQuery-connector samen met alles wat u verder hebt geconfigureerd.

Stap 3: Stel de AI een BigQuery-vraag

Je hoeft geen SQL te schrijven, dat doet de AI. Je stelt een vraag, de AI kiest de juiste MCP-tool, de agent voert de query uit op je BigQuery-dataset en het antwoord krijg je terug als tekst plus tabellen. Drie voorbeeldvragen om mee te beginnen:

“Welke gebruikersgroep is het meest betrokken, op basis van de acquisitiebron?”
Betrokkenheid
De AI zal bellen qs_get_connector_schema om de tabellen met gebeurtenissen, gebruikers en sessies te ontdekken (en die op te halen) gebeurtenissen.gebeurtenisparameters is een ARRAY<STRUCT> nodig hebben ONGEWOND), Dan qs_run_query met een SELECT die samenvoegt evenementen naar gebruikers op gebruikers-ID, past een toe _PARTITIONTIME filter om de scan te beperken, groepeert op verwervingsbronEn het berekent het aantal actieve gebruikers en het gemiddelde aantal sessies per gebruiker. Je ziet de resultaatstabel direct, plus een schriftelijke interpretatie – welke kanalen bovengemiddeld presteren qua betrokkenheid en waar de 'long tail' zich bevindt – die de AI heeft afgeleid uit je BigQuery-gegevens.
"Toon de conversietrechter per verkeersbron over de afgelopen 90 dagen."
Conversie
De AI gebruikt GoogleSQL-idiomatische datumberekeningen om de partitie te begrenzen (e._PARTITIONTIME >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 90 DAY)), sluit zich aan evenementen door gebruikers, en berekent COUNTIF(event_name = 'page_view'), COUNTIF(event_name = 'add_to_cart'), en COUNTIF(event_name = 'purchase') Bij elke stap in de funnel worden de gebeurtenisnamen gebruikt die door de enum zijn gedetecteerd. Het resultaat is een stapsgewijze funnel per verkeersbron met absolute aantallen en conversiepercentages. De AI markeert doorgaans de stap met de grootste afvallers en de bron met de hoogste conversie, zonder dat u daar om hoeft te vragen.
Welke varianten van het experiment hebben een statistisch significant positief effect op het aantal aanmeldingen?
Experimenten
De AI gebruikt de STRUCT/ARRAY-annotaties van Schema Intelligence om UNNEST(event_params) en haal de experiment-ID en variant uit het geneste record, voeg deze samen met de experimenten De AI analyseert een dimensietabel en berekent per variant een aanmeldingspercentage met een Wilson-score betrouwbaarheidsinterval (of chi-kwadraat wanneer de gebruiker een betaald LLM-model voor statistieken gebruikt). Het resultaat is een gerichte lijst met varianten met absolute aanmeldingen, baseline-relatieve lift en p-waarden. Meestal markeert de AI de varianten die de controlevariant met 95% betrouwbaarheid overtreffen als scheepskandidaten en de rest als blijven draaien in plaats van valse positieven te signaleren.

De eerste keer dat de AI een tool aanroept, kan er in uw client een bevestigingsmelding verschijnen waarin u wordt gevraagd de tooloproep goed te keuren. Dit is de standaard toestemmingsprocedure van MCP en geen extra functie van Query Streams. Keur de oproep eenmaal goed en de AI kan de rest van het gesprek zonder problemen voortzetten. U kunt de toestemming op elk gewenst moment opnieuw bekijken in de instellingen van uw client.

Eerlijke factuurmelding: MCP-gebruik wordt gefactureerd op basis van niet-gecomprimeerde bytes.

De Excel-add-in van Query Streams, de Google Sheets-add-on, de webquerybuilder en Nova AI draaien allemaal via onze gecomprimeerde cloudverbinding — wij meten en factureren. gecomprimeerde bytes tegen uw gegevensdomein. Het MCP-transport (Streamable HTTP volgens de officiële MCP-specificatie) ondersteunt geen betrouwbare end-to-end compressie over elke client en tussenliggende proxy, daarom meten en factureren we. uncompressedBytes voor MCP-verkeer.

  • Wat dit betekent: Een BigQuery-aggregatiequery van 5 MB kost ongeveer 5 MB van uw data-resource wanneer deze wordt opgehaald via MCP, vergeleken met ongeveer 700 KB - 1,2 MB via Excel/Sheets/Nova/de Query Builder. BigQuery-data met STRUCT- en herhaalde-waardekolommen comprimeert ongeveer 5-8 keer via LZ4 — wat bijzonder efficiënt is voor analyse-output waarbij veel rijen dezelfde enum-waarden, datums of campagne-ID's delen.
  • De scankosten van BigQuery zijn onafhankelijk. Query Streams meet bytes teruggekeerd naar uw AI-client (datadomein), niet naar bytes. gescand in het datawarehouse. Dus als uw LLM een query schrijft die 100 GB aan data scant en 10 KB aan aggregaten retourneert, betaalt u 100 GB aan Google voor de scan plus 10 KB aan Query Streams. De partition-pruning hints van Schema Intelligence helpen de LLM beide aantallen te minimaliseren — de SQL-diff hierboven scant 6 GB in plaats van 5 TB voor dezelfde vraag.
  • Wat dit níét is: Een toeslag of een straf voor het gebruik van MCP. We geven de daadwerkelijk verzonden bytes door. De andere clients zijn goedkoper omdat compressie betrouwbaar werkt op die transportprotocollen; we straffen je niet voor de protocolkeuze, maar we moeten wel transparant zijn over de kostenstructuur.
  • Wat u kunt doen: Voor zeer grote, terugkerende query's (bijvoorbeeld exporten van meer dan 100.000 rijen) is de aanpak met Excel/Sheets/Nova de beste keuze. Voor interactieve AI-toolaanroepen (de typische BigQuery-respons van 100-5.000 rijen die in een LLM-context past) is MCP de juiste keuze en het kostenverschil is slechts een paar cent.

Veelgestelde vragen

Moet ik poorten openen of een VPN-verbinding gebruiken om dit te kunnen gebruiken? +
Geen inkomende regels, port-forwarding, NAT punchthrough of VPN. De netwerkagent maakt één uitgaande TLS-verbinding (poort 443) en uw AI-client bereikt https://mcp.querystreams.com vanaf het openbare internet — als uitgaande HTTPS werkt op de agenthost, werkt MCP. Zie hoe de verbinding die alleen uitgaand verkeer toelaat werkt →
Welke AI-tools kan ik gebruiken met Query Streams MCP? +
Elke client die het open Model Context Protocol ondersteunt, zoals Claude Desktop, Claude Code, Cursor, ChatGPT (betaald), Grok, Gemini CLI, Windsurf, Zed en meer dan 500 andere, is geschikt. Gebruik je eigen AI-tool; je hoeft niet over te stappen. Volledige lijst met ondersteunde AI-clients →
Kan ik een MCP-sleutel intrekken? +
Ja, drie onafhankelijke noodstopknoppen (per toets vanaf de /mcp pagina, per organisatie via planinstellingen en platformniveau), en geen van deze opties vereist een databasewachtwoordrotatie of een herstart van de agent. Meer informatie over de beveiliging van MCP-sleutels →
Hoe worden de MCP-kosten in rekening gebracht voor mijn datadomein? +
MCP-uitvoeringsaanroepen worden afgetrokken van hetzelfde databudget dat al wordt gebruikt voor uw Excel-, Google Sheets-, webquerybuilder- en Nova AI-gebruik — één verbruiksbudget voor alle toegangsmethoden. De afmetingen die voor MCP worden gemeten, verschillen. De andere klanten maken gebruik van onze gecomprimeerde cloudverbinding (wij brengen hiervoor kosten in rekening). gecomprimeerde bytes); MCP werkt via Streamable HTTP, dat geen betrouwbare end-to-end compressie biedt via elke client en proxy, daarom brengen we kosten in rekening uncompressedBytesEen geaggregeerd resultaat van 5 MB uit BigQuery dat naar Excel wordt teruggestuurd, kost doorgaans ongeveer 700 KB – 1,2 MB van uw data; hetzelfde resultaat van 5 MB dat naar Cursor via MCP wordt teruggestuurd, kost ongeveer 5 MB. De scankosten van BigQuery zijn onafhankelijk. — Dat is een eigen meetwaarde van Google (TB gescand per query) en wordt apart bijgehouden van de geretourneerde data-realm bytes. De partition-pruning hints van Schema Intelligence helpen de LLM beide aantallen te minimaliseren. We zijn hier transparant over, omdat we liever hebben dat u het van tevoren weet dan dat u aan het einde van de factureringscyclus voor verrassingen komt te staan.
Werkt Query Streams MCP met BigQuery-slotreserveringen, prijsstelling op aanvraag, BigQuery Sandbox (gratis tier) en BigQuery Omni (cloudoverschrijdend)? +
Ja, alle BigQuery-prijsmodellen en -edities worden ondersteund. De Network Agent gebruikt de standaard BigQuery Storage Read API en Query API via de inloggegevens van uw serviceaccount (of OAuth-gebruikersdelegatie). Specifiek ondersteund: prijs op aanvraag (je betaalt Google per gescande TB), tijdslotreserveringen (Standaard-/Enterprise-/Enterprise Plus-edities met gereserveerde slots), vaste prijs (nalatenschap), BigQuery-sandbox (de gratis versie met 1 TB/maand aan querygegevens en 10 GB opslagruimte werkt precies hetzelfde als de betaalde versie — ideaal om te evalueren), en BigQuery Omni (Het uitvoeren van query's op AWS S3 of Azure Blob vanuit een BigQuery-frontend, ook wel BigLake/Omni genoemd). Bij Omni vindt de routering tussen clouds volledig aan de GCP-kant plaats; de agent dient dezelfde SQL-query in en BigQuery routeert de scan naar de externe regio. De kosten voor het reserveren van slots en de kosten voor het scannen van bytes op aanvraag worden bijgehouden op GCP., volledig los van uw dataverbruik in de Query Streams-omgeving. Tip voor kostengevoelige werkzaamheden: Koppel een slotreservering specifiek aan uw AI-/ad-hoc-workloads, zodat onbeperkte LLM-gegenereerde query's uw productiereservering niet kunnen overbelasten.
Wat is het verschil tussen dit en het zelf draaien van een open-source BigQuery MCP-server? +
Een directe BigQuery MCP-server (er bestaan communityprojecten op GitHub) is één MCP per gegevensbron. Om Claude te laten lezen uit je BigQuery + Google Search Console + je Stripe-account + je Snowflake-datawarehouse, heb je vier MCP-servers nodig die afzonderlijk geconfigureerd zijn in elke AI-client, elk met zijn eigen inloggegevens, elk met zijn eigen scope-model en elk met zijn eigen auditlogboek. Query Streams MCP is één sleutel die toegang geeft tot elke connector die aan je account is gekoppeld. Je krijgt er ook Schema Intelligence bij (wat uniek nuttig is voor BigQuery's STRUCT/ARRAY-traversal en partition-pruning), handhaving van alleen-lezen op agentniveau, snelheidslimieten per sleutel en een auditlogboek. gebeurtenislogboekenen dezelfde data-realm factureringspipeline die u al gebruikt — geen van beide biedt een direct BigQuery MCP.
Wat gebeurt er als de AI probeert gegevens te schrijven of te verwijderen? +
Het wordt door de agent afgewezen voordat de gegevensbron de SQL-query ziet. Elke qs_run_query Het gesprek wordt verwerkt door een hardgecodeerde, alleen-lezen validator die alleen dit toestaat. SELECT, MET, en UITLEGGEN verklaringen; al het andere retourneert ALLEEN-LEZEN_SCHENDING en bereikt BigQuery nooit. De validator draait in het agentproces op uw netwerk (of uw GCE VM), niet in de cloud, dus een gecompromitteerde cloudomgeving zou deze niet kunnen omzeilen. (Extra beveiliging: koppel uw serviceaccount aan de scoped service account.) rollen/bigquery.dataViewer + rollen/bigquery.jobUser alleen — nooit dataEditor of dataOwnerDe validator van de agent is onafhankelijk van de IAM-rechten die u in GCP hebt geconfigureerd.
Kan ik zien wat de AI precies heeft gevraagd? +
Ja. Elke aanroep van een MCP-tool schrijft een regel naar gebeurtenislogboeken met de organisatie, gebruiker, sleutel, bereik, latentie en resultaatcode. De organisatiebeheerder kan met één query antwoord geven op de vraag: "Wie heeft MCP vorige week gebruikt, welke connector en wat hebben ze gevraagd?" Merk op dat we de gegevens loggen. naam en metadata van het hulpmiddelNiet de SQL-tekst of de geretourneerde rijen — die gaan via de cloudverbinding en komen nooit in cloudlogboeken terecht. Als u een volledige SQL-audit wilt, biedt BigQuery u dat al gratis: query INFORMATIE_SCHEMA.TAKEN_PER_GEBRUIKER Voor de SQL-tekst van elke taak die uw serviceaccount heeft ingediend, of om BigQuery-auditlogboeken naar Cloud Logging/een aparte BigQuery-dataset te streamen voor langdurige bewaring.
Moet ik Schema Intelligence uitvoeren om Query Streams MCP te kunnen gebruiken? +
Nee - Schema Intelligence is optioneel per (connector, dataset) paarEn MCP werkt prima zonder. De AI ontvangt het kale schema (typen, primaire sleutels, formele externe sleutels, indexen – of voor BigQuery, typen, partitionering en clustering) en schrijft eenvoudige query's. Met SI ingeschakeld, krijgt de AI zes extra lagen met gecureerde metadata: (1) Door AI samengestelde beschrijvingen van elk project, elke dataset, tabel en kolom; (2) tabelclassificaties (FACT voor gebeurtenisstromen en sessies, DIM voor gebruikers en dimensies, LOOKUP voor kleine codetoewijzingen) plus een label voor het bedrijfsdomein (productanalyse, marketing, financiën, ondersteuning en meer); (3) een semantisch type op elke kolom (currency_usd, email, date, status_code, percentage, identifier, url, struct_array, partition_column en andere) dat zorgt voor dialectcorrecte GoogleSQL-generatie, inclusief UNNEST-patronen en partitiefilters; (4) Gebruik voorbeeldwaarden uit uw echte gegevens, zodat het LLM patronen herkent die geen enkel schema kan weergeven, inclusief STRUCT-sleutelnamen binnen ARRAY-kolommen; (5) Enum-detectie met volledige waardeverdelingen voor kolommen met een lage kardinaliteit (event_name, acquisition_source, plan_tier); en (6) Door AI ontdekte foreign keys op basis van overlappingen in gegevens tussen tabellen (BigQuery heeft geen FK-beperkingen, dus dit is uniek waardevol), die aan het licht zijn gekomen via qs_get_relationshipsZonder SI bevat elke schema-tool-respons ook een si_aanbeveling Een lijst met precies wat er ontbreekt voor het gesprek — de AI kan dit lezen en voorstellen om SI midden in het gesprek te activeren via qs_request_si_analysisDe uitvoeringsduur schaalt mee met het aantal tabellen: een kleine database met minder dan 100 tabellen is in ongeveer 10 minuten klaar; een typische middelgrote database (een paar honderd tabellen) is in 15-25 minuten klaar; een grote bedrijfsdatabase met meer dan 1500 tabellen kan 45-60 minuten nodig hebben voor een volledige scan. SI wordt uitgevoerd via uw Network Agent op uw BigQuery-gegevens (nooit in de QS-cloud), schrijft nooit naar uw datasets, wijzigt nooit uw schema, gebruikt hints voor het opschonen van partities om de scanomvang beperkt te houden en vernieuwt incrementeel wanneer uw schema verandert. Hierdoor zijn volgende uitvoeringen na het toevoegen of wijzigen van tabellen veel sneller dan de eerste. Het uiteindelijke effect: met SI ingeschakeld schrijft uw AI-client veel vaker correcte GoogleSQL bij de eerste poging dan bij een willekeurige "MCP voor X"-server die de LLM gewoon doorgeeft. INFORMATIE_SCHEMA.
Wat als ik later nog een connector toevoeg, zoals Stripe of PostgreSQL? +
Aan de clientzijde verandert er niets — dezelfde sleutel bereikt de nieuwe connector zodra de agent deze koppelt.qs_list_connectors (wordt automatisch opgepakt). Eén configuratieblok koopt je hele account, zowel het huidige als het toekomstige. Waarom één sleutel alle connectoren dekt →
Moet ik MCP instellen om met mijn data te kunnen chatten? +
Nee - Nova AI is geïntegreerd in het Query Streams-portaal. Het werkt met elke connector (inclusief BigQuery) zonder dat er MCP-instellingen of configuratiebestanden nodig zijn. Gebruik Nova om met uw data te communiceren binnen Query Streams; gebruik MCP wanneer u wilt dat uw eigen AI-client (Claude, Cursor, ChatGPT, …) dezelfde data kan benaderen — dezelfde agent, dezelfde connectors, dezelfde Schema Intelligence eronder. Leer meer over Nova AI →
Hoe authenticeert Query Streams MCP zich bij mijn GCP-project en datasets, en hoe kan ik de toegang beperken tot specifieke datasets? +
Twee authenticatiepatronen, beide van productiekwaliteit. Serviceaccount (aanbevolen): maak een scoped SA aan in je GCP-project (bijv. [email protected]), geef het toe rollen/bigquery.dataViewer op de specifieke datasets je wilt dat het zichtbaar is (NIET projectbreed) plus rollen/bigquery.jobUser op het project zodat het querytaken kan indienen. Download de JSON-sleutel en registreer deze in de geheimenopslag van de agent. De agent bewaart nooit de inloggegevens van de projecteigenaar, alleen die van het serviceaccount binnen het toegewezen bereik. OAuth-gebruikersdelegatie: Een alternatief voor ontwikkel-/interactief gebruik, waarbij u wilt dat elke query wordt uitgevoerd onder uw Google-identiteit (zodat uw beveiliging op rijniveau en auditlogboeken per gebruiker worden overgenomen). Gebruik SA in productie. Patroon voor meerdere projecten: registreer elk project (bijv. productanalyse, staging-analyse, data-team-sandbox) als een eigen connector met een eigen afgebakende SA — de LLM kiest op naam, zodat een Cursor-gebruiker kan vragen "Laat me de inkomsten uit productie zien" zonder dat de project-ID bekend hoeft te zijn. Voor datasets met meerdere regio's, regionale datasets of datasets met twee regio's werkt de agent op dezelfde manier; de BigQuery API regelt de routering naar regio's op de achtergrond. beveiliging op rijniveau en maskering op kolomniveau (BigQuery's IAM-gebaseerde RLS) vindt alle handhaving plaats op GCP-niveau — de agent dient eenvoudigweg query's in en ontvangt terug wat uw serviceaccount mag zien. De cloudverbinding van de agent naar Query Streams is er slechts één per agent, ongeacht hoeveel GCP-projecten of datasets u verbindt.

Aan de slag

Verbind uw AI-tool in vijf minuten met uw BigQuery-gegevens.

Met één MCP-sleutel hebt u toegang tot BigQuery, elke andere database en elke API-connector in uw Query Streams-account, inclusief een volledig auditlogboek, snelheidslimieten per sleutel en zonder dat u firewallinstellingen hoeft aan te passen. Claude, Cursor, ChatGPT en Grok werken allemaal direct.

Gerelateerde handleidingen: Download de Query Streams Agent. | Databaseconnector instellen | Alle MCP Server-handleidingen | Nova AI tekst-naar-SQL

Categorie: MCP-server

Tags: mcp, claude, cursor, bigquery, google-cloud, gcp, data-warehouse, googlesql, service-account-auth

Metabeschrijving: Verbind Google BigQuery met Claude of Cursor via Query Streams MCP. Authenticatie via serviceaccount, compatibel met GoogleSQL, installatie in 5 minuten.

Geüpdatet op 16 juni 2026

Mogelijk gemaakt door BetterDocs