湖仓自然语言查询工具

IcebergMCP是一款基于Apache Iceberg™的湖仓自然语言查询工具,允许用户通过Claude、Cursor等MCP客户端使用自然语言与湖仓数据进行交互。

  • by ryft-io
  • Python
  • 本地部署
  • 42 星标
  • 更新于
在 GitHub 查看 ryft-io/iceberg-mcp

使用说明

冰山MCP🚀

AI原生Lakehouse集成

冰山MCP是 模型上下文协议 (MCP)服务器,允许您与您的 阿帕奇冰山™ Lakehouse在Claude、Cursor或任何其他MCP客户端中使用自然语言。

目录

安装

先决条件

  • 在AWS Glue中管理Apache Iceberg™目录
  • 在计算机上配置AWS配置文件,可以访问目录
  • uv 包管理器-通过安装 brew install uv 或查看 官方安装指南

克劳德

  1. 在Claude内部,转到“设置”>“开发人员”>“编辑配置”>Claude_desktop_Config.json

  2. 添加以下内容:

{
  "mcpServers": {
    "iceberg-mcp": {
      "command": "uv", // If uv can't be found, replace with full absolute path to uv
      "args": [
        "run",
        "--with",
        "iceberg-mcp",
        "iceberg-mcp"
      ],
      "env": {
        "ICEBERG_MCP_PROFILE": "<aws-profile-name>"
      }
    }
  }
}

光标

  1. 在游标中,转到设置->游标设置->MCP->添加新的全局MCP服务器

  2. 添加以下内容:

{
  "mcpServers": {
    "iceberg-mcp": {
      "command": "uv", // If uv can't be found, replace with full absolute path to uv
      "args": [
        "run",
        "--with",
        "iceberg-mcp",
        "iceberg-mcp"
      ],
      "env": {
        "ICEBERG_MCP_PROFILE": "<aws-profile-name>"
      }
    }
  }
}

配置

环境变量可用于配置AWS连接:

  • ICEBERG_MCP_PROFILE -要使用的AWS配置文件名称。此角色将被假定并用于连接到目录和对象存储。如果未指定,将使用默认角色。
  • ICEBERG_MCP_REGION -要使用的AWS区域。这用于确定目录和对象存储位置。 us-east-1 默认情况下。

可用工具

服务器提供以下工具用于与Apache Iceberg™表交互:

  • get_namespaces:获取Apache Iceberg™目录中的所有命名空间
  • get_iceberg_tables:获取给定命名空间的所有表
  • get_table_schema:返回给定表的架构
  • get_table_properties:返回给定表的表属性,如总大小和记录数
  • get_table_partitions:获取给定表的所有分区

例子

安装和配置后,您可以通过MCP客户端开始与Apache Iceberg™表交互。以下是一些如何与您的湖畔小屋互动的简单示例:

  1. “列出我目录中的所有命名空间”
  2. “列出所调用命名空间的所有表 bronze"
  3. “表中的所有字符串列是什么 raw_events?
  4. “这个的尺寸是多少 raw_events 桌子?"
  5. “生成一个SQL查询,计算中所有数字列的总和和p95 raw_metrics 适用于以下所有VIP用户 users_info"
  6. “为什么对 raw_events 最近变慢了吗?"

限制和安全考虑

  • 所有工具目前都是只读的,无法修改或删除您湖畔小屋中的数据
  • 当前支持的目录:
    • AWS胶水
    • Apache Iceberg™REST目录(即将推出!)

贡献

欢迎投稿!请随时提交拉取请求。