原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

SpendPreflight

作者:spendpreflight版本 1.2.0-metadata.8i★ –i在云端运行
注册名称io.github.spendpreflight/spendpreflight

安装

概览

作者提供的说明(英文原文)

Preflight x402 payments. Base ERC-8004 agent #1151628; wallet binding verified Nov 3, 2026.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

你需要

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

适用于网页版、桌面版和手机版 Claude:

  1. 打开 Settings → Connectors
  2. 点击 Add custom connector
  3. 粘贴下面的地址,然后点击 Add
  4. 如果要求登录,请登录作者的服务
SettingsConnectors1+ Add2https://…3
https://api.spendpreflight.com/mcp

在终端中运行这条命令

claude mcp add --transport http spendpreflight https://api.spendpreflight.com/mcp

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "spendpreflight": {
      "url": "https://api.spendpreflight.com/mcp"
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "spendpreflight": {
      "type": "http",
      "url": "https://api.spendpreflight.com/mcp"
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

ChatGPT 只能连接互联网上的服务器:

  1. 打开网页版 ChatGPT → Settings → Connectors (Apps)
  2. 点击 Create 或 Add(部分套餐需要先在 Advanced 中开启 Developer mode)
  3. 粘贴下面的地址,起个名字,然后保存
  4. 如果要求登录,请登录作者的服务
SettingsConnectors1+ Create2https://…3
https://api.spendpreflight.com/mcp

菜单名称可能因套餐和版本不同而略有差异。

你的选择通过 Cookie 保存在这台设备上,无需账户。

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

工具名称和描述与服务器在 2026年11月6日 报告的完全一致。这些内容由作者撰写,不是我们写的;我们以纯文本形式显示。

  • preflight_payment

    Use when you are about to sign an x402 payment for allow, hold or block, reasons and a signed decision receipt. Covers payee sanctions screening, spending rules and cached price/recipient evidence where available. For separate evidence, use lint_endpoint/listing_guard for technic

  • check_payee

    Use when you need standalone payee screening without a payment decision. Payee risk check. Screens a payee wallet address and name against the OFAC SDN sanctions list and checks the merchant domain's registration age and DNS. Returns risk low|medium|high|unknown with flags such a

  • lint_endpoint

    Use when you sell via x402 and want a free check of your public payment challenge. Free x402 Lint by SpendPreflight. Includes a free passive Security Check summary; optional full report with fixes is $0.10, no automatic payment. Checks a public HTTPS endpoint with an unpaid GET:

  • check_token

    Use when you need a bounded Base token assessment with explicit unassessed areas. Base contract safety signals from bounded public-chain reads and OFAC. Basic: deployed bytecode and SDN match. Deep adds standard owner(), paused(), totalSupply(), decimals() and ERC-1967 storage ob

  • payment_receipt

    Use when you need a signed observation of an existing Base USDC transfer. Verify a native Base USDC transfer by tx_hash (optional log_index), or exact pay_to + decimal amount + past start/end (max 90 days). Ambiguous matches fail without charge. Signed observation, OFAC flags, co

  • get_service_info

    Use when you need more tools: browse Buyers, Sellers, Books and Data APIs, prices, rules and examples. If you have a payment challenge, call preflight_payment directly. Free, read-only service reference. Use when you need prices, default spending rules, payment setup, trial allow

  • verify_payee_binding

    Use when a seller advertises an ERC-8004 identity and you need an ERC-8478 Draft wallet-binding observation. ERC-8478 Draft payee verification: endpoint origin and ERC-8004 agent wallet or EIP-712 delegation at one pinned registry block. Nine explicit outcomes; not-read is unchar

  • quote_check

    Use when you need an exact quote compared with cached public price and recipient evidence. Compare a supplied x402 quote with the latest comparable cached public unpaid quote and disclosed retained history. Scout keeps only the latest probe; the separate public index can retain s

  • listing_guard

    Use when you need a detailed public listing metadata check. Bazaar Listing Guard: CDP technical validation plus a bounded heuristic metadata screen for agent-directed instructions, embedded URLs, tool calls, invisible Unicode, long fields and prices above 100x a fresh Scout categ

  • check_listing

    Use when an existing integration calls the listing_guard compatibility alias. Compatibility alias of listing_guard for existing clients. Prefer listing_guard for a new detailed metadata check; these are the same operation, not two independent checks. Bazaar Listing Guard: CDP tec

  • security_check

    Use when you need the full passive evidence from a current complete saved Lint report. x402 Security Check (Lint Pro). Detailed passive findings and source-linked fixes from an existing, unexpired free Lint report. $0.10 USDC on Base, no trial or automatic payment. No new target

  • seller_index

    Use when you need sellers from the existing cached public catalog. Search cached public x402 sellers. First three matches free; up to12 cost0.01 USDC only with extra matches. Bounded unpaid availability, 402, quote history and public Lint evidence; missing evidence unknown. Parti

  • domain_auth

    Use when you need public DNS email-authentication observations for a domain. Observe a public domain’s MX, SPF, direct DMARC record, supplied DKIM selectors and resolver-reported DNSSEC evidence.0.005 USDC per usable report, no shared trial. Fixed public Cloudflare DoH only, at m

  • check_endpoint

    Use when you need cached public endpoint evidence. Cached x402 endpoint observations, operated by SpendPreflight. Returns a transparent score (or unknown), its components and seven-day unpaid probe history for an already publicly listed URL. Never fetches the caller's URL or pays

  • wallet_statement

    Use when you need a reconciled Base USDC statement for a bounded UTC window. Export native Base USDC wallet transfers as JSON or CSV for a past range up to 90 days, start inclusive/end exclusive. Exact decimal running balances, counterparties and OFAC flags. Up to 1000 transfers/

  • find_rv_stations

    Use when you need nearby RV stations from the dated FillPoint snapshot; see Data APIs. Nearest RV dump/water stations from FillPoint RV's dated September 17, 2026 ODbL snapshot. $0.01 for bounded straight-line proximity calculation, not live access, potable-water assurance or roa

  • size_solar

    Use when you need solar energy arithmetic from supplied assumptions; see Data APIs. Off-grid PV energy-balance estimate based on Wattpath by Nomad Energy Club. Supply daily loads, peak sun hours, PV losses, and optional battery assumptions. No location/weather lookup, electrical

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月6日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 spendpreflight 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • ✓ 通过

    端点有响应

    在 227 毫秒内响应(HTTP 200)

  • – 不适用

    使用 OAuth 登录

    无需登录

  • ✓ 通过

    工具描述中没有隐藏指令

    已读取 17 个工具描述,未发现针对 AI 的隐藏指令

与“其他”中的其他服务器比较i

  • 星标数多于此分类中其他 32398 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 32398 个服务器的 95% 更新
  • 基础检查结果等于或优于此分类中其他 32398 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

SpendPreflight 安全吗?

它在 3 项适用的基础检查中通过了 3 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

它在作者的云端运行。通过互联网连接,无需安装,但你发送的内容会经过作者的服务器。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(1.2.0-metadata.8)于昨天进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。

有什么可以替代它?

同一分类中有:Spec Driven Development, Remote Desktop Commander, AI Deprecations

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Spec Driven Development

作者:formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

在你的电脑上运行★ 440MIT14个月前更新
安装

Remote Desktop Commander

作者:desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

在云端运行★ 211昨天更新
安装

AI Deprecations

作者:aideprecations.com

AI model shutdown dates, replacements, change feed and webhook alerts for 8 providers.

在云端运行今天更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

SpendPreflight

Call preflight_payment before signing an x402 payment. Get allow, hold or block, reasons and a signed decision receipt; enforce the decision within your approved wallet and budget. Preflight combines payee screening, spending rules and cached price/recipient evidence where available. ERC-8478 wallet binding remains a separate verify_payee_binding call.

About to pay? Start with Preflight. Selling via x402? Start with free Lint and monitoring.

Three runnable examples: a guarded x402 client, Claude Code / Cursor MCP setup, and seller CI. The examples run offline by default; no payment or live probe is needed to try them.

MCP core tools appear first: preflight_payment, check_payee, lint_endpoint, check_token, payment_receipt. Free get_service_info groups the complete enabled catalog into Buyers, Sellers, Books and Data APIs. All products and prices remain available in the catalog; solar and FillPoint have their own Data APIs page.

New web and MCP tools

  • Draft ERC-8478 Payee Verification: remote MCP verify_payee_binding or POST /v1/payee-binding, 0.01 USDC with the existing shared trial. Signed JSON reports exactly one of nine outcomes at a pinned registry block; not-read is uncharged. Checks direct agent-wallet equality or EIP-712 delegation, including ERC-1271, rotation and expiry. An observation is not payment approval. Base first, plus public Robinhood reads; the Draft may change.
  • x402 Security Check: free passive coverage in Lint; an optional full report from a current complete saved Lint snapshot costs 0.10 USDC, with no new probe or shared trial. Replay protection, paid caching and settlement behavior remain unknown without controlled evidence.
  • Quote Check: compare a supplied exact quote with cached public evidence; 0.001 USDC for a usable comparison, unknown without charge, no shared trial. No target request or automatic payment approval.
  • Seller Index: top three cached public matches free; extended results up to 12 cost 0.01 USDC only if additional matches exist. Missing ranking evidence remains unknown; no crawl or safety certification.

Read the announcement and tool-selection guide. These are operated remote-service tools; this metadata update does not publish a new npm package or enable automatic payments.

Historical Quote Check before signing

createQuoteCheckHook attaches to onBeforePaymentCreation. It compares the selected exact-scheme quote with a dated cached public unpaid quote, never requests the merchant, and aborts on above_expected, payTo_changed, unknown or an error. ok only means the supplied amount is not above the last comparable observation with the same recipient; it is not payment approval or loss prevention. Keep the local guard for allowlists, per-payment limits and its in-process daily budget.

import { createQuoteCheckHook, guard } from 'spendpreflight';

// comparisonFetch is a SEPARATE locally guarded x402 fetch configured by you. // It can pay the comparison API's $0.001 fee; no shared trial or auto-renewal. client.onBeforePaymentCreation(createQuoteCheckHook({ fetch: comparisonFetch })); guard(client, { remote: false, rules: { maxPerPaymentUsd: 0.10, dailyCapUsd: 1 } });

Without an explicitly supplied paid fetch, plain fetch stops at the 402 offer. The same client cannot pay its own hook fee: recursion is rejected before signing. Missing/stale/ambiguous history returns unknown without a charge. No automatic retry, target refresh, signature replay or application of a suggested cap occurs. The informational suggested_max_amount_per_payment uses atomic units for the stated asset/network and expires with the cached observation; it is not a personal budget. Use quoteCheck(input, options) for a standalone comparison, or signed GET /quote-check / MCP quote_check. URL and quote fields are sent transiently to the comparison API; do not use private URLs or query secrets.

SpendPreflight — trust and verification tools for stablecoin payments, built for AI agents and the people who run them.

Product catalog · Trust and privacy

Allow, hold or block every x402 payment before your agent pays.

Maintained by the operator of SpendPreflight, the optional paid screening API linked below.

Drop-in spend guard for the official x402 client (@x402/core, @x402/fetch, @x402/axios). It checks each payment *before anything is signed*:

  • Local rules (free): per-payment max, hold threshold, daily cap, network and asset checks (USDC only by default), and domain or payTo allow/blocklists.
  • Remote screening (optional): an OFAC sanctions screen of the payee wallet and a new-domain check via the SpendPreflight API, at $0.02 per check over x402, or free on the trial.

A blocked payment is aborted before signing. A hold goes to your onHold callback, or is denied. Every decision is passed to onDecision so you can log it.

npm i spendpreflight @x402/fetch @x402/evm viem
import { x402Client, wrapFetchWithPayment } from "@x402/fetch";

import { ExactEvmScheme } from "@x402/evm/exact/client"; import { privateKeyToAccount } from "viem/accounts"; import { guard } from "spendpreflight";

const account = privateKeyToAccount(process.env.AGENT_KEY as 0x${string}); const client = new x402Client().register("eip155:8453", new ExactEvmScheme(account)); const pay = wrapFetchWithPayment(fetch, client);

guard(client, { rules: { maxPerPaymentUsd: 1, holdAboveUsd: 0.25, dailyCapUsd: 20 }, remote: false, // local rules; separate screening client shown below onHold: async v => askHuman(v), // return true to approve onDecision: v => console.log(v.decision, v.reasons, v.receiptId), });

const res = await pay("https://api.some-paid-service.com/data"); // guarded

Try it without paying
guard(client, { remote: { trial: true } }); // 3 free remote checks per day per IP

Or use local rules only, with no network call:

guard(client, { remote: false });

Framework examples

Copy-paste examples maintained by the operator of SpendPreflight:

See setup and safety notes. The screening tools never pay the merchant under review. Enforce decisions in the actual payment client; a model selecting a tool alone is not a spending gate. Tests use local mocks and throwaway signers, with no paid calls.

Decisions

DecisionWhat happensTypical reasons
allowPayment proceedsAll rules passed
holdonHold(verdict) decides; denied if you don't provide oneAbove hold threshold, domain not on allowlist, new domain, possible sanctions name match, remote check unavailable
blockPayment aborted before signingOver max, daily cap hit, wrong network or asset, blocklisted, payee wallet on the OFAC SDN list

The remote check fails safe: if the API is unreachable, the decision is hold. Set remote.onError: "allow" to fail open instead.

Version0.2.0 requires Node20+ and a separate screening payment client, with its own local-only guard, exact payTo/asset/network allowlist and screening budget. A claimed resource hostname never bypasses the merchant guard. Reusing the merchant client recursively fails closed before signing.

Rules

OptionDefault
maxPerPaymentUsd1
holdAboveUsd0.25
dailyCapUsd25 (in-process, UTC day)
allowedNetworks["eip155:8453"] (Base)
usdcOnlytrue
domainAllowlist / domainBlocklist[] (subdomains match)
payToAllowlist / payToBlocklist[]
strictAllowlistfalse (hold anything not on an allowlist)
maxPriceMultiple5 (remote only; null disables category price comparison)
requireLivetrue (remote only; hold after three usable failed unpaid probes)
holdOnPayToChangetrue (remote only; hold on a seven-day payTo change)

Version 0.2.0 adds these three settings when remote is enabled. They use the public Endpoint Health Index: the price rule compares the current quote with a category median; liveness counts usable unpaid probes; payee changes are compared within the same network and asset. They do not run locally or trigger a crawl, and no merchant endpoint is paid to gather this data.

Missing, ambiguous or stale index data is explicitly reported in verdict.remote.index_evidence. It does not become an invented healthy result or a failed probe; the other spending and sanctions rules still apply. A failed remote request retains the existing fail-safe hold. Cart-only checkout has no endpoint history. The corresponding service rules are deployed. Index coverage is still being populated; inspect index_evidence instead of assuming full-catalog coverage.

The API directly

Any agent or language can call the same checks over HTTP with x402. No account, no API key:

  • POST https://api.spendpreflight.com/v1/preflight: send the 402 body plus your rules; get allow, hold or block with a receipt. $0.02.
  • POST https://api.spendpreflight.com/v1/check: JSON body with address, domain or name; payee sanctions and domain risk. $0.01.
  • The full OpenAPI spec is at https://api.spendpreflight.com/openapi.json, with an llms.txt alongside it.

October22 migration: all paid API execution uses POST JSON. GET/HEAD return discovery challenges only and never settle, even with query parameters or payment headers. Build the POST request and obtain its challenge before signing; do not sign a GET quote for execution. ?trial=1 remains an optional URL flag on POST. The 0.2.1 Scout helpers and current LangChain source examples use this method; Scout production availability is still gated. The core remote preflight guard already used POST. Version0.2.0 is not republished.

Trust

Don't take our word for any of this; each point can be checked:

  • The package never signs or moves funds. It only tells your x402 client to abort. Read src/index.ts; it's about 250 lines.
  • The remote check fails safe. If the API is unreachable, the decision is hold, not allow.
  • The API is read-only and never charges for its own errors. 4xx and 503 responses are not settled. Live status: https://api.spendpreflight.com/status
  • Payments are public. They go to a published wallet on Base, so you can audit them on Basescan.
  • Minimal data. No request bodies are stored. See https://api.spendpreflight.com/privacy and https://api.spendpreflight.com/terms
  • *

只显示了开头部分;其余内容请在仓库中阅读

问 PopNx