mcpField
Q
q402-mcp

q402-mcp

本地服务
github.com/quackai-org金融数据11 周前更新

关于 q402-mcp

q402-mcp 是供 MCP 客户端调用 Q402 稳定币支付操作的 MCP 服务。它支持在 12 条 EVM 链上报价、路由和可选结算,并默认使用沙盒,可配置不同签名模式。

主要功能

  1. 01为稳定币支付报价和路由
  2. 02在 12 条 EVM 链上可选结算
  3. 03支持本地和服务端托管签名
  4. 04默认在沙盒中运行
  5. 05提供支付和配置工具

适用场景

  1. 01比较支付路由和 Gas 成本
  2. 02准备跨支持链的稳定币转账
  3. 03配置本地或服务端托管签名
  4. 04在沙盒模式下测试支付工作流

MCP 相关

向 MCP 客户端提供 Q402 支付和配置工具,包括报价、路由与结算操作。可作为 stdio 服务注册到支持的客户端。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"quackai-org-q402": {
"command": "npx",
"args": [
"-y",
"@quackai/q402-mcp"
],
"env": {
"Q402_TRIAL_API_KEY": "<Q402_TRIAL_API_KEY>",
"Q402_MULTICHAIN_API_KEY": "<Q402_MULTICHAIN_API_KEY>",
"Q402_PRIVATE_KEY": "<Q402_PRIVATE_KEY>",
"Q402_AGENTIC_PRIVATE_KEY": "<Q402_AGENTIC_PRIVATE_KEY>",
"Q402_ENABLE_REAL_PAYMENTS": "<Q402_ENABLE_REAL_PAYMENTS>",
"Q402_MAX_AMOUNT_PER_CALL": "<Q402_MAX_AMOUNT_PER_CALL>",
"Q402_ALLOWED_RECIPIENTS": "<Q402_ALLOWED_RECIPIENTS>",
"Q402_RELAY_BASE_URL": "<Q402_RELAY_BASE_URL>",
"Q402_AGENT_WALLET_ADDRESS": "<Q402_AGENT_WALLET_ADDRESS>",
"Q402_API_KEY": "<Q402_API_KEY>",
"Q402_WALLET_ID": "<Q402_WALLET_ID>",
"Q402_BUILDER_CODE": "<Q402_BUILDER_CODE>"
}
}
}
}
启动命令npx -y @quackai/q402-mcp
需要配置的环境变量
Q402_TRIAL_API_KEY密钥Recommended path: skip this UI and run `q402_doctor` after install - it stores secrets in ~/.q402/mcp.env, which the server auto-loads. Fill this field directly ONLY if your MCP client manages secrets for you. Value is a Free Trial API key from https://q402.quackai.ai/event - BNB Chain (permanent) + Base (permanent) + Mantle limited-time (2026-08-21~08-28 UTC+9), 500 sponsored TXs, gas covered by Q402. Avalanche trial has ended. BNB and Base payments auto-route to this key when set (same rule for q402_pay and q402_batch_pay up to 5 recipients).
Q402_MULTICHAIN_API_KEY密钥Recommended path: skip this UI and run `q402_doctor` after install - it stores secrets in ~/.q402/mcp.env, which the server auto-loads. Fill this field directly ONLY if your MCP client manages secrets for you. Value is a Paid Multichain API key from https://q402.quackai.ai/payment - full 12-chain support with per-chain Gas Tank. Auto-routed for non-BNB payments and whenever keyScope='multichain' is chosen.
Q402_PRIVATE_KEY密钥Mode A - real EOA signing. Hex-encoded EVM private key (0x + 64 hex chars) of YOUR MetaMask wallet, used to sign payment authorizations LOCALLY on your machine. After your first payment that wallet shows as 'Smart account' in MetaMask (EIP-7702 delegation, reversible via q402_clear_delegation). Use a fresh wallet, not your main one. Skip this and pick Mode B (Q402_AGENTIC_PRIVATE_KEY) or Mode C (server-managed Agent Wallet) if you'd rather keep your MetaMask untouched. Recommended path: run q402_doctor after install - it stores secrets in ~/.q402/mcp.env, which the server auto-loads.
Q402_AGENTIC_PRIVATE_KEY密钥Mode B - local Agent Wallet signing. Hex-encoded EVM private key (0x + 64 hex chars) exported from your Agent Wallet at https://q402.quackai.ai/dashboard -> Agent tab -> Export. Signs LOCALLY just like Mode A, but the signer is your dedicated Agent Wallet - your MetaMask EOA is never touched. Pick this for AI-agent automation when you want a dedicated purse with per-tx + daily caps you set on the dashboard.
Q402_ENABLE_REAL_PAYMENTSLive-mode switch. 0 = sandbox (test mode, no funds move - every q402_pay returns a fake hash). 1 = real on-chain payments. Default 1 since v0.5.11: safe because mode only flips to live when a live API key (q402_live_*) is set AND one of (a) a valid 32-byte private key for local signing modes, OR (b) walletMode="agentic-server" with Q402_MULTICHAIN_API_KEY for the server-managed Agent Wallet path. Without either combination, the server stays in sandbox regardless of this flag.
Q402_MAX_AMOUNT_PER_CALLPer-call USD-equivalent cap for USDC/USDT/RLUSD. Any such q402_pay request with amount above this is rejected before signing. Q (QuackAI) is exempt by design (your own token; recipient allowlist + confirmation still apply). Lower this for a tighter agent blast-radius; raise for treasury-grade transfers.
Q402_ALLOWED_RECIPIENTSOptional comma-separated lowercase EVM addresses. When set, q402_pay rejects any recipient not on this allowlist.
Q402_RELAY_BASE_URLOverride for the Q402 relay endpoint. Defaults to https://q402.quackai.ai/api. Set explicitly when running against a self-hosted Q402 deployment or a non-canonical environment.
Q402_AGENT_WALLET_ADDRESSServer-managed Agent Wallet picker (walletMode='agentic-server' only). Lowercased agent wallet address (the hex 0x... shown on the Agent tab of your dashboard) selecting which of your Agent Wallets to spend from when you hold more than one (max 10 per owner). Omit to use the default wallet. Ignored for the local-signing modes that carry their own private key.
Q402_API_KEY密钥DEPRECATED legacy single-key env from pre-v0.5.0 installs. The server still reads it as a silent fallback so existing setups keep working, but new users should pick a scoped variant instead. Q402_TRIAL_API_KEY (Free Trial, BNB Chain + Base) and Q402_MULTICHAIN_API_KEY (full 12-chain surface) are designed to coexist - BNB and Base payments auto-route to the trial key, other chains use multichain. Only set Q402_API_KEY if you are migrating an existing pre-v0.5.0 install; do NOT set it alongside the scoped variants on a fresh install.
Q402_WALLET_IDDEPRECATED soft-migration alias for Q402_AGENT_WALLET_ADDRESS (one release of overlap from v0.6.0). The server still accepts it but logs a deprecation notice. New installs should set Q402_AGENT_WALLET_ADDRESS directly.
Q402_BUILDER_CODEOptional Base Builder Code for onchain attribution (ERC-8021 / Base Builder Codes). When set, every q402_x402_fetch payment includes your code as the client/intermediary in the x402 payment extension so payments are attributed onchain. Format: 1-32 lowercase letters, numbers, or underscores. Leave unset to disable attribution.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@quackai/q402-mcp0.11.33

工具

47

收录的工具列表 · 更新于 2 天前

此工具无需参数。

详细介绍

@quackai/q402-mcp

用于 Q402 的 MCP 服务,可在 12 条 EVM 链上进行免 Gas 的 USDC、USDT、RLUSD 和 USDG 支付(Robinhood Chain 上的 USDG),可通过 Claude(Desktop / Code)、OpenAI Codex CLI 以及任何其他 Model Context Protocol 客户端调用。

npm license

可免费试用。BNB Chain + Base 上可进行 500 笔免 Gas 交易(USDC + USDT),无需银行卡。只需一次钱包签名:https://q402.quackai.ai。 **限时奖励:**2026-08-21~08-28 UTC+9 期间,试用密钥也适用于 Mantle(USDC + USDT)。

**试用范围政策:**免费试用计划下创建的 API 密钥(plan: "trial")可在 BNB Chain(USDC/USDT 免 Gas)和 Base(USDC/USDT 免 Gas)上永久使用。Avalanche 试用已结束——请使用 Multichain 密钥访问 avax。限时期间 2026-08-21~08-28 UTC+9,Mantle(USDC/USDT 免 Gas)也适用;由服务器端进行时间限制,超出时段将返回 TRIAL_BNB_ONLY。付费 API 密钥始终可使用完整的 12 链矩阵。

通过任意 MCP 客户端,为 12 条 EVM 链上的稳定币支付执行报价 → 路由 →(可选)结算。收款方收到全额;付款方通过 Q402 的 EIP-7702 中继器支付 $0 Gas 费。


快速开始

  1. 将服务注册到你的客户端(每个客户端只需一行命令)。
  2. 对你的 Agent 说 “Set up Q402”。它会运行 q402_doctor → 创建 ~/.q402/mcp.env → 引导你粘贴密钥。
1. 注册服务
客户端命令 / 配置
Claude Code (CLI)claude mcp add q402 -- npx -y @quackai/q402-mcp
Claude Desktop (app)编辑 claude_desktop_config.json(Settings → Developer → Edit Config):{ "mcpServers": { "q402": { "command": "npx", "args": ["-y", "@quackai/q402-mcp"] } } }。重启应用。
OpenAI Codex CLIcodex mcp add q402 -- npx -y @quackai/q402-mcp(Windows 备用方案:见下文)
Cursor添加到 ~/.cursor/mcp.json:{ "mcpServers": { "q402": { "command": "npx", "args": ["-y", "@quackai/q402-mcp"] } } }
ClineCline → Settings → MCP Servers → Edit JSON。配置格式与 Cursor 相同。
GitHub Copilot (VS Code)添加到 .vscode/mcp.json——根键是 servers,不是 mcpServers:{ "servers": { "q402": { "command": "npx", "args": ["-y", "@quackai/q402-mcp"] } } }。重新加载 VS Code,然后在 Copilot Chat 工具选择器中启用 q402。
Hermes Agent (Nous Research)使用 YAML,而非 JSON。在 ~/.hermes/config.yaml 的 mcp_servers 下添加配置(见下文),然后运行 /reload-mcp。
任何其他 stdio MCP 客户端将其指向 npx -y @quackai/q402-mcp。无需编写客户端专属代码。
Hermes Agent - YAML 配置(~/.hermes/config.yaml)

Hermes 从 ~/.hermes/config.yaml 中的 mcp_servers 下读取 MCP 服务(使用 YAML,而非 JSON):

mcp_servers:
  q402:
    command: "npx"
    args: ["-y", "@quackai/q402-mcp"]
    enabled: true

编辑完成后,在 Hermes 中运行 /reload-mcp 以加载工具。也可以使用 CLI:hermes mcp add q402 --command npx --args -y @quackai/q402-mcp。

Claude Code(CLI,即 claude 二进制文件)和 Claude Desktop(macOS / Windows 应用)是不同的产品。claude mcp add 命令仅在 CLI 中可用;Desktop 应用需要使用上述 JSON 配置。

此配置中不包含密钥。服务会从 ~/.q402/mcp.env 中读取密钥(与 AWS / Stripe / gh CLI 的方式相同)。

Windows:codex mcp add 返回“Access is denied”

某些 Windows 配置会阻止 codex.exe 写入自身配置。请手动将配置段添加到 ~/.codex/config.toml:

[mcp_servers.q402]
command = "npx"
args = ["-y", "@quackai/q402-mcp"]

然后重启 Codex。效果与 codex mcp add q402 -- npx -y @quackai/q402-mcp 相同。

### 2. 首次设置

重启客户端,然后询问:> "设置 Q402"

Agent 会运行 q402_doctor。首次安装时:

  1. 创建 ~/.q402/mcp.env(占位符)
  2. 在编辑器中打开该文件
  3. 指引你将 API 密钥和签名路径粘贴到文件中,而不是聊天中
  4. 重启并重新运行 q402_doctor 进行验证

切勿将密钥粘贴到聊天中。 本地模式会在你的设备上签名;密钥不会离开设备。模式 C(服务端管理)不需要在客户端配置 PK。

选择签名模式
模式环境变量签名方备注
AQ402_PRIVATE_KEYMetaMask EOA,本地最简单。首次使用后会显示“智能账户”(可通过 q402_clear_delegation 撤销)。通过 EIP-7702 委托给旧版实现后,在调用 q402_clear_delegation 之前,q402_x402_fetch 将不可用(免 gas,可撤销;下次 q402_pay 会重新委托)。如果委托给当前支持 ERC-1271 的实现,q402_x402_fetch 可正常工作。
BQ402_AGENTIC_PRIVATE_KEYAgent Wallet,本地从控制面板 → Wallets → Danger Zone → Export private key 导出 PK。不会改动 MetaMask。
C(仅 API 密钥)Agent Wallet,服务端管理客户端无需 PK。单次支付可使用 Trial 或 Multichain 密钥;周期性支付需要在每条链上都使用 Multichain 密钥(包括 BNB)。

设置了多个模式时,q402_pay 会询问用户要使用哪种模式。选择器:walletMode = "agentic-server" \| "agentic-local" \| "eoa"。

手动设置(无需 AI)

使用下方模板自行创建 ~/.q402/mcp.env。只有在填写了 API 密钥和签名路径后,才会切换到实付模式,因此按原样保存模板仍处于沙盒模式。即使配置了真实密钥,Q402_ENABLE_REAL_PAYMENTS=0 也会强制使用沙盒模式。

# ~/.q402/mcp.env

# ── API key (pick one or both for auto-routing) ──
Q402_TRIAL_API_KEY=          # Free Trial, BNB (permanent) + Base (permanent) + Mantle limited-time (from /event)
Q402_MULTICHAIN_API_KEY=     # Paid Multichain, all 12 chains (from /payment)

# ── Signing path - pick ONE of Mode A / B / C ──
# Mode A: your MetaMask EOA's hex private key.
# Hardware wallets (Ledger / Trezor) are NOT supported here - Q402
# needs a raw hex key it can sign EIP-7702 type-4 authorizations with.
Q402_PRIVATE_KEY=

# Mode B: exported Agent Wallet pk from the dashboard. Keeps your
# MetaMask untouched. Get it at:
#   https://q402.quackai.ai/dashboard → Agent tab → Export
Q402_AGENTIC_PRIVATE_KEY=

# Mode C: no PK needed. A Trial key also enables Mode C one-shot payments;
# leave both PK lines blank. Q402 signs with the server-managed Agent Wallet.
# Multichain key required for recurring, Mode C batch, and bridge/OFT.
# Optional: pin one of your Agent Wallets when you have multiple (max 10).
# Q402_AGENT_WALLET_ADDRESS=0x...

# Live mode switch:
#   0 = sandbox (test mode, no funds move)
#   1 = real on-chain payments
# Default 1 - safe because mode only flips to live when an API key AND
# at least one valid signing path (A/B/C) are populated above.
Q402_ENABLE_REAL_PAYMENTS=1

# Default Q402 deployment. Only change for self-hosted.
Q402_RELAY_BASE_URL=https://q402.quackai.ai/api

# Safety guards (max-amount ships uncommented at $200; lower for tighter caps):
Q402_MAX_AMOUNT_PER_CALL=200
# Q402_ALLOWED_RECIPIENTS=0xabc...,0xdef...

# Pre-check (automatic trust-check before outgoing payments in live mode).
# Triggers when paying a first-time counterparty OR amount >= $1.
# Fee: $0.02 per check; verdict cached 7 days (no repeat charge within TTL).
# Set to 1 to disable pre-check entirely (even first-time / large-amount pays).
# Q402_DISABLE_PRECHECK=0

然后运行 chmod 600 ~/.q402/mcp.env(Unix),并重启客户端。配置就全部完成了。**关于 EIP-7702 副作用的提醒:**在某条链上首次完成实付后,你的钱包会在 MetaMask / OKX 中显示“智能账户”——这是 Q402 用于免 gas 结算的委托,可随时通过 q402_clear_delegation 撤销。**x402 用户请注意:**如果 EIP-7702 委托处于旧版实现上,在调用 q402_clear_delegation 之前,q402_x402_fetch 无法对 x402 支付进行签名(在 Base 上免 gas,可撤销;下次 q402_pay 会自动重新委托)。委托给当前支持 ERC-1271 的实现的钱包可正常工作。

高级用法 - 显式注入环境变量

如果你更愿意跳过文件并自行注入环境变量(例如通过 Codex env_vars 允许列表、密钥管理器或 Shell 导出),服务端会回退到 process.env;发生冲突时,process.env 的值优先于文件中的值。因此,现有的 Shell 导出配置可以保持不变,继续使用。

Codex env_vars 允许列表示例
[mcp_servers.q402]
command = "npx"
args = ["-y", "@quackai/q402-mcp"]
startup_timeout_sec = 20.0
env_vars = [
  "Q402_TRIAL_API_KEY",
  "Q402_MULTICHAIN_API_KEY",
  "Q402_PRIVATE_KEY",
  "Q402_AGENTIC_PRIVATE_KEY",
  "Q402_AGENT_WALLET_ADDRESS",
  "Q402_ENABLE_REAL_PAYMENTS",
  "Q402_RELAY_BASE_URL",
]

然后在 ~/.zshrc / ~/.bashrc 中导出这些值。完整架构请参阅 Codex 配置参考。

无需设置即可试用

q402_quote 无需任何配置即可使用——不需要 API 密钥、私钥或环境变量文件。询问:

"比较在所有 12 条 Q402 链上向 vitalik.eth 发送 50 USDC 的 Gas 费用。"


Q402_RELAY_BASE_URL 可覆盖中继端点。连接到可自托管的 Q402 部署或非规范环境时,请显式设置此项。


提供的工具

共 49 个工具,按功能分组。 默认只读;实付模式需要有效的 API 密钥、签名路径,以及 Q402_ENABLE_REAL_PAYMENTS=1。标记为 live mode 的条目会转移资金,并需要在聊天中明确确认。

工具认证用途
支付与钱包
q402_doctor无首次安装引导及持续健康检查(按作用域的配额、EIP-7702 状态、中继可达性、槽位不匹配警告)。
q402_quote无比较各链上的 Gas 费用和受支持的代币。
q402_balanceAPI 密钥验证密钥并查看剩余配额。
q402_pay实时模式向单个收款方进行免 Gas 转账。默认使用沙盒。在实时模式下,若收款方是首次交易对象或金额 ≥ $1,则会在每次付款前自动对收款方进行信任检查($0.02);判定结果会缓存 7 天(有效期内不会重复收费)。仅当钱包余额刚好足以支付转账、但不足以支付 $0.02 手续费,或仅有非 USDC 的支付通道代币可用时,才会降级为免费的基础判定。预检查绝不会阻止主交易。使用 Q402_DISABLE_PRECHECK=1 可禁用。
q402_batch_pay实时模式每次调用最多支持 20 个收款方。试用版:5 个——使用自己的密钥付款时适用(模式 A/B);由服务端管理的 Agent Wallet(模式 C)批量付款仅支持 Multichain。与 q402_pay 使用相同的自动路由。启用试用版时,6 笔及以上的 BNB 批量付款会返回 status="ambiguous",以便 Agent 询问如何拆分。xlayer + 稳定币不支持批量付款——请循环调用 q402_pay。
q402_receipt无获取并在本地验证 Trust Receipt(rct_… ID,针对中继 EOA 进行 ECDSA 验证)。
q402_wallet_status私钥查看由 Q402_PRIVATE_KEY 派生的 EOA 在各链上的 EIP-7702 状态。
q402_clear_delegation私钥 / API 密钥清除 EIP-7702 委托(模式 A/B 本地密钥,或模式 C API 密钥,由服务端签名)。除 Ethereum 外的所有链均提供赞助,费用计入你的 Gas Tank。分两阶段征求同意(consentToken)。
q402_agentic_infoAPI 密钥查看 Agent Wallet 信息(地址、每个钱包的限额、每日支出使用量、ERC-8004 ID)。用于模式 C。
资金管理记忆
q402_memory_summaryAPI 密钥查看指定时间范围内的资金管理概况:按链和来源统计的美元稳定币支出、主要供应商、计划、待处理请求/托管和失败情况。只读。
q402_vendor_historyAPI 密钥查看支付给某个供应商的总金额(或供应商排行榜)及定期支付周期。只读。
q402_agent_spend_reportAPI 密钥查看每个 Agent Wallet 的支出及各钱包限额。只读。
定期支付
q402_recurring_listAPI 密钥列出已安排的规则。
q402_recurring_createAPI 密钥创建定期支付规则。每条链均通过 Multichain 付费(包括 BNB)。
q402_recurring_firesAPI 密钥查看每条规则最近 50 次触发记录(时间戳 + txHashes + 金额)。
q402_recurring_pauseAPI 密钥暂停规则(可恢复)。
q402_recurring_resumeAPI 密钥恢复已暂停 / 停止的规则。
q402_recurring_skip_nextAPI 密钥仅跳过下一次计划触发。
q402_recurring_cancelAPI 密钥永久停止规则。
跨链桥(CCIP + LayerZero)
q402_bridge_quote无报价通过 Chainlink CCIP 在 eth/avax/arbitrum 之间跨链转移 USDC 的费用。返回 LINK + 原生代币费用。
q402_bridge_send实时模式从用户的 Agent Wallet 发起 CCIP 跨链转账。仅限模式 C(由服务端管理)。默认使用沙盒;设置 sandbox: false + 实时 Multichain 密钥 + Q402_ENABLE_REAL_PAYMENTS=1 后会发起真实的链上跨链转账。
q402_bridge_history尚未接入提供指向仪表板的链接。返回 { implemented: false, dashboardUrl, dashboardPath }——在 MCP 中接入 owner-sig 认证之前,仅提供只读指南。
q402_bridge_gas_tank尚未接入提供 Bridge Gas Tank 充值流程的静态指南和仪表板链接。实时余额查询需要 owner-sig 认证(目前请使用仪表板)。
q402_oft_quote无报价通过 OFT 集合(eth/arbitrum/mantle/monad/xlayer)跨链转移 USDT0 的 LayerZero 费用。返回原生代币消息费用 + 到账金额。与 q402_bridge_quote(CCIP/USDC)互为配套工具。
q402_oft_send实时模式通过 LayerZero OFT 从 Agent Wallet 向目标链上的同一地址跨链转移 USDT0。模式 C(由服务端管理)。默认使用沙盒;设置 confirm: true + 实时 Multichain 密钥 + Q402_ENABLE_REAL_PAYMENTS=1 后会发起真实的跨链转账。
q402_oft_history尚未接入提供指向 LayerZero OFT 跨链转账历史仪表板的链接。返回 { implemented: false, dashboardUrl }——在 MCP 中接入 owner-sig 认证之前,仅提供只读指南。
收益
q402_yield_reserves无列出 Q402 Yield 借贷市场——协议、链、资产、市场地址、供应 APY。按链精选借贷市场(BNB 上的 Aave/Lista;Base 上的 Morpho);每个市场都会报告自身的平台。
q402_yield_positionsAPI 密钥显示 Agent Wallet 中未平仓的 Q402 Yield 仓位(余额、本金、已累计利息、APY)+ 供应总额(美元)。模式 C。
q402_yield_deposit实时模式将 Agent Wallet 中的稳定币存入各链精选的 Q402 Yield 借贷市场:BNB(USDC/USDT)或 Base(仅 USDC)。模式 C。需要 confirm: true;默认使用沙盒。
q402_yield_withdraw实时模式从 Q402 Yield(BNB 和 Base 上的精选借贷市场)提取已供应的稳定币并转回 Agent Wallet(amount: "max" = 当前可赎回的最大金额;金库限额或排队可能导致金额低于全部仓位)。模式 C。需要 confirm: true;默认使用沙盒。
q402_yield_cancel实时模式取消 Base 上待处理的 Zircuit Finance 提款请求。Zircuit 提款需要排队(通常在 24 小时内处理,最长可达 14 天);取消请求后,份额会返还至仓位。模式 C。需要 confirm: true;默认使用沙盒。
质押
q402_stake实时模式在 BNB Chain 上将 Q(QuackAI)免 Gas 质押到 QuackAiStake。锁定期限档位 0-3(30d/10%、60d/15%、120d/32%、180d/40% APR)。amount: "max" 会质押全部 Q 余额。模式 C。需要 confirm: true;默认使用沙盒。
q402_unstake实时模式在 BNB 上免 Gas 解除已到期 Q 的质押。按记录操作:通过索引(ith)退出单笔质押,或设置 all: true 退出所有已到期质押。模式 C。需要 confirm: true;默认使用沙盒。
q402_stake_positions实时模式查看 Agent Wallet 中未到期的 Q 质押(索引、到期时间、是否可退出)+ 可用 Q 余额。只读;模式 C。
付款请求
q402_request_createAPI 密钥发布付款请求(发票)。不会转移资金;返回可分享的 /pay 链接 + req_… ID。收款方默认为 Agent Wallet。
q402_request_status无根据 req_… ID 查询付款请求(金额、代币、链、收款方、状态)。只读;未找到时返回 notFound,而不是抛出错误。
q402_request_pay实时模式从付款方自己的 Agent Wallet(模式 C)免 Gas 支付请求。条款取自已存储的请求,因此无法更改收款方。分两阶段征求同意(与 q402_pay 相同)。
托管
q402_escrow_createAPI 密钥创建免 Gas、非托管的托管记录(待处理记录,不会转移资金);可选的 walletId 会从 Agent Wallet 为其注资。链支持情况由 GET /api/escrow/chains 提供——服务端会在每次请求时强制执行。
q402_escrow_status无查看托管的状态、参与方、金额和 tx hashes。只读。
q402_escrow_lock实时模式免 Gas 为待处理的托管注资(EIP-7702);对于 Agent Wallet 买方,由服务端签名。默认使用沙盒。链支持情况由 GET /api/escrow/chains 提供。
q402_escrow_release实时模式买方将已锁定的托管资金免 Gas 释放给卖方。默认使用沙盒。
q402_escrow_refund实时模式超时 / 争议解决期限结束后,允许任何人向买方退款。
q402_escrow_dispute实时模式任一方可对未完成的托管提出争议(需要指定仲裁人)。
触发器(RedStone)
q402_redstone_feeds无查看此部署可用于驱动触发器的 RedStone 数据源(NAV / 价格 / RWA)。只读。
q402_redstone_trigger_create实时模式设置一次性免 Gas 付款:当 RedStone 数据源越过阈值时触发(边沿锁存)。
q402_redstone_trigger_list实时模式列出 Agent Wallet 的 RedStone 触发器及其状态。
q402_redstone_trigger_cancel实时模式永久停止 RedStone 触发器。
x402(出站)
q402_x402_fetch实时模式获取任意受 x402 保护的 URL,并自动处理 HTTP 402:验证 Base USDC 支付选项、防止超额支出、签署 EIP-3009 TransferWithAuthorization,并使用正确的支付标头(面向 v2 服务端的 PAYMENT-SIGNATURE,面向 v1 旧版服务端的 X-PAYMENT)重试。非 402 响应会原样返回。当响应中的 txHash 确认资金已转移、但卖方返回错误时,返回 status:"settled_no_delivery"(fundsMoved:true, retrySafe:false)。当不存在结算证明时,返回 status:"settled_status_unknown"(fundsMovedUnknown:true, retrySafe:false)——资金可能已转移,也可能未转移。两种情况都不要重试。
q402_governance_analyze实时模式付费治理提案分析。粘贴 snapshot.org / snapshot.box 链接(或原始文本),还可用日常语言描述你的优先事项;即可获得投票建议(赞成 / 反对 / 弃权)、五项维度评分及理由。传入 language(例如 "zh")即可用用户的语言接收结果。通过 x402 在 Base 上每次调用收费 $0.05 USDC。
q402_pay + q402_batch_pay + q402_bridge_send + q402_yield_deposit + q402_yield_withdraw + q402_yield_cancel + q402_stake + q402_unstake + q402_request_pay 需要明确的聊天内确认。批量确认适用于整个批次,而非每一行。

注意:q402_pay 要求使用 0x 地址;服务器端不会解析 ENS,因此请先在客户端解析。 各链的 Gas Tank 余额和完整 TX 历史记录位于仪表板(仅限钱包签名)。


x402 出站付款(q402_x402_fetch)

q402_x402_fetch 是通用 x402 客户端。它会获取任意 URL,并自动处理 HTTP 402 付款要求响应。如果服务器返回非 402 状态,响应将原样传递,因此它也可用作常规 fetch 工具。

解决的问题。 部分 API 和内容端点使用 x402 协议按请求收费。Agent 访问这类 URL 时,会收到包含机器可读付款要求的 HTTP 402 响应。q402_x402_fetch 会读取这些要求,验证付款选项,针对 Base USDC 签署 EIP-3009 TransferWithAuthorization,将其编码为 base64 JSON 负载,然后重试请求——对于 x402 v2 服务器使用 PAYMENT-SIGNATURE,对于旧版 v1 服务器使用 X-PAYMENT——所有操作均在一次调用中完成。

支持范围。 仅支持 scheme=exact + network=base(CAIP-2 eip155:8453;也接受:base-mainnet)+ Base USDC。任何其他方案、网络或资产都会被明确拒绝,且不会生成签名。

防护措施(三层)。

防护措施环境变量默认值
单次调用支出上限Q402_MAX_AMOUNT_PER_CALL$200
单个会话累计上限Q402_X402_SESSION_CAP_USD$5
两阶段同意consentToken付款时必需

两阶段同意流程:首次调用(不带 consentToken)会返回 needs_confirmation,其中包含列明确切金额和收款方的预览,以及一个 consentToken。请将报价原样展示给用户,并等待用户在下一条独立消息中确认付款。 只有此后才能使用相同参数并附上 consentToken 重新调用。该令牌只能使用一次,有效期为约 120 秒;若在签发后 2 秒内使用,则会被拒绝(用于防止同一轮内重复调用的保护机制:这是时间阈值,不是用户已确认的证明)。如果没有单独的用户确认消息,切勿在同一轮对话中重新调用。

结果状态——向用户总结前请先阅读。

结果字段含义
success: truebody、paid: true、payTo、amountUsd内容已交付,付款已结算。
success: false,已设置 needsConsentconsentToken、preview尚未付款。使用 consentToken 重新调用。
success: false,status: "settled_no_delivery"fundsMoved: true、retrySafe: false、recipient、amount、txHash、guidance已确认资金从钱包转出,但内容未交付。 响应中的 txHash 可证明结算已完成。卖家已收款,但返回了错误。切勿告诉用户“付款未成功”——资金已经转出。切勿重试——否则会再次付款。请向用户提供 amount、recipient、txHash 和 guidance,以便他们与卖家核实。
success: false,status: "settled_status_unknown"fundsMovedUnknown: true、retrySafe: false、recipient、amount、txHash: null、guidance结算状态未知——资金可能已转出,也可能没有。 已发送付款标头,但响应中没有结算证明(没有 txHash)。切勿断言资金已转出或未转出。切勿使用相同参数重试——资金可能已经转出。请向用户提供 guidance,以便他们检查钱包余额并联系卖家。
success: false(其他情况)error付款在结算前被阻止或拒绝。没有资金转出。可以安全重试。
审计。 每次 402 尝试——无论已结算、settled_no_delivery、settled_status_unknown 还是被拦截——都会写入本地审计日志 ~/.q402/x402-audit.json,并显示在 q402_agent_spend_report 中。报告会将 settled_no_delivery 和 settled_status_unknown 两种结果都计为支出。

最小可运行示例。

{
  "url": "https://api.example.com/data",
  "method": "GET",
  "confirm": true
}

如果端点返回 402,工具会以 needs_confirmation 状态和一个 consentToken 作出响应。请将报价原样展示给用户,并等待用户下一条独立消息。使用相同参数并附上 consentToken 再次调用,即可授权付款。该令牌只能使用一次,约 120 秒后过期。

要求。 Q402_ENABLE_REAL_PAYMENTS=1,并且需要本地签名密钥(Q402_AGENTIC_PRIVATE_KEY 或 Q402_PRIVATE_KEY)。签名授权会直接发送到卖方的 facilitator 端点;此流程不涉及 Q402 中继。

前置条件 — 委托检查。 如果你此前曾在此钱包上调用过 q402_pay,它可能已通过 EIP-7702 委托(在 MetaMask / OKX 中显示为“智能账户”)。如果委托给较旧的实现,q402_x402_fetch 将会失败。委托给当前支持 ERC-1271 的实现的钱包可正常使用。恢复方法:调用 q402_clear_delegation(在 Base 上无需 Gas,且可撤销)。清除后,q402_x402_fetch 即可再次使用。下次调用 q402_pay 时会自动重新委托。


治理分析(q402_governance_analyze)

q402_governance_analyze 会分析一项 Snapshot 治理提案,并返回投票建议、五项维度评分及其理由。通过 x402 在 Base 上每次调用收费 0.05 USDC。

输入参数。

参数必填说明
url二选一Snapshot 提案 URL(snapshot.org 或 snapshot.box),或不带其他信息的 0x 提案 ID。
proposalText二选一提案正文原文。
proposalId二选一Snapshot 提案 ID(若省略 dao,则默认为 "snapshot")。
weights可选优先级权重(每项为 0-100 的整数):riskControl、decentralization、sustainability、communityImpact。不可与 persona 同时使用。
persona可选指定分析角色。不可与 weights 同时使用。
language可选用于显示结果的 BCP-47 语言代码。请设为用户的对话语言,例如中文用 "zh",英文用 "en"(默认值)。服务端会据此对响应字段进行本地化;Claude 也会应用内置翻译表,让结果完全以用户的语言呈现。
confirm必填必须为 true。确认用户已批准 0.05 USDC 的扣款。
consentToken可选两阶段授权。首次调用时省略;将报价展示给用户并等待其下一条独立消息,然后附上令牌再次调用。令牌只能使用一次,约 120 秒后过期。

语言感知结果。 设置 language: "zh" 后,投票建议、维度名称、评级和理由文本都会以中文呈现,不会向用户显示英文枚举值。


沙盒模式与实时模式

默认沙盒模式:q402_pay 会返回一个虚假的 txHash,并附带 success: false 和 sandbox: true。不会转移资金,也不会消耗配额。

实时模式 = (a) 实时 API 密钥(q402_live_*),(b) 签名路径(A / B / C),(c) Q402_ENABLE_REAL_PAYMENTS=1。实时标志默认值为 1——仅当另外两个条件均满足时才会启用。设为 0 可强制使用沙盒模式,即使配置了真实密钥也是如此。

模板 q402_doctor 会写入 ~/.q402/mcp.env:

# ── API key - fill ONE (or both for auto-routing) ──
# Auto-routing (same for q402_pay AND q402_batch_pay):
#   chain="bnb" or "base" + Q402_TRIAL_API_KEY set  → Trial (free sponsored)
#   anything else                                    → Multichain (paid 12-chain)
# Batch ambiguity: 6+ recipient BNB/Base batch with Trial set returns
#   status="ambiguous" instead of executing - agent asks user to pick.
# Override per call with keyScope: "auto" | "trial" | "multichain".
Q402_TRIAL_API_KEY=                # BNB + Base sponsored Trial key (from /event; Avalanche trial ended)
Q402_MULTICHAIN_API_KEY=           # paid 12-chain key (per-chain Gas Tank)

# ── Signing path - pick ONE of Mode A / B / C ──
Q402_PRIVATE_KEY=                  # Mode A: real EOA pk (0x + 64 hex)
Q402_AGENTIC_PRIVATE_KEY=          # Mode B: exported Agent Wallet pk (from dashboard)
# Mode C: leave both PK lines blank. A Trial key enables one-shot Mode C
# payments; Multichain key required for recurring, batch, and bridge/OFT.
# Q402 signs with the server-managed Agent Wallet. Optionally:
# Q402_AGENT_WALLET_ADDRESS=0x...   # pin one of your wallets when you have multiple

# Live mode switch:
#   0 = sandbox (test mode, no funds move - every q402_pay returns a fake hash)
#   1 = real on-chain payments (live mode)
# Default 1. Safe because the gate only flips to live when an API key AND
# at least one valid signing path (A/B/C) are populated. Empty values
# fail the gate, so partial setups stay in sandbox with a hint.
Q402_ENABLE_REAL_PAYMENTS=1

# Pre-check trust-check (live mode). Triggers for first-time counterparties or
# payments >= $1. Fee: $0.02 per check; cached 7 days. Never blocks the main tx.
# Set Q402_DISABLE_PRECHECK=1 to opt out.

已解析的作用域所需配置项若有缺失 → 自动回退到沙盒模式,并提示需要设置哪些配置项。

沙盒响应包含 success: false、sandbox: true、mode: "sandbox"、method: "sandbox",以及解释原因的 setupHint——四项标记可确保下游摘要不会误报成功。

硬性上限
环境变量默认值作用
Q402_MAX_AMOUNT_PER_CALL200拒绝金额超过 N 美元的 USDC/USDT/RLUSD 调用。Q (QuackAI) 按设计不受此限制(它是你自己的代币);收款方白名单和确认要求仍适用于它。
Q402_X402_SESSION_CAP_USD5q402_x402_fetch 的单次会话累计支出上限(美元)。如果会话总额将超过此值,则会阻止调用。MCP 服务重启后重置。
Q402_ALLOWED_RECIPIENTSoff以逗号分隔的地址白名单。
Q402_BUILDER_CODEoffq402_x402_fetch 的链上归因基础 Builder Code(通过 x402 v2 extensions.builder-code)。
Q402_DISABLE_PRECHECKoff设置为 1 可选择停用对出站付款的自动预检查信任检查。

结合两阶段 consentToken 和实时模式环境变量,进行稳定币付款需要满足:用户在单独的消息中批准的预览 + 金额 ≤ 上限 + 收款方在允许名单中 + 全部 3 个实时环境变量。consentToken 只能使用一次,约 120 秒后过期;如果在签发后 2 秒内使用,就会触发同轮双重调用限制(这是阈值,并不保证用户已确认)。Q (QuackAI) 不受上限限制(它是你自己的代币);预览、收款方白名单和实时模式环境变量仍适用于它。

配置参考

环境变量适用于说明
Q402_TRIAL_API_KEYlive-pay(BNB + Base + Mantle)BNB Chain + Base 赞助试用密钥(永久有效)。Avalanche 试用已结束——avax 请使用 Multichain。限时期间(2026-08-21~08-28 UTC+9)也支持 Mantle。在 https://q402.quackai.ai/event 免费获取。设置后,在 q402_pay 和 q402_batch_pay(≤5 个收款方)中,会自动路由至符合试用条件的链。包含 6 个或更多收款方的试用批次会返回 status="ambiguous",以便 Agent 询问用户如何拆分。
Q402_MULTICHAIN_API_KEYlive-pay(12 条链)付费的 12 链密钥。在 https://q402.quackai.ai/payment 获取。对于 BNB/Base 之外的链(包括 Avalanche 试用结束后的 avax),以及未设置 Trial 密钥时的 BNB/Base,会自动路由至此密钥。上限:每批 20 个收款方。Mode C 单次支付可使用 Trial 或 Multichain;周期性支付、Mode C 批量支付以及桥接/OFT 则必须使用 Multichain。
Q402_PRIVATE_KEYMode AMetaMask EOA 的十六进制私钥。用于本地 Mode A 的签名者。切勿分享。切勿粘贴到聊天中。
Q402_AGENTIC_PRIVATE_KEYMode B从仪表板导出的 Agent Wallet 十六进制私钥(Agent 标签页 → Export)。在本地签名,但签名者是专用 Agent Wallet,不会触及 MetaMask。切勿分享。切勿粘贴到聊天中。
Q402_AGENT_WALLET_ADDRESSMode C(可选)如果有多个由服务器管理的 Agent Wallet(每位所有者最多 10 个),请将其设为 Q402 应从中支出的那个钱包的小写 0x… 地址。省略则使用默认钱包。在 Mode A/B 中会被忽略。
Q402_ENABLE_REAL_PAYMENTSlive-pay设为 1 以启用。其他任何值(或未设置)→ 沙盒模式。
Q402_MAX_AMOUNT_PER_CALL可选USDC/USDT/RLUSD 的美元等值上限。默认值为 200。如需进一步限制 Agent 的影响范围,可调低此值。Q(QuackAI)按设计不受此限制(这是你自己的代币)。
Q402_X402_SESSION_CAP_USD可选q402_x402_fetch 的单次会话累计支出上限(美元)。默认值为 5。MCP 服务重启后重置。
Q402_ALLOWED_RECIPIENTS可选以逗号分隔的小写地址。默认不设置允许名单。
Q402_BUILDER_CODE可选Base Builder Code(1–32 个小写字母/数字/下划线,例如 bc_fu2v7kgf)。设为你注册的 Builder Code,即可通过 x402 的 extensions.builder-code 字段,为每笔 q402_x402_fetch 支付附加链上 ERC-8021 归属信息。
Q402_DISABLE_PRECHECK可选设为 1 可禁用实时模式下出站支付前自动运行的预检信任检查。未设置(默认)时,预检会自动针对首次交易的对象以及金额 ≥ $1 的支付运行。预检费用为 $0.02;检查结果缓存 7 天(有效期内不重复收费)。预检绝不会阻止主交易。
Q402_RELAY_BASE_URL可选默认为 https://q402.quackai.ai/api。可覆盖此值以使用可自托管的 Q402。
从旧版单密钥配置迁移

如果你在 v0.5.0 之前配置了 Q402,可能只有一个 Q402_API_KEY 环境变量。服务仍会静默解析该变量——现有集成不会中断。新安装应使用上述双密钥模式(Q402_TRIAL_API_KEY 和/或 Q402_MULTICHAIN_API_KEY);q402_doctor 和其余文档只会引导用户使用这两个密钥。迁移时,请在 ~/.q402/mcp.env 中将现有变量重命名为 Q402_MULTICHAIN_API_KEY,然后重启 MCP 客户端。


支持的链

链链 ID代币备注
BNB Chain56USDC、USDT
Ethereum1USDC、USDT、RLUSDL1 - Gas 价格波动,报价为某一时刻的快照。RLUSD(Ripple USD,受纽约州金融服务部监管,精度为 18 位)仅支持 Ethereum。
Avalanche C-Chain43114USDC、USDT
X Layer196USDC、USDT
Stable988USDT0(USDC 和 USDT 均为别名)使用 USDT0 支付 Gas。
Mantle5000USDC、USDT0自 2025-11-27 起支持 LayerZero OFT USDT0。
Injective EVM1776USDC、USDT原生 Circle USDC(CCTP)自 2026-06 起上线 + canonical Tether(USDT0)。
Monad143USDC、USDT0原生 Circle USDC(CCTP V2)+ USDT0(LayerZero OFT)。
Scroll534352USDC、USDTzkEVM L2 - EIP-7702 自 Euclid Phase 2 升级(2025-04-22)起上线。
Arbitrum One42161USDC、USDTOptimistic rollup - 使用与 Ethereum 相同的 EIP-7702 签名路径。CCIP 桥接端点(eth ⇄ avax ⇄ arbitrum)。
Base8453USDC、USDTOP Stack L2 - 使用与 Ethereum 相同的 EIP-7702 签名路径。原生 Circle USDC + 桥接的 Tether USD。
Robinhood Chain4663USDGArbitrum Nitro L2 - 仅支持 USDG(Paxos Global Dollar,精度为 6 位)。Circle USDC / Tether 在此链上不是 canonical 代币;USDG 支付免 Gas。

为什么要构建 Q402

AI Agent 正逐渐成为软件的默认交互界面,但一旦需要转移资金,整个技术栈就会出问题:持有 Gas 代币、为每笔交易签名、管理多条链上的钱包。当 Agent 需要自主行动时,这些做法都无法扩展。

Q402 是用于解决这一问题的支付层。单一签名原语(EIP-712 + EIP-7702)可在 12 条 EVM 链上结算免 Gas 稳定币支付,并为每笔交易生成一份由 ECDSA 签名的 Trust Receipt。MCP 包将这一能力集成到 Claude、Codex、Cursor 和 Cline 中,让你的 Agent 可以通过自然语言提示词报价、发送、批量处理和审计支付。

单笔转账和多收款方批量支付现已推出。下一层功能——定期付款、有条件执行和受策略控制的资金库自动化——会以不同方式组合使用同一原语。我们的目标是打造能够管理实际预算、彼此结算并通过无人手动触发的工作流转移价值的 Agent。


Hooks - 可编程支付策略

Q402 Hooks 1.0 是一个策略引擎,可将规则附加到支付生命周期中:OFAC 合规筛查、支出上限 + 收款方允许列表、ERC-8004 信誉门控、Chainlink 预言机条件结算(“仅在 BTC ≥ $80k 时执行”)和自动多收款方拆分——此外还提供需审批的软拦截机制,用于处理大额支付(返回 202 approval_required;调用方在带外重新提交,v1 不会存储挂起的支付)。Uniswap v4 将可编程 Hooks 引入 DEX 流动性;Q402 则将其引入 AI Agent 支付。

开发者参考:docs/HOOKS.md - 生命周期、Hook 合约,以及所有已发布 Hook 的配置和示例。

Base 上的托管支付:docs/ESCROW-VS-INSTANT.md - 供 Agent 使用的即时支付与托管支付决策指南。docs/ESCROW-BASE-DEPLOY-RUNBOOK.md - Base 主网金库部署工程操作手册(仅供人工操作,不适用于 Agent)。


代码仓库

源代码:https://github.com/quackai-org/q402-mcp
问题 / 功能请求:https://github.com/quackai-org/q402-mcp/issues

许可证

Apache-2.0 - 详见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

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

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