Skip to main content
Glama
ahodroj

MCP Iceberg Catalog

by ahodroj

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
  1. 前提条件

    • Python 3.10以上

    • UV パッケージインストーラー(推奨)または pip

    • Iceberg RESTカタログとS3互換ストレージへのアクセス

  2. 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 つの主要コンポーネントに基づいて構築されます。

  1. MCP プロトコル ハンドラー

    • クロードとの通信のためのモデルコンテキストプロトコルを実装します

    • stdio を通じてリクエスト/レスポンスのサイクルを処理します

    • サーバーのライフサイクルと初期化を管理します

  2. クエリプロセッサ

    • sqlparseを使用して SQL クエリを解析します

    • サポートされる操作:

      • リストテーブル

      • 表の説明

      • 選択

      • 入れる

  3. 氷山統合

    • テーブル操作にはpyiceberg使用する

    • PyArrowと統合して効率的なデータ処理を実現

    • カタログ接続とテーブル操作を管理します

PyIceberg 統合

サーバーは PyIceberg をいくつかの方法で利用します。

  1. カタログ管理

    • RESTカタログに接続する

    • テーブルメタデータを管理する

    • 名前空間の操作を処理する

  2. データ操作

    • PyIceberg型とPyArrow型間の変換

    • PyArrow テーブルを通じてデータ挿入を処理します

    • テーブルスキーマとフィールドタイプを管理します

  3. クエリ実行

    • SQLをPyIcebergの操作に変換する

    • データのスキャンとフィルタリングを処理

    • 結果セットの変換を管理する

さらなる実装が必要

  1. クエリ操作

    • [ ] UPDATE操作を実装する

    • [ ] DELETEサポートを追加

    • [ ] スキーマ定義付きのCREATE TABLEのサポート

    • [ ] ALTER TABLE操作を追加する

    • [ ] テーブルパーティションサポートを実装する

  2. データ型

    • [ ] 複合型(配列、マップ、構造体)のサポート

    • [ ] タイムゾーン処理付きのタイムスタンプを追加する

    • [ ] 小数点型のサポート

    • [ ] ネストされたフィールドのサポートを追加

  3. パフォーマンスの改善

    • [ ] バッチ挿入を実装する

    • [ ] クエリ最適化を追加する

    • [ ] 並列スキャンのサポート

    • [ ] 頻繁にアクセスされるデータにキャッシュ層を追加する

  4. セキュリティ機能

    • [ ] 認証メカニズムを追加する

    • [ ] ロールベースのアクセス制御を実装する

    • [ ] 行レベルのセキュリティを追加する

    • [ ] 暗号化された接続のサポート

  5. 監視と管理

    • [ ] メトリクスコレクションを追加する

    • [ ] クエリログの実装

    • [ ] パフォーマンス監視を追加する

    • [ ] テーブルメンテナンス操作のサポート

  6. エラー処理

    • [ ] エラーメッセージの改善

    • [ ] 一時的な障害に対する再試行メカニズムを追加する

    • [ ] トランザクションサポートを実装する

    • [ ] データ検証を追加する

Available Tools

1 tool
execute_queryC

Execute a query on Iceberg tables

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesQuery to execute (supports: LIST TABLES, DESCRIBE TABLE, SELECT, CREATE TABLE)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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. 1 tool updatev1.0.0
    • First observedexecute_query

TDQS

B3/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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).

Tool Count2/5

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.

Completeness1/5

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

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that enables Claude to execute SQL queries on Snowflake databases with automatic connection lifecycle management.
    45
    MIT
  • A
    license
    C
    quality
    D
    maintenance
    An 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.
    5
    41
    Apache 2.0
  • A
    license
    B
    quality
    C
    maintenance
    A Model Context Protocol server that provides seamless integration with Trino and Iceberg, enabling data exploration, querying, and table maintenance through a standard interface.
    22
    25
    Apache 2.0

Latest Blog Posts

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