← 返回目录
M

MCP Server Motherduck

官方
为 AI 助手和 IDE 提供 SQL 分析与数据工程能力
分类
数据库 第 17 / 58
Stars
★ 527 非常热门
传输方式
stdio(本地进程) · Streamable HTTP
运行环境
Python · Docker
凭据
无需凭据
许可证
MIT
最近提交
工具数
5
60FMRS · C

这个 MCP 服务器将 AI 助手连接到 DuckDB 和 MotherDuck,提供强大的 SQL 分析能力。它灵活支持本地、内存、S3 和云数据库,并可通过开关控制读写权限。默认只读模式降低了风险,但需注意第三方访问时的安全配置。

最强项 · 文档质量 15/20 最弱项 · 可靠性 7/20

可靠性
7/20
安全与权限
13/20
维护活跃度
12/20
文档质量
15/20
安装易用性
13/20
查看各项评分依据
可靠性 7/20
README 和 manifest 提供了清晰的启动方式、工具表和 CLI 参数,且有 Docker、发布流程和工具说明,看起来 happy path 可行。但未提供任何源码、测试用例或 CI 工作流,无法验证 MCP init/工具列表握手是否真实可靠,也无法确认声明的工具与实现行为完全一致。错误处理和边界情况证据不足,因此按静态校准规则不能高于 12,给予 7 分。
安全与权限 13/20
该服务器默认只读,写操作需显式使用 --read-write,切换数据库需 --allow-switch-databases,并提供 --motherduck-saas-mode 限制本地文件访问;令牌和 AWS 凭据被标记为 secret。README 明确警告只读模式仍可访问本地文件系统、修改 DuckDB 设置,并建议第三方场景改用托管远程 MCP,数据流披露较清楚。但缺少源码来验证权限执行是否严格、危险操作是否有确认机制,也没有看到漏洞报告渠道。未发现真实令牌泄露、恶意代码等红线问题,因此给 13 分。
维护活跃度 12/20
仓库有 MIT 许可证、版本 1.0.7,README 描述了通过 GitHub Action 发布到 PyPI/MCP registry 的流程,且未归档。但缺少提交频率、问题响应时间、依赖更新和漏洞响应渠道等证据,维护治理仍有缺口。Stars 仅作为发现信号,不计入分数,故给 12 分。
文档质量 15/20
README 分层清晰:快速开始、多种客户端配置、CLI 参数、环境变量、Docker、故障排查、安全部署建议,并披露了默认行数/字符限制、默认数据库变化等限制。但缺少成本信息,故障排查条目较少,且由于没有源码和测试,无法核实文档与实现是否完全一致,因此给 15 分。
安装易用性 13/20
安装路径简洁:通过 uv/uvx 一条命令即可启动,README 提供了 Claude、Cursor、VS Code、Kiro 等多客户端的 JSON 或 CLI 示例,并有 Docker 方式。但静态校准要求没有真实 CI 和提交的测试证据时 setup 不得超过 15;同时依赖 uv,且故障排查中提到 uvx ENOENT 等环境问题,因此给 13 分。

静态评测 · 未实际运行收录于 2026-08-07

查看 FMRS 评分方法 →

选型与风险

能访问什么读取本地文件写入 / 删除本地文件访问网络连接数据库

适合谁

  • 需要在本地或远程数据库上进行 SQL 分析的数据科学家和分析师
  • 希望在 IDE 中使用 AI 辅助数据工程的开发者
  • 需要快速探索 DuckDB 文件的团队
  • 希望结合 MotherDuck 云功能的用户

不适合谁

  • 需要完全托管的远程 MCP 服务而不需本地安装的用户
  • 需要严格安全的生产环境(默认只读模式仍可访问本地文件系统)
  • 需要第三方访问权限且无法接受额外安全配置的用户

所需权限

  • 访问本地文件系统(用于读取 DuckDB 文件或导出数据)
  • 读取环境变量以获取 MotherDuck 令牌和 AWS 凭据
  • 在默认只读模式下执行 SQL 查询,如需写入则需显式启用
  • 可选:切换到其他数据库连接(需 --allow-switch-databases)

风险与副作用

  • 如果启用写入模式,可能会修改或删除数据库中的数据
  • 默认情况下,对第三方开放访问时,可能暴露本地文件系统或敏感数据
  • MotherDuck 令牌或 AWS 凭据可能被泄露,如果配置不当
  • 查询可能会消耗大量资源(内存、CPU)或超时

安装接入

准备工作

运行环境:Python · Docker

MOTHERDUCK_TOKEN 可选密钥 同上,MotherDuck 访问令牌的大写形式。
AWS_ACCESS_KEY_ID 可选密钥 连接 S3 上的 DuckDB 文件时使用的 AWS 访问密钥,从 AWS IAM 获取。
AWS_SECRET_ACCESS_KEY 可选密钥 与 AWS_ACCESS_KEY_ID 配对的 AWS 秘密访问密钥。
AWS_SESSION_TOKEN 可选密钥 使用临时凭证(IAM 角色、SSO 等)时所需的会话令牌。
其他可选配置项(3 个)
HOME 可选 DuckDB 用于扩展和配置的主目录,可用 --home-dir 覆盖。
AWS_DEFAULT_REGION 可选 S3 连接所用的 AWS 区域。
AWS_ENDPOINT 可选 S3 连接的自定义端点。
  1. 使用 pip 或 brew 安装 uv。
  2. 将 JSON 配置添加到您的 MCP 客户端配置中,或使用本文档中提供的客户端特定命令。例如,对于内存 DuckDB 开发模式:使用 'uvx mcp-server-motherduck --db-path :memory: --read-write --allow-switch-databases'。
  3. 对于 MotherDuck,请提供访问令牌(通过 --motherduck-token 或环境变量 motherduck_token)。
claude_desktop_config.json
{
  "mcpServers": {
    "DuckDB (in-memory, r/w)": {
      "command": "uvx",
      "args": [
        "mcp-server-motherduck",
        "--db-path",
        ":memory:",
        "--read-write",
        "--allow-switch-databases"
      ]
    }
  }
}

以 Claude Desktop 为例。其他客户端的配置文件位置或字段可能不同(如 VS Code 使用 servers 字段),可用下方配置生成器转换。

.vscode/mcp.json
{
  "servers": {
    "DuckDB (in-memory, r/w)": {
      "command": "uvx",
      "args": [
        "mcp-server-motherduck",
        "--db-path",
        ":memory:",
        "--read-write",
        "--allow-switch-databases"
      ]
    }
  }
}

写入项目的 .vscode/mcp.json(VS Code 使用 servers 字段)。

Terminal
claude mcp add 'DuckDB (in-memory, r/w)' -- uvx mcp-server-motherduck --db-path :memory: --read-write --allow-switch-databases

在终端运行;先把 <…> 占位符换成你自己的值。

验证是否装好

安装后,在客户端的工具列表中应出现 execute_query、list_databases、list_tables、list_columns(以及启用 --allow-switch-databases 后的 switch_database_connection);运行 list_databases 若返回数据库列表即说明连接成功。

常见排障

  1. 'spawn uvx ENOENT':请指定 uvx 的完整路径(运行 which uvx)
  2. 文件被锁定:确保 --ephemeral-connections 已启用(默认开启),且不要以读写模式连接同一文件
  3. MotherDuck 只读连接需要读扩展令牌;否则请使用 --read-write
  4. 确保数据库路径正确(如 :memory:、md:、绝对文件路径或 s3:// URL)

试试这样问

连接成功后,可以直接对 AI 助手这样说:

  • 用 execute_query 查询当前内存数据库里有哪些表
  • 列出所有可用的数据库
  • 查看表 my_table 的所有列
  • 切换数据库连接到 md: 并列出其中的表

工具能力 5

execute_query 写入
执行 SQL 查询(DuckDB 方言)
list_databases 只读
列出所有数据库
list_tables 只读
列出表或视图
list_columns 只读
列出表或视图的列
switch_database_connection 写入
切换到其他数据库(需 --allow-switch-databases 标志)

使用场景

让 AI 助手分析本地 DuckDB 文件中的数据
对内存中的 DuckDB 数据库进行交互式查询和探索
将本地数据与 MotherDuck 云数据库结合进行分析
在 S3 上查询 DuckDB 数据库
在开发环境中使用 AI 进行数据工程和原型设计

支持客户端

Claude Desktop
Claude Code
Codex
Gemini CLI
Cursor
VS Code
Kiro

依据项目文档列出,未经本站实测。

详细介绍

这是一个本地 MCP 服务器,将 AI 助手连接到 DuckDB 或 MotherDuck 数据库。它支持对本地 DuckDB 文件、内存数据库、S3 托管的数据库以及 MotherDuck 进行查询。服务器允许执行 SQL 读写查询、浏览数据库目录,并可随时切换不同的数据库连接。默认以只读模式运行,需显式启用写入权限。

同类可选方案

源版本 41acb581d9bc 数据同步于 2026-10-12 查看 FMRS 评分方法