查看类别

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

阅读时间:24分钟

MCP 服务器 鸭子数据库

使用以下方式查询 DuckDB 克劳德或光标 通过 MCP。

通过安全的、仅出站的云链接,您可以向 DuckDB 用户询问有关 DuckDB 数据(事件、用户、交易、每日聚合、本地磁盘或 S3 中的 parquet / CSV / JSON 文件)的简单英语问题,DuckDB MCP 连接器内置了模式智能,因此 AI 可以一次性编写正确的、以分析为先的 SQL。

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

Query Streams 是一个安全的实时数据集成平台,它通过一个 MCP 密钥将您帐户中的每个数据库和 SaaS API 导入到 Claude、Cursor、ChatGPT 和 Grok 中,而无需更改防火墙。 本指南将详细介绍如何配置 DuckDB MCP 连接器,以便您的 AI 工具能够回答有关嵌入式分析数据(事件、用户、交易、每日汇总、用户群留存率、S3 中的 Parquet/CSV/JSON 文件)的简单英语问题,而无需您从 DuckDB CLI 复制粘贴 CSV 导出内容或手动编写代码。 读取parquet() 笔记本中的查询。 了解更多信息,请访问 QueryStreams.com免费注册 开始向你的AI工具提出真正的DuckDB问题。

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

开源领域中的其他“DuckDB MCP”服务器将AI工具直接连接到本地。 .duckdb 文件访问虽然可行,但它会将数据库路径推送到 AI 客户端的配置中,将 AI 工具的访问范围限制在单个 DuckDB 文件,并且无法提供 AI 实际请求的审计跟踪。Query Streams MCP 服务器的 DuckDB 版本解决了更广泛的问题:只需一个密钥,即可访问所有连接器(包括您的 DuckDB 文件以及所有其他数据库和 API),提供完整的审计跟踪,并且 AI 工具永远不会保存您的 DuckDB 文件路径。

零入站防火墙漏洞

网络代理会打开一条指向查询流的加密出站云链路。您的 AI 客户端连接到云端,而非您的 DuckDB 实例。无需开放端口,无需将 IP 地址添加到白名单,无需 VPN,AI 客户端配置中也不会暴露 DuckDB 文件路径或凭据。

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

同一个 MCP 密钥可用于您帐户连接的所有数据库和 SaaS API。明天添加 Stripe 或 PostgreSQL 连接器后,AI 工具就能在同一个目录中找到它们,与 DuckDB 文件并列显示,无需重新创建密钥。

内置模式智能

AI 可以看到每个 DuckDB 列的 AI 整理描述、语义类型、枚举值列表、JSON/STRUCT 结构体提示以及发现的外键——而不仅仅是裸露的列。 信息模式 输出。它在第一次尝试时就写入分析优先的 DuckDB SQL(读取parquet, 日期截断, , 资格即使是混合了文件支持和表支持的异构模式。

代理端强制执行只读模式

即使是产生幻觉的法学硕士也无法颁发 删除, 更新, 插入,或 复制到…… 通过查询流 MCP。网络代理会拒绝任何非此类型的请求。 选择, ,或 解释 在 DuckDB 看到 SQL 之前——代理程序会打开本地 .duckdb 文件默认以只读模式显示。

单键速率限制

默认每分钟 60 个请求和 10 次执行调用,每个键可单独配置。失控的 AI 工具调用循环会占用令牌桶,而不是 DuckDB 进程内存或本地磁盘。

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

查询流网络代理只需在存放本地数据的计算机上安装一次即可 .duckdb 文件(笔记本电脑、本地服务器或小型虚拟机)并拨打一个到云端的出站 TLS 连接——不会暴露任何入站流量,AI 工具也永远不会看到您的文件。 .duckdb 文件路径。 仅出站连接的工作原理 →

AI客户端

光标,克劳德,
ChatGPT、Grok

QS MCP 服务器

Streamable HTTP
X-MCP-密钥认证

网络代理

在您的网络上
云链路输出

鸭子数据库

当地的
.duckdb 文件

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

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

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

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

开源领域中大多数“MCP for DuckDB”服务器都会向你的AI工具提供相同的功能。 信息模式 DuckDB 把列名、数据类型,或许还有主键,交给一个陌生人来猜测。LLM 需要自行猜测这些内容。 event_type = 7 意思是,什么 有效载荷 存储在其结构中,或者是否 events.user_id 实际上加入 用户 ID (DuckDB 模式通常没有声明外键,尤其是在将多个表拼接在一起时) 读取parquet / 读取 CSV 文件 (来源)。这就是为什么大多数 LLM 针对裸模式编写的第一个 SQL 语句是错误的——不是因为 LLM 不好,而是因为它没有正确的数据。

查询流 MCP 返回相同的模式,但添加了我们所说的内容。 模式智能(SI) — 通过对您的数据运行分析查询而生成的由人工智能整理的元数据 真实 在 AI 客户端请求之前,DuckDB 数据就已经存在了。当在连接器和数据库上启用 SI 时,AI 调用的每个模式工具都会获取到这些数据。qs_get_connector_schema, qs_get_table_schema, qs_profile_table, qs_get_relationships)返回基本模式以及六层精心整理的知识——包括 JSON / STRUCT 形状提示和 DuckDB 列式 I/O 的列投影指导。LLM 不再进行猜测。

为了更具体地说明这一点,以下是人工智能客户端从单个请求中获得的返回结果。 qs_get_table_schema 针对典型的 DuckDB 嵌入式分析仓库的调用(活动, 用户, 交易, 每日聚合, 实验)——先不使用模式智能,然后再使用模式智能。

缺乏模式智能 数据源:捕获的模式
// LLM 所看到的 == 表格:事件 == – id UBIGINT [PK] - 用户身份 UBIGINT 非空 – 事件类型 VARCHAR NOT NULL – 时间戳 时间戳非空 有效载荷 结构(…) - 来源 VARCHAR == 表格:用户 == – id UBIGINT [PK] - 电子邮件 VARCHAR – 队列 VARCHAR – signup_at 时间戳 == 表格:交易 == – id UBIGINT [PK] - 用户身份 UBIGINT 非空 - 数量 双精度浮点数非空 - 货币 VARCHAR(3) – 发生于 时间戳非空 == 表格:每日汇总 == – 日 日期 – 指标名称 VARCHAR – 指标值 双倍的 == 表格:实验 == – id UBIGINT [PK] - 姓名 VARCHAR 变体 VARCHAR 外键: (未声明) si_recommendation: 状态: “not_run” 本次调用缺少的内容: – AI 发现的外键 – 每列样本值 + 枚举检测 – 表和列描述 – 语义类型分类 – STRUCT / LIST 形状提示(DuckDB) 注意: “仅类型,无语义上下文”
利用模式智能 数据源:模式智能
// LLM 所看到的 == 表格:事件 [FACT,领域:产品] == “产品分析事件;每用户操作一行。高容量事实表。” - 用户身份 普遍情报 标识符 外键 -> users.id(重叠率 100%,置信度 0.99) – 事件类型 VARCHAR 状态码(枚举) 页面浏览量 (54%) | 点击量 (22%) | 购买量 (14%) | 注册量 (6%) | 流失率 (4%) – 时间戳 时间戳 时间戳 示例:2026-04-28 14:02:11.234 有效载荷 结构(…) 结构化(UNNEST 推荐) 字段:页面、来源页面、广告变体、设备 == 表格:用户 [DIM,域:客户] == “用户维度;用户群体驱动留存和细分分析。” - 电子邮件 VARCHAR 电子邮件 示例:[email protected][email protected] – 队列 VARCHAR 段(枚举) 2026年第一季度 (28%) | 2026年第二季度 (24%) | 2025年第四季度 (22%) | 更早 (26%) – signup_at 时间戳 时间戳 == 表格:交易 [事实,领域:收入] == “收入事件;SUM(金额) 为 GMV。金额以主要货币单位表示。” - 用户身份 普遍情报 标识符 FK -> users.id(重叠率 98%,置信度 0.96) - 数量 双倍的 货币 范围:0.99 – 1,840.00 · 平均值 47.20 – 发生于 时间戳 时间戳 == 表格:每日汇总 [FACT,领域:产品] == – 指标名称 VARCHAR 状态码(枚举) 示例:['DAU','WAU','MAU','收入','retention_d7′] – 指标值 双倍的 数字

模式智能新增的六个层

每一层都针对LLM原本只能猜测的一类问题。可选的SI分析过程会针对您的DuckDB数据运行,而无需更改您的模式——并且对于扫描,代理会打开本地文件。 .duckdb 文件处于只读模式。 模式智能新增了哪些功能以及如何保持最新状态 →

人工智能生成的描述

为每个数据库、模式、表和列生成简洁明了的用途描述——只需生成一次,即可在模式更改时自动更新。基于置信度评分;用户撰写的描述始终优先。

事件:“产品分析”
事件;每行代表一个动作。

表格分类

每个表都标记为 FACT(事务事件)、DIM(描述性引用)或 LOOKUP(小型代码映射),以及一个业务领域——产品、销售、财务、支持等 16 个领域。

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

每列语义类型

十八种类型——货币、电子邮件、时间戳、状态码、百分比、排名位置、标识符、URL、人名等等。人工智能会针对每种类型生成分析优先的 DuckDB SQL(例如: date_trunc('week', ts) (用于时间戳)。

金额:货币 · 电子邮件:电子邮件
时间戳:时间戳

来自真实数据的样本值

随机行出现在 LLM 中,以便识别任何模式都无法显示的模式——STRUCT 字段名称、LIST 元素形状、格式化约定以及 VARCHAR 列的实际编码。

有效载荷(STRUCT):{页面,来源,
ab_variant,设备}

基于分布的枚举检测

低基数列(50 个或更少不同值,最多 5% 的行是唯一的)映射到其包含行数的完整值列表。人工智能从不猜测枚举类型的大小写或拼写。 VARCHAR 列。

事件类型:页面浏览(54%)| 点击(22%)
购买率 (14%) | 注册率 (6%) | 流失率 (4%)

隐式外键发现

跨表数据重叠分析会查找未声明为 DDL 约束的连接——这在基于 parquet/CSV 文件导入构建的 DuckDB 模式中很常见。这些连接与正式的外键及其置信度分数一起存储,并由 DuckDB 返回。 qs_get_relationships.

events.user_id -> users.id
(重叠率 100%,置信度 0.99)

相同的提示符,不同的 SQL

证据就在人工智能工具实际生成的 SQL 语句中。相同的 Cursor 会话,相同的 Claude 模型,相同的提示符—— “请按用户群体和事件类型,以周为单位,向我展示上一季度的收入趋势。” 如果没有模式智能,LLM 就只能靠猜测。有了模式智能,LLM 就能一次性编写出符合 DuckDB 惯用格式且对列式数据库友好的 SQL 语句。

缺乏模式智能
— LLM 对裸模式的首次尝试: 选择 *, 提炼(国际标准化周 时间戳) AS 周, 总计(金额) AS 修订 活动 连接 交易 使用(用户身份) 地点 时间戳 >= '2025-01-01' GROUP BY 1, 2 SELECT * 会破坏列投影。 EXTRACT(ISOWEEK …) — 非 DuckDB 原生函数 金额取决于交易,而非事件。 没有用户群组——用户群组是细分群体。 日期是硬编码的——“上个季度”是动态的 不使用 read_parquet() 函数——如果 events 是一个文件
利用模式智能
— LLM首次尝试启用SI: 选择 u.cohort,e.event_type, 日期截断('星期',e.时间戳) AS 周, 总计(t.金额) AS 收入 事件 e 连接 用户 u 关于 u.id = e.user_id 连接 交易 t 关于 t.user_id = e.user_id 地点 e.时间戳 >= 当前日期间隔 90 GROUP BY u.cohort,e.event_type,周 资格 等级() 结束( u.cohort ORDER BY 收入 DESC) <= 5 ORDER BY u.cohort,周 一次就成功。柱状投影。 FACT/DIM 标签指导了连接结构 FK 发现揭示了 events.user_id -> users.id date_trunc('week', ts) — DuckDB 原生 QUALIFY 筛选窗口结果,不包含子查询 CURRENT_DATE – INTERVAL n DAY — DuckDB 惯用法
不想运行模式智能? MCP 仍然有效——模式工具返回裸元数据(类型、主键、形式外键、索引),并且每个降级响应都包含一个 si_推荐 阻止人工智能接收它缺失的信息,包括一个可在对话过程中通过一次通话启用 SI 的选项。 qs_request_si_analysis. 模式智能的运行方式及所需时间 →

通过 Query Streams MCP 运行本地 DuckDB 文件

查询流 MCP 连接到本地 DuckDB 数据库文件。网络代理打开您的 .duckdb 文件以 DuckDB 的只读模式运行,并通过与其他连接器相同的出站云链接和相同的 MCP 密钥向您的 AI 客户端提供查询服务——无需运行单独的数据库服务器。

当地的 .duckdb 文件

只读

代理人打开了您的 .duckdb 以 DuckDB 只读模式处理文件,并通过嵌入式库提供查询服务。支持任何适合本地磁盘的大小——无需并发写入。非常适合开发笔记本电脑、持续集成 (CI) 测试、嵌入式报告以及基于 Parquet/CSV 导入的个人分析。 读取parquet() + 创建表注册多个 .duckdb 文件位于同一代理上,让 LLM 通过连接器名称消除歧义。

连接器/data/analytics.duckdb

模式智能分析针对的是您的本地 DuckDB 文件。 SI扫描读取 .duckdb 文件通过您本地计算机上的网络代理进行传输——绝不会传输到云端。代理到查询流的云链接是 每个代理一个,无论有多少个 DuckDB 文件 您已注册。

新星人工智能

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

完全跳过 JSON 配置: Nova AI 已集成到 Query Streams 网络门户中。 并针对您本地环境提出相同的 DuckDB 简明英语问题 .duckdb 文件 — 相同的代理,相同的只读强制执行,相同的模式智能,没有 MCP 管道。

认识 Nova AI

先决条件

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

  1. 免费注册 Query Streams 帐户 my.querystreams.com.
  2. 安装在包含您本地信息的计算机上的查询流网络代理 .duckdb 文件(笔记本电脑、服务器或小型虚拟机)——参见 下载查询流代理.
  3. 针对代理配置的 DuckDB 连接器——请参阅现有 连接器设置 指南 .duckdb 文件路径。代理程序保存着该路径;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 帐户只需生成一个密钥——代理和 DuckDB 连接器已在运行。
1

生成 MCP 密钥

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

2

将其放入您的 AI 客户端

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

3

提问

“过去 12 周内,我们的用户留存率曲线如何?”——人工智能调用合适的工具,你就能得到答案。

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

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

  • —人工智能可以浏览连接器并读取模式。其他所有操作都需要用到它。
  • 分析 — AI 可以分析表结构并发现关系(样本值、分布、语义类型、STRUCT/LIST 结构提示)。对于 DuckDB 工作,此功能虽非必需但强烈建议使用,因为理解嵌套数据的结构和枚举类型列的基数,可以让 LLM 一次性编写出适合列式分析的 SQL 语句。
  • 执行 — 该人工智能实际上可以运行 SQL。否则,它只能读取模式元数据,而不能进行其他操作。

对于典型的“让 Claude 分析我的 DuckDB 数据”工作流程,这三种作用域都适用。如果您要将密钥交给团队成员或不太信任的客户端,请删除。 执行 只允许他们浏览。您可以随时在同一页面撤销任何密钥;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 请将您的 DuckDB 连接器以及您配置的所有其他内容一起返回。

步骤 3:向 AI 提出一个 DuckDB 问题

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

“过去 12 周内,我们的用户留存率曲线如何?”
保留
人工智能调用 qs_get_connector_schema 发现 活动, 用户, 和 交易 然后是表格。 qs_run_query 使用 SELECT 连接 用户活动按桶 date_trunc('week', signup_at) 对于队列轴和 date_trunc('week', e.timestamp) - signup_at 对于保留轴,并进行计算。 COUNT(DISTINCT user_id) 按用户群规模进行标准化。您将看到一个以三角形形式呈现的留存率表格,表格按周划分,并附有文字说明,标明哪些用户群的留存率最高,以及留存率曲线在哪些位置开始下降——所有这些信息均由 AI 从 DuckDB 数据中推断得出,无需您编写任何 SQL 语句。
“请显示各类别过去 90 天的移动平均收入。”
收入
该人工智能使用 DuckDB 惯用的日期数学运算(当前日期 - 间隔 90 天) 限定窗口范围,连接 交易活动 用于类别归属,并适用 AVG(SUM(amount)) OVER ( PARTITION BY category ORDER BY day ROWS BETWEEN 89 PRECEDING AND CURRENT ROW) 作为窗口函数。结果是一个排名表,包含类别、当前 90 天移动平均值以及与前 90 天窗口相比的百分比变化——人工智能通常会在用户无需询问的情况下标注涨幅最大和跌幅最大的股票。DuckDB 的列式引擎即使在处理数十亿行事件流时也能快速完成此操作。
“哪些细分市场每周增长最快?”
生长
该人工智能使用模式智能的枚举检测功能。 用户群 首先枚举各个细分,然后编写一个 CTE 来聚合每个细分中的活跃用户数。 (队列,周) 通过 date_trunc('week', timestamp)适用 资格 与一个 落后() 窗口期用于比较上周的数据,并返回按周环比增长率排序的细分市场。结果是一个包含用户群、本周活跃用户、上周活跃用户和周环比增长率变化百分比的列表——通常,人工智能会首先按最大正增长幅度排序,并将任何由负增长转为正增长的细分市场标记为“已实现增长”。 观察名单群体.

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

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

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

  • 这意味着: 通过 MCP 获取 2 MB 的 DuckDB 分析结果集会占用您数据域约 2 MB 的空间,而通过 Excel/Sheets/Nova/查询构建器获取则仅占用约 250-350 KB。DuckDB 列式数据(尤其是包含重复类别和时间戳值的聚合输出)使用 LZ4 压缩后可压缩约 6-8 倍,因此其大小差异比事务型数据库更大。相同的数据,不同的传输方式,不同的计费空间。
  • 这并非: 使用 MCP 协议不会产生额外费用或惩罚。我们只传输实际发送的字节数。其他客户端的成本更低,因为压缩在这些传输方式上能够可靠地工作;我们不会因为协议选择而惩罚您,但我们必须公开透明地说明成本构成。
  • 你可以这样做: 对于非常大的重复性查询(例如直接从 DuckDB 列存储导出数百万行事件),建议使用 Excel/Sheets/Nova 方案。对于交互式 AI 工具调用(典型的 100-5000 行聚合 DuckDB 响应,适用于 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、Sheets、Query Builder 和 Nova 使用相同的数据资源预算,但 MCP 的 Streamable HTTP 传输无法可靠地进行端到端压缩,因此会计费。 未压缩字节 而不是 压缩字节对于 DuckDB 而言,这种差距比事务数据库更大:列式输出在压缩客户端上通过 LZ4 压缩约 6-8 倍,因此 2 MB 的分析结果通过 Excel / Sheets / Nova 的成本约为 250-350 KB,而通过 MCP 的成本约为 2 MB。 跨传输的数据领域计费方式 →
Query Streams MCP 是否支持 DuckDB 0.9 / 0.10 / 1.0、DuckDB 只读模式以及 DuckDB 扩展程序? httpfs / 镶木地板 / JSON / 空间? +
是的——网络代理通过标准方式支持 DuckDB 0.9+。 鸭子数据库 库(目前捆绑了 1.0 版本)。 出于安全考虑,代理的默认模式为只读模式。因此,多个读者可以共享同一内容。 .duckdb 文件无写锁争用。扩展名: httpfs (S3/HTTPS 读取,包括签名 URL 身份验证和 IAM 角色链), 镶木地板 (通过 parquet I/O) 读取parquet()复制到…… (后者被只读验证器阻止), JSON (通过 JSON 读取/提取) read_json_auto()json_extract 家庭),以及 空间 所有兼容 PostGIS 的几何类型、GDAL 支持的 GeoJSON/Shapefile/FlatGeobuf 读取均受支持。当 SI 扫描检测到这些类型时,代理会自动透明地加载它们。对于自定义扩展或社区扩展,请联系支持团队——我们可以在代理层中将它们添加到白名单。 .duckdb 您注册的文件是一个独立的连接器;您可以一次注册多个 DuckDB 文件,并让 LLM 按名称选择(例如)。 “查询测试环境的DuckDB数据库,而不是生产环境。”).
这与我自己运行开源的 DuckDB MCP 服务器有何不同? +
直接使用 DuckDB MCP 服务器(社区项目,包括 DuckDB Labs 自己的项目)意味着每个数据源对应一个 MCP。要让 Claude 读取您的 DuckDB、Google Search Console、Stripe 账户和 Snowflake 数据仓库,您需要在每个 AI 客户端中分别配置四个 MCP 服务器,每个服务器都需要有自己的凭证、范围模型和审计日志。Query Streams MCP 是一个密钥,可以访问您账户中已配对的所有连接器。此外,您还可以获得模式智能(包含 DuckDB 感知的 STRUCT/LIST 结构提示和列投影指导)、代理层只读强制执行、每个键的速率限制以及审计跟踪。 事件日志以及您已经使用的相同数据领域计费管道——而直接的 DuckDB MCP 都无法为您提供这些。
如果人工智能尝试写入或删除数据会发生什么? +
在数据源看到 SQL 语句之前,代理就拒绝了该请求。 qs_run_query 调用由一个硬编码的只读验证器解析,该验证器仅允许 选择, , 和 解释 声明;其他任何内容(包括 复制到…… 写道: 创建表, 以及 DuckDB 的 加载 / 安装 对于未列入白名单的扩展程序)返回 只读违规 而且永远不会连接到 DuckDB。验证器在您网络上的代理进程中运行,而不是在云端运行,因此即使云端遭到入侵也无法绕过它。 本地 .duckdb 文件此外,该代理还会以 DuckDB 的只读模式打开文件,因此即使假设绕过了验证器,也无法通过数据库句柄写入数据。
我可以看看人工智能实际问了什么吗? +
是的。每次 MCP 工具调用都会向其中写入一行。 事件日志 包含组织、用户、密钥、范围、延迟和结果代码等信息。组织管理员只需一次查询即可回答“上周谁使用了 MCP,使用了哪个连接器,以及他们请求了什么?”。请注意,我们会记录这些信息。 工具名称和元数据而不是 SQL 文本或返回的行——这些内容会通过云链接传输,永远不会进入云日志。如果您需要完整的 SQL 审计,请在支持的情况下启用引擎端日志记录;对于 DuckDB 而言,这意味着使用 PRAGMA 启用分析 + PRAGMA 概况输出 在每次会话中记录 EXPLAIN 计划。本地 .duckdb 文件没有内置的审计日志——如果您需要完整的每次查询 SQL 捕获,请运行代理程序本身并启用详细查询日志记录(代理程序会将解析后的 SQL 写入其本地日志文件,然后再转发到 DuckDB)。
我是否必须运行 Schema Intelligence 才能使用 Query Streams MCP? +
不 - 模式智能是可选的。 即使没有它,MCP 也能正常工作(AI 获取基本模式并编写基本查询)。启用 SI 后,六个精心策划的层会添加 LLM 所需的 DuckDB 特定上下文:示例值中的 STRUCT 字段名称和 LIST 元素形状,以及驱动分析优先惯用法的语义类型(读取parquet, 日期截断, , 资格),以及通过人工智能发现的外键 qs_get_relationships — 对于从以下来源拼接的 DuckDB 模式尤其有价值 读取parquet / 读取 CSV 文件 在某些来源中,正式的外键很少被声明。如果没有系统集成,每个模式工具的响应都会携带一个 si_推荐 阻止人工智能采取行动,从而在对话过程中触发逃跑 qs_request_si_analysis. 模式智能新增的六个层以及扫描所需时间 →
如果我之后添加其他连接器,例如 Stripe 或 PostgreSQL,该怎么办? +
客户端没有任何变化——代理将新连接器配对后,相同的密钥就会立即到达新连接器(qs_list_connectors (会自动获取)。一个配置块即可购买您账户的全部内容,包括当前和未来的账户。 为什么一把钥匙可以连接所有接口 →
我必须设置 MCP 才能与我的数据进行交互吗? +
不 - Nova AI 已集成到 Query Streams 门户中。 它适用于所有连接器(包括 DuckDB),无需 MCP 设置或配置文件。使用 Nova 在查询流中与数据进行交互;当您希望自己的 AI 客户端(Claude、Cursor、ChatGPT 等)访问相同的数据时,请使用 MCP——相同的代理、相同的连接器、相同的底层架构智能。 了解更多关于 Nova AI 的信息 →
我可以注册多个 DuckDB 文件,或者分析 parquet / CSV 数据吗? +
是的。代理打开每个本地 .duckdb 通过嵌入式库以只读模式读取文件——无需单独的服务器进程进行维护。要分析 parquet/CSV/JSON 文件,请构建一个 .duckdb 文件 读取parquet() / read_csv_auto() + 创建表 并引导代理人查看。您可以注册多个。您可以注册多个。 .duckdb 一个代理上的文件(例如) local-dev.duckdb + 分析.duckdb)并让LLM通过连接器名称以简单的英语进行消歧义(“查询测试环境的DuckDB数据库,而不是生产环境。”).无论您注册多少个文件,每个代理都只有一个出站 TLS 连接连接到 Query Streams。

开始使用

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

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

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

类别:MCP服务器

标签:mcp、claude、游标、duckdb、分析数据库、开发者工具、嵌入式分析、列式数据库、parquet

元描述:通过 Query Streams MCP 将本地 DuckDB 文件连接到 Claude 或 Cursor。分析优先,5 分钟即可完成设置。

更新 2026 年 6 月 16 日

Powered by BetterDocs