Open-source B2B and marketplace ecommerce; new stores include an MCP server for AI agents.
Boundra — Payment Approval Gateway for AI Agents
개요
제작자가 쓴 설명(영어 원문)
Allow, ask, or veto — a policy decision point your agent consults before signing any payment
PopNx MCP의 세 기둥
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
- 사용자 의견i아직 리뷰가 없어요리뷰는 다음 단계에서 계정 기능과 함께 열려요
- 우리의 기본 점검i1개 중 1개 통과공개된 정보로 점검했으며, 코드는 아직 스캔하지 않았어요
- 사용 정도i아직 측정 안 함★ –
할 수 있는 일
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
- 연결 방식: 컴퓨터 또는 클라우드
- 전송 방식: stdio, Streamable HTTP
- 카테고리: 온라인 쇼핑몰 및 결제
설치
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
설치하기 전에
- 기본 점검: 1개 중 1개 통과
- 제작자의 서버에서 실행돼요. 내가 요청한 내용은 제작자의 서버를 거쳐요.
- 레지스트리에 입력해야 할 키가 나와 있지 않아요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
웹, 데스크톱, 모바일의 Claude에서 쓸 수 있어요:
- Settings → Connectors 열기
- Add custom connector 누르기
- 아래 주소를 붙여 넣고 Add 누르기
- 로그인하라고 하면 제작자의 서비스에 로그인하기
https://api.boundra.io/mcp또는 내 컴퓨터에서 실행하기
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"boundra": {
"command": "uvx",
"args": [
"boundra-mcp"
]
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add --transport http boundra https://api.boundra.io/mcp또는 내 컴퓨터에서 실행하기
claude mcp add boundra -- uvx boundra-mcp또는 설정을 직접 복사하기
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"boundra": {
"url": "https://api.boundra.io/mcp"
}
}
}또는 내 컴퓨터에서 실행하기
또는 설정을 직접 복사하기
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"boundra": {
"command": "uvx",
"args": [
"boundra-mcp"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
또는 설정을 직접 복사하기
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"boundra": {
"type": "http",
"url": "https://api.boundra.io/mcp"
}
}
}또는 내 컴퓨터에서 실행하기
또는 설정을 직접 복사하기
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"boundra": {
"type": "stdio",
"command": "uvx",
"args": [
"boundra-mcp"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요:
- 웹에서 ChatGPT 열기 → Settings → Connectors (Apps)
- Create 또는 Add 누르기(일부 요금제는 먼저 Advanced에서 Developer mode를 켜야 해요)
- 아래 주소를 붙여 넣고 이름을 정한 뒤 저장하기
- 로그인하라고 하면 제작자의 서비스에 로그인하기
https://api.boundra.io/mcp메뉴 이름은 요금제나 시기에 따라 조금 다를 수 있어요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
할 수 있는 일
아직 이 서버의 도구 목록을 읽지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요.
기본 점검i
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검
- ✓ 통과
제작자와 저장소 일치
레지스트리 이름이 도메인 boundra.io 기준으로 확인되었어요(레지스트리가 도메인 소유를 확인해요)
- … 아직 점검 안 함
계속 관리되고 있음
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
- … 아직 점검 안 함
라이선스 있음
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
- … 아직 점검 안 함
엔드포인트 응답
아직 점검하지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요
- … 아직 점검 안 함
OAuth로 로그인
아직 점검하지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요
- … 아직 점검 안 함
도구 설명에 숨겨진 지시 없음
아직 점검하지 않았어요. 엔드포인트를 점검할 때 도구 목록을 읽어요
온라인 쇼핑몰 및 결제 카테고리의 다른 서버와 비교i
- 이 카테고리의 다른 서버 1742개 중 0%보다 스타가 많아요
- 이 카테고리의 다른 서버 1742개 중 69%보다 최근에 레지스트리에 공개됐어요
- 기본 점검 결과가 이 카테고리의 다른 서버 1742개 중 100%와 같거나 더 좋아요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
자주 묻는 질문
Boundra — Payment Approval Gateway for AI Agents, 안전한가요?
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
어떤 키나 코드가 필요한가요?
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?
둘 다 가능해요. 내 컴퓨터에 설치해도 되고, 클라우드 버전에 연결해도 돼요.
아직 관리되고 있나요?
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.1.2)은 14일 전 레지스트리에 올라왔어요.
어떤 앱에서 쓸 수 있나요?
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되기 때문에, 원격 MCP 서버를 지원하는 앱(예: 개발자 모드의 ChatGPT)에서도 쓸 수 있어요.
대신 쓸 수 있는 건 뭐가 있나요?
같은 카테고리에는: Spree Commerce: open-source B2B and marketplace ecommerce, Stripe MCP, MCP Cn Commerce
대안
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
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
README 열기
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
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
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요