Trino_mcp

Trino_mcp

🚀 使用 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 端点以及解决常见问题的方法,希望能帮助您顺利使用该服务。

  • 0 关注
  • 0 收藏,8 浏览
  • system 提出于 2025-09-23 20:36

相似服务问题

相关AI产品