Open-source B2B and marketplace ecommerce; new stores include an MCP server for AI agents.
Boundra — Payment Approval Gateway for AI Agents
Resumen
Descripción del creador (original en inglés)
Policy decision point for agent payments — allow, ask, or veto before signing
Los tres pilares de PopNx MCP
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
- Opinión de usuariosiAún no hay reseñasLas reseñas se abrirán junto con las cuentas en una etapa posterior
- Nuestras revisiones básicasi1 de 1 superadasRevisado con información pública; el código aún no se ha escaneado
- UsoiAún sin medir★ –
Qué puedes hacer con él
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
- Conexión: Se ejecuta en tu computadora
- Transporte: stdio
- Categoría: Tiendas en línea y pagos
Instalación
Elige la app de IA que usas y copia la configuración.
Antes de instalar
- Revisiones básicas: 1 de 1 superadas
- Se ejecuta en tu computadora con los permisos de tu usuario (archivos, red, apps).
- El registro no indica ninguna clave que completar.
Necesitas
- PyPIuv de Python instalado (para el comando uvx)
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"boundra": {
"command": "uvx",
"args": [
"boundra-mcp"
]
}
}
}Ejecuta esto en tu terminal
claude mcp add boundra -- uvx boundra-mcpO copia la configuración tú
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"boundra": {
"command": "uvx",
"args": [
"boundra-mcp"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
O copia la configuración tú
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"boundra": {
"type": "stdio",
"command": "uvx",
"args": [
"boundra-mcp"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Qué puede hacer
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisiones básicasi
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026
- ✓ Superada
El creador coincide con el repo
El nombre en el registro se verificó con la cuenta de GitHub gobeyondfj-cmd, dueña del repo
- … Aún sin revisar
Sigue en mantenimiento
Todavía no hemos leído este repo en GitHub
- … Aún sin revisar
Tiene licencia
Todavía no hemos leído este repo en GitHub
- – No aplica
El endpoint responde
Este se ejecuta en tu computadora; no hay endpoint en internet
- – No aplica
Inicio de sesión con OAuth
Se ejecuta en tu computadora y usa ajustes locales en su lugar
- … Aún sin revisar
Sin instrucciones ocultas en las descripciones de herramientas
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con otros en Tiendas en línea y pagosi
- Más estrellas que el 0% de los otros 1748 servidores de esta categoría
- Publicado en el registro más recientemente que el 63% de los otros 1748 servidores de esta categoría
- Revisiones básicas iguales o mejores que el 100% de los otros 1748 servidores de esta categoría
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Preguntas frecuentes
¿Es seguro Boundra — Payment Approval Gateway for AI Agents?
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
¿Qué claves o códigos necesita?
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
¿Se ejecuta en mi computadora o en la nube?
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
¿Sigue en mantenimiento?
El repo de GitHub cambió por última vez –, y la última versión (0.1.0) llegó al registro hace 20 días.
¿Qué apps pueden usarlo?
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Python (uv) en tu computadora.
¿Qué puedo usar en su lugar?
En la misma categoría: Spree Commerce: open-source B2B and marketplace ecommerce, Stripe MCP, MCP Cn Commerce
Alternativas
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
Stripe MCP
MCP server integrating with Stripe - tools for customers, products, payments, and more.
MCP Cn Commerce
8 read-only MCP platform entries; support is operation-specific; merchant live acceptance pending
README del creador
Abrir el README
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
Boundra · Payment approval gateway for AI agents
Boundra (boundra.io) — *Boundaries for agent payments.*
The boundary layer for agent payments: before any money moves, answer
"should this payment happen at all?"
Our thesis: the opportunity in agent payments is not "how to pay" (protocols solved that) but "whether to pay."
One natural-language rule → compiled into a policy → every payment the agent attempts is genuinely evaluated → allow / ask a human / veto, with a full audit trail.
Two run modes:
- Offline simulation (
demo.py): stdlib only, self-contained mock merchant and wallets, zero dependencies, zero network - Real protocol (
demo/demo_real.py): standard MCP server + real x402 SDK + Base Sepolia testnet
Data flow
Private keys stay with the user; the gateway is read-only; optional on-chain commits contain hashes, never policy plaintext. Hosted MCP stores the signed policy document you submit; self-hosted mode keeps it local. Revocation is free — forever, no exceptions.
Integrating Boundra into your agent? See
docs/INTEGRATION.md — hosted API, fail-closed Python
and TypeScript x402 SDKs, two-phase budget settlement, and MCP paths.
See it run in 60 seconds
# 1. Hit the hosted evaluation API — a real, public x402 merchant
curl -X POST https://api.boundra.io/evaluate/basic \ -H 'Content-Type: application/json' \ -d '{"intent":{"amount":0.01,"recipient":"api.weather.com","purpose":"weather data"}}'
→ {"decision":"ALLOW",...} · semantic layer: 100 free calls per agent,
then $0.003 via x402 — settled for real on Base mainnet (USDC)
2. Local end-to-end simulation — a data-procurement agent's day
.venv/bin/python demo/simulate_agent.py
signed policy publish → ALLOW / DENY (limit) / ASK → user-signed approval token
→ prompt-injection blocked → audit trail, plus a dogfood call to api.boundra.io
3. One-line MCP install + 2-minute policy wizard
uvx --from git+https://github.com/gobeyondfj-cmd/boundra boundra-mcp # stdio server uvx --from git+https://github.com/gobeyondfj-cmd/boundra boundra-init # wallet → template → sign → anchor uvx --from git+https://github.com/gobeyondfj-cmd/boundra boundra-approve # sign an ASK challenge
The complete flow, step by step
Zero to a signed, enforced policy in ~10 minutes. No accounts, no dashboards — your wallet key is your identity.
0 · Try the hosted API *(30 seconds, nothing to install)*
curl -X POST https://api.boundra.io/evaluate/basic \
-H 'Content-Type: application/json' \ -d '{"intent":{"amount":0.01,"recipient":"api.weather.com","purpose":"weather data"}}'
1 · Bind your identity — the wallet is the account
uvx --from git+https://github.com/gobeyondfj-cmd/boundra boundra-init
Creates or imports a Base wallet. No signup, no email — the private key never leaves your device, and your address *is* your identity everywhere in the system.
2 · Set your policy
The wizard offers templates (personal assistant / travel / dev API / procurement) or lets you write your own rule in plain English, then compiles it and shows you exactly what will be enforced — before anything is signed.
3 · Sign & publish
You sign the policy document with your wallet key (EIP-191). It is published as a versioned, hash-chained document. The default commitment is a local hash log; Base Sepolia anchoring is optional. From this moment the gateway is read-only for every agent — changing the policy without your key is impossible.
4 · Mount the MCP server into your agent
Hosted (zero install, multi-tenant, default-deny until you publish a signed policy):
{ "mcpServers": { "boundra": { "url": "https://api.boundra.io/mcp" } } }
Or self-hosted:
{ "mcpServers": { "boundra": { "command": "uvx",
"args": ["--from", "git+https://github.com/gobeyondfj-cmd/boundra", "boundra-mcp"] } } }
5 · Every payment gets a verdict before signing
Your agent calls evaluate_payment; the 5-stage pipeline answers ALLOW (sign & settle) / DENY (aborted pre-signature, zero on-chain trace) / ASK (a challenge bound to this exact payment).
6 · When the agent asks, you decide
uvx --from git+https://github.com/gobeyondfj-cmd/boundra boundra-approve
Paste the ASK challenge, sign it on your device — the agent retries with the signed approval token. Forged, rebound, or replayed tokens are rejected.
7 · Watch, update, revoke
get_spend_report / get_audit_trail / get_policy_versions keep you in control day to day. Every policy change is a new signed version (set_policy); revoke_policy is instant default-deny and free forever.
Quick start (from source)
cd boundra
Mode 1: offline simulation (run this first — the full flow in 30 seconds)
python demo/demo.py
Mode 2: real x402 + MCP
python -m venv .venv && .venv/bin/pip install \ "x402[evm,httpx]" mcp eth-account fastapi uvicorn .venv/bin/python tests/test_mcp_client.py # MCP protocol-level tests .venv/bin/python demo/setup_wallets.py # generate Base Sepolia test wallets + faucet guide .venv/bin/python demo/demo_real.py # real protocol end-to-end (settles on-chain after funding)
Architecture: where the gateway stands
Agent framework (Claude / custom)
│ MCP protocol (stdio) ▼ mcp_server.py ──→ policy.py 5-stage evaluation pipeline (policy decision semantic → whitelist → limit → approval → budget point) ▲ │ on_before_payment_creation hook (x402 SDK v2 native interception point) x402_buyer.py ──sign (EIP-3009)──→ x402 server ──→ facilitator ──→ Base Sepolia
Key finding: x402 SDK v2 natively provides the on_before_payment_creation hook plus register_policy / set_spend_controls — the policy layer is not a bolt-on; it is the slot the official protocol stack reserves. This validates the wedge.
File map
boundra/
├── policy.py intent compilation (NL→Policy, bilingual CN/EN) + 5-stage pipeline + platform red lines ├── signed_policy.py ★ signed policy documents + version chain + revocation (keccak) ├── approval.py ★ signed approval tokens (challenge → user signs → gateway verifies) ├── mandate.py ★ task Mandates: single-use authorization, burned after use (pipeline layer 4) ├── templates.py ★ policy template library (personal assistant / travel / dev API / procurement) ├── chain_anchor.py ★ anchor backends: local simulation + real Base Sepolia (web3) ├── gateway.py gateway core v3: 4-layer stacking + token verification + Mandate + revocation ├── spend_ledger.py ★ SQLite atomic reservations → settlement / release, with capability tokens ├── usage_metrics.py persistent hosted evaluation, usage and revenue counters ├── rail_adapters.py ★ rail adapter layer: evaluation core decoupled from settlement rails (x402 first) ├── boundra_x402.py ★ async Python client + fail-closed x402 pre-sign hook ├── sdk/typescript/ ★ equivalent TypeScript client and x402 hook, with tests ├── mcp_server.py ★ standard MCP server (11 tools, stdio) ├── boundra_cli.py ★ boundra-init (policy wizard) + boundra-approve (challenge signer) ├── contracts/ │ └── PolicyAnchor.sol ★ on-chain commitment contract (owner-write, anyone-read) ├── demo/ │ ├── simulate_agent.py ★ end-to-end user journey simulation (MCP + hosted API dogfood) │ ├── demo_policy.py signed-policy demo (impersonation / unsigned / tampering attacks all blocked) │ ├── demo_real.py real-protocol end-to-end orchestration │ ├── x402_resource_server.py real x402 paywall server (FastAPI middleware) │ ├── x402_buyer.py real x402 buyer, evaluated by the MCP gateway before signing │ ├── setup_wallets.py Base Sepolia test wallet generation │ └── demo.py / merchant.py / agent.py offline simulation (zero dependencies) ├── tests/ │ ├── test_product.py ★ product tests (28 assertions) │ ├── test_mcp_client.py MCP protocol-level tests │ ├── test_reservation_sdk.py atomic budget, metrics and Python SDK tests │ ├── test_vectors.py CC0 policy / ledger / approval consistency vectors │ ├── vectors/ machine-readable CC0 conformance fixtures │ └── run_semantic_eval.py reproducible injection-corpus metrics (no LLM) ├── docs/ │ ├── dataflow.png data-flow diagram (English) │ └── render_*.py diagram renderers (architecture / flow / use-case / data flow) └── state/audit.jsonl audit trail (generated at runtime, gitignored)
Signed policies: the root of trust is the user's key, not the gateway's database (v2)
A policy is a document signed by the user's wallet, not a row in the gateway's configuration:
user private key signature ──→ PolicyDocument (NL rule + compiled artifact + prev_hash + version)
│ three checks: signer == owner, versions sequential, prev_hash unbroken ▼ PolicyStore (version chain) ──→ LocalAnchor (simulated commitment; production writes to contract) │ ▼ check_integrity before every evaluation (signature + anchor) 5-stage pipeline; audit records cite policy version + hash
- Read-only for agents: without the user's private key,
set_policyalways fails — impersonation, unsigned, and tampered submissions are all blocked (seven scenarios indemo/demo_policy.py) - Two stacked scopes: user-level (rules for all agents) × agent-level (per-agent rules); the strictest verdict wins
- Every version bump is a signature: v2 must reference v1's hash; tampering with any historical version → signature invalid + chain broken
- Privacy shape: optional on-chain commitments contain only hashes. Hosted MCP stores the signed policy document submitted by the user; self-hosted mode keeps policy plaintext on the user's device
Run: .venv/bin/python demo/demo_policy.py
Verdict credentials: every decision comes with a signed receipt (v4)
Every evaluate_payment response carries a credential — a boundra.verdict/v1 receipt signed by the platform key (EIP-191). It answers "who can prove this ALLOW / DENY / ASK actually happened, under this policy, for this exact payment intent?"
- Binds the intent and expectations:
intent_hashcovers the legacy {amount, recipient, purpose} plus any supplied quote / expectation fields (expected amount/payee, resource, method, network, asset). The credential also carries explicitquote,expectation, andexpectation_sourcefields - Binds the policy:
policy_refslists the policy version hashes used, comparable against local or optional on-chain anchors - Binds evaluation state:
audit_id,evaluation_id, andreservation_statuslink the decision to its audit and budget lifecycle; the secret reservation token is deliberately excluded - Verifiable offline, by anyone: strip
proof, canonicalize the payload (sorted keys, compact separators), recover the EIP-191 signer — it must equalissuerand the platform address0xF30955B6Be768370Da13fca237A5f252F6081d1C(the same address that receives x402 revenue — one identity for signing and settlement). Published atGET https://api.boundra.io/verdict-key.
from verdict_credential import verify_credential
ok, why = verify_credential(verdict["credential"]) # offline, no API call
Self-hosted gateways attach no credential unle
Solo se muestra el principio; lee el resto en el repo