使用以下方式查询 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 工具来完成其工作:
模式键 可选择性地覆盖参数。为什么模式智能使查询流 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原本只能猜测的一类问题。可选的SI分析过程会针对您的DuckDB数据运行,而无需更改您的模式——并且对于扫描,代理会打开本地文件。 .duckdb 文件处于只读模式。 模式智能新增了哪些功能以及如何保持最新状态 →
人工智能生成的描述
为每个数据库、模式、表和列生成简洁明了的用途描述——只需生成一次,即可在模式更改时自动更新。基于置信度评分;用户撰写的描述始终优先。
事件;每行代表一个动作。
表格分类
每个表都标记为 FACT(事务事件)、DIM(描述性引用)或 LOOKUP(小型代码映射),以及一个业务领域——产品、销售、财务、支持等 16 个领域。
用户 [DIM,域:客户]
每列语义类型
十八种类型——货币、电子邮件、时间戳、状态码、百分比、排名位置、标识符、URL、人名等等。人工智能会针对每种类型生成分析优先的 DuckDB SQL(例如: date_trunc('week', ts) (用于时间戳)。
时间戳:时间戳
来自真实数据的样本值
随机行出现在 LLM 中,以便识别任何模式都无法显示的模式——STRUCT 字段名称、LIST 元素形状、格式化约定以及 VARCHAR 列的实际编码。
ab_variant,设备}
基于分布的枚举检测
低基数列(50 个或更少不同值,最多 5% 的行是唯一的)映射到其包含行数的完整值列表。人工智能从不猜测枚举类型的大小写或拼写。 VARCHAR 列。
购买率 (14%) | 注册率 (6%) | 流失率 (4%)
隐式外键发现
跨表数据重叠分析会查找未声明为 DDL 约束的连接——这在基于 parquet/CSV 文件导入构建的 DuckDB 模式中很常见。这些连接与正式的外键及其置信度分数一起存储,并由 DuckDB 返回。 qs_get_relationships.
(重叠率 100%,置信度 0.99)
相同的提示符,不同的 SQL
证据就在人工智能工具实际生成的 SQL 语句中。相同的 Cursor 会话,相同的 Claude 模型,相同的提示符—— “请按用户群体和事件类型,以周为单位,向我展示上一季度的收入趋势。” 如果没有模式智能,LLM 就只能靠猜测。有了模式智能,LLM 就能一次性编写出符合 DuckDB 惯用格式且对列式数据库友好的 SQL 语句。
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 通过连接器名称消除歧义。
模式智能分析针对的是您的本地 DuckDB 文件。 SI扫描读取 .duckdb 文件通过您本地计算机上的网络代理进行传输——绝不会传输到云端。代理到查询流的云链接是 每个代理一个,无论有多少个 DuckDB 文件 您已注册。
MCP不适合您?不妨试试Nova AI。
完全跳过 JSON 配置: Nova AI 已集成到 Query Streams 网络门户中。 并针对您本地环境提出相同的 DuckDB 简明英语问题 .duckdb 文件 — 相同的代理,相同的只读强制执行,相同的模式智能,没有 MCP 管道。
先决条件
开始之前,请确保您已准备好:
- 免费注册 Query Streams 帐户 my.querystreams.com.
- 安装在包含您本地信息的计算机上的查询流网络代理
.duckdb文件(笔记本电脑、服务器或小型虚拟机)——参见 下载查询流代理. - 针对代理配置的 DuckDB 连接器——请参阅现有 连接器设置 指南
.duckdb文件路径。代理程序保存着该路径;AI 工具永远不会修改它。 - 任何支持 MCP 的 AI 客户端。本指南将以 Cursor、Claude Desktop、ChatGPT 和 Grok 为例;如果您使用 Windsurf、Zed、Continue、Cline、VS Code Copilot、Codex 或 Goose,配置块基本相同。
- 五分钟。
将其放入您的 AI 客户端
一个JSON代码片段即可用于Cursor、Claude、ChatGPT或Grok。所有地方都使用相同的键。
提问
“过去 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 { "mcpServers": { “查询流”: { 网址: "https://mcp.querystreams.com", “标题”: { “X-MCP-Key”: "qsmcp_PASTE_KEY_HERE" } } } }
// 设置 → 开发者 → 编辑配置 { "mcpServers": { “查询流”: { 网址: "https://mcp.querystreams.com", “标题”: { “X-MCP-Key”: "qsmcp_PASTE_KEY_HERE" } } } }
// 设置 → 应用和连接器 → 添加 MCP 服务器 URL https://mcp.querystreams.com 身份验证标头 X-MCP-Key 标题值 qsmcp_PASTE_KEY_HERE // 需要付费的 ChatGPT 套餐 //(Plus / Pro / Team / Enterprise)。
// 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 数据库运行查询,并将答案以文本加表格的形式返回。以下三个示例提示可供你先尝试:
活动, 用户, 和 交易 然后是表格。 qs_run_query 使用 SELECT 连接 用户 至 活动按桶 date_trunc('week', signup_at) 对于队列轴和 date_trunc('week', e.timestamp) - signup_at 对于保留轴,并进行计算。 COUNT(DISTINCT user_id) 按用户群规模进行标准化。您将看到一个以三角形形式呈现的留存率表格,表格按周划分,并附有文字说明,标明哪些用户群的留存率最高,以及留存率曲线在哪些位置开始下降——所有这些信息均由 AI 从 DuckDB 数据中推断得出,无需您编写任何 SQL 语句。当前日期 - 间隔 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 才能使用它吗? +
https://mcp.querystreams.com 从公共互联网——如果代理主机上的出站 HTTPS 工作正常,则 MCP 也工作正常。 了解仅出站连接的工作原理 →
我可以将哪些 AI 工具与 Query Streams MCP 配合使用? +
我可以撤销 MCP 密钥吗? +
/mcp 页面、每个组织通过计划设置和平台级别),这些都不需要数据库密码轮换或代理重启。 更多关于MCP密钥安全的信息 →
MCP 的使用量如何计入我的数据域? +
未压缩字节 而不是 压缩字节对于 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 / 空间?
+
鸭子数据库 库(目前捆绑了 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 都无法为您提供这些。
如果人工智能尝试写入或删除数据会发生什么? +
qs_run_query 调用由一个硬编码的只读验证器解析,该验证器仅允许 选择, 和, 和 解释 声明;其他任何内容(包括 复制到…… 写道: 创建表, 附以及 DuckDB 的 加载 / 安装 对于未列入白名单的扩展程序)返回 只读违规 而且永远不会连接到 DuckDB。验证器在您网络上的代理进程中运行,而不是在云端运行,因此即使云端遭到入侵也无法绕过它。 本地 .duckdb 文件此外,该代理还会以 DuckDB 的只读模式打开文件,因此即使假设绕过了验证器,也无法通过数据库句柄写入数据。
我可以看看人工智能实际问了什么吗? +
事件日志 包含组织、用户、密钥、范围、延迟和结果代码等信息。组织管理员只需一次查询即可回答“上周谁使用了 MCP,使用了哪个连接器,以及他们请求了什么?”。请注意,我们会记录这些信息。 工具名称和元数据而不是 SQL 文本或返回的行——这些内容会通过云链接传输,永远不会进入云日志。如果您需要完整的 SQL 审计,请在支持的情况下启用引擎端日志记录;对于 DuckDB 而言,这意味着使用 PRAGMA 启用分析 + PRAGMA 概况输出 在每次会话中记录 EXPLAIN 计划。本地 .duckdb 文件没有内置的审计日志——如果您需要完整的每次查询 SQL 捕获,请运行代理程序本身并启用详细查询日志记录(代理程序会将解析后的 SQL 写入其本地日志文件,然后再转发到 DuckDB)。
我是否必须运行 Schema Intelligence 才能使用 Query Streams MCP? +
读取parquet, 日期截断, 枢, 资格),以及通过人工智能发现的外键 qs_get_relationships — 对于从以下来源拼接的 DuckDB 模式尤其有价值 读取parquet / 读取 CSV 文件 在某些来源中,正式的外键很少被声明。如果没有系统集成,每个模式工具的响应都会携带一个 si_推荐 阻止人工智能采取行动,从而在对话过程中触发逃跑 qs_request_si_analysis. 模式智能新增的六个层以及扫描所需时间 →
如果我之后添加其他连接器,例如 Stripe 或 PostgreSQL,该怎么办? +
qs_list_connectors (会自动获取)。一个配置块即可购买您账户的全部内容,包括当前和未来的账户。 为什么一把钥匙可以连接所有接口 →
我必须设置 MCP 才能与我的数据进行交互吗? +
我可以注册多个 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 分钟即可完成设置。


