Skip to main content
Glama
ahodroj

MCP Iceberg Catalog

by ahodroj

MCP冰山目录

铁匠徽章

用于与 Apache Iceberg 交互的 MCP(模型上下文协议)服务器实现。该服务器提供 SQL 接口,用于通过 Claude 桌面查询和管理 Iceberg 表。

Claude Desktop 作为您的 Iceberg 数据湖目录

图像

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 服务器由三个主要组件构成:

  1. MCP 协议处理器

    • 实现模型上下文协议以便与 Claude 进行通信

    • 通过 stdio 处理请求/响应周期

    • 管理服务器生命周期和初始化

  2. 查询处理器

    • 使用sqlparse解析 SQL 查询

    • 支持操作:

      • 列表表

      • 描述表

      • 选择

      • 插入

  3. 冰山整合

    • 使用pyiceberg进行表操作

    • 与 PyArrow 集成以实现高效的数据处理

    • 管理目录连接和表操作

PyIceberg 集成

该服务器通过多种方式利用 PyIceberg:

  1. 目录管理

    • 连接到 REST 目录

    • 管理表元数据

    • 处理命名空间操作

  2. 数据操作

    • 在 PyIceberg 和 PyArrow 类型之间转换

    • 通过 PyArrow 表处理数据插入

    • 管理表模式和字段类型

  3. 查询执行

    • 将 SQL 转换为 PyIceberg 操作

    • 处理数据扫描和过滤

    • 管理结果集转换

需要进一步实施

  1. 查询操作

    • [ ] 实现 UPDATE 操作

    • [ ] 添加删除支持

    • [ ] 支持使用架构定义的 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