MCP Iceberg Catalog
MCP 氷山カタログ
Apache Icebergと連携するためのMCP(Model Context Protocol)サーバー実装。このサーバーは、ClaudeデスクトップからIcebergテーブルをクエリおよび管理するためのSQLインターフェースを提供します。
Claude Desktop を Iceberg Data Lake カタログとして

Related MCP server: Databricks MCP Server
Claude Desktopへのインストール方法
Smithery経由でインストール
Smithery経由で Claude Desktop 用の MCP Iceberg Catalog を自動的にインストールするには:
npx -y @smithery/cli install @ahodroj/mcp-iceberg-service --client claude前提条件
Python 3.10以上
UV パッケージインストーラー(推奨)または pip
Iceberg RESTカタログとS3互換ストレージへのアクセス
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" : "YOUR ICEBERG WAREHOUSE NAME",
"S3_ENDPOINT" : "OPTIONAL IF USING S3",
"AWS_ACCESS_KEY_ID" : "YOUR S3 ACCESS KEY",
"AWS_SECRET_ACCESS_KEY" : "YOUR S3 SECRET KEY"
}
}
}
}デザイン
建築
MCP サーバーは、次の 3 つの主要コンポーネントに基づいて構築されます。
MCP プロトコル ハンドラー
クロードとの通信のためのモデルコンテキストプロトコルを実装します
stdio を通じてリクエスト/レスポンスのサイクルを処理します
サーバーのライフサイクルと初期化を管理します
クエリプロセッサ
sqlparseを使用して SQL クエリを解析しますサポートされる操作:
リストテーブル
表の説明
選択
入れる
氷山統合
テーブル操作には
pyiceberg使用するPyArrowと統合して効率的なデータ処理を実現
カタログ接続とテーブル操作を管理します
PyIceberg 統合
サーバーは PyIceberg をいくつかの方法で利用します。
カタログ管理
RESTカタログに接続する
テーブルメタデータを管理する
名前空間の操作を処理する
データ操作
PyIceberg型とPyArrow型間の変換
PyArrow テーブルを通じてデータ挿入を処理します
テーブルスキーマとフィールドタイプを管理します
クエリ実行
SQLをPyIcebergの操作に変換する
データのスキャンとフィルタリングを処理
結果セットの変換を管理する
さらなる実装が必要
クエリ操作
[ ] UPDATE操作を実装する
[ ] DELETEサポートを追加
[ ] スキーマ定義付きのCREATE TABLEのサポート
[ ] ALTER TABLE操作を追加する
[ ] テーブルパーティションサポートを実装する
データ型
[ ] 複合型(配列、マップ、構造体)のサポート
[ ] タイムゾーン処理付きのタイムスタンプを追加する
[ ] 小数点型のサポート
[ ] ネストされたフィールドのサポートを追加
パフォーマンスの改善
[ ] バッチ挿入を実装する
[ ] クエリ最適化を追加する
[ ] 並列スキャンのサポート
[ ] 頻繁にアクセスされるデータにキャッシュ層を追加する
セキュリティ機能
[ ] 認証メカニズムを追加する
[ ] ロールベースのアクセス制御を実装する
[ ] 行レベルのセキュリティを追加する
[ ] 暗号化された接続のサポート
監視と管理
[ ] メトリクスコレクションを追加する
[ ] クエリログの実装
[ ] パフォーマンス監視を追加する
[ ] テーブルメンテナンス操作のサポート
エラー処理
[ ] エラーメッセージの改善
[ ] 一時的な障害に対する再試行メカニズムを追加する
[ ] トランザクションサポートを実装する
[ ] データ検証を追加する
Available Tools
1 toolexecute_queryC
Execute a query on Iceberg tables
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Query to execute (supports: LIST TABLES, DESCRIBE TABLE, SELECT, CREATE TABLE) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but offers minimal information. It mentions the query types supported (LIST TABLES, DESCRIBE TABLE, SELECT, CREATE TABLE), which adds some context, but fails to address critical aspects like permissions needed, whether it's read-only or mutating, error handling, or output format expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is appropriately sized and front-loaded, making it easy to understand at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a query execution tool with no annotations and no output schema, the description is insufficient. It lacks details on behavioral traits, error handling, permissions, or what to expect from results, leaving significant gaps for an AI agent to operate effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, explicitly documenting the 'query' parameter with supported query types. The description does not add any additional semantic details beyond what the schema already provides, so it meets the baseline for adequate but unremarkable coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Execute a query') and target resource ('on Iceberg tables'), providing a specific verb+resource combination. However, with no sibling tools mentioned, it cannot demonstrate differentiation from alternatives, so it falls short of a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, prerequisites, or contextual constraints. It merely states what the tool does without indicating appropriate scenarios or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
1 tool update
v1.0.0- First observed
execute_query
TDQS
With only one tool, there is no possibility of ambiguity or overlap between tools, as there are no other tools to confuse it with. The tool's purpose is clearly defined and distinct by default.
Since there is only one tool, naming consistency is inherently perfect with no deviations or mixed conventions to evaluate. The tool name follows a clear verb_noun pattern (execute_query).
A single tool is too few for a catalog server, which typically requires operations like list_tables, get_table, create_table, or update_metadata to be useful. This minimal set severely limits functionality and scope.
The tool set is severely incomplete for an Iceberg catalog domain, lacking basic CRUD operations such as listing, creating, or managing tables. With only a query execution tool, agents cannot perform essential catalog tasks, leading to dead ends.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
The BigQuery remote MCP server is a fully managed service that uses the Model Context Protocol to connect AI applications and LLMs to BigQuery data sources. It provides secure, standardized tools for AI agents to list datasets and tables, retrieve schemas, generate and execute SQL queries through natural language, and analyze data—enabling direct access to enterprise analytics data without requiring manual SQL coding.
Query your warehouse or a CSV with Claude/ChatGPT over MCP, governed by table-level ACL + audit.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Query your org's data in natural language — read-only MCP access to SQL, NoSQL, files & warehouses.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables Claude to execute SQL queries on Snowflake databases with automatic connection lifecycle management.45MIT
- FlicenseNot gradedqualityFmaintenanceA Model Context Protocol server that enables LLMs to interact with Databricks workspaces through natural language, allowing SQL query execution and job management operations.50-
- AlicenseCqualityDmaintenanceAn MCP server that enables natural language interaction with Apache Iceberg data lakehouses, allowing users to query table metadata, schemas, and properties through Claude, Cursor, or other MCP clients.541Apache 2.0
- AlicenseBqualityCmaintenanceA Model Context Protocol server that provides seamless integration with Trino and Iceberg, enabling data exploration, querying, and table maintenance through a standard interface.2225Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ahodroj/mcp-iceberg-service'
If you have feedback or need assistance with the MCP directory API, please join our Discord server