Перейти к основному содержанию
Перейти к основному содержанию

Как создать AI-агента с помощью Chainlit и ClickHouse MCP Server

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

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

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

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

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

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

Затем откройте в браузере http://localhost:8000

Добавление ClickHouse MCP Server

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

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

Полный файл config.toml можно найти в репозитории с примерами

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

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

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

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, вы можете настроить значения переменных окружения.

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

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