Iceberg MCP について
IcebergMCP は、Claude や Cursor などの MCP クライアントから自然言語で Apache Iceberg レイクハウスのメタデータを照会できる MCP サーバーです。現在は AWS Glue カタログに接続し、読み取り専用で動作します。
主な機能
- 01ネームスペースとテーブルの一覧表示
- 02テーブルスキーマとパーティションの確認
- 03テーブルサイズとレコード数の取得
- 04AWS プロファイルによる接続
- 05データを変更しない読み取り専用アクセス
活用シーン
- 01自然言語でレイクハウスのテーブル構造を調べる
- 02SQL クエリ作成前に列の型を確認する
- 03テーブルのサイズやパーティション構成を調査する
MCP 対応
IcebergMCP は、ネームスペース、テーブルスキーマ、パーティション、テーブルプロパティを取得するツールを MCP クライアントに提供する MCP サーバーです。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
IcebergMCP は、自然言語を使って Claude、Cursor、その他の MCP クライアントから Apache Iceberg™ のレイクハウスを操作できる Model Context Protocol(MCP)サーバーです。
目次
インストール
前提条件
- AWS Glue で管理されている Apache Iceberg™ カタログ
- カタログへのアクセス権を持つ AWS プロファイルがマシンに設定されていること
uvパッケージマネージャー。brew install uvでインストールするか、公式インストールガイドを参照してください。
Claude
-
Claude で、Settings > Developer > Edit Config > 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 で、Settings -> Cursor Settings -> MCP -> Add new global MCP server に移動します
-
以下を追加します:
{
"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テーブルのサイズはどのくらい?」 - 「
users_infoのすべての VIP ユーザーについて、raw_metricsのすべての数値列の合計と p95 を計算する SQL クエリを生成して」 - 「最近、
raw_eventsに対するクエリが大幅に遅くなったのはなぜ?」
制限事項とセキュリティ上の考慮事項
- 現在、すべてのツールは読み取り専用であり、レイクハウスのデータを変更または削除することはできません
- 現在サポートされているカタログ:
- AWS Glue
- Apache Iceberg™ REST Catalog(近日対応予定!)
貢献
貢献を歓迎します!お気軽に Pull Request を送信してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。