Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Preflight x402 payments. Base ERC-8004 agent #1151628; wallet binding verified Nov 3, 2026.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
ウェブ、デスクトップ、モバイルのClaudeで使えます:
https://api.spendpreflight.com/mcpターミナルでこれを実行します
claude mcp add --transport http spendpreflight https://api.spendpreflight.com/mcpプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"spendpreflight": {
"url": "https://api.spendpreflight.com/mcp"
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"spendpreflight": {
"type": "http",
"url": "https://api.spendpreflight.com/mcp"
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
ChatGPTがつなげるのは、インターネット上のサーバーだけです:
https://api.spendpreflight.com/mcpメニューの名前は、プランや時期によって少し違うことがあります。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
ツールの名前と説明は、サーバーが2026年11月6日に返したそのままの内容です。書いたのは作者で、私たちではありません。プレーンテキストとして表示しています。
preflight_paymentUse 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_payeeUse 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_endpointUse 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_tokenUse 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_receiptUse 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_infoUse 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_bindingUse 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_checkUse 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_guardUse 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_listingUse 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_checkUse 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_indexUse 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_authUse 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_endpointUse 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_statementUse 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_stationsUse 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_solarUse 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
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント spendpreflight で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
227ミリ秒で応答(HTTP 200)
サインイン不要
17件のツールの説明を読み、AIへの隠れた指示は見つかりませんでした
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック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, Symantec Cloud DLP AIops
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Governed Symantec Cloud DLP — 14 MCP tools, read-only with audit.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
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.
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.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.
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*:
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
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 });
Copy-paste examples maintained by the operator of SpendPreflight:
/v1/preflight before paying ($0.02 screening fee).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.
| Decision | What happens | Typical reasons |
|---|---|---|
allow | Payment proceeds | All rules passed |
hold | onHold(verdict) decides; denied if you don't provide one | Above hold threshold, domain not on allowlist, new domain, possible sanctions name match, remote check unavailable |
block | Payment aborted before signing | Over 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.
| Option | Default |
|---|---|
maxPerPaymentUsd | 1 |
holdAboveUsd | 0.25 |
dailyCapUsd | 25 (in-process, UTC day) |
allowedNetworks | ["eip155:8453"] (Base) |
usdcOnly | true |
domainAllowlist / domainBlocklist | [] (subdomains match) |
payToAllowlist / payToBlocklist | [] |
strictAllowlist | false (hold anything not on an allowlist) |
maxPriceMultiple | 5 (remote only; null disables category price comparison) |
requireLive | true (remote only; hold after three usable failed unpaid probes) |
holdOnPayToChange | true (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.
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.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.
Don't take our word for any of this; each point can be checked:
src/index.ts; it's about 250 lines.hold, not allow.冒頭だけを表示しています。続きはリポジトリで読めます