返回市场
MCP-冰山服务

MCP-冰山服务

作者:ahodroj7 星标更新:2025-04-04

项目介绍

MCP Iceberg 目录

smithery 徽章

这是一个用于与 Apache Iceberg 交互的 MCP(模型上下文协议)服务器实现。此服务器通过 Claude 桌面提供一个 SQL 接口来查询和管理 Iceberg 表。

使用 Claude 桌面作为您的 Iceberg 数据湖目录

图像

如何在 Claude 桌面上安装

通过 Smithery 安装

要通过 Smithery 自动安装 MCP Iceberg 目录到 Claude 桌面,请执行以下命令:

npx -y @smithery/cli install @ahodroj/mcp-iceberg-service --client claude
  1. 先决条件

    • Python 3.10 或更高版本
    • UV 包安装器(推荐)或 pip
    • 对 Iceberg REST 目录和兼容 S3 的存储的访问权限
  2. 如何在 Claude 桌面上安装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" : "您的 Iceberg 仓库名称",
        "S3_ENDPOINT" : "如果使用 S3,则可选",
        "AWS_ACCESS_KEY_ID" : "您的 S3 访问密钥",
        "AWS_SECRET_ACCESS_KEY" : "您的 S3 密钥"
      }
    }
  }
}

设计

架构

MCP 服务器基于三个主要组件构建:

  1. MCP 协议处理器

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

    • 使用 sqlparse 解析 SQL 查询
    • 支持的操作包括:
      • 列表表
      • 描述表
      • 选择
      • 插入
  3. Iceberg 集成

    • 使用 pyiceberg 进行表操作
    • 与 PyArrow 集成以高效处理数据
    • 管理目录连接和表操作

PyIceberg 集成

服务器利用 PyIceberg 在多个方面:

  1. 目录管理

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

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

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

需要进一步实现的功能

  1. 查询操作

    • 实现更新操作
    • 添加删除支持
    • 支持带有模式定义的创建表
    • 添加修改表操作
    • 实现表分区支持
  2. 数据类型

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

    • 实现批量插入
    • 添加查询优化
    • 支持并行扫描
    • 添加缓存层以支持频繁访问的数据
  2. 安全特性

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

    • 添加指标收集
    • 实现查询日志记录
    • 添加性能监控
    • 支持表维护操作
  4. 错误处理

    • 改善错误消息
    • 添加瞬态故障重试机制
    • 实现事务支持
    • 添加数据验证