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
Высокопроизводительный сервер Model Context Protocol (MCP) для Trino, реализованный на Go. Этот проект позволяет помощникам ИИ беспрепятственно взаимодействовать с распределенным механизмом SQL-запросов Trino с помощью стандартизированных инструментов MCP.
Обзор
Этот проект реализует сервер Model Context Protocol (MCP) для Trino на Go. Он позволяет помощникам ИИ получать доступ к распределенному движку SQL-запросов Trino через стандартизированные инструменты MCP.
Trino (ранее PrestoSQL) — это мощный механизм распределенных SQL-запросов, предназначенный для быстрой аналитики больших наборов данных.
Функции
- ✅ Реализация MCP-сервера на Go
- ✅ Выполнение SQL-запросов Trino с помощью инструментов MCP
- ✅ Каталог, схема и обнаружение таблиц
- ✅ Поддержка Docker-контейнеров
- ✅ Поддерживает транспорты STDIO и HTTP
- ✅ Поддержка событий, отправленных сервером (SSE), для Cursor и других клиентов MCP
- ✅ Совместимо с Cursor, Claude Desktop, Windsurf, ChatWise и любыми MCP-совместимыми клиентами.
Установка
Homebrew (macOS и Linux)
Самый простой способ установить mcp-trino — использовать Homebrew:
Для обновления до последней версии:
Альтернативные методы установки
Ручная загрузка
- Загрузите соответствующий двоичный файл для вашей платформы со страницы релизов GitHub .
- Поместите двоичный файл в каталог, включенный в ваш PATH (например,
/usr/local/bin
в Linux/macOS) - Сделайте его исполняемым (
chmod +x mcp-trino
в Linux/macOS)
Из источника
Загрузки
Вы можете загрузить готовые двоичные файлы для вашей платформы:
Платформа | Архитектура | Ссылка для скачивания |
---|---|---|
macOS | x86_64 (Интел) | Скачать |
macOS | ARM64 (Apple Silicon) | Скачать |
линукс | x86_64 | Скачать |
линукс | ARM64 | Скачать |
Окна | x86_64 | Скачать |
Или посмотрите все доступные загрузки на странице релизов GitHub .
Интеграция МКП
Этот MCP-сервер может быть интегрирован с несколькими приложениями ИИ:
Использование образа Docker
Чтобы использовать образ Docker вместо локального двоичного файла:
Примечание : специальное DNS-имя
host.docker.internal
позволяет контейнеру подключаться к службам, запущенным на хост-машине. Если ваш сервер Trino запущен в другом месте, замените на соответствующий хост.
Эту конфигурацию Docker можно использовать в любом из перечисленных ниже приложений.
Курсор
Для использования с Cursor создайте или отредактируйте ~/.cursor/mcp.json
:
Замените переменные среды на конкретную конфигурацию Trino.
Для транспортного режима HTTP+SSE (поддерживается для интеграции курсора):
Затем запустите сервер в отдельном терминале с помощью:
Клод Десктоп
Для использования с 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:
выполнить_запрос
Выполнение SQL-запроса к Trino с полной поддержкой SQL для сложных аналитических запросов.
Пример подсказки:
«Сколько у нас клиентов в каждом регионе? Можете ли вы отобразить их в порядке убывания?»
Пример:
Ответ:
список_каталогов
Перечислите все каталоги, доступные на сервере Trino, и получите полное представление о вашей экосистеме данных.
Пример подсказки:
«К каким базам данных у нас есть доступ в нашей среде Trino?»
Пример:
Ответ:
список_схем
Перечислите все схемы в каталоге, что поможет вам эффективно ориентироваться в иерархии данных.
Пример подсказки:
«Какие схемы или наборы данных доступны в каталоге tpch?»
Пример:
Ответ:
список_таблиц
Перечислите все таблицы в схеме, чтобы получить представление о доступных наборах данных.
Пример подсказки:
«Какие таблицы доступны в схеме tpch tiny? Мне нужно знать, какие данные мы можем запросить».
Пример:
Ответ:
получить_таблицу_схему
Получите схему таблицы, понимая структуру ваших данных для лучшего планирования запросов.
Пример подсказки:
«Какие столбцы есть в таблице клиентов? Мне нужно знать типы данных и структуру, прежде чем писать запрос».
Пример:
Ответ:
Эта информация бесценна для понимания имен столбцов, типов данных и ограничений допустимости значений NULL перед написанием запросов к таблице.
Пример «от начала до конца»
Вот полный пример взаимодействия, показывающий, как помощник на основе искусственного интеллекта может использовать эти инструменты для ответа на бизнес-вопрос:
Запрос пользователя: «Можете ли вы помочь мне проанализировать наших крупнейших клиентов? Я хочу узнать 5 лучших клиентов с самыми большими остатками на счетах».
Рабочий процесс AI Assistant:
- Сначала ознакомьтесь с доступными каталогамиCopy
- Затем найдите доступные схемыCopy
- Изучите доступные таблицыCopy
- Проверьте схему таблицы клиентовCopy
- Наконец, выполните запросCopy
- Возвращает результаты пользователю:Copy
Этот непрерывный рабочий процесс демонстрирует, как инструменты MCP позволяют помощникам на базе искусственного интеллекта исследовать и запрашивать данные в диалоговой форме.
Конфигурация
Сервер можно настроить с помощью следующих переменных среды:
Переменная | Описание | По умолчанию |
---|---|---|
ТРИНО_ХОСТ | Имя хоста сервера Trino | локальный хост |
ТРИНО_ПОРТ | Порт сервера Trino | 8080 |
ТРИНО_ПОЛЬЗОВАТЕЛЬ | Пользователь Трино | трино |
ТРИНО_ПАРОЛЬ | Пароль Трино | (пустой) |
ТРИНО_КАТАЛОГ | Каталог по умолчанию | память |
ТРИНО_СХЕМА | Схема по умолчанию | по умолчанию |
ТРИНО_СХЕМА | Схема подключения (http/https) | https |
ТРИНО_SSL | Включить SSL | истинный |
TRINO_SSL_INSECURE | Разрешить небезопасный SSL | истинный |
TRINO_ALLOW_WRITE_QUERIES | Разрешить SQL-запросы, не предназначенные только для чтения | ЛОЖЬ |
MCP_ТРАНСПОРТ | Метод транспортировки (stdio/http) | стдио |
MCP_PORT | HTTP-порт для http-транспорта | 9097 |
MCP_HOST | Хост для обратных вызовов HTTP | локальный хост |
Примечание : если для
TRINO_SCHEME
установлено значение «https»,TRINO_SSL
автоматически устанавливается значение true независимо от предоставленного значения.
Важно : режим соединения по умолчанию — HTTPS. Если вы используете сервер Trino только с HTTP, необходимо установить
TRINO_SCHEME=http
в переменных среды.
Примечание по безопасности : по умолчанию разрешены только запросы только для чтения (SELECT, SHOW, DESCRIBE, EXPLAIN) для предотвращения SQL-инъекции. Если вам нужно выполнить операции записи или другие запросы, не требующие чтения, установите
TRINO_ALLOW_WRITE_QUERIES=true
, но учтите, что это обходит эту защиту безопасности.
Для интеграции курсора : при использовании с курсором установите
MCP_TRANSPORT=http
и подключитесь к конечной точке/sse
. Сервер будет автоматически обрабатывать соединения SSE (Server-Sent Events).
Внося вклад
Вклады приветствуются! Пожалуйста, не стесняйтесь отправлять запрос на включение.
Лицензия
Данный проект лицензирован по лицензии MIT — подробности см. в файле LICENSE.
CI/CD и релизы
В этом проекте используются GitHub Actions для непрерывной интеграции и GoReleaser для автоматизированных выпусков.
Непрерывные проверки интеграции
Наш конвейер непрерывной интеграции выполняет следующие проверки всех PR и фиксирует изменения в основной ветке:
Качество кода
- Линтинг : использование golangci-lint для проверки распространенных проблем кода и нарушений стиля
- Проверка модуля Go : обеспечение правильной поддержки go.mod и go.sum
- Форматирование : проверка правильности форматирования кода с помощью gofmt
Безопасность
- Сканирование уязвимостей : использование govulncheck для проверки известных уязвимостей в зависимостях
- Сканирование зависимостей : использование Trivy для сканирования уязвимостей в зависимостях (КРИТИЧЕСКИХ, ВЫСОКИХ и СРЕДНИХ)
- Генерация SBOM : создание спецификации программного обеспечения для отслеживания зависимостей
- SLSA Provenance : создание проверяемого происхождения сборки для безопасности цепочки поставок
Тестирование
- Модульные тесты : запуск тестов с обнаружением гонок и отчетами о покрытии кода
- Проверка сборки : обеспечение успешной сборки кодовой базы
Безопасность CI/CD
- Наименьшие привилегии : рабочие процессы выполняются с минимальными требуемыми разрешениями.
- Закрепленные версии : все действия GitHub используют определенные версии для предотвращения атак на цепочку поставок.
- Обновления зависимостей : Автоматические обновления зависимостей через Dependabot
Процесс выпуска
Когда изменения объединяются с основной веткой:
- Проверки CI проводятся для подтверждения качества и безопасности кода.
- В случае успеха автоматически создается новый релиз со следующими данными:
- Семантическое версионирование на основе сообщений о коммитах
- Бинарные сборки для нескольких платформ
- Публикация образа Docker в GitHub Container Registry
- SBOM и подтверждение происхождения
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Высокопроизводительный сервер Model Context Protocol (MCP) для Trino, реализованный на Go.
Related MCP Servers
- -securityAlicense-qualityGo server implementing Model Context Protocol (MCP) for filesystem operations.Last updated -228GoMIT License
- -securityAlicense-qualityThis server implements the Model Context Protocol (MCP) to handle asynchronous tasks with real-time status tracking, robust error handling, and automatic resource management.Last updated -21JavaScriptMIT License
- AsecurityFlicenseAqualityA Model Context Protocol (MCP) server that provides a simple sleep/wait tool, useful for adding delays between operations such as waiting between API calls or testing eventually consistent systems.Last updated -167JavaScript
- -security-license-qualityA Model Context Protocol (MCP) server that interacts with system APIs, allowing users to check connections, search employees, register breakfast, and update chemical information by shifts.Last updated -2