MCP冰山目录
](https://smithery.ai/server/@ahodroj/mcp-iceberg-service)
用于与Apache Iceberg交互的MCP(模型上下文协议)服务器实现。该服务器提供了一个SQL接口,用于通过Claude桌面查询和管理Iceberg表。
Claude Desktop作为您的冰山数据湖目录
如何在Claude Desktop中安装
通过Smithery安装
通过以下方式自动安装MCP Iceberg Catalog for Claude Desktop 史密瑟里:
npx -y @smithery/cli install @ahodroj/mcp-iceberg-service --client claude- 先决条件
- Python 3.10或更高版本 - UV包安装程序(推荐)或pip - 访问Iceberg REST目录和S3兼容存储
- 如何在Claude Desktop中安装
将以下配置添加到 claude_desktop_config.json:
{
"mcpServers": {
"iceberg": {
"command": "uv",
"args": [
"--directory",
"PATH_TO_/mcp-iceberg-service",
"run",
"mcp-server-iceberg"
],
"env": {
"ICEBERG_CATALOG_URI" : "http://localhost:8181",
"ICEBERG_WAREHOUSE" : "YOUR ICEBERG WAREHOUSE NAME",
"S3_ENDPOINT" : "OPTIONAL IF USING S3",
"AWS_ACCESS_KEY_ID" : "YOUR S3 ACCESS KEY",
"AWS_SECRET_ACCESS_KEY" : "YOUR S3 SECRET KEY"
}
}
}
}设计
建筑
MCP服务器基于三个主要组件构建:
- MCP协议处理程序
- 实现与Claude通信的模型上下文协议 - 通过stdio处理请求/响应周期 - 管理服务器生命周期和初始化
- 查询处理器
- 使用解析SQL查询 sqlparse - 支持操作: - 列表表格 - 描述表 - 选择 - 插入
- 冰山一体化
- 用途 pyiceberg 用于表格操作 - 与PyArrow集成,实现高效的数据处理 - 管理目录连接和表操作
PyIceberg集成
服务器以多种方式利用PyIceberg:
- 目录管理
- 连接到REST目录 - 管理表元数据 - 处理命名空间操作
- 数据操作
- 在PyIceberg和PyArrow类型之间转换 - 通过PyArrow表处理数据插入 - 管理表架构和字段类型
- 查询执行
- 将SQL转换为PyIceberg操作 - 处理数据扫描和过滤 - 管理结果集转换
需要进一步实施
- 查询操作
- \[\]执行UPDATE操作 - \[\]添加DELETE支持 - \[\]支持带有模式定义的CREATE TABLE - \[\]添加ALTER TABLE操作 - \[\]实现表分区支持
- 数据类型
- \[\]支持复杂类型(数组、映射、结构) - \[\]添加带有时区处理的时间戳 - \[\]支持十进制类型 - \[\]添加嵌套字段支持
- 性能改进
- \[\]执行批量插入 - \[\]添加查询优化 - \[\]支持并行扫描 - \[\]为频繁访问的数据添加缓存层
- 安全功能
- \[\]添加身份验证机制 - \[\]实施基于角色的访问控制 - \[\]添加行级安全性 - \[\]支持加密连接
- 监测和管理
- \[\]添加指标集合 - \[\]实现查询日志记录 - \[\]添加性能监控 - \[\]支持桌面维护操作
- 错误处理
- \[\]改进错误消息 - \[\]添加瞬态故障的重试机制 - \[\]实施交易支持 - \[\]添加数据验证

