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

Подключение MCP-серверов

Интеграция с MCP-серверами (от англ. Model Context Protocol) — ключевой способ расширить возможности вашей системы. MCP-серверы позволяют AI-агентам и процессам безопасно взаимодействовать с внешними системами, базами данных и сервисами. После подключения MCP-сервера вы сможете использовать его функции как шаги в бизнес-процессах или как инструменты для AI-агента.

Платформа Agent Platform поддерживает подключение к разным типам MCP-серверов:

  • Публичные реестры и маркетплейсы (например, Smithery).
  • Приватные self-hosted инсталляции.
  • Сервисы с прямым доступом по URL.
Особенности работы с MCP-серверами
  • Стабильность и доступность: MCP-серверы — это внешние сервисы. Платформа Agent Platform не отвечает за их работу и доступность.
  • Потребление контекста: вызов функций и их описание занимают значительную часть контекстного окна, что может ухудшить качество работы моделей с небольшим контекстом. Рекомендуем использовать модели с большим контекстным окном.
  • Стоимость: использование функций MCP-серверов может быть платным. Уточняйте тарифы у провайдера сервиса.

Создание подключения

к сведению

Платформа Agent Platform находится в активной разработке и тексты интерфейса могут меняться.

Чтобы добавить MCP-сервер в проект, выполните следующие шаги:

  1. В левом меню перейдите в раздел Интеграции.

  2. Нажмите Подключить и выберите MCP.

  3. Заполните параметры:

    • Название интеграции — укажите понятное имя, которое будет отображаться в списке интеграций. Например, Калькулятор тарифов или API базы знаний.

    • Адрес MCP-сервера — введите адрес, по которому доступен сервер.

    • Протокол подключения — выберите протокол, который поддерживает MCP-сервер:

      • Streamable HTTP — современный HTTP-транспорт MCP: клиент и сервер обмениваются сообщениями через единый HTTP-эндпоинт.
      • SSE — транспорт MCP через HTTP+SSE: сервер отправляет сообщения клиенту через поток Server-Sent Events.

      Поддерживаемый протокол должен быть указан в документации MCP-сервера.

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

      По нему вы также сможете найти функции в конструкторе.

    • Учетные данные — если требуется аутентификация (например, API-ключ), выберите учетные данные из списка или создайте новые. Если доступ открыт, оставьте поле пустым.

  4. Нажмите Добавить.

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

Пример: подключение MCP Fetch

Рассмотрим подключение на примере MCP-сервера Fetch из каталога Caila. Этот сервер предоставляет функцию для получения и обработки веб-контента: содержимого веб-страниц, API-эндпоинтов и других HTTP-ресурсов.

При добавлении интеграции укажите следующие параметры:

  • Название — CailaFetch.
  • Адрес MCP-сервера — https://just-ai-mcp-fetch.app.caila.io/mcp.
  • Протокол подключения — Streamable HTTP.
  • Имя коллекции — cailaFetch.
  • Учетные данные — Без учетных данных.

После сохранения интеграции она появится в списке, а в конструкторе процессов вы сможете найти функцию cailaFetch.fetch.

MCP-сервер в списке интеграций

Использование в процессе

После подключения вы можете использовать функции MCP на холсте.

Режим «Функция»

Базовый режим, чтобы использовать функцию как отдельный шаг в процессе.

  • Как работает: система вызывает выбранную функцию с заданными параметрами. Для получения результата в следующем блоке используйте метод Context.getLastFunctionResult().
  • Когда использовать: для задач, где вызов внешней системы — это четкий шаг в процессе. Например: «получить курс валют», «рассчитать доставку», «проверить статус заказа».

Настройка

  1. В левом меню перейдите в Конструктор.

  2. Выберите ФункцииMCP.
  3. Перетащите функцию на холст.

    подсказка

    Чтобы добавить сразу все функции коллекции на холст, просто перетащите туда коллекцию.

  4. Укажите параметры функции. Вы можете ввести их вручную или использовать динамическую подстановку данных, например:

    • Для движка версии 2: ID этого канала: {{ request.botId}}.
    • Для версии 1: {{'ID этого канала: ' + Context.getBotId()}}.
  5. Если в вашем проекте движок версии 2, вы можете задать параметры на вкладке Поведение:

    • Время ожидания ответа: до 60 минут. Если выполнение функции не завершится за это время, будет зафиксирована ошибка.

    • Повторные попытки при ошибке: до 10 повторных вызовов.

      Например, если указать таймаут 20 секунд и количество повторных попыток 3, то суммарное время ожидания может составить до 80 секунд: 20×(1+3).

    • Возвращать указанное значение вместо ошибки: если функция не выполнится успешно после всех попыток, процесс не прервется, а на выход блока будет передано заданное значение (число, строка, JSON-объект, true/false или null).

Режим «Инструмент»

Используется совместно с блоком Агент, позволяя AI самостоятельно решать, когда вызывать функцию.

  • Как работает: вы не вызываете функцию напрямую — она становится «инструментом» для агента. Агент сам решает, когда и как ее использовать, исходя из диалога с пользователем.
  • Когда использовать: для гибких систем, где агент взаимодействует с внешним миром: например, «забронируй переговорную» или «какой у меня баланс?».

Подтверждение перед вызовом

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

подсказка

Подробнее о настройке функций в режиме инструмента смотрите в разделе про блок «Агент».

Вызов в коде

Функцию можно вызвать:

  • Из выражений в блоках Код и Условие. Пример смотрите в разделах Код и Условие.

  • Из кода других (пользовательских) функций.

  • Из параметров других JavaScript-функций (только если в вашем проекте движок версии 1).

    Пример
    Вызов функции в параметре

При вызове функций указывайте коллекцию, например:

// Вызов функции websearch из коллекции SearchMCP
SearchMCP.websearch();

При вызове встроенных функций передавайте аргументы:

  • Для движка версии 2 — в виде объекта, например:

    AgentContext.putValue({key: "lastOrder", value: order});
  • Для версии 1 — позиционно, например:

    AgentContext.putValue("lastOrder", order);
примечание

Из JavaScript-кода нельзя вызывать Python-функции, и наоборот.

Сохранение результата в контекст

Результат выполнения блока функции можно записывать в служебную память, используемую агентами. Подробнее смотрите в разделе Управление контекстом агентов.