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_contactsProverka_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.