MCP Trino Server

by alaturqua
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Supports Apache Iceberg table maintenance and metadata inspection, including optimizing tables, managing snapshots, viewing table history, and inspecting partitions and data files.

  • Provides seamless integration with Trino for interactive data exploration, executing SQL queries, catalog/schema navigation, and retrieving query results in formatted outputs.

Servidor MCP Trino

El servidor MCP Trino es un servidor de protocolo de contexto de modelo (MCP) que proporciona una integración perfecta con Trino e Iceberg, lo que permite capacidades avanzadas de exploración de datos, consultas y mantenimiento de tablas a través de una interfaz estándar.

Casos de uso

  • Exploración y análisis de datos interactivos en Trino
  • Mantenimiento y optimización automatizados de tablas Iceberg
  • Creación de herramientas impulsadas por IA que interactúan con las bases de datos de Trino
  • Ejecución y gestión de consultas SQL con formato de resultado adecuado

Prerrequisitos

  1. Un servidor Trino en ejecución (o Docker Compose para desarrollo local)
  2. Python 3.11 o superior
  3. Docker (opcional, para implementación en contenedores)

Instalación

Ejecución de Trino localmente

La forma más fácil de comenzar es utilizar la configuración de Docker Compose incluida para ejecutar Trino localmente:

docker-compose up -d

Esto iniciará un servidor Trino en localhost:8080 . Ahora puede continuar con la configuración del servidor MCP.

Uso con VS Code

Para una instalación rápida, puede agregar la siguiente configuración a sus ajustes de VS Code. Para ello, presione Ctrl + Shift + P y escriba Preferences: Open User Settings (JSON) .

Opcionalmente, puede agregarlo a un archivo llamado .vscode/mcp.json en su espacio de trabajo. Esto le permitirá compartir la configuración con otros.

Tenga en cuenta que la clave mcp no es necesaria en el archivo .vscode/mcp.json .

{ "mcp": { "servers": { "trino": { "command": "docker", "args": ["run", "--rm", "ghcr.io/alaturqua/mcp-trino-python:latest"], "env": { "TRINO_HOST": "${input:trino_host}", "TRINO_PORT": "${input:trino_port}", "TRINO_USER": "${input:trino_user}", "TRINO_PASSWORD": "${input:trino_password}", "TRINO_HTTP_SCHEME": "${input:trino_http_scheme}", "TRINO_CATALOG": "${input:trino_catalog}", "TRINO_SCHEMA": "${input:trino_schema}" } } } } }

Uso con Claude Desktop

Agregue la siguiente configuración a la configuración de Claude Desktop:

{ "mcpServers": { "trino": { "command": "python", "args": ["./src/server.py"], "env": { "TRINO_HOST": "your-trino-host", "TRINO_PORT": "8080", "TRINO_USER": "trino" } } } }

Configuración

Variables de entorno

VariableDescripciónPor defecto
TRINO_HOSTNombre de host del servidor Trinohost local
TRINO_PORTPuerto del servidor Trino8080
TRINO_USUARIONombre de usuario de Trinotrino
CATÁLOGO TRINOCatálogo predeterminadoNinguno
ESQUEMA TRINOEsquema predeterminadoNinguno
ESQUEMA TRINO_HTTPEsquema HTTP (http/https)http
TRINO_CONTRASEÑAContraseña de TrinoNinguno

Recursos

El servidor proporciona los siguientes recursos MCP:

  • catálogo://principal ( show_catalogs )
    • Enumera todos los catálogos de Trino disponibles
    • No se requieren parámetros
  • esquema://{catálogo} ( show_schemas )
    • Enumera todos los esquemas en el catálogo especificado
    • Parámetros:
      • catalog : Nombre del catálogo (cadena, obligatorio)
  • tabla://{catálogo}/{esquema} ( show_tables )
    • Enumera todas las tablas en el esquema especificado
    • Parámetros:
      • catalog : Nombre del catálogo (cadena, obligatorio)
      • schema : nombre del esquema (cadena, obligatorio)

Herramientas

Herramientas de consulta y exploración

  • ejecutar_consulta
    • Ejecutar una consulta SQL y devolver resultados formateados
    • Parámetros:
      • query : consulta SQL a ejecutar (cadena, obligatoria)
  • mostrar_árbol_del_catálogo
    • Mostrar una vista de árbol jerárquica de catálogos, esquemas y tablas
    • Devuelve una estructura de árbol formateada con indicadores visuales
    • No se requieren parámetros
  • mostrar_crear_tabla
    • Mostrar la declaración CREATE TABLE para una tabla
    • Parámetros:
      • table : Nombre de la tabla (cadena, obligatoria)
      • catalog : Nombre del catálogo (cadena, opcional)
      • schema : nombre del esquema (cadena, opcional)
  • mostrar_crear_vista
    • Mostrar la declaración CREATE VIEW para una vista
    • Parámetros:
      • view : Nombre de la vista (cadena, obligatoria)
      • catalog : Nombre del catálogo (cadena, opcional)
      • schema : nombre del esquema (cadena, opcional)
  • mostrar_estadísticas
    • Mostrar estadísticas de una tabla
    • Parámetros:
      • table : Nombre de la tabla (cadena, obligatoria)
      • catalog : Nombre del catálogo (cadena, opcional)
      • schema : nombre del esquema (cadena, opcional)

Mantenimiento de la tabla Iceberg

  • optimizar
    • Optimice una tabla Iceberg compactando archivos pequeños
    • Parámetros:
      • table : Nombre de la tabla (cadena, obligatoria)
      • catalog : Nombre del catálogo (cadena, opcional)
      • schema : nombre del esquema (cadena, opcional)
  • optimizar_manifiestos
    • Optimizar archivos de manifiesto para una tabla Iceberg
    • Parámetros:
      • table : Nombre de la tabla (cadena, obligatoria)
      • catalog : Nombre del catálogo (cadena, opcional)
      • schema : nombre del esquema (cadena, opcional)
  • instantáneas de caducidad
    • Eliminar instantáneas antiguas de una tabla Iceberg
    • Parámetros:
      • table : Nombre de la tabla (cadena, obligatoria)
      • retention_threshold : Umbral de edad (p. ej., "7d") (cadena, opcional)
      • catalog : Nombre del catálogo (cadena, opcional)
      • schema : nombre del esquema (cadena, opcional)

Inspección de metadatos de Iceberg

  • mostrar_propiedades_de_tabla
    • Mostrar las propiedades de la tabla Iceberg
    • Parámetros:
      • table : Nombre de la tabla (cadena, obligatoria)
      • catalog : Nombre del catálogo (cadena, opcional)
      • schema : nombre del esquema (cadena, opcional)
  • mostrar_historial_de_tablas
    • Mostrar el historial/registro de cambios de la tabla Iceberg
    • Contiene información de instantáneas sobre el tiempo, el linaje y la ascendencia.
    • Parámetros:
      • table : Nombre de la tabla (cadena, obligatoria)
      • catalog : Nombre del catálogo (cadena, opcional)
      • schema : nombre del esquema (cadena, opcional)
  • mostrar_entradas_del_registro_de_metadatos
    • Mostrar las entradas del registro de metadatos de la tabla Iceberg
    • Contiene ubicaciones de archivos de metadatos e información de secuencia.
    • Parámetros:
      • table : Nombre de la tabla (cadena, obligatoria)
      • catalog : Nombre del catálogo (cadena, opcional)
      • schema : nombre del esquema (cadena, opcional)
  • mostrar_instantáneas
    • Mostrar instantáneas de la tabla Iceberg
    • Contiene detalles de instantáneas, incluidas operaciones y archivos de manifiesto.
    • Parámetros:
      • table : Nombre de la tabla (cadena, obligatoria)
      • catalog : Nombre del catálogo (cadena, opcional)
      • schema : nombre del esquema (cadena, opcional)
  • mostrar_manifiestos
    • Mostrar los manifiestos de la tabla Iceberg para las instantáneas actuales o todas
    • Contiene detalles del archivo de manifiesto y estadísticas del archivo de datos.
    • Parámetros:
      • table : Nombre de la tabla (cadena, obligatoria)
      • catalog : Nombre del catálogo (cadena, opcional)
      • schema : nombre del esquema (cadena, opcional)
      • all_snapshots : incluye todas las instantáneas (booleano, opcional)
  • mostrar_particiones
    • Mostrar particiones de la tabla Iceberg
    • Contiene estadísticas de particiones y recuentos de archivos.
    • Parámetros:
      • table : Nombre de la tabla (cadena, obligatoria)
      • catalog : Nombre del catálogo (cadena, opcional)
      • schema : nombre del esquema (cadena, opcional)
  • mostrar_archivos
    • Mostrar los archivos de datos de la tabla Iceberg en la instantánea actual
    • Contiene metadatos de archivos detallados y estadísticas de columnas.
    • Parámetros:
      • table : Nombre de la tabla (cadena, obligatoria)
      • catalog : Nombre del catálogo (cadena, opcional)
      • schema : nombre del esquema (cadena, opcional)
  • mostrar_entradas
    • Mostrar las entradas del manifiesto de la tabla Iceberg para las instantáneas actuales o todas
    • Contiene el estado de la entrada y métricas detalladas del archivo.
    • Parámetros:
      • table : Nombre de la tabla (cadena, obligatoria)
      • catalog : Nombre del catálogo (cadena, opcional)
      • schema : nombre del esquema (cadena, opcional)
      • all_snapshots : incluye todas las instantáneas (booleano, opcional)
  • mostrar_referencias
    • Mostrar referencias de la tabla Iceberg (ramas y etiquetas)
    • Contiene configuración de referencia y mapeo de instantáneas
    • Parámetros:
      • table : Nombre de la tabla (cadena, obligatoria)
      • catalog : Nombre del catálogo (cadena, opcional)
      • schema : nombre del esquema (cadena, opcional)

Historial de consultas

  • mostrar_historial_de_consultas
    • Obtener el historial de consultas ejecutadas
    • Parámetros:
      • limit : Número máximo de consultas a devolver (número, opcional)

Licencia

Este proyecto está licenciado bajo la licencia Apache 2.0. Consulte el archivo de LICENCIA para conocer los términos completos.

-
security - not tested
A
license - permissive license
-
quality - not tested

Un servidor de protocolo de contexto de modelo que proporciona una integración perfecta con Trino e Iceberg, lo que permite la exploración de datos, la consulta y el mantenimiento de tablas a través de una interfaz estándar.

  1. Use Cases
    1. Prerequisites
      1. Installation
        1. Running Trino Locally
        2. Usage with VS Code
        3. Usage with Claude Desktop
      2. Configuration
        1. Environment Variables
      3. Resources
        1. Catalog and Schema Navigation
      4. Tools
        1. Query and Exploration Tools
        2. Iceberg Table Maintenance
        3. Iceberg Metadata Inspection
        4. Query History
      5. License
        ID: 4jlnxgg25k