M

MCP Iceberg工具

@ahodroj/mcp-iceberg-service
0 Stars 360 次浏览 ahodroj 更新于 2026-08-23

一种模型上下文协议服务器,通过 Claude 桌面提供用于查询和管理 Apache Iceberg 表的 SQL 接口,允许与 Iceberg 数据湖进行自然语言交互。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "iceberg": {
      "args": [
        "--directory",
        "PATH_TO_/mcp-iceberg-service",
        "run",
        "mcp-server-iceberg"
      ],
      "command": "uv",
      "env": {
        "AWS_ACCESS_KEY_ID": "YOUR S3 ACCESS KEY",
        "AWS_SECRET_ACCESS_KEY": "YOUR S3 SECRET KEY",
        "ICEBERG_CATALOG_URI": "http://localhost:8181",
        "ICEBERG_WAREHOUSE": "YOUR ICEBERG WAREHOUSE NAME",
        "S3_ENDPOINT": "OPTIONAL IF USING S3"
      }
    }
  }
}

该服务需要配置环境变量:AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、ICEBERG_CATALOG_URI、ICEBERG_WAREHOUSE、S3_ENDPOINT

可用工具 (1 个)

该服务在 MCP 协议中暴露的工具,AI 可按需调用

execute_query 1 个参数 需填 1 项

Execute a query on Iceberg tables

必填参数:query

服务介绍

MCP Iceberg Catalog

smithery badge

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

Claude Desktop 作为您的 Iceberg 数据湖目录

image

如何在 Claude Desktop 中安装

通过 Smithery 安装

要通过 Smithery 自动为 Claude Desktop 安装 MCP Iceberg Catalog:

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 通信的 Model Context Protocol
    • 通过 stdio 处理请求/响应周期
    • 管理服务器生命周期和初始化
  2. 查询处理器

    • 使用 sqlparse 解析 SQL 查询
    • 支持的操作:
      • LIST TABLES
      • DESCRIBE TABLE
      • SELECT
      • INSERT
  3. Iceberg 集成

    • 使用 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. 错误处理

    • 改进错误消息
    • 为暂时性故障添加重试机制
    • 实现事务支持
    • 添加数据验证

相关 MCP 服务