Open-source B2B and marketplace ecommerce; new stores include an MCP server for AI agents.
Boundra — Payment Approval Gateway for AI Agents
概要
作者による説明(英語の原文)
Policy decision point for agent payments — allow, ask, or veto before signing
PopNx MCPの3つの柱
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
- 利用者の声iレビューはまだありませんレビューは今後のステップで、アカウント機能と一緒に始まります
- 私たちの基本チェックi1項目中1項目に合格公開情報からチェック。コードはまだスキャンしていません
- 利用状況i未計測★ –
できること
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
- 接続方法: パソコンで動く
- トランスポート: stdio
- カテゴリ: ネットショップ・決済
インストール
使っているAIアプリを選んで、設定をコピーしてください。
インストールの前に
- 基本チェック:1項目中1項目に合格
- あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
- レジストリには、入力が必要なキーは載っていません。
必要なもの
- PyPIPythonのuvのインストール(uvxコマンドに必要)
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"boundra": {
"command": "uvx",
"args": [
"boundra-mcp"
]
}
}
}ターミナルでこれを実行します
claude mcp add boundra -- uvx boundra-mcpまたは、設定を自分でコピーする
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"boundra": {
"command": "uvx",
"args": [
"boundra-mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
または、設定を自分でコピーする
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"boundra": {
"type": "stdio",
"command": "uvx",
"args": [
"boundra-mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
できること
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
基本チェックi
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
- ✓ 合格
作者とリポジトリが一致
レジストリ名は、リポジトリを所有するGitHubアカウント gobeyondfj-cmd で確認済みです
- … 未チェック
今もメンテナンスされている
このリポジトリはまだGitHubから読み取っていません
- … 未チェック
ライセンスがある
このリポジトリはまだGitHubから読み取っていません
- – 対象外
エンドポイントが応答する
これはパソコンで動くため、インターネット上のエンドポイントはありません
- – 対象外
OAuthでサインイン
パソコンで動き、代わりにローカルの設定を使います
- … 未チェック
ツールの説明に隠れた指示がない
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
ネットショップ・決済のほかのサーバーとの比較i
- このカテゴリのほかの1748件のうち0%よりスターが多い
- このカテゴリのほかの1748件のうち63%より最近レジストリに公開
- 基本チェックの結果が、このカテゴリのほかの1748件のうち100%と同じかそれ以上
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
よくある質問
Boundra — Payment Approval Gateway for AI Agentsは安全ですか?
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
どんなキーやコードが必要ですか?
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
パソコンで動きますか、それともクラウドですか?
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
今もメンテナンスされていますか?
GitHubリポジトリの最終更新は–、最新バージョン(0.1.0)がレジストリに届いたのは20 日前です。
どのアプリで使えますか?
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。
代わりに使えるものは?
同じカテゴリには:Spree Commerce: open-source B2B and marketplace ecommerce, Stripe MCP, MCP Cn Commerce
代わりの候補
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況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
冒頭だけを表示しています。続きはリポジトリで読めます