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
Allows AI assistants to execute SQL queries against a Trino distributed SQL query engine, with support for catalog/schema/table discovery and schema inspection.
Trino MCP 服务器(Go 语言)
一个用 Go 语言实现的 Trino 高性能模型上下文协议 (MCP) 服务器。该项目使 AI 助手能够通过标准化的 MCP 工具与 Trino 的分布式 SQL 查询引擎无缝交互。
概述
该项目使用 Go 语言为 Trino 实现了模型上下文协议 (MCP) 服务器。它使 AI 助手能够通过标准化的 MCP 工具访问 Trino 的分布式 SQL 查询引擎。
Trino(以前称为 PrestoSQL)是一个强大的分布式 SQL 查询引擎,旨在对大型数据集进行快速分析。
特征
- ✅ 使用 Go 语言实现 MCP 服务器
- ✅ 通过 MCP 工具执行 Trino SQL 查询
- ✅ 目录、架构和表发现
- ✅ Docker 容器支持
- ✅ 支持 STDIO 和 HTTP 传输
- ✅ 服务器发送事件 (SSE) 支持 Cursor 和其他 MCP 客户端
- ✅ 与 Cursor、Claude Desktop、Windsurf、ChatWise 以及任何兼容 MCP 的客户端兼容。
安装
Homebrew(macOS 和 Linux)
安装 mcp-trino 最简单的方法是使用 Homebrew:
要更新到最新版本:
替代安装方法
手册下载
- 从GitHub 发布页面下载适合您平台的二进制文件。
- 将二进制文件放在 PATH 中包含的目录中(例如,Linux/macOS 上的
/usr/local/bin
) - 使其可执行(Linux/macOS 上为
chmod +x mcp-trino
)
来自源
下载
您可以下载适合您平台的预先构建的二进制文件:
平台 | 建筑学 | 下载链接 |
---|---|---|
macOS | x86_64(英特尔) | 下载 |
macOS | ARM64(Apple Silicon) | 下载 |
Linux | x86_64 | 下载 |
Linux | ARM64 | 下载 |
视窗 | x86_64 | 下载 |
或者查看GitHub 发布页面上的所有可用下载。
MCP 集成
该 MCP 服务器可以与多个 AI 应用程序集成:
使用 Docker 镜像
要使用 Docker 镜像而不是本地二进制文件:
注意:
host.docker.internal
特殊 DNS 名称允许容器连接到主机上运行的服务。如果您的 Trino 服务器在其他地方运行,请将其替换为相应的主机。
此 Docker 配置可用于以下任何应用程序。
光标
要与Cursor一起使用,请创建或编辑~/.cursor/mcp.json
:
用您的特定 Trino 配置替换环境变量。
对于 HTTP+SSE 传输模式(支持 Cursor 集成):
然后在单独的终端中启动服务器:
克劳德桌面
要与Claude Desktop一起使用,请编辑您的 Claude 配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
更新配置后,重新启动 Claude Desktop。您将在工具菜单中看到 MCP 工具。
风帆冲浪
要与Windsurf一起使用,请创建或编辑mcp_config.json
:
重启 Windsurf 以应用更改。Trino MCP 工具将可供 Cascade AI 使用。
ChatWise
要与ChatWise一起使用,请按照以下步骤操作:
- 打开 ChatWise 并转到“设置”
- 导航到“工具”部分
- 单击“+”图标添加新工具
- 选择“命令行 MCP”
- 使用以下详细信息进行配置:
- ID:
mcp-trino
(或您喜欢的任何名称) - 命令:
mcp-trino
- 参数:(留空)
- Env:添加以下环境变量:Copy
- ID:
或者,您可以从 JSON 导入配置:
- 将此 JSON 复制到剪贴板:Copy
- 在 ChatWise 设置 > 工具中,点击“+”图标
- 选择“从剪贴板导入 JSON”
- 切换工具旁边的开关以启用它
启用后,单击 ChatWise 中输入框下方的锤子图标即可访问 Trino MCP 工具。
可用的 MCP 工具
该服务器提供以下 MCP 工具:
执行查询
对 Trino 执行 SQL 查询,并为复杂的分析查询提供完整的 SQL 支持。
示例提示:
“每个地区有多少客户?您能按降序显示吗?”
例子:
回复:
列表目录
列出 Trino 服务器中可用的所有目录,提供数据生态系统的全面视图。
示例提示:
“我们在 Trino 环境中可以访问哪些数据库?”
例子:
回复:
列表模式
列出目录中的所有模式,帮助您有效地浏览数据层次结构。
示例提示:
“tpch 目录中有哪些可用的模式或数据集?”
例子:
回复:
列表表
列出模式中的所有表,让您了解可用的数据集。
示例提示:
“tpch tiny 模式中有哪些表?我需要知道我们可以查询哪些数据。”
例子:
回复:
获取表模式
获取表的模式,了解数据的结构以便更好地进行查询规划。
示例提示:
“客户表中有哪些列?在编写查询之前,我需要了解数据类型和结构。”
例子:
回复:
在针对表编写查询之前,这些信息对于理解列名、数据类型和可空性约束非常有价值。
端到端示例
以下是一个完整的交互示例,展示了人工智能助手如何使用这些工具来回答业务问题:
用户查询: “您能帮我分析一下我们最大的客户吗?我想知道账户余额最高的前5个客户。”
AI助手的工作流程:
- 首先,发现可用的目录Copy
- 然后,找到可用的模式Copy
- 探索可用表Copy
- 检查客户表架构Copy
- 最后,执行查询Copy
- 将结果返回给用户:Copy
这种无缝的工作流程展示了 MCP 工具如何使 AI 助手能够以对话的方式探索和查询数据。
配置
可以使用以下环境变量配置服务器:
多变的 | 描述 | 默认 |
---|---|---|
TRINO_HOST | Trino 服务器主机名 | 本地主机 |
TRINO_PORT | Trino 服务器端口 | 8080 |
TRINO_用户 | Trino 用户 | 特里诺 |
TRINO_密码 | Trino 密码 | (空的) |
TRINO_目录 | 默认目录 | 记忆 |
TRINO_SCHEMA | 默认架构 | 默认 |
TRINO_SCHEME | 连接方案(http/https) | https |
TRINO_SSL | 启用 SSL | 真的 |
TRINO_SSL_不安全 | 允许不安全的 SSL | 真的 |
TRINO_ALLOW_WRITE_QUERIES | 允许非只读 SQL 查询 | 错误的 |
MCP_传输 | 传输方法(stdio/http) | 标准输入输出 |
MCP_端口 | 用于 http 传输的 HTTP 端口 | 9097 |
MCP_主机 | HTTP 回调的主机 | 本地主机 |
注意:当
TRINO_SCHEME
设置为“https”时,无论提供的值是什么,TRINO_SSL
都会自动设置为 true。
重要提示:默认连接模式为 HTTPS。如果您使用的是仅 HTTP 的 Trino 服务器,则必须在环境变量中设置
TRINO_SCHEME=http
。
安全注意事项:默认情况下,仅允许执行只读查询(SELECT、SHOW、DESCRIBE、EXPLAIN),以防止 SQL 注入。如果您需要执行写入操作或其他非读取查询,请设置
TRINO_ALLOW_WRITE_QUERIES=true
,但请注意,这会绕过此安全保护。
对于 Cursor 集成:与 Cursor 一起使用时,请设置
MCP_TRANSPORT=http
并连接到/sse
端点。服务器将自动处理 SSE(服务器发送事件)连接。
贡献
欢迎贡献代码!欢迎提交 Pull 请求。
执照
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。
CI/CD 和发布
该项目使用 GitHub Actions 进行持续集成,使用 GoReleaser 进行自动发布。
持续集成检查
我们的 CI 管道对所有 PR 执行以下检查并提交到主分支:
代码质量
- Linting :使用 golangci-lint 检查常见代码问题和代码风格违规
- Go 模块验证:确保 go.mod 和 go.sum 得到正确维护
- 格式化:使用 gofmt 验证代码格式是否正确
安全
- 漏洞扫描:使用 govulncheck 检查依赖项中的已知漏洞
- 依赖项扫描:使用 Trivy 扫描依赖项中的漏洞(严重、高和中)
- SBOM 生成:创建用于依赖关系跟踪的软件物料清单
- SLSA Provenance :为供应链安全创建可验证的构建来源
测试
- 单元测试:运行带有竞争检测和代码覆盖率报告的测试
- 构建验证:确保代码库构建成功
CI/CD 安全
- 最小权限:工作流以所需的最低权限运行
- 固定版本:所有 GitHub Actions 都使用特定版本来防止供应链攻击
- 依赖项更新:通过 Dependabot 自动更新依赖项
发布流程
当更改合并到主分支时:
- 运行 CI 检查来验证代码质量和安全性
- 如果成功,则会自动创建一个新版本:
- 基于提交消息的语义版本控制
- 适用于多个平台的二进制构建
- Docker 镜像发布到 GitHub Container Registry
- SBOM 和来源证明
This server cannot be installed
用 Go 实现的 Trino 高性能模型上下文协议 (MCP) 服务器。