MCP-сервер

Общие сведения о MCP-технологии

MCP (Model Context Protocol) — это протокол, позволяющий AI-агенту вызывать внешние инструменты (tools).

Loginom Integrator поддерживает MCP-протокол и выполняет роль MCP-сервера, позволяя представлять опубликованные в качестве веб-сервисов сценарии Loginom как набор инструментов.

Таким образом, функциональность обработки и трансформации данных, реализованная в сценариях Loginom, может использоваться не только в виде классических веб-сервисов, но и как MCP-инструменты, которые AI-агент способен самостоятельно выбирать и вызывать в процессе своей работы.

Типовая схема взаимодействия:

AI-агент (LLM)
      ⇅
MCP-клиент
      ⇅
MCP-сервер (Loginom Integrator)
      ⇅
Инструменты (сценарии, выполняемые в Loginom Server)

В данной схеме:

  • AI-агент формирует запросы на использование инструментов.
  • MCP-клиент предоставляет агенту интерфейс доступа к внешним инструментам.
  • MCP-клиент по одному из поддерживаемых протоколов взаимодействует с MCP-сервером.
  • MCP-сервер (Loginom Integrator):
    • предоставляет список доступных инструментов и их описание (метаданные и JSON-схемы параметров);
    • принимает вызовы инструментов (tools/call);
    • инициирует выполнение соответствующего сценария в Loginom Server;
    • возвращает MCP-клиенту и далее AI-агенту результат выполнения или сообщение об ошибке.

Примечание: В роли связки «AI-агент + MCP-клиент» могут выступать, например, Open WebUI или пользовательские агентные приложения, построенные на базе LangChain и/или LangGraph с поддержкой MCP.

Таким образом, в отличие от классических веб-сервисов, MCP предоставляет по запросу:

  • каталог инструментов;
  • формализованное описание параметров (JSON-схемы);
  • единый интерфейс вызова.

Это позволяет AI-агенту динамически выбирать и использовать опубликованные сценарии Loginom без заранее прописанной логики вызова конкретных URL.

Пример последовательности работы агента:

  • Агент получает задачу от пользователя: найти дубликаты клиентов по контактным данным (ФИО, телефон, email, адрес).
  • Агент запрашивает список доступных инструментов.
  • Обнаружив инструмент «Нормализовать контактные данные клиентов», агент получает данные, приведённые к единому формату (очистка и стандартизация).
  • Обнаружив инструмент «Найти потенциальные дубликаты клиентов», агент получает список пар или групп записей, которые с высокой вероятностью относятся к одному и тому же клиенту.
  • На основе полученных данных агент формирует ответ пользователю.

Публикация MCP-инструментов

MCP использует уже существующий механизм публикации веб-сервисов, в котором MCP-инструмент публикуется как опция публикации отдельного веб-сервиса. Базовая процедура создания и публикации веб-сервисов описана в статье справки Создание и публикация веб-сервисов и для публикации MCP-инструмента дополняется лишь включением опции Публиковать MCP сервер в диалоге «Добавление веб-сервиса». Включение этой опции публикует узел не только в качестве веб-сервиса, но и в качестве MCP-инструмента.

Примечание: Общий список всех веб-сервисов (в т.ч. опубликованных в качестве MCP-иснтрументов) отображается на странице Веб-сервисы, вызываемой из главного меню.

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

1. Создать или использовать существующий сценарий, в котором требуемая функция инструмента реализована в отдельном узле

Как правило, для этого используется Подмодель, позволяющая реализовать произвольную логику обработки данных и спроектировать структуры входных и выходных данных в ее портах. В одном сценарии может быть создано и опубликовано несколько узлов-подмоделей, каждая из которых определит свой инструмент. Публикуемые узлы должны быть видимы из корня сценария, т.е. в случае, если узел является вложенным (в подмодель или иерархию подмоделей), то у всех родительских подмоделей, в которых он содержится, должен быть установлен модификатор доступа Открытый.

2. Подготовить узел к публикации

В контекстном меню узла выбрать «Настроить модификатор доступа» и в открывшемся диалоге:

  • установить модификатор доступа Опубликованный;
  • задать имя узла — оно используется в качестве имени инструмента (tool.name).

    Дополнительно:

  • Метка узла используется в качестве заголовка инструмента (tool.title).

  • Комментарий к узлу используется как описание инструмента (tool.description).

3. Зафиксировать структуры входных и выходных данных узла

Рекомендуется зафиксировать схемы данных (например, отключив автосинхронизации полей в портах публикуемого узла), поскольку:

  • схема входных данных инструмента (inputSchema) формируется на основе структуры входных портов;
  • схема выходных данных (outputSchema) формируется на основе структуры выходных портов.

    Важно: При включённой автосинхронизации полей структуры данных в портах определяются динамически, исходя из формируемых в них данных, и могут быть не заданы в момент публикации, что приведёт к неопределённости описания схем данных инструмента.

При формировании схем учитываются:

  • имена, метки и свойства обязательности портов публикуемого узла. Входные порты со свойством Необязательный представлены в схеме данных инструмента как необязательные, выходные порты всегда являются обязательными.
  • имена, метки и свойство «Назначение» столбцов и переменных портов. Поля и переменные с назначением Не задано или Непригодное представлены в схеме данных как необязательные.
  • описание переменных включается в схему инструмента как description параметра для пояснения его назначения и может использоваться AI-агентом.

4. Сохранить пакет

5. Опубликовать

Для публикации пакета перейти в раздел «Веб-сервисы» главного меню и выбрать действие «Добавить». В диалоге «Добавление веб-сервиса»:

  • выбрать пакет с публикуемым сценарием;
  • включить опцию Публиковать MCP сервер;
  • нажать Опубликовать.

Рекомендации по проектированию инструментов

При проектировании MCP-инструментов рекомендуется учитывать правила именования (tool.title) инструментов, определения их описаний (tool.description), а также особенности длительности выполнения сценариев.

Подробные рекомендации приведены в статье: Рекомендации по проектированию MCP-инструментов.

URL адреса MCP серверов

В результате процесса публикации формируются общий и отдельные для каждого пакета MCP-сервера. Общий MCP-сервер содержит инструменты из всех пакетов.

  • для обращения к общему MCP-серверу используется URL http://<Server>/<App>/mcp/;
  • для обращения к MCP-серверу отдельного пакета используется URL http://<Server>/<App>/mcp/<PackageName>/.

где:

  • <Server> — хост Loginom Integrator.
  • <App> — имя приложения Loginom Integrator (задаётся при установке; по умолчанию <App> = lgi).
  • <PackageName> — имя пакета Loginom.

Примеры:

  • http://localhost/lgi/mcp/
  • http://localhost/lgi/mcp/mcp_test/

Имена инструментов и возможные конфликты

По умолчанию имя инструмента совпадает с именем опубликованного узла, заданным при настройке модификатора доступа. Если в разных пакетах есть опубликованные узлы с одинаковым именем, то в общем MCP-сервере возникнут конфликты.

При этом:

  • в лог Loginom Integrator записывается предупреждение;
  • в список инструментов общего MCP-сервера попадает только один из конфликтующих инструментов.

Для устранения возможных конфликтов в конфигурационном файле Loginom Integrator предусмотрен параметр mcpToolNamePrefix (по умолчанию — false). Если установить его в true, то в общем MCP-сервере к имени опубликованного узла добавляется префикс, сформированный из имени пакета. В этом случае имя инструмента формируется по шаблону: <имяПакета>_<имяУзла>.

При этом имя пакета приводится к допустимому виду: выполняются транслитерация и замена недопустимых символов.

Например, если имя пакета — Проверка клиентов.lgp, а имена опубликованных в нем узлов — normalize_contacts и find_duplicates, то при mcpToolNamePrefix = true результирующие имена инструментов в общем MCP-сервере будут следующими:

  • Proverka_klientov_normalize_contacts
  • Proverka_klientov_find_duplicates

На MCP-сервере конкретного пакета .../mcp/<PackageName>/ префиксы не добавляются.

Особенности использования и ограничения

  • Поддержка MCP-сервера доступна в редакции Enterprise.
  • В рамках стандарта взаимодействие между MCP-клиентом и MCP-сервером может осуществляться различными способами передачи данных: Streamable HTTP, STDIO, SSE. В текущей реализации Loginom Integrator для взаимодействия с MCP-клиентом используется Streamable HTTP (через URL).
  • MCP сервер работает в режиме stateless. В данном режиме MCP-сервер не хранит состояние сессии между запросами: каждый запрос обрабатывается как самостоятельный.
  • В текущей реализации не поддерживается отправка MCP-клиентам уведомлений notifications/tools/list_changed об изменении списка опубликованных инструментов. Поэтому после изменений в публикациях инструментов (добавление, удаление, переименование) MCP-клиенту может потребоваться повторно запросить актуальный список инструментов с помощью tools/list.


Статьи в разделе:

Новости, материалы по аналитике, кейсы применения, активное сообщество