如果你还没听过 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 后:
- 你的数据文件(.duckdb / .csv / .parquet)在本地
- AI 通过 MCP 协议直接连接 DuckDB 引擎
- 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/TSV:
SELECT * FROM 'sales.csv' - Parquet:
SELECT * FROM 'data/*.parquet' - JSON:
SELECT * FROM 'logs.json' - S3/GCS:
SELECT * FROM 's3://bucket/data.parquet' - HTTP(S):
SELECT * FROM 'https://example.com/data.parquet'
这意味着你不需要把数据导入任何数据库——AI 直接读原始文件。
和其他方案对比
| 方案 | 需要部署 | 需要 API key | AI 能交互式查询 |
|---|---|---|---|
| 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 可能是今天最高效的改动。
