MCP Trino Server

by alaturqua

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.

MCP Trino Server

The MCP Trino Server is a Model Context Protocol (MCP) server that provides seamless integration with Trino and Iceberg, enabling advanced data exploration, querying, and table maintenance capabilities through a standard interface.

Use Cases

  • Interactive data exploration and analysis in Trino
  • Automated Iceberg table maintenance and optimization
  • Building AI-powered tools that interact with Trino databases
  • Executing and managing SQL queries with proper result formatting

Prerequisites

  1. A running Trino server (or Docker Compose for local development)
  2. Python 3.11 or higher
  3. Docker (optional, for containerized deployment)

Installation

Installing via Smithery

To install MCP Trino Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @alaturqua/mcp-trino-python --client claude

Running Trino Locally

The easiest way to get started is to use the included Docker Compose configuration to run Trino locally:

docker-compose up -d

This will start a Trino server on localhost:8080. You can now proceed with configuring the MCP server.

Usage with VS Code

For quick installation, you can add the following configuration to your VS Code settings. You can do this by pressing Ctrl + Shift + P and typing Preferences: Open User Settings (JSON).

Optionally, you can add it to a file called .vscode/mcp.json in your workspace. This will allow you to share the configuration with others.

Note that the mcp key is not needed in the .vscode/mcp.json file.

{ "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}" } } } } }

Usage with Claude Desktop

Add the following configuration to your Claude Desktop settings:

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

Configuration

Environment Variables

VariableDescriptionDefault
TRINO_HOSTTrino server hostnamelocalhost
TRINO_PORTTrino server port8080
TRINO_USERTrino usernametrino
TRINO_CATALOGDefault catalogNone
TRINO_SCHEMADefault schemaNone
TRINO_HTTP_SCHEMEHTTP scheme (http/https)http
TRINO_PASSWORDTrino passwordNone

Tools

Query and Exploration Tools

  • show_catalogs
    • List all available catalogs
    • No parameters required
  • show_schemas
    • List all schemas in a catalog
    • Parameters:
      • catalog: Catalog name (string, required)
  • show_tables
    • List all tables in a schema
    • Parameters:
      • catalog: Catalog name (string, required)
      • schema: Schema name (string, required)
  • describe_table
    • Show detailed table structure and column information
    • Parameters:
      • table: Table name (string, required)
      • catalog: Catalog name (string, optional)
      • schema: Schema name (string, optional)
  • execute_query
    • Execute a SQL query and return formatted results
    • Parameters:
      • query: SQL query to execute (string, required)
  • show_catalog_tree
    • Show a hierarchical tree view of catalogs, schemas, and tables
    • Returns a formatted tree structure with visual indicators
    • No parameters required
  • show_create_table
    • Show the CREATE TABLE statement for a table
    • Parameters:
      • table: Table name (string, required)
      • catalog: Catalog name (string, optional)
      • schema: Schema name (string, optional)
  • show_create_view
    • Show the CREATE VIEW statement for a view
    • Parameters:
      • view: View name (string, required)
      • catalog: Catalog name (string, optional)
      • schema: Schema name (string, optional)
  • show_stats
    • Show statistics for a table
    • Parameters:
      • table: Table name (string, required)
      • catalog: Catalog name (string, optional)
      • schema: Schema name (string, optional)

Iceberg Table Maintenance

  • optimize
    • Optimize an Iceberg table by compacting small files
    • Parameters:
      • table: Table name (string, required)
      • catalog: Catalog name (string, optional)
      • schema: Schema name (string, optional)
  • optimize_manifests
    • Optimize manifest files for an Iceberg table
    • Parameters:
      • table: Table name (string, required)
      • catalog: Catalog name (string, optional)
      • schema: Schema name (string, optional)
  • expire_snapshots
    • Remove old snapshots from an Iceberg table
    • Parameters:
      • table: Table name (string, required)
      • retention_threshold: Age threshold (e.g., "7d") (string, optional)
      • catalog: Catalog name (string, optional)
      • schema: Schema name (string, optional)

Iceberg Metadata Inspection

  • show_table_properties
    • Show Iceberg table properties
    • Parameters:
      • table: Table name (string, required)
      • catalog: Catalog name (string, optional)
      • schema: Schema name (string, optional)
  • show_table_history
    • Show Iceberg table history/changelog
    • Contains snapshot timing, lineage, and ancestry information
    • Parameters:
      • table: Table name (string, required)
      • catalog: Catalog name (string, optional)
      • schema: Schema name (string, optional)
  • show_metadata_log_entries
    • Show Iceberg table metadata log entries
    • Contains metadata file locations and sequence information
    • Parameters:
      • table: Table name (string, required)
      • catalog: Catalog name (string, optional)
      • schema: Schema name (string, optional)
  • show_snapshots
    • Show Iceberg table snapshots
    • Contains snapshot details including operations and manifest files
    • Parameters:
      • table: Table name (string, required)
      • catalog: Catalog name (string, optional)
      • schema: Schema name (string, optional)
  • show_manifests
    • Show Iceberg table manifests for current or all snapshots
    • Contains manifest file details and data file statistics
    • Parameters:
      • table: Table name (string, required)
      • catalog: Catalog name (string, optional)
      • schema: Schema name (string, optional)
      • all_snapshots: Include all snapshots (boolean, optional)
  • show_partitions
    • Show Iceberg table partitions
    • Contains partition statistics and file counts
    • Parameters:
      • table: Table name (string, required)
      • catalog: Catalog name (string, optional)
      • schema: Schema name (string, optional)
  • show_files
    • Show Iceberg table data files in current snapshot
    • Contains detailed file metadata and column statistics
    • Parameters:
      • table: Table name (string, required)
      • catalog: Catalog name (string, optional)
      • schema: Schema name (string, optional)
  • show_entries
    • Show Iceberg table manifest entries for current or all snapshots
    • Contains entry status and detailed file metrics
    • Parameters:
      • table: Table name (string, required)
      • catalog: Catalog name (string, optional)
      • schema: Schema name (string, optional)
      • all_snapshots: Include all snapshots (boolean, optional)
  • show_refs
    • Show Iceberg table references (branches and tags)
    • Contains reference configuration and snapshot mapping
    • Parameters:
      • table: Table name (string, required)
      • catalog: Catalog name (string, optional)
      • schema: Schema name (string, optional)

Query History

  • show_query_history
    • Get the history of executed queries
    • Parameters:
      • limit: Maximum number of queries to return (number, optional)

License

This project is licensed under the Apache 2.0 License. Please refer to the LICENSE file for the full terms.

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

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.

A Model Context Protocol server that provides seamless integration with Trino and Iceberg, enabling data exploration, querying, and table maintenance through a standard interface.

  1. Use Cases
    1. Prerequisites
      1. Installation
        1. Installing via Smithery
        2. Running Trino Locally
        3. Usage with VS Code
        4. Usage with Claude Desktop
      2. Configuration
        1. Environment Variables
      3. Tools
        1. Query and Exploration Tools
        2. Iceberg Table Maintenance
        3. Iceberg Metadata Inspection
        4. Query History
      4. License

        Related MCP Servers

        • -
          security
          F
          license
          -
          quality
          A Model Context Protocol server that enables SQL query execution, database management, and business intelligence capabilities through MySQL connections.
          Last updated -
          JavaScript
        • -
          security
          F
          license
          -
          quality
          A Model Context Protocol server that provides a comprehensive interface for interacting with the ConnectWise Manage API, simplifying API discovery, execution, and management for both developers and AI assistants.
          Last updated -
          46
          2
          Python
          • Linux
          • Apple
        • -
          security
          -
          license
          -
          quality
          A Model Context Protocol server that provides tools for connecting to and interacting with various database systems (SQLite, PostgreSQL, MySQL/MariaDB, SQL Server) through a unified interface.
          Last updated -
          Python
        • A
          security
          F
          license
          A
          quality
          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.
          Last updated -
          1
          2
          Python

        View all related MCP servers

        ID: 4jlnxgg25k