返回 MCP 目录
public公开dns本地运行

trino_mcp

Trino MCP Server是一个为AI模型提供结构化访问Trino分布式SQL查询引擎的协议服务器,支持多种传输方式和API集成。

article

README

🚀 使用 Trino MCP 访问《bullshit 数据集》

本项目借助 Trino 的 MCP(机器学习平台),提供了一个 REST API 接口,让用户能通过 SQL 查询直接访问《bullshit 数据集》。下面将详细介绍如何利用该接口进行数据查询,同时给出简单的 Python 示例。

🚀 快速开始

安装 Docker 环境

为了运行 Trino MCP 服务,您需要确保系统已安装 Docker 且 Docker 已启动。之后,使用以下命令拉取必要的镜像并启动服务:

docker-compose up -d trino-mcp

发送 SQL 查询请求

您可以通过向 Trino MCP 的 API 端点发送 POST 请求来执行 SQL 查询。以下是 Python 示例代码:

import requests
import json

# 设置 API 端点地址(默认 Docker 容器的 9097 端口)
api_url = "http://localhost:9097/api/query"

# 定义您的 SQL 查询
query_data = {
    "query": "SELECT * FROM memory.bullshit.real_bullshit_data LIMIT 5",
    "catalog": "memory",
    "schema": "bullshit"
}

# 发送 POST 请求
response = requests.post(api_url, json=query_data)

# 处理响应结果
if response.status_code == 200:
    results = response.json()
    if results["success"]:
        print(f"查询成功,返回 {results['results']['row_count']} 行数据")
        for row in results['results']['rows']:
            print(row)
    else:
        print(f"查询失败:{results.get('message', '未知错误')}")
else:
    print(f"HTTP 请求失败,状态码:{response.status_code}")

✨ 主要特性

Trino MCP 提供以下两个主要 API 端点,通过直接调用 REST 接口去除了包装脚本的需求,使得集成到 Claude、GPT 等 AI 系统中变得更加简单:

  • GET /api:获取 API 文档和使用示例。
  • POST /api/query:执行针对 Trino 的 SQL 查询。

📦 安装指南

为了运行 Trino MCP 服务,请确保您的系统已安装 Docker 并且 Docker 已启动。然后,您可以使用以下命令拉取必要的镜像并启动服务:

docker-compose up -d trino-mcp

💻 使用示例

基础用法

import requests
import json

# 设置 API 端点地址(默认 Docker 容器的 9097 端口)
api_url = "http://localhost:9097/api/query"

# 定义您的 SQL 查询
query_data = {
    "query": "SELECT * FROM memory.bullshit.real_bullshit_data LIMIT 5",
    "catalog": "memory",
    "schema": "bullshit"
}

# 发送 POST 请求
response = requests.post(api_url, json=query_data)

# 处理响应结果
if response.status_code == 200:
    results = response.json()
    if results["success"]:
        print(f"查询成功,返回 {results['results']['row_count']} 行数据")
        for row in results['results']['rows']:
            print(row)
    else:
        print(f"查询失败:{results.get('message', '未知错误')}")
else:
    print(f"HTTP 请求失败,状态码:{response.status_code}")

高级用法

Docker 容器 API(端口 9097)

import requests
import json

# 设置 API 端点地址(默认 Docker 容器的 9097 端口)
api_url = "http://localhost:9097/api/query"

# 定义您的 SQL 查询
query_data = {
    "query": "SELECT * FROM memory.bullshit.real_bullshit_data LIMIT 5",
    "catalog": "memory",
    "schema": "bullshit"
}

# 发送 POST 请求
response = requests.post(api_url, json=query_data)

# 处理响应结果
if response.status_code == 200:
    results = response.json()
    if results["success"]:
        print(f"查询成功,返回 {results['results']['row_count']} 行数据")
        for row in results['results']['rows']:
            print(row)
    else:
        print(f"查询失败:{results.get('message', '未知错误')}")
else:
    print(f"HTTP 请求失败,状态码:{response.status_code}")

独立 Python API(端口 8008)

# 同样的代码,但使用不同的端口
api_url = "http://localhost:8008/query"

📚 详细文档

支持的 API 端点

Trino MCP 提供以下两个主要 API 端点:

  • Docker 容器 API(端口 9097):上述已给出示例代码。
  • 独立 Python API(端口 8008):通过修改端口号即可使用,示例代码见上文。

这些 API 通过直接调用 REST 接口去除了包装脚本的需求,使得集成到 Claude、GPT 等 AI 系统中变得更加简单。

常见问题解答

1. API 返回 503 服务不可用错误

如果 Docker 容器的 API 返回 503 错误,请按照以下步骤排查:

  • 重建容器

    docker-compose stop trino-mcp
    docker-compose rm -f trino-mcp
    docker-compose up -d trino-mcp
    
  • 检查容器日志

    docker logs trino_mcp_trino-mcp_1
    
  • 验证 Trino 运行状态

    curl -s http://localhost:9095/v1/info | jq
    

2. 端口冲突问题

如果独立 API 使用的默认端口(8008)出现占用,请按照以下步骤解决:

  • 修改代码中的端口号

    打开 llm_trino_api.py 文件,找到最后一行并修改为所需的端口。

    uvicorn.run(app, host="127.0.0.1", port=8009)
    
  • 运行修改后的服务

    python llm_trino_api.py
    

总结

通过 Trino MCP,用户可以方便地通过 SQL 查询直接访问《bullshit 数据集》。本指南详细介绍了安装环境、发送查询请求、使用 API 端点以及解决常见问题的方法,希望能帮助您顺利使用该服务。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端