gate CLI
gate вырезает персональные данные из ответов баз и MCP-серверов до того, как их увидит модель, по заранее заданным правилам
- 214 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- Хук переписывает команды Bash агента, а `gate init` меняет настройки агента и записи MCP
- Видит содержимое ответов баз и MCP до замены и пишет локальный журнал статистики
- Не заменяет песочницу: непроверенные команды и свободный текст проходят без защиты
Установка
- Работает в
Ручная установка
brew tap GaaraZhu/gate && brew install gateHomebrew на macOS и Linux. Если Homebrew 6 жалуется на доверие к стороннему репозиторию, выполните `brew trust GaaraZhu/gate`.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Хук переписывает команды Bash агента, а `gate init` меняет настройки агента и записи MCP
- Видит содержимое ответов баз и MCP до замены и пишет локальный журнал статистики
- Не заменяет песочницу: непроверенные команды и свободный текст проходят без защиты
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
gate — утилита командной строки на Rust, которая стоит между инструментами агента и моделью. Она перехватывает результаты запросов, находит в JSON поля с персональными данными (почта, телефон, налоговый номер, номер карты) и заменяет значения метками вроде `[PII:email]`. Структура ответа остается прежней, в конец добавляется поле `_gate_summary` со счетчиком замен. Путей к данным два. Команды Bash проходят через хук агента: `gate hook` переписывает вызов настроенного инструмента в `gate run -- <команда>`, и вывод проверяется до возврата в чат. Вызовы MCP идут через прозрачный stdio-прокси `gate mcp`: он пересылает трафик как есть и обрабатывает только ответы `tools/call`. Решают регулярные выражения, эвристики по именам колонок и проверка по алгоритму Луна. Модель в проверке не участвует, накладные расходы меньше 10 мс на запрос. Перед установкой хука `gate scan` оценивает схему базы и показывает, где лежат персональные данные. Команда `gate retro` позже собирает статистику по всем перехваченным ответам.
Для кого. Разработчикам и аналитикам, которые дают Claude Code, Cursor или Codex читать рабочие базы через psql, CLI-клиенты и MCP-серверы и не хотят, чтобы адреса и номера карт попадали в контекст модели.
Подходит, если
- Агент выполняет SELECT к боевой базе, и в результатах бывают почта, телефоны и номера карт
- Сторонний MCP-сервер возвращает данные клиентов, а править его код нельзя
- Аудит требует воспроизводимого результата: одно и то же значение всегда заменяется одной и той же меткой
- Перед подключением агента к схеме нужно оценить, сколько в ней колонок с персональными данными
- Команда хочет общий конфиг порогов и шаблонов в репозитории, который участники подтягивают командой `gate config --sync`
Не подходит, если
- Персональные данные лежат в свободном тексте: правила gate ищут их в структурированных полях JSON
- Нужна песочница против враждебного агента: gate рассчитан на случайную утечку, а не на целенаправленный обход
- Инструмент отдает простой текст или CSV: вывод не в JSON проходит без изменений
- Маскирование можно включить на стороне базы: там оно надежнее, а gate остается дополнительной страховкой
Пример запроса к агенту
Проверь схему базы командой gate scan, потом подключи gate к Claude Code и убедись, что запрос к таблице клиентов отдает метки вместо почтыОграничения
- gate обрабатывает только команды из списка `tools:` в конфиге и ответы MCP `tools/call`. Остальные команды агент запускает без проверки, а `resources/read` и `prompts/get` пересылаются без инспекции.
- Простой текст и CSV идут дальше без изменений. Персональные данные внутри свободного текста правила не находят.
- Это слой редактирования, а не песочница: целенаправленный агент с инъекцией промпта может его обойти, детали в `THREAT-MODEL.md`.
- Данные, которые попали в контекст модели раньше, gate не трогает.
Как отключить. Команда `gate init` пишет хук в настройки агента, а `gate init --wrap-mcp` оборачивает записи MCP. Чтобы убрать защиту, удалите хук из настроек агента и верните исходную запись MCP-сервера, затем снимите пакет через `brew uninstall gate`. Статистика лежит в локальном JSONL-файле, отключить сбор можно параметром `stats.enabled: false`.
Частые вопросы
Чем gate отличается от маскирования на стороне базы?
gate ничего не меняет в базе и работает с любым источником, который отдает JSON, включая чужие базы и MCP-инструменты. Маскирование в базе надежнее, когда вы ее администрируете, поэтому они дополняют друг друга.
Как gate решает, что поле содержит персональные данные?
По регулярным выражениям для значений, эвристикам по названиям колонок и проверке номеров карт по алгоритму Луна. Каждое решение сводится к явному правилу, поэтому результат повторяется от запуска к запуску.
Как подключить gate к Cursor или Codex?
Запустите `gate init --harness cursor` или `gate init --harness codex`. После этого перезапустите сессию, а в Codex еще отметьте хук доверенным в окне разрешений.
Замедляет ли gate запросы?
Накладные расходы меньше 10 мс на запрос, так как проверка идет по правилам на вашей машине и не обращается к сети.
Что делает gate scan?
Принимает на вход список пар таблица и колонка из схемы базы и печатает отчет по каждой таблице с оценкой доли колонок с персональными данными. Конфиг для этой команды не нужен. Хук ставьте после отчета.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыCLI аудита MCP-серверов: инвентаризация, доказательства по каждому серверу и политика для CI, где неизмеренное не бывает чистым
Шлюз для MCP-серверов: плагины маскировки известных секретов в текстовых ответах, проверки репутации и записи вызовов
CLI проверки безопасности ИИ: сканирует модели и код, пробует живые эндпоинты и MCP-серверы, разбирает записи работы агентов
MCP-сервер памяти для агентов и бесплатный шлюз, который останавливает опасные команды до запуска
Vigils стоит между ИИ-агентом и его инструментами: скрывает секреты, спрашивает разрешения и пишет неизменяемый журнал вызовов
Перехватывающий HTTP-прокси с терминальным интерфейсом и MCP-сервером: агент читает трафик, повторяет запросы и сканирует.
Коротко о README
README открывается объяснением, почему правила лучше второй модели, и сравнением с маскированием в базе. Дальше идут демо в три шага, быстрый старт из пяти пунктов, командная настройка, описание двух путей данных и раздел о том, от чего gate не защищает. Заканчивается таблицей поддерживаемых агентов.