Featured image of post DuckDB MCP Server:让 AI Agent 直接查询你的数据

DuckDB MCP Server:让 AI Agent 直接查询你的数据

MCP(Model Context Protocol)正在成为 AI Agent 连接外部数据的标准协议。DuckDB MCP Server 让 AI 助手能像人一样用 SQL 查询你的本地数据文件——无需写 API、不用搭后端,一行配置就能让 Claude、Cursor 等 AI 工具直接读取你的 CSV、Parquet 和数据库。

如果你还没听过 MCP,简单来说它是 Anthropic 提出的AI 工具开放协议——相当于 AI 世界的 USB-C 接口。Claude、Cursor、Cline 等 AI 客户端都原生支持 MCP,只要装一个 MCP Server,AI 就能直接调用你的工具和读取你的数据。

DuckDB 官方发布了自己的 MCP Server。装上之后,Claude 可以在聊天窗口里直接对你本地的 DuckDB 数据库、CSV 文件甚至 S3 上的 Parquet 文件执行 SQL 查询——不需要你复制粘贴数据,不需要写 API 转发层。

一秒上手

# 全局安装
npm install -g @duckdb/mcp

# 或者直接用 npx 跑
npx @duckdb/mcp --dbpath /path/to/your/data.duckdb

装完之后,在 Claude Desktop 的配置文件中加一行:

{
  "mcpServers": {
    "duckdb": {
      "command": "npx",
      "args": ["@duckdb/mcp", "--dbpath", "/path/to/your/data.duckdb"]
    }
  }
}

重启 Claude,你就能在聊天框里看到 DuckDB 的锤子图标了。

这样做有什么用?

最直接的用途:让 AI 读取你的本地数据,不用你手动上传。

以前你想让 AI 分析一个 CSV 文件,流程是:打开文件→复制几行→贴给 AI→AI 猜字段类型→你猜测析结果对不对。数据大了还不能复制(超上限)。

用 DuckDB MCP Server 后:

  1. 你的数据文件(.duckdb / .csv / .parquet)在本地
  2. AI 通过 MCP 协议直接连接 DuckDB 引擎
  3. AI 自动写 SQL 查询,返回结果就在对话里

实际场景举例:

  • 分析销售数据:对 Claude 说"上个月哪个品类销量最高",它会自动写 SELECT category, SUM(qty) FROM sales GROUP BY category ORDER BY 2 DESC LIMIT 10,跑完把结果用中文告诉你
  • 数据清洗:告诉 AI “把这个 CSV 里的空值填上,输出清洗后的文件”,它能读取→分析→写新文件
  • 多文件关联:orders.csv + customers.parquet,AI 能自动做 JOIN 分析,不用你写任何代码

不只是查数据库

DuckDB MCP Server 的能力不止于连接 .duckdb 文件。它原生支持:

  • CSV/TSVSELECT * FROM 'sales.csv'
  • ParquetSELECT * FROM 'data/*.parquet'
  • JSONSELECT * FROM 'logs.json'
  • S3/GCSSELECT * FROM 's3://bucket/data.parquet'
  • HTTP(S)SELECT * FROM 'https://example.com/data.parquet'

这意味着你不需要把数据导入任何数据库——AI 直接读原始文件。

和其他方案对比

方案需要部署需要 API keyAI 能交互式查询
DuckDB MCP装个 npm 包即可
搭一个 API 后端✅ 要写 Flask/FastAPI❌ 只能定时取
手动传文件给 AI❌ 但数据量受限❌ 只能单次分析
LangChain DuckDB 工具✅ 要写链✅ 要 LLM key✅ 但配置复杂

DuckDB MCP 的优势很明显:零部署、零编码、AI 直接对话式查询

需要注意的坑

1. 路径必须用绝对路径

MCP 配置中的 --dbpath 用相对路径可能不生效。建议统一用绝对路径:

--dbpath /Users/you/projects/data/analytics.duckdb

2. 大文件查询注意超时

Claude 默认的 tool 调用有时间限制(约 30-60 秒)。如果查询涉及几十 GB 的文件,可能会超时。建议先做聚合再返回:

-- 不要直接 SELECT *
-- 先 GROUP BY 聚合
SELECT region, SUM(revenue) FROM large_file.parquet GROUP BY region

3. 扩展路径配置

如果要用 httpfs(S3/HTTP 读取),需要手动加载扩展:

npx @duckdb/mcp --dbpath :memory: --extensions httpfs

在 AI 对话中也要加一句"先加载 httpfs 扩展"。

4. 安全考虑

MCP Server 是有文件系统访问权限的。不要在不信任的 AI 客户端上连接本地数据库,或者用只读模式:

--readonly  # 只读模式,防止 AI 写数据

延伸:不只有 DuckDB

如果你用 PostgreSQL、SQLite 或者 MySQL,也有对应的 MCP Server:

  • @anthropic/mcp-postgres — PostgreSQL
  • @anthropic/mcp-sqlite — SQLite
  • Postgres 也有社区版 MCP Server

但 DuckDB 的独特优势是文件即数据库。不需要启动服务、不需要用户权限管理、不需要网络端口。装个 CLI 包就能用,它在"零部署数据查询"这个场景上没有对手。

总结

DuckDB MCP Server 把 Data + AI 的连接成本降到了最低:

  • 安装:npm install -g @duckdb/mcp
  • 配置:Claude Desktop 配置文件加一行
  • 使用:直接对话说"查一下这个数据"

不需要写 SQL(AI 帮你写)、不需要搭 API(MCP 直接连)、不需要传文件(读本地文件)。

如果你的工作流里经常需要"把数据给 AI 分析",装一个 DuckDB MCP Server 可能是今天最高效的改动。

📺 Watch video tutorials → DuckDB Lab YouTube

Subscribe for more DuckDB & AI automation tutorials

使用 Hugo 构建
主题 StackJimmy 设计