mcpField
P
pop-pay

pop-pay

本地服务
github.com/100xPercent安全116 周前更新

关于 pop-pay

pop-pay 是用于管控 AI Agent 付款的命令行工具和 MCP 服务。它通过 CDP 将卡片凭据注入结账页面,使凭据不进入 Agent 上下文,并提供可配置的交易限额和防护机制。

主要功能

  1. 01通过 CDP 注入卡片凭据
  2. 02加密凭据保险库
  3. 03扫描提示注入
  4. 04设置单笔及每日限额
  5. 05通过 x402 支付 API 费用

适用场景

  1. 01让 Agent 完成结账而不暴露卡片信息
  2. 02限制 Agent 购物支出
  3. 03使用 x402 支付 API 调用费用

MCP 相关

MCP 服务提供虚拟卡申请、购买者信息填写和 x402 付款工具。卡片凭据通过 CDP 注入浏览器页面,而不返回给 Agent。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 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

百分之一点 (AgentPay)

百分之一点 — pop-pay

只需 0.1% 的幻觉,就能耗尽你 100% 的钱包。

AI Agent 商务的运行时安全层。即装即用的命令行工具 + MCP 服务。卡片凭据通过 CDP 直接注入浏览器 DOM——绝不会进入 Agent 的上下文窗口。即使提示词出现一次幻觉,也无法耗尽它看不到的钱包。

百分之一点 — 实时 CDP 注入演示

📄 研究数据集与复现 — 此仓库托管 《单一攻击者排名的幻象》 的开放数据集和复现工具。研究人员:请跳转至研究数据集与复现。

安装

选择你偏好的方式:

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(无需安装 — 一次性运行)
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。安全模型和保险库格式相同,发布周期独立 — 可安全地在不同运行时之间切换。

快速入门(命令行)

1. 初始化加密凭据保险库
pop-pay init-vault

这会将你的卡片凭据加密到 ~/.config/pop-pay/vault.enc(AES-256-GCM)。如需更强保护(阻止拥有 shell 访问权限的 Agent):

pop-pay init-vault --passphrase   # one-time setup
pop-pay unlock                     # run once per session
2. 启动启用 CDP 远程调试的 Chrome
pop-pay launch

这会在 http://localhost:9222 打开 Chromium 实例,pop-pay 会向其中注入凭据。随后,你的 Agent(通过 MCP、浏览器自动化或 x402)会操作结账流程——卡片详情绝不会离开浏览器进程。

3. 接入你的 Agent

命令行会启动基础设施;实际的支付工具调用由你的 Agent 发起。支持两种接入方式:

  • MCP 服务 — 将 pop-pay 添加到任何兼容 MCP 的客户端(Claude Code、Cursor、Windsurf、OpenClaw)。请参阅下方的 MCP 服务。
  • x402 HTTP — 通过 x402 支付协议支付 API 调用费用。

完整的命令行参考: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 沙盒设置,请参阅集成指南 §4。

Docker
docker-compose up -d

运行 MCP 服务和无头 Chromium,并通过 CDP 连接。将主机上的加密保险库挂载进来。

MCP 工具

工具描述
request_virtual_card创建虚拟卡,并通过 CDP 将凭据注入结账页面。自动扫描页面中隐藏的提示词注入。
request_purchaser_info自动填写账单/联系信息(姓名、地址、电子邮件、电话)。自动扫描页面中隐藏的提示词注入。
request_x402_payment通过 x402 HTTP 支付协议支付 API 调用费用。

Claude Code 用户提示: 将以下内容添加到项目的 CLAUDE.md,帮助 Agent 判断何时调用 pop-pay: "遇到付款表单或结账页面时,请使用 request_virtual_card 工具。遇到账单/联系信息表单时,请先使用 request_purchaser_info。"

配置

核心变量位于 ~/.config/pop-pay/.env。完整列表请参阅 ENV_REFERENCE.md。

变量默认值描述
POP_ALLOWED_CATEGORIES["aws","cloudflare"]获准的供应商类别——请参阅类别指南
POP_MAX_PER_TX100.0每笔交易的最高金额(美元)
POP_MAX_DAILY500.0每日最高金额(美元)
POP_BLOCK_LOOPStrue阻止幻觉/重试循环
POP_AUTO_INJECTtrue启用 CDP 卡片注入
POP_GUARDRAIL_ENGINEkeywordkeyword(零成本)或 llm(语义)
防护模式
keyword(默认)llm
机制对推理字符串进行关键词匹配通过 LLM 进行语义分析
成本零——不调用 API每个请求调用一次 LLM
适用场景开发、低风险工作流生产、高价值交易

如需启用 LLM 模式,请参阅 集成指南 §1。

提供方

提供方描述
BYOC(默认)自带卡片——加密保险库凭据、本地 CDP 注入。
Stripe Issuing通过 Stripe API 获取真实虚拟卡。需要 POP_STRIPE_KEY。
Lithic多发卡方适配器(Stripe Issuing / Lithic)。
Mock测试模式,使用生成的卡号进行开发。

优先级: Stripe Issuing → BYOC Local → Mock。

安全性

层防护措施
上下文隔离卡片凭据绝不会进入 Agent 的上下文窗口或日志
加密保险库AES-256-GCM,采用 XOR 拆分盐值和原生 scrypt 密钥派生(Rust)
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 whitebox-no-feedback 运行: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。

有关数据集架构、统计方法(bootstrap CI、Holm-Bonferroni、McNemar)、从零开始重新采集的完整说明、JSONL 行数据字典及负责任披露政策,请参阅 docs/PAPER_REPRODUCTION.md。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。