Skip to main content
Glama

npm version npm downloads License: MIT IETF Draft MCP Registry PyPI: protect-mcp-adk

protect-mcp

Корпоративный шлюз безопасности для MCP-серверов и хуков Claude Code. Подписанные квитанции, политики Cedar и аудиторские следы с поддержкой роевых систем.

Интегрировано в Microsoft Agent Governance Toolkit | Интернет-черновик IETF | Живая демонстрация: acta.today/wiki

Быстрый старт — Claude Code

Две команды. Каждый вызов инструмента подтверждается квитанцией.

# 1. Generate hooks, keys, Cedar policy, and /verify-receipt skill
npx protect-mcp init-hooks

# 2. Start the hook server
npx protect-mcp serve

Откройте Claude Code в том же проекте. Теперь каждый вызов инструмента перехватывается, оценивается и подписывается.

Что создает init-hooks

Файл

Назначение

.claude/settings.json

Конфигурация хуков (PreToolUse, PostToolUse, + 9 событий жизненного цикла)

keys/gateway.json

Пара ключей подписи Ed25519 (автоматически игнорируется git)

policies/agent.cedar

Стартовая политика Cedar — настройте под свои нужды

protect-mcp.json

JSON-политика с подписью + лимитами запросов

.claude/skills/verify-receipt/SKILL.md

Навык /verify-receipt для Claude Code

Архитектура

Claude Code  →  POST /hook  →  protect-mcp (Cedar + sign)  →  response
                                    ↓
                            .protect-mcp-log.jsonl
                            .protect-mcp-receipts.jsonl
  • PreToolUse: синхронная проверка политики Cedar → отказ блокирует инструмент

  • PostToolUse: асинхронная подпись квитанции → нулевое влияние на задержку

  • отказ является архитектурно окончательным — он не может быть переопределен моделью или другими хуками

Эндпоинты

Метод

Путь

Описание

POST

/hook

Эндпоинт хука Claude Code

GET

/health

Статус сервера, информация о политике, информация о подписывающем

GET

/receipts

Недавние подписанные квитанции

GET

/receipts/latest

Самая последняя квитанция

GET

/suggestions

Автоматически сгенерированные предложения по исправлению политики Cedar

GET

/alerts

Оповещения об обнаружении несанкционированного изменения конфигурации

Проверка квитанций

# Inside Claude Code:
/verify-receipt

# From terminal:
curl http://127.0.0.1:9377/receipts/latest | jq .
npx protect-mcp receipts

# Check policy suggestions:
curl http://127.0.0.1:9377/suggestions | jq .

Related MCP server: verify-mcp

Быстрый старт — обертка MCP-сервера

Оберните любой stdio MCP-сервер как прозрачный прокси:

# Shadow mode — log every tool call, enforce nothing
npx protect-mcp -- node my-server.js

# Enforce mode with policy
npx protect-mcp --policy protect-mcp.json --enforce -- node my-server.js

# Generate keys + config template
npx protect-mcp init

Как это работает

protect-mcp оценивает каждый вызов инструмента на соответствие политике (JSON, Cedar или внешний PDP), подписывает решение как квитанцию Ed25519 и логирует результат.

Два режима интеграции:

Режим

Транспорт

Вариант использования

Hook Server

HTTP (npx protect-mcp serve)

Claude Code, рои агентов

Stdio Proxy

stdin/stdout (npx protect-mcp -- ...)

Claude Desktop, Cursor, любой MCP-клиент

Три движка политик:

Движок

Конфигурация

Примечания

JSON

--policy policy.json

Простые правила для каждого инструмента

Cedar

--cedar ./policies/

Локальная оценка WASM через @cedar-policy/cedar-wasm

External PDP

policy_engine: "external"

OPA, Cerbos или любой HTTP PDP

Отслеживание роя

В сессиях с несколькими агентами protect-mcp автоматически отслеживает топологию роя.

Обрабатывается 11 событий хуков:

Событие

Тип

Описание

PreToolUse

Синхр.

Оценка Cedar/политики перед выполнением инструмента

PostToolUse

Асинхр.

Подпись квитанции после выполнения инструмента

SubagentStart / SubagentStop

Жизненный цикл

Запуск/завершение рабочего агента

TaskCreated / TaskCompleted

Жизненный цикл

Назначение задачи координатору

SessionStart / SessionEnd

Жизненный цикл

Жизненный цикл сессии с обнаружением песочницы

TeammateIdle

Жизненный цикл

Мониторинг использования агента

ConfigChange

Безопасность

Обнаружение несанкционированного изменения .claude/settings.json

Stop

Жизненный цикл

Завершение + сводка предложений по политике

Каждая квитанция включает:

  • swarm.agent_id, swarm.agent_type, swarm.team_name

  • timing.tool_duration_ms, timing.hook_latency_ms

  • payload_digest (SHA-256 хеш для полезных нагрузок >1КБ)

  • deny_iteration (количество повторных попыток после отказа)

  • sandbox_state (включено/выключено/недоступно)

  • OpenTelemetry otel_trace_id и otel_span_id

Файл политики

{
  "default_tier": "unknown",
  "tools": {
    "dangerous_tool": { "block": true },
    "admin_tool": { "min_tier": "signed-known", "rate_limit": "5/hour" },
    "read_tool": { "require": "any", "rate_limit": "100/hour" },
    "*": { "rate_limit": "500/hour" }
  },
  "signing": {
    "key_path": "./keys/gateway.json",
    "issuer": "protect-mcp",
    "enabled": true
  }
}

Политики Cedar

Решения об отказе в Cedar являются авторитетными — их нельзя переопределить.

// Allow read-only tools
permit(
  principal,
  action == Action::"MCP::Tool::call",
  resource == Tool::"Read"
);

// Block destructive tools
forbid(
  principal,
  action == Action::"MCP::Tool::call",
  resource == Tool::"delete_file"
);

Когда инструмент блокируется, protect-mcp автоматически предлагает минимальное правило permit() для Cedar через GET /suggestions.

Пакеты политик, привязанные к CVE

Каждый предотвращает реальную атаку:

Политика

Инцидент

OWASP

clinejection.json

CVE-2025-6514: Перехват MCP OAuth прокси (437 тыс. сред)

A01, A03

terraform-destroy.json

Автономный агент Terraform уничтожает продакшн

A05, A06

github-mcp-hijack.json

Инъекция промпта через специально созданный issue в GitHub

A01, A02, A03

data-exfiltration.json

Кража данных агентом через злоупотребление исходящим инструментом

A02, A04

financial-safe.json

Несанкционированная финансовая транзакция

A05, A06

Эквиваленты Cedar доступны в policies/cedar/.

Конфигурация MCP-клиента

Claude Desktop

{
  "mcpServers": {
    "my-protected-server": {
      "command": "npx",
      "args": [
        "-y", "protect-mcp",
        "--policy", "/path/to/protect-mcp.json",
        "--enforce",
        "--", "node", "my-server.js"
      ]
    }
  }
}

Cursor / VS Code

Тот же шаблон — замените команду сервера на protect-mcp, оборачивающую его.

Команды CLI

Commands:
  serve             Start HTTP hook server for Claude Code (port 9377)
  init-hooks        Generate Claude Code hook config + skill + sample Cedar policy
  quickstart        Zero-config onboarding: init + demo + show receipts
  init              Generate Ed25519 keypair + config template
  demo              Start a demo server wrapped with protect-mcp
  doctor            Check your setup: keys, policies, verifier, connectivity
  trace <id>        Visualize the receipt DAG from a given receipt_id
  status            Show tool call statistics from the decision log
  digest            Generate a human-readable summary of agent activity
  receipts          Show recent persisted signed receipts
  bundle            Export an offline-verifiable audit bundle
  simulate          Dry-run a policy against recorded tool calls
  report            Generate a compliance report from an audit bundle

Options:
  --policy <path>   Policy/config JSON file
  --cedar <dir>     Cedar policy directory
  --enforce         Enable enforcement mode (default: shadow)
  --port <port>     HTTP server port (default: 9377 for serve)
  --verbose         Enable debug logging

Логи решений

Каждый вызов инструмента выводит структурированный JSON в stderr:

[PROTECT_MCP] {"v":2,"tool":"read_file","decision":"allow","reason_code":"cedar_allow","policy_digest":"a1b2c3...","mode":"enforce","hook_event":"PreToolUse","timing":{"hook_latency_ms":1},"otel_trace_id":"..."}

Когда настроена подпись, подписанная квитанция сохраняется в .protect-mcp-receipts.jsonl.

Аудиторские пакеты

npx protect-mcp bundle --output audit.json

Автономный пакет, проверяемый офлайн, с квитанциями + ключами подписи. Проверьте с помощью npx @veritasacta/verify.

Верифицированная база знаний (acta.today/wiki)

Подпись квитанций protect-mcp обеспечивает работу первой в мире верифицированной мультимодельной базы знаний на acta.today/wiki.

Каждая единица знаний (Knowledge Unit) создается 4 передовыми моделями, обсуждающими вопрос в 3 состязательных раундах, с квитанциями Ed25519 на каждый ответ модели. Текущий состав:

Модель

Провайдер

Происхождение

Claude Opus 4.6

Anthropic

США

GPT-5.4

OpenAI

США

Grok 4.20

xAI

США

Gemini 3.1 Pro

Google

США

DeepSeek V3.2

DeepSeek

КНР

MiniMax M2.7

MiniMax

КНР

Kimi K2.5

Moonshot

КНР

Qwen 2.5 72B

Alibaba

КНР

Каждая KU независимо проверяема: npx @veritasacta/verify receipt.json

Интеграции в экосистеме

Проект

Звезды

Интеграция

Статус

Microsoft Agent Governance Toolkit

600+

Мост политики Cedar + подпись квитанций

Объединено (PR #667)

Mission Control

3,700+

Подпись квитанций Ed25519 для аудиторского конвейера MCP

PR #556 отправлен

Assay

Подписанные квитанции как источник доказательств

Активное обсуждение (#1029)

Hermes Agent

24,500+

Криптографический аудиторский след для выполнения навыков

Issue #5041

DeerFlow

57,600+

Криптографическая целостность для уровня персистентности

Обсуждение #1855

Pro-Workflow

1,500+

Рекомендация по конфигурации MCP

PR #41

Zeroshot

1,400+

Криптографические квитанции для вердиктов валидаторов

Issue #464

Стандарты и интеллектуальная собственность

  • Интернет-черновики IETF:

  • Статус патентов: 4 австралийских предварительных патента на рассмотрении (2025-2026), охватывающих квитанции решений с настраиваемым раскрытием, шлюз вызова инструментов, манифесты агентов и переносимую идентификацию

  • Верификация: Apache-2.0 — npx @veritasacta/verify --self-test

  • Интеграция с Microsoft AGT: PR #667 — Мост политики Cedar для Agent Governance Toolkit

Связанные репозитории

Репозиторий

Описание

VeritasActa/Acta

Открытый протокол для оспариваемых публичных записей (Apache-2.0)

VeritasActa/drafts

Исходные файлы интернет-черновиков IETF

ScopeBlind/examples

Примеры интеграции: хуки Claude Code, Express API, подпись MCP-сервера

@veritasacta/verify

Офлайн-верификатор квитанций (Apache-2.0)

@scopeblind/passport

SDK идентификации агентов (Apache-2.0)

protect-mcp-adk

Плагин подписи квитанций Google ADK (MIT, Python)

Вклад

Приветствуются issues и pull requests. Пожалуйста, сначала откройте issue для значительных изменений.

  • Отчеты об ошибках: Укажите версию protect-mcp, версию Node.js и шаги для воспроизведения

  • Политики Cedar: Делитесь переиспользуемыми политиками через PR в директорию policies/cedar/

  • Примеры интеграции: Добавляйте в ScopeBlind/examples

Лицензия

MIT — свободно для использования, изменения, распространения и создания на основе без ограничений.

scopeblind.com · npm · veritasacta.com · IETF Drafts

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ScopeBlind/scopeblind-gateway'

If you have feedback or need assistance with the MCP directory API, please join our Discord server