使用说明
MCP冰山目录
用于与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 - 支持操作:
- 列表表格
- 描述表
- 选择
- 插入
- 使用解析SQL查询
-
冰山一体化
- 用途
pyiceberg用于表格操作 - 与PyArrow集成,实现高效的数据处理
- 管理目录连接和表操作
- 用途
PyIceberg集成
服务器以多种方式利用PyIceberg:
-
目录管理
- 连接到REST目录
- 管理表元数据
- 处理命名空间操作
-
数据操作
- 在PyIceberg和PyArrow类型之间转换
- 通过PyArrow表处理数据插入
- 管理表架构和字段类型
-
查询执行
- 将SQL转换为PyIceberg操作
- 处理数据扫描和过滤
- 管理结果集转换
需要进一步实施
-
查询操作
- []执行UPDATE操作
- []添加DELETE支持
- []支持带有模式定义的CREATE TABLE
- []添加ALTER TABLE操作
- []实现表分区支持
-
数据类型
- []支持复杂类型(数组、映射、结构)
- []添加带有时区处理的时间戳
- []支持十进制类型
- []添加嵌套字段支持
-
性能改进
- []执行批量插入
- []添加查询优化
- []支持并行扫描
- []为频繁访问的数据添加缓存层
-
安全功能
- []添加身份验证机制
- []实施基于角色的访问控制
- []添加行级安全性
- []支持加密连接
-
监测和管理
- []添加指标集合
- []实现查询日志记录
- []添加性能监控
- []支持桌面维护操作
-
错误处理
- []改进错误消息
- []添加瞬态故障的重试机制
- []实施交易支持
- []添加数据验证