mcp-server-duckdb

mcp-server-duckdb

为DuckDB提供数据库交互能力的模型上下文协议(MCP)服务器实现。

PyPI - Version smithery badge

简介

mcp-server-duckdb 是一个模型上下文协议(MCP)服务器,允许语言模型(如 Claude)通过 SQL 与 DuckDB 数据库交互。

功能

  • 执行 SQL 查询(SELECT, JOIN 等)
  • 创建表和数据库结构
  • 支持只读模式保护数据

安装

通过 Smithery 安装(推荐)

npx -y @smithery/cli install mcp-server-duckdb --client claude

手动安装

  1. 安装包:

    pip install mcp-server-duckdb
    
  2. 配置 Claude Desktop:

    在 Claude Desktop 配置文件中添加:

    {
      "mcpServers": {
        "duckdb": {
          "command": "uvx",
          "args": [
            "mcp-server-duckdb",
            "--db-path",
            "~/mcp-server-duckdb/data/data.db"
          ]
        }
      }
    }
    

    配置文件位置:

    • MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%/Claude/claude_desktop_config.json

配置选项

  • db-path(必需):DuckDB 数据库文件路径
  • --readonly(可选):以只读模式运行,防止数据被修改

使用示例

在 Claude 中使用以下提示来与数据库交互:

请创建一个名为 employees 的表,包含 id、name 和 salary 字段,然后插入几行数据并查询所有员工。

Claude 将使用 SQL 执行这些操作并返回结果。

调试

使用 MCP Inspector 进行调试:

npx @modelcontextprotocol/inspector uv --directory ~/codes/mcp-server-duckdb run mcp-server-duckdb --db-path ~/mcp-server-duckdb/data/data.db

注意事项

  • 服务器提供统一的 query 工具,适用于所有 SQL 操作
  • 只读模式可防止任何写入操作,保护数据完整性
  • 如果数据库文件不存在,服务器会自动创建(非只读模式)

更多信息请访问 Smithery 页面