<strong>基于AI的Lakehouse集成</strong>
</div>IcebergMCP 是一个 Model Context Protocol (MCP) 服务器,它允许您使用自然语言在 Claude、Cursor 或任何其他 MCP 客户端中与您的 Apache Iceberg™ Lakehouse 进行交互。
<video src="https://github.com/user-attachments/assets/907180f3-27ad-401a-9fa0-f3178cd290de"></video>
<!-- omit in toc -->uv 包管理器 - 通过 brew install uv 安装或参阅 官方安装指南在 Claude 中,进入 设置 > 开发者 > 编辑配置 > claude_desktop_config.json
添加以下内容:
{
"mcpServers": {
"iceberg-mcp": {
"command": "uv", // 如果找不到 uv,请替换为 uv 的完整绝对路径
"args": [
"run",
"--with",
"iceberg-mcp",
"iceberg-mcp"
],
"env": {
"ICEBERG_MCP_PROFILE": "<aws-profile-name>"
}
}
}
}
在 Cursor 中,进入 设置 -> Cursor 设置 -> MCP -> 添加新的全局 MCP 服务器
添加以下内容:
{
"mcpServers": {
"iceberg-mcp": {
"command": "uv", // 如果找不到 uv,请替换为 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™ 表进行交互。这里是一些简单的示例,说明如何与您的湖库进行交互:
bronze 的命名空间的所有表"raw_events 中的所有字符串列是什么?"raw_events 表的大小是多少?"raw_metrics 表中所有数字列的总和和 p95,并从 users_info 表中获取所有 VIP 用户的数据"raw_events 表的查询变得非常慢?"欢迎贡献!请随时提交拉取请求。