T

Trino数据探索器

@alaturqua/mcp-trino-python
0 Stars 408 次浏览 alaturqua 更新于 2026-08-23

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

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

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

该服务需要配置环境变量:TRINO_AUTH、TRINO_CATALOG、TRINO_HOST、TRINO_HTTP_SCHEME、TRINO_PORT、TRINO_SCHEMA、TRINO_USER

服务介绍

MCP Trino 服务器

smithery 徽章

VS Code
Docker
许可证

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

使用场景

  • 在 Trino 中进行交互式数据探索和分析
  • 自动化 Iceberg 表的维护和优化
  • 构建与 Trino 数据库交互的 AI 驱动工具
  • 执行并管理 SQL 查询,并正确格式化结果

先决条件

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

安装

通过 Smithery 安装

要通过 Smithery 自动安装适用于 Claude Desktop 的 MCP Trino 服务器:

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

本地运行 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_HOST Trino 服务器主机名 localhost
TRINO_PORT Trino 服务器端口 8080
TRINO_USER Trino 用户名 trino
TRINO_CATALOG 默认目录
TRINO_SCHEMA 默认模式
TRINO_HTTP_SCHEME HTTP 方案 (http/https) http
TRINO_PASSWORD Trino 密码

资源

服务器提供以下 MCP 资源:

目录和模式导航

  • catalog://main (list_catalogs)

    • 列出所有可用的 Trino 目录
    • 不需要参数
  • schema://{catalog} (list_schemas)

    • 列出指定目录中的所有模式
    • 参数:
      • catalog: 目录名称(字符串,必需)
  • table://{catalog}/{schema} (list_tables)

    • 列出指定模式中的所有表
    • 参数:
      • catalog: 目录名称(字符串,必需)
      • schema: 模式名称(字符串,必需)

工具

查询和探索工具

  • show_catalogs

    • 列出所有可用的目录
    • 不需要参数
  • show_schemas

    • 列出目录中的所有模式
    • 参数:
      • catalog: 目录名称(字符串,必需)
  • show_tables

    • 列出模式中的所有表
    • 参数:
      • catalog: 目录名称(字符串,必需)
      • schema: 模式名称(字符串,必需)
  • describe_table

    • 显示详细的表结构和列信息
    • 参数:
      • table: 表名称(字符串,必需)
      • catalog: 目录名称(字符串,可选)
      • schema: 模式名称(字符串,可选)
  • execute_query

    • 执行 SQL 查询并返回格式化的结果
    • 参数:
      • query: 要执行的 SQL 查询(字符串,必需)
  • show_catalog_tree

    • 以层次树的形式显示目录、模式和表
    • 返回带有可视化指示符的格式化树结构
    • 不需要参数
  • show_create_table

    • 显示创建表的 CREATE TABLE 语句
    • 参数:
      • table: 表名称(字符串,必需)
      • catalog: 目录名称(字符串,可选)
      • schema: 模式名称(字符串,可选)
  • show_create_view

    • 显示创建视图的 CREATE VIEW 语句
    • 参数:
      • view: 视图名称(字符串,必需)
      • catalog: 目录名称(字符串,可选)
      • schema: 模式名称(字符串,可选)
  • show_stats

    • 显示表的统计信息
    • 参数:
      • table: 表名称(字符串,必需)
      • catalog: 目录名称(字符串,可选)
      • schema: 模式名称(字符串,可选)

Iceberg 表维护

  • optimize

    • 通过合并小文件来优化 Iceberg 表
    • 参数:
      • table: 表名称(字符串,必需)
      • catalog: 目录名称(字符串,可选)
      • schema: 模式名称(字符串,可选)
  • optimize_manifests

    • 优化 Iceberg 表的清单文件
    • 参数:
      • table: 表名称(字符串,必需)
      • catalog: 目录名称(字符串,可选)
      • schema: 模式名称(字符串,可选)
  • expire_snapshots

    • 从 Iceberg 表中移除旧快照
    • 参数:
      • table: 表名称(字符串,必需)
      • retention_threshold: 保留阈值(例如:"7d")(字符串,可选)
      • catalog: 目录名称(字符串,可选)
      • schema: 模式名称(字符串,可选)

Iceberg 元数据检查

  • show_table_properties

    • 显示 Iceberg 表属性
    • 参数:
      • table: 表名 (字符串,必填)
      • catalog: 目录名 (字符串,可选)
      • schema: 模式名 (字符串,可选)
  • show_table_history

    • 显示 Iceberg 表历史/变更日志
    • 包含快照时间、血缘和祖先信息
    • 参数:
      • table: 表名 (字符串,必填)
      • catalog: 目录名 (字符串,可选)
      • schema: 模式名 (字符串,可选)
  • show_metadata_log_entries

    • 显示 Iceberg 表元数据日志条目
    • 包含元数据文件位置和序列信息
    • 参数:
      • table: 表名 (字符串,必填)
      • catalog: 目录名 (字符串,可选)
      • schema: 模式名 (字符串,可选)
  • show_snapshots

    • 显示 Iceberg 表快照
    • 包含快照详细信息,包括操作和清单文件
    • 参数:
      • table: 表名 (字符串,必填)
      • catalog: 目录名 (字符串,可选)
      • schema: 模式名 (字符串,可选)
  • show_manifests

    • 显示当前或所有快照的 Iceberg 表清单
    • 包含清单文件详细信息和数据文件统计信息
    • 参数:
      • table: 表名 (字符串,必填)
      • catalog: 目录名 (字符串,可选)
      • schema: 模式名 (字符串,可选)
      • all_snapshots: 包含所有快照 (布尔值,可选)
  • show_partitions

    • 显示 Iceberg 表分区
    • 包含分区统计信息和文件计数
    • 参数:
      • table: 表名 (字符串,必填)
      • catalog: 目录名 (字符串,可选)
      • schema: 模式名 (字符串,可选)
  • show_files

    • 显示当前快照中的 Iceberg 表数据文件
    • 包含详细的文件元数据和列统计信息
    • 参数:
      • table: 表名 (字符串,必填)
      • catalog: 目录名 (字符串,可选)
      • schema: 模式名 (字符串,可选)
  • show_entries

    • 显示当前或所有快照的 Iceberg 表清单条目
    • 包含条目状态和详细的文件指标
    • 参数:
      • table: 表名 (字符串,必填)
      • catalog: 目录名 (字符串,可选)
      • schema: 模式名 (字符串,可选)
      • all_snapshots: 包含所有快照 (布尔值,可选)
  • show_refs

    • 显示 Iceberg 表引用(分支和标签)
    • 包含引用配置和快照映射
    • 参数:
      • table: 表名 (字符串,必填)
      • catalog: 目录名 (字符串,可选)
      • schema: 模式名 (字符串,可选)

查询历史

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

许可证

本项目采用 Apache 2.0 许可证。请参阅 LICENSE 文件以获取完整条款。

相关 MCP 服务