# protect-mcp

Проверяет каждый вызов инструмента по политике Cedar и выдаёт Ed25519-подписанную квитанцию. Пригодится, когда агенту нужно ограничить доступ к файлам и командам.

- плагин · `type=plugin` · Claude Code, Codex, Cursor · ★ 41729
- Автор: Tom Farley
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/wshobson/agents/tree/HEAD/plugins/protect-mcp
- Обновлён: 2026-10-24
- HTML: https://affpapa.org/nevibecode/plugins/protect-mcp

## Что делает

Плагин ставит два хука: PreToolUse прогоняет вызов через движок Cedar, PostToolUse пишет подписанную квитанцию. Если политика запрещает действие, хук завершается с кодом 2 и инструмент не запускается. Разрешённый вызов выполняется как обычно, а в `./receipts/receipts.jsonl` добавляется запись с полями `payload.tool`, `payload.decision`, `payload.request_id`, `issued_at` и `kid`.

Внутри — скилл `protect-mcp-setup` с руководством по настройке, агент `policy-enforcer` для написания политик под вашу модель угроз и `receipt-verifier` для разбора ошибок проверки. Есть слэш-команды `/verify-receipt <path>` и `/audit-chain [--last N]`. Политику вы пишете сами в `./protect.cedar`: готового набора правил плагин не приносит, а примеры в руководстве разбирают только чтение, запись внутри проекта и запрет на `rm -rf`.

Ключ подписи лежит в `./protect-mcp.key`, и его нужно создать один раз до первого запуска — команда `init` его не генерирует. Существующий ключ плагин не перезаписывает, поэтому для ротации сначала архивируйте ключ и `receipts.jsonl`. Проверка идёт офлайн через `npx @veritasacta/verify@0.9.2 --replay-chain`, но `npx` тянет верификатор из сети при первом вызове: перед отключением от интернета выполните `npm install --no-save @veritasacta/verify@0.9.2` в проекте. Квитанции не связаны ссылкой с предыдущей, так что удалённую строку проверка не заметит.

## Установка

### Claude Code (родная платформа)

**Через маркетплейс плагинов**
В чате агента (не в терминале):
```text
/plugin marketplace add wshobson/agents
```
В чате агента (не в терминале):
```text
/plugin install protect-mcp@claude-code-workflows
```

## Когда брать
- запретить агенту писать за пределами каталога проекта
- заблокировать разрушительные команды вроде `rm -rf` до запуска
- получить журнал вызовов инструментов, который можно проверить офлайн
- описать правила доступа декларативно вместо правок в коде хуков
- разобраться, почему проверка квитанции вернула ошибку

## Примеры запросов агенту
- Помоги написать политику Cedar для `./protect.cedar`: разреши чтение и запись только внутри проекта
- Проверь квитанцию из `./receipts/receipts.jsonl` командой `/verify-receipt`
- Покажи последние 20 записей цепочки через `/audit-chain --last 20`

## Похожие
- [agent-governance](https://affpapa.org/nevibecode/skills/agent-governance.md) — скилл · 9623 установки
- [agent-decision-receipts](https://affpapa.org/nevibecode/skills/agent-decision-receipts.md) — скилл · 44 установки
- [dd-audit-ai-activity](https://affpapa.org/nevibecode/skills/dd-audit-ai-activity.md) — скилл · 433 установки
- [utility-pm-skill-auditor](https://affpapa.org/nevibecode/skills/utility-pm-skill-auditor.md) — скилл · 601 установка
- [agents-connect](https://affpapa.org/nevibecode/skills/agents-connect.md) — скилл · 2000 установок
- [witness](https://affpapa.org/nevibecode/skills/witness.md) — скилл · 655 установок

Из того же набора: [wshobson/agents](https://affpapa.org/nevibecode/by/wshobson/agents.md) — 342 карточки

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
