冰山MCP服务器
一个MCP服务器,它能够通过Claude、Cursor或其他MCP客户端与Apache Iceberg数据湖进行自然语言交互,使用户可以查询表的元数据、模式和属性。
服务介绍
IcebergMCP 🚀
AI原生湖仓集成
IcebergMCP 是一个 Model Context Protocol (MCP) 服务器,它允许您使用自然语言在 Claude、Cursor 或任何其他 MCP 客户端中与您的 Apache Iceberg™ 湖仓进行交互。
目录
安装
先决条件
- 在 AWS Glue 中管理的 Apache Iceberg™ 目录
- 配置了可以访问目录的 AWS 账号
uv包管理器 - 可以通过brew install uv安装或参阅 官方安装指南
Claude
-
在 Claude 中,转到设置 > 开发者 > 编辑配置 > claude_desktop_config.json
-
添加以下内容:
{
"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>"
}
}
}
}
Cursor
-
在 Cursor 中,转到设置 -> Cursor 设置 -> MCP -> 添加新的全局 MCP 服务器
-
添加以下内容:
{
"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™ 表进行交互。以下是一些简单的示例,展示如何与您的湖仓进行交互:
- "列出我的目录中的所有命名空间"
- "列出名为
bronze的命名空间中的所有表" - "
raw_events表中所有的字符串列是什么?" - "
raw_events表的大小是多少?" - "生成一个 SQL 查询,计算
users_info中所有 VIP 用户在raw_metrics表中所有数字列的总和和 p95 值"
限制与安全注意事项
- 所有工具目前都是只读的,不能修改或删除您的湖仓中的数据
- 当前支持的目录:
- AWS Glue
- Apache Iceberg™ REST 目录(即将推出!)
贡献
欢迎贡献!请随时提交 Pull Request。