MCP Iceberg Catalog

MCP Iceberg Catalog

用于与 Apache Iceberg 目录交互的 MCP 服务器,允许通过 LLM 提示进行数据湖发现和元数据搜索。

ahodroj

研究与数据
访问服务器

Tools

execute_query

Execute a query on Iceberg tables

README

MCP Iceberg Catalog

smithery badge

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

Claude Desktop 作为你的 Iceberg 数据湖 Catalog

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" : "你的 ICEBERG 仓库名称",
        "S3_ENDPOINT" : "如果使用 S3,则为可选",
        "AWS_ACCESS_KEY_ID" : "你的 S3 访问密钥",
        "AWS_SECRET_ACCESS_KEY" : "你的 S3 密钥"
      }
    }
  }
}

设计

架构

MCP 服务器构建在三个主要组件之上:

  1. MCP 协议处理器

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

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

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

PyIceberg 集成

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

  1. Catalog 管理

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

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

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

需要进一步实现

  1. 查询操作

    • [ ] 实现 UPDATE 操作
    • [ ] 添加 DELETE 支持
    • [ ] 支持使用模式定义创建表 (CREATE TABLE)
    • [ ] 添加 ALTER TABLE 操作
    • [ ] 实现表分区支持
  2. 数据类型

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

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

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

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

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

推荐服务器

Crypto Price & Market Analysis MCP Server

Crypto Price & Market Analysis MCP Server

一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。

精选
TypeScript
MCP PubMed Search

MCP PubMed Search

用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。

精选
Python
mixpanel

mixpanel

连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

精选
TypeScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Nefino MCP Server

Nefino MCP Server

为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。

官方
Python
Vectorize

Vectorize

将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。

官方
JavaScript
Mathematica Documentation MCP server

Mathematica Documentation MCP server

一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。

本地
Python
kb-mcp-server

kb-mcp-server

一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。

本地
Python
Research MCP Server

Research MCP Server

这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

本地
Python
Cryo MCP Server

Cryo MCP Server

一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。

本地
Python