Skip to main content
Glama

🔒 local402

AIエージェント向けワンコマンドローカルペイウォール

あらゆるローカルサーバーを数秒で課金可能なリソースに変えます。 エージェントがAPIやMCPツールにアクセスする前に支払いを要求するテストに最適です。

npx local402 --target http://localhost:3000 --price 0.001

npm version license node PRs welcome


これは何?

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ありの場合

ファシリテーター + ウォレット + テストネット資金を用意

npx local402 --target ...

テスト実行ごとに実際のトランザクション

即時、無料、決定論的

テストループにブロックチェーンのレイテンシ

0ms — すべてローカル

支払いロジックがアプリに絡みつく

その前に1つのリバースプロキシ

「未払い」パスを再現するのが難しい

オンデマンドで確実に 402

こんな用途に使えます:

  • ✅ 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.001

local402 は 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]

フラグ

エイリアス

デフォルト

説明

--target <url>

-t

(必須)

保護するサーバー(例: http://localhost:3000)

--port <number>

-p

4020

local402 がリッスンするポート

--price <string>

0.001

402 レスポンスで提示される価格

--asset <string>

USD

価格の通貨/資産ラベル

--simulate

true

シミュレーションモード — ブロックチェーン不要、即時(デフォルト)

--no-simulate

実際のx402決済用に予約済み (近日公開)

--no-color

カラーコンソール出力を無効化

ルール

  • 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/
  1. フォークする 🍴

  2. ブランチを作成 (git checkout -b feat/amazing-thing)

  3. 変更をコミット (git commit -m 'feat: amazing thing')

  4. プッシュしてPRを開く

どんな小さなコントリビューションも歓迎します — タイポ修正でも役立ちます。


📄 ライセンス

MIT © local402 コントリビューター。お好きなようにお使いください。


⭐ これが役に立ったらリポジトリにスターを

local402 が、エージェントをテストするためだけに支払いスタックを立てる手間を省いてくれたなら、スターを付けてください — 他の人がこのツールを見つけるのに本当に役立ちます。

⭐ GitHubでlocal402にスターを

支払いを覚えるエージェントのために作られました。 🔒

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Ag402 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.
    9
    MIT