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