DuckDB数据管理服务

MCPlucker是一个为DuckDB设计的模型上下文协议(MCP)服务器,提供高级数据加载、查询和分析功能。

  • by dacort
  • Go
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 dacort/mcplucker

使用说明

MCPlucker 的🦆

DuckDB的综合模型上下文协议(MCP)服务器,提供高级数据加载、查询和分析功能。

快速开始

先决条件

  • 转到1.24或更高版本

安装

git clone https://github.com/dacort/mcplucker.git
cd mcplucker
go build -o mcplucker ./main.go

用法

MCPlucker使用stdio传输作为MCP服务器运行

添加到克劳德代码:

  1. 构建项目:
go build -o mcplucker ./main.go
  1. 将MCP服务器添加到Claude代码中:
claude mcp add duckdb ./mcplucker
  1. 开始在Claude Code会话中使用MCPlucker!

可用工具

核心数据管理

  • create_table_from_file -从CSV、JSON或Parquet文件创建表格
  • list_tables -列出数据库中的所有表和视图
  • describe_table -获取详细的模式信息和示例数据
  • execute_query -执行具有可配置限制的SQL查询

示例用法

一旦连接到MCP客户端(如Claude Desktop),您就可以自然地进行交互:

正在加载数据:

"Hello, my friend, can you create a duckdb database from test_data/products.json?"

探索表格:

"Can you give me a quick summary of the products table?"
⏺ Products Table Summary:
  - 5 total products across 2 categories (Electronics, Furniture)
  - Price range: $25.50 - $999.99 (avg: $320.09)
  - Stock status: 4 in stock, 1 out of stock
  - Categories: Electronics (4 items), Furniture (1 item)

正在运行查询:

"Show me all electronics products that are in stock"
⏺ Electronics Products In Stock:

  | ID  | Name    | Price   |
  |-----|---------|---------|
  | 1   | Laptop  | $999.99 |
  | 2   | Mouse   | $25.50  |
  | 4   | Monitor | $299.99 |

  3 electronics products are currently in stock.

通过MCP协议的技术使用:

{
  "tool": "create_table_from_file",
  "arguments": {
    "table_name": "products", 
    "file_path": "test_data/products.json"
  }
}

特性

✅ 文件格式支持:CSV、JSON、Parquet
✅ DuckDB集成:本机DuckDB性能和SQL兼容性
✅ 类型安全:具有全面验证的结构化输入/输出
✅ 错误处理:清除错误消息和验证
✅ 符合MCP标准:完全模型上下文协议兼容性

开发状态

  • ✅ 第一阶段:项目结构和基本MCP服务器
  • ✅ 第2阶段:MVP功能(文件加载、查询)
  • 🚧 第三期:云连接(S3、Azure、冰山)
  • 📋 阶段4:分析功能(查询优化、分析)
  • 📋 阶段5:数据库连接(PostgreSQL、MySQL、SQLite)

贡献

看 CLAUDE.md 详细的开发指南和构建说明。

许可证

MIT许可证