프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 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의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 클라우드에서 실행
  • 전송 방식: Streamable HTTP
  • 카테고리: 기타

설치

쓰고 있는 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

메뉴 이름은 요금제나 시기에 따라 조금 다를 수 있어요.

선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.

이 설정은 제작자의 레지스트리 정보로 만들었어요. 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에서 이 저장소를 읽어 오지 않았어요

  • ✓ 통과

    엔드포인트 응답

    227ms 만에 응답(HTTP 200)

  • – 해당 없음

    OAuth로 로그인

    로그인 필요 없음

  • ✓ 통과

    도구 설명에 숨겨진 지시 없음

    도구 설명 17개를 읽었고, AI에게 보내는 숨겨진 지시는 없었어요

기타 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 32417개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 32417개 중 94%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 32417개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

SpendPreflight, 안전한가요?

해당하는 기본 점검 3개 중 3개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

제작자의 클라우드에서 실행돼요. 설치 없이 인터넷으로 연결하지만, 보내는 내용은 제작자의 서버를 거쳐요.

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(1.2.0-metadata.8)은 그저께 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되기 때문에, 원격 MCP 서버를 지원하는 앱(예: 개발자 모드의 ChatGPT)에서도 쓸 수 있어요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, FOGA node

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:★ 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어제 업데이트
설치

FOGA node

제작자: garyyang-finchip

A Finch OG Agent cell as an MCP server: read the world, dry-run and take ERC-8414 tenders by policy.

컴퓨터 또는 클라우드오늘 업데이트
설치

제작자의 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에게 묻기