MI

morristai/iceberg-mcp

Developer tools
36 stars 3 forks Quality 55 Trend 27

MCP server for Apache Iceberg

Overview

An MCP server for Apache Iceberg catalogs with async and logging. Download the latest pre-built binary from the Releases page. To build the project manually, ensure you have Rust installed, then run: The compiled binary will be located at: ./target/release/iceberg-mcp To integrate Iceberg MCP with Claude Desktop: 1. Open Settings > Developer > Edit Config. 2. Update claude_desktop_config.json with the appropriate configuration:

README

Iceberg MCP

An MCP server for Apache Iceberg catalogs with async and logging.

Iceberg MCP DEMO

Supported Catalogs

Catalog Type Supported
Rest Catalogs ✅
AWS Glue ✅
Hive Metastore ❌
S3 Table ❌

Supported Tools

Tools Description
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

Installation

Option 1: Download the Release Binary

Download the latest pre-built binary from the Releases page.

Option 2: Build from Source

To build the project manually, ensure you have Rust installed, then run:

cargo build --release

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

Client Configuration

Claude Desktop

To integrate Iceberg MCP with Claude Desktop:

  1. Open Settings > Developer > Edit Config.
  2. Update claude_desktop_config.json with the appropriate configuration:
  • Rest Catalogs
{
  "mcpServers": {
    "iceberg-mcp": {
      "command": "PATH-TO-BINARY/iceberg-mcp",
      "env": {
        "CATALOG_KIND": "rest",
        "REST_URI": "http://localhost:8080",
        "LOG_LEVEL": "info"
      }
    }
  }
}
  • AWS Glue Catalogs
// use PROFILE_NAME
{
  "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", // Glue service endpoint, optional
        "LOG_LEVEL": "info"
      }
    }
  }
}

// or use ACCESS_KEY and SECRET_KEY
{
  "mcpServers": {
    "iceberg-mcp": {
      "command": "PATH-TO-BINARY/iceberg-mcp",
      "env": {
        "CATALOG_KIND": "glue",
        "GLUE_WAREHOUSE": "s3a://{bucket_name}",
        "GLUE_ENDPOINT": "http://localhost:9000", // Optional
        "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

Claude Desktop

View logs for troubleshooting with:

tail -n 20 -F ~/Library/Logs/Claude/mcp-server-iceberg-mcp.log
View this README on GitHub

Install

This server does not publish a one-line install command.

Open the repository installation guide

Configuration

{ "mcpServers": { "iceberg-mcp": { "command": "PATH-TO-BINARY/iceberg-mcp", "env": { "CATALOG_KIND": "rest", "REST_URI": "http://localhost:8080", "LOG_LEVEL": "info" } } } }