查看类别

如何通过 MCP 将 BigQuery 连接到 Claude/Cursor(BigQuery MCP 服务器设置)

阅读时间:30分钟

MCP 服务器 大查询

使用 BigQuery 查询 克劳德或光标 通过 MCP。

使用一个 MCP 密钥将 Google BigQuery(您的 GCP 项目、数据集、服务帐号)连接到 Claude 或 Cursor。Schema Intelligence 可处理 GoogleSQL 惯用法(结构, 大批, 分区时间,反引号限定 `project.dataset.table`因此,人工智能第一次尝试就编写出了有效的 BigQuery SQL。

没有防火墙漏洞 一把钥匙,连接所有连接器 实时数据,无缓存延迟 自带人工智能工具

Query Streams 是一个安全的实时数据集成平台,它通过一个 MCP 密钥将您帐户中的每个数据库和 SaaS API 导入到 Claude、Cursor、ChatGPT 和 Grok 中,而无需更改防火墙。 本指南将详细介绍如何配置 BigQuery MCP 连接器,以便您的 AI 工具能够回答有关事件、用户、会话、归因、转化漏斗以及任何其他 BigQuery 数据(分区扫描、STRUCT/ARRAY 遍历、Google SQL 窗口函数、即席报告)的简单英语问题,而无需您从 BigQuery 控制台复制粘贴 CSV 导出文件。 bq CLI,或 Looker Studio。 了解更多信息,请访问 QueryStreams.com免费注册 开始向您的 AI 工具提出真正的 BigQuery 问题。

MCP 为 BigQuery 提供了哪些查询流?

开源领域中其他“BigQuery MCP”服务器将AI工具直接连接到BigQuery服务帐户密钥文件。这种方法虽然可行,但会将长期有效的JSON凭据推送到AI客户端的配置中,并将AI工具的适用范围限制在单个GCP项目中,而且无法提供AI实际查询内容的审计跟踪。Query Streams MCP服务器则解决了更广泛的问题:一个密钥,所有连接器,完整的审计跟踪,并且AI工具永远不会持有您的服务帐户凭据。

零入站防火墙漏洞

网络代理会打开一条指向查询流的加密出站云链路。您的 AI 客户端直接连接到云端,而非您的 GCP 项目。您的 AI 客户端配置中无需长期存在的服务帐户 JSON,BigQuery 上无需 IP 允许列表,无需 VPN,BigQuery API 上也无需额外的 IAM 绑定。

一把钥匙,连接所有连接器

同一个 MCP 密钥可用于您帐户连接的所有数据库和 SaaS API。即使明天添加了 Stripe 或 PostgreSQL 连接器,AI 工具也能在 BigQuery 数据集旁边自动识别它,无需重新输入密钥。

内置模式智能

AI 可以看到 BigQuery 中每个列的 AI 整理描述、语义类型、枚举值列表、STRUCT/ARRAY 注解以及发现的外键——而不仅仅是裸列。 信息架构 输出结果。即使是对于列名晦涩难懂、记录字段嵌套很深的旧版 BigQuery 数据集,它也能一次性生成准确的 Google SQL 语句。

代理端强制执行只读模式

即使是产生幻觉的法学硕士也无法颁发 删除, 更新,或 截短 通过查询流 MCP。网络代理会拒绝任何非此类型的请求。 选择, ,或 解释 在 BigQuery 看到 SQL 之前——即使您的服务帐户拥有写入权限。

单键速率限制

默认每分钟 60 个请求和 10 次执行调用,每个键可单独配置。失控的 AI 工具调用循环会占用令牌桶,而不是占用您的 BigQuery 存储槽位或每月按需扫描字节数的费用。

如何在不打开防火墙端口的情况下工作

Query Streams 网络代理只需在任何可以访问 BigQuery API 的机器(笔记本电脑、本地服务器或 GCP 项目中的小型 GCE VM)上安装一次,即可拨打一个到云端的出站 TLS 链接——不会暴露任何入站流量,AI 工具也永远不会看到您的服务帐户密钥文件或 GCP 项目 ID。 仅出站连接的工作原理 →

AI客户端

光标,克劳德,
ChatGPT、Grok

QS MCP 服务器

Streamable HTTP
X-MCP-密钥认证

网络代理

在您的网络上
云链路输出

BigQuery(GCP 项目/数据集)

服务帐户
由代理人持有

无需入站端口——代理程序拨出电话,而不是反过来。

你给 Cursor 或 Claude 的 MCP 键是限定范围的( / 分析 / 执行),可随时撤销,且每个密钥的使用频率有限制。该人工智能工具调用这些 MCP 工具来完成其工作:

querystreams-mcp · 工具目录
qs_list_organizations
返回与调用键绑定的组织。
qs_list_agents
列出网络代理和在线状态。
qs_list_connectors
列出数据连接器(每个数据库服务器或 API 一个条目)。
qs_get_connector_schema
返回 AI 可以查询的 BigQuery 数据集、表和列(包括 STRUCT / ARRAY 字段),并在可用时进行 Schema Intelligence 增强。
qs_profile_table分析
按需提供样本值、分布、枚举检测、语义类型。
qs_list_saved_queries
团队信赖的预置参数化 SQL 模板。人工智能无需查看 SQL 代码即可运行这些模板。
qs_run_saved_query执行
执行已保存的查询 模式键 可选择性地覆盖参数。
qs_run_query执行
针对连接器执行 SELECT 查询。只读验证器在代理端运行,在 BigQuery 读取 SQL 语句之前执行。

为什么模式智能使查询流 MCP 与众不同

开源领域中大多数“MCP for BigQuery”服务器都会向你的AI工具提供相同的功能。 信息架构 BigQuery 把列名、Google SQL 类型,或许还有聚簇键交给一个陌生人。LLM 只能靠猜测来判断。 event_name = 'click_4' 意思是,什么 up_attr_4 商店,或者是否 events.event_params 是单个结构还是重复结构 数组<STRUCT> 需要 取消嵌套() 遍历。这就是为什么大多数LLM(语言学习管理专家)针对裸BigQuery模式编写的第一个SQL语句要么出错(忘记为带连字符的项目ID添加反引号),要么扫描整个5TB的数据。 活动 因为没有桌子 分区时间 应用过滤器的原因并非 LLM 不好,而是因为它没有正确所需的数据。

查询流 MCP 返回相同的模式,但添加了我们所说的内容。 模式智能(SI) — 通过对您的数据运行分析查询而生成的由人工智能整理的元数据 真实 在 AI 客户端请求之前,BigQuery 数据就已经被获取。当在连接器和数据集上启用 SI 时,AI 调用的每个模式工具都会获取到这些数据。qs_get_connector_schema, qs_get_table_schema, qs_profile_table, qs_get_relationships它返回原始模式以及六层精心整理的知识。LLM 不再进行猜测,也不再意外扫描 TB 级的数据。

为了更具体地说明这一点,以下是人工智能客户端从单个请求中获得的返回结果。 qs_get_table_schema 针对典型的 BigQuery 网络分析仓库进行调用 (活动, 用户, 会话, 归属, 实验, 转换事件)——先不使用模式智能,然后再使用模式智能。

缺乏模式智能 数据源:捕获的模式
// LLM 所看到的 == 表格:`analytics.events` == – 事件名称 字符串非空 - 用户身份 细绳 – session_id 细绳 – 事件时间戳 时间戳非空 – 事件参数 数组<STRUCT> – 用户属性 数组<STRUCT> - 收入 浮点数64 按以下方式分区:_PARTITIONTIME(日) == 表格:`analytics.users` == – 用户伪 ID 细绳 – 收购来源 细绳 – 首次出现 时间戳 == 表格:`analytics.sessions` == – session_id 细绳 - 用户身份 细绳 – duration_sec INT64 == 表格:`analytics.attributions` == – 用户 ID 细绳 - 渠道 细绳 – touch_ts 时间戳 外键: (未声明——BQ 没有外键约束) si_recommendation: 状态: “not_run” 本次调用缺少以下信息: – STRUCT / ARRAY 字段模式(event_params 键) – 跨表 user_id 重叠分析 – 每列样本值 + 枚举检测 – 表和列描述 – 分区/聚类提示 注意: “仅类型,无语义上下文”
利用模式智能 数据源:模式智能
// LLM 所看到的 == 表格:`analytics.events` [FACT,域:产品分析] == “用户事件流;每次点击/浏览/购买记录一行。按天划分。” – 事件名称 细绳 状态码(枚举) 页面浏览量(61%)| 点击量(22%)| 加入购物车 (9%) | 购买 (5%) | 注册 (3%) - 用户身份 细绳 标识符(高基数) FK -> users.user_pseudo_id(重叠率 97%,置信度 0.96) – _分区时间 时间戳 日期(分区伪列) 筛选此条件以限制扫描成本 – 事件参数 数组<STRUCT> struct_array(需要 UNNEST) 键:page_url、value、item_id、source – 用户属性 数组<STRUCT> struct_array(需要 UNNEST) 键:plan_tier,signup_cohort - 收入 浮点数64 美元 范围:0.00 – 4,820.00 · 平均值 41.30 == 表格:`analytics.users` [DIM,域:客户] == – 用户伪 ID 细绳 标识符(高基数) – 收购来源 细绳 通道(枚举) 有机产品 (41%) | CPC (28%) | 直接产品 (16%) | 推荐 (10%) | 电子邮件 (5%) == 表格:`analytics.sessions` [FACT,域:产品分析] == – duration_sec INT64 持续时间_秒

模式智能新增的六个层

每一层都针对 LLM 原本需要猜测的一类问题——选择加入的 SI 分析过程针对您的 BigQuery 数据运行,而无需更改您的架构,使用分区修剪提示,使扫描范围保持在限定范围内。 模式智能新增了哪些功能以及如何保持最新状态 →

人工智能生成的描述

每个项目、数据集、表格和列都使用简洁明了的英语描述——只需生成一次,即可在架构更改时自动更新。基于置信度评分;用户撰写的描述始终优先。

事件:“用户事件流;一行”
按点击/浏览/购买次数计费。”

表格分类

每个表都标记为 FACT(事件流、会话)、DIM(用户、维度)或 LOOKUP(小型代码映射),以及一个业务领域——产品分析、市场营销、财务、支持等等。

事件 [FACT,域:产品分析]
用户 [DIM,域:客户]

每列语义类型

十八种类型——currency_usd、email、date、status_code、percentage、ranking_position、identifier、url、struct_array、partition_column 等等。人工智能会针对每种类型生成符合方言规范的 GoogleSQL 代码,包括分区过滤器和 UNNEST 模式。

收入:货币_美元
_PARTITIONTIME:分区列

来自真实数据的样本值

随机行出现在 LLM 中,以便识别任何模式都无法显示的模式——数组列中的 STRUCT 键名、编码值、缩写样式以及嵌套字段的实际形状。

event_params 键:page_url、value、
项目 ID、来源、活动

基于分布的枚举检测

低基数列(最多只有 50 个不同值,且最多 5% 的行是唯一值)映射到其包含行数的完整值列表。人工智能不会猜测事件类型或渠道的大小写或拼写。

收购来源:自然增长(41%)
| 每次点击费用 (28%) | 直接访问费用 (16%) | …

隐式外键发现

跨表数据重叠分析会发现 BigQuery 无法强制执行 DDL 约束的连接(BQ 没有外键)。这些连接及其置信度分数会被存储,并由……返回。 qs_get_relationships.

events.user_id -> users.user_pseudo_id
(重叠率 97%,置信度 0.96)

相同的提示符,不同的 SQL

证据就在人工智能工具实际生成的 SQL 语句中。相同的 Cursor 会话,相同的 Claude 模型,相同的提示符—— “按用户获取渠道划分,我们用户参与度最高的群体是哪些?他们的转化率是多少?” 如果没有模式智能,LLM 就只能靠猜测。有了模式智能,LLM 就能在第一次尝试时就写入有效的 Google SQL,并自动应用分区过滤器,从而确保扫描范围在限定范围内。

缺乏模式智能
— LLM 对裸模式的首次尝试: 选择 收购来源 COUNT(区分 用户身份) AS 用户 分析-生产.网络.事件 地点 event_params.value > 0 GROUP BY 收购来源 语法错误:“analytics-prod”中含有连字符, 必须使用反引号限定 `analytics-prod…` acquisition_source 位于用户端,而非事件端。 event_params 是一个 ARRAY<STRUCT> — 需要进行 UNNEST 嵌套 不使用 _PARTITIONTIME 筛选器 — 扫描 5 TB(25 美元) 不计算转换率 无互动筛选条件——统计所有访客
利用模式智能
— LLM首次尝试启用SI: 选择 u.acquisition_source, COUNT(区分 e.user_id) AS 参与用户 安全分割( COUNTIF(e.event_name = '购买'), COUNT(区分 e.user_id) ) AS 转化率 `analytics-prod.web.events` e 连接 `analytics-prod.web.users` u 关于 e.user_id = u.user_pseudo_id 地点 e._PARTITIONTIME >= 时间戳子程序( 当前时间戳(), 间隔 30 ) GROUP BY u.acquisition_source ORDER BY 转化率 DESC 5 行。一次成功,扫描量 = 6 GB。 反引号用于连字符项目 _PARTITIONTIME 扫描限制为持续 30 天 FK 发现路由 user_id -> user_pseudo_id 枚举类型 event_name 中出现了 'purchase' 使用 GoogleSQL TIMESTAMP_SUB / SAFE_DIVIDE
不想运行模式智能? MCP 仍然有效——模式工具返回裸元数据(类型、主键、形式外键、索引),并且每个降级响应都包含一个 si_推荐 阻止人工智能接收它缺失的信息,包括一个可在对话过程中通过一次通话启用 SI 的选项。 qs_request_si_analysis. 模式智能的运行方式及所需时间 →

将 Query Streams MCP 验证到您的 GCP 项目和数据集

BigQuery 本身就是一个云平台——不存在“BigQuery on RDS”这种部署方式。BigQuery 的云托管问题实际上是…… 网络代理如何向您的 GCP 项目进行身份验证,以及如何将其访问权限限定为仅针对特定数据集? 三种模式涵盖 95% 的部署:

服务帐户身份验证 受到推崇的

生产级、最小权限、数据集范围。

在您的 GCP 项目中创建一个范围服务帐户(例如 [email protected]),然后授予它 角色/bigquery.dataViewer您希望公开的特定数据集 (非项目范围内) roles/bigquery.jobUser 在项目中,它可以提交查询作业。下载 JSON 密钥文件,将其注册到代理的密钥存储中,代理将使用它来调用 BigQuery 查询 API 和存储读取 API。

为什么采用数据集范围而不是项目范围:项目层面 数据查看器 绑定会暴露所有数据集,包括您可能不希望LLM看到的数据集(例如PII库、财务账簿)。按数据集绑定可以有效缩小影响范围。 代理永远不会持有项目所有者凭证——只会持有范围服务帐户。

OAuth 用户委托

用于开发和交互式使用;代理会以您的身份运行查询。

对于开发工作流程,如果您希望每个 BigQuery 查询都以如下方式运行: 你的 使用 Google 身份(因此它会继承您的行级安全性、列掩码和每个用户的审计跟踪),代理支持 OAuth 用户委托:您只需使用 Google 帐户登录一次,代理就会存储一个刷新令牌,并且每次 qs_run_query 此次通话归属于您的帐户 信息架构.用户作业.

OAuth 非常适合单人开发环境,或者当您希望 BigQuery 审计日志在每个作业中显示您的姓名时。 对于团队/生产环境部署,建议采用服务帐户模式 — 当用户离开时,OAuth 刷新令牌会被撤销,您肯定不希望因为有人更改了密码而导致您的 AI 客户端开始出现故障。

多项目模式

每个项目都有自己的连接器;LLM 按名称进行选择。

大多数生产环境的 GCP 设置都是分开的。 产品分析, 阶段分析, 和 数据团队沙箱 将每个项目分成不同的项目,每个项目使用不同的服务帐户和 IAM 绑定。将每个项目注册为自己的 Query Streams 连接器,并使用自己的作用域服务帐户,清晰地命名连接器(产品分析, 阶段分析, 沙盒),而LLM会根据问题选择正确的答案:

“给我看看产品带来的收入” 前往 产品分析; “先在沙箱环境中对我的新查询进行健全性检查” 前往 沙盒用户无需知道项目 ID——代理程序会以清晰易懂的方式显示连接器名称。 qs_list_connectors.

对于多区域/区域/双区域数据集,同样的模式也适用——BigQuery API 会在底层处理区域路由。 行级安全性和列级掩码 (BigQuery 基于 IAM 的 RLS),所有强制执行都在 GCP 上进行——代理只需提交查询并获取您的服务帐户被允许查看的内容。

云链接是每个代理一个链接,而不是每个连接器一个链接。 无论您连接多少个 GCP 项目或数据集,向 Query Streams 发送出站请求的代理程序都是相同的——无论您注册了 1 个 BigQuery 项目还是 12 个,代理程序都维护着一条固定的出站加密云链路,并通过该链路复用所有连接器。明天添加 Cloud SQL 或 Stripe 连接器,新的流量仍然由同一条云链路承载;防火墙端没有任何变化。
新星人工智能

MCP不适合您?不妨试试Nova AI。

完全跳过 JSON 配置: Nova AI 已集成到 Query Streams 网络门户中。 并针对您的 BigQuery 数据集提出相同的纯英文问题——相同的代理、相同的只读强制执行、相同的 Schema Intelligence 为 GoogleSQL 提供支持,没有 MCP 管道。

认识 Nova AI

先决条件

开始之前,请确保您已准备好:

  1. 免费注册 Query Streams 帐户 my.querystreams.com.
  2. Query Streams 网络代理安装在可以访问 BigQuery API 的机器上(最常见的模式是在同一 GCP 项目中的小型 GCE 虚拟机上)——参见 下载查询流代理.
  3. 针对代理配置的 BigQuery 连接器——请参阅现有 连接器设置 服务帐户身份验证流程指南。代理持有服务帐户密钥文件(或 OAuth 刷新令牌);AI 工具绝不会触及这些文件。
  4. 任何支持 MCP 的 AI 客户端。本指南将以 Cursor、Claude Desktop、ChatGPT 和 Grok 为例;如果您使用 Windsurf、Zed、Continue、Cline、VS Code Copilot、Codex 或 Goose,配置块基本相同。
  5. 五分钟。
代理只需设置一次。 Query Streams 的 Excel 和 Google Sheets 插件、Web Query Builder 以及 Nova AI 均由同一代理提供支持,该代理也为 MCP 提供服务。将 MCP 添加到现有的 Query Streams 帐户只需生成一个密钥——代理和 BigQuery 连接器已在运行。
1

生成 MCP 密钥

/mcp 在 Query Streams 页面中,生成一个具有所需范围的密钥。

2

将其放入您的 AI 客户端

一个JSON代码片段即可用于Cursor、Claude、ChatGPT或Grok。所有地方都使用相同的键。

3

提问

“我们终身价值排名前 10 的客户有哪些?”——人工智能调用合适的工具,你就能得到答案。

步骤 1:在查询流中生成 MCP 密钥

登录查询流并打开 MCP页面 (或先登录) my.querystreams.com 并点击 MCP 在左侧导航栏中)。点击 生成密钥给密钥起一个易于识别的名称(例如“密钥”)。 光标-笔记本电脑克劳德桌面),然后选择您希望此密钥具有的作用域:

  • —人工智能可以浏览连接器并读取模式。其他所有操作都需要用到它。
  • 分析 — AI 可以分析表结构并发现关系(样本值、分布、语义类型)。对于 BigQuery 工作而言,此功能虽非必需,但强烈建议使用。因为当 LLM 生成需要在分区修剪扫描范围内执行的查询时,理解 STRUCT/ARRAY 结构和分区伪列至关重要。
  • 执行 — 该人工智能实际上可以运行 SQL。否则,它只能读取模式元数据,而不能进行其他操作。

对于典型的“让 Claude 分析我的 BigQuery 数据”工作流程,这三种范围都适用。如果您要将密钥交给团队成员或不太信任的客户,请删除 执行 只允许他们浏览。您可以随时在同一页面撤销任何密钥;AI 客户端将会看到。 MCP_KEY_REVOKED 在下次调用时立即停止工作,没有传播延迟。

现在复制密钥——查询流会显示密钥一次,然后只存储哈希值。如果密钥丢失,请生成一个新密钥。密钥格式如下: qsmcp_ 接下来是 48 个随机字符,这就是你的 AI 客户端发送的内容。 X-MCP-Key 请求头。

步骤 2:将查询流 MCP 添加到您的 AI 客户端

所有支持 MCP 的客户端的配置形式都相同——一个指向 MCP 服务器的条目 https://mcp.querystreams.com 钥匙在里面 X-MCP-Key 标题。请在下方选择您的客户。

光标
光标 ~/.cursor/mcp.json
// 编辑 ~/.cursor/mcp.json
{
  "mcpServers": {
    “查询流”: {
      网址: "https://mcp.querystreams.com",
      “标题”: {
        “X-MCP-Key”: "qsmcp_PASTE_KEY_HERE"
      }
    }
  }
}
克劳德桌面
克劳德桌面 claude_desktop_config.json
// 设置 → 开发者 → 编辑配置
{
  "mcpServers": {
    “查询流”: {
      网址: "https://mcp.querystreams.com",
      “标题”: {
        “X-MCP-Key”: "qsmcp_PASTE_KEY_HERE"
      }
    }
  }
}
ChatGPT
ChatGPT 应用和连接器
// 设置 → 应用和连接器 → 添加 MCP
服务器 URL  https://mcp.querystreams.com
身份验证标头 X-MCP-Key
标题值 qsmcp_PASTE_KEY_HERE

// 需要付费的 ChatGPT 套餐
//(Plus / Pro / Team / Enterprise)。
格罗克
格罗克 远程 MCP 工具
// Grok → 设置 → 工具
{
  "mcp_servers": [{
    “姓名”: “查询流”,
    网址: "https://mcp.querystreams.com",
    "auth_header": “X-MCP-Key”,
    "auth_value": "qsmcp_..."
  }]
}

重启您的 AI 客户端。下次启动时,它将发现上面列出的八个查询流 MCP 工具,并将它们显示在工具面板中。您可以在 Cursor 和 Claude Desktop 中通过键入以下命令进行验证。 “列出连接器” 人工智能应该打电话 qs_list_connectors 并将您的 BigQuery 连接器以及您配置的所有其他内容一起返回。

步骤 3:向 AI 提出 BigQuery 问题

你无需编写 SQL,AI 会代劳。你提出问题,AI 选择合适的 MCP 工具,代理程序针对你的 BigQuery 数据集运行查询,并将答案以文本加表格的形式返回。以下三个示例提示可供你先尝试:

“按用户获取渠道划分,我们用户参与度最高的群体是哪个?”
订婚
人工智能会打电话 qs_get_connector_schema 发现事件、用户和会话表(并获取该表) events.event_params 是一个 数组<STRUCT> 需要 巢穴), 然后 qs_run_query 使用 SELECT 连接 活动用户用户身份,应用一个 分区时间 筛选以限制扫描范围,并按以下方式分组 收购来源并计算活跃用户数和平均每用户会话数。您将看到内嵌结果表格,以及一份文字解读——哪些渠道的互动表现突出,以及长尾流量在哪里——这些都是人工智能根据您的 BigQuery 数据推断出来的。
“显示过去 90 天内按流量来源划分的转化漏斗图。”
转换
该人工智能使用 GoogleSQL 惯用的日期数学方法来限定分区范围(e._PARTITIONTIME >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 90 DAY)),加入 活动 通过 用户并计算 COUNTIF(event_name = 'page_view'), COUNTIF(event_name = 'add_to_cart'), 和 COUNTIF(event_name = 'purchase') 在转化漏斗的每个步骤中,使用枚举检测到的事件名称。最终生成按流量来源划分的逐步转化漏斗图,包含绝对计数和转化率——人工智能通常会在用户无需询问的情况下,标记出流失率最高的步骤和转化率最高的来源。
“哪些实验方案在统计学上能显著提高注册率?”
实验
该人工智能使用模式智能的STRUCT/ARRAY注释来 UNNEST(event_params) 从嵌套记录中提取实验 ID 和变体,并将其连接到 实验 它会生成一个维度表,并计算每个变体的注册率,以及威尔逊分数置信区间(如果用户使用的是付费统计 LLM 模型,则使用卡方值)。结果会生成一个包含绝对注册量、基线相对提升值和 p 值的精选变体列表——通常,AI 会将那些以 95% 置信度优于对照组的变体标记为最佳。 候选船 其余部分…… 继续跑 而不是发出误报。

首次AI调用工具时,您的客户端可能会弹出确认提示,要求您批准此次工具调用——这是MCP的标准授权流程,并非查询流功能新增的内容。只需批准一次,AI即可继续进行后续对话。您可以随时在客户端设置中重新查看授权信息。

诚实计费说明:MCP 使用量按未压缩字节计费

Query Streams 的 Excel 插件、Google Sheets 插件、Web Query Builder 和 Nova AI 都通过我们的压缩云链路运行——我们会进行计量和计费。 压缩字节 针对您的数据领域。MCP 传输(根据官方 MCP 规范为 Streamable HTTP)无法可靠地支持跨所有客户端和中间代理的端到端压缩,因此我们会进行计量和计费。 未压缩字节 用于 MCP 流量。

  • 这意味着: 通过 MCP 获取 5 MB 的 BigQuery 聚合查询会占用您数据域约 5 MB 的空间,而通过 Excel/Sheets/Nova/查询构建器获取则仅占用约 700 KB 至 1.2 MB。包含 STRUCT 结构和重复值列的 BigQuery 数据使用 LZ4 压缩后可压缩约 5-8 倍——对于许多行共享相同枚举值、日期或活动 ID 的分析输出,LZ4 尤其高效。
  • BigQuery扫描费用是独立的。 查询流测量字节数 返回 是给你的 AI 客户端(数据领域),而不是字节 扫描 在数据仓库中。因此,如果您的 LLM 编写了一个查询,扫描 100 GB 的数据并返回 10 KB 的聚合结果,那么您就需要向 Google 支付 100 GB 的扫描费用,再加上向 Query Streams 支付 10 KB 的费用。Schema Intelligence 的分区修剪提示可以帮助 LLM 最大限度地减少这两个数字——上面的 SQL 差异在相同的查询中扫描了 6 GB 而不是 5 TB 的数据。
  • 这并非: 使用 MCP 协议不会产生额外费用或惩罚。我们只传输实际发送的字节数。其他客户端的成本更低,因为压缩在这些传输方式上能够可靠地工作;我们不会因为协议选择而惩罚您,但我们必须公开透明地说明成本构成。
  • 你可以这样做: 对于非常大的重复性查询(例如导出 10 万行以上数据),建议使用 Excel/Sheets/Nova 方案。而对于交互式 AI 工具调用(典型的 100-5000 行 BigQuery 响应,适用于 LLM 环境),MCP 是更合适的选择,成本差异仅为几美分。

常见问题解答

我需要开放端口或运行 VPN 才能使用它吗? +
没有入站规则、端口转发、NAT穿透或VPN。网络代理建立一个出站TLS连接(端口443),您的AI客户端即可到达。 https://mcp.querystreams.com 从公共互联网——如果代理主机上的出站 HTTPS 工作正常,则 MCP 也工作正常。 了解仅出站连接的工作原理 →
我可以将哪些 AI 工具与 Query Streams MCP 配合使用? +
任何支持开放模型上下文协议的客户端——例如 Claude Desktop、Claude Code、Cursor、ChatGPT(付费版)、Grok、Gemini CLI、Windsurf、Zed 以及其他 500 多个客户端。自带 AI 工具,无需切换。 支持的AI客户端完整列表 →
我可以撤销 MCP 密钥吗? +
是的——三个独立的紧急停止开关(每个按键对应一个)。 /mcp 页面、每个组织通过计划设置和平台级别),这些都不需要数据库密码轮换或代理重启。 更多关于MCP密钥安全的信息 →
MCP 的使用量如何计入我的数据域? +
MCP 执行调用会从 Excel、Google Sheets、Web Query Builder 和 Nova AI 使用中已经使用的同一数据领域预算中扣除——所有访问方法都使用同一个消耗预算。 MCP 的测量尺寸各不相同。 其他客户端通过我们的压缩云链路运行(我们会收费)。 压缩字节MCP 运行在 Streamable HTTP 之上,而 Streamable HTTP 并不能可靠地支持在所有客户端和代理之间实现端到端压缩,因此我们会收取费用。 未压缩字节返回到 Excel 的 5 MB BigQuery 聚合结果通常会占用约 700 KB – 1.2 MB 的数据空间;返回到 MCP 的 Cursor 的相同 5 MB 结果大约占用 5 MB 的空间。 BigQuery 扫描成本是独立的 ——这是谷歌自己的指标(每次查询扫描的 TB 数),与返回的数据域字节数分开跟踪。Schema Intelligence 的分区修剪提示有助于 LLM 最大限度地减少这两个数字。我们对此保持透明,因为我们宁愿您提前了解,而不是在结算周期结束时感到意外。
Query Streams MCP 是否支持 BigQuery 插槽预留、按需定价、BigQuery 沙盒(免费层)和 BigQuery Omni(跨云)? +
是的,所有 BigQuery 定价模式和版本均受支持。网络代理通过您的服务帐户凭据(或 OAuth 用户委托)使用标准的 BigQuery 存储读取 API 和查询 API。具体支持: 按需定价 (你需要按扫描的TB数向谷歌付费), 座位预订 (标准版/企业版/企业增强版,均包含专用插槽) 统一价格 (遗产), BigQuery 沙箱 (免费套餐提供每月 1 TB 的查询数据和 10 GB 的存储空间,与付费套餐的功能完全相同——非常适合评估)。 BigQuery Omni (从 BigQuery 前端(也称为 BigLake/Omni)对 AWS S3 或 Azure Blob 运行查询)。对于 Omni,跨云路由完全在 GCP 端完成;代理提交相同的 SQL,BigQuery 将扫描路由到目标区域。 GCP 会跟踪槽位预留成本和按需扫描字节成本。完全独立于您的查询流数据域消费。 对成本敏感型工作负载的建议: 专门为您的 AI / 临时工作负载预留一个槽位,这样无限的 LLM 生成的查询就不会占用您的生产预留资源。
这与我自己运行开源 BigQuery MCP 服务器有何不同? +
直接使用 BigQuery MCP 服务器(GitHub 上确实有一些社区项目)意味着每个数据源都需要一个 MCP。要让 Claude 读取 BigQuery、Google Search Console、Stripe 账户和 Snowflake 数据仓库中的数据,您需要在每个 AI 客户端中分别配置四个 MCP 服务器,每个服务器都需要有自己的凭据、范围模型和审计日志。而 Query Streams MCP 则只需一个密钥即可访问您账户中所有已配对的连接器。此外,它还支持模式智能(这对于 BigQuery 的 STRUCT/ARRAY 遍历和分区修剪尤为有用)、代理层只读强制执行、每个密钥的速率限制以及审计跟踪。 事件日志以及您已经使用的相同数据领域计费管道——而直接的 BigQuery MCP 都无法为您提供这些。
如果人工智能尝试写入或删除数据会发生什么? +
在数据源看到 SQL 语句之前,代理就拒绝了该请求。 qs_run_query 调用由一个硬编码的只读验证器解析,该验证器仅允许 选择, , 和 解释 声明;其他任何内容返回 只读违规 而且永远不会连接到 BigQuery。验证器在您网络(或您的 GCE 虚拟机)上的代理进程中运行,而不是在云端运行,因此即使云端遭到入侵也无法绕过它。(双重保险方案:将您的作用域服务帐户绑定到 角色/bigquery.dataViewer + roles/bigquery.jobUser 只有——从不 数据编辑器数据所有者(代理的验证器与您在 GCP 中配置的任何 IAM 授权无关。)
我可以看看人工智能实际问了什么吗? +
是的。每次 MCP 工具调用都会向其中写入一行。 事件日志 包含组织、用户、密钥、范围、延迟和结果代码等信息。组织管理员只需一次查询即可回答“上周谁使用了 MCP,使用了哪个连接器,以及他们请求了什么?”。请注意,我们会记录这些信息。 工具名称和元数据而不是 SQL 文本或返回的行——这些内容通过云链接传输,不会记录在云日志中。如果您需要完整的 SQL 审计,BigQuery 已经免费提供此功能:查询 信息架构.用户作业 对于您的服务帐户提交的每个作业的 SQL 文本,或者将 BigQuery 审计日志流式传输到 Cloud Logging / 单独的 BigQuery 数据集以进行长期保留。
我是否必须运行 Schema Intelligence 才能使用 Query Streams MCP? +
不 - 模式智能是可选的 (连接器,数据集) 一对即使没有 SI,MCP 也能正常工作。AI 获取的是基本模式(类型、主键、正式外键、索引——或者对于 BigQuery,是类型、分区和聚簇),并编写基本查询。启用 SI 后,AI 可以获得六个额外的精选元数据层: (1) AI 为每个项目、数据集、表格和列生成精选描述; (2) 表分类(FACT 用于事件流和会话,DIM 用于用户和维度,LOOKUP 用于小型代码映射)加上业务领域标签(产品分析、市场营销、财务、支持等); (3) 每个列(currency_usd、email、date、status_code、percentage、identifier、url、struct_array、partition_column 等)都有一个语义类型,用于生成符合方言的 GoogleSQL,包括 UNNEST 模式和分区过滤器; (4) 从您的真实数据中抽取样本值,以便 LLM 能够识别任何模式都无法显示的模式,包括 ARRAY 列中的 STRUCT 键名; (5) 对低基数列(event_name、acquisition_source、plan_tier)进行枚举检测,并采用完整的值分布; (6) AI基于跨表数据重叠发现了外键(BigQuery没有外键约束,因此这具有独特的价值),并通过以下方式呈现出来 qs_get_relationships如果没有 SI,每个模式工具响应也会携带一个 si_推荐 列出通话中缺失的具体内容——人工智能可以读取此列表,并在通话过程中主动提出触发语音识别。 qs_request_si_analysis运行时间随表数量而变化:一个包含 100 张表的小型数据库大约需要 10 分钟完成扫描;一个典型的中型数据库(几百张表)需要 15-25 分钟;一个包含 1500 张以上表的大型企业数据库可能需要 45-60 分钟才能完成一次完整扫描。SI 通过您的网络代理针对您的 BigQuery 数据运行(绝不在 QS 云端运行),从不写入您的数据集,从不更改您的模式,使用分区修剪提示来控制扫描范围,并在您的模式更改时进行增量刷新——因此,在您添加或更改表之后,后续运行速度将比第一次快得多。端到端效果:启用 SI 后,您的 AI 客户端首次尝试写入正确的 Google SQL 的概率远高于针对任何仅提供 LLM 的“MCP for X”服务器的尝试。 信息架构.
如果我之后添加其他连接器,例如 Stripe 或 PostgreSQL,该怎么办? +
客户端没有任何变化——代理将新连接器配对后,相同的密钥就会立即到达新连接器(qs_list_connectors (会自动获取)。一个配置块即可购买您账户的全部内容,包括当前和未来的账户。 为什么一把钥匙可以连接所有接口 →
我必须设置 MCP 才能与我的数据进行交互吗? +
不 - Nova AI 已集成到 Query Streams 门户中。 它适用于所有连接器(包括 BigQuery),无需 MCP 设置或配置文件。使用 Nova 在查询流中与数据进行交互;当您希望自己的 AI 客户端(Claude、Cursor、ChatGPT 等)访问相同的数据时,请使用 MCP——相同的代理、相同的连接器、相同的底层架构智能。 了解更多关于 Nova AI 的信息 →
Query Streams MCP 如何对我的 GCP 项目和数据集进行身份验证,以及如何将访问权限限定为仅对特定数据集的访问权限? +
两种认证模式,均为生产级。 服务账号(推荐): 在您的 GCP 项目中创建范围明确的 SA(例如) [email protected]),授予它 角色/bigquery.dataViewer特定数据集 你想要公开(而非项目范围)的+ roles/bigquery.jobUser 在项目中,该代理可以提交查询作业。下载 JSON 密钥并将其注册到代理的密钥存储区。代理永远不会持有项目所有者的凭据,而只会持有作用域服务帐户的凭据。 OAuth 用户委托: 另一种选择是用于开发/交互式环境,在这种情况下,您希望每个查询都以您的 Google 身份运行(这样它就能继承您的行级安全性和用户级别的审计跟踪)。在生产环境中,请使用 SA。 多项目模式: 注册每个项目(例如) 产品分析, 阶段分析, 数据团队沙箱它本身就是一个连接器,拥有自己的作用域 SA——LLM 按名称选择,因此 Cursor 用户可以询问 “给我看看产品带来的收入” 无需知道项目 ID。对于多区域/区域/双区域数据集,代理的工作方式相同;BigQuery API 会在底层处理区域路由。 行级安全性和列级掩码 (基于 IAM 的 BigQuery 行级别安全)所有安全执行均在 GCP 上进行——代理只需提交查询并获取您的服务帐户有权查看的内容。无论您连接多少个 GCP 项目或数据集,每个代理到查询流的云链接都是唯一的。

开始使用

五分钟即可将您的AI工具连接到您的BigQuery数据。

一个 MCP 密钥即可访问 BigQuery、所有其他数据库以及 Query Streams 帐户中的所有 API 连接器——全程提供审计跟踪、单密钥速率限制,且无需更改防火墙设置。Claude、Cursor、ChatGPT 和 Grok 均可开箱即用。

相关指南: 下载查询流代理 | 数据库连接器设置 | 所有 MCP 服务器指南 | Nova AI 文本转 SQL

类别:MCP服务器

标签:MCP、Claude、游标、BigQuery、Google Cloud、GCP、数据仓库、Google SQL、服务帐户身份验证

元描述:通过 Query Streams MCP 将 Google BigQuery 连接到 Claude 或 Cursor。服务帐户身份验证,支持 GoogleSQL,5 分钟即可完成设置。

更新 2026 年 6 月 16 日

Powered by BetterDocs