Skip to main content

An MCP server that interacts with Iceberg tables.

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iceberg_mcp-0.1.9.tar.gz (69.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iceberg_mcp-0.1.9-py3-none-any.whl (8.8 kB view details)

Uploaded Python 3

File details

Details for the file iceberg_mcp-0.1.9.tar.gz.

File metadata

  • Download URL: iceberg_mcp-0.1.9.tar.gz
  • Upload date:
  • Size: 69.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.6

File hashes

Hashes for iceberg_mcp-0.1.9.tar.gz
Algorithm Hash digest
SHA256 2c9da0731cdafacc17615a216dbff0cc1ad1d89eacfb40a39839b925b4190b13
MD5 1c534bf455255cb1ca4b9c713ed0606b
BLAKE2b-256 2bfd1b1ce992f84bdd87a35b814b3f19676a24b8ff567b38a3d643d2487a8854

See more details on using hashes here.

File details

Details for the file iceberg_mcp-0.1.9-py3-none-any.whl.

File metadata

File hashes

Hashes for iceberg_mcp-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 97ae297dc0ca740cbf0a61321115d2344824c1ac0790c2a8ee613c91173572dc
MD5 2d1b811ddecc53fe1d33f723dc94b0c5
BLAKE2b-256 8d6a9722a05aac8c089032fda93e481b4a2872e373766fd5e3f35172e5387a87

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page