chat-app-mcp

AnatoliyAksenov/chat-app-mcp

3.2

If you are the rightful owner of chat-app-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

MCP Server is the core of our solution, enabling LLM Chat and Gitlab Agent services to interact with the infrastructure where the MCP server is deployed.

MCP сервер для LLM агентов

MCP Сервер является сердцем нашего решения. Он предоставляет сервисам LLM Chat и Gitlab Agent возможность взаимодействовать с инфраструктурой, в которй MCP сервер запущен.

На стороне MCP сервера реализовано взаимодействие со следующими объектами:

  • Базы данных, все, для которых есть драйвера для sqlalchemy
  • Файловые хранилища (S3, SMB)
  • Kafka
  • Веб интерфейсы

Для файловых хранилищ поддерживаются следующие форматы данных:

  • CSV, TSV
  • JSON, XML
  • Parquet

Основные действия над базами данных:

  • проверить доступность
  • проверить наличие схемы.таблицы
  • получить DDL (структуру таблицы)
  • получить sample данных для проверки структуры таблицы

Основные действия над хранилищами

  • проверить доступность хранилища
  • проверить доступность каталога и проверить наличие файла
  • прочитать файл или его часть (для текстовых форматов)
  • получить схему для parquet файлов

Развертывание сервиса

Наш проект подготовлен для контейнеризации и содержит Dockerfile для сборки образа.

Для работы сервиса необходимо настроить следующие параметры переменных окружения:

  • HTTP_PROXY - адрес прокси сервера, если ваша среда не имеет прямого выхода в интернет

  • HTTPS_PROXY - адрес прокси сервера для https запросов, если ваша среда не имеет прямого выхода в интернет

  • GITLAB_URL - адрес сервера Gitlab для доступа к апи

  • GITLAB_TOKEN - действующий токен с уровнем доступа, чтение и запись через API

  • PROJECT_PATH - путь до проекта, в котором будут создаваться ветки

  • AIRFLOW_URL - адрес сервера Apache Airflow

  • AIRFLOW_USER - Пользователь, который имеет доступ к REST API сервера Airflow

  • AIRFLOW_PASSWORD - Паспорт пользователя

Для сборки образа указываем все необходимые переменные окружения и запускаем процесс сборки

$ git clone https://github.com/AnatoliyAksenov/chat-app-backend.git
$ cd chat-app-backend
$ docker build -t chat-app-backend:0.0.1 --build-arg HTTPS_PROXY=http://10.0.0.7:3128 \
--build-arg LDAP_SERVER=10.0.0.100 \
--build-arg LDAP_SERVER=1389 \
--build-arg POSTGRESQL_URL=postgres://10.0.0.7:5432/chat .

Также, для своего тестового контура мы настроили сборку и деплой приложения через cicd.

Архитектура решения

Продублировано из репозитория Gitlab Агента

Агент состоит из двух основных модулей:

  • LLM Чат (пользовательский интерфейс)
  • LLM Gitlab Агент (сервис)

Также, для работы сервисов необходим MCP сервер с набором инструметов для взаимодействия с базами данных и хранилищами.

scheme

Создание нового пайплайна для загрузки данных начинается в чате. Пользователь в процессе общения с агентом передает все необходимые данные для создания новой загрузки данных. Агент чата, после сбора необходимых данных, создает в приложении Gitlab issue, где собрана вся информация для создания пайплайна. После создания issue Gitlab вызывает webhook к LLM Gitlab Агенту и запускает обработку issue. Gitlab Агент обрабатывает issue и создает в репозитории Gitlab в выделенном проекте новую ветку и передает в нее весь созданный код и документацию, создает Merge Request и завершает свою работу.

При принятии Merge Request'a срабатывает cicd по доставке изменений в Airflow.

Связанные проекты:

Также, мы подготовили развернутый стенд