Назад к обновлениям
New releaseSep 11, 2026

scopeblind-gateway v0.13.1

Подписанные Ed25519 квитанции + политики Cedar для ИИ-агентов. Финансовый мандатный шлюз (Legate), пакеты доказательств, 3 IETF Internet-Drafts. npx protect-mcp

Поделиться

protect-mcp

Шлюз политик Cedar с отказом по умолчанию плюс подписанные квитанции для вызовов инструментов ИИ-агента.

npm version downloads license node

protect-mcp — это шлюз, который стоит перед вызовами инструментов ИИ-агента. Он проверяет каждый вызов на соответствие политике Cedar (тот же язык, который AWS использует для IAM), блокирует то, что нарушает правила, до запуска и подписывает проверяемую офлайн квитанцию Ed25519 о каждом решении. Он работает локально, никуда не отправляет телеметрию о ваших решениях и распространяется под лицензией MIT.

Чем он отличается

  • Отказ по умолчанию. При любой ошибке политики, отсутствии движка или сбое оценки решение — DENY. Шлюз никогда не разрешает молча. Существует режим наблюдения для теневого развёртывания, но даже там вызов, который был бы заблокирован, помечается would_deny: true, так что сбой никогда не остаётся незамеченным.
  • Он доказывает собственную сдержанность. serve --enforce и doctor запускают при старте самотестирование и отказываются взводить шлюз, если не могут показать, что известное запрещённое действие действительно отклоняется. Шлюз, который не может доказать, что отклоняет, не запускается.
  • Каждое решение — это квитанция, которую может проверить любой. Решения подписываются Ed25519 и проверяются офлайн с помощью @veritasacta/verify. Доверие к поставщику не требуется: математике всё равно, кто её запускает.

Быстрый старт: от установки до первого полезного доказательства```bash

1. Generate an Ed25519 keypair, config template, and sample policy.

npx protect-mcp init

2. Wrap any MCP server in shadow mode. Nothing is blocked yet; calls are logged.

npx protect-mcp wrap -- node your-mcp-server.js

3. Inspect the local-only dashboard: tool inventory, risk, approvals, receipts.

npx protect-mcp dashboard --open

4. Draft a reviewable policy from observed calls.

npx protect-mcp recommend --write

5. When reviewed, restart the wrapper in enforce mode with that policy.

npx protect-mcp --policy protect-mcp.recommended.json --enforce -- node your-mcp-server.js

Для Claude Desktop сначала выполните пробный патч конфигурации, затем примените его:```bash
npx protect-mcp wrap --claude-desktop
npx protect-mcp wrap --claude-desktop --write
npx protect-mcp dashboard --open

Панель управления привязывается к 127.0.0.1, читает только локальные файлы журналов и квитанций и ничего не загружает. Используйте npx protect-mcp connect, только если вам явно нужна размещённая панель ScopeBlind.

Шлюз как MCP-сервер

Если вы предпочитаете вызывать шлюз как инструменты, а не подключать хуки Claude Code, запустите его как MCP-сервер:```bash npx protect-mcp mcp

Он взаимодействует по MCP через stdio и предоставляет четыре инструмента только для чтения, весь цикл:

- **`evaluate_action`**: принимает решение по предлагаемому вызову инструмента на основе встроенной политики Cedar, с отказом при сбое (любая ошибка политики — DENY). Возвращает `{ allowed, decision, reason, policy_digest }`.
- **`sign_decision`**: превращает решение в подписанную квитанцию Ed25519 (отказ подписывает `gateway_restraint`, разрешение — `decision_receipt`). Возвращает квитанцию и её открытый ключ; генерирует эфемерный ключ, если вы его не предоставили.
- **`verify_receipt`**: проверяет подписанную квитанцию офлайн по открытому ключу. Возвращает `{ valid, error, type, kid, issuer }`.
- **`self_test`**: доказывает это, без входных данных. Известное запрещённое действие отклоняется, затем подписанная квитанция проходит полный цикл, а подделанная копия не проходит.

Направьте на него любой MCP-хост, например Claude Desktop:```json
{
  "mcpServers": {
    "protect-mcp": { "command": "npx", "args": ["-y", "protect-mcp", "mcp"] }
  }
}

Receipts побайтово совместимы с теми, которые gate подписывает во время выполнения, поэтому receipt, созданный здесь, проверяется с помощью @veritasacta/verify и браузерным верификатором точно так же.

Локальная панель действий

protect-mcp dashboard — это операторское представление для перехода от видимости к принудительному применению:

  • Инвентаризация инструментов: каждый наблюдаемый инструмент, количество вызовов, высокий/средний/низкий риск, а также наличие в активной политике точного правила, wildcard-запасного варианта или отсутствие правила.
  • Покрытие политики: локальное редактирование политики в один клик для Require approval, Block или Observe. Перезапустите wrapper после проверки изменений.
  • Очередь одобрения точных действий: точный инструмент, действие, назначение, предпросмотр отредактированной полезной нагрузки, хеш полезной нагрузки, основание политики и причина фиксируются до того, как человек одобрит, отклонит, отредактирует или перехватит управление.
  • Цепочка receipt: идентификаторы запросов, сопоставленные с хешами подписанных receipt, чтобы аудитор мог видеть, какие решения имеют криптографическое подтверждение.
  • Экспорт аудита: загружает офлайн-проверяемый пакет аудита, когда существуют подписанные receipt. Если существуют только неподписанные локальные журналы, панель объясняет, что сначала необходимо включить подпись.

Для резервных одобрений в реальном времени на рабочем столе запустите панель с локальной конечной точкой одобрения шлюза и nonce, выведенным wrapper:```bash npx protect-mcp dashboard --open
--approval-endpoint http://127.0.0.1:9876
--approval-nonce "$PROTECT_MCP_APPROVAL_NONCE"

`Approve` перенаправляет на живой локальный шлюз, когда эти флаги присутствуют.
`Deny`, `Edit` и `Take over` записываются локально как записи разрешения
одобрения; используйте их как инструкцию оператора и при необходимости перезапустите инструмент.

### Платная граница MVP: привязка дайджеста, а не загрузка данных

Локальные самоподписанные квитанции остаются бесплатными и проверяемыми офлайн. Платная граница —
это независимое доказательство того, что ScopeBlind видел дайджест квитанции в определённое время, под идентичностью организации,
не получая необработанный промпт, полезную нагрузку инструмента, вывод, приватный ключ или
саму квитанцию.```bash
# Create or refresh a local org identity and public-key directory.
npx protect-mcp registry init --org "Meridian Global Macro" --billing-account acct_meridian

# Local preview: writes a digest registry and shareable static verifier page.
npx protect-mcp registry anchor

# Hosted mode: uploads receipt digests only for independent anchoring.
SCOPEBLIND_TOKEN=... npx protect-mcp registry anchor \
  --hosted \
  --endpoint https://api.scopeblind.com \
  --verifier-base https://scopeblind.com

Локальный предпросмотр намеренно помечен как local-preview-not-independent. Размещённый режим привязывает только хеши квитанций, идентификаторы запросов, публичные ключи организации и метаданные биллинга. Он не загружает необработанные квитанции или конфиденциальный контекст.

Killer Demo: от тени к политике к доказательству

Категории