Iceberg MCP

Iceberg MCP

By ryft-io GitHub

IcebergMCP is an MCP server that lets you interact with your Apache Iceberg Lakehouse using natural language in Claude, Cursor, or any other MCP client.

iceberg lakehouse
Overview

what is Iceberg MCP?

Iceberg MCP is an AI-native Lakehouse Integration server that allows users to interact with their Apache Iceberg Lakehouse using natural language through various MCP clients like Claude and Cursor.

how to use Iceberg MCP?

To use Iceberg MCP, install the required packages, configure your AWS profile, and set up the MCP server in your preferred client. You can then issue natural language queries to interact with your Iceberg tables.

key features of Iceberg MCP?

  • Natural language interaction with Iceberg Lakehouse
  • Integration with multiple MCP clients
  • Tools for retrieving namespaces, tables, schemas, and properties

use cases of Iceberg MCP?

  1. Querying Iceberg tables using natural language.
  2. Retrieving metadata about tables and schemas.
  3. Analyzing data stored in an Iceberg Lakehouse.

FAQ from Iceberg MCP?

  • What is required to run Iceberg MCP?

You need an Iceberg catalog managed in AWS Glue and the uv package manager installed.

  • Can I modify data using Iceberg MCP?

Currently, all tools are read-only and cannot modify or delete data from your lakehouse.

  • What clients are supported?

Iceberg MCP can be used with Claude, Cursor, and other MCP clients.

Content
Iceberg Logo

IcebergMCP 🚀

AI-native Lakehouse Integration

PyPI - Version License

IcebergMCP is a Model Context Protocol (MCP) server that allows interacting with your Apache Iceberg Lakehouse via natural language in Claude, Cursor, or any other MCP client.

Table of Contents

Installation

Prerequisites

  • Iceberg catalog managed in AWS Glue
  • AWS profile configured on the machine, with access to the catalog
  • uv package manager - install via brew install uv or see official installation guide

Claude

  1. Inside Claude, go to Settings > Developer > Edit Config > claude_desktop_config.json

  2. Add the following:

{
  "mcpServers": {
    "iceberg-mcp": {
      "command": "uv", // If uv can't be found, replace with full absolute path to uv
      "args": [
        "run",
        "--with",
        "iceberg-mcp",
        "iceberg-mcp"
      ],
      "env": {
        "ICEBERG_MCP_PROFILE": "<aws-profile-name>"
      }
    }
  }
}

Cursor

  1. Inside Cursor, go to Settings -> Cursor Settings -> MCP -> Add new global MCP server

  2. Add the following:

{
  "mcpServers": {
    "iceberg-mcp": {
      "command": "uv", // If uv can't be found, replace with full absolute path to uv
      "args": [
        "run",
        "--with",
        "iceberg-mcp",
        "iceberg-mcp"
      ],
      "env": {
        "ICEBERG_MCP_PROFILE": "<aws-profile-name>"
      }
    }
  }
}

Configuration

Environment variables can be used to configure the AWS connection:

  • ICEBERG_MCP_PROFILE - The AWS profile name to use. This role will be assumed and used to connect to the catalog and the object storage. If not specified, the default role will be used.
  • ICEBERG_MCP_REGION - The AWS region to use. This is used to determine the catalog and object storage location. us-east-1 by default.

Available Tools

The server provides the following tools for interacting with your Iceberg tables:

  • get_namespaces: Gets all namespaces in the Iceberg catalog
  • get_iceberg_tables: Gets all tables for a given namespace
  • get_table_schema: Returns the schema for a given table
  • get_table_properties: Returns table properties for a given table, like total size and record count
  • get_table_partitions: Gets all partitions for a given table

Examples

Once installed and configured, you can start interacting with your Iceberg tables through your MCP client. Here are some simple examples of how to interact with your lakehouse:

  1. "List all namespaces in my catalog"
  2. "List all tables for the namespace called bronze"
  3. "What are all the string columns in the table raw_events?
  4. "What is the size of the raw_events table?"
  5. "Generate an SQL query that calculates the sum and the p95 of all number columns in raw_metrics for all VIP users from users_info"
  6. "Why did the queries on raw_events recently become much slower?"

Limitations & Security Considerations

  • All tools are currently read-only and cannot modify or delete data from your lakehouse
  • Currently supported catalogs:
    • AWS Glue
    • Iceberg REST Catalog (coming soon!)

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

No tools information available.
No content found.