Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Как создать ИИ-агента с Chainlit и MCP-сервером ClickHouse

В этом руководстве рассматривается, как объединить мощный фреймворк Chainlit для создания чат-интерфейсов с MCP-сервером ClickHouse (Model Context Protocol), чтобы создавать интерактивные приложения для работы с данными. Chainlit позволяет создавать диалоговые интерфейсы для ИИ-приложений с минимальным количеством кода, а MCP-сервер ClickHouse обеспечивает удобную интеграцию с высокопроизводительной колоночной базой данных ClickHouse.

Предварительные требования

  • Вам потребуется API-ключ Anthropic
  • У вас должен быть установлен uv

Базовое приложение на Chainlit

Ниже показан пример простого чат-приложения, которое можно запустить следующим образом:

uv run --with anthropic --with chainlit chainlit run chat_basic.py -w -h

Затем откройте http://localhost:8000

Добавление MCP-сервера ClickHouse

Если добавить MCP-сервер ClickHouse, станет ещё интереснее. Вам потребуется обновить файл .chainlit/config.toml, чтобы разрешить использование команды uv:

[features.mcp.stdio]
    enabled = true
    # Для MCP stdio сервера можно использовать только исполняемые файлы из списка разрешённых.
    # Укажите только базовое имя исполняемого файла, например "npx", а не "/usr/bin/npx".
    # Пожалуйста, не комментируйте эту строку — она нужна для разбора имени исполняемого файла.
    allowed_executables = [ "npx", "uvx", "uv" ]

Здесь есть вспомогательный код, который обеспечивает работу MCP-серверов с Chainlit, поэтому для запуска Chainlit вместо этого нужно выполнить следующую команду:

uv run --with anthropic --with chainlit chainlit run chat_mcp.py -w -h

Чтобы добавить MCP-сервер, нажмите на значок с вилкой в интерфейсе чата, а затем добавьте следующую команду, чтобы подключиться и использовать Песочницу ClickHouse:

CLICKHOUSE_HOST=sql-clickhouse.clickhouse.com CLICKHOUSE_USER=demo CLICKHOUSE_PASSWORD= CLICKHOUSE_SECURE=true uv run --with mcp-clickhouse --python 3.13 mcp-clickhouse

Если вы хотите использовать собственный экземпляр ClickHouse, вы можете изменить значения переменных окружения.

Затем вы можете задавать ему такие вопросы:

  • Расскажи мне о таблицах, к которым у тебя есть доступ для выполнения запросов
  • Что-нибудь интересное о нью-йоркских такси?
Navigation