An MCP server that allows you to list and query tables via Trino using Python
8 stars1 watching3 forks

Trino MCP Server

This repository provides an MCP (Model-Control-Protocol) server that allows you to list and query tables via Trino using Python.

Overview

  • MCP: MCP is a protocol for bridging AI models, data, and tools. This example MCP server provides:
    • A list of Trino tables as MCP resources
    • Ability to read table contents through MCP
    • A tool for executing arbitrary SQL queries against Trino
  • Trino: A fast, distributed SQL query engine for big data analytics. This server makes use of Trinoโ€™s Python client (trino.dbapi) to connect to a Trino host, catalog, and schema.

Requirements

  • Python 3.9+ (or a version compatible with mcp, trino, and asyncio)
  • trino (the Python driver for Trino)
  • mcp (the Model-Control-Protocol Python library)

Configuration

The server reads Trino connection details from environment variables:

| Variable | Description | Default | |------------------|----------------------------------------------------------------------|------------| | TRINO_HOST | Trino server hostname or IP | localhost| | TRINO_PORT | Trino server port | 8080 | | TRINO_USER | Trino user name | required | | TRINO_PASSWORD | Trino password (optional, depends on your authentication setup) | (empty) | | TRINO_CATALOG | Default catalog to use (e.g., hive, tpch, postgresql, etc.) | required | | TRINO_SCHEMA | Default schema to use (e.g., default, public, etc.) | required |

Usage

{
  "mcpServers": {
    "trino": {
      "command": "uv",
      "args": [
        "--directory", 
        "<path_to_mcp_server_trino>",
        "run",
        "mcp_server_trino"
      ],
      "env": {
        "TRINO_HOST": "<host>",
        "TRINO_PORT": "<port>",
        "TRINO_USER": "<user>",
        "TRINO_PASSWORD": "<password>",
        "TRINO_CATALOG": "<catalog>",
        "TRINO_SCHEMA": "<schema>"
      }
    }
  }
}

Features

Tables
Query
SQL
Analytics
Distributed

Category

Databases