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óncryptography 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.

A
license - permissive license
-
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
2Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    A
    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
    -
    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
    -
    quality
    B
    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

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

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/ezequiellich44-cmd/MandateGuard'

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