An MCP server that enables natural language interaction with Apache Iceberg data lakehouses, allowing users to query table metadata, schemas, and properties through Claude, Cursor, or other MCP clients.
AI-native Lakehouse Integration
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.
uv
package manager - install via brew install uv
or see official installation guideInside Claude, go to Settings > Developer > Edit Config > claude_desktop_config.json
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": "" } } } }
Inside Cursor, go to Settings -> Cursor Settings -> MCP -> Add new global MCP server
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": "" } } } }
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.The server provides the following tools for interacting with your Apache Iceberg™ tables:
get_namespaces
: Gets all namespaces in the Apache Iceberg™ catalogget_iceberg_tables
: Gets all tables for a given namespaceget_table_schema
: Returns the schema for a given tableget_table_properties
: Returns table properties for a given table, like total size and record countget_table_partitions
: Gets all partitions for a given tableOnce 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:
bronze
"raw_events
?raw_events
table?"raw_metrics
for all VIP users from users_info
"raw_events
recently become much slower?"Contributions are welcome! Please feel free to submit a Pull Request.
Discover shared experiences
Shared threads will appear here, showcasing real-world applications and insights from the community. Check back soon for updates!