项目简介

Trino MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,专为 Trino 分布式 SQL 查询引擎设计。它允许 AI 助手等 MCP 客户端通过标准化的工具集,安全、便捷地访问和操作 Trino 中的数据,实现自然语言驱动的数据分析和应用集成。

主要功能点

  • SQL 查询执行: 通过 'execute_query' 工具,执行 Trino SQL 查询,支持复杂的分析操作。
  • 数据库结构发现: 提供 'list_catalogs', 'list_schemas', 'list_tables' 和 'get_table_schema' 等工具,帮助 LLM 客户端浏览和理解 Trino 数据库的结构,包括 Catalog(目录)、Schema(模式)、Table(表)以及表的字段信息。
  • 标准化 MCP 协议: 遵循 MCP 协议标准,易于集成到各种支持 MCP 协议的 LLM 客户端。
  • 多种传输协议支持: 同时支持 STDIO 和 HTTP 两种传输方式,灵活适应不同的部署环境。
  • 配置灵活: 通过环境变量配置 Trino 连接参数,方便快捷地连接到不同的 Trino 集群。
  • Docker 容器化部署: 提供 Docker 镜像,简化部署流程,方便在容器化环境中运行。

安装步骤

本服务器支持多种安装方式:

1. 使用 Homebrew (macOS 和 Linux 推荐)

如果你的系统安装了 Homebrew,可以使用以下命令快速安装:

brew tap tuannvm/mcp
brew install mcp-trino

2. 手动下载安装

访问 GitHub Releases 页面,下载对应你操作系统的预编译版本。下载后,将可执行文件 'mcp-trino' 放置到你的 PATH 环境变量包含的目录下(例如 '/usr/local/bin' 或 'C:\Windows\System32'),并赋予执行权限(Linux/macOS: 'chmod +x mcp-trino')。

3. 从源代码编译

如果需要从源代码编译,请确保你的系统安装了 Go 语言环境。执行以下步骤:

git clone https://github.com/tuannvm/mcp-trino.git
cd mcp-trino
make build

编译成功后,可执行文件 'mcp-trino' 将位于 './bin/' 目录下。

服务器配置

MCP 服务器需要配置 Trino 数据库的连接信息才能正常工作。对于 MCP 客户端,需要配置 MCP 服务器的启动命令 (command) 及其参数 (args) 以建立连接。以下是在 MCP 客户端中配置 Trino MCP Server 的 JSON 示例:

{
  "mcpServers": {
    "mcp-trino": {
      "command": "mcp-trino",
      "args": [],
      "env": {
        "TRINO_HOST": "<Trino服务器地址>",
        "TRINO_PORT": "<Trino服务器端口>",
        "TRINO_USER": "<Trino用户名>",
        "TRINO_PASSWORD": "<Trino密码>"
      }
    }
  }
}

配置参数说明:

  • '"mcpServers"': 固定字段,表示 MCP 服务器配置。
  • '"mcp-trino"': 服务器名称,可以自定义,用于在客户端中标识该服务器。
  • '"command": "mcp-trino"': 启动 MCP 服务器的命令,通常为 'mcp-trino' (假设 'mcp-trino' 可执行文件已在 PATH 环境变量中)。
  • '"args": []': 启动参数,本服务器无需额外的启动参数,留空即可。
  • '"env"': 环境变量配置,用于配置 Trino 数据库连接信息:
    • '"TRINO_HOST": "<Trino服务器地址>"': Trino 服务器的主机名或 IP 地址。请替换为你的 Trino 服务器地址。
    • '"TRINO_PORT": "<Trino服务器端口>"': Trino 服务器的端口号,默认为 '8080'。请替换为你的 Trino 服务器端口。
    • '"TRINO_USER": "<Trino用户名>"': 连接 Trino 数据库的用户名。请替换为你的 Trino 用户名。
    • '"TRINO_PASSWORD": "<Trino密码>"': 连接 Trino 数据库的密码。请替换为你的 Trino 密码。

Docker 镜像配置:

如果使用 Docker 镜像运行 Trino MCP Server,客户端配置的 JSON 示例如下:

{
  "mcpServers": {
    "mcp-trino": {
      "command": "docker",
      "args": ["run", "--rm", "-i",
               "-e", "TRINO_HOST=<Trino服务器地址>",
               "-e", "TRINO_PORT=<Trino服务器端口>",
               "-e", "TRINO_USER=<Trino用户名>",
               "-e", "TRINO_PASSWORD=<Trino密码>",
               "-e", "TRINO_SCHEME=http",
               "ghcr.io/tuannvm/mcp-trino:latest"],
      "env": {}
    }
  }
}

Docker 镜像配置与本地执行方式类似,主要区别在于 'command' 和 'args' 部分,用于指示客户端通过 Docker 运行服务器。环境变量配置方式相同,用于配置 Trino 连接信息。

注意: 请根据你的 Trino 服务器实际情况,替换 '<Trino服务器地址>', '<Trino服务器端口>', '<Trino用户名>', '<Trino密码>' 为正确的值。 如果你的 Trino 服务器使用 HTTP 协议,请确保设置 '"TRINO_SCHEME": "http"'。

基本使用方法

  1. 启动 Trino MCP Server: 根据你的安装方式,启动 'mcp-trino' 服务器。如果使用 Docker,请参考 README.md 中的 Docker 运行命令。
  2. 配置 MCP 客户端: 在支持 MCP 协议的 LLM 客户端(如 Cursor, Claude Desktop, Windsurf, ChatWise)中,根据客户端的工具配置界面,导入或手动填写上述 JSON 配置信息,添加 'mcp-trino' 服务器。
  3. 使用 MCP 工具: 在客户端中,通常会提供一个工具菜单或入口,点击后可以看到 Trino MCP Server 提供的工具列表,例如 'execute_query', 'list_catalogs' 等。
  4. 调用工具: 根据你的需求,选择相应的工具,并按照工具的参数说明,填写必要的参数(例如,执行 SQL 查询时,需要填写 'query' 参数)。然后执行工具,即可与 Trino 数据库进行交互。
  5. 查看结果: 工具执行完成后,结果会显示在客户端界面中,通常以 JSON 或文本格式呈现。

通过以上步骤,你就可以在 LLM 客户端中使用 Trino MCP Server 提供的工具,实现与 Trino 数据库的便捷交互,进行数据查询和分析。

信息

分类

数据库与文件