Собственный инструмент
Собственный инструмент — роут пользовательской карты API-платформы с типом mcp и секцией mcp.
Роут добавляется в файл GET-роутов карты, например в local/php_interface/api/routes/GET/, а класс контроллера — в каталог контроллеров проекта, например в local/api/controllers/.
Подробнее — в статье API-платформы «Подключение карты», требования к роуту инструмента — в разделе «Инструменты».
Пример ниже — инструмент today, который возвращает текущую дату сайта.
Роут в карте
PHP
'mcp/today' => [
RouteConfig::DESCRIPTION => 'Текущая дата сайта',
RouteConfig::ROUTE_TYPE => RouteConfig::ROUTE_TYPE_MCP,
ControllerConfig::CONTROLLER => [DateController::class, 'today'],
RouteConfig::FORMAT => TypeConfig::FORMAT_JSON,
RouteConfig::SECURITY => [
SecurityConfig::AUTH => SecurityConfig::TOKEN,
SecurityConfig::GROUP => [SecurityConfig::WHITELIST => ['NATIVE_MCP_CLIENT']],
],
RouteConfig::CACHE => [CacheConfig::TTL => 0],
ToolConfig::ROUTE_PUBLICATION => [
ToolConfig::CODE => 'today',
ToolConfig::DESCRIPTION => 'Получить текущую дату сайта в формате YYYY-MM-DD',
ToolConfig::ANNOTATIONS => [ToolConfig::ANNOTATION_READ_ONLY => true],
],
],Контроллер
PHP
<?php
namespace Local\Api;
use Bitrix\Main\Type\Date;
final class DateController
{
public function today(): array
{
return ['date' => (new Date())->format('Y-m-d')];
}
}Дата берётся по часовому поясу сервера сайта. Кеш роута отключён, иначе агент получал бы прошлую дату. Результат вызова:
JSON
{"date": "2026-10-25"}Задача агенту
Текст
Какое сегодня число на сайте?Агент вызовет today без аргументов и ответит значением date.