Iceberg目录服务

一个用于与Apache Iceberg交互的MCP服务器实现,提供SQL接口通过Claude桌面查询和管理Iceberg表。

  • by ahodroj
  • Python
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 ahodroj/mcp-iceberg-service

使用说明

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
  1. 先决条件

    • Python 3.10或更高版本
    • UV包安装程序(推荐)或pip
    • 访问Iceberg REST目录和S3兼容存储
  2. 如何在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服务器基于三个主要组件构建:

  1. MCP协议处理程序

    • 实现与Claude通信的模型上下文协议
    • 通过stdio处理请求/响应周期
    • 管理服务器生命周期和初始化
  2. 查询处理器

    • 使用解析SQL查询 sqlparse
    • 支持操作:
      • 列表表格
      • 描述表
      • 选择
      • 插入
  3. 冰山一体化

    • 用途 pyiceberg 用于表格操作
    • 与PyArrow集成,实现高效的数据处理
    • 管理目录连接和表操作

PyIceberg集成

服务器以多种方式利用PyIceberg:

  1. 目录管理

    • 连接到REST目录
    • 管理表元数据
    • 处理命名空间操作
  2. 数据操作

    • 在PyIceberg和PyArrow类型之间转换
    • 通过PyArrow表处理数据插入
    • 管理表架构和字段类型
  3. 查询执行

    • 将SQL转换为PyIceberg操作
    • 处理数据扫描和过滤
    • 管理结果集转换

需要进一步实施

  1. 查询操作

    • []执行UPDATE操作
    • []添加DELETE支持
    • []支持带有模式定义的CREATE TABLE
    • []添加ALTER TABLE操作
    • []实现表分区支持
  2. 数据类型

    • []支持复杂类型(数组、映射、结构)
    • []添加带有时区处理的时间戳
    • []支持十进制类型
    • []添加嵌套字段支持
  3. 性能改进

    • []执行批量插入
    • []添加查询优化
    • []支持并行扫描
    • []为频繁访问的数据添加缓存层
  4. 安全功能

    • []添加身份验证机制
    • []实施基于角色的访问控制
    • []添加行级安全性
    • []支持加密连接
  5. 监测和管理

    • []添加指标集合
    • []实现查询日志记录
    • []添加性能监控
    • []支持桌面维护操作
  6. 错误处理

    • []改进错误消息
    • []添加瞬态故障的重试机制
    • []实施交易支持
    • []添加数据验证