mcp-trino

mcp-trino

tuannvmMIT
109 звёзд48 форков
MCP-сервер на Go для Trino — распределённого SQL-движка аналитики больших данных. Trino (бывший PrestoSQL) обрабатывает петабайты данных из разных источников: HDFS, реляционные базы, облачные хранилища. Этот сервер выступает мостом между AI-ассистентами и Trino через стандартный протокол MCP. Зачем это нужно? Разработчик или аналитик общается с AI-ассистентом на естественном языке, а тот напрямую выполняет SQL-запросы, навигирует по каталогам, схемам и таблицам. AI ускоряет разведку данных, написание сложных запросов и составление отчётов. Сервер написан на Go. Код компилируется в один бинарный файл — запуск за миллисекунды, не требует установки интерпретатора. Транспорт stdio делает сервер совместимым с любым MCP-клиентом: Claude Desktop, Cursor, VS Code, JetBrains. Исходный код открыт под лицензией MIT. Сборки заверяются подписью SLSA 3 и проходят сканирование Trivy.

Характеристики

Общее

  • СтатусСообщество
  • Разработчикtuannvm
  • ЛицензияMIT

Технологии

  • Языки
    Go
  • Транспорт
    stdio

Описание

Возможности

  • Выполнение произвольных SQL-запросов (SELECT, INSERT, CREATE TABLE).
  • Получение списка каталогов (catalogs) в кластере Trino.
  • Просмотр схем (schemas) внутри каталога.
  • Вывод таблиц (tables) для выбранной схемы.
  • Описание колонок, типов и комментариев таблицы (DESCRIBE).
  • Передача контекста подключения (каталог, схема) через конфигурацию клиента.
  • Безопасное подключение с настройками через аргументы командной строки.
  • Высокая скорость работы: реализация на Go минимизирует задержки.

Как подключить

1. Установка

Установите бинарный файл через Go:

go install github.com/tuannvm/mcp-trino@latest

Или через Docker:

docker pull ghcr.io/tuannvm/mcp-trino:latest

Также можно скачать готовую сборку из раздела Releases на GitHub. Выберите подходящую версию для вашей операционной системы.

2. Конфигурация для Claude Desktop

Добавьте сервер в файл claude_desktop_config.json:

{ "mcpServers": { "trino": { "command": "mcp-trino", "args": [ "--trino-host", "localhost", "--trino-port", "8080", "--trino-user", "your_user", "--trino-catalog", "tpch", "--trino-schema", "sf1" ], "env": {} } } }

Замените параметры подключения на свои. При использовании Docker укажите полный путь к контейнеру в поле command: docker, а в args параметры запуска.

3. Перезапустите клиент

Закройте и снова откройте Claude Desktop. В интерфейсе появится иконка с инструментами MCP-сервера. Если сервер не запускается, проверьте логи — он сообщит о проблемах подключения к Trino.

Примеры запросов

  • «Покажи все каталоги, доступные в Trino.» — сервер вызовет инструмент list_catalogs и вернёт список.
  • «Какие схемы есть в каталоге tpch?» — ассистент покажет схемы sf1, sf100, information_schema.
  • «Опиши структуру таблицы orders. Какие колонки и типы данных?» — команда DESCRIBE выполнится мгновенно.
  • «Выполни SQL: вывести топ-10 регионов по количеству наций. Используй таблицы region и nation.» — ассистент сгенерирует запрос, выполнит его через сервер и покажет результат.

Технические детали

  • Язык реализации: Go (статическая компиляция, без внешних зависимостей)
  • Транспорт: stdio (подходит для локальной работы и встраивания в IDE)
  • Лицензия: MIT (разрешено коммерческое использование)
  • Безопасность: Сборки проверяются Trivy, уровень доверия SLSA 3
  • Совместимость: Любой MCP-клиент (Claude Desktop, Cursor, VS Code, JetBrains)
  • Требования: Работающий экземпляр Trino с сетевым доступом
  • Разработчик: tuannvm (проект набрал 109 звёзд на GitHub)

Поделиться