Skip to main content
Glama

MandateGuard

CI MCP Registry License: MIT

Детерминированная, аудируемая политика платежей для автономных ИИ-агентов.

MandateGuard — это уровень принудительного контроля, который располагается между агентом и его инструментами/кошельком. Каждый вызов инструмента, который перемещает деньги, оценивается чистым, детерминированным движком — бюджеты, списки разрешений, списки блокировок, лимиты частоты и подписанные мандаты — до того, как что-либо выполнится. Никакая LLM никогда не участвует в принятии решения, что и делает каждый вердикт воспроизводимым, а каждую запись в реестре — проверяемой.

Он поставляется с MCP-сервером, так что любой агент (Claude, Cursor или ваш собственный харнесс) может подключить его как защитный барьер за считанные минуты.


Зачем

Реальность агентной экономики 2026 года:

  • OWASP LLM08 — Excessive Agency — один из главных рисков LLM-приложений. Агенты, получившие кошельки, подвергаются опустошению: SoK по агентной коммерции документирует реальные потери на сумму более $40 млн (атаки с опустошением, отравление памяти, злоупотребление инструментами).

  • Платёжные стандарты (мандаты Intent/Cart/Payment от Google AP2, x402 от Coinbase, ERC-8004) определяют, что такое мандат, — но ни один из них не предоставляет уровень принуждения, который фактически блокирует агента на лету.

  • Gartner: 40% корпоративных приложений будут включать агентов к концу 2026 года. Эти агенты будут перемещать деньги. Им нужны рельсы.

Рыночный пробел: детерминированный (не-LLM) движок политик + аудиторский след + распространение через MCP. Это и есть данный репозиторий.

Related MCP server: gov-mcp

Возможности

  • Детерминированный движок — одинаковые входные данные, одинаковый вердикт, всегда. Аудит путём воспроизведения, без выборки из модели в решении.

  • Области действия для каждого актора — разрешённые инструменты, разрешённые назначения, максимум на вызов, валюта, лимиты вызовов за окно.

  • Глобальные защитные механизмы — общие лимиты бюджета, список разрешённых/блокируемых назначений.

  • Подписанные мандаты (Ed25519) — краткосрочные, привязанные к nonce, авторизации, подписанные эмитентом, в стиле AP2 / x402. Агент не может расширить собственную область действия.

  • Реестр с защитой от подделки — каждое решение является append-only и связано цепочкой SHA-256. Любое изменение, переупорядочивание или удаление обнаруживается линейным сканированием.

  • MCP-сервер — подключается как защитный барьер; инструменты для политики, авторизации, выпуска мандатов и проверки состояния реестра.

  • Ноль зависимостей в пути принятия решений — cryptography только для мандатов; основные правила работают на одной стандартной библиотеке.

Установка

# from this repo (works today; also on the official MCP Registry)
git clone https://github.com/ezequiellich44-cmd/MandateGuard.git
cd MandateGuard
python -m pip install -e .

# or directly from the source:
python -m pip install "git+https://github.com/ezequiellich44-cmd/MandateGuard.git"

Примечание: mandateguard на PyPI ожидает настройки Trusted Publisher; до этого момента URL репозитория является каноническим путём установки. MCP-бандл доступен в официальном MCP Registry (io.github.ezequiellich44-cmd/mandateguard), поэтому MCP-совместимые клиенты могут установить его без какого-либо шага с Python.

Быстрый старт

from mandateguard import Intent, Policy, PolicyEngine, Scope

policy = Policy(
    scopes={
        "wallet-agent": Scope(
            tools=("pay",),
            destinations=("0xGOOD",),
            max_amount=1000,          # per call
            currency="usd",
            max_calls_per_window=5,
        )
    },
    global_max_amount=2000,           # per actor
    allowlist=("0xGOOD",),
    denylist=("0xSCAM",),
)
engine = PolicyEngine(policy)

decision = engine.authorize(
    Intent(tool="pay", destination="0xGOOD", amount=800, actor="wallet-agent")
)
print(decision.status)   # DecisionStatus.APPROVED

Отклонённые вызовы блокируются с структурированными причинами; состояние (расходы/частота) фиксируется только при одобрении, поэтому воспроизведение детерминировано.

MCP-сервер

Пакет поставляется с устанавливаемой точкой входа MCP-сервера:

python -m pip install -e ".[mcp]"
mandateguard-mcp            # stdio server, ready for Claude/Cursor/harness

Для Claude Code:

claude mcp add mandateguard -- mandateguard-mcp

MandateGuard опубликован в официальном MCP Registry: io.github.ezequiellich44-cmd/mandateguard (версия 1.0.0, бандл mcpb, активен). MCP-совместимые клиенты, синхронизирующие реестр, могут обнаружить и установить его напрямую. Бандл поставляется с тем же stdio-сервером и поверхностью из 14 инструментов.

Доступные инструменты: set_scope, set_global_policy, authorize, init_ledger, ledger_status, create_mandate_signer, issue_mandate, check_mandate, activate_license, license_status, reset_state, а также инструменты Pro-уровня revoke_mandate и persist_state за подписанной Pro-лицензией (покупка за USDT — см. раздел «Купить»).

Мандаты

from mandateguard import Mandate, MandateSigner, verify_mandate

issuer = MandateSigner()
m = Mandate(actor="wallet-agent", max_amount=500, currency="usd",
            tools=("pay",), destinations=("0xGOOD",),
            not_before="2026-01-01T00:00:00+00:00",
            not_after="2099-01-01T00:00:00+00:00", nonce="abc", issuer="you")
sig = issuer.sign(m)
verify_mandate(issuer.public_key_bytes, m, sig)   # True

Архитектура

См. docs/ARCHITECTURE.md для описания потока решений и модели состояния, docs/THREAT_MODEL.md для того, от чего это защищает и от чего не защищает, и docs/LAUNCH.md для коммерческого предложения и набора для выхода на рынок.

Agent intent ──> authorize(intent) ──> PolicyEngine
                                          │  scope? allowlist? denylist?
                                          │  budget? rate limit? mandate?
                                          ▼
                                     APPROVED / DENIED / REQUIRES_APPROVAL
                                          │
                                          ▼
                              append-only SHA-256 ledger (audit)

Тесты

python -m pytest -q

Лицензия

MIT. См. LICENSE.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Budget & cost control for AI agents: hard per-agent spend caps, rate limits, idempotency, and human-in-the-loop approval — enforced before each LLM call, not after the invoice. One hosted MCP endpoint (no proxy or self-hosting), settled via x402 (USDC on Base).
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that enforces runtime governance on AI agent actions — file access, command execution, delegation chains, and permission escalation.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server that enables AI agents to propose USDC payments on the Soroban blockchain with deterministic policy enforcement and injection protection, while providing payment status and attestation tools.
    MIT