mcpField
M
MCP Iceberg Catalog

MCP Iceberg Catalog

本地服务
github.com/ahodrojAI 与智能体882 周前更新

关于 MCP Iceberg Catalog

面向使用 Apache Iceberg 数据湖的用户,提供通过 SQL 查询和管理 Iceberg 表的服务。它支持表发现、元数据操作及有限的数据读写。

主要功能

  1. 01连接 REST catalog
  2. 02列出表并查看表结构
  3. 03执行 SELECT 查询
  4. 04插入数据
  5. 05管理 catalog 和表元数据

适用场景

  1. 01发现 Iceberg catalog 中的表
  2. 02检查表结构和元数据
  3. 03筛选并查询表数据
  4. 04向 Iceberg 表写入数据

MCP 相关

该 MCP 服务通过 MCP 向 Claude 等客户端提供 Iceberg 表的 SQL 查询与管理能力。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"iceberg-service": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
启动命令npx -y @smithery/cli

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@smithery/cli

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP Iceberg Catalog

smithery badge

用于与 Apache Iceberg 交互的 MCP(Model Context Protocol)服务实现。此服务提供 SQL 接口,可通过 Claude 桌面应用查询和管理 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 catalog 和兼容 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 集成,实现高效的数据处理
    • 管理 catalog 连接和表操作
PyIceberg 集成

此服务通过多种方式使用 PyIceberg:

  1. Catalog 管理

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

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

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

后续需要实现的功能

  1. 查询操作

    • 实现 UPDATE 操作
    • 添加 DELETE 支持
    • 支持使用架构定义创建表
    • 添加 ALTER TABLE 操作
    • 实现表分区支持
  2. 数据类型

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

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

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

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

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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。