MCP-шлюз
MCP-шлюз (native.mcp) — отдельный модуль-расширение API-платформы для работы ИИ-агентов по протоколу MCP.
API-платформа предоставляет ему роут /mcp, общие проверки доступа, токены, лимиты и журналирование, а сам шлюз реализует протокол JSON-RPC и каталог инструментов.
Установка, удаление, доступ агентов, публикация инструментов и протокол описаны в документации MCP-шлюза. Здесь — то, что относится к самой API-платформе.
Роуты MCP
Роуты имеют тип mcp и работают только при установленном и включённом шлюзе.
| Роут | Назначение |
|---|---|
| POST /mcp | Роут JSON-RPC для запросов ИИ-агентов |
| GET /mcp | Отвечает 405 после общих проверок: потоковый транспорт (SSE) не поддерживается |
| GET /mcp/project | Встроенный инструмент project_info: название сайта |
| GET /mcp/module | Встроенный инструмент module_info: код, версия и дата версии API-платформы |
| GET /mcp/orders | Встроенный инструмент orders_list: демонстрационное количество заказов, необязательный период date_from–date_to |
Все роуты требуют access-токен. Роут /mcp и инструменты сведений доступны группе «MCP: Клиенты» (NATIVE_MCP_CLIENT), инструмент заказов — группе «MCP: Заказы» (NATIVE_MCP_ORDER); обе группы создаёт установщик MCP-шлюза.
Адреса указаны относительно настроенного пути API, например /api/mcp. Пользовательская карта может переопределить их; флаг и проверки применяются к роутам типа mcp.
Активация
Флажок MCP-шлюза на вкладке «Роуты» появляется при установленном native.mcp и по умолчанию выключен.
| Состояние | Ответ роутов MCP |
|---|---|
| Шлюз включён и доступен | Обычная обработка |
| Шлюз выключен или модуль не установлен | 404 |
| Модуль установлен, но лицензия недоступна | MODULE_UNAVAILABLE / 503 |
При временной недоступности лицензии флажок и описание роутов сохраняются. Удаление MCP-шлюза сбрасывает флажок и очищает кеш API-платформы.
Проверка состояния
Сервисный GET /up/mcp отличает неустановленный модуль от неактивного шлюза без вызова протокола MCP. Для него нужны включённые API-интерфейс и сервисные роуты.
Публикация инструментов
Инструментом агента становится роут пользовательской карты с типом RouteConfig::ROUTE_TYPE_MCP и секцией публикации.
Ключи секции — константы Mcp\ToolConfig. У роута другого типа секция игнорируется.
use Native\Api\Config\Internals\Mcp\ToolConfig;
use Native\Api\Config\Internals\RouteConfig;
RouteConfig::ROUTE_TYPE => RouteConfig::ROUTE_TYPE_MCP,
ToolConfig::ROUTE_PUBLICATION => [
ToolConfig::CODE => 'get_catalog',
ToolConfig::DESCRIPTION => 'Найти товары каталога по названию',
],Порядок публикации — в разделе «Инструменты» → «Как добавить инструмент», пример своего инструмента — в статье «Собственный инструмент», разбор встроенного инструмента с контроллером — в статье «Список заказов».
CORS и внутреннее исполнение
Для роутов типа mcp стандартная политика CORS дополняется заголовками MCP. Остальные роуты сохраняют свою политику.
Инструменты выполняются через Router::executeRoute() — общий конвейер выбранного роута без HTTP-запроса сайта к самому себе. Подробнее — в разделе «Контекст API».