local402
🔒 local402
AIエージェント向けワンコマンドローカルペイウォール
あらゆるローカルサーバーを数秒で課金可能なリソースに変えます。 エージェントがAPIやMCPツールにアクセスする前に支払いを要求するテストに最適です。
npx local402 --target http://localhost:3000 --price 0.001
これは何?
local402 は、x402 スタイルの HTTP 402 Payment Required ペイウォールを、あらゆるローカルHTTPサーバーやMCPツールの前に、単一コマンド、設定不要、ブロックチェーン不要で配置します。
支払いのないリクエストにはクリーンな 402 が返ります。「支払い」があったリクエストは、そのまま実際のサーバーにプロキシされます。それだけです。
デフォルトでは完全シミュレーションモードで動作します。ウォレットもガス代も外部サービスも待ち時間も不要。ローカルで構築・テストできる、即時で決定論的な402を実現します。
agent ──▶ local402 (402 paywall) ──▶ your server
│
└── no payment? → 402 Payment Required
paid? → proxied response ✅Related MCP server: x402 MCP Proxy
💸 なぜlocal402なのか?
エージェントは支払いを学びつつあります — API呼び出し、ツール呼び出し、データ、計算リソースなど。x402プロトコルはHTTPネイティブな支払いを現実のものにします。しかし、ギャップがあります。
実際のお金を使わず、ウォレットを立てず、支払いスタック全体を毎回配線せずに、支払いを行うエージェントをテストするにはどうすればいいのか?
エージェントが 402 を認識して支払いとともに再試行するかどうかを確認するためだけに、ファシリテーターをデプロイしてテストネットウォレットに資金を入れたくはありません。必要なのは、ワンコマンドで立てて、同じくらい簡単に壊せるペイウォールです。
それが local402 です。
local402なしの場合 | local402ありの場合 |
ファシリテーター + ウォレット + テストネット資金を用意 |
|
テスト実行ごとに実際のトランザクション | 即時、無料、決定論的 |
テストループにブロックチェーンのレイテンシ | 0ms — すべてローカル |
支払いロジックがアプリに絡みつく | その前に1つのリバースプロキシ |
「未払い」パスを再現するのが難しい | オンデマンドで確実に |
こんな用途に使えます:
✅ AIエージェントが
402を処理し、x-paymentヘッダー付きで再試行するかをテスト✅ チェーンに触れずに「従量課金」APIやMCPツールをデモ
✅ オフライン、飛行機の中、CI上でx402クライアントロジックを開発
✅ 実際の決済にコミットする前に価格設定をプロトタイプ
⚡ クイックスタート
インストールすら必要ありません。
# 1. Have any local server running (your API, MCP tool, whatever)
# e.g. something on http://localhost:3000
# 2. Put a paywall in front of it
npx local402 --target http://localhost:3000 --price 0.001local402 は http://localhost:4020 で待機し、あなたのサーバーを守っています。
# ❌ No payment → 402 Payment Required
curl -i http://localhost:4020/
# ✅ "Pay" → request is proxied to your real server
curl -i http://localhost:4020/ -H "x-payment: simulated"エージェントを実際のサーバーではなく http://localhost:4020 に向ければ、支払いを学ぶ様子を観察できます。🎉
🛠 使い方
local402 --target <url> [options]フラグ | エイリアス | デフォルト | 説明 |
|
| (必須) | 保護するサーバー(例: |
|
|
| local402 がリッスンするポート |
|
|
| |
|
| 価格の通貨/資産ラベル | |
|
| シミュレーションモード — ブロックチェーン不要、即時(デフォルト) | |
| 実際のx402決済用に予約済み (近日公開) | ||
| カラーコンソール出力を無効化 |
ルール
x-paymentヘッダーなし →402 Payment Required(有用なJSONボディ+ヘッダー付き)x-payment: simulated(またはpaid)→ リクエストは--targetにプロキシされ、実際のレスポンスがそのまま返ります。
シミュレーションモードでは、空でない x-payment 値はすべて受け入れられます — simulated と paid は単なる標準的な値です。
例
# Guard an MCP tool on a custom port, charge 0.01
local402 --target http://localhost:8787 --port 9000 --price 0.01
# Free status check — always open, never paywalled
curl http://localhost:4020/__local402🔍 仕組み
local402 は小さなリバースプロキシで、1つのポリシーを持っています: まず支払い、それから通過。
┌──────────────────────────────┐
│ local402 │
│ :4020 (paywall) │
┌─────────┐ │ │ ┌──────────────┐
│ agent │ ───────▶ │ x-payment header present? │ │ your server │
│ / curl │ │ │ │ :3000 │
└─────────┘ │ NO ─▶ 402 Payment Required │ └──────────────┘
▲ │ │ ▲
│ │ YES ─▶ proxy the request ──┼─────────────────┘
│ │ return real response │ │
└───────────────┤◀──────────────────────────────┼─────────────────┘
402 or proxied response │
└──────────────────────────────┘未払いのレスポンス(HTTP 402):
{
"x402Version": 1,
"error": "Payment Required",
"message": "This resource costs 0.001 USD. Retry with header 'x-payment: simulated'.",
"accepts": [
{
"scheme": "simulated",
"network": "local",
"maxAmountRequired": "0.001",
"asset": "USD",
"payTo": "local402-simulated",
"resource": "/",
"description": "local402 simulated paywall",
"mimeType": "application/json"
}
],
"hint": "x-payment: simulated"
}402 時のレスポンスヘッダー:
HTTP/1.1 402 Payment Required
x-payment-required: true
x-payment-amount: 0.001
x-payment-asset: USD
x-payment-network: local
accept-payment: x-payment: simulated支払い済みのリクエストでは、local402 はシミュレートされた決済レシートを添付し、クライアントがエンドツーエンドでフローを検証できるようにします:
x-payment-response: <base64 JSON receipt with a sim txHash>🗺 ロードマップ
local402 は意図的にシンプルに始めています。計画は以下の通り:
v0.1 — シミュレーションモード。 即時、ローカル、ブロックチェーン不要の
402ペイウォール。 (現在地)v0.2 — 実際のx402決済。 プラグイン可能なファシリテーターを介して実際の
X-PAYMENTペイロードを検証。v0.3 — MCPネイティブモード。 HTTPだけでなく、MCPツール/リソースのファーストクラスペイウォール。
v0.4 — ルートごとの価格設定。 パスとメソッドごとに異なる価格。
v0.5 — 使用状況ダッシュボード。 リクエスト、支払い、収益のライブTUI。
形にしたいですか? Issueを開いてください。
🤝 コントリビューション
コントリビューション、アイデア、バグ報告はすべて歓迎します — これはフレンドリーな小さなツールであることを意図しています。
git clone https://github.com/wushu75/local402.git
cd local402
npm install
npm run dev -- --target http://localhost:3000 # run from source
npm run build # compile to dist/フォークする 🍴
ブランチを作成 (
git checkout -b feat/amazing-thing)変更をコミット (
git commit -m 'feat: amazing thing')プッシュしてPRを開く
どんな小さなコントリビューションも歓迎します — タイポ修正でも役立ちます。
📄 ライセンス
MIT © local402 コントリビューター。お好きなようにお使いください。
⭐ これが役に立ったらリポジトリにスターを
local402 が、エージェントをテストするためだけに支払いスタックを立てる手間を省いてくれたなら、スターを付けてください — 他の人がこのツールを見つけるのに本当に役立ちます。
支払いを覚えるエージェントのために作られました。 🔒
This server cannot be deployed
Maintenance
Related MCP Connectors
Monetize any MCP server: x402 paywall, pay-per-call billing in USDC on Base, agent marketplace.
Agent x402 Paywall MCP — Coinbase HTTP 402 protocol + on-chain settlement. Agents pay per-call
Pay-per-action access to APIs and MCP tools over Lightning L402 and Base USDC x402.
Test any x402 paid URL without paying: 402, PAYMENT-REQUIRED, USDC, amounts, payTo, EIP-712, CORS.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAg402 is the payment layer for Coinbase's x402 protocol. Wrap any API or MCP server with a paywall in one command (ag402 serve), or let your AI agent auto-pay for paid APIs (ag402 run). Zero code changes for both buyers and sellers. Solana USDC, ~0.5s settlement, non-custodial, 648+ tests, MIT licensed. Works with Claude Code, Cursor, OpenClaw, LangChain, AutoGen, CrewAI out of the box.9MIT
- AlicenseNot gradedqualityCmaintenanceA local MCP proxy that connects to remote MCP servers and automatically handles x402 payments, signing USDC on-chain when a tool returns HTTP 402.16 npm1MIT

mcp-x402-acceptofficial
AlicenseNot gradedqualityCmaintenanceProxies an existing MCP server to add an x402 paywall, charging AI agents per tool call without modifying the upstream server.68 npmMIT- AlicenseAqualityCmaintenanceEnables AI agents to discover and pay for x402-gated HTTP APIs, handling 402 Payment Required flows with local signing. Supports EVM and Solana with non-custodial wallet management.3342 npmMIT