MCP Iceberg Catalog
Un servidor MCP para interactuar con catálogos y data lakes de Apache Iceberg.
Documentación
MCP Iceberg Catalog
Una implementación de servidor MCP (Model Context Protocol) para interactuar con Apache Iceberg. Este servidor proporciona una interfaz SQL para consultar y gestionar tablas Iceberg a través de Claude desktop.
Claude Desktop como su catálogo de Data Lake Iceberg

Cómo instalar en Claude Desktop
Instalación mediante Smithery
Para instalar MCP Iceberg Catalog para Claude Desktop automáticamente mediante Smithery:
npx -y @smithery/cli install @ahodroj/mcp-iceberg-service --client claude
-
Requisitos previos
- Python 3.10 o superior
- Instalador de paquetes UV (recomendado) o pip
- Acceso a un catálogo REST de Iceberg y almacenamiento compatible con S3
-
Cómo instalar en Claude Desktop Agregue la siguiente configuración a
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"
}
}
}
}
Diseño
Arquitectura
El servidor MCP se basa en tres componentes principales:
-
Manejador de protocolo MCP
- Implementa el Model Context Protocol para la comunicación con Claude
- Maneja ciclos de solicitud/respuesta a través de stdio
- Gestiona el ciclo de vida del servidor y la inicialización
-
Procesador de consultas
- Analiza consultas SQL usando
sqlparse - Soporta operaciones:
- LIST TABLES
- DESCRIBE TABLE
- SELECT
- INSERT
- Analiza consultas SQL usando
-
Integración con Iceberg
- Usa
pyicebergpara operaciones de tabla - Se integra con PyArrow para un manejo eficiente de datos
- Gestiona conexiones de catálogo y operaciones de tabla
- Usa
Integración con PyIceberg
El servidor utiliza PyIceberg de varias maneras:
-
Gestión de catálogo
- Se conecta a catálogos REST
- Gestiona metadatos de tablas
- Maneja operaciones de espacio de nombres
-
Operaciones de datos
- Convierte entre tipos de PyIceberg y PyArrow
- Maneja la inserción de datos mediante tablas PyArrow
- Gestiona esquemas de tablas y tipos de campos
-
Ejecución de consultas
- Traduce SQL a operaciones de PyIceberg
- Maneja el escaneo y filtrado de datos
- Gestiona la conversión del conjunto de resultados
Implementación adicional necesaria
-
Operaciones de consulta
- Implementar operaciones UPDATE
- Agregar soporte para DELETE
- Soporte para CREATE TABLE con definición de esquema
- Agregar operaciones ALTER TABLE
- Implementar soporte de particionamiento de tablas
-
Tipos de datos
- Soporte para tipos complejos (arrays, maps, structs)
- Agregar manejo de timestamp con zona horaria
- Soporte para tipos decimales
- Agregar soporte para campos anidados
-
Mejoras de rendimiento
- Implementar inserciones por lotes
- Agregar optimización de consultas
- Soporte para escaneos paralelos
- Agregar capa de caché para datos de acceso frecuente
-
Características de seguridad
- Agregar mecanismos de autenticación
- Implementar control de acceso basado en roles
- Agregar seguridad a nivel de fila
- Soporte para conexiones cifradas
-
Monitoreo y gestión
- Agregar recopilación de métricas
- Implementar registro de consultas
- Agregar monitoreo de rendimiento
- Soporte para operaciones de mantenimiento de tablas
-
Manejo de errores
- Mejorar mensajes de error
- Agregar mecanismos de reintento para fallos transitorios
- Implementar soporte de transacciones
- Agregar validación de datos