mcp iceberg service
A Model Context Protocol server that provides a SQL interface for querying and managing Apache Iceberg tables through Claude desktop, allowing natural language interaction with Iceberg data lakes.
A Model Context Protocol server that provides a SQL interface for querying and managing Apache Iceberg tables through Claude desktop, allowing natural language interaction with Iceberg data lakes.
A MCP (Model Context Protocol) server implementation for interacting with Apache Iceberg. This server provides a SQL interface for querying and managing Iceberg tables through Claude desktop.
To install MCP Iceberg Catalog for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @ahodroj/mcp-iceberg-service --client claude
Access to an Iceberg REST catalog and S3-compatible storage
How to install in Claude Desktop
Add the following configuration to claude_desktop_config.json
:
{
"mcpServers": {
"iceberg": {
"command": "uv",
"args": [
"--directory",
"PATH_TO_/mcp-iceberg-service",
"run",
"mcp-server-iceberg"
],
"env": {
"ICEBERG_CATALOG_URI" : "http://localhost:8181",
"ICEBERG_WAREHOUSE" : "YOUR ICEBERG WAREHOUSE NAME",
"S3_ENDPOINT" : "OPTIONAL IF USING S3",
"AWS_ACCESS_KEY_ID" : "YOUR S3 ACCESS KEY",
"AWS_SECRET_ACCESS_KEY" : "YOUR S3 SECRET KEY"
}
}
}
}
The MCP server is built on three main components:
Manages server lifecycle and initialization
Query Processor
sqlparse
Supports operations:
Iceberg Integration
pyiceberg
for table operationsThe server utilizes PyIceberg in several ways:
Handles namespace operations
Data Operations
Manages table schemas and field types
Query Execution
Implement table partitioning support
Data Types
Add nested field support
Performance Improvements
Add caching layer for frequently accessed data
Security Features
Support for encrypted connections
Monitoring and Management
Support for table maintenance operations
Error Handling
[
{
"description": "Execute a query on Iceberg tables",
"inputSchema": {
"properties": {
"query": {
"description": "Query to execute (supports: LIST TABLES, DESCRIBE TABLE, SELECT, CREATE TABLE)",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "execute_query"
}
]