mcpField
P
pop-pay

pop-pay

ローカル
github.com/100xPercentセキュリティ116 週間前に更新

pop-pay について

pop-payは、AIエージェントの決済を制御するコマンドラインツール兼MCPサーバーです。CDPでカード情報を決済ページに注入し、エージェントのコンテキストから隔離します。取引上限やガードレールも設定できます。

主な機能

  1. 01CDPによるカード情報の注入
  2. 02暗号化された認証情報ボルト
  3. 03プロンプトインジェクションの検査
  4. 04取引額と日次上限の設定
  5. 05x402によるAPI決済

活用シーン

  1. 01カード情報を見せずにエージェントで決済
  2. 02エージェントの購入額を制限
  3. 03x402でAPI利用料を支払う

MCP 対応

MCPサーバーは、バーチャルカードの発行、購入者情報の入力、x402決済のツールを提供します。カード情報はCDP経由でブラウザーに注入され、エージェントには返されません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"100xpercent-pop-pay": {
"command": "npx",
"args": [
"-y",
"pop-pay"
],
"env": {
"POP_CDP_URL": "<POP_CDP_URL>",
"POP_ALLOWED_CATEGORIES": "<POP_ALLOWED_CATEGORIES>",
"POP_MAX_PER_TX": "<POP_MAX_PER_TX>",
"POP_MAX_DAILY": "<POP_MAX_DAILY>",
"POP_GUARDRAIL_ENGINE": "<POP_GUARDRAIL_ENGINE>"
}
}
}
}
起動コマンドnpx -y pop-pay
設定が必要な環境変数
POP_CDP_URLChrome DevTools Protocol endpoint for credential injection (default: http://localhost:9222)
POP_ALLOWED_CATEGORIESJSON array of allowed vendor categories (e.g. '["aws","cloudflare"]')
POP_MAX_PER_TXPer-transaction spending limit in USD
POP_MAX_DAILYDaily spending limit in USD
POP_GUARDRAIL_ENGINEGuardrail engine: 'keyword' (offline, default) or 'llm' (requires API key)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmpop-pay0.5.7

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

npm version License: MIT CI Node.js

Point One Percent (AgentPay)

Point One Percent — pop-pay

ウォレットを空にするのに必要なのは、たった0.1%の幻覚だけです。100%の残高が消えてしまいます。

AI エージェントによるコマースのランタイムセキュリティレイヤーです。すぐに使える CLI と MCP サーバーを提供します。カード認証情報は CDP を介してブラウザーの DOM に直接注入されるため、エージェントのコンテキストウィンドウに入ることはありません。エージェントから見えないウォレットを、たった一つの幻覚プロンプトで空にすることはできません。

Point One Percent — CDP によるライブ注入のデモ

📄 研究データセットと再現 — このリポジトリでは、「The Illusion of Single-Attacker Rankings」 のオープンデータセットと再現用ハーネスを公開しています。研究については、研究データセットと再現をご覧ください。

インストール

お好みの方法を選択してください。

Homebrew(macOS)
brew install 100xpercent/tap/pop-pay
curl(Linux / macOS)— npm 経由でセットアップします。Node.js 18 以降が必要です
curl -fsSL https://raw.githubusercontent.com/100xPercent/pop-pay/main/install.sh | sh
npm(グローバル)
npm install -g pop-pay
npx(インストール不要 — 1 回限りの実行)
npx -y pop-pay <command>

どの方法でインストールしても、同じバイナリ(pop-pay、pop-launch、pop-init-vault、pop-unlock)が利用できます。

@100xpercent/mcp-server-pop-pay としても利用できます。MCP の @scope/mcp-server-<name> 規約に準拠した同一パッケージです。リリースごとに同じバージョンが適用されます。

Python をお使いですか? pop-pay-python をご覧ください。pip install pop-pay でインストールできます。同じセキュリティモデルと同じボールト形式を採用しており、リリースサイクルは独立しているため、ランタイムを安全に切り替えられます。

クイックスタート(CLI)

1. 暗号化された認証情報ボールトを初期化する
pop-pay init-vault

カード認証情報は暗号化され、~/.config/pop-pay/vault.enc に保存されます(AES-256-GCM)。より強力な保護が必要な場合(シェルアクセス権を持つエージェントをブロックする場合)は、次を実行してください。

pop-pay init-vault --passphrase   # one-time setup
pop-pay unlock                     # run once per session
2. CDP リモートデバッグを有効にして Chrome を起動する
pop-pay launch

これにより、pop-pay が認証情報を注入する Chromium インスタンスが http://localhost:9222 で開きます。エージェントは MCP、ブラウザー自動化、または x402 を介してチェックアウトのフローを進めます。カード情報がブラウザープロセスの外に出ることはありません。

3. エージェントに接続する

CLI はインフラストラクチャを起動します。実際の決済ツール呼び出しはエージェントが行います。次の 2 つの方法に対応しています。

  • MCP サーバー — pop-pay を、MCP 対応の任意のクライアント(Claude Code、Cursor、Windsurf、OpenClaw)に追加します。以下の MCP サーバー(任意)をご覧ください。
  • x402 HTTP — x402 決済プロトコルを介して API 呼び出しの料金を支払います。

CLI の全リファレンス:pop-pay --help。

MCP サーバー(任意)

MCP クライアントに追加

MCP 対応クライアントで使用できる標準設定:

{
  "mcpServers": {
    "pop-pay": {
      "command": "npx",
      "args": ["-y", "pop-pay", "launch-mcp"],
      "env": {
        "POP_CDP_URL": "http://localhost:9222"
      }
    }
  }
}

VS Code にインストール VS Code Insiders にインストール Cursor にインストール

Claude Code

Claude Code は独自の CLI を使用するため、上記の JSON 設定は不要です。

claude mcp add --scope user pop-pay -- npx -y pop-pay launch-mcp

--scope user を指定すると、すべてのプロジェクトで使用できます。削除するには、claude mcp remove pop-pay を実行します。

Cursor / Windsurf / VS Code

上記の JSON 設定を次のファイルに追加します。

  • Cursor:~/.cursor/mcp.json
  • Windsurf:~/.codeium/windsurf/mcp_config.json
  • VS Code(Copilot):プロジェクトのルートにある .vscode/mcp.json
OpenClaw / NemoClaw

OpenClaw は独自の CLI を使用するため、上記の JSON 設定は不要です。

openclaw mcp add pop-pay -- npx -y pop-pay launch-mcp

または、上記の JSON 設定を使用して ~/.openclaw/mcp_servers.json に追加します。

システムプロンプトのテンプレートと NemoClaw のサンドボックス設定については、Integration Guide §4 を参照してください。

Docker
docker-compose up -d

MCP サーバーと CDP 対応のヘッドレス Chromium を起動します。ホストから暗号化された保管庫をマウントしてください。

MCP ツール

ツール説明
request_virtual_card仮想カードを発行し、CDP 経由で認証情報をチェックアウトページに入力します。ページに隠されたプロンプトインジェクションがないか自動的にスキャンします。
request_purchaser_info請求先/連絡先情報(名前、住所、メールアドレス、電話番号)を自動入力します。ページに隠されたプロンプトインジェクションがないか自動的にスキャンします。
request_x402_paymentx402 HTTP 支払いプロトコルを介して API 呼び出しの料金を支払います。

Claude Code ユーザーへのヒント: エージェントが pop-pay を呼び出すタイミングを判断できるよう、次の内容をプロジェクトの CLAUDE.md に追加してください。 「支払いフォームまたはチェックアウトページが表示されたら、request_virtual_card ツールを使用してください。請求先/連絡先情報のフォームでは、まず request_purchaser_info を使用してください。」

設定

主要な変数は ~/.config/pop-pay/.env にあります。全項目については、ENV_REFERENCE.md を参照してください。

変数デフォルト説明
POP_ALLOWED_CATEGORIES["aws","cloudflare"]承認済みのベンダーカテゴリ。詳しくは Categories Cookbook を参照してください
POP_MAX_PER_TX100.01 回の取引あたりの最大 USD 額
POP_MAX_DAILY500.01 日あたりの最大 USD 額
POP_BLOCK_LOOPStrueハルシネーション/再試行ループをブロックします
POP_AUTO_INJECTtrueCDP によるカード入力を有効にします
POP_GUARDRAIL_ENGINEkeywordkeyword(コストゼロ)または llm(セマンティック)
ガードレールモード
keyword(デフォルト)llm
仕組み推論文字列に対するキーワードマッチングLLM によるセマンティック分析
コストゼロ — API 呼び出しなしリクエストごとに LLM を 1 回呼び出し
最適な用途開発、リスクの低いワークフロー本番環境、高価値の取引

LLM モードを有効にするには、Integration Guide §1を参照してください。

プロバイダー

プロバイダー説明
BYOC(デフォルト)独自のカードを持ち込む方式 — 認証情報を暗号化されたボールトに保存し、ローカルで CDP に注入します。
Stripe IssuingStripe API を介した実際のバーチャルカードです。POP_STRIPE_KEY が必要です。
Lithic複数の発行元に対応するアダプター(Stripe Issuing / Lithic)です。
Mock開発用に生成したカード番号を使用するテストモードです。

優先順位: Stripe Issuing → BYOC Local → Mock。

セキュリティ

レイヤー防御
コンテキストの分離カードの認証情報がエージェントのコンテキストウィンドウやログに入ることはありません
暗号化されたボールトXOR 分割ソルトとネイティブな scrypt 鍵導出(Rust)を使用した AES-256-GCM
TOCTOU ガードCDP 注入時にドメインを検証し、リダイレクト攻撃をブロックします
表示文字列のマスキングすべての MCP 応答、ログ、トレースバックで自動的にマスキングします(****-4242)

STRIDE 分析の詳細はTHREAT_MODEL.md、エンタープライズ向けの詳細はCOMPLIANCE_FAQ.mdを参照してください。

アーキテクチャ

  • TypeScript — MCP サーバー、CDP 注入エンジン、ガードレール、CLI
  • Rust(napi-rs) — XOR 分割ソルトの保存、scrypt 鍵導出を担うネイティブセキュリティレイヤー
  • Node.js crypto — AES-256-GCM によるボールトの暗号化(OpenSSL バインディング)
  • Chrome DevTools Protocol — 生の WebSocket による直接的な DOM 注入

ドキュメント

研究データセットと再現方法

このリポジトリでは、対応する研究論文で説明されているベンダー横断の攻撃者安定性手法のための、オープンソースのデータセットとハーネスを公開しています。査読者・研究者向けの再現用アーティファクト:

  • コーパス(585 件の攻撃ペイロード、11 カテゴリ):tests/redteam/corpus/
    • attacks.json — カテゴリラベル付きの全ペイロードセット
    • GENERATION.md — コーパス生成プロトコル
    • schema.json — ペイロードのスキーマ
  • 実行 JSONL(26,325 行、9 モデル × 585 ペイロード × N=5):tests/redteam/runs/
    • PRIMARY ホワイトボックス・フィードバックなしの実行:runs/adaptive/2026-04-28T19-50-*
    • 固定パネルの実行:runs/static/
    • プロンプト除去テスト(v3 / strict / paranoid):runs/ablation/
  • マニフェストハッシュ:tests/redteam/runs/MANIFEST.sha256 — すべてのアーティファクトのバイト単位の完全性
  • Croissant 1.0 メタデータ(Core + RAI フィールド):paper-artifacts/croissant.json
  • 再現スクリプト(JSONL から論文の表・図を再生成):
    • python3 paper-artifacts/gen-tables.py --table all — Tab.~bypassk / threat-ablation / cross-vendor
    • python3 paper-artifacts/gen-taxonomy-map.py — Fig.~taxonomy-map
  • ライセンス:コーパスは CC BY-SA 4.0、ハーネスは MIT です。

データセットのスキーマ、統計手法(ブートストラップ CI、Holm-Bonferroni、McNemar)、最初からの完全な再収集手順、JSONL 行データ辞書、責任ある情報開示ポリシーについては、**docs/PAPER_REPRODUCTION.md**を参照してください。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。