Trino数据探索器
一种模型上下文协议服务器,可与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 服务器
MCP Trino 服务器是一个 模型上下文协议 (MCP) 服务器,它提供与 Trino 和 Iceberg 的无缝集成,通过标准接口实现高级数据探索、查询和表维护功能。
使用场景
- 在 Trino 中进行交互式数据探索和分析
- 自动化 Iceberg 表的维护和优化
- 构建与 Trino 数据库交互的 AI 驱动工具
- 执行并管理 SQL 查询,并正确格式化结果
先决条件
- 运行中的 Trino 服务器(或用于本地开发的 Docker Compose)
- Python 3.11 或更高版本
- 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 文件以获取完整条款。