DuckDB MCP Server

MIT License
3
  • Apple

Integrations

  • Enables direct SQL queries on various data sources including CSV, Parquet, JSON, and cloud storage like S3, allowing for sophisticated data analysis with DuckDB's analytical database capabilities.

  • Provides ability to query and analyze SQLite databases through DuckDB's interface, extending analytical capabilities to SQLite data sources.

DuckDB MCP 服务器

模型上下文协议 (MCP) 服务器实现,使 Claude 等 AI 助手能够与 DuckDB 交互,从而实现强大的数据分析功能。

🌟 什么是 DuckDB MCP 服务器?

DuckDB MCP 服务器通过模型上下文协议 (MCP)将 AI 助手连接到高性能分析型数据库DuckDB 。这使得 AI 模型能够:

  • 直接从各种来源(如 CSV、Parquet、JSON 等)查询数据。
  • 无需复杂设置即可访问云存储(S3 等)中的数据
  • 使用 SQL 执行复杂的数据分析
  • 通过适当的背景和理解来生成数据洞察

🚀 主要特点

  • SQL 查询工具:使用 DuckDB 强大的语法执行任何 SQL 查询
  • 多个数据源:直接从以下位置查询:
    • 本地文件(CSV、Parquet、JSON 等)
    • S3 存储桶和云存储
    • SQLite 数据库
    • DuckDB 支持的所有其他数据源
  • 自动连接管理:自动数据库文件创建和连接处理
  • 智能凭证处理:无缝 AWS/S3 凭证管理
  • 文档资源:内置 DuckDB SQL 和 AI 助手数据导入参考

📋 要求

  • Python 3.10+
  • 与 MCP 兼容的客户端(Claude Desktop、Cursor、带有 Copilot 的 VS Code 等)

💻安装

使用 pip

pip install duckdb-mcp-server

从源头

git clone https://github.com/yourusername/duckdb-mcp-server.git cd duckdb-mcp-server pip install -e .

🔧 配置

命令行选项

duckdb-mcp-server --db-path path/to/database.db [options]

必需参数:

  • --db-path - DuckDB 数据库文件的路径(如果不存在则创建)

可选参数:

  • --readonly - 以只读模式运行(如果数据库不存在将会出错)
  • --s3-region - AWS S3 区域(默认:使用 AWS_DEFAULT_REGION 环境变量)
  • --s3-profile - S3 凭证的 AWS 配置文件(默认:使用 AWS_PROFILE 或“默认”)
  • --creds-from-env - 使用来自环境变量的 AWS 凭证

🔌 使用 Claude Desktop 进行设置

  1. claude.ai/download安装 Claude Desktop
  2. 编辑Claude Desktop的配置文件:macOS~/Library/Application Support/Claude/claude_desktop_config.json
    Windows%APPDATA%/Claude/claude_desktop_config.json
  3. 添加 DuckDB MCP 服务器配置:
{ "mcpServers": { "duckdb": { "command": "duckdb-mcp-server", "args": [ "--db-path", "~/claude-duckdb/data.db" ] } } }

📊 使用示例

配置完成后,您可以让您的 AI 助手使用 DuckDB 分析数据:

"Load the sales.csv file and show me the top 5 products by revenue"

AI将生成并执行适当的SQL:

-- Load and query the CSV data SELECT product_name, SUM(quantity * price) AS revenue FROM read_csv('sales.csv') GROUP BY product_name ORDER BY revenue DESC LIMIT 5;

使用 S3 数据

直接从 S3 存储桶查询数据:

"Analyze the daily user signups from our analytics data in S3"

AI将生成适当的SQL来查询S3:

SELECT date_trunc('day', signup_timestamp) AS day, COUNT(*) AS num_signups FROM read_parquet('s3://my-analytics-bucket/signups/*.parquet') GROUP BY day ORDER BY day DESC;

🌩️ 云存储身份验证

DuckDB MCP 服务器按以下顺序处理 AWS 身份验证:

  1. 显式凭证(如果启用了--creds-from-env
  2. 命名配置文件凭证(通过--s3-profile
  3. 默认凭证链(环境、共享凭证文件等)

🛠️ 开发

# Clone the repository git clone https://github.com/yourusername/duckdb-mcp-server.git cd duckdb-mcp-server # Set up a virtual environment python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate # Install in development mode pip install -e ".[dev]" # Run tests pytest

📜 许可证

该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅LICENSE文件。

🙏 贡献

欢迎贡献代码!欢迎提交 Pull 请求。

-
security - not tested
A
license - permissive license
-
quality - not tested

模型上下文协议服务器实现将 AI 助手连接到 DuckDB,使它们能够通过 SQL 查询和分析来自各种来源(包括 CSV、Parquet、JSON 和云存储)的数据。

  1. 🌟 What is DuckDB MCP Server?
    1. 🚀 Key Features
      1. 📋 Requirements
        1. 💻 Installation
          1. Using pip
          2. From source
        2. 🔧 Configuration
          1. Command Line Options
        3. 🔌 Setting Up with Claude Desktop
          1. 📊 Example Usage
            1. Working with S3 Data
          2. 🌩️ Cloud Storage Authentication
            1. 🛠️ Development
              1. 📜 License
                1. 🙏 Contributing
                  ID: 6ui00x9yzh