Skip to main content
Iceberg Logo

IcebergMCP 🚀

AI-native Lakehouse Integration

PyPI - Version License

IcebergMCP is a Model Context Protocol (MCP) server that lets you interact with your Apache Iceberg™ Lakehouse using natural language in Claude, Cursor, or any other MCP client.

Table of Contents

Installation

Prerequisites

  • Apache 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 Apache Iceberg™ tables:

  • get_namespaces: Gets all namespaces in the Apache 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 Apache 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
    • Apache Iceberg™ REST Catalog (coming soon!)

Contributing

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

Metadata

Release files for iflow-mcp_ryft-io_iceberg-mcp 0.1.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iflow-mcp_ryft-io_iceberg-mcp 0.1.8
File Size Uploaded
iflow_mcp_ryft_io_iceberg_mcp-0.1.8.tar.gz 70.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iflow-mcp_ryft-io_iceberg-mcp 0.1.8
File Interpreter ABI Platform
iflow_mcp_ryft_io_iceberg_mcp-0.1.8-py3-none-any.whl Python 3 none any Details

Total release size: 80.1 kB

Release files / iflow_mcp_ryft_io_iceberg_mcp-0.1.8.tar.gz

Download URL iflow_mcp_ryft_io_iceberg_mcp-0.1.8.tar.gz
Size 70.7 kB
Tags Source
SHA-256 checksum
How to use checksums
cc23114be504cb3ef28d63992db41f3292129ba6e16b3e4261392bf3f240762f
BLAKE2b-256 checksum
How to use checksums
569b0809990c4ffb8eb349d68a85f9fe3bc63f5c7458ea7cadc940d91bcd759c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / iflow_mcp_ryft_io_iceberg_mcp-0.1.8-py3-none-any.whl

Download URL iflow_mcp_ryft_io_iceberg_mcp-0.1.8-py3-none-any.whl
Size 9.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8ae8c7c1ee928df42503ae07ba49a0accae62334c7397881911c92d1c11018a4
BLAKE2b-256 checksum
How to use checksums
0968484db6f09f5ecc389babdef6851e6548ac49c05eb3a1f59b0da10c4d4004
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.8 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page