Skip to main content
Glama

DuckDB MCP 服务器

PyPI - 版本PyPI - 许可证

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

🌟 什么是 DuckDB MCP 服务器?

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

  • 直接从各种来源(如 CSV、Parquet、JSON 等)查询数据。

  • 无需复杂设置即可访问云存储(S3 等)中的数据

  • 使用 SQL 执行复杂的数据分析

  • 通过适当的背景和理解来生成数据洞察

Related MCP server: MCP Database Server

🚀 主要特点

  • 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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mustafahasankhan/duckdb-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server