3. Описание MCP-сервера › 3.2 Сессия › session_rules_accept

Принимает правила инструмента, который отказал с ними. Пока правила не приняты, инструмент в этой сессии не выполняется.

Право

Не требуется, нужна открытая сессия.

Параметры

Параметр Тип Что это
tool строка инструмент, который отказал с правилами
code строка код из этого отказа

Как устроены правила

Правила инструмента сервер ищет в папке Engine\MCP дистрибутива по имени инструмента, от длинного к короткому: для engine_db_executeengine_db_execute.md, затем engine_db.md, затем engine.md. Действует первый найденный файл, поэтому одни правила могут покрывать всю семью. Нет файла — у инструмента нет правил, и он работает без проверки.

В тексте правил сервер подставляет метки: {INSTALL_DIR} — папку программы, {STORE_DIR} — папку магазина открытой сессии, {AGENT} — имя приложения-агента. Файлы правил заканчиваются разделом See also: страницы руководства и рецепты. Папка Engine\MCP\Recipes\ правил не содержит: рецепты агент читает сам, когда правила на них ссылаются.

Первый вызов инструмента с правилами не выполняется. Ответ — отказ:

RULES_REQUIRED: the rules of engine_db_execute are not accepted in this session.
Read them below, call session_rules_accept with tool engine_db_execute and code
7f3a0c, then repeat the refused call. Keep the code in this conversation only -
never write it into a file, a note or a summary.
--- engine.md ---
<текст правил>

Код складывается из текста правил и случайного числа, которое сервер создаёт при каждом входе. Поэтому записанный где-то код бесполезен в следующей сессии, а правка файла правил меняет код сразу: агент получит новый текст при следующем же вызове, без переподключения.

Ответ

accepted: engine.md - repeat the refused call.

Правила файла приняты до конца сессии — для всех инструментов, которые этот файл покрывает.

Отказы

Ответ Когда Что делать
RULES_REQUIRED: и текст правил код неверный или от прошлой сессии прочитать правила и принять их с кодом из этого отказа
NO_RULES: <инструмент> has no rules - call it as it is. у инструмента нет правил вызывать инструмент как есть
Not connected. Call "session_connect" first. сессия не открыта войти