Документация1С-Битрикс: Модулиnative.mcpРазработчикамПримеры инструментов

Название сайта

Встроенный инструмент project_info возвращает название сайта, к которому подключён агент. Аргументов у инструмента нет. Общие правила публикации — в разделе «Инструменты».

Роут в карте

PHP
'mcp/project' => [
    RouteConfig::DESCRIPTION => '«MCP-шлюз»: сведения о сайте',
    RouteConfig::ROUTE_TYPE => RouteConfig::ROUTE_TYPE_MCP,
    ControllerConfig::CONTROLLER => [Info::class, 'project'],
    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 => 'project_info',
        ToolConfig::DESCRIPTION => 'Получить название сайта, к которому подключён агент',
        ToolConfig::ANNOTATIONS => [ToolConfig::ANNOTATION_READ_ONLY => true],
    ],
],

Контроллер

PHP
public function project(): array
{
    $name = (string)Option::get('main', 'site_name');
    if ($name === '') {
        $site = SiteTable::getRow([
            'select' => ['SITE_NAME', 'NAME'],
            'filter' => ['=DEF' => 'Y'],
        ]);
        $name = (string)($site['SITE_NAME'] ?? '') ?: (string)($site['NAME'] ?? '');
    }

    return ['name' => $name];
}

Название берётся из настройки «Название сайта» главного модуля, а если она пустая — из названия сайта по умолчанию. Результат вызова:

JSON
{"name": "Интернет-магазин «Пример»"}

Задача агенту

Текст
Как называется сайт, к которому ты подключён?

Агент вызовет project_info без аргументов и ответит значением name.