Skip to main content
Glama

MandateGuard

CI MCP Registry License: MIT

Política de pagos determinista y auditable para agentes de IA autónomos.

MandateGuard es una capa de aplicación de políticas previa a la acción que se sitúa entre un agente y sus herramientas/monedero. Cada llamada a una herramienta que mueve dinero se evalúa mediante un motor puro y determinista — presupuestos, listas permitidas, listas denegadas, límites de tasa y mandatos firmados — antes de que se ejecute nada. Ningún LLM participa jamás en la ruta de decisión, que es precisamente lo que hace que cada veredicto sea reproducible y cada entrada del libro de contabilidad sea verificable.

Se distribuye con un servidor MCP para que cualquier agente (Claude, Cursor o tu propio harness) pueda montarlo como salvaguarda en cuestión de minutos.


Por qué

La realidad de la economía agéntica en 2026:

  • OWASP LLM08 — Excessive Agency es uno de los principales riesgos de las aplicaciones LLM. Los agentes con monederos están siendo vaciados: el SoK sobre comercio agéntico documenta más de 40 millones de dólares en pérdidas reales (ataques de vaciado, envenenamiento de memoria, abuso de herramientas).

  • Los estándares de pago (mandatos Intent/Cart/Payment de Google AP2, x402 de Coinbase, ERC-8004) definen qué es un mandato — pero ninguno incluye la capa de aplicación que realmente bloquea a un agente en pleno vuelo.

  • Gartner: el 40 % de las aplicaciones empresariales incorporarán agentes a finales de 2026. Esos agentes moverán dinero. Necesitan vías.

El hueco de mercado: un motor de políticas determinista (no LLM) + registro de auditoría + distribución MCP. Eso es este repositorio.

Related MCP server: gov-mcp

Características

  • Motor determinista — mismas entradas, mismo veredicto, siempre. Auditable mediante reproducción, sin muestreo de modelos en la decisión.

  • Ámbitos por actor — herramientas permitidas, destinos permitidos, máximo por llamada, moneda, límites de llamadas por ventana.

  • Salvaguardas globales — topes de presupuesto total, lista permitida/denegada de destinos.

  • Mandatos firmados (Ed25519) — autorizaciones de corta duración, vinculadas a nonce y firmadas por el emisor, al estilo AP2 / x402. Un agente no puede ampliar su propio ámbito.

  • Libro de contabilidad a prueba de manipulaciones — cada decisión es de solo añadido y está encadenada con SHA-256. Cualquier edición, reordenación o eliminación se detecta mediante un escaneo lineal.

  • Servidor MCP — móntalo como salvaguarda; herramientas para políticas, autorización, emisión de mandatos y estado del libro de contabilidad.

  • Cero dependencias en la ruta de decisión — cryptography solo para mandatos; las reglas principales se ejecutan únicamente con la stdlib.

Instalación

# 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"

Nota: mandateguard en PyPI está pendiente de la configuración de Trusted Publisher; hasta entonces, la URL del repositorio es la ruta de instalación canónica. El paquete MCP está disponible en el registro oficial de MCP (io.github.ezequiellich44-cmd/mandateguard), por lo que los clientes compatibles con MCP pueden instalarlo sin ningún paso de Python.

Inicio rápido

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

Las llamadas denegadas se bloquean con motivos estructurados; el estado (gasto/tasa) solo se confirma tras la aprobación, por lo que las reproducciones son deterministas.

Servidor MCP

El paquete incluye un punto de entrada de servidor MCP instalable:

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

Para Claude Code:

claude mcp add mandateguard -- mandateguard-mcp

MandateGuard está publicado en el registro oficial de MCP: io.github.ezequiellich44-cmd/mandateguard (versión 1.0.0, paquete mcpb, activo). Los clientes compatibles con MCP que sincronicen el registro pueden descubrirlo e instalarlo directamente. El paquete incluye el mismo servidor stdio y la misma superficie de 14 herramientas.

Herramientas expuestas: set_scope, set_global_policy, authorize, init_ledger, ledger_status, create_mandate_signer, issue_mandate, check_mandate, activate_license, license_status, reset_state, más revoke_mandate y persist_state restringidas a Pro detrás de una licencia Pro firmada (compra con USDT — consulta la sección de compra).

Mandatos

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

Arquitectura

Consulta docs/ARCHITECTURE.md para el flujo de decisión y el modelo de estado, docs/THREAT_MODEL.md para saber contra qué protege y contra qué no, y docs/LAUNCH.md para el discurso comercial y el kit de salida al mercado.

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

Pruebas

python -m pytest -q

Licencia

MIT. Consulta 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