Iceberg

A server exposing Iceberg catalog access via MCP for rest and glue catalogs with async processing and logging.
  • rust

31

GitHub Stars

rust

Language

6 months ago

First Indexed

2 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs

Iceberg MCP provides an asynchronous, log-friendly MCP server for Apache Iceberg catalogs. It lets you access catalog data through multiple MCP clients, enabling you to list namespaces, enumerate tables, and fetch table schemas and properties with consistent, observable behavior.

How to use

You run Iceberg MCP as a server and connect to it from your MCP client. You can use the Rest Catalog interface to query namespac es and tables, or switch to Glue-compatible catalogs if you have an AWS-based setup. The server exposes the following core tools you can invoke through your client: getting all namespaces, listing all tables in a namespace, retrieving a table schema, and fetching table properties. When you perform these actions, you receive structured responses that reflect the Iceberg catalog state, with asynchronous processing and logging to help you troubleshoot.

Typical usage pattern:

  • Start the Iceberg MCP server with your chosen catalog kind (rest or glue).
  • Point your MCP client at the server endpoint (for Rest catalogs, use the REST URI; for Glue catalogs, configure AWS credentials and the Glue warehouse).
  • Use the client’s built-in commands to list namespaces, list tables within a namespace, and request a table’s schema or properties.
  • Review logs if you encounter timeouts or unexpected results; logs are designed to aid troubleshooting and performance tuning.

How to install

Prerequisites you need before building or running Iceberg MCP:

  • Rust toolchain installed on your system (rustup, cargo).
  • Optional: a pre-built release binary if you prefer not to compile from source.
# Option 1: Download the Release Binary
# Download the latest pre-built binary from the releases page and run it with your chosen configuration.

# Option 2: Build from Source

# Ensure Rust is installed on your system, then build from source:

cargo build --release

# The compiled binary will be located at:
./target/release/iceberg-mcp

Additional configuration notes

You can configure Iceberg MCP for different catalogs by supplying environment variables and selecting the catalog kind. The following configuration examples are provided for integrating with Claude Desktop. Adapt the paths and endpoints to your environment.

{
  "mcpServers": {
    "iceberg-mcp": {
      "command": "PATH-TO-BINARY/iceberg-mcp",
      "env": {
        "CATALOG_KIND": "rest",
        "REST_URI": "http://localhost:8080",
        "LOG_LEVEL": "info"
      }
    }
  }
}
{
  "mcpServers": {
    "iceberg-mcp": {
      "command": "PATH-TO-BINARY/iceberg-mcp",
      "env": {
        "CATALOG_KIND": "glue",
        "AWS_CONFIG_FILE": "/Users/{your_username}/.aws/config",
        "AWS_SHARED_CREDENTIALS_FILE": "/Users/{your_username}/.aws/credentials",
        "PROFILE_NAME": "default",
        "GLUE_WAREHOUSE": "s3://{bucket_name}",
        "GLUE_ENDPOINT": "http://localhost:9000",
        "LOG_LEVEL": "info"
      }
    }
  }
}
{
  "mcpServers": {
    "iceberg-mcp": {
      "command": "PATH-TO-BINARY/iceberg-mcp",
      "env": {
        "CATALOG_KIND": "glue",
        "GLUE_WAREHOUSE": "s3a://{bucket_name}",
        "GLUE_ENDPOINT": "http://localhost:9000",
        "AWS_ACCESS_KEY_ID": "my_access_id",
        "AWS_SECRET_ACCESS_KEY": "my_secret_key",
        "AWS_REGION_NAME": "us-east-1",
        "S3_ENDPOINT": "http://localhost:9000",
        "S3_ACCESS_KEY_ID": "admin",
        "S3_SECRET_ACCESS_KEY": "password",
        "S3_REGION": "us-east-1",
        "LOG_LEVEL": "info"
      }
    }
  }
}

Debugging

If you need to troubleshoot, view the server logs to track startup, catalog discovery, and any errors during operation.

Available tools

namespaces

Get all namespaces in the Iceberg catalog

tables

Get all tables for a given namespace

table_schema

Return the schema for a given table

table_properties

Return table properties for a given table

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational