Skip to main content
Glama

MandatePay

The authorization firewall for agentic payments

Identity · Intent · Policy · Human approval · Cryptographic proof

CI Python MCP License

Autonomous agents can propose payments. They should not receive unlimited financial authority. MandatePay verifies every machine-initiated payment against a signed human mandate before execution.

Why this exists

Agentic commerce introduces a new control problem: how can a payment provider prove that an AI agent acted within authority delegated by a human or organization? Traditional checkout assumes a person is present. API keys establish application access, but not purpose, limits, geography, merchant scope, or the exact boundary of delegated intent.

MandatePay is a research-grade control plane that sits between agents and payment rails. It does not hold or move funds.

Related MCP server: dingdawg-agent-wallet

What makes it different

  • Signed mandates: authority is machine-verifiable and tamper-evident.

  • Policy-as-code: deterministic limits for value, total spend, currency, country, merchant, purpose, expiry, and velocity.

  • Human challenge: higher-risk intents pause for approval bound to the exact payment.

  • Agent identity binding: a mandate cannot be reused by a different agent.

  • Replay safety: idempotency keys return the original decision.

  • Verifiable events: every decision enters a hash-chained journal.

  • MCP tool: agents can request authorization through a constrained tool interface.

  • Fail closed: invalid signatures, malformed money, expired authority, and scope escape are denied.

Authorization lifecycle

sequenceDiagram
    participant H as Human / Organization
    participant A as AI Agent
    participant M as MandatePay
    participant P as Payment Provider
    H->>M: Sign bounded mandate
    A->>M: Submit payment intent
    M->>M: Verify identity + signature + policy + state
    alt within authority
        M-->>A: Single-use authorization
        A->>P: Execute with authorization proof
    else approval threshold
        M-->>H: Challenge exact intent
    else policy violation
        M-->>A: Deny with reason codes
    end
    M->>M: Append decision to audit chain

Quick start

git clone https://github.com/muhammadashir0/mandatepay.git
cd mandatepay
python -m unittest discover -s tests -v
python app.py

Open http://localhost:8080.

Try four scenarios in the console:

  1. €299 / software / DE → authorize

  2. €400 / software / DE → human challenge

  3. €900 / software / DE → deny: payment limit

  4. €100 / travel / GB → deny: purpose and country

Use a fresh idempotency key when changing a scenario.

MCP server

python -m mandatepay.mcp_server

The zero-dependency JSON-RPC server exposes one deliberately narrow tool: request_payment_authorization. The tool returns a decision, not money movement.

Threat model

MandatePay is designed around:

  • stolen or over-privileged agent credentials;

  • prompt injection causing unintended purchases;

  • mandate tampering and scope escalation;

  • duplicate execution and replay;

  • velocity abuse and cumulative overspend;

  • ambiguous human approval;

  • incomplete forensic evidence.

See docs/THREAT_MODEL.md for trust boundaries, non-goals, and production controls.

Repository architecture

mandatepay/
├── mandatepay/
│   ├── core.py          # signed mandate + deterministic policy engine
│   ├── store.py         # state, idempotency, tamper-evident journal
│   └── mcp_server.py    # constrained MCP-compatible tool server
├── web/index.html       # premium operator console
├── tests/               # policy and adversarial scenarios
├── docs/                # protocol, threat model, product direction
└── app.py               # sandbox HTTP API

Evaluation, not just a demo

The tests verify authorization, approval challenges, identity mismatch, scope escape, velocity limits, and signed-mandate tampering. The next benchmark layer will measure false authorizations, false denials, replay resistance, policy coverage, decision latency, and approval burden across adversarial scenarios.

Roadmap

  • Ed25519/JWS production signing and key rotation

  • OAuth-attested agent identity and workload identity

  • Approval ceremony bound to intent hash

  • Single-use authorization tokens for payment providers

  • Durable SQL ledger with concurrency guarantees

  • OpenTelemetry decision traces and signed audit export

  • Adversarial evaluation corpus for agent-payment attacks

  • Stripe/Adyen sandbox adapter behind an execution interface

  • Multi-currency decimal and FX policy

Responsible-use boundary

This repository is a security and FinTech research MVP using synthetic identities and no real funds. HMAC is used only to keep the demonstration dependency-free. Production deployment requires reviewed asymmetric cryptography, hardened identity, durable transactional storage, authentication and authorization, regulatory analysis, privacy controls, independent security testing, and payment-provider certification.

Strategic context

Agentic payment systems need mandate-based authorization, separation between decision and execution, agent identity, programmable controls, audit trails, and tiered human oversight. MandatePay turns those design requirements into an inspectable open-source prototype.

License

Apache License 2.0.

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (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
    A
    quality
    C
    maintenance
    Enables AI agents to make payments with strict spending limits enforced by signed mandates, preventing unauthorized fund movement beyond predefined caps and allowlists.
    4
    22
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables verification of AI agent identity, authority, and integrity at transaction time, returning signed verdicts for allow, step-up, review, or block.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Deterministically evaluates whether a proposed agent spend action matches a supplied policy, returning ELIGIBLE, DENY, or STEP_UP with stable reason codes. Provides local policy evidence only, not payment authorization.
    1
    347
    MIT

View all related MCP servers

Related MCP Connectors

  • Agent payments, API key vaulting, and governed mandates. Agents spend within user-defined limits.

  • Pre-action allow/deny for AI agents. 24 statutes, 13 jurisdictions: EU AI Act, GDPR, DPDP.

  • Secure agent purchasing with human-approved virtual cards, receipts, and audit trails.

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/muhammadashir0/mandatepay'

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