Перейти к основному содержанию
Когда агент свободно бегает по дюжине MCP-инструментов, вопрос, который важен постфактум, никогда не «безопасен ли этот один инструмент» — это «что агент действительно вызвал, что firewall решил и какое правило сделало этот вызов». OrcaRouter отвечает на это из одного места: журнала аудита mcp. Каждый tools/call, который MCP-шлюз оценивает на поверхности mcp, попадает как событие firewall — вердикт, инструмент, совпавшее правило и прогон агента, который его выпустил — так что вы можете мониторить сессию вживую или реконструировать её позже. Эта страница — сфокусированное руководство по чтению этого следа. По самому шлюзу, словарю вердиктов и DSL правил см. Firewall и Firewall: MCP servers.
Каждое чтение здесь настраивается из консоли (или REST API вашей сессией/access-токеном — UserAuth) и ограничено по роли. Только relay-вызовы /v1/* и маршруты шлюза firewall несут ключ в стиле sk-orca-....

1. Что записывает журнал аудита mcp

Каждый вызов MCP-инструмента производит одно событие firewall на поверхности mcp. Событие несёт то, что вам нужно, чтобы ответить «кто что вызвал и что сделала политика» — и ничего, чего не должно (аргументы инструмента редактируются, см. §4).
verdict (allow / audit / deny / sanitize / pending_approval / observe), surface (mcp здесь), policy_name, rule_label и человекочитаемый reason. Флаг quarantine помечает вызов, удержанный потому, что владеющий навык находится в режиме карантина.
tool_name (в пространстве имён <server>.<tool>), skill_name, когда вызов атрибутируем зарегистрированному навыку, model_name и token_name.
agent_run_id, conversation_id и request_id — ключи, которые вы используете, чтобы группировать вызовы сессии или провалиться из одного запроса в каждый вызов, который он разветвил.
Флаг gap помечает вызов в режиме observe, который ваша прикреплённая политика увидела, но не совпала ни с одним правилом — сигнал, который представление Discovered Tools использует, чтобы показать инструменты, которые ваша политика ещё не покрывает.

2. Чтение ленты

Вкладка Events в консоли — это основное представление. Чтобы вытянуть те же данные программно, перечислите события вашим access-токеном и отфильтруйте по поверхности mcp:
# Консольный маршрут (UserAuth). Чтение событий требует Developer+.
curl "https://api.orcarouter.ai/api/workspace/firewall/events?surface=mcp&verdict=deny,pending_approval" \
  -H "Authorization: Bearer <your-access-token>"
Фильтр verdict принимает одно значение или набор через запятую (пресет «запреты + удержания» выше). Образец события:
{
  "created_at": 1700000000,
  "surface": "mcp",
  "tool_name": "github.create_issue",
  "verdict": "deny",
  "policy_name": "Coding agent",
  "rule_label": "no writes to prod org",
  "reason": "rule matched: no writes to prod org",
  "agent_run_id": "run_8f3a",
  "model_name": "claude-sonnet-4-5",
  "token_name": "ci-agent"
}
Чтобы реконструировать полное разветвление одного запроса — каждый инструмент, который модель вызвала под одним relay-запросом — провалитесь по request id:
curl "https://api.orcarouter.ai/api/workspace/firewall/events/by-request/<request_id>" \
  -H "Authorization: Bearer <your-access-token>"
Для сводки на уровне сессии вместо сырых строк обратитесь к GET /api/workspace/firewall/events/aggregate?group_by=run (или group_by=session) — одна строка на прогон агента с разбивкой по вердиктам, отдельными инструментами и первым/последним замеченным. Эндпоинты trace (/trace/runs, /trace/by-run) реконструируют дерево вызовов прогона.

3. Строки аудита управления сервером

События на каждый вызов говорят вам, что агент сделал. Второй, меньший след говорит вам, что вы сделали с управлением сервером — и это место, где живёт история rug pull. Когда зондирование обнаруживает, что рекламируемый набор инструментов зарегистрированного сервера дрейфовал, и администратор перефиксирует базовую линию или помещает его в карантин, это решение пишется в журнал аудита рабочего пространства:
Действие аудитаПишется когда
firewall_mcp_schema_changedЗондирование обнаруживает, что живой набор инструментов дрейфовал от одобренного.
firewall_mcp_schema_approvedАдминистратор перефиксирует базовую линию на новый набор инструментов.
firewall_mcp_schema_quarantinedАдминистратор помещает в карантин (и отключает) дрейфовавший сервер.
Каждая строка несёт id сервера, имя и количество инструментов — никогда аргументы инструментов или учётные данные. Это форензический след за Защитой от rug pull: сервер, который вы одобрили в понедельник, не может тихо вырастить инструмент shell.exec в пятницу, не оставив здесь строки.
Изменения политики, правила и настроек firewall пишут свои собственные строки аудита наряду с этими. Когда изменение делает администратор платформы, оно также попадает в центральный журнал аудита администратора (GET /api/admin/audit-logs, только для администратора); правка обычного участника остаётся в следе рабочего пространства.

4. Аргументы редактируются по умолчанию

Поток событий построен так, чтобы быть читаемым вашей командой без утечки секретов. Аргументы вызова инструмента никогда не хранятся дословно — событие несёт максимум ограниченную, отредактированную args_summary, а сырой хеш аргументов, используемый для группировки аномалий, никогда не покидает сервер.
Поскольку события несут этот очищенный снимок аргументов, эндпоинты events, aggregate и trace ограничены Developer+ — участник с ролью Viewer может читать политики и обнаруженные инструменты, но не происхождение вызовов инструментов другого участника. Планируйте свои роли соответственно.

5. Живой мониторинг: аномалии

Чтение постфактум — одна половина; другая — быть оповещённым, пока это происходит. Лента аномалий следит за MCP (и каждой другой поверхностью) на предмет поведения, отклоняющегося от выученной базовой линии рабочего пространства — всплески частоты и стоимости против профиля часа недели, циклы повторов и новые пути инструментов — и показывает их, не требуя от вас написать ни одного правила.
# Лента аномалий открыта любому Member.
curl "https://api.orcarouter.ai/api/workspace/firewall/anomalies?window=5m" \
  -H "Authorization: Bearer <your-access-token>"
Шумный сигнал можно отложить (snooze) (до 7 дней), чтобы он перестал загромождать ленту, не будучи навсегда заглушённым. Чтение аномалий открыто для Member — шире, чем поток событий — потому что оно несёт сигнал, а не аргументы.
Сочетайте ленту с shadow-режимом: выкатите ужесточённую политику как audit-only, наблюдайте потенциальные запреты в потоке событий (reason с префиксом [shadow] would …) и продвиньте её, как только лента стихнет.

6. Хранение и удаление

События firewall истекают автоматически — это не постоянное хранилище, это скользящее окно мониторинга. Строки аудита рабочего пространства (след управления сервером в §3) хранятся до 180 дней. А когда пользователь удаляется, цикл grace-then-scrub каскадирует через события и совпадения firewall, так что след вызовов инструментов ушедшего пользователя не задерживается.
Контроли резидентности данных и хранения живут в плоскости комплаенса. Журнал аудита mcp наследует позицию хранения рабочего пространства; вы не настраиваете его на каждый сервер.

7. Куда идти дальше

Обзор безопасности MCP

Вся поверхность управления MCP — шлюз, вердикты, навыки, egress.

Защита от rug pull

События дрейфа из §3, от начала до конца: обнаружить, перефиксировать, поместить в карантин.

Список разрешённых MCP-инструментов

Превратите то, что показывает журнал аудита, в политику default-deny.

Firewall: MCP servers

Полный справочник полей и маршрутов.
Впервые видите модель? См. Как OrcaRouter инспектирует, где события эмитируются в пути оценки, и Избыточную автономию для угрозы, которую чистый след аудита помогает вам перехватить рано.