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.

MCP Trino 服务器

MCP Trino 服务器是一个模型上下文协议 (MCP)服务器,可与 Trino 和 Iceberg 无缝集成,通过标准接口实现高级数据探索、查询和表维护功能。

用例

  • Trino 中的交互式数据探索和分析
  • 自动化 Iceberg 表维护和优化
  • 构建与 Trino 数据库交互的人工智能工具
  • 使用适当的结果格式执行和管理 SQL 查询

先决条件

  1. 正在运行的 Trino 服务器(或用于本地开发的 Docker Compose)
  2. Python 3.11 或更高版本
  3. Docker(可选,用于容器化部署)

安装

本地运行 Trino

最简单的入门方法是使用包含的 Docker Compose 配置在本地运行 Trino:

docker-compose up -d

这将在localhost:8080上启动 Trino 服务器。现在您可以继续配置 MCP 服务器。

与 VS Code 一起使用

为了快速安装,您可以将以下配置添加到 VS Code 设置中。您可以按Ctrl + Shift + P并输入Preferences: Open User Settings (JSON)来完成此操作。

或者,您可以将其添加到工作区中名为.vscode/mcp.json的文件中。这样您就可以与其他人共享该配置。

请注意.vscode/mcp.json文件中不需要mcp键。

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

与 Claude Desktop 一起使用

将以下配置添加到您的 Claude Desktop 设置:

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

配置

环境变量

多变的描述默认
TRINO_HOSTTrino 服务器主机名本地主机
TRINO_PORTTrino 服务器端口8080
TRINO_用户Trino 用户名特里诺
TRINO_目录默认目录没有任何
TRINO_SCHEMA默认架构没有任何
TRINO_HTTP_方案HTTP 方案 (http/https)http
TRINO_密码Trino 密码没有任何

资源

服务器提供以下 MCP 资源:

目录和模式导航

  • catalog://mainshow_catalogs
    • 列出所有可用的 Trino 目录
    • 无需参数
  • 模式://{catalog}show_schemas
    • 列出指定目录中的所有架构
    • 参数:
      • catalog :目录名称(字符串,必需)
  • 表://{catalog}/{schema}show_tables
    • 列出指定架构中的所有表
    • 参数:
      • catalog :目录名称(字符串,必需)
      • schema :架构名称(字符串,必需)

工具

查询和探索工具

  • 执行查询
    • 执行 SQL 查询并返回格式化的结果
    • 参数:
      • query :要执行的 SQL 查询(字符串,必需)
  • 显示目录树
    • 显示目录、模式和表的层次树视图
    • 返回带有视觉指示器的格式化树结构
    • 无需参数
  • 显示创建表
    • 显示表的 CREATE TABLE 语句
    • 参数:
      • table :表名(字符串,必需)
      • catalog :目录名称(字符串,可选)
      • schema :架构名称(字符串,可选)
  • 显示_创建_视图
    • 显示视图的 CREATE VIEW 语句
    • 参数:
      • view :视图名称(字符串,必需)
      • catalog :目录名称(字符串,可选)
      • schema :架构名称(字符串,可选)
  • 显示统计信息
    • 显示表的统计数据
    • 参数:
      • table :表名(字符串,必需)
      • catalog :目录名称(字符串,可选)
      • schema :架构名称(字符串,可选)

冰山桌维护

  • 优化
    • 通过压缩小文件来优化冰山表
    • 参数:
      • table :表名(字符串,必需)
      • catalog :目录名称(字符串,可选)
      • schema :架构名称(字符串,可选)
  • 优化清单
    • 优化 Iceberg 表的清单文件
    • 参数:
      • table :表名(字符串,必需)
      • catalog :目录名称(字符串,可选)
      • schema :架构名称(字符串,可选)
  • 过期快照
    • 从 Iceberg 表中删除旧快照
    • 参数:
      • table :表名(字符串,必需)
      • retention_threshold :年龄阈值(例如“7d”)(字符串,可选)
      • catalog :目录名称(字符串,可选)
      • schema :架构名称(字符串,可选)

Iceberg 元数据检查

  • 显示表属性
    • 显示 Iceberg 表属性
    • 参数:
      • table :表名(字符串,必需)
      • catalog :目录名称(字符串,可选)
      • schema :架构名称(字符串,可选)
  • 显示表历史记录
    • 显示 Iceberg 表历史记录/更新日志
    • 包含快照时间、谱系和祖先信息
    • 参数:
      • table :表名(字符串,必需)
      • catalog :目录名称(字符串,可选)
      • schema :架构名称(字符串,可选)
  • 显示元数据日志条目
    • 显示 Iceberg 表元数据日志条目
    • 包含元数据文件位置和序列信息
    • 参数:
      • table :表名(字符串,必需)
      • catalog :目录名称(字符串,可选)
      • schema :架构名称(字符串,可选)
  • 显示快照
    • 显示 Iceberg 表快照
    • 包含快照详细信息,包括操作和清单文件
    • 参数:
      • table :表名(字符串,必需)
      • catalog :目录名称(字符串,可选)
      • schema :架构名称(字符串,可选)
  • 显示清单
    • 显示当前或所有快照的 Iceberg 表清单
    • 包含清单文件详细信息和数据文件统计信息
    • 参数:
      • table :表名(字符串,必需)
      • catalog :目录名称(字符串,可选)
      • schema :架构名称(字符串,可选)
      • all_snapshots :包含所有快照(布尔值,可选)
  • 显示分区
    • 显示 Iceberg 表分区
    • 包含分区统计信息和文件计数
    • 参数:
      • table :表名(字符串,必需)
      • catalog :目录名称(字符串,可选)
      • schema :架构名称(字符串,可选)
  • 显示文件
    • 显示当前快照中的 Iceberg 表数据文件
    • 包含详细的文件元数据和列统计信息
    • 参数:
      • table :表名(字符串,必需)
      • catalog :目录名称(字符串,可选)
      • schema :架构名称(字符串,可选)
  • 显示条目
    • 显示当前或所有快照的 Iceberg 表清单条目
    • 包含条目状态和详细文件指标
    • 参数:
      • table :表名(字符串,必需)
      • catalog :目录名称(字符串,可选)
      • schema :架构名称(字符串,可选)
      • all_snapshots :包含所有快照(布尔值,可选)
  • 显示参考
    • 显示 Iceberg 表引用(分支和标签)
    • 包含参考配置和快照映射
    • 参数:
      • table :表名(字符串,必需)
      • catalog :目录名称(字符串,可选)
      • schema :架构名称(字符串,可选)

查询历史记录

  • 显示查询历史记录
    • 获取已执行查询的历史记录
    • 参数:
      • limit :返回的最大查询数(数字,可选)

执照

本项目遵循 Apache 2.0 许可证。请参阅许可证文件以了解完整条款。

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

模型上下文协议服务器可与 Trino 和 Iceberg 无缝集成,通过标准接口实现数据探索、查询和表维护。

  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